
Führen Sie eine Reihe von Ablationsexperimenten auf yolov5 durch, um sie leichter zu machen (kleinere Flops, niedrigerer Speicher und weniger Parameter) und schneller (Shuffle -Kanal hinzufügen, Yolov5 -Kopf für Kanal reduzieren. Sie kann mindestens 10+ fps auf dem Raspberry PI 4B abschließen, wenn Sie den Rahmen mit 320 × 320 achten). Reichweite).

| AUSWEIS | Modell | Input_size | Flops | Parameter | Größe (m) | [email protected] | [email protected]: 0,95 |
|---|---|---|---|---|---|---|---|
| 001 | yolo-fastest | 320 × 320 | 0,25 g | 0,35 m | 1.4 | 24.4 | - - |
| 002 | Yolov5-lite e unsere | 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 ist unsere | 416 × 416 | 1,66G | 1,64 m | 3.4 | 42.0 | 25.2 |
| 009 | Yolov5-lite c ons | 512 × 512 | 5.92g | 4,57 m | 9.2 | 50.9 | 32.5 |
| 010 | Nanodet-effizientesLite2 | 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 ohus | 640 × 640 | 15,6g | 5.39 m | 10.9 | 57.6 | 39.1 |
Siehe das Wiki: https://github.com/ppogg/yolov5-lite/wiki/test-the-map-of-models-about-coco
| Ausrüstung | Computer -Backend | System | Eingang | Rahmen | v5lite-e | v5lite-s | V5lite-C | v5lite-g | Yolov5s |
|---|---|---|---|---|---|---|---|---|---|
| Inter | @i5-10210u | Fenster (x86) | 640 × 640 | OpenVino | - - | - - | 46 ms | - - | 131 ms |
| Nvidia | @Rtx 2080ti | Linux (x86) | 640 × 640 | Fackel | - - | - - | - - | 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
入群答案: 剪枝 oder 蒸馏 oder 量化 oder 低秩分解(任意其一均可)
| Modell | Größe | Rückgrat | Kopf | Rahmen | Design für |
|---|---|---|---|---|---|
| V5lite-e.pt | 1,7 m | SHUFFLENETV2 (MEGVII) | V5litee-Kopf | Pytorch | ARM-CPU |
| V5lite-e.bin V5lite-e.param | 1,7 m | SHUFFLENETV2 | V5litee-Kopf | ncnn | ARM-CPU |
| v5lite-e-in8.bin v5lite-e-in8.param | 0,9 m | SHUFFLENETV2 | V5litee-Kopf | ncnn | ARM-CPU |
| v5lite-e-fp32.mnn | 3,0 m | SHUFFLENETV2 | V5litee-Kopf | Mnn | ARM-CPU |
| v5lite-e-fp32.tnnmodel v5lite-e-f32.tnnproto | 2,9 m | SHUFFLENETV2 | V5litee-Kopf | tnn | ARM-CPU |
| v5lite-e-320.onnx | 3.1m | SHUFFLENETV2 | V5litee-Kopf | Onnxruntime | x86-CPU |
| Modell | Größe | Rückgrat | Kopf | Rahmen | Design für |
|---|---|---|---|---|---|
| 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-f32.bin V5lite-s-f32.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 |
| Modell | Größe | Rückgrat | Kopf | Rahmen | Design für |
|---|---|---|---|---|---|
| v5lite-c.pt | 9m | Pplcnet (baidu) | V5S-Kopf | Pytorch | X86-CPU / x86-VPU |
| V5lite-C.bin v5lite-c.xml | 8,7 m | Pplcnet | V5S-Kopf | OpenVivo | X86-CPU / x86-VPU |
| V5lite-C-512.onnx | 18m | Pplcnet | V5S-Kopf | Onnxruntime | x86-CPU |
| Modell | Größe | Rückgrat | Kopf | Rahmen | Design für |
|---|---|---|---|---|---|
| v5lite-g.pt | 10,9 m | Repvgg (tsinghua) | V5liteg-Kopf | Pytorch | x86-gpu / arm-gpu / arm-npu |
| V5lite-g-in8.Engine | 8,5 m | Repvgg-yolov5 | V5liteg-Kopf | Tensorrt | x86-gpu / arm-gpu / arm-npu |
| v5lite-g-in8.tmfile | 8,7 m | Repvgg-yolov5 | V5liteg-Kopf | Tengine | Arm-NPU |
| v5lite-g-640.onnx | 21m | Repvgg-yolov5 | Yolov5-Kopf | Onnxruntime | x86-CPU |
| v5lite-g-640.joint | 7.1m | Repvgg-yolov5 | Yolov5-Kopf | Axpi | Arm-NPU |
v5lite-e.pt: | Baidu Drive | Google Drive || ──astisch
ncnn-fp16: | Baidu Drive | Google Drive |
| ──astischncnn-int8: | Baidu Drive | Google Drive |
|mnn-e_bf16Google Drive |
| ──astischmnn-d_bf16: | Google Drive |
onnx-fp32Baidu Drive | Google Drive |
v5lite-s.pt: | Baidu Drive | Google Drive || ──astisch
ncnn-fp16: | Baidu Drive | Google Drive |
| ──astischncnn-int8: | Baidu Drive | Google Drive |
└─ingertengine-fp32: | Baidu Drive | Google Drive |
v5lite-c.pt: Baidu Drive | Google Drive |└─inger
openvino-fp16: | Baidu Drive | Google Drive |
v5lite-g.pt: | Baidu Drive | Google Drive |
axpi-int8
Baidu Drive Passwort: pogg
https://github.com/pinto0309/pinto_model_zoo/tree/main/180_yolov5-lite
Python> = 3.6.0 ist mit allen Anforderungen erforderlich. TXT installiert einschließlich Pytorch> = 1.7 :
$ git clone https://github.com/ppogg/YOLOv5-Lite
$ cd YOLOv5-Lite
$ pip install -r requirements.txt detect.py führt in einer Vielzahl von Quellen Schlussfolgerungen aus und lädt Modelle automatisch von der neuesten YOLOV5-LITE-Veröffentlichung herunter und speichern die Ergebnisse auf 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 64Wenn Sie Multi-GPU verwenden. Es ist mehrmals schneller:
$ python -m torch.distributed.launch --nproc_per_node 2 train.pyTrainingssatz und Testsatzverteilung (Der Pfad mit 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.txtLink : https: //github.com/ppogg/autolabelimg
Sie können labelimg-basierte YOLOV5-5.0 und YOLOV5-LITE zum Autoannotieren, Biubiubiu 
Hier werden die ursprünglichen Komponenten von YOLOV5 und die reproduzierten Komponenten von yolov5-lite organisiert und im Modell-Hub gespeichert:

$ python main.py --type all
Aktualisieren ...
NCNN für ARM-CPU
MNN für ARM-CPU
openvino x86-cpu oder x86-vpu
Tensorrt (C ++) für ARM-GPU oder ARM-NPU oder X86-GPU
Tensorrt (Python) für Arm-GPU oder Arm-NPU oder X86-GPU
Android für ARM-CPU
Dies ist ein Redmi-Telefon, der Prozessor ist Snapdragon 730G und Yolov5-Lite wird zur Erkennung verwendet. Die Leistung ist wie folgt:
Link: 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
Neue Android -App: [Link] https://pan.baidu.com/s/1prhw4fi1jq8vbopyishciq [Keyword] Pogg

Was ist Yolov5-Lite S/E-Modell: Zhihu Link (Chinesisch): https://zhuanlan.zhihu.com/p/400545131
Was ist Yolov5-Lite C-Modell: Zhihu Link (Chinesisch): https://zhuanlan.zhihu.com/p/420737659
Was ist Yolov5-Lite G-Modell: Zhihu Link (chinesisch): https://zhuanlan.zhihu.com/p/410874403
So bereitstellen Sie auf NCNN mit FP16 oder INT8: CSDN Link (Chinese): https://blog.csdn.net/weixin_45829462/article/details/119787840
So Bereitstellung auf MNN mit FP16 oder INT8: Zhihu Link (Chinesisch): https://zhuanlan.zhihu.com/p/672633849
So Bereitstellung auf OnnxRuntime: Zhihu Link (Chinesisch): https://zhuanlan.zhihu.com/p/476533259(old -Version)
So Bereitstellung auf Tensorrt: Zhihu Link (Chinesisch): https://zhuanlan.zhihu.com/p/478630138
So optimieren Sie Tensorrt: Zhihu Link (Chinesisch): https://zhuanlan.zhihu.com/p/463074494
https://github.com/ultralytics/yolov5
https://github.com/megvii-model/shufflenet-series
https://github.com/tencent/ncnn
Wenn Sie Yolov5-Lite in Ihrer Forschung verwenden, zitieren Sie bitte unsere Arbeit und geben Sie einen Stern:
@misc{yolov5lite2021,
title = {YOLOv5-Lite: Lighter, faster and easier to deploy},
author = {Xiangrong Chen and Ziman Gong},
doi = {10.5281/zenodo.5241425}
year={2021}
}