생태계를 모니터링에서의 물체 탐지
오늘은 시간적 맥락을 이용한 물체 탐지(Leveraging Temporal Context for Object Detection)에 대한 내용입니다. 생명체들의 다양성이나 변화 등을 관찰하는 연구들에서는 생태계를 모니터링하는 것이 도움 됩니다. 이를 위해서는 질 좋은 데이터들이 확보돼야 하는데, 데이터 수집을 위한 센서 구성을 하는 데 드는 비용은 적어졌지만 아직도 정확하고 폭넓게 데이터를 분석하는 데에는 한계가 있습니다. 특히 사진이나 비디오를 데이터를 기반으로 할 때, 실제 모니터링할 때에는 리소스 제약으로 질이 낮은 사진이나 비디오 데이터를 얻는 경우가 많습니다.
생태계를 모니터링에서의 컴퓨터 비전 모델에 필요한 요구사항
컴퓨터 비전 모델은 사진의 초점이 맞지 않거나 조명이 낮은 경우 등의 다양한 실생활에 생길 수 있는 비전 관련 이슈에 잘 대응되어야 합니다. 또한, 고정되어 있는 카메라는 같은 장면을 지속적으로 찍기 때문에, 반복되게 같거나 비슷한 장면이 찍히는 경우가 생깁니다. 이는 충분한 데이터 변동을 주지 않아 ML 모델은 (중심을 두어야 하는 물체보다) 오히려 배경 상관관계에 더 집중하여 학습하므로 모델을 일반화하는 방안이 필요합니다. 생태계 분석을 위해 다양한 비디오 데이터를 모으고 있지만, 데이터를 수집하고 클래스를 분류하는 작업은 아직까지 느리고 지역적 특성이나 분류 그룹에 따라 다양하고 대표적인 데이터가 필요합니다.
일반화를 개선한 Context R-CNN 제안
문제들의 해결을 위해, 알고리즘적으로 새로운 카메라 배치들에 대해 일반화를 개선하여 국제적 확장성을 높이는 보완적인 방법인 Context R-CNN 제안했습니다. 이는 네트워크 안에 있는 각 카메라 배치의 시간에 따른 맥락적 단서를 이용하여 새로운 배치들이 카메라들의 대규모의 학습 데이터없이 물체를 잘 인지하게 도움을 줍니다.
이슈가 있는 이미지들이 생기면, Context R-CNN은 동일한 카메라의 최대 한 달 동안의 이미지들을 이용하여 이슈 있는 이미지의 물체를 파악하고 식별합니다. Context R-CNN은 고정된 카메라에서 촬영된 이미지들 내에서 높은 상관관계를 기반으로 이슈 있는 데이터의 성능을 향상시키고, 사람의 개입 없이 새로운 데이터 배치들을 일반화하는 데도 도움이 됩니다. 방법은, 1. 고정된 Feature 추출기를 이용하여 긴 시간 범위를 가지는 이미지들에서 맥락적인 기억 저장소(Memory bank) 구축하고, 2. 기억 저장소에서 집계된 연관 있는 맥락을 이용하여 이슈 있는 환경의 이미지에서 물체를 감지할 수 있게 도와주는 Context-RNN을 이용하여 물체를 감지합니다. 드물거나 불규칙적인 샘플링 속도에 대응하기 위해 기억 저장소에서 집계 시 attention을 이용합니다.
Context R-NN 구체적으로 기존의 Faster R-CNN의 두 단계를 기반으로 구성됩니다.
1. Faster R-CNN의 첫 번째 단계로 가능성 있는 물체들을 제안합니다.
2. similarity-based attention : 기억 저장소(M)에 있는 feature들이 현재의 제안된 물체와 얼마나 연관성이 있는지 결정합니다. M에서 나온 관련성 가중치 합을 구하여 객체별 맥락 feature를 구성하고 원래 물체의 feature에 이 값을 더합니다.
3. Fater R-CNN의 두 번째 단계 : 맥락적 정보가 더해진 것을 기반으로 각 물체에 대해 분류합니다.
일반화와 정확도 개선 및 이해가 필요한 점
기존의 Faster R-CNN baseline에 다른 지역의 야생의 상황에서도 잘 작동함. 맥락적 시간축이 길어질수록 성능이 더 좋아집니다. 단순히 고정된 비전 쪽 센서뿐만 아니라 다양한 센서에도 적용이 가능할 것으로 기대됩니다.
문제 제기한 부분이랑 해결 방법이 약간 매칭이 잘 안돼서 이해하기 힘들었는데, 여기서 제시한 Attention이나 Memory bank, Faster R-NN에 대한 기본 지식이 있어야 어느 정도 이해가 될 것 같습니다. 지금 포스팅된 실험 데이터는 기존 비전의 알고리즘을 좀 더 좋게 한 것으로밖에 안 느껴져서, 처음에 안개 끼거나 외부 상황으로 인해 물체 구분이 기존에는 안되는 부분이 잘 되었다는 예시가 좀 더 설명되었으면 하는 아쉬움이 느껴집니다. 주기적으로 일어나지 않는다던가 갑자기 예외적으로 일어나는 상황에 대해서는 대응하기 쉽지 않다는 생각이 듭니다. 새로운 배치들에 대해서도 작동할 수 있다는 게 Memory bank 때문인 거 같은데, 실제로 어떻게 작동했는지 좀 더 알아볼 필요가 있습니다. 기대효과에서 말했듯이 다른 센서들에 적용해도 접근법 자체는 작동할 수 있을 것 같은데, 한 번 실험해 보고 싶습니다.