
Effectuez une série d'expériences d'ablation sur YOLOV5 pour la rendre plus légère (flops plus petits, mémoire plus bas et moins de paramètres) et plus rapidement (ajoutez le canal Shuffle, la tête de Yolov5 pour la réduction du canal. gamme).

| IDENTIFIANT | Modèle | Entrée_size | Flops | Paramètres | Taille (M) | [email protected] | Map @ .5: 0,95 |
|---|---|---|---|---|---|---|---|
| 001 | yolo-plus cher | 320 × 320 | 0,25 g | 0,35 m | 1.4 | 24.4 | - |
| 002 | Yolov5-lite e le nôtre | 320 × 320 | 0,73 g | 0,78 m | 1.7 | 35.1 | - |
| 003 | Nanodet-m | 320 × 320 | 0,72 g | 0,95 m | 1.8 | - | 20.6 |
| 004 | yolo-fastest-xl | 320 × 320 | 0,72 g | 0,92 m | 3.5 | 34.3 | - |
| 005 | Yolox Nano | 416 × 416 | 1,08g | 0,91 m | 7.3 (fp32) | - | 25.8 |
| 006 | Yolov3-Tiny | 416 × 416 | 6,96g | 6,06 m | 23.0 | 33.1 | 16.6 |
| 007 | Yolov4-Tiny | 416 × 416 | 5,62g | 8,86 m | 33.7 | 40.2 | 21.7 |
| 008 | Yolov5-lite s nôtre | 416 × 416 | 1,66g | 1,64 m | 3.4 | 42.0 | 25.2 |
| 009 | Yolov5-lite c le nôtre | 512 × 512 | 5,92 g | 4,57m | 9.2 | 50.9 | 32.5 |
| 010 | Nanodet-efficacelite2 | 512 × 512 | 7.12g | 4,71 m | 18.3 | - | 32.6 |
| 011 | Yolov5s (6.0) | 640 × 640 | 16,5 g | 7,23 m | 14.0 | 56.0 | 37.2 |
| 012 | Yolov5-lite g le nôtre | 640 × 640 | 15,6g | 5,39 m | 10.9 | 57.6 | 39.1 |
Voir le wiki: https://github.com/ppogg/yolov5-lite/wiki/test-the-map-of-models-about-coco
| Équipement | Backend informatique | Système | Saisir | Cadre | v5lite-e | V5Lite-S | v5lite-c | v5lite-g | Yolov5s |
|---|---|---|---|---|---|---|---|---|---|
| Entre | @ i5-10210u | fenêtre (x86) | 640 × 640 | openvino | - | - | 46 ms | - | 131 ms |
| Nvidia | @Rtx 2080ti | Linux (x86) | 640 × 640 | torche | - | - | - | 15 ms | 14 ms |
| Redmi k30 | @Snapdragon 730g | Android (ARMV8) | 320 × 320 | ncnn | 27 ms | 38 ms | - | - | 163 ms |
| Xiaomi 10 | @Snapdragon 865 | Android (ARMV8) | 320 × 320 | ncnn | 10 ms | 14 ms | - | - | 163 ms |
| Raspberrypi 4b | @Arm cortex-a72 | Linux (ARM64) | 320 × 320 | ncnn | - | 84 ms | - | - | 371 ms |
| Raspberrypi 4b | @Arm cortex-a72 | Linux (ARM64) | 320 × 320 | MNN | - | 71 ms | - | - | 356 ms |
| Axera-pi | Cortex A7 @ CPU 3.6tops @npu | Linux (ARM64) | 640 × 640 | axpi | - | - | - | 22 ms | 22 ms |
https://zhuanlan.zhihu.com/p/672633849
入群答案: 剪枝 ou 蒸馏 ou 量化 ou 低秩分解 (任意其一均可))
| Modèle | Taille | Colonne vertébrale | Tête | Cadre | Concevoir |
|---|---|---|---|---|---|
| v5lite-e.pt | 1,7 m | shufflenetv2 (megvii) | v5Litee-head | Pytorch | ARM-CPU |
| v5Lite-e.bin v5Lite-e.param | 1,7 m | shufflenetv2 | v5Litee-head | ncnn | ARM-CPU |
| v5lite-e-int8.bin v5lite-e-int8.param | 0,9 m | shufflenetv2 | v5Litee-head | ncnn | ARM-CPU |
| v5lite-e-fp32.mnn | 3,0 m | shufflenetv2 | v5Litee-head | MNN | ARM-CPU |
| v5lite-e-fp32.tnnmodel v5lite-e-fp32.tnnproto | 2,9 m | shufflenetv2 | v5Litee-head | TNN | ARM-CPU |
| v5lite-e-320.onnx | 3,1 m | shufflenetv2 | v5Litee-head | onnxruntime | x86-cpu |
| Modèle | Taille | Colonne vertébrale | Tête | Cadre | Concevoir |
|---|---|---|---|---|---|
| v5lite-s.pt | 3,4 m | shufflenetv2 (megvii) | v5lites-head | Pytorch | ARM-CPU |
| v5lite-s.bin v5Lite-S.Param | 3,3 m | shufflenetv2 | v5lites-head | ncnn | ARM-CPU |
| v5lite-s-int8.bin v5lite-s-int8.param | 1,7 m | shufflenetv2 | v5lites-head | ncnn | ARM-CPU |
| v5lite-s.mnn | 3,3 m | shufflenetv2 | v5lites-head | MNN | ARM-CPU |
| v5lite-s-int4.mnn | 987K | shufflenetv2 | v5lites-head | MNN | ARM-CPU |
| v5lite-s-fp16.bin v5lite-s-fp16.xml | 3,4 m | shufflenetv2 | v5lites-head | openvivo | x86-cpu |
| v5lite-s-fp32.bin v5lite-s-fp32.xml | 6,8 m | shufflenetv2 | v5lites-head | openvivo | x86-cpu |
| v5lite-s-fp16.tflite | 3,3 m | shufflenetv2 | v5lites-head | tflite | ARM-CPU |
| v5lite-s-fp32.tflite | 6,7 m | shufflenetv2 | v5lites-head | tflite | ARM-CPU |
| v5lite-s-int8.tflite | 1,8 m | shufflenetv2 | v5lites-head | tflite | ARM-CPU |
| v5lite-s-416.onnx | 6,4 m | shufflenetv2 | v5lites-head | onnxruntime | x86-cpu |
| Modèle | Taille | Colonne vertébrale | Tête | Cadre | Concevoir |
|---|---|---|---|---|---|
| v5Lite-c.pt | 9m | PPLCNET (Baidu) | v5s | Pytorch | x86-cpu / x86-vpu |
| v5Lite-c.bin v5lite-c.xml | 8,7 m | PPLCNET | v5s | openvivo | x86-cpu / x86-vpu |
| v5Lite-C-512.onnx | 18m | PPLCNET | v5s | onnxruntime | x86-cpu |
| Modèle | Taille | Colonne vertébrale | Tête | Cadre | Concevoir |
|---|---|---|---|---|---|
| v5lite-g.pt | 10,9 m | Repvgg (tsinghua) | v5Liteg-head | Pytorch | x86-GPU / ARM-GPU / ARM-NPU |
| v5lite-g-int8.engine | 8,5 m | Repvgg-yolov5 | v5Liteg-head | Tensorrt | x86-GPU / ARM-GPU / ARM-NPU |
| v5lite-g-int8.tmfile | 8,7 m | Repvgg-yolov5 | v5Liteg-head | Tenance | bras-npu |
| v5Lite-G-640.onnx | 21m | Repvgg-yolov5 | Yolov5-head | onnxruntime | x86-cpu |
| v5Lite-G-640.joint | 7,1 m | Repvgg-yolov5 | Yolov5-head | axpi | bras-npu |
v5lite-e.pt: | Drive Baidu | Google Drive ||
ncnn-fp16Drive Baidu | Google Drive |
|ncnn-int8Drive Baidu | Google Drive |
|mnn-e_bf16Google Drive |
|mnn-d_bf16Google Drive |
└fiques,onnx-fp32: | Drive Baidu | Google Drive |
v5lite-s.pt: | Drive Baidu | Google Drive ||
ncnn-fp16Drive Baidu | Google Drive |
|ncnn-int8Drive Baidu | Google Drive |
tengine-fp32Drive Baidu | Google Drive |
v5lite-c.pt: Baidu Drive | Google Drive |└fiques
openvino-fp16: | Drive Baidu | Google Drive |
v5lite-g.pt: | Drive Baidu | Google Drive |└────aseLa
axpi-int8: Google Drive |
Mot de passe du lecteur Baidu: pogg
https://github.com/pinto0309/pinto_model_zoo/tree/main/180_yolov5-lite
Python> = 3,6.0 est requis avec toutes les exigences.txt installé, y compris pytorch> = 1,7 :
$ git clone https://github.com/ppogg/YOLOv5-Lite
$ cd YOLOv5-Lite
$ pip install -r requirements.txt detect.py exécute l'inférence sur une variété de sources, téléchargeant automatiquement des modèles à partir de la dernière version de Yolov5-Lite et enregistrant des résultats aux runs/detect .
$ python detect.py --source 0 # webcam
file.jpg # image
file.mp4 # video
path/ # directory
path/ * .jpg # glob
' https://youtu.be/NUsoVlDFqZg ' # YouTube
' rtsp://example.com/media.mp4 ' # RTSP, RTMP, HTTP stream$ python train.py --data coco.yaml --cfg v5lite-e.yaml --weights v5lite-e.pt --batch-size 128
v5lite-s.yaml v5lite-s.pt 128
v5lite-c.yaml v5lite-c.pt 96
v5lite-g.yaml v5lite-g.pt 64Si vous utilisez le multi-GPU. C'est plus rapide plusieurs fois:
$ python -m torch.distributed.launch --nproc_per_node 2 train.pyEnsemble de formation et distribution de tests de test (le chemin avec xx.jpg)
train: ../coco/images/train2017/
val: ../coco/images/val2017/├── images # xx.jpg example
│ ├── train2017
│ │ ├── 000001.jpg
│ │ ├── 000002.jpg
│ │ └── 000003.jpg
│ └── val2017
│ ├── 100001.jpg
│ ├── 100002.jpg
│ └── 100003.jpg
└── labels # xx.txt example
├── train2017
│ ├── 000001.txt
│ ├── 000002.txt
│ └── 000003.txt
└── val2017
├── 100001.txt
├── 100002.txt
└── 100003.txtLien : https: //github.com/ppogg/autolabelimg
Vous pouvez utiliser Yolov5-5.0 basé sur Labelg et Yolov5-lite pour autoannotate, biubiubiu 
Ici, les composants d'origine de Yolov5 et les composants reproduits de Yolov5-Lite sont organisés et stockés dans le Hub Model:

$ python main.py --type all
Mise à jour ...
NCNN pour ARM-CPU
MNN pour ARM-CPU
OpenVino x86-CPU ou X86-VPU
Tensorrt (C ++) pour ARM-GPU ou ARM-NPU ou X86-GPU
Tensorrt (Python) pour ARM-GPU ou ARM-NPU ou X86-GPU
Android pour ARM-CPU
Il s'agit d'un téléphone Redmi, le processeur est Snapdragon 730G et Yolov5-Lite est utilisé pour la détection. La performance est la suivante:
Lien: https://github.com/ppogg/yolov5-lite/tree/master/android_demo/ncnn-android-v5lite
Android_v5lite-s: https://drive.google.com/file/d/1ctohy68n2b9xyuqflitp-nd2kufwgaur/view?usp=sharing
Android_V5lite-G: https://drive.google.com/file/d/1fnvkwxxp_azwhi000xjiuhj_ohqoujcj/view?usp=sharing
Nouvelle application Android: [lien] https://pan.baidu.com/s/1prhw4fi1jq8vopopyishciq [mot-clé] Pogg

Qu'est-ce que le modèle S / E YOLOV5-LITE: Zhihu Link (chinois): https://zhuanlan.zhihu.com/p/400545131
Qu'est-ce que Yolov5-Lite C Modèle: Zhihu Link (chinois): https://zhuanlan.zhihu.com/p/420737659
Qu'est-ce que Yolov5-Lite G Modèle: Zhihu Link (chinois): https://zhuanlan.zhihu.com/p/410874403
Comment déployer sur NCNN avec FP16 ou INT8: CSDN Lien (chinois): https://blog.csdn.net/weixin_45829462/article/details/119787840
Comment se déployer sur MNN avec FP16 ou INT8: Zhihu Link (chinois): https://zhuanlan.zhihu.com/p/672633849
Comment déployer sur onnxruntime: lien zhihu (chinois): https://zhuanlan.zhihu.com/p/476533259(old version)
Comment déployer sur Tensorrt: Zhihu Link (chinois): https://zhuanlan.zhihu.com/p/478630138
Comment optimiser sur Tensorrt: Zhihu Link (chinois): https://zhuanlan.zhihu.com/p/463074494
https://github.com/ultralytics/yolov5
https://github.com/megvii-model/shufflenet-series
https://github.com/tencent/ncnn
Si vous utilisez Yolov5-Lite dans vos recherches, veuillez citer notre travail et donner une étoile:
@misc{yolov5lite2021,
title = {YOLOv5-Lite: Lighter, faster and easier to deploy},
author = {Xiangrong Chen and Ziman Gong},
doi = {10.5281/zenodo.5241425}
year={2021}
}