七夕女神来我家吹空调发现遥控器找不见了!快用Yolov5训练个目标识别模型并调用手机摄像头找找!
?女神说要来我家吹空调?
我揉了揉惺忪的双眼,反复确认了多遍,嗯,没有看错!
为了给女神一个好的印象,我打算提前打开空调让室内降到一个舒适的温度;可猛然间发现空调遥控器找不见了!
这可怎么办?我急中生智:可以用 Yolov5 训练个空调遥控器目标识别模型并调用手机摄像头找找看嘛!
事不宜迟,开整!
目录
1 万事大吉
1.1 数据集准备
1.2 标注数据集
1.3 训练模型
2 别高兴得太早
2.1 调用人家训练好的模型
3 大功告成
3.1 调用手机摄像头找遥控器
1 万事大吉
1.1 数据集准备
训练一个模型, 首先要准备一定量的数据集,如果一张一张从网上下载的话太费时间,没等收集完照片女神早就来了,那时还没找到空调遥控器的话不太好,于是我打算用 python 爬虫技术来快速完成这一步操作!
读者若有对爬虫的学习需求可以点击下方链接参考我的 python 爬虫专栏:
Python 网络数据爬取及分析「从入门到精通」
1.1.1 基于requests库的百度图片爬取
我决定就对百度图片库中的 “空调遥控器” 相关图片进行爬取,今天是七夕,就爬 520 张吧。
百度图片库 “空调遥控器” 相关图片爬取代码如下:
#!/usr/bin/python
# -*- coding:utf-8 -*-
import re
import requestsword = "空调遥控器"
url = 'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=' + word + '&pn='
numPicture = 520
file = 'E:/images'
t, num = 0, 0headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'
}
response = requests.Session()
response.headers = headerswhile t <= numPicture:url = url + str(t)html = response.get(url, timeout=10, allow_redirects=False)pic_urls = re.findall('"objURL":"(.*?)",', html.text, re.S)for pic_url in pic_urls:print('Download 第' + str(num) + '张图片,图片 url:' + str(pic_url))string = file + r'\\' + word + '+' + str(num) + '.jpg'local_path = open(string, 'wb')photo = requests.get(pic_url, timeout=7)local_path.write(photo.content)local_path.close()num += 1t = t + 52
爬取结果示例:
1.1.2 重命名
为了便于下一步框选数据集标签操作,吻合 yolov5 对于数据集图片及对应标签名字必须一致的特点,以及避免因出现中文而报错的隐患,我打算在标注数据集图片之前先进行一下重命名操作:直接按顺序依次重命名为 1.jpg、2.jpg、3.jpg ……
重命名代码如下:
#!/usr/bin/python
# -*- coding:utf-8 -*-
import osfolderpath = r'E:\images'
picsPath = os.listdir(folderpath)i = 1
for picPath in picsPath:pass_name = os.path.join(folderpath, picPath)new_name = os.path.join(folderpath + '/' + str(i) + '.jpg')os.rename(pass_name, new_name)print("旧路径:", pass_name," ---> 重命名后路径:", new_name)i += 1
运行结果展示:
至此,数据集准备工作就告一段落啦!
1.2 标注数据集
关于如何制作和训练自己的数据集,我之前也写过相应文章,读者可点击下方链接查看:
GitHub YOLOv5 开源代码项目系列讲解(二)------制作和训练自己的数据集
这一步我按照 Github Yolov5 官网源码指示,选用下面链接网站进行线上数据标注:https://www.makesense.ai/
值得注意的是,yolov5 要求图片与对应标签名称必须一致,且要求必须分别放置到 images 和labels 文件夹中。
而这部分要求,这个线上标注数据的网站就可以帮我们制作好。
因为我要做的是 “空调遥控器” 的目标检测,所以仅设置一个标签:"remote"
注:若设置两个或多个标签,则依次为第 “0" 个"、第 “1” 个,顺序很重要喔。
接再来就是漫长而枯燥的框选目标的过程……
520 张图片终于标完啦,伸个懒腰,把它们对应目标的标签 txt 文件。
至此,枯燥乏味的数据标注工作也结束啦。
1.3 训练模型
在 yolov5-v5.0 目录下新建 mydata 文件夹,并在其中新建 images 文件夹和 labels 文件夹,随后在 images 文件夹和 labels 文件夹下新建 train 文件夹和 test 文件夹。将上几步得到的 label 文件和 image 文件分别传入对应位置。
接下来在开源代码 data 目录下新建 mydata.yaml 文件并键入
值得注意的是,在 train.py 文件的 add_argument 方法中找到 “--data”,并将其设置为上一步新建的 mydata.yaml 文件目录;强烈建议将 “--workers” 值设置为 “0”,避免因多线程问题而报错。
注:train.py 文件的参数作用可点击下面链接参考
GitHub YOLOv5 开源代码项目系列讲解(四)------训练相关参数解释
正在欢天喜地打算庆祝工作做完大半之时,突然想到官网给出的训练模型已经提供了 80 种物体识别实例, 我记得其中有个叫 “remote” 的物体可识别,应该就是遥控器!
于是我果断点了暂停,还好这一想法迸发得早,不然在女神来之前恐怕都训练不完呢!
2 别高兴得太早
2.1 调用人家训练好的模型
一拍大腿,都怪我太冲动,仔细想想就不用干那么多无用功了。
接受现实,赶紧数一数 “remote” 在第几类吧,并注意一些重要配置参数待会要进行键入。
注:datect.py 文件的参数作用可点击下面链接参考
GitHub YOLOv5 开源代码项目系列讲解(三)------预测相关参数解释
3 大功告成
3.1 调用手机摄像头找遥控器
首先打开手机上的 “IP摄像头” APP。
点击 “打开IP摄像头服务器”。
勾选 “RTSP” 并点击 “分享”。
记下局域网地址
在 GitHub 上就已经提供了连接手机实时检测的代码示例。
打开 PyCharm,在右上角点击 “Edit Configuration”,填入 “Parameters” 值。
- --view-img:用于在电脑上实时显示目标检测画面。
- --source:用于接入手机上的局域网地址。
--source http://admin:admin@后面紧接局域网地址如:--source http://admin:admin@192.***.***.***:****
3.2 运行结果
啊这……这结果看得我目瞪口呆:空调遥控器这不在电脑键盘上呢么;可能是想到女神要来我家我激动地脑袋嗡嗡的叭,不然怎么会 “骑着毛驴找毛驴” 呢!
就在这时,门口传来了温柔而轻盈敲门声 ……
版权声明:本文为CSDN博主「荣仔!最靓的仔!」的原创文章,遵循 CC 4.0 BY-SA 版权协议。转载请在醒目位置附上原文出处链接及本声明。
CSDN博主「荣仔!最靓的仔!」的其他原创专栏链接:
《机器学习》学习笔记专栏:https://blog.csdn.net/it_charge/category_9920949.html
《数字图像处理》学习笔记专栏:https://blog.csdn.net/it_charge/category_9899861.html
《Python网络数据爬取及分析》专栏:https://blog.csdn.net/it_charge/category_10097766.html
《GitHub YOLOv5 开源代码项目系列讲解》专栏:https://blog.csdn.net/it_charge/category_11244228.html
《「深度学习一遍过」必修篇》专栏:https://blog.csdn.net/it_charge/category_11251478.html
《23种设计模式在王者荣耀中的应用》专栏:https://blog.csdn.net/it_charge/category_9842143.html博主B站地址:https://space.bilibili.com/386691571
感谢阅读 ! 感谢支持 ! 感谢关注 !
欢迎大家交流评论,一起学习!
年七夕节于中国大陆 • 重庆
END
七夕女神来我家吹空调发现遥控器找不见了!快用Yolov5训练个目标识别模型并调用手机摄像头找找!相关推荐
- 我在工地晒的阙黑一月八千,他在家吹空调做招商团长一月两万多。
我在工地晒的阙黑一月八千,他在家吹空调做招商团长一月两万多. 有一句老话讲的真是没错,男怕选错行,女怕嫁错郎,这一句话我算是切身实地的体会到了,并有深深的感触. 高考的时候分数不高,就在当地上了大专, ...
- STM32 录制与播放空调/TV遥控器的红外信号
准备工作: (1)红外线接收管 IR receiver (2)红外线发射灯 IR transmitter (3)STM32控制板 (4)面包线 Jumper cables (5)空调/TV遥控器 硬件 ...
- 美女多,地位高,坐办公室吹空调,关键还是小土豪……这是什么工作?
美女多,地位高,坐办公室吹空调,关键还是小土豪-- 怎么能找到这样的工作? 参加 乐搏学院软件测试,也就是人们通常说的-- 软件测试工程师. 软件测试入行门槛较低 不管你是初中.中专毕业闲置在家 还是 ...
- AI求解偏微分方程新基准登NeurIPS,发现JAX计算速度比PyTorch快6倍,LeCun转发:这领域确实很火...
萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 用AI求解偏微分方程,这段时间确实有点火. 但究竟什么样的AI求解效果最好,却始终没有一个统一的定论. 现在,终于有人为这个领域制作了一个名叫PD ...
- AI求解偏微分方程新基准登NeurIPS,发现JAX计算速度比PyTorch快6倍,LeCun转发:这领域确实很火
萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 用AI求解偏微分方程,这段时间确实有点火. 但究竟什么样的AI求解效果最好,却始终没有一个统一的定论. 现在,终于有人为这个领域制作了一个名叫PD ...
- 震惊,某男子在吹空调之后竟然出现了这样的状态
人生短短急个球,不死不罢休-- 恭喜各位大佬,进入了9月金秋,相信很多人都会有各种并发症出现了,其中,最多的是因为空调引起的各种感冒 在2020年9月12日,我由于要更改一个系统BUG,晚上开着空调改 ...
- 经常吹空调皮肤是不是会变黑
空调病是空调给人们带来舒爽的同时,也带来的一种 " 病 " .长期在空调环境下工作学习的人,因空气不流通,环境得不到改善,会出现鼻塞.头昏.打喷嚏.耳鸣.乏力.记忆力减退等症状,以 ...
- 卡特加特“飞碟”万能红外遥控器,一个控全屋所有家电!支持语音遥控定时手机,传统家电变智能
随着生活越来越好,大家家里的家电也越来越多. 电视机顶盒.功放.空调.热水器--虽说是方便了不少,但一个电器就得有一个遥控器也属实麻烦! 不仅容易搞混,还特容易搞丢,用的时候找不到,不用的时候占地方. ...
- git安装后找不见版本_结果发现git版本为1.7.4,(git --version)而官方提示必须是1.7.10及以后版本...
结果发现git版本为1.7.4,(git --version)而官方提示必须是1.7.10及以后版本 升级 增加ppa sudo apt-add-repository ppa:git-core/ppa ...
最新文章
- 北恒生物获德诚资本约1亿元A轮融资,德诚资本投资
- Vsftpd文件传输服务(本地用户访问)
- Windows 7备份、还原功能详解
- 斐波那契回调线怎么画_Lionheart万汇:斐波那契回调线,实战使用方法和难点
- Java 并发编程AQS基本介绍
- 用GIF展现程序员的生活二
- M-TOUCH移动端社区论坛类型的网站源码
- 大数据智能推荐系统原理介绍
- Apple Pay编程指南(5) - 处理付款结果
- 微信小程序 - 开发者账号申请流程
- bootstrap 动态横向时间轴_简洁的横向水平时间轴特效
- FileZilla打开连接后本地站点无法显示自己的本地电脑
- wifi大师分销多开v3.1.5安装教程附带源码
- 肾有多好人就有多年轻—男女通用
- ntpdate解决同步时间报错 the NTP socket is in use, exiting
- 什么是C端 什么是B端 这里告诉你
- Access入库检验系统功能分析(本件确认、本批确认)
- 如何搭建数据指标监测体系?
- 深度学习在推荐领域的应用lookalike
- 【LeetCode】263.丑数 264. 丑数 II
热门文章
- Mac使用技巧总结-如何独立设置Mac触摸板方向和鼠标滚轮方向?
- Hold the door! mosquitto——使用ESP8266以及网络调试助手测试通信
- php二维数组实例_什么是php二维数组?php二维数组实例详解
- JavaScript高级程序设计第三版.CHM【带实例】
- 异常检测的阈值,你怎么选?给你整理好了...
- 11.修改数据库字符编码
- 电器“服务”焕新生活?香!香!香!
- 深度度量学习 (metric learning deep metric learning )度量函数总结
- 数据结构和算法 | 第一部分第一课:什么是数据结构和算法
- OpenWRT下载与编译