Computer Vision - Object Detection(2)

나라마야·2023년 7월 21일
0

Computer Vision

목록 보기
2/10

지난번에 이어 계속 작성하겠습니다.

객체 탐지 모델의 출력

객체 탐지 모델은 총 두 가지 출력이 있습니다.
1. 분류 결과에 대한 확률 분포
2. 경계 상자

모델의 손실 함수는 경계 상자의 회귀 손실분류의 교차 엔트로피 손실에 추가하며, 일반적으로 '평균 제곱 오차(MSE)'를 사용합니다. 이를 코드로 작성하면

# 모델 예측
class_pred, bbox_pred = model(image)

# 손실값 계산
class_loss = cross_entropy_loss(class_pred, class_true)
bbox_loss = mse_loss(bbox_pred, bbox_true)
loss = class_loss + bbox_loss

# 옵티마이즈
optimize(loss)

이렇게 예측한 결과는 다음 이미지로 나타납니다.

빨간 상자가 실제 상자고, 파란 상자가 예측 상자입니다.

이 예측된 경계 상자가 실제 경계 상자와 얼마나 잘 일치하는지에 대한 점수는 IOU 를 계산해 알 수 있습니다.

객체 탐지의 까다로움

위에서 본 이미지 처럼 하나의 이미지에 하나의 객체만 있을 때 모델이 잘 작동을 하지만, 탐지하고자 하는 객체가 두 개 이상일 때 모델이 잘 작동하지 않을 수 있습니다.

위 이미지처럼 모델은 하나의 경계 상자만 예측 할 수 있어, 두 객체 사이 어딘가에 경계 상자가 그려집니다. 아직 우리가 구현한 모델은 두 객체가 있음을 알지만, 그릴 수 있는 경계상자는 하나이므로 두 객체 중간에 그리게 된 것입니다.

그렇다면 모델에 경계 상자를 그리는 감지기의 수를 늘리면 되지 않은가 하지만, 다음 그림처럼 됩니다.

이에 대한 문제의 이유는, 모델이 각 경계 상자를 각각에 맞는 어떤 객체에 할당해야 하는지 모르고 안전을 위해 두 경계 상자 모두 객체 중간에 배치한 겁니다...

profile
언제나 나 자신에게 되물어 보기. So What?

0개의 댓글