PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.82k stars 2.89k forks source link

Question about pp-yolov2 network structure #3239

Closed menggui1993 closed 3 years ago

menggui1993 commented 3 years ago

In pp-yolov2, dropblock and spp are used in the PAN. In the paper, it seems that dropblock and spp are inserted after the second Conv Block in the Detection Block. Screenshot from 2021-06-02 10-58-16

However, in your code, it seems they are inserted after the third Conv Block. https://github.com/PaddlePaddle/PaddleDetection/blob/66d7eefab9aca8243ddf49a52b748b786b80ffb5/ppdet/modeling/necks/yolo_fpn.py#L910

Though I think this might not affect the results much, is there any reason for making the change?

wangxinxin08 commented 3 years ago

Each conv block contains two conv layers,so dropblock is inserted after the second conv block. And SPP is inserted after the first layer of the second block.

menggui1993 commented 3 years ago

Is SPP inserted or replacing the conv? In the code, it seems that it will replace the second conv of the second block.

wangxinxin08 commented 3 years ago

In fact, the SPP module is consisted of spp layer and a conv layer, so the SPP module replaces the second conv of the second layer while ths spp layer is inserted the first layer of the second block.

menggui1993 commented 3 years ago

Thanks.