일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준9012
- 백준10828
- 운영체제
- 이것이자바다9장
- BOJ
- 백준스택
- 합성곱연산
- 카카오코테
- 코딩테스트실력진단
- 딥러닝
- 확인문제
- java
- 백준가운데를말해요
- 가운데를말해요
- 윤곽선검출
- 냅색알고리즘
- 백준평범한배낭
- 코드트리
- 스파르타코딩클럽
- KT포트포워딩
- 코테
- 백준
- 웹개발기초
- 컴퓨터비전
- BOJ1655
- 백준괄호
- 백준온라인저지
- 이것이자바다
- 이것이자바다확인문제
- 2019카카오코테
- Today
- Total
코딩하는 락커
[Week4] 경계 상자 예측하기 + 합집합 위의 교집합(IOU) 본문
앞선 포스팅에서 sliding window를 통해 input이미지의 object detection을 알아보았지만, 여전히 문제는 남아있다. 픽셀상의 문제로 bounding box가 object와 정확하게 일치하지 않는 것이다.
이 문제를 해결하기 위해서는 YOLO(You Only Look Once) 알고리즘을 사용해야 한다. 기본적인 원리는 image classiffy나 object localization과 동일하다.
우선 훈련 셋을 만들기 위해 output 레이블 y를 정의한다. YOLO 알고리즘은 두 객체의 중간 점을 취한 다음, 중간 점을 포함하는 영역에 이 객체를 해당하는 것이다. 그렇게 되면 아래와 같은 사진의 결과 레이블이 나온다. 보라색 레이블은 object가 없는 영역의 결과 행렬이고 초록색 레이블은 object가 있는 영역의 결과 행렬이다.
그러면 그 결과로 8차원 결과 벡터를 갖게 되고, 예시 이미지는 3 x 3 그리드 셀 이미지이기 때문에 전체 볼륨은 3 x 3 이므로 target output은 3 x 3 x 8이 된다. 결과가 나왔으면 방향 전파를 사용하여 input값을 output 볼륨과 매핑하여 신경망을 훈련시고 이렇게 되면 신경망은 object에 있어 정확한 바운딩 박스를 도출할 수 있다.
간단하게 말하자면 객체의 중간 점을 포함하는 그리드 셀 하나에 해당 객체를 할당하는 방법으로 라벨링하면 정확한 object의 bounding box를 얻어낼 수 있다는 것이다.
그렇다면 물체 감지 알고리즘이 잘 동작하는지는 어떻게 알 수 있을까? 합집합 위의 교집합Intersection Over Union이라는 물체 감지 알고리즘 평가 함수를 통해 알 수 있다.
IOU함수란 참 bounding box와 결과 bounding box 사이의 교집합을 계산하는 함수이다. 위 이미지의 빨간색(참 bounding box) 박스와 보라색(결과 bounding box) 박스 사이의 노란색 공통 부분을 의미한다. 그리고 이것을 참 bounding box와 결과 bounding box의 초록색 합집합 부분으로 나누는 것이다. 그리고 그 결과값이 0.5보다 크면 맞다고 판단한다
그리고 만약 더 정확하게 맞추고 싶다면 0.5를 1이하의 더 높은 값으로 바꾸면 된다.
이렇게 IOU를 사용하면 object localization 알고리즘이 정확한지 평가할 수 있게 된다!
'[2020] 📚 DSC 겨울방학 스터디' 카테고리의 다른 글
[Week4] 비-최대값 억제 +앵커 박스 + YOLO 알고리즘 (0) | 2020.02.08 |
---|---|
[Week4] 물체 인식 + 합성곱으로 슬라이딩 윈도 구현하기 (0) | 2020.02.06 |
[Week4] 물체 로컬리제이션 + 특징점 탐지 (0) | 2020.02.03 |
[Week3] 왜 케이스 스터디를 하나요? + 고전적인 네트워크들 (0) | 2020.02.01 |
[Week3] 왜 합성곱을 사용할까요? (0) | 2020.02.01 |