# Gradio-YOLOv5-Det-Blocks
**Repository Path**: CV_Lab/gradio_yolov5_det_blocks
## Basic Information
- **Project Name**: Gradio-YOLOv5-Det-Blocks
- **Description**: 🚀 基于 Gradio Blocks 的 YOLOv5 通用目标检测演示系统 Gradio YOLOv5 Det 项目的扩展版
- **Primary Language**: Python
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: https://gitee.com/PyCVer
- **GVP Project**: No
## Statistics
- **Stars**: 42
- **Forks**: 11
- **Created**: 2022-06-03
- **Last Updated**: 2024-11-05
## Categories & Tags
**Categories**: cv
**Tags**: YOLOv5, Gradio, 目标检测, 计算机视觉, 深度学习
## README
基于Gradio Blocks的YOLOv5通用目标检测演示系统
Gradio YOLOv5 Det的扩展项目
## 🚀 作者简介
曾逸夫,从事人工智能研究与开发;主研领域:计算机视觉;[YOLOv8官方开源项目代码贡献人](https://github.com/ultralytics/ultralytics/graphs/contributors);[YOLOv5官方开源项目代码贡献人](https://github.com/ultralytics/yolov5/graphs/contributors);[YOLOv5 v6.1代码贡献人](https://github.com/ultralytics/yolov5/releases/tag/v6.1);[YOLOv5 v6.2代码贡献人](https://github.com/ultralytics/yolov5/releases/tag/v6.2);[YOLOv5 v7.0代码贡献人](https://github.com/ultralytics/yolov5/releases/tag/v7.0);[Gradio官方开源项目代码贡献人](https://github.com/gradio-app/gradio/graphs/contributors)
❤️ Github:https://github.com/Zengyf-CVer
🔥 YOLOv8 官方开源项目PR ID:
- Fix YOLOv8 Chinese introduction:https://github.com/ultralytics/ultralytics/pull/219
- Add codespell and upgrade some components:https://github.com/ultralytics/ultralytics/pull/599
- Add pycln:https://github.com/ultralytics/ultralytics/pull/7141
- Fix heatmap width and height parameter bug:https://github.com/ultralytics/ultralytics/pull/7368
- ultralytics 8.0.237 cv2.CAP_PROP fix and in_counts and out_counts displays:https://github.com/ultralytics/ultralytics/pull/7380
💡 Ultralytics v8.1.0 代码贡献链接:
- https://github.com/ultralytics/ultralytics/releases/tag/v8.1.0
🔥 YOLOv5 官方开源项目PR ID:
- Save \*.npy features on detect.py `--visualize`:https://github.com/ultralytics/yolov5/pull/5701
- Fix `detect.py --view-img` for non-ASCII paths:https://github.com/ultralytics/yolov5/pull/7093
- Fix Flask REST API:https://github.com/ultralytics/yolov5/pull/7210
- Add yesqa to precommit checks:https://github.com/ultralytics/yolov5/pull/7511
- Add mdformat to precommit checks and update other version:https://github.com/ultralytics/yolov5/pull/7529
- Add TensorRT dependencies:https://github.com/ultralytics/yolov5/pull/8553
- Add paddle tips:https://github.com/ultralytics/yolov5/pull/9502
💡 YOLOv5 v6.1 & v6.2 & v7.0 代码贡献链接:
- https://github.com/ultralytics/yolov5/releases/tag/v6.1
- https://github.com/ultralytics/yolov5/releases/tag/v6.2
- https://github.com/ultralytics/yolov5/releases/tag/v7.0
🔥 Gradio 官方开源项目PR ID:
- Create a color generator demo:https://github.com/gradio-app/gradio/pull/1872
🚀更新走势
- `2022-12-21` **⚡ [Gradio YOLOv5 Det Blocks v0.4.2](https://gitee.com/CV_Lab/gradio_yolov5_det_blocks/releases/v0.4.2)正式上线**
- `2022-07-22` **⚡ [Gradio YOLOv5 Det Blocks v0.4](https://gitee.com/CV_Lab/gradio_yolov5_det_blocks/releases/v0.4)正式上线**
- `2022-07-11` **⚡ [Gradio YOLOv5 Det Blocks v0.3](https://gitee.com/CV_Lab/gradio_yolov5_det_blocks/releases/v0.3)正式上线**
- `2022-06-24` **⚡ [Gradio YOLOv5 Det Blocks v0.2](https://gitee.com/CV_Lab/gradio_yolov5_det_blocks/releases/v0.2)正式上线**
- `2022-06-09` **⚡ [Gradio YOLOv5 Det Blocks v0.1](https://gitee.com/CV_Lab/gradio_yolov5_det_blocks/releases/v0.1)正式上线**
💎项目流程与用途
### 📌 项目示例
#### ❤️ 对比检测系列:blocks_01 对比检测,不同图片 不同模型 不同配置
#### ❤️ 对比检测系列:blocks_01_02 对比检测,同一图片 不同模型 不同配置
#### ❤️ 对比检测系列:blocks_01_03 对比检测,同一图片 相同模型 不同配置
#### ❤️ 双端操作系列:blocks_02 单图片,双端操作
#### ❤️ 双端操作系列:blocks_02_02 图片/webcam 双模式,双端操作
#### ❤️ 双端操作系列:blocks_02_03 单图片,双端操作,强制加载YOLOv5
#### ❤️ 示例系列:blocks_03 单图片,示例
#### ❤️ 示例系列:blocks_03_02 单图片,示例下载
#### ❤️ 示例系列:blocks_03_03 单图片,示例配置
#### ❤️ 清除与重置系列:blocks_04 & blocks_04_02 单图片,清除/双端清除
#### ❤️ 清除与重置系列:blocks_04_03 单图片,重置
#### ❤️ 图片路径系列:blocks_05 单图片路径,文本输入(在线)
#### ❤️ 图片路径系列:blocks_05_02 多图片路径,文件上传(在线)
#### ❤️ 绘制检测系列:blocks_06 绘制检测(opencv, pillow, matplotlib)
#### ❤️ 绘制检测系列:blocks_06_02 绘制检测(opencv, pillow, matplotlib),画廊(多选模式)
#### ❤️ 绘制检测系列:blocks_06_03 绘制检测,颜色切换
#### ❤️ 自定义模型权重系列:blocks_07 自定义模型权重,上传
#### ❤️ 目标尺寸系列:blocks_08 目标尺寸,单选
#### ❤️ 目标尺寸系列:blocks_08_02 目标尺寸,多选
#### ❤️ 视频检测系列:blocks_09 视频/webcam 双模式
#### ❤️ 图片批量检测系列:blocks_10 图片批量检测
#### ❤️ 图片批量检测系列:blocks_10_02 图片批量检测,下载
#### ❤️ 图片批量检测系列:blocks_10_03 图片批量检测,批量下载
💡项目结构
```
.
├── gradio_yolov5_det_blocks # 项目名称
│ ├── 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版-中文)
│ │ └── cls_name.csv # 类别名称文件(csv版-中文)
│ ├── models # 模型Hub
│ │ ├── readme.md # 模型Hub README
│ │ ├── *.pt # PyTorch模型
│ │ └── *.onnx # ONNX模型
│ ├── util # 工具包
│ │ ├── gradio_version_opt.py # gradio版本管理
│ │ ├── fonts_opt.py # 字体管理
│ │ ├── pdf_opt.py # PDF管理
│ │ └── download_unzip.py # 下载与解压管理
│ ├── img_examples # 示例图片
│ ├── __init__.py # 初始化文件
│ ├── blocks_01_x.py # 对比检测系列
│ ├── blocks_02_x.py # 双端操作系列
│ ├── blocks_03_x.py # 示例系列
│ ├── blocks_04_x.py # 清除与重置系列
│ ├── blocks_05_x.py # 图片路径系列
│ ├── blocks_06_x.py # 绘制检测系列
│ ├── blocks_07_x.py # 自定义模型权重系列
│ ├── blocks_08_x.py # 目标尺寸系列
│ ├── blocks_09_x.py # 视频检测系列
│ ├── blocks_10_x.py # 图片批量检测系列
│ ├── LICENSE # 项目许可
│ ├── CodeCheck.md # 代码检查
│ ├── .gitignore # git忽略文件
│ ├── yolov5_pytorch_gpu.md # YOLOv5 PyTorch GPU安装教程
│ ├── README.md # 项目说明
│ └── requirements.txt # 脚本依赖包
```
🔥安装教程
### ✅ 第一步:创建conda环境
```shell
conda create -n yolo python==3.8
conda activate yolo # 进入环境
```
### ✅ 第二步:克隆
```shell
git clone https://gitee.com/CV_Lab/gradio_yolov5_det_blocks.git
```
### ✅ 第三步:安装Gradio YOLOv5 Det Blocks依赖
```shell
cd gradio_yolov5_det_blocks
pip install -r ./requirements.txt -U
```
❗ 注意:yolov5默认采用pip安装PyTorch GPU版,如果采用官网安装**PyTorch GPU**版,参见[YOLOv5 PyTorch GPU安装教程](./yolov5_pytorch_gpu.md)
⚡使用教程
```shell
# 对比检测系列
python blocks_01_x.py
# 双端操作系列
python blocks_02_x.py
# 示例系列
python blocks_03_x.py
# 清除与重置系列
python blocks_04_x.py
# 图片路径系列
python blocks_05_x.py
# 绘制检测系列
python blocks_06_x.py
# 自定义模型权重系列
python blocks_07_x.py
# 目标尺寸系列
python blocks_08_x.py
# 视频检测系列
python blocks_09_x.py
# 图片批量检测系列
python blocks_10_x.py
```
❤️ 具体文件信息与功能描述,参见下表:
| 系列编号 | 文件名称 | 功能描述 |
| :--: | :-------------------------------: | :---------------------------------------: |
| 01 | [blocks_01](./blocks_01.py) | 对比检测,不同图片 不同模型 不同配置 |
| 01 | [blocks_01_02](./blocks_01_02.py) | 对比检测,同一图片 不同模型 不同配置 |
| 01 | [blocks_01_03](./blocks_01_03.py) | 对比检测,同一图片 相同模型 不同配置 |
| 02 | [blocks_02](./blocks_02.py) | 单图片,双端操作 |
| 02 | [blocks_02_02](./blocks_02_02.py) | 图片/webcam 双模式,双端操作 |
| 02 | [blocks_02_03](./blocks_02_03.py) | 单图片,双端操作,强制加载YOLOv5 |
| 03 | [blocks_03](./blocks_03.py) | 单图片,示例 |
| 03 | [blocks_03_02](./blocks_03_02.py) | 单图片,示例下载 |
| 03 | [blocks_03_03](./blocks_03_03.py) | 单图片,示例配置 |
| 04 | [blocks_04](./blocks_04.py) | 单图片,清除 |
| 04 | [blocks_04_02](./blocks_04_02.py) | 单图片,双端清除 |
| 04 | [blocks_04_03](./blocks_04_03.py) | 单图片,重置 |
| 05 | [blocks_05](./blocks_05.py) | 单图片路径,文本输入(在线) |
| 05 | [blocks_05_02](./blocks_05_02.py) | 多图片路径,文件上传(在线) |
| 06 | [blocks_06](./blocks_06.py) | 绘制检测(opencv, pillow, matplotlib) |
| 06 | [blocks_06_02](./blocks_06_02.py) | 绘制检测(opencv, pillow, matplotlib),画廊(多选模式) |
| 06 | [blocks_06_03](./blocks_06_03.py) | 绘制检测,颜色切换 |
| 07 | [blocks_07](./blocks_07.py) | 自定义模型权重,上传 |
| 08 | [blocks_08](./blocks_08.py) | 目标尺寸,单选 |
| 08 | [blocks_08_02](./blocks_08_02.py) | 目标尺寸,多选 |
| 09 | [blocks_09](./blocks_09.py) | 视频检测,视频/webcam 双模式 |
| 10 | [blocks_10](./blocks_10.py) | 图片批量检测 |
| 10 | [blocks_10_02](./blocks_10_02.py) | 图片批量检测,下载 |
| 10 | [blocks_10_03](./blocks_10_03.py) | 图片批量检测,批量下载 |
### 💬 技术交流
- 如果你发现任何Gradio YOLOv5 Det Blocks存在的问题或者是建议, 欢迎通过[Gitee Issues](https://gitee.com/CV_Lab/gradio_yolov5_det_blocks/issues)给我提issues。
- 欢迎加入CV Lab技术交流群