반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 캐나다 TD 한국인 직원 예약
- 프라이탁
- DTW
- pytorch
- 캐나다 은행 계좌 개설
- GenerativeModel
- 캐나다 은행계좌 개설
- iterm2환경설정
- 프라이탁 존버
- 딥러닝
- MachineLearning
- 캐나다월세
- 캐나다 TDBAnk
- iterm2자동완성
- Docker
- agnoster폰트꺠짐
- iterm2꾸미기
- 콘도렌트
- agnoster폰트
- agnoster폰트깨짐
- 머신러닝
- 캐나다 TD 예약
- 캐나다 TD 한국인 예약
- Flow
- 터미널꾸미기
- Normalizing flow
- 캐나다콘도렌트
- GAN
- EATS
- Generative model
Archives
- Today
- Total
TechNOTE
[논문리뷰] You Only Look Once:Unified, Real-Time Object Detection 본문
You Only Live Once~ 가 아니라 You Only Look Once ㅎㅎ 다시 봐도 논문 이름을 참 잘 지은 것 같다.
- 2016 CVPR Accepted
- https://ieeexplore.ieee.org/document/7780460
내 맘대로 리뷰 시작~
Contribution
- Simple structure & Extremely Fast Inference!
- 이전의 object detection model들은 detector가 따로 필요했다.
- 이 paper에서 저자들은 object detection을 regression problem으로 생각해서 spatially separated bounding obx와 associated class probability를 예측하도록 구성했다.
- 따라서 전체 파이프라인을 single neural network 로 구성이 가능해 end-to-end training을 가능하게 했다.
- 이 Unified architecture는 속도 면에서 큰 성능 향상을 보였다.
Methods
- 전체 모델 구조를 훑어보면 다음과 같다.
- 앞쪽은 image의 feature를 추출하는 feature extractor로 보면 되고
- 뒤쪽의 linear layer는 각 bounding box와 class를 탐색하는 detector로 보면 된다.
- 이 구조를 통하여 [448, 448, 3] 의 image를 [7,7,30] 으로 만들준다.
- Training pipeline은 다음과 같이 구성된다고 생각하면 된다.
- dataset
- input으로는 image [448, 448, 3] 이 들어간다.
- 이 image에 대한 label로는 detect된 object의 주위에 둘러싸인 bounding box 들을 생각해 보면 되는데,
- 다음과 같다.
- 예제로 grid = 3으로 생각했지만 실제에서는 7을 사용했다고 한다.
- width, height를 normalize 하고 top-left , bottom-right 좌표가 주어졌을 때 object 가 위치한 center point와 image의 width, height를 구할 수 있다. 이때 이 center point가 위치한 cell의 confidence 값이 1 이고, 이때의 center x와 center y 좌표는 cell 크기에 맞춰서 rescale 된다.
- traning loss
- 전체적인 loss function은 다음과 같다.
- [448, 448, 3] 의 image가 모델을 통과하면 [7, 7, 30] 이 된다. 이 30개의 channel dimension의 value들을 가지고 object의 center x, y 그리고 w, h, confidence score를 예측하고 해당 cell의 class를 예측한다!
- 한 image당 7*7 개의 cell이 있을 텐데, 모든 cell에 대해서 prediction을 하는 것이 아니라, object center가 위치해 있는 cell에 대해서 (위에서 구했던 confidence 값이 1인 cell에 대해서)만 loss 계산을 진행한다.
- 한 cell 에 대해서 여러 개의 bounding box들이 예측되는데, (이 개수는 학습 시 고정 논문에서는 2 사용) 예측된 값과 ground truth와의 IOU 를 계산해서 더 높은 쪽의 bounding box 를 학습에 사용한다.
- 여기서 학습 시에 ground truth confidence score for obj, 는
- 다음과 같이 나타낼 수 있다. 따라서 각 cell의 Ci는 prediction과 ground truth간의 iou 를 예측하도록 학습되는것이다.
- non-obj의 경우에는 0이 된다.
- 다음은 class prediction인데, 마찬가지로 obj prediction에 대해서만 값을 예측해 준다.
- dataset
- Inference 할 때는?
- tensor [7, 7, 30] 을 가지고..
- object detection
- 각 cell 별로 가장 responsible한 bounding box 결정 [confidence prob을 가지고] -> x, y, w, h 값 얻음
- confidence prob이 너무 낮은 cell들은 버려
- x, y, w, h값을 normalized -> 진짜 scale 로 변환해서 left-top right-bottom 좌표 구함
- object classification
- class prob * conf prob 해서 최종 class probability를 구함.
- 다음과 같이 각 cell 별로 예측된 bounding box 확인 가능
- object detection
- NMS와, threshold detection를 수행해서 probable 한 bounding box 만 남긴다!
- tensor [7, 7, 30] 을 가지고..
Experiments
- 다른 모델들보다, 확연하게 빠른 속도 & 약간 낮은 accuracy 를 보인다. 둘의 trade off가 존재한다고 한다.
- 동영상에 대해서도 real-time detection이 가능하도록 만든게 고무적이다.
- Some limitations
- YOLO는 bounding box predcition에서 strong spatial constraints 를 주는데 (각 grid cell 당 2개의 bounding box..), 이 때문에 근처에 있는 object들을 제한적으로 찾을 수밖에 없다.
- data를 통해서 학습하는 것이기 때문에.. unseen object나 unusal rate object에 대해서는 일반화가 잘 안된다
- incorrect localization..
끝~~ 빨리 학습이 되었으면 좋겠다.
배고프당 .
반응형
'딥러닝, 연구' 카테고리의 다른 글
NVIDIA A100 사용하기 (0) | 2021.08.25 |
---|---|
[논문리뷰] Flow ++ (2) | 2021.05.05 |
[GLOW] Affine Coupling Layer (0) | 2021.04.30 |
Set python3 as default in ubuntu (0) | 2021.04.28 |
[논문리뷰] Glow: Generative Flow with Invertible 1×1 Convolutions (2) | 2020.12.02 |
Comments