【腾讯云 HAI域探秘】HAI部署YOLOv5开发人工智能识别戴安全帽的应用

目录

1,在hai申请一个pytorch环境

1.1点击链接进入  高性能应用服务 HAI 申请体验资格

1.2 用hai新建一个pytorch的环境

2,安装人工智能应用yolov5,并且训练安全帽识别模型

2.1,准备数据和标注数据

2.1.1 下载标注工具

2.1.2 下载数据集

2.1.3 进行数据清理和数据标注

2.1.4 添加配置文件data.yaml

2.2,为yolov5创建一个conda环境

2.3 安装yolov5,

2.4 修改配置,训练模型

3,后端flask调用yolov5生成的模型来识别是否带了安全帽

3.1为yolov5-flask创建环境:

3.2 安装yolov5-flask及其依赖

3.3 核心代码分析

3.4 运行web应用

4,总结。


1,在hai申请一个pytorch环境
1.1点击链接进入  高性能应用服务 HAI 申请体验资格

1.2 用hai新建一个pytorch的环境

按照下面的步骤新建pytorch环境

2,安装人工智能应用yolov5,并且训练安全帽识别模型

hai有时候访问github还是会卡住,所以我把所有的资料都放到了百度网盘,包括四个资料,标注工具(labelimg.zip),已经标注好的图片和数据(safthat.zip),yolov5-7.0的源码(yolov5.zip),yolov5-flask的源码(yolov5-flask.zip)

百度网盘链接:https://pan.baidu.com/s/1Lo-ri2J3gcGUTFPTs-kkTQ 
提取码:ddjj

2.1,准备数据和标注数据

可以直接使用我提供的数据集

如果要自定义准备数据集,就根据下面的流程准备自定义的数据:

2.1.1 下载标注工具

labelimg:注意这个标注工具是qt写的,要放在全英文的路径下面,否则会闪退。

2.1.2 下载数据集

这是三个常用的数据集网站(百度飞桨华为云kaggle

2.1.3 进行数据清理和数据标注

修改配置文件predefined_classes.txt,这是是我想识别的类型

safehat
no-safehat

标注图片的步骤

2.1.4 添加配置文件data.yaml
train: ../safehat/train/images
val: ../safehat/test/images
​
nc: 2
names: ['safehat', 'no-safehat']

到此,数据集准备完毕

2.2,为yolov5创建一个conda环境

进入cmd,执行更新的命令

apt-get update
apt-get upgrade

创建环境:

conda create --name yolov5 python=3.10

激活环境:

conda activate yolov5

上传图片数据到root目录,并解压

unzip safehat.zip
unzip yolov5.zip
2.3 安装yolov5,

进入yolov5,安装依赖

cd yolov5
pip install -r requirements.txt
2.4 修改配置,训练模型

2.4.1 修改配置文件

打开/root/yolov5/models/yolov5s.yaml,nc的值这里修改为2。注:其中nc代表类别,分别代表带安全帽,没带安全帽。

2.4.2 训练模型

python train.py --data ../safehat/data.yaml --epochs 300 --weights '' --cfg models/yolov5s.yaml  --batch-size 64

程序开始运行了,这里比较耗时,我数据集不多,运行了十几分钟。

运行完毕,在/root/yolov5/runs/train/exp/weights下生成模型best.pt,这个模型等会被web应用中调用

2.4.3 结果检测

python detect.py --weight runs/train/exp/weights/best.pt --source ../safehat/test/images/001000.jpg

运行完毕,在/root/yolov5/runs/detect/exp下生成图片

2.4.4 性能检测

python val.py --weights runs/train/exp/weights/best.pt --data ../safehat/data.yaml --half

运行完毕,在/root/yolov5/runs/val/exp下生成性能结果,如图所示safehat的分数较高.0.891可以接受,no-safehat的分数较低,说明这个数据集应该多添加一些没有戴安全帽的图片进行训练。

3,后端flask调用yolov5生成的模型来识别是否带了安全帽
3.1为yolov5-flask创建环境:
conda create --name yolov5-flask python=3.8

激活环境:

conda activate yolov5-flask
3.2 安装yolov5-flask及其依赖

上传项目yolov5-flask.zip到root文件夹,并解压

unzip yolov5-flask.zip

进入yolov5-flask,

cd yolov5-flask

把刚刚训练好的best.pt模型拷贝到当前目录,名字改为yolov5s.pt

安装一下依赖

pip install -r requirements.txt
apt-get install libgl1-mesa-glx

3.3 核心代码分析

这里主要就是读取上传的图片,对图片进行分析和渲染,把新的图片渲染到网页上。实际上会把这些值渲染到图片内存中,class类型,confidence自信度,name名字,xmax,xmin,ymax,ymin

@app.route("/", methods=["GET", "POST"])
def predict():
    if request.method == "POST":
        if "file" not in request.files:
            return redirect(request.url)
        file = request.files["file"]
        if not file:
            return

        img_bytes = file.read()
        img = Image.open(io.BytesIO(img_bytes))

        results = model([img]) # 核心代码
        results.render()  # 核心代码,把红色的框和提示词都渲染图片中

        now_time = datetime.datetime.now().strftime(DATETIME_FORMAT)
        img_savename = f"static/{now_time}.png"
        Image.fromarray(results.ims[0]).save(img_savename)
        return redirect(img_savename)

    return render_template("index.html")
3.4 运行web应用

为web应用,打开5000端口。

运行web应用

python webapp.py --port 5000

打开网页,上传测试图片,出结果。

4,总结。

人工智能的浪潮来了,我最初接触YOLO(You Only Look Once)是在Stable Diffusion Web UI中,它能够自动选中人物的脸部和手部,并重新渲染图像,给我留下了深刻的印象。然而,当时我仅停留在感官上的认识,并未深入了解。最近,上饶市创新创业产业孵化中心作为“一站式创业创新培育孵化平台”,具体承办了2023年上饶市首届人工智能大赛,我借此机会深入学习了YOLOv5,并将其部署到了腾讯的高性能应用服务HAI上进行实践,最终取得了完美的结果,感谢他们的付出!!!!

这次是我第一次摸索着做一个人工智能的应用,并且做了工人戴安全帽检测的web应用。我深刻感受到了腾讯云HAl在大模型应用部署方面的便捷,它无需手动部署,支持即开即用,支持可视化界面一键登录,方便调优。!

总而言之,腾讯云HAl这次给我的体验非常良好,后续会考虑探索腾讯云HAl更多的功能,为工作进行赋能~

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值