https://arxiv.org/abs/1907.06390
Sequence Level Semantics Aggregation for Video Object Detection
Video objection detection (VID) has been a rising research direction in recent years. A central issue of VID is the appearance degradation of video frames caused by fast motion. This problem is essentially ill-posed for a single frame. Therefore, aggregati
arxiv.org
Motivation.
VOD에서는 물체의 빠른 움직임이나, 카메라의 defocusing, 물체의 pose variation에 의해 한 장의 frame만 이용해서 물체를 detection하는 것이 힘들 수 있습니다. 따라서 다른 frame의 정보를 이용해서 detection을 수행하는데, (2019년) 이전에는 optical flow나 RNN을 통해 이전 frame들의 정보들을 aggregation(통합)했습니다.
https://gaussian37.github.io/vision-concept-optical_flow/
옵티컬 플로우 (Optical Flow) 알아보기 (Luckas-Kanade w/ Pyramid, Horn-Schunck, FlowNet 등)
gaussian37's blog
gaussian37.github.io
하지만 Optical flow나 RNNs들 모두 현재 frame에서 가까운 frame의 정보를 강조합니다. 즉, 어떤 frame에서 물체를 탐지할 때 참조할 만한 정보는 반드시 해당 frame에서 가까운 frame에서 나올 필요는 없습니다. 심지어 motion blur나 camera defocusing은 한 frame에만 발생하는 것이 아니라, 여러 frames들에 걸쳐서 발생하기 때문에 더욱 더 의미없을 수 있습니다. 또한 Optical flow의 경우 열화에도 강건하게 예측하기 위해 사용하지만, 막상 이미지의 열화가 발생하면 optical flow도 정확해지지 않기 때문에 도움이 안될 수 있습니다. 해당 논문에서는 full-sequence level의 정보를 통해 VOD에서의 성능을 끌어올립니다. 아래는 열화가 발생한 예시입니다:

전체 video sequence에서 RoI(region of interests)들을 뽑은 후 이들을 통합함으로써 task를 수행합니다. 참조하는 RoI는 detection하고자 하는 object여야 합니다. 예를 들어, 고양이를 detection하고자 하는데, 갑자기 나무에 대한 정보를 사용할 수는 없는 것입니다. 따라서 해당 논문에서는 cosine similarity와 같은 sementic similarity를 이용해 정보를 통합합니다.
RoI 단위로 aggregation하기 때문에, pixel level의 불필요한 정보들에 대한 계산은 이뤄지지 않고, (탐지하고자 하는 물체에 대한) 정말 중요한 정보들에 대해서만 계산이 이뤄집니다. (하지만 pixel-level의 정보가 필요한 순간이 있을 수 있고, objects들의 관계나 유사도 만으로 feature들을 aggregation하는게 비약이 있지 않나...)
Method.
Sequence Level Semantics Aggregation.
RPN(Region Proposal Network)을 통해 RoI를 만듭니다. 1-stage detector(e.g., YOLO)는 bbox를 이용하지 않기 때문에 instance 단위가 아닌 pixel 단위의 aggregation이 필요합니다. 이는 앞서 말했던 불필요한 계산을 동반할 수 있기 때문에, instance 단위로 feature를 뽑아낼 수 있는 2-stage detector(e.g., Faster-RCNN)의 RPN을 이용합니다. 참고로 이전에 살펴봤던 YOLOV++(Shi et al., 2024)에서는 1-stage detector에 FSM을 달아서 instance 단위로 aggregation을 수행하기 때문에 1-stage의 장점과 2-stage의 instance단위 aggregation의 장점을 살립니다. 아래는 SELSA의 구조입니다:

각 frame의 RoI feature들끼리 cosine similarity를 계산하여 같은 물체라는 것을 판별합니다:

φ(·)와 ψ(·)는 linear projection입니다. 이렇게 얻어진 similarity를 이용해, 증강된 RoI feature를 만듭니다:

full-sequence에서 임의의 object 표현 x에 대해 similarity를 weighted sum 하여 증강된 표현을 얻습니다. 이 표현을 RPN의 output으로 하여 2-stage detector의 두 번째 stage의 입력으로 넣어 최종 출력을 얻습니다.
full-sequence level에서의 aggregation이기 때문에 실시간으로 detection하는 online상황에는 적용하기 힘들며, 적용하기 위해서는 full-sequence에 대해서 aggregation하기 보다는 지금까지 봐왔던 frame들을 이용합니다(frame pool을 관리하며 그 안에서 랜덤으로 선택하거나 sliding window 방식으로 frame들을 참조하는 방식).
Results.

표 1. 은 해당 방법 (c)가 single frame만 사용하는 방법(a)이나 single frame에서 sementic aggregation을 사용하는 방법(b)에 비해 훨씬 더 좋은 방법임을 보여줍니다.

그림 3. 은 참조하는 frame들의 간격을 어떻게 설정하는 지에 따라 성능이 어떻게 바뀌는지를 보여줍니다. (a)에 따르면 참조하는 frame의 개수가 늘어나면 성능이 늘어나며, (b)에 따르면 참조하는 frame의 간격이 넓으면 넓을수록 성능이 좋아짐을 알 수 있습니다. (c)는 랜덤하게 frame들을 선택하는 경우이며, 랜덤하게 5 frames들을 선택하는 것이 21개의 frame을 선택하는 것보다 더 좋은 것을 알 수 있습니다. 즉, 참조하는 frame을 랜덤하게 선택하는 것이 더 좋음을 알 수 있습니다.

표 3. 은 다른 SOTA 모델들에 비해 제안한 모델의 성능이 더 좋음을 보여줍니다.