해결된 질문
작성
·
673
1
안녕하세요, 선생님. 늘 좋은 수업 감사합니다.
다름이 아니라, object detection을 위한 custom dataset annotation을 만드는 도중에
'겹쳐져있는 물체'에 대한 의문 사항이 생겨 글 남깁니다.
가급적 bounding box끼리는 겹치지 않게 하는 것이 좋다고 강의 중 언급하셨는데요,
다른 class가 아니라 같은 class의 물체가 겹쳐있을 때에도 둘 이상의 bbox는 겹쳐서는 안되나요?
겹침을 피하기 위해 bbox를 그리다보니 첨부 이미지와 같이 물체 전체를 담지 못하고 일부가 잘리게 되는데요, object detection 예시들을 보면 겹쳐있는 물체(ex.이동중인 사람들)들도 각각을 잘 감지하는 것을 확인할 수 있습니다. 겹치지 않도록 annotation한 ground truth를 학습했는데 어떻게 그와 같은 결과가 가능한 걸까요?
답변 1
1
안녕하십니까,
잘 듣고 계시다니, 저도 기분이 좋습니다 ^^
학습 데이터에 오브젝트 들이 겹치지 않으면 좋다는 의미는 온전하게 해당 오브젝트들의 특성을 학습할 수 있도록 만들어주면 좋다는 의미 입니다. 이건 다른 class이든 같은 class이든 동일하게 적용됩니다.
그런데 현실적으로는 학습데이터가 완벽하게 오브젝트끼리 분리되어 있을 수는 없을 겁니다. 전체 학습데이터 중 오브젝트들이 분리되어 있는 이미지들로 주로 학습데이터를 구성하고, 일부 데이터의 경우는 겹치는 이미지를 사용해도 괜찮습니다. 그리고 겹치는 이미지들의 bounding box도 너무 정확하게 해당 오브젝트 영역으로 정하지 않고, 어느정도 겹치는 오브젝트까지 포함해서 bounding box를 정해 주셔도 됩니다.
보통 오브젝트들이 분리되어 있는 이미지로 학습 데이터를 구성해서 모델을 학습 시키면 예측 시 겹치는 오브젝트들도 잘 detect합니다. 딥러닝 기반의 object detection은 이미지 상의 object의 특징을 학습해서 예측하는 것이므로 온전한 오브젝트로 학습을 시키면 겹치는 오브젝트의 경우 상대적으로 예측 확률을 떨어질 수 있지만 그래도 잘 예측합니다.
반대로 겹치는 오브젝트가 너무 많은 이미지로 학습데이터를 구성해서 학습을 시키면 이미지 상의 object의 특징을 상대적으로 잘 파악하지 못해서 모델 성능이 떨어질 수 있습니다.
하지만 전체 데이터에서 어느 정도 수준까지는 겹치는 object를 학습 데이터로 사용해 주는 것은 별 문제가 되지 않으며 상황에 따라서는 좀 더 나은 모델 성능을 발휘 할 수도 있습니다.
감사합니다.