Open 17011813 opened 5 years ago
YOLO(You Only Look Once)는 각 이미지를 S x S의 눈금으로 나눈다. 각 눈금은 N 개의 경계 상자와 신뢰를 예측. 신뢰도는 경계 상자의 정확성과 경계 상자에 실제로 객체가 포함되는지 여부 (클래스에 관계없이)를 반영. 두 클래스를 결합하여 예측 된 상자에 각 클래스가있을 확률을 계산할 수 있다. 따라서 총 SxSxN 상자가 예측됨. CNN에서는 런타임에서 이미지 한번만 실행. 그에 반해 YOLO는 이전 방법에서 생성 된 영 만 보는게 아니라 전체 이미지를 한 번에 봄. 초고속이고 실시간이다~!~!! 근데 YOLO 단점이 한개의 그리드에서 한개의 클래스만 예측해서 매우 작은 객체 있을 경우 잘 안됨.
SSD(Single Shot Detector)는 입력 이미지에서 컨볼루션 네트워크를 한 번만 실행하고 기능 맵을 계산. 경계 박스와 분류 확률을 예측하기 위해 feature 맵에서 작은 3x3 크기의 convolution 커널을 실행. 각 컨볼루션 계층은 서로 다른 스케일로 동작하기 때문에 다양한 스케일의 객체를 감지 할 수 있다~! SSD는 faster RCNN이랑 비슷하게 측면 비율의 앵커 박스를 사용하며 박스 학습보다는 오프셋을 배운다.
----------------------------------------------최종 간단 비교---------------------------------------------------- 정확도를 높이고 싶다 ) faster RCNN 속도 빠른게 최고다 ) YOLO 계산 용이한게 최고다 ) SSD
전체적으로 우수한거는 SSD이고 무조건 정확도 와따짱은 faster RCNN 쓰자아아아ㅏ아아앙뿌앙뽕~! 오늘 issue 의 참고 문헌 : https://cv-tricks.com/object-detection/faster-r-cnn-yolo-ssd/
@PARKMIHE 현 프로젝트에서 검출기를 쓰고있나요?
수업 시간에 배운 CNN은 기본적이지만 너무 느리고 비싸다. 슬라딩 윈도우 탐지기로 생성 된 수많은 패치에서 CNN을 실행하는 것은 불가능하다. 그래서 나온 새로운 방법이 RCNN~!~!
R-CNN은 S elective Search 라는 객체 제안 알고리즘을 사용하여이 문제를 해결. RCNN 수행 3단계)
그러나 RCNN 여전히 느려서 SPP-net사용. SPP-net을 사용하여 전체 이미지에 대한 CNN 표현을 한 번만 계산하고이를 사용하여 선택 검색에서 생성 된 각 패치에 대한 CNN 표현을 계산. SPP-net은 기존에 배운 CNN에서 사용한 max-pooling과 반대로 마지막 convolution layer 다음 공간 풀링을 사용. SPP 계층은 임의의 크기의 영역을 상수의 bins로 나눈다. 각 풀마다 최대 풀이 수행됨. bins의 수는 동일하게 유지되기 때문에 아래 그림과 같이 일정한 크기의 벡터가 생성됨. 근데 SPP에도 단점 있음!!!!!! 공간 풀링 계층을 통한 back propagation 수행 어려움... 그래서 발전된게 fast RCNN~!~!
"fast" RCNN은 RCNN 과 SPP-net을 합친 발전된 방법. 여기서 10배 더 빠르게 발전한 것이 "faster" RCNN.
faster RCNN는 selective search를 매우 작은 convolutional network (Region Proposal Network)로 대체. Faster R-CNN은 오브젝트의 종횡비와 스케일의 변화를 처리하기 위해 앵커 박스를 도입. -----------------------------------------지금까지의 RCNN 비교----------------------------------------