Skip to content

em-1001/YOLOv4

Repository files navigation

YOLOv4

    

Configuration

DATASET = PASCAL_VOC
ANCHORS = [
    [(0.28, 0.22), (0.38, 0.48), (0.9, 0.78)],
    [(0.07, 0.15), (0.15, 0.11), (0.14, 0.29)],
    [(0.02, 0.03), (0.04, 0.07), (0.08, 0.06)],
] 

BATCH_SIZE = 32
OPTIMIZER = Adam
NUM_EPOCHS = 100
CONF_THRESHOLD = 0.05
MAP_IOU_THRESH = 0.5
NMS_IOU_THRESH = 0.45
WEIGHT_DECAY = 1e-4

# 0 ~ 30 epoch                # Cosine Annealing                            

LEARNING_RATE = 0.0001        LEARNING_RATE = 0.0001        
                              T_max = 100
# 30 ~ 50 epoch               

LEARNING_RATE = 0.00005       

# 50 ~  epoch                

LEARNING_RATE = 0.00001      

NMS(Non-maximum Suppression)

Detection 320 x 320 416 x 416 512 x 512
CSP ? 43.5 ?
CSP + GIoU ? ? ?
CSP + DIoU ? ? ?
CSP + CIoU ? 46.4 ?
CSP + SIoU ? 46.2 ?
CSP + CIoU + CA ? ? ?
CSP + CIoU + CA + M ? ? ?

DIoU-NMS

Detection 320 x 320 416 x 416 512 x 512
CSP + CIoU ? 46.4 ?
CSP + CIoU + CA ? ? ?

Train

.
├── YOLOv4
    ├── config.py
    ├── dataset.py
    ├── Description.md
    ├── loss.py
    ├── requirements.txt
    ├── README.md
    ├── train.py
    ├── utils.py
    └── yolov4.py
  1. Install packages
$ pip install -r requirements.txt
  1. Create kaggle token
    Download the kaggle token and put it in the YOLOv4 folder
{"username":"?????","key":"????????????????????????????"}
  1. Download dataset
$ mkdir -p ~/.kaggle
$ cp kaggle.json ~/.kaggle/
$ chmod 600 ~/.kaggle/kaggle.json
$ kaggle datasets download -d aladdinpersson/pascal-voc-dataset-used-in-yolov3-video
$ unzip  -qq /content/pascal-voc-dataset-used-in-yolov3-video.zip
  1. Set config.py values and Train
$ python3 train.py

Pretrained Weights

CSP : https://www.kaggle.com/datasets/sj2129tommy/csp100epochs
CSP + GIoU :
CSP + DIoU :
CSP + CIoU : https://www.kaggle.com/datasets/sj2129tommy/csp-ciou-100epoch
CSP + SIoU : https://www.kaggle.com/datasets/sj2129tommy/csp-siou100epoch
CSP + CIoU + CA :

Reference

Web Link

One-stage object detection : https://machinethink.net/blog/object-detection/
DIoU, CIoU : https://hongl.tistory.com/215
YOLOv3 : https://herbwood.tistory.com/21
          https://csm-kr.tistory.com/11
          https://towardsdatascience.com/dive-really-deep-into-yolo-v3-a-beginners-guide-9e3d2666280e
YOLOv4 : https://wikidocs.net/181720
     https://csm-kr.tistory.com/62
Residual block : https://daeun-computer-uneasy.tistory.com/28
       https://techblog-history-younghunjo1.tistory.com/279
NMS : https://wikidocs.net/142645
mAP : https://ctkim.tistory.com/entry/mAPMean-Average-Precision-%EC%A0%95%EB%A6%AC
BottleNeck : https://velog.io/@lighthouse97/CNN%EC%9D%98-Bottleneck%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4
Cosine Annealing : https://ai4nlp.tistory.com/16

Paper

YOLOv2 : https://arxiv.org/pdf/1612.08242.pdf
YOLOv3 : https://arxiv.org/pdf/1804.02767.pdf
YOLOv4 : https://arxiv.org/pdf/2004.10934.pdf
DIoU, CIoU : https://arxiv.org/pdf/1911.08287.pdf
SIoU : https://arxiv.org/ftp/arxiv/papers/2205/2205.12740.pdf
DenseNet : https://arxiv.org/pdf/1608.06993.pdf
CSPNet : https://arxiv.org/pdf/1911.11929.pdf
SPPNet : https://arxiv.org/pdf/1406.4729.pdf
SGDR : https://arxiv.org/pdf/1608.03983v5.pdf

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages