?女神说要来我家吹空调?

我揉了揉惺忪的双眼,反复确认了多遍,嗯,没有看错!

为了给女神一个好的印象,我打算提前打开空调让室内降到一个舒适的温度;可猛然间发现空调遥控器找不见了!

这可怎么办?我急中生智:可以用 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训练个目标识别模型并调用手机摄像头找找!相关推荐

  1. 我在工地晒的阙黑一月八千,他在家吹空调做招商团长一月两万多。

    我在工地晒的阙黑一月八千,他在家吹空调做招商团长一月两万多. 有一句老话讲的真是没错,男怕选错行,女怕嫁错郎,这一句话我算是切身实地的体会到了,并有深深的感触. 高考的时候分数不高,就在当地上了大专, ...

  2. STM32 录制与播放空调/TV遥控器的红外信号

    准备工作: (1)红外线接收管 IR receiver (2)红外线发射灯 IR transmitter (3)STM32控制板 (4)面包线 Jumper cables (5)空调/TV遥控器 硬件 ...

  3. 美女多,地位高,坐办公室吹空调,关键还是小土豪……这是什么工作?

    美女多,地位高,坐办公室吹空调,关键还是小土豪-- 怎么能找到这样的工作? 参加 乐搏学院软件测试,也就是人们通常说的-- 软件测试工程师. 软件测试入行门槛较低 不管你是初中.中专毕业闲置在家 还是 ...

  4. AI求解偏微分方程新基准登NeurIPS,发现JAX计算速度比PyTorch快6倍,LeCun转发:这领域确实很火...

    萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 用AI求解偏微分方程,这段时间确实有点火. 但究竟什么样的AI求解效果最好,却始终没有一个统一的定论. 现在,终于有人为这个领域制作了一个名叫PD ...

  5. AI求解偏微分方程新基准登NeurIPS,发现JAX计算速度比PyTorch快6倍,LeCun转发:这领域确实很火

    萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 用AI求解偏微分方程,这段时间确实有点火. 但究竟什么样的AI求解效果最好,却始终没有一个统一的定论. 现在,终于有人为这个领域制作了一个名叫PD ...

  6. 震惊,某男子在吹空调之后竟然出现了这样的状态

    人生短短急个球,不死不罢休-- 恭喜各位大佬,进入了9月金秋,相信很多人都会有各种并发症出现了,其中,最多的是因为空调引起的各种感冒 在2020年9月12日,我由于要更改一个系统BUG,晚上开着空调改 ...

  7. 经常吹空调皮肤是不是会变黑

    空调病是空调给人们带来舒爽的同时,也带来的一种 " 病 " .长期在空调环境下工作学习的人,因空气不流通,环境得不到改善,会出现鼻塞.头昏.打喷嚏.耳鸣.乏力.记忆力减退等症状,以 ...

  8. 卡特加特“飞碟”万能红外遥控器,一个控全屋所有家电!支持语音遥控定时手机,传统家电变智能

    随着生活越来越好,大家家里的家电也越来越多. 电视机顶盒.功放.空调.热水器--虽说是方便了不少,但一个电器就得有一个遥控器也属实麻烦! 不仅容易搞混,还特容易搞丢,用的时候找不到,不用的时候占地方. ...

  9. 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. 北恒生物获德诚资本约1亿元A轮融资,德诚资本投资
  2. Vsftpd文件传输服务(本地用户访问)
  3. Windows 7备份、还原功能详解
  4. 斐波那契回调线怎么画_Lionheart万汇:斐波那契回调线,实战使用方法和难点
  5. Java 并发编程AQS基本介绍
  6. 用GIF展现程序员的生活二
  7. M-TOUCH移动端社区论坛类型的网站源码
  8. 大数据智能推荐系统原理介绍
  9. Apple Pay编程指南(5) - 处理付款结果
  10. 微信小程序 - 开发者账号申请流程
  11. bootstrap 动态横向时间轴_简洁的横向水平时间轴特效
  12. FileZilla打开连接后本地站点无法显示自己的本地电脑
  13. wifi大师分销多开v3.1.5安装教程附带源码
  14. 肾有多好人就有多年轻—男女通用
  15. ntpdate解决同步时间报错 the NTP socket is in use, exiting
  16. 什么是C端 什么是B端 这里告诉你
  17. Access入库检验系统功能分析(本件确认、本批确认)
  18. 如何搭建数据指标监测体系?
  19. 深度学习在推荐领域的应用lookalike
  20. 【LeetCode】263.丑数 264. 丑数 II

热门文章

  1. Mac使用技巧总结-如何独立设置Mac触摸板方向和鼠标滚轮方向?
  2. Hold the door! mosquitto——使用ESP8266以及网络调试助手测试通信
  3. php二维数组实例_什么是php二维数组?php二维数组实例详解
  4. JavaScript高级程序设计第三版.CHM【带实例】
  5. 异常检测的阈值,你怎么选?给你整理好了...
  6. 11.修改数据库字符编码
  7. 电器“服务”焕新生活?香!香!香!
  8. 深度度量学习 (metric learning deep metric learning )度量函数总结
  9. 数据结构和算法 | 第一部分第一课:什么是数据结构和算法
  10. OpenWRT下载与编译