본문 바로가기
SWE/Learning Diary

딥러닝 YOLO 논문 기반으로 명쾌하게 이해하기

by S나라라2 2019. 5. 1.
반응형

참고) yolo를 이해하려면, 먼저 CNN(Convolutional Neural Network)과 Convolution(합성곱) 을 이해해야한다.

 

yolo는 CNN의 한 종류이다.

CNN은 수많은 행렬 곱셈의 반복으로 이루어져 있어서, 각각의 계산 자체는 매우 단순하지만,

여러 layer를 거치기 때문에, 시간이 오래 걸린다.

 

시간이 오래 걸린다는 단점을 보완하기 위해 

나타난게 YOLO(You only look once)!

 

YOLO의 가장 큰 특징은 "단 하나의 네트워크가 한 번에 오브젝트의 위치 찾기와, 클래스 분류가 동시에 이루어진다"는 점이다.

그것이 가능한 이유는, (또 다른 매우 중요한 특징!) 

YOLO는 인풋 이미지를 7x7 그리드로 분할하여, 각 그리드 셀에 오브젝트가 있는지 없는지 검사하기 때문이다.

(= 이미지를 7x7 격자로 나눠서, 한 칸 안에 내가 찾으려는 객체가 있는지 확인한다는 말이다. )

이러한 점은 R-CNN에서 ROI(객체 후보)를 1천개 이상 제안하는 것과 비교하면 매우 적은 숫자이다.

(따라서 속도가 빨라질 수 있었던 것이다. 그러나 성능이 떨어질 수 있음.)

 

YOLO 알고리즘 Summary

이미지 출처 : sogangori 블로그

1. 입력 데이터인 RGB 이미지

2. 전체 좌표를 7x7 그리드 셀로 나눈다.

3. 각 셀에 어떤 클래스가 있으며, 클래스의 위치정보를 저장한다. ( confidence, x, y, width, height )

4. 각 셀에 특정 객체가 있을 확률 confidence값이 threshold보다 작은 경우 0으로 처리, 

혹은 그 객체의 위치가 겹칠 경우 보류,, 등등 처리..

 

YOLO를 단순히 요약하면 다음과 같다. 

 

정말 간략하게 요약하려다보니 중요한 부분을 많이 놓친 것 같은데, 더 자세한 내용은 논문이나 다른 링크를 참조하면 좋을 것 같다.

내가 매우 유용하게 참조한 링크는 아래와 같다.

http://blog.naver.com/PostView.nhn?blogId=sogangori&logNo=220993971883

참조하기 좋은 PPT : https://docs.google.com/presentation/d/1kAa7NOamBt4calBU9iHgT8a86RRHz9Yz2oh4-GTdX6M/edit#slide=id.p

 


FOR FUN

YOLO 알고리즘 연구자인 Joseph Redmon는 정말 독특한 사람같다.

이력서만 봐도 본인 스스로를 little pony라고 지칭하면서 경력들을 설명하고 ㅋㅋㅋ

알래스카에 라디오 DJ를 하러 간 적도 있다 ㅋㅋㅋ신기ㅋㅋㅋ

그리고 무엇보다 YOLO이름을 짓는 센스도 You Only Look Once라니! 

멋지당

(Joseph Redmon 개인 사이트가면 resume랑 논문들 볼 수 있음)

 

 

 

 

 

반응형