boostcampaitech3 / final-project-level3-cv-14

YOLOX-nano model compression with Nota AI
Apache License 2.0
4 stars 2 forks source link

[팁] yolox_nano 기본 구조 #5

Open agwmon opened 2 years ago

agwmon commented 2 years ago

내용

설명하는 시간을 따로 갖겠지만, 글로도 작성해두었습니다!

yolo_pafpn

backbone -> darknet.py -> CSPDarknet

해당 구조에서 사용되는 block은 Conv(DWConv), Focus, CSPLayer, SPPBottleneck가 있습니다.

yolopafpn

채널을 합치는 요소를 제외하고는 모두 CSPLayer로 이뤄져있습니다. 구현체의 resolution, channel은 위에 그림 참고하시면 됩니다. 최종적으로는 (pan_out2, pan_out1, pan_out0)이 출력되고 각각 dafault 크기는 [(64, 52, 52), (128, 26, 26), (256, 13, 13)] 규격입니다.

해당 output에 맞춰 yolo_pafpn을 전체 수정하면, head와 바로 연결할 수 있습니다.

yolo_head

yolox 입력으로 주어진 3개의 layer에 따라서 for 문으로 진행됩니다. 각 입력에 따라

%% 추가로 코드를 쭉 따라가시다보면 gt_output_and_grid가 있습니다. 이는 stride를 이용하여, 해당 grid가 원본 resolution에서는 어느 box를 가르키는지를 return하는 코드이고, 이후부터는 수정할 부분이 없다고 생각하시면 됩니다.

agwmon commented 2 years ago

블록 모식도입니다~ 블록 변경하실때 참고하시면 됩니다!

https://drive.google.com/file/d/1dzieggbYKTY_gKg0VKSAEDDZf7lDuCZI/view?usp=sharing