티스토리 뷰
2021/02/22 - [AI/Baseline] - Selective Search, one of the Region Proposal
Selective Search, one of the Region Proposal
2021/02/22 - [분류 전체보기] - 1-stage Detector VS 2-stage Detector 1-stage Detector VS 2-stage Detector 이전에 DetectoRS 이해를 위한 스텝을 나눴다. 2021/02/22 - [분류 전체보기] - Detecto RS를 이해..
cho-akashic-records.tistory.com
이전 글에서 2-stage는 객체의 검출(1)과 분류(2)가 순차적으로 이뤄지는데 반해, 1-stage에서는 해당 과정에 한번에 이뤄진다고 했다. 그렇다면 이미지에서 객체의 검출과 분류는 어떻게 이뤄지는 걸까?
일단 이미지를 임의로 깍뚝썰기(grid) 해서, 해당 부분에 대한 box를 그린다.
다시말해 , 하나의 이미지를 장지문 이라치면 구멍하나를 내서 그 부분만 보고 파악을 하는 것이다.
그런데 장지문에 눈을 가까이 대면 위아래로 조금 더 볼 수가 있다. (이 개념은 논문과 상관없는 내용이나 비유를 위해 사용한다.) 위 아래 추가적으로 보는 부분을 anchor box라고 해보자. anchor box는 해당 grid cell에서 얼만큼 '더' 볼 지를 설정한다.

-방금은 운이 좋은 경우(..) 이고 평범하게 (1,1)픽셀로 진행하면 이렇다.

*bounding box
* bounding box는 보통 추정된 객체를 그리는 사각형을 부르는 말이다. 대부분 bounding box가 객체를 그리는 경우가 많은데, 그것은 높은 일치율에 해당하는 객체'만'을 표시했기 때문이다. (보통 accuracy 0.5 이상을 걸러서 표시함) 안그러면 bbox(bounding box)가 난잡하게 표시된 것을 볼 수 있다.
+그려진 여러 개의 bbox는 confidence가 높으면서도 겹치지 않는 형태만 남기고 나머지는 필터링 된다. 이를 NMS과정이라고 하는데, 후에 기회가 되면 다뤄보자.
따라서 여기까지 bbox를 그리는 과정과 객체에 대한 확신(confidence) 을 구하는 과정에 대해 설명했다.
이를 두가지 방향으로 나누자면 아래와 같다.
bbox, 일치율, 그리고 각 셀에 대해서 높은 확률을 가진 클래스(;카테고리;라벨)을 알려주는 class probability map이다.
아래 그림이 2갈래로 나뉘어져 헷갈릴 수 있는데, 위에는 bbox와 confidence를 표시한 것이고, 아래는 각 셀이 어떤 클래스로 분류되었는 지를 표시한 것이다.

*주의할점: class probability map의 사각형 색상은 final detections 의 객체 카테고리 색상과 일치하지 않는다.
+Figure 2 의 prediction tensor 가 S x S x (B * 5 + C) 개 인 이유 (심화)
텐서는 연산 단위이다. 따라서 텐서 갯수란, 그만큼 연산을 해야된다는 뜻이다. (연산 횟수)
S 는 그리드 크기다. 셀에 대한 연산을 진행하면 셀 갯수 만큼 진행할 것이라 경우의 수는 S x S 가 곱해진다.
B는 anchorbox 개수이다. 아까 anchor box를 장지문을 통해 얼마큼 '더' 볼지를 설정한다고 했는데, 다시 말하자면 중심점을 기준으로 몇 대 몇의 비율인 사각형을 그려서 객체를 확인할 것인지에 대한 값이다. 위 예시에서는 anchorbox 가 2개 사용됐는데, B개라면 경우의 수가 B 배만큼 커질 것이다.
갑자기 상수인 5가 나와서 당황스러울 수 있다.
당황하지 않고, 5는 bbox 에 대한 요소이다. 사각형 기준의 (x,y)좌표,크기 (w,h)그리고 객체 일에 대한 확신(c)이다.

마지막으로 C는 Classification 개수 이다.
C는 박스의 confidence score로 Pr(Object) x IOU,
물체가 있을 확률과 실제 물체의 바운딩 박스와 얼만큼 겹치는지에 대한 값과의 곱.
여기서 IOU는 intersection of Union으로 예측된 바운딩 박스가 실제 바운딩 박스(truth ground value)와 얼마나 겹치는지를 계산한 값(블로그 인용)
=이게 말이 겹쳐서 읽다보면 좀 헷갈린다. 다시 말해,
모델은 주어진 인풋 이미지에 따라 잘배웠든 못배웠든 추론을 하며, 추론 결과 bounding box의 위치와 카테고리에 대한 확률을 내놓는다.
이 확률을 Pr(Object)라고 한다.
그리고 그 추론 결과 중 나머지인 bounding box가 실제로 정답인 bounding box와 얼만큼 일치하는 지 그 비율을 구한 것이 구한 것이 IoU다. (Interestor of Union)
이 둘을 곱하는게 무슨 의미냐면 해당 좌표의 일치율(추론/정답의 비율) * 해당카테고리일 확률 = 해당 좌표에 해당 카테고리일 확률이 된다.
만약 사진에서 나오는 개, 자전거, 자동차 정도의 class를 가졌다면 (C=4) 각 셀에서 bounding box를 그려서 개, 자전거, 자동차일 확률을 각각 추론(Inference)한다.
아까의 두갈래 이미지를 수식으로 나타낸다면
SxS x B*5 + SxS x C 가 된다.
이를 정리하면 S x S x (B * 5 + C) 가 된다.
--
결론 : 1-stage detection 은 객체를 이렇게 검출/분류한다. 검출과 분류를 두 번 순차적으로 진행하는 2-stage detection 과 이런 점이 다르다.
출처 :
1. [논문] YOLOv3: An Incremental Improvement 분석 taeu.github.io/paper/deeplearning-paper-yolov3/
2. YOLO in supervisely
'AI > Baseline' 카테고리의 다른 글
확률통계 1 (0) | 2022.10.06 |
---|---|
Deformable Convolutional Networks(DCN) (0) | 2021.03.18 |
Deformable Part Model(DPM) ; (0) | 2021.02.26 |
Selective Search, one of the Region Proposal (0) | 2021.02.22 |
1-stage Detector VS 2-stage Detector (0) | 2021.02.22 |
- Total
- Today
- Yesterday
- Group Acitivty Recognition
- /var/log/fontconfig.log
- yolov3 #tensorflow_convert
- torchmodel
- 샴네트워크
- tf version porting
- Chatgpt4
- /var/log/tallylog
- tf2to1
- /var/log/alternatives.log
- TransferLearning
- Source-free unsupervised domain adaptation
- Arbitrary image stylization
- Deformable Part Model
- Deformable Convolutional Networks
- DetectoRS
- tensorflow convert
- StyleCLIP
- 1-stage detection
- neural network applications
- 첫논문
- 딥페이크탐지
- 전이학습
- max-margin_loss
- alternatives.log
- ctfloader
- /var/log/faillog
- textual guidance
- 도메인 어댑테이션
- batch란
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |