저번에는 Action Localization 분야에 대략 어떤 논문들이 있나 리스트를 뽑았었다.
한번 읽어보자.
1. Spatio-Temporal Context for Action Detection
(줄여서 애플 논문)
4페이지짜리 숏페이퍼. CVPR 워크샵 논문이라고 한다.
ablation만 추가로 해서 메인에 내도 승산 있을텐데 왜지
=> 다 읽고나니 왜 워크샵에 냈는지 알 것 같다
Abstract.
최근 연구들은 거의 temporal information은 aggregation된 feature를 사용했는데, 이 논문에서는 그러지 않겠다고 말한다.
short range temporal interaction을 배우기 위해 two cross attention blocks를 사용.
그림을 보면, bbox가 어떻게 연관이 있는지 프레임간 relation을 직접 뽑는 것으로 보인다.
예전에 읽었던 ACAR과는 다른 것을 알 수 있다. ACAR의 경우, 애초에 SlowFast같은 backbone output이 [T*C*H*W]라고 하면, temporal GAP를 적용하여 시간축은 압축해버렸기 때문.
그러면 정작 relation을 계산하기 이전에 이미 aggregation을 해버린 것임.
Introduction.
relation 보는거 중요하니까 그동안 다양한 방법을 썼겠지.
특히나 spatiotemporal 정보들 보는게 몹시 중요하기때문에, 전에 'long term feature bank'라는 연구도 있었음.
이 논문에서는 직접적으로 인접한 프레임들과의 relation을 모델링할것임!
그리고 spatial, temporal이라는 요소를 factorization해서 따로 구하겠다는 아이디어.
Related Works
3DCNN 이런거 빼고 중요한 것 몇개만 적어본다.
AVA Action dataset이 18년도에 나온지라 연구가 엄청 많지는 않아보인다.
- NL Block
feature간의 long range interaction을 볼 수 있다.
여기 설명이 잘 되어있다 https://blog.lunit.io/2018/01/19/non-local-neural-networks/ - Video action transformer network
의외로 CVPR 19. 트랜스포머 난리나기 전이다.
actor RoI들을 attention의 쿼리로 넣었다. - 오디오를 고려하는 논문도 있고, 아까 언급한 long term feature bank도 언급된다.
feature bank의 경우, 전에 ACAR 리뷰하면서 언급했으니 패스 - second order relation을 활용한 논문으로 ACAR을 언급한다. (CVPR 21)
- AIA도 언급한다. ECCV20. read/write 나오는거 봐서 무슨 메모리같은거 정의하나? (이건 안읽어서 모름)
https://arxiv.org/pdf/2004.07485.pdf
이 논문에서는 second-order relation은 고려하지 않았으며, non-aggregated spatial temporal information에 초점을 뒀기 때문에 세컨오더도 나중에 고려하면 좋겠다고 언급했다.
Method.
- Person Detector: central frame에만 적용. 이건 다른데서도 그랬던 것 같음.
SlowFast의 precomputed bbox 사용했음. - feature map F_s, F_f: T*H*W*C에서 H,W는 같고 T와 C가 다름. 비디오를 백본에 넣어서 이렇게 두가지 피쳐맵 뽑음.
백본은 SlowFast50 8*8, NL 적용, Kinetics400 pretrained.
왜 2개이냐고? slow pathway, fast pathway. - Actor Feature: RoI align해서 얻음. N개의 bbox에 대해 각각 [7*7*C] shaped.
얘네들 가지고 relation 잘 계산해서, 마지막에 Global Max pooling -> 2 linear layer -> output.
그럼 핵심이 되는, 중간에 relation 계산하는 부분은 어떻게 되어있는지 봐야겠지.
cross attention mechanism.
Q: actor features: 다른 논문들과 다르게 spatial pooling은 적용하지 않았다고 한다.
actor가 그 주변 정보와 어떻게 상호작용하는지를 배우고 싶으니까.
K, V: backbone features.
아까 F_s, F_f가 slowfast의 아웃풋이라고 했었다.
F_s가 slow features이며 (low frame rate), 이걸 spatial information이라고 여김. 그래서 temporal 축은 pooling해버렸다.
fast는 반대로 temporal information이라고 여기는 것. 그러니 spatial축을 pooling해줬다.
그래서 그림이 spatial, temporal contnext가 저렇게 납작하게 그려져 있음!
걍 그림 보는게 이해가 빠르다.
Experiment.
SOTA와 비교실험.
아니.. 좀 이상한게, ACAR이랑 비교한다고 해놓고서 second order relationship은 제외하고 비교했단다. 엥???
아니 ACAR-Net의 contribution이 second order relation을 보는건데?
논문 제목부터가 actor-context-actor relation 줄여서 ACAR인데요
그럼 ACAR이 원래 first order에는 feature bank (ACFB)를 썼고 second order에는 안썼는데, 이것까지 고려해서 구현 했는지는 언급조차 없어서 reproducing에 몹시 의문이 생긴다.
암튼 그래서 fair comparison이라고 보기 어렵고, SOTA라고 얘기하기도 굉장히 난감하다.
참고로, ACAR 논문 보면, pretrain과 backbone 같은 조건에서 AVA만 2.1인 경우에 성능이 28.3이었다.
백본이 SlowFast101이면 30이 넘었고.
ㄱ-;;
아래는 ACAR 논문 ablation의 일부이며, AVA 2.2, SlowFast50에서 진행되었다. 여기 결과를 살짝 가져와보면,
HR^2O+ACFB가 28.84이다. LFB나 ACFB를 쓰지 않아도 HR^2O가 이미 27.83인지라...
여기서 Baseline+ACRN이라고 써있는걸 가져온 것 같은데, ACRN은 18년도에 나왔던 따로 있는 논문인데 왜 이걸 가져다가 ACAR과 비교했다고 써놨는지 이해할 수 없다.
abstract만 읽어봐도 ACAR-Net이 새로 제안했다는 메인 컨트리뷰션이 HR^2O와 ACFB임을 감안하면 상당히 이상한 비교이다;;
Ablation은 두가지.
1. spatial context vs spatial/temporal context 비교.
2. Actor feature dimension 비교.
actor feature에 spatial dimension을 두느냐, 안 두느냐의 차이.
근데 파라미터 수가 다를텐데 당연히 다 때려넣은게 성능이 좋겠지.
주관적인 결론
애플 논문에서는 slow, fast pathway의 output을 가지고 transformer encoder에 넣어 relation을 인코딩하려는 시도를 했다.
slow에서 먼저 actor-spatial context 관계를 임베딩, 그리고나서 이전 아웃풋-temporal context 관계를 임베딩 했다.
하지만 실험 결과를 아주 자세히 보면, 결국 ACAR처럼 actor-actor의 second order를 보는 게 더 중요하다.
feature bank 관련된거 없이 그냥 High order reasoning 파트만 있어도 애플 논문정도는 ACAR이 가볍게 발라줬다.
뇌빼고 그냥 transformer 때려넣기 이런건 역시 안먹히나보다. 이런!
그래도 누군가 겪을 시행착오를 대신 겪어줘서 고마운 논문이다
나였어도 spatial temporal한거 따로 배우면 좋지 않을까? 신나서 시도했을 것 같음
2. TubeR
(아무래도 저자가 DETR을 좋아하는 듯)
transformer 기반의 아키텍쳐이고 (라고 말해도 백본을 transformer 쓴다는건 아님),
tube라는걸 미리 정의할 것 없이 여기서 해준다고 하는 것 같다.
튜브가 뭐지? predefined anchor도 필요 없고, postprocessing도 필요없다고 한다.
암튼 이 논문 contribution은 크게 두가지라고 한다.
1. tube 사전정의할 필요 없는 네트워크 디자인 고안.
2. spatial -> temporal multihead attention
전반적으로 분위기가 DETR에서 많은 영감을 받은 느낌이라 앞에서 action detection이고 AVA action 에서 실험했음에도 ACAR, 애플 논문과는 다른 부분을 다룬다.
그래서 relation을 어떻게 잘 인코딩 하겠다는 것 보다도 bbox를 잘 찾아서 해결하겠다는 뉘앙스?
ACAR이나 애플에서는 그냥 다른 논문에서 미리 구해둔 bbox 정보 or person detector를 가져다 쓰겠다고 했는데, 여기서는 그럴 필요가 없이 bbox를 TubeR가 구해준다고 한다.
바로 이런 느낌.
그래서 실험 결과를 보면, action detection의 SOTA보다는 one stream, two stream detection 모델들과 비교하고 있다.
그렇기에 ablation을 할때 SlowFast 외에 다른 backbone과 비교실험한게 들어있는 것.
주목하고 있는 점이 다른걸 감안하고 읽어야한다.
가장 중요한 성능을 먼저 보자.
... 갑자기 흥미를 잃었다
물론 bbox 성능개선에 주목한는 것도 좋지만, faster-rcnn보다 안좋다니요.
detection 잘하는 분과 같이 연구를 한다면 몰라도, detection을 잘 모르는 내가 고민해볼거라면 이쪽은 아닌 것 같다.
SlowFast에서 계산해서 제공하는 bbox 쓰기만 해도 이미 그게 Faster R-CNN 기반인걸... (slowfast 논문 참고)
암튼 action classification 위해서는 아래 그림에 있는 E를 가지고 average하고 FFN에 넣어서 구했다고 한다.
그래서 성능이 안나왔나
bbox 자체 성능도 중요하지만, SOTA들은 어떻게 relation을 인코딩 할지 다들 노력했기 때문에 성능개선에 큰 변화가 없었던건 아닌가 싶기도 하고
논문 자세히 읽으면 좋을 것 같긴 하지만 미래의 내게 맡기겠다
'AIML 분야 > Video Classification & Detection' 카테고리의 다른 글
AVA action 학습이 이해 안가서 주절거리는 글 (0) | 2021.11.01 |
---|---|
[2021.08.27 수정] action 관련 이것저것 기록 (1) | 2021.08.24 |
Action Localization (Spatial Temporal Action Detection) 서베이 1 (0) | 2021.07.16 |
[Action Detection] ACAR Net (0) | 2021.05.11 |
Action Recognition보다 디테일한 Video 인식분야 조사 (0) | 2021.04.23 |
댓글