
Perform a series of ablation experiments on yolov5 to make it lighter (smaller Flops, lower memory, and fewer parameters) and faster (add shuffle channel, yolov5 head for channel reduce. It can infer at least 10+ FPS On the Raspberry Pi 4B when input the frame with 320×320) and is easier to deploy (removing the Focus layer and four slice operations, reducing the model quantization accuracy to an приемлемый диапазон).

| ИДЕНТИФИКАТОР | Модель | Input_size | Флопс | Параметры | Размер (м) | [email protected] | Карта@.5: 0,95 |
|---|---|---|---|---|---|---|---|
| 001 | Yolo-Fast | 320 × 320 | 0,25 г | 0,35 м | 1.4 | 24.4 | - |
| 002 | Yolov5-Lite E наш | 320 × 320 | 0,73 г | 0,78 м | 1.7 | 35,1 | - |
| 003 | Нанодет-М. | 320 × 320 | 0,72 г | 0,95 м | 1.8 | - | 20.6 |
| 004 | Yolo-Fastest-xl | 320 × 320 | 0,72 г | 0,92 м | 3.5 | 34.3 | - |
| 005 | Yolox Nano | 416 × 416 | 1,08 г | 0,91 м | 7.3 (FP32) | - | 25.8 |
| 006 | Yolov3-Nyany | 416 × 416 | 6,96 г | 6,06 м | 23.0 | 33.1 | 16.6 |
| 007 | Yolov4-Bliny | 416 × 416 | 5,62 г | 8,86 м | 33,7 | 40.2 | 21,7 |
| 008 | Yolov5-lite s наш | 416 × 416 | 1,66 г | 1,64 м | 3.4 | 42,0 | 25.2 |
| 009 | Yolov5-lite c наш | 512 × 512 | 5,92 г | 4,57 м | 9.2 | 50,9 | 32,5 |
| 010 | Нанодец-эффективность | 512 × 512 | 7.12G | 4,71 м | 18.3 | - | 32,6 |
| 011 | Yolov5s (6,0) | 640 × 640 | 16,5 г | 7,23 м | 14.0 | 56.0 | 37.2 |
| 012 | Yolov5-Lite G наш | 640 × 640 | 15,6 г | 5,39 м | 10.9 | 57.6 | 39.1 |
Смотрите Wiki: https://github.com/ppogg/yolov5-lite/wiki/test-the-map-of-models-about-coco
| Оборудование | Вычисление бэкэнд | Система | Вход | Рамки | v5lite-e | v5lite-s | V5Lite-C | V5Lite-G | Yolov5s |
|---|---|---|---|---|---|---|---|---|---|
| Меж | @i5-10210U | окно (x86) | 640 × 640 | OpenVino | - | - | 46 мс | - | 131 мс |
| Нвидия | @Rtx 2080ti | Linux (x86) | 640 × 640 | факел | - | - | - | 15 мс | 14 мс |
| Redmi K30 | @Snapdragon 730g | Android (ARMV8) | 320 × 320 | ncnn | 27 мс | 38 мс | - | - | 163 мс |
| Xiaomi 10 | @Snapdragon 865 | Android (ARMV8) | 320 × 320 | ncnn | 10 мс | 14 мс | - | - | 163 мс |
| Raspberrypi 4b | @Arm Cortex-A72 | Linux (ARM64) | 320 × 320 | ncnn | - | 84 мс | - | - | 371 мс |
| Raspberrypi 4b | @Arm Cortex-A72 | Linux (ARM64) | 320 × 320 | мнн | - | 71 мс | - | - | 356 мс |
| Axera-Pi | Cortex A7@CPU 3.6TOPS @NPU | Linux (ARM64) | 640 × 640 | Акспи | - | - | - | 22 мс | 22 мс |
https://zhuanlan.zhihu.com/p/672633849
入群答案: 剪枝 или 蒸馏 или 量化 или 低秩分解 (任意其一均可 任意其一均可)
| Модель | Размер | Магистраль | Голова | Рамки | Дизайн для |
|---|---|---|---|---|---|
| V5Lite-E.pt | 1,7 м | shufflenetv2 (megvii) | v5litee-головка | Пирог | ARM-CPU |
| V5Lite-E.Bin V5Lite-E.Param | 1,7 м | Shufflenetv2 | v5litee-головка | ncnn | ARM-CPU |
| v5lite-e-int8.bin v5lite-e-int8.param | 0,9м | Shufflenetv2 | v5litee-головка | ncnn | ARM-CPU |
| V5Lite-E-FP32.mnn | 3,0 м | Shufflenetv2 | v5litee-головка | мнн | ARM-CPU |
| v5lite-e-fp32.tnnmodel v5lite-e-fp32.tnnproto | 2,9 м | Shufflenetv2 | v5litee-головка | Тнн | ARM-CPU |
| V5Lite-E-320.onnx | 3,1 м | Shufflenetv2 | v5litee-головка | Onnxruntime | x86-cpu |
| Модель | Размер | Магистраль | Голова | Рамки | Дизайн для |
|---|---|---|---|---|---|
| v5lite-s.pt | 3,4 м | shufflenetv2 (megvii) | V5Lites-голова | Пирог | ARM-CPU |
| V5Lite-S.Bin V5Lite-S.Param | 3,3 м | Shufflenetv2 | V5Lites-голова | ncnn | ARM-CPU |
| v5lite-s-int8.bin v5lite-s-int8.param | 1,7 м | Shufflenetv2 | V5Lites-голова | ncnn | ARM-CPU |
| v5lite-s.mnn | 3,3 м | Shufflenetv2 | V5Lites-голова | мнн | ARM-CPU |
| v5lite-s-int4.mnn | 987K | Shufflenetv2 | V5Lites-голова | мнн | ARM-CPU |
| v5lite-s-fp16.bin v5lite-s-fp16.xml | 3,4 м | Shufflenetv2 | V5Lites-голова | OpenVivo | x86-cpu |
| V5Lite-S-FP32.bin V5Lite-S-FP32.xml | 6,8 м | Shufflenetv2 | V5Lites-голова | OpenVivo | x86-cpu |
| v5lite-s-fp16.tflite | 3,3 м | Shufflenetv2 | V5Lites-голова | tflite | ARM-CPU |
| v5lite-s-fp32.tflite | 6,7 м | Shufflenetv2 | V5Lites-голова | tflite | ARM-CPU |
| v5lite-s-int8.tflite | 1,8 м | Shufflenetv2 | V5Lites-голова | tflite | ARM-CPU |
| v5lite-s-416.onnx | 6,4 м | Shufflenetv2 | V5Lites-голова | Onnxruntime | x86-cpu |
| Модель | Размер | Магистраль | Голова | Рамки | Дизайн для |
|---|---|---|---|---|---|
| v5lite-c.pt | 9M | Pplcnet (baidu) | V5S-голова | Пирог | x86-cpu / x86-vpu |
| v5lite-c.bin v5lite-c.xml | 8,7 м | Pplcnet | V5S-голова | OpenVivo | x86-cpu / x86-vpu |
| V5Lite-C-512.onnx | 18 м | Pplcnet | V5S-голова | Onnxruntime | x86-cpu |
| Модель | Размер | Магистраль | Голова | Рамки | Дизайн для |
|---|---|---|---|---|---|
| v5lite-g.pt | 10,9 м | Repvgg (tsinghua) | v5liteg-голов | Пирог | x86-gpu / arm-gpu / arm-npu |
| V5Lite-G-Int8.Engine | 8,5 м | Repvgg-yolov5 | v5liteg-голов | Тенсорт | x86-gpu / arm-gpu / arm-npu |
| v5lite-g-int8.tmfile | 8,7 м | Repvgg-yolov5 | v5liteg-голов | Тенгин | ARM-NPU |
| V5Lite-G-640.onnx | 21 м | Repvgg-yolov5 | Yolov5-Head | Onnxruntime | x86-cpu |
| V5Lite-G-640.joint | 7,1 м | Repvgg-yolov5 | Yolov5-Head | Акспи | ARM-NPU |
v5lite-e.pt: | Baidu Drive | Google Drive || ─дии
ncnn-fp16: | Baidu Drive | Google Drive |
| ─дии жемncnn-int8: | Baidu Drive | Google Drive |
| ─дииmnn-e_bf16: | Google Drive |
|mnn-d_bf16Google Drive |
└ackindyacsonnx-fp32: | Baidu Drive | Google Drive |
v5lite-s.pt: | Baidu Drive | Google Drive || ─дии
ncnn-fp16: | Baidu Drive | Google Drive |
| ─дии жемncnn-int8: | Baidu Drive | Google Drive |
└ackindyacturetengine-fp32: | Baidu Drive | Google Drive |
v5lite-c.pt: Baidu Drive | Google Drive |└ackindyacs
openvino-fp16: | Baidu Drive | Google Drive |
v5lite-g.pt: | Baidu Drive | Google Drive |└ackindyacse
axpi-int8: Google Drive |
Пароль Drive Baidu: pogg
https://github.com/pinto0309/pinto_model_zoo/tree/main/180_yolov5-lite
Python> = 3,6,0 требуется со всеми установленными требованиями.txt, включая Pytorch> = 1,7 :
$ git clone https://github.com/ppogg/YOLOv5-Lite
$ cd YOLOv5-Lite
$ pip install -r requirements.txt detect.py Запускает вывод на различных источниках, автоматически загружая модели с последнего выпуска Yolov5-Lite и сохранения результатов для 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 64Если вы используете мульти-GPU. Это быстрее несколько раз:
$ python -m torch.distributed.launch --nproc_per_node 2 train.pyРаспределение набора обучения и набора тестов (путь с 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.txtСсылка : https: //github.com/ppogg/autolabelimg
Вы можете использовать Labelimg на основе Yolov5-5.0 и Yolov5-Lite для автонотата, Biubiubiu 
Здесь оригинальные компоненты Yolov5 и воспроизводимые компоненты Yolov5-Lite организованы и хранятся в модельном центре :

$ python main.py --type all
Обновление ...
NCNN для ARM-CPU
MNN для ARM-CPU
OpenVino X86-CPU или x86-VPU
Tensorrt (C ++) для ARM-GPU или ARM-NPU или x86-GPU
Tensorrt (Python) для Arm-GPU или Arm-NPU или x86-GPU
Android для Arm-CPU
Это телефон Redmi, процессор-Snapdragon 730G, а Yolov5-Lite используется для обнаружения. Производительность заключается в следующем:
Ссылка: https://github.com/ppogg/yolov5-trite/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
Новое приложение для Android: [ссылка] https://pan.baidu.com/s/1prhw4fi1jq8vbopyishciq [ключевое слово] pogg

Что такое yolov5-lite s/e Модель: Zhihu Link (китайский): https://zhuanlan.zhihu.com/p/400545131
Что такое yolov5-lite c Модель: Zhihu Link (китайский): https://zhuanlan.zhihu.com/p/420737659
Что такое yolov5-lite g Модель: Zhihu Link (китайский): https://zhuanlan.zhihu.com/p/410874403
Как развернуть на NCNN с FP16 или Int8: CSDN Link (китайский): https://blog.csdn.net/weixin_45829462/article/details/119787840
Как развернуть на MNN с FP16 или Int8: Zhihu Link (китайский): https://zhuanlan.zhihu.com/p/672633849
Как развернуть на Onnxruntime: Zhihu Link (китайский): https://zhuanlan.zhihu.com/p/4765333259(OLD версию)
Как развернуть на Tensorrt: Zhihu Link (китайский): https://zhuanlan.zhihu.com/p/478630138
Как оптимизировать Tensorrt: Zhihu Link (китайский): https://zhuanlan.zhihu.com/p/463074494
https://github.com/ultralytics/yolov5
https://github.com/megvii-model/shufflenet-series
https://github.com/tencent/ncnn
Если вы используете Yolov5-Lite в своем исследовании, пожалуйста, укажите нашу работу и дайте звезду:
@misc{yolov5lite2021,
title = {YOLOv5-Lite: Lighter, faster and easier to deploy},
author = {Xiangrong Chen and Ziman Gong},
doi = {10.5281/zenodo.5241425}
year={2021}
}