티스토리 뷰
객체 검출 알고리즘과 코드
1. R-CNN(Regions of the convolutional neural network)
- Girshick이 제안
- 몇개의 박스를 제안하고 박스 중 하나가 실측값과 일치하는지 확인
- we focused on two problems:
(1) localizing objects with a deep network
(2) training a high-capacity model with only a small quantity of annotated detection data.
- Detection의 경우 이미지 내에서 object를 localizing 요구
-> 해결방법 1. sliding window 방식 적용 2. high spartial resolution 유지하기 위해 5개의 cnn layer 적용
- Selective Search 제안
1. Selective Search(선택적 검색)? 다양한 크기의 윈도우 색상/질감을 그룹화해 영역을 제안
- greedy 알고리즘사용, region 기준으로 유사한 영역 결합
2. Selective Search은 blob과 같은 구조를 찾는다.
3. 픽셀로 시작해 더 큰 크기의 blob을 만들고, 약 2,000개의 영역을 제안
- 본 논문에서는 크기가 조정되고 AlexNet/VGG/Inception/ResNet CNN 아키텍쳐 사용
- CNN 마지막 레이어에서는 객체가 없는 클래스를 사용하는 객체 식별 SVM으로 훈련
- 박스는 이미지 주변의 박스 최적화하여 추가로 학습
- 하지만 CNN에 들어갈 영역은 한정되어 있기 때문에 warp(압축)하여 학습함
- Fine tuning
(1) SGD(stochastic gradient descent) 방식으로 CNN paramteter update
(2) CNN에서의 feature map은 SVM 통해 분류와 bouding regression 진행
(3) SVM 학습시 NMS(non-maximum suprression)과 IoU 개념 활용
- NMS(Non-maximum suppresion)
(1) 학습 완료시 모델 예측시 여러개의 boudning boxes =proposals 얻을 것
(2) 이때 NMS 알고리즘 사용해서 bouding boxes 개수를 줄임
(3) IoU값으로 정렬 시킨 후 overlapping 비교 뒤 특정 threshold이상면 지워버리고 이 과정을 반복하여 삭제
- R-CNN 단점
(1) Selective Search을 통하여 여러가지 제안을 해야하기 때문에 많은 추론을 계산해야함 (또한 Selectivec Search경우 CPU로 계산하기 때문에 시간이 많이 소요)
(2) 훈련을 받아야하는 분류기가 있음 SVM -> 매개변수 개수 증가 -> real time 분석이 어려움
(3) end to end 훈련이 없다. (end to end 훈련이란? 전체를 모델로 한번에 학습하는 훈련)
(논문 출처) https://arxiv.org/pdf/1311.2524.pdf
2. Fast R-CNN
- Girshick이 제안
- CNN 추론을 한번만 수행하기 때문에 연산량을 줄 일 수 있음
- RoI (Region of Interest pooling) - 네트워크를 제안하거나 경계박스를 선택하기 위해 사용
- RoI 경우 CNN 특징 사용하여 영역에 맞춰서 pooling 시행,
- R-CNN과 마찬가지로 Selective Search 시행
(논문 출처)https://arxiv.org/abs/1504.08083
3. Faster R-CNN
- Ren에 의해 제안
- Selective Search대신 Region Proposal Network사용
- Faster R-CNN과 Fast R-CNN 차이?
(1) Faster R-CNN이 선택 검색 대신 제안을 위해 VGG와 인셉션 같은 CNN 기능 사용
(2) CNN기능은 영역 제안 네트워크를 통해 주가적으로 전달
(3) Sliding Window는 잠재적 경계박스와 score 가지는 특징을 결과로 전달
(4) 특징을 한번에 계산해 연산과정 절약, Fast R-CNN 보다 빠름
(논문 출처) https://arxiv.org/pdf/1506.01497.pdf
4. SSD(Single Shot multi-box Detector)
- 모든 방법 중 가장 빠른 방법
- 객체를 예측하고 경계박스를 찾는 작업을 동시에 함
- 훈련 도중에 negative 값이 많아 클래스의 불균형이 심하게 발생할 수도 있음.
(논문 출처)
<논문 보는데 참고한 출처>
0. https://curt-park.github.io/2017-03-17/faster-rcnn/
1. http://incredible.ai/deep-learning/2018/03/17/Faster-R-CNN/
2.
3.
4.
'인공지능 > 딥러닝' 카테고리의 다른 글
딥러닝(Deep Learning) - 오버피팅(Overfitting)과 언더피팅(Underfitting) (0) | 2020.06.11 |
---|---|
딥러닝(Deep Learning) - CNN 최신 분류 아키텍쳐(AlexNet,VGG-16,Inception,ResNet,MobileNet) (0) | 2020.06.11 |
딥러닝 - EfficientNEt (0) | 2020.01.16 |
딥러닝(Deep Learning) - 활성화 함수 (0) | 2019.10.27 |
딥러닝(Deep Learning) - seq2seq, Attention Mechanism (0) | 2019.10.26 |