[유튜브 논문 리뷰] You only look once: Unified, real-time object detection(2015.06)
1. 논문의 특징
1.1 Look Only Once
- 이미지 전체를 한번에 봄
- R-CNN은 Region Proposal을 통하여 부분을 보지만 YOLO는 전체를 봄
- 전체를 보기 때문에 예술과 같은 다른 도메인에서 더 성능이 잘 나온다.
1.2 Unified object Detection
- DPM, R-CNN은 localization 과 detection을 각각 학습시킴
- YOLO는 localization과 detection능력을 한번에 regression으로 학습 가능
- YOLO는 한번의 feedfoward로 예측도 수행함 (Only One Feedfoward 한다고 함)
1.3. Real Time
- Fast RCNN : 7 FPS -> (ROI 추출 시 Region Proposal 을 사용함)
- Yolo : 45 FPS(Pascal VOC 2007로 평가함)
- Fast YOLO : 155FPS
2. 다른 논문과의 차이점
- 이전 DPM, R-CNN의 경우 classification, post processing 을 수행하지만 YOLO는 한번에 추론을 수행함
2.1 DPM(Deformable Parts Models)
- sliding window
2.2 R-CNN
- Generate Boudning Boxes : 박스를 무작위로 생성
- Classification : 분류를 수행함
- Post-Processing(refinement, elimentation, rescore) : 후처리를 수행
2.3 YOLO
- Resize Image : 이미지 크기 줄임
- Run Convolutional Network : 추론
- Nonmax suppression : 이미지를 그리드 셀로 분할한 후, 각 그리드 셀은 object detection을 수행함, 이 때, 경계선에서 겹치는 object는 nonmax suppression으로 걸러냄
3. YOLO 특징
3.1. grid cell 생성
-> sxs 개의 grid cell을 생성하며, 논문에서는 7x7 로 나눔
3.2 bounding box (x,y,w,h)
-> 각 cell은 b개의 bounding box를 생성하며, 논문에서는 각 cell 당 2개의 bounding box 를 생성함
-> 학습으로 출력되는 x,y,w,h는 이미지 크기로 나눈 0~1 사이의 값임
3.3 confidence
-> 물체가 많이 포함되어 있는지 비율/ Pr(object) * IOU
->그림에서 confidence 가 높은 bounding box는 진하게 표시를 함
3.4 class probablity (클례쓰 확률)
-> pr(Class | Object)
-> 각셀은 하나의 class 를 갖고 있다고 판단하므로 각 셀에서 나오는 bounding box는 같은 class를 갖고 있다고 판단
3.5 학습 기법
- 1000 class갖는 image net 데이터로 pretrain으로 학습
- classifier 부분에 fully connected layer 와 CNN을 결합하여 추가 학습
- input size를 224x224 -> 448x448로 늘려서 학습을 학습
3.6 YOLO Model
- googleLeNet (inception v1) 을 따르고 있음
3.7 tiny YOLO
- 일반 YOLO는 - 24개의 convolution layer + 2 fully connected layer, 1X1 reduction layer 사용
- 최종적으로 confidence 와 class probablity를 곱하여 pr(class) * IOU 를 스코어로 사용함
4. TRAIN 전략
- epochs = 135
- batch size = 64
- momentum = 0.9
- decay = 0.0005
- learning rate = [0.0001,0.001,0.0001,0.00001]
- dropout rate = 0.5
- argumentation = [scaling, translation, exposure, saturation]
5. NMS(Non Maximum Suppression)
- confidence 와 class probablity 를 곱하여 값이 큰 순서대로 나열함
- 가장 큰 값의 bounding box와 그 다음으로 큰 bounding box를 비교하여 큰 값의 bounding box를 기준으로 IOU가 0.5 이상 겹치면 지워나가는 방식으로 bounding box를 없앰
- 각 class 별로 모두 수행하여 나온 bounding box만 추려냄
6. Loss 함수
- 물체가 있는 bounding box와 없는 bounding box 를 나누어 cost 함수를 구성함
- width 와 hedight는 큰 bounding box의 변화보다 작은 bounding box의 변화에 민감하게 반응하는 것을 없애고자 루트를 씌워서 해결함
7. YOLO 한계
- 물체의 중심이 같은 경우, 한 그리드 셀은 한가지 class 만 분류하기 때문에 오차가 발생할 수 있음
- 같은 셀 안에 여러개의 물체가 동시에 나타마녀 성능이 좋지 않으므로 이럴 경우 grid cell을 작게할 필요가 있음
- Localization 에러를 항상 포함하고 있음
8. 정리
- 빠름
- end to end learning
- false positive 가 덜 나옴
- 최신 모델보다는 정확도는 떨어짐
- 다른 모델과 결합하였을 때 성능이 더 좋게 나옴을 확인함
- 예술 작품과 같은 다른 도메인에서 성능이 잘 나옴을 확인함
9 Reference
1] 유튜브 내용 : www.youtube.com/watch?v=eTDcoeqj1_w&t=1057s
2) 논문 원본 : arxiv.org/abs/1506.02640
'AI (Artificial Intelligence) > 논문 리뷰' 카테고리의 다른 글
[과적합 줄이는 방법] Early Stopping, Dropout, Batch Normalization (0) | 2021.02.24 |
---|---|
[GAN 기초] GAN이란 무엇인가? Loss 함수는 어떻게 계산하는가 (0) | 2021.02.23 |
[개념 설명] Object Detection 평가 방법[2](IOU, AP, mAP) (0) | 2021.02.02 |
[개념 설명] Object Detection 평가 방법[1] (0) | 2021.01.31 |
[논문 설명] Multimodal Unsupervised Image-to-Image Translation(GAN/2018.04/NVIDA) (0) | 2020.10.29 |