栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于YoloV5的钢筋计数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于YoloV5的钢筋计数

文章目录
  • 1、下载YoloV5源代码
  • 2、项目代码介绍
  • 3、在图片上显示计数的个数
  • 4、手机连接摄像头进行实时计数
  • 5、图片检测效果
  • 6、摄像头实时计数

文章为原创内容,如转载请标明,严禁照搬照抄!
另外如果大家有什么问题可以在评论区留言,我也是小白,我会尽量帮大家解答的。

1、下载YoloV5源代码

yolov5的源码下载地址 yolov5官网


下载之后大致是这样的,因为我这个是做钢筋计数,可能有一点不同

2、项目代码介绍

就简单做一下介绍:
1、data:主要是存放一些超参数的配置文件(这些文件(yaml文件)是用来配置训练集和测试集还有验证集的路径的,其中还包括目标检测的种类数和种类的名称);还有一些官方提供测试的图片。如果是训练自己的数据集的话,那么就需要修改其中的yaml文件。但是自己的数据集不建议放在这个路径下面,而是建议把数据集放到yolov5项目的同级目录下面。
2、models:里面主要是一些网络构建的配置文件和函数,其中包含了该项目的四个不同的版本,分别为是s、m、l、x。从名字就可以看出,这几个版本的大小。他们的检测测度分别都是从快到慢,但是精确度分别是从低到高。这就是所谓的鱼和熊掌不可兼得。如果训练自己的数据集的话,就需要修改这里面相对应的yaml文件来训练自己模型。
3、weights:放置训练好的权重参数。下载地址yolo_.pt

4、train.py:训练自己的数据集的函数

这里我们需要对这几行的代码进行修改

这里再放一张目录的图片

这里我们把数据集的路径添加进来,test这个可有可无,nc:后面记得有个空格,这里我们只检测钢筋,所以为1.
我们运行train.py之后会生成下面图片上的文件

5、detect.py:利用训练好的权重参数进行目标检测,可以进行图像、视频和摄像头的检测。

我们接下来在detect.py中修改上面的代码,第223行是把train.py生成的best.pt添加进来,第224行是我们要进行钢筋计数的图片。

3、在图片上显示计数的个数

这里我们需要在

`            if save_img:
                cv2.putText(im0, f"{n} {names[int(c)]}{'s' * (n > 1)}", (5, 50), cv2.FONT_HERSHEY_SIMPLEX, 1.2,
                            (0, 0, 255), 2)  # 添加的显示计数值`

if save_img:下面添加下面这行代码才可以显示计数的数量。大概在detect.py的190行左右

4、手机连接摄像头进行实时计数

1,下载IP摄像头APP

2、按如下步骤操作



我们记下自己的ip地址,每个人的不一样


然后在上图中这个位置添加这行代码,填写自己的IP地址和端口号。

--view-img --source http://admin:admin@192.168.47.112:8081

点击ok,再在pycharm上运行detect.py就可以了。

5、图片检测效果



yolov5s.pt的计数效果(数量为134)

yolov5m.pt的计数效果(数量为153)

yolov5l.pt的计数效果(数量为169)
通过这个计数对比我们可以发现计数效果yolov5l.pt优于yolov5m.pt优于yolov5s.pt.

6、摄像头实时计数

基于yolov5的摄像头钢筋实时计数

此外还有yolov5s.pt与yolov5m.pt的摄像头计数。需要源码的可以关注一下公共号:
Belated to bide

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030582.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号