Giter VIP home page Giter VIP logo

yolov5-paddle's Introduction

YOLOv5-Paddle

YOLOv5๐Ÿš€ reproduction by Guo Quanhao using PaddlePaddle

Readme Card

  • ๆ”ฏๆŒAutoBatch
  • ๆ”ฏๆŒAutoAnchor
  • ๆ”ฏๆŒGPU Memory

ๅฟซ้€Ÿๅผ€ๅง‹

ไฝฟ็”จAIStudio้ซ˜ๆ€ง่ƒฝ็Žฏๅขƒๅฟซ้€Ÿๆž„ๅปบYOLOv5่ฎญ็ปƒ(PaddlePaddle2.2.0-gpu version)

้œ€่ฆๅฎ‰่ฃ…้ขๅค–ๆจกๅ—

pip install gputil==1.4.0
pip install pycocotools
COCOๆ•ฐๆฎ้›†

ๆ•ฐๆฎ้›†ๅทฒๆŒ‚่ฝฝ่‡ณaistudio้กน็›ฎไธญ๏ผŒๅฆ‚ๆžœ้œ€่ฆๆœฌๅœฐ่ฎญ็ปƒๅฏไปฅไปŽ่ฟ™้‡Œไธ‹่ฝฝๆ•ฐๆฎ้›†๏ผŒๅ’Œๆ ‡็ญพๆ–‡ไปถ

Data
|-- coco
|   |-- annotions
|   |-- images
|      |-- train2017
|      |-- val2017
|      |-- test2017
|   |-- labels
|      |-- train2017
|      |-- val2017
|      |-- train2017.cache(ๅˆๅง‹่งฃๅŽ‹ๅฏๅˆ ้™ค๏ผŒ่ฎญ็ปƒๆ—ถไผš่‡ชๅŠจ็”Ÿๆˆ)
|      |-- val2017.cache(ๅˆๅง‹่งฃๅŽ‹ๅฏๅˆ ้™ค๏ผŒ่ฎญ็ปƒๆ—ถไผš่‡ชๅŠจ็”Ÿๆˆ)
|   |-- test-dev2017.txt
|   |-- val2017.txt
|   |-- train2017.txt
`   `-- validation

ไฟฎๆ”นdata/coco.yaml้…็ฝฎ่‡ชๅทฑ็š„coco่ทฏๅพ„๏ผŒไฝ ๅฏ่ƒฝ้œ€่ฆไฟฎๆ”นpathๅ˜้‡

path: /home/aistudio/Data/coco  # dataset root dir

่ฎญ็ปƒ

  • ่€ƒ่™‘ๅˆฐAIStudioๅฏนไบŽgithub็š„่ฎฟ้—ฎ้€Ÿๅบฆ๏ผŒ้ข„ๅ…ˆๆไพ›ไบ†Arial.ttf

  • AIStudioๅŽ็ซฏไธๆ”ฏๆŒ็ป˜ๅ›พ๏ผŒ้ƒจๅˆ†ๅฏ่ง†ไนŽๅœจAIStudioไป“ๅบ“่ขซๆณจ้‡Š

training scratch for coco

mkdir /home/aistudio/.config/QuanhaoGuo/
cp /home/aistudio/Arial.ttf /home/aistudio/.config/QuanhaoGuo/
cd YOLOv5-Paddle
python train.py --img 896 --batch 8 --epochs 300 --data ./data/coco.yaml --cfg yolov5s.yaml --weights ''

้ชŒ่ฏ

python val.py --img 640  --data ./data/coco.yaml --weights ./weights/yolov5s.pdparams --cfg yolov5s.yaml

้€š่ฟ‡--task [val/test]ๆŽงๅˆถ้ชŒ่ฏ้›†ๅ’Œๆต‹่ฏ•้›†

ๆ‰€ๆœ‰ๆไพ›็š„ๆจกๅž‹้ชŒ่ฏ็ฒพๅบฆๅฆ‚ไธ‹๏ผŒๆœฌไป“ๅบ“็š„ๆ‰€ๆœ‰่ต„ๆบๆ–‡ไปถๅŒ…ๆ‹ฌ้ข„่ฎญ็ปƒๆจกๅž‹ๅ‡ๅฏๅœจ็™พๅบฆไบ‘็›˜ไธ‹่ฝฝcode:dng9

Model size
(pixels)
mAPval
0.5:0.95
mAPval
0.5
params
(M)
FLOPs
@640 (B)
mAPtest
0.5:0.95
mAPtest
0.5
YOLOv5n 640 28.4 46.5 1.9 4.5 28.1 46.2
YOLOv5s 640 37.2 56.4 7.2 16.5 37.1 56.1
YOLOv5m 640 45.1 64.2 21.2 49.0 45.4 64.3
YOLOv5l 640 48.6 67.4 46.5 109.1 48.9 67.5
YOLOv5x 640 50.6 69.1 86.7 205.7 50.7 69.0
YOLOv5n6 1280 34.0 51.1 3.2 4.6 34.3 51.7
YOLOv5s6 1280 44.5 63.4 16.8 12.6 44.3 63.0
YOLOv5m6 1280 50.9 69.4 35.7 50.0 51.1 69.5
YOLOv5l6 1280 53.5 71.8 76.8 111.4 53.7 71.8
YOLOv5x6
+ [TTA][TTA]
1280
1536
54.6
55.2
72.6
73.0
140.7
-
209.8
-
55.0
55.8
73.0
73.5

ไฝฟ็”จๆœฌๅœฐ็Žฏๅขƒๅฟซ้€Ÿๆž„ๅปบYOLOv5่ฎญ็ปƒ(PaddlePaddle2.2.0-gpu version)

git clone https://github.com/GuoQuanhao/YOLOv5-Paddle

็„ถๅŽๆŒ‰็…งไฝฟ็”จAIStudio้ซ˜ๆ€ง่ƒฝ็Žฏๅขƒๅฟซ้€Ÿๆž„ๅปบYOLOv5่ฎญ็ปƒๆ‰ง่กŒ

่ฎญ็ปƒCustom Data

่ฟ™้‡Œไปฅไธ€ไธช็ฑปๅˆซ็š„ๅ…‰ๆ …ๆ•ฐๆฎ้›†ไธบไพ‹๏ผŒๆ•ฐๆฎ้›†ๅทฒไธŠไผ ่‡ณAIStudio

ๅ…ถ็ป„็ป‡็ป“ๆž„ๅฆ‚ไธ‹๏ผš

Data
|-- guangshan
|   |-- images
|      |-- train
|      |-- val
|   |-- labels
|      |-- train
|      |-- val

ๅฆๅค–ไฝ ้œ€่ฆๆž„ๅปบdata/guangshan.yaml๏ผŒ็›ธๅ…ณๆ–‡ไปถๅทฒๆ”พๅ…ฅ็›ธๅ…ณ็›ฎๅฝ•๏ผŒไธป่ฆ็”จไบŽๆŒ‡ๅฎšๆ•ฐๆฎ้›†่ฏปๅ–่ทฏๅพ„ๅ’Œๆจกๅž‹้…็ฝฎใ€‚

# YOLOv5 reproduction ๐Ÿš€ by GuoQuanhao

train: /home/aistudio/guangshan/images/train  # 118287 images
val: /home/aistudio/guangshan/images/val  # 5000 images
# number of classes
nc: 1
# class names
names: ['spectrum']

่ฎญ็ปƒ

python train.py --img 640 --batch 16 --epochs 100 --data ./data/guangshan.yaml --cfg yolov5s.yaml --weights ./weights/yolov5s.pdparams
Starting training for 100 epochs...

     Epoch   gpu_mem       box       obj       cls    labels  img_size
      0/99     4.19G    0.1039   0.04733         0        29       640: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 9/9 [01:43<00:00, 11.50s/it]
               Class     Images     Labels          P          R     [email protected] [email protected]:.95: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 1/1 [00:06<00:00,  6.64s/it]
                 all         16         29      0.266      0.379      0.226     0.0468

     Epoch   gpu_mem       box       obj       cls    labels  img_size
      1/99     4.41G   0.08177    0.0289         0        37       640: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 9/9 [01:40<00:00, 11.20s/it]
               Class     Images     Labels          P          R     [email protected] [email protected]:.95: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 1/1 [00:05<00:00,  5.49s/it]
                 all         16         29      0.462      0.445      0.398      0.109
......

ๅฎŒๆ•ด็š„่ฎญ็ปƒๆ—ฅๅฟ—ๅญ˜ๅœจdata/training.txt

ๅˆฉ็”จVisualDLๅฏ่ง†ๅŒ–่ฎญ็ปƒ่ฟ‡็จ‹

visualdl --logdir ./runs/train/exp

้ชŒ่ฏ

python val.py --img 640  --data ./data/guangshan.yaml --cfg yolov5s.yaml --weights ./runs/train/exp/weights/best.pdparams

ๆŽจ็†

python detect.py --weights ./runs/train/exp/weights/best.pdparams --cfg yolov5s.yaml --data ./data/guangshan.yaml --source ./data/images/guangshan.jpg

TODO

  • Multi-GPU Training โ˜˜๏ธ
  • PaddleLite inference ๐ŸŒŸ
  • Model to ONNX โญ

ๅ…ณไบŽไฝœ่€…

ๅง“ๅ ้ƒญๆƒๆตฉ
ๅญฆๆ ก ็”ตๅญ็ง‘ๆŠ€ๅคงๅญฆ็ ”2020็บง
็ ”็ฉถๆ–นๅ‘ ่ฎก็ฎ—ๆœบ่ง†่ง‰
ไธป้กต Deep Hao็š„ไธป้กต
github Deep Hao็š„github
ๅฆ‚ๆœ‰้”™่ฏฏ๏ผŒ่ฏทๅŠๆ—ถ็•™่จ€็บ ๆญฃ๏ผŒ้žๅธธ่Ÿน่Ÿน๏ผ
ๅŽ็ปญไผšๆœ‰ๆ›ดๅคš่ฎบๆ–‡ๅค็Žฐ็ณปๅˆ—ๆŽจๅ‡บ๏ผŒๆฌข่ฟŽๅคงๅฎถๆœ‰้—ฎ้ข˜็•™่จ€ไบคๆตๅญฆไน ๏ผŒๅ…ฑๅŒ่ฟ›ๆญฅๆˆ้•ฟ๏ผ

yolov5-paddle's People

Contributors

guoquanhao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.