Convolutional Network and Models

Convolutional Network를 사용한 여러 모델 중 내가 참여했던 자율차 프로젝트에서 최종 프로그램에 개발자 분들이 실제로 쓴 것(Inception v1)과 프로젝트 시작 전에 내가 궁금해서 알아봤던 것(YOLO)만 더 자세히 정리해 보았다. (그래봤자 인트로만…) 표지판 분류를 위한 모델이므로 모두 이미지 분류 모델이다.

Convolutional Network

Convolutional networks for images, speech, and time series, 1995

Convolutional networks and applications in vision, 2010

Model Using CNN

Inception

Going deeper with convolutions, 2015

주 특징

배경

구조

Kiho Hong. Google Inception Model.: Inception v1 - v4, Inception-resnet의 구조까지 한 번에 정리한 글

구현

Tensorflow 이용: inception_v1.py, inception_v1_test.py

YOLO (You Only Look Once)

You only look once: Unified, real-time object detection, 2016

Yolov3: An incremental improvement, 2018

주 특징

배경

구조

1

2

구현

Darknet 이용: yolo.c

참고 문헌

LECUN, Yann, et al. Convolutional networks for images, speech, and time seriesThe handbook of brain theory and neural networks, 1995, 3361.10: 1995.

LECUN, Yann, et al. Convolutional networks and applications in vision. In: ISCAS. 2010. p. 253-256.

SZEGEDY, Christian, et al. Going deeper with convolutions. In: Proceedings of the IEEE conference on computer vision and pattern recognition. 2015. p. 1-9.

Kiho Hong. Google Inception Model.

REDMON, Joseph, et al. You only look once: Unified, real-time object detection. In: Proceedings of the IEEE conference on computer vision and pattern recognition. 2016. p. 779-788.

REDMON, Joseph; FARHADI, Ali. Yolov3: An incremental improvementarXiv preprint arXiv:1804.02767, 2018.

Appendix

YOLO의 원리 (논문 대충 읽고 정리한)

YOLO는 전체 이미지에 대해 globally 추론한다. 즉, 특정 부분의 이미지를 자르지 않고 전체 이미지를 받으면 모든 class에 대한 bounding box를 일제히 예측한다.

Input image를 $S \times S$ 의 grid로 나눈다. 만약 오브젝트의 중심이 grid cell의 중심에 들어오면, 그 grid cell은 오브젝트를 감지했다고 반응할 것이다.

각 grid cell은 $B$ 개의 bounding box와 각 box의 confidence score를 예측한다.

confidence score는 box가 오브젝트를 포함하고 있는 것을 모델이 얼마나 확신하는지와 그 예측된 box에 대해 얼마나 정확하게 생각하는지를 반영한다.

\[Confidence = Pr(Object) \times IOU_{pred}^{truth}\]

$IOU_{pred}^{truth}$: Intersection over uinion between the predicted box and the ground truth

만약 cell 안에 아무런 오브젝트가 없다면, confidence는 zero가 된다.

그렇지 않다면, confidence는 예측한 box와 실제값 truth 사이의 intersection over union과 같아야 한다.

각 bounding box는 5개의 prediction을 가지고 있다: $x, y, w, h, confidence$

각 grid cell은 $C$개의 그 클래스일 조건부 확률을 예측한다.

\[Pr(Class_i \mid Object)\]

이 확률은 어떤 grid cell이 object를 포함하고 있는 조건 하의 확률이다. 각 grid cell마다 한 세트의 class probability를 예측한다. bounding box의 개수 $B$와는 관련이 없다.

이제 필요한 모든 것들을 예측했으니, 각 box별 class-specific confidence score를 계산할 수 있다.

\[Pr(Class_i \mid Object) \times Pr(Object) \times IOU_{pred}^{truth}\]

즉, 그 클래스가 그 박스에 나타날 확률과 그 예측된 박스가 오브젝트에 얼마나 잘 맞는지 둘 다를 의미한다.