티스토리 뷰

Deep Learning

RT DETR의 백본은 무엇일까

developer0hye 2024. 4. 16. 00:29

https://arxiv.org/pdf/2304.08069.pdf

 

https://github.com/lyuwenyu/RT-DETR

 

GitHub - lyuwenyu/RT-DETR: [CVPR 2024] Official RT-DETR (RTDETR paddle pytorch), Real-Time DEtection TRansformer, DETRs Beat YOL

[CVPR 2024] Official RT-DETR (RTDETR paddle pytorch), Real-Time DEtection TRansformer, DETRs Beat YOLOs on Real-time Object Detection. 🔥 🔥 🔥 - GitHub - lyuwenyu/RT-DETR: [CVPR 2024] Official RT-DE...

github.com

 

rt detr을 깨작 깨작 보고있다.

 

 

실험 결과를 보고 좀 충격을 받았는데, resnet18을 백본 네트워크로 사용했음에도 불구하고 COCO dataset 의 validation set 에서  AP가 46.5 가 나온다고 돼있다. 기존에 디텍션 논문들을 보면 적어도 resnet50을 사용하고 resnet50을 사용함에도 불구하고 혹은 swin을 사용했음에도 40 중반을 못넘기는 경우를 많이 봤던 거 같은데 resnet18만으로도 40 중반의 AP를 기록하다니 굉장히 훌륭한 neck과 head를 제안한 게 아닌가 싶다. 아 물론 기존 디텍션 모델 논문들의 학습은 보통 12에폭 세팅이 일반적이고 여기 결과는 6x 세팅이지만 그럼에도 불구하고 resnet18 수준의 백본 네트워크로 이정도 AP를 기록한 논문은 못봤었던 거 같다. 그래서 급 흥미가 생겼다.

 

논문이나 테이블 그냥 보면 original resnet18 을 쓴 거 같은데 실제로는 안 그렇다.

 

 

일단 모델 관련 컨피그 파일 보면 PResNet 이라 돼있는데 이건 아마 original implementation 을 paddle paddle 로 했어가지고 paddle paddle 에 구현된 ResNet을 사용한다는 의미로 P(addle paddle)을 붙인게 아닌가 싶다. 내 추측이다.

 

그리고 저기 output_dir 보면 r18이면 r18일 것이지 r18vd 라고 돼있다. 굉장히 찝찝할 수 밖에 없다.

Bag of Tricks for Image Classification with Convolutional Neural Networks 이라는 resnet 성능을 쥐어짜내기위해 갖가지 trick에 대한 갖가지 실험을 진행해놓은 논문이 있다. 

여기서 나온 resnet의 variant 중에 figure 2 (c) ResNet-D 구조로 resnet의 block(stride = 2 일때) 을 수정한 resnet임을 의미하는 것으로 추정된다. (90% 확신함)

 

위 처럼 수정했더니 table 5와 같은 결과가 나왔다고한다. 아무튼 rt detr에서 사용된 backbone은 결국 위 논문의 ResNet-50-D를 사용한 것으로 추정된다. 코드에도 딱 Block에 variant 가 'd'인 경우에 대한 구현을 보면 그림대로 avgpooling 들어가고 1x1 conv2d 가 들어가는 걸 알 수 있다.

 

 

혹시 틀린 정보 있으면 댓글로 피드백 부탁드립니다! 감사합니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함