基于Gradio的YOLOv5通用目标检测演示系统
可自定义检测模型、演示便捷、安装简单
曾逸夫,从事人工智能研究与开发;主研领域:计算机视觉;YOLOv5官方开源项目代码贡献人;YOLOv5 v6.1代码贡献人;YOLOv5 v6.2代码贡献人;YOLOv5 v7.0代码贡献人;Gradio官方开源项目代码贡献人
❤️ Github:https://github.com/Zengyf-CVer
🔥 YOLOv5 官方开源项目PR ID:
--visualize
:https://github.com/ultralytics/yolov5/pull/5701
detect.py --view-img
for non-ASCII paths:https://github.com/ultralytics/yolov5/pull/7093
💡 YOLOv5 v6.1 & v6.2代码贡献链接:
🔥 Gradio 官方开源项目PR ID:
2022-12-18
⚡ Gradio YOLOv5 Det v0.5.2正式上线
2022-08-04
⚡ Gradio YOLOv5 Det v0.5正式上线
2022-05-31
⚡ Gradio YOLOv5 Det v0.4正式上线
2022-05-22
⚡ Gradio YOLOv5 Det v0.3正式上线
2022-05-14
🚀 [好消息] Gradio YOLOv5 Det v0.3 正式加入到 Gradio官方demo列表 🎉🎉🎉🎉🎉2022-05-13
🚀[推荐] Gradio YOLOv5 Det 开发版 脚本指令操作
2022-05-12
⚡ Gradio YOLOv5 Det v0.2.2正式上线
2022-05-08
⚡ Gradio YOLOv5 Det v0.2正式上线
2022-04-30
⚡ Gradio YOLOv5 Det v0.1正式上线
❤️ 点击下图进入Gradio awesome-demos ,在Computer vision列表中Find Me!
本项目提供了在线demo,点击下面的logo,进入Hugging Face Spaces中快速体验:
❤️ 点击列表中的链接,进入对应版本的Hugging Face Spaces界面中快速体验:
Demo 名称 | 整体界面-检测前 | 整体界面-检测后 | 状态 |
---|---|---|---|
🚀 Gradio YOLOv5 Det v0.5 | Image ,Video | Image ,Video | |
🚀 Gradio YOLOv5 Det v0.4 | Image ,Video | Image | |
Gradio YOLOv5 Det v0.3 | Image | Image | |
Gradio YOLOv5 Det v0.2.2 | Image | Image | |
Gradio YOLOv5 Det v0.2 | Image | Image | |
Gradio YOLOv5 Det v0.1 | Image | Image |
❗ 注:点击整体界面
链接,查看项目整体界面大图
Demo 名称 | 输入类型 | 输出类型 |
---|---|---|
🚀 Gradio YOLOv5 Det v0.5 | 图片/视频 | 图片/视频/JSON/PDF/数据表/统计图 |
🚀 Gradio YOLOv5 Det v0.4 | 图片/视频 | 图片/视频/JSON/PDF/数据表 |
Gradio YOLOv5 Det v0.3 | 图片 | 图片/JSON/PDF/数据表 |
Gradio YOLOv5 Det v0.2.2 | 图片 | 图片/JSON/PDF |
Gradio YOLOv5 Det v0.2 | 图片 | 图片/JSON/PDF |
Gradio YOLOv5 Det v0.1 | 图片 | 图片/JSON |
点击下图,查看详细代码:
点击下图,查看详细代码:
查看gradio iframe详细代码:
<iframe src="https://hf.space/embed/Gradio-Blocks/Gradio_YOLOv5_Det/+" frameBorder="0" width="1300px" height="1000px" title="Gradio app" allow="accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking" sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"></iframe>
本项目提供了4个图片示例,用户可以快速体验检测效果:
本项目提供了3个视频示例,用户可以快速体验检测效果:
.
├── gradio_yolov5_det # 项目名称
│ ├── model_download # 模型下载
│ │ ├── yolov5_model_p5_p6_all.sh # YOLOv5 P5模型
│ │ ├── yolov5_model_p5_all.sh # YOLOv5 P5模型
│ │ ├── yolov5_model_p6_all.sh # YOLOv5 P6模型
│ │ └── yolov5_model_p5_n.sh # yolov5n模型
│ ├── model_config # 模型配置
│ │ ├── model_name_p5_all.yaml # YOLOv5 P5 模型名称(yaml版)
│ │ ├── model_name_p6_all.yaml # YOLOv5 P6 模型名称(yaml版)
│ │ ├── model_name_p5_p6_all.yaml # YOLOv5 P5 & P6 模型名称(yaml版)
│ │ ├── model_name_p5_n.yaml # yolov5n 模型名称(yaml版)
│ │ ├── model_name_p5_all.csv # YOLOv5 P5 模型名称(csv版)
│ │ ├── model_name_p6_all.csv # YOLOv5 P6 模型名称(csv版)
│ │ └── model_name_p5_n.csv # yolov5n 模型名称(csv版)
│ ├── cls_name # 类别名称
│ │ ├── cls_name_zh.yaml # 类别名称文件(yaml版-中文)
│ │ ├── cls_name_en.yaml # 类别名称文件(yaml版-英文)
│ │ ├── cls_name_ru.yaml # 类别名称文件(yaml版-俄语)
│ │ ├── cls_name_es.yaml # 类别名称文件(yaml版-西班牙语)
│ │ ├── cls_name_ar.yaml # 类别名称文件(yaml版-阿拉伯语)
│ │ ├── cls_name_ko.yaml # 类别名称文件(yaml版-韩语)
│ │ ├── cls_name.yaml # 类别名称文件(yaml版-中文-v0.1)
│ │ └── cls_name.csv # 类别名称文件(csv版-中文)
│ ├── huggingface_demo # 自定义在线HuggingFace Demo
│ │ ├── gyd_hf_demo_v4.py # Gradio YOLOv5 Det v0.4 脚本
│ │ └── gyd_hf_demo_v3.py # Gradio YOLOv5 Det v0.3 脚本
│ ├── models # 模型Hub
│ │ ├── readme.md # 模型Hub README
│ │ ├── *.pt # PyTorch模型
│ │ └── *.onnx # ONNX模型
│ ├── util # 工具包
│ │ ├── fonts_opt.py # 字体管理
│ │ └── pdf_opt.py # PDF管理
│ ├── history_version # 历史版本README
│ │ ├── v1_v2.md # v1_v2 中文README
│ │ └── v1_v2.en.md # v1_v2 英文README
│ ├── img_examples # 示例图片
│ ├── __init__.py # 初始化文件
│ ├── gradio_yolov5_det_v5_02.py # v0.5.2主运行文件
│ ├── gradio_yolov5_det_v5.py # v0.5主运行文件
│ ├── gradio_yolov5_det_v5_dev.py # v0.5主运行文件(热重载版)
│ ├── gradio_yolov5_det_v4.py # v0.4主运行文件
│ ├── gradio_yolov5_det_v3.py # v0.3主运行文件
│ ├── gradio_yolov5_det_v2_2.py # v0.2.2主运行文件
│ ├── gradio_yolov5_det_v2.py # v0.2主运行文件
│ ├── gradio_yolov5_det.py # v0.1主运行文件
│ ├── LICENSE # 项目许可
│ ├── CodeCheck.md # 代码检查
│ ├── .gitignore # git忽略文件
│ ├── yolov5_pytorch_gpu.md # YOLOv5 PyTorch GPU安装教程
│ ├── README.md # 项目说明
│ ├── README.en.md # 项目说明(英文版)
│ └── requirements.txt # 脚本依赖包
🔥 Gradio YOLOv5 Det v0.4 采用标签和边界框颜色模式:(点击图片,可查看大图)
v0.3 | v0.4 |
---|---|
![]() |
![]() |
🔥 Gradio-YOLOv5-Det v0.2 采用Pillow组件绘制图片检测效果,可自定义字体文件。
🔥 Gradio-YOLOv5-Det v0.2 的检测结果可以在图片上显示ID、自定义字体标签以及置信度,同时提供了6种语言:中文、英文、俄语、西班牙语、阿拉伯语以及韩语,具体效果如下图所示。(点击图片,可查看大图)
版本-语言 | 效果图 |
---|---|
v0.1-英文 | ![]() |
v0.2-中文 | ![]() |
v0.2-英文 | ![]() |
v0.2-俄语 | ![]() |
v0.2-西班牙语 | ![]() |
v0.2-阿拉伯语 | ![]() |
v0.2-韩语 | ![]() |
conda create -n yolo python==3.8
conda activate yolo # 进入环境
git clone https://gitee.com/CV_Lab/gradio_yolov5_det.git
cd gradio_yolov5_det
pip install -r ./requirements.txt -U
❗ 注意:yolov5默认采用pip安装PyTorch GPU版,如果采用官网安装PyTorch GPU版,参见YOLOv5 PyTorch GPU安装教程
❤️ 注:Gradio YOLOv5 Det v0.5.x 的使用方法和v0.1、v0.2.x、v0.3.x、v0.4.x相同,将gradio_yolov5_det.py
改为 gradio_yolov5_det_v5_x.py
即可。
📌 下载YOLOv5 P5模型
❤️ yolov5n.pt--yolov5x.pt,yolov5n6.pt--yolov5x6.pt下载到models
目录中
bash ./model_download/yolov5_model_p5_p6_all.sh
📌 运行
python gradio_yolov5_det_v5.py # v0.5
python gradio_yolov5_det_v4.py # v0.4
python gradio_yolov5_det_v3.py # v0.3
# 在浏览器中输入:http://127.0.0.1:7860/或者http://127.0.0.1:7861/ 等等(具体观察shell提示)
❗ 注意:v0.1和v0.2.x版本运行如下:
cd gradio_yolov5_det && git clone https://github.com/ultralytics/yolov5.git
cp *.pt yolov5
python gradio_yolov5_det.py # v0.1
python gradio_yolov5_det_v2.py # v0.2
python gradio_yolov5_det_v2_2.py # v0.2.2
❤️ 本项目提供了4种YOLOv5模型下载脚本,默认为yolov5_model_p5_p6_all.sh
# yolov5n模型下载及运行
bash ./model_download/yolov5_model_p5_n.sh
python gradio_yolov5_det.py -mc ./model_config/model_name_p5_n.yaml (yaml版)
# python gradio_yolov5_det.py -mc ./model_config/model_name_p5_n.csv (csv版)
# YOLOv5 P5模型下载及运行
bash ./model_download/yolov5_model_p5_all.sh
python gradio_yolov5_det.py -mc ./model_config/model_name_p5_all.yaml (yaml版)
# python gradio_yolov5_det.py -mc ./model_config/model_name_p5_all.csv (csv版)
# YOLOv5 P6模型下载及运行
bash ./model_download/yolov5_model_p6_all.sh
python gradio_yolov5_det.py -mc ./model_config/model_name_p6_all.yaml (yaml版)
# python gradio_yolov5_det.py -mc ./model_config/model_name_p6_all.csv (csv版)
❗ 注:默认类别文件cls_name_zh.yaml|cls_name.csv
📌 自定义模型
❤️ 将自定义模型文件(*.pt)放入到models
目录中
python gradio_yolov5_det.py -mc custom_model_name.yaml -cls custom_model_cls_name.yaml (yaml版)
# python gradio_yolov5_det.py -mc custom_model_name.csv -cls custom_model_cls_name.csv (csv版)
# 在浏览器中输入:http://127.0.0.1:7860/或者http://127.0.0.1:7861/ 等等(具体观察shell提示)
📌 自定义模型名称
custom_model_name.yaml
格式:
model_names: ["widerface-s", "widerface-m", "widerface-l"]
custom_model_name.csv
格式(\n
分隔):
widerface-s
widerface-m
widerface-l
📌 自定义模型类别
custom_model_cls_name.yaml
格式:
model_cls_name: ["face"]
custom_model_cls_name.csv
格式(\n
分隔):
face
❤️ 本项目提供了一些脚本指令,旨在扩展项目的功能。
❗ 注:其中的一些功能是界面组件(按钮、文本框等)无法实现的,需要通过脚本指令完成:
# YOLOv5模式选择(v0.5.2)
python gradio_yolov5_det_v5_02.py # 默认为online
python gradio_yolov5_det_v5_02.py -mt offline # 离线模式
# 注:在使用离线版前,需要在gradio_yolov5_det的根目录下执行git clone https://github.com/ultralytics/yolov5.git
# 然后将模型文件放入gradio_yolov5_det/yolov5中即可
# 登录模式(v0.3)
python gradio_yolov5_det.py -isl # 默认用户名\密码:admin, admin
python gradio_yolov5_det.py -isl -up zyf zyf # 设置用户名\密码:zyf, zyf
# 共享模式(v0.3)
python gradio_yolov5_det.py -is # 在浏览器中以共享模式打开,https://**.gradio.app/
# 自定义端口号
python gradio_yolov5_det.py -sp 8080 #(v0.6)
# 图片输入源切换,默认为图片上传(v0.3)
python gradio_yolov5_det.py -src upload # 图片上传
python gradio_yolov5_det.py -src webcam # webcam拍照
# 视频输入源切换,默认为视频上传(v0.4)
python gradio_yolov5_det.py -src_v upload # 视频上传
python gradio_yolov5_det.py -src_v webcam # webcam录制
# 输入图片操作模式,默认为图片编辑器(v0.3)
python gradio_yolov5_det.py -it editor # 图片编辑器
python gradio_yolov5_det.py -it select # 区域选择
# 设备切换(cuda 或者 cpu)
python gradio_yolov5_det.py -dev cuda:0 # cuda
python gradio_yolov5_det.py -dev cpu # cpu
# 自定义下拉框默认模型名称
python gradio_yolov5_det.py -mn yolov5m
# 自定义NMS置信度阈值
python gradio_yolov5_det.py -conf 0.8
# 自定义NMS IoU阈值
python gradio_yolov5_det.py -iou 0.5
# 设置推理尺寸,默认为640
python gradio_yolov5_det.py -isz 320
# 设置最大检测数,默认为50(v0.3)
python gradio_yolov5_det.py -mdn 100
# 设置滑块步长,默认为0.05(v0.3)
python gradio_yolov5_det.py -ss 0.01
# 设置默认不显示检测标签,注:v0.3弃用
python gradio_yolov5_det.py -lds
Gradio YOLOv5 Det v0.5 开发版 提供了热重载模式,可以实时调试程序:
gradio gradio_yolov5_det_v5_dev.py gyd
❗ 注:gradio>=3.0.17
Det_Report.pdf
内容如下:
相关检测数据存储在run
目录中,结构如下:
# run目录
.
├── run # 人脸数据保存目录
│ ├── 原始图片 # 原始图片目录
│ │ ├── 0.jpg # 原始图片
│ │ ├── 1.jpg # 原始图片
│ │ ├── ......
│ ├── 检测图片 # 检测图片目录
│ │ ├── 0.png # 检测图片
│ │ ├── 1.png # 检测图片
│ │ ├── ......
│ ├── 下载检测报告 # 检测报告目录
│ │ ├── 0.pdf # 检测图片
│ │ ├── 1.pdf # 检测图片
│ │ ├── ......
│ ├── log.csv # 检测日志
📌 如需引用Gradio YOLOv5 Det v0.5,请在相关文章的参考文献中加入下面文字:
曾逸夫, (2022) Gradio YOLOv5 Det (Version 0.5).https://gitee.com/CV_Lab/gradio_yolov5_det.
📌 如需引用Gradio YOLOv5 Det v0.4,请在相关文章的参考文献中加入下面文字:
曾逸夫, (2022) Gradio YOLOv5 Det (Version 0.4).https://gitee.com/CV_Lab/gradio_yolov5_det.
📌 如需引用Gradio YOLOv5 Det v0.3,请在相关文章的参考文献中加入下面文字:
曾逸夫, (2022) Gradio YOLOv5 Det (Version 0.3).https://gitee.com/CV_Lab/gradio_yolov5_det.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.