[Paper Review] DiffusionDet: Diffusion Model for Object Detection

eetocs·2022년 11월 23일
0

(우선 개인적인 짧은 사견임을 밝힙니다.)

paperwithcode 압도적 1등(2022/11/23)을 달리고 있는걸 보면, 해당 논문의 존재는 알곤 있었지만, 이정도로 뜨거울줄은 몰랐다.

사실 Diffusion Model이 생성모델쪽에서 핫 하다는 얘기는 머신러닝 업계에 발 담구고 있는 사람들은 지겹도록 들었을 것이다.

(저의 개인적인 생각입니다.) 하지만 생성모델들을 볼 때마다 “우와 쩌는데?” 생각이 들기는 하는데, “이걸 어디에 쓰지?”라는 의문증이 항상 생겼다. (마치 초창기 GAN을 보는 듯한…)

그런데 Diffusion을 활용해서 Detection을 하다니, 이건 좀 논문 제목부터 끌린다. Diffusion의 Use Case가 될 수 있어 보인다.

그럼 논문을 짧고 간단하게 찍먹해보자

아이디어는 어쩌면 간단해 보인다.Diffusion 모델이 noisy한 이미지로부터 generation 하는 task를 한다면 DiffusionDet은 noisy한 bounding box로부터 target bounding box를 찾도록 하는 방법론이다.조금 더 자세하게 들어가면, 일반적인 Detection 모델들은 Anchor Box기준에서 regression을 하거나, 최근 보이는 query기반 방법론을 사용하는데, DiffusionDet은 이를 대체하여 Random한 boxes에서 Diffusion 방법론 활용하여 target bbox를 찾는 방법론을 제시한다.

전체적인 모델 구조는 다음과 같다.
Image에 대한 일반적인 Detection에서 사용하는 Backbone(ResNet, Swin)으로 구성된 Image Encoder와 Detection Decoder로 구성된 익숙한 구조이다. 다만 Detection Decoder에 Nosiy한 bbox가 함께 들어가는 모습이다.

Training Stage pseudo code

위 pesudo code를 보면 모델쪽 전체 구조와 크게 다른 부분이 없다. 다만 디테일한 내용들이 ground truth bbox를 corrput 시키는 과정에서 여러 방법론들이 실험적으로 정리 되어 있다.(이 부분은 생략)

Inference Stage pseudo code

inference stage에서는 nosiy bbox gt로 부터 denoising sampling을 해가는 과정을 보여준다. denoising task인 만큼 ddim_step이 보이고, bbox를 step마다 renewal하는 부분도 보인다.

논문을 이쯤 읽으면 드는 생각이 하나 있다.

분명 step 크기가 클수록 성능은 향상 되긴 하겠지만, detection decoder도 step 크기만큼 추가 inference를 해야 하는데 FPS 대비 성능의 향상이 드라마틱 할까?

그래서 나는 중간 실험 테이블은 전부 생략하고 FPS 및 Latency 키워드만 찾아보니, 아주 작은 표 하나를 찾을 수 있었다.
첫번째 줄 [81]는 Sparse R-CNN 모델이고 그 아래 2~4는 DiffusionDet 모델이다.

눈여겨 볼것은, 1 step에서 4 step으로 늘면서 AP는 0.8이 늘었지만, FPS는 삼분의 일 토막이 난 모습이다…
또한, Sparse R-CNN 대비 FPS 및 성능도 매력적으로 보이지는 않는다…

(개인 생각입니다.)

결론 : Diffusion 모델을 Detection에 적용 시켰다는 것에 의의를 두어야겠다.(후속 연구는 계속 follow-up할 필요 있음)

profile
ML 잡부

0개의 댓글