Closed ElectronicElephant closed 3 years ago
Hi @ElectronicElephant, I am also interested in having yolov4 in mmdetection. How is it going now?
Hi @hiyyg we will pull a request soon (maybe at the end of Sep.), most of the functionality has been implemented.
great, mark.
Due to the computational resources limitation, we are not going to PR the YOLOv4 as planned. But we notice that an official implemention is merged in https://github.com/open-mmlab/mmdetection/pull/3824. @GreenTeaHua
Hi @hellock and @xvjiarui ,
As the YOLOv3 implementation is going to an end (finally 😄), @WenqiangX and I are planning to work on YOLOv4.
However, compared with YOLOv3, YOLOv4 is notorious for its bags of tricks, many of which are not implemented in
mm-detection
yet. So, we open this issue in the hope of discussing some implementation details with mm-lab.First, let us summarize the
tricks
used in YOLOv4.Already in mmdetection
CIoU-Loss https://github.com/open-mmlab/mmdetection/pull/3151
Label Smoothing Included in YOLOv3
CosineAnnealingScheduler https://github.com/open-mmlab/mmdetection/issues/3227
Random training shapes Included in Dataloader
Waiting for merge
Mosaic Data Aug https://github.com/open-mmlab/mmdetection/pull/3389 Note that augmentation for mask and segmentation and blur augmentation are not implemented.
Efficient-Det YOLOv4 may rely on the neck of EfficientDet.
Not implemented yet
[ ] CutMix
[ ] DropBlock regularization
[ ] Mish activation
[ ] CSP
[ ] Multi-input weighted residual connections
[ ] CmBN
[ ] Self Adversarial Training
[ ] Eliminate grid sensitivity
[x] Multiple anchors for a single gt Just change the code in YOLOv3Head. Should not be a problem.
[ ] Optimal Hyper-parameters
[x] SPP Should not be a problem.
[ ] SAM-block
[ ] PAN path-aggregation block
[ ] DIoU-NMS
Our concern
If there is an ETA of EfficientDet and https://github.com/open-mmlab/mmdetection/pull/3389 ?
C++
orPyTorch
for some tricks, includingDIoU-NMS
.Should it be adopted in C++ code in
mmcv
, or we can usePyTorch
code instead (which might be slower)?If we stick to use
ConvModule
ofmmcv
, how to useMish-activation
in an elegant manner?Since the implementation of YOLOv4 is still at an early stage, the concern might grow, and we are glad to hear the voice from mm-lab. Cheers.