욜로 모델을 제대로 읽어보는 건 처음인데 어떤 모델인지만 알고 그 안을 들여다보는 건 숙제 같은 느낌이라 자꾸 미뤄왔던거 같다. 이번 기회에 꼼꼼하게 읽어보고 욜로기반으로 개인 프로젝트까지 진행해보려고한다.
욜로는 빠르고 쉽게 가져와서 사용할 수 있는게 큰 장점인거 같다. 그 이유로 실제 산업이나 현장에서도 많이 사용하는 것 같다. 그러나 아쉬운 점은 최근에 나온 모델들에 비해 정확도가 낮은편이지만 아직은 단점보다 장점이 큰 모델이다.
Localization errors: 주어진 이미지 안에 object가 이미지 안에 어느 위치에 있는지 위치 정보를 출력해주는 것으로 주로, bounding box를 많이 사용하며 주로 bounding box의 네 꼭지점 pixel좌표가 출력되는 것이 아닌 left top, right bottom 좌표를 출력한다.
False positives: 실제로 객체가 없지만 객체가 있다고 판단하는 것
욜로를 사용한 이미지 프로세싱은 쉽고 직관적이다.
3번이 이해하기 어려웠는데 그림에는 Non-max suppression이라고 나와있어서 추가로 찾아보니 이해가 갔다.
[NMS] Non max suppression
NMS란 object가 존재하는 위치에 여러개의 점수가 높은 바운딩박스로 만드는데, 이중 하나를 선택해야하는데 이때 사용하는 기법이 NMS이다.NMS 과정
- 모든 바운딩 박스는 자신이 해당 객체를 얼마나 잘 잡아내는지 나타내는 confidence score를 가지는데 threshold 이하의 confidence score를 가지는 바운딩박스는 제거한다
- 남은 바운딩 박스들을 confidence socre기준으로 내림차순 정렬한다
- 맨 앞에 있는 바운딩박스를 기준으로 다른 바운딩박스와 IOU값을 구한 후 IOU가 treshold 이상인 바운딩 박스를 제거한다. (바운딩박스끼리 IOU가 높을수록=많이 겹칠수록 같은 물체를 검출한다고 판단해서)
- 위의 과정을 순차적으로 시행 후 모든 바운딩박스를 비교하고 제거한다
- confidence threshold가 높을수록, IOU threshold가 낮을수록 더 많은 바운딩 박스가 제거됨
출처 및 참고하면 좋은 링크: https://wikidocs.net/142645
Grid Cell
- 각각의 그리드셀은 Bbounding box와 각각의 박스의 confidence 점수를 예측한다
- confidence score는 어떻게 물체가 있는지 확신할수 있게하고 어떻게 예측을 정확하게 하는지를 알려준다
- 해당 셀에 물체가 없다면 점수는 0이 되거나 예측된 박스와 정답은 맞춘거 사이의 IOU가 confidence score 점수가 같아야한다
- 또한, 그리드 셀은 클래스의 조건부 확률을 예측한다
- 바운딩 박스의 수와는 상관없이 그리드셀당 하나의 클래스 확률만 예측한다
Bounding box
- 바운딩 박스는 5개의 예측(x, y, w, h, confidenc)로 구성된다
- x, y는 바운딩 박스의 중심점을 의미하고 그리드셀의 경계에는 상대적이다
(헷갈리면 안되는 포인트인데 bounding box랑 grid cell를 구분해서 이해가 필요함)- 높이와 너비를 전체 이미지를 기준으로 예측한다
이 차트는 localization과 백그라운드 에러의 퍼센테이지를 나타낸다
욜로는 localization error(19%)를 보이지만 Fast R-cnn은 백그라운드 에러(객체가 없는데 객체가 있다고 예측하는것)가 13.6%를 차지한다