일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- DP
- 코테 문제
- 다이나믹프로그래밍
- 코테
- 포스코 ai 교육
- 초소형머신러닝
- MCU 딥러닝
- 컴퓨팅사고
- 삼성역량테스트
- DP문제
- 삼성역테
- sort
- tflite
- 알고리즘
- tinyml
- 포스코 AI교육
- 임베디드 딥러닝
- TensorFlow Lite
- 코딩테스트
- 삼성코딩테스트
- dfs문제
- 삼성코테
- dfs
- BFS
- 포스코 교육
- 자료구조
- 딥러닝
- 그리디
- 영상처리
- bfs문제
- Today
- Total
코딩뚠뚠
[머신러닝 공부] 딥러닝/SPP Net (object detection) 본문
앞선 포스팅에서 최초의 딥러닝 기술이 적용된 Object Detection 모델인 RCNN에 대해 알아보았다.
이어서 RCNN 의 단점을 극복한 SPP Net 에 대해서 공부해보았다.
1. 배경
1) RCNN의 시간복잡도에의 단점
selective search 를 통해 많은 수의 candidate bounding box를 만들어냈다.
이를 detection 하는데에는 굉장한 시간이 소모되었다. 이를 극복하기 위함
2) warping 으로 인한 왜곡 (Distortion)
RCNN에서 feature를 뽑아내기 위해 AlexNet을 사용해야 해서 이미지의 사이즈를 27x27로 맞춰줘야 했다.
그러한 과정에서 이미지의 왜곡이 발생했다. 이에 대한 단점이 존재했다.
2. 구조
1) RCNN에 비해 CNN연산의 감소
RCNN에서는 bounding box를 생성하고 각각에 대해서 CNN작업을 했다.
2000개의 candidate bounding box가 나왔다면 2000번의 CNN을 수행해야 했다.
SPP-Net은 input 에 대해 CNN을 진행하고 다섯번째의 feature map을 기반으로 candidate bounding box를 선별한다.
결과적으로 CNN을 한 번만 진행하게 된다.
2) warping올 인한 왜곡(distortion) X
spatial pyramid pooling 개념을 사용해 distortion을 없애주었다.
STEP : Input image -> conv layers -> spatial pyramid pooling -> fc layers -> output
1.
다섯번째 conv layer 이후 region proposal 방식으로 candidate bounding box를 선별한다.
2.
bounding box에서 spatial pyramid pooling 알고리즘을 적용한다.
3x3 spartial bin을 얻기 위해서는 13x13크기의 feature에 kernel size=5 stride=4 로 설정할 수 있을 것이다.
SPP-Net은 1x1 2x2 4x4의 spatial bin을 사용한다.
3.
spatial bin을 얻었으면 이들을 모두 flatten시킨다. 1x1 2x2 4x4 의 spatial bin을 flatten 하여 1+4+16 = 21개의 feature가 만들어 질 것이고 이들은 fc layer로 넘어갈 것이다.
3. 성능 및 결과
detection문제는 RCNN과 같이 bounding box regression(BB)을 적용해 학습하였고 결과는 아래와 같다.
정리 :
1. RCNN에 비해 왜곡을 없앴다. (spatial pyramid pooling 이용)
2. CNN연산을 한번만 하여 시간을 단축시켰다.
'공부 > ML&DL' 카테고리의 다른 글
[머신러닝 공부] 딥러닝/Faster RCNN (object detection) (0) | 2021.04.17 |
---|---|
[머신러닝 공부] 딥러닝/Fast RCNN (object detection) (0) | 2021.04.17 |
[머신러닝 공부] 딥러닝/RCNN (object detection) (0) | 2021.04.14 |
[머신러닝 공부] 딥러닝/FCN (Fully Convolutional Networks) (0) | 2021.04.06 |
[머신러닝 공부] KNN의 이해 (0) | 2021.04.04 |