1 Star 0 Fork 45

mikejohnson / Gradio-YOLOv5-Det

forked from CV_Lab / Gradio-YOLOv5-Det 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 24.49 KB
一键复制 编辑 原始数据 按行查看 历史
代码阿尔法 提交于 2022-06-20 07:44 . readme update

Simple Icons

基于Gradio的YOLOv5通用目标检测演示系统

可自定义检测模型、演示便捷、安装简单

code check Releases Version gradio awesome demos Hugging Face Spaces Hugging Face Spaces License

YOLOv5 Version Gradio Version Python Version Torch Version TorchVision Version pre-commit

star fork

🚀 作者简介

曾逸夫,从事人工智能研究与开发;主研领域:计算机视觉;YOLOv5官方开源项目代码贡献人YOLOv5 v6.1代码贡献人

❤️ Github:https://github.com/Zengyf-CVer

🔥 YOLOv5 官方开源项目PR ID:

💡 YOLOv5 v6.1代码贡献链接:

🚀更新走势

🤗在线Demo

🚀 Gradio YOLOv5 Det v0.3 正式加入到Gradio官方demo列表 🤗

❤️ 点击下图进入Gradio awesome-demos ,在Computer vision列表中Find Me!

❤️ 快速体验

本项目提供了在线demo,点击下面的logo,进入Hugging Face Spaces中快速体验:

💡 Demo 列表

❤️ 点击列表中的链接,进入对应版本的Hugging Face Spaces界面中快速体验:

Demo 名称 输入类型 输出类型 整体界面 状态
🚀 Gradio YOLOv5 Det v0.4 图片/视频 图片/视频/JSON/PDF/数据表 Image ,Video , 检测后 demo status
🚀 Gradio YOLOv5 Det v0.3 图片 图片/JSON/PDF/数据表 检测前 , 检测后 demo status
Gradio YOLOv5 Det v0.2.2 图片 图片/JSON/PDF 检测前 , 检测后 demo status
Gradio YOLOv5 Det v0.2 图片 图片/JSON/PDF 检测前 , 检测后 demo status
Gradio YOLOv5 Det v0.1 图片 图片/JSON 检测前 , 检测后 demo status

❗ 注:点击整体界面链接,查看项目整体界面大图

⚡ 自定义在线Demo

❤️ 方法一:gradio.Interface.load()

点击下图,查看详细代码:

❤️ 方法二:gradio.js

点击下图,查看详细代码:

❤️ 方法三:gradio iframe

查看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>

💎项目流程与用途

📌 项目整体流程

📌 项目示例

❤️ Gradio YOLOv5 Det v0.4 界面与检测效果

❤️ 输入界面

输入界面01
输入界面02
输入界面03(视频模式)

❤️ 输出界面

输出界面01
输出界面02(v0.4 实例查看)
输出界面03
输出界面04

❤️ 快速体验

本项目提供了4个示例,用户可以快速体验检测效果:

示例界面

💡项目结构

.
├── 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_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环境

conda create -n yolo python==3.8
conda activate yolo # 进入环境

✅ 第二步:克隆

git clone https://gitee.com/CV_Lab/gradio_yolov5_det.git

✅ 第三步:安装Gradio YOLOv5 Det依赖

cd gradio_yolov5_det
pip install -r ./requirements.txt -U

❗ 注意:yolov5默认采用pip安装PyTorch GPU版,如果采用官网安装PyTorch GPU版,参见YOLOv5 PyTorch GPU安装教程

⚡使用教程

❤️ 注:Gradio YOLOv5 Det v0.4.x 的使用方法和v0.1、v0.2.x、v0.3.x相同,将gradio_yolov5_det.py 改为 gradio_yolov5_det_v4_x.py 即可。

💡 运行YOLOv5模型

📌 下载YOLOv5 P5模型

❤️ yolov5n.pt--yolov5x.pt,yolov5n6.pt--yolov5x6.pt下载到models目录中

bash ./model_download/yolov5_model_p5_p6_all.sh

📌 运行

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

💡 脚本指令操作 [推荐]

❤️ 本项目提供了一些脚本指令,旨在扩展项目的功能。

❗ 注:其中的一些功能是界面组件(按钮、文本框等)无法实现的,需要通过脚本指令完成:

# 登录模式(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/

# 图片输入源切换,默认为图片上传(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.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.

💬 技术交流

  • 如果你发现任何Gradio YOLOv5 Det存在的问题或者是建议, 欢迎通过Gitee Issues给我提issues。
  • 欢迎加入CV Lab技术交流群
Python
1
https://gitee.com/mikejohnson/gradio_yolov5_det.git
git@gitee.com:mikejohnson/gradio_yolov5_det.git
mikejohnson
gradio_yolov5_det
Gradio-YOLOv5-Det
master

搜索帮助