yolov5 训练自己的数据集
费了九牛二五之力终于把YOLOV5装好了,接下来就是训练自己的数据集啦~
1,收集图片
木有图片怎么办?百度下啊!下载太慢怎么办?爬啊!于是~~~~用python requests吭哧吭哧飞一般爬了1000张图片,但是!数据清洗的时候老娘眼睛都要看瞎了T_T。1000张图片就清洗出了121张,我也是醉了。话不多说,上爬虫!
import requests import re headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/79.0.3945.88 Safari/537.36 ' } # 进行UA伪装 for i in range(51): # 爬取50页图片,每页有20张图,一共是1000张。注意分页要把url里的index改成flip,不然是瀑布流的方式 url = "https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E6%89%AC%E5%B0%98&pn={}&gsm=3c&ct=&ic=0" \ "&lm=-1&width=0&height=0 ".format(i * 20) r = requests.get(url, headers=headers) ret = r.text # 通过观察源码,百度图片的格式是这样式的: # "objURL":"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.mp.itc.cn%2Fupload%2F20161109%2F4fda79ef8a2e48f0853d51064bf43a4d_th.jpeg # 所以正则项是'"objURL":"(.*?)"' result = re.findall(r'"objURL":"(.*?)"', ret) # 愉快的下载吧 for j in range(21): with open(r'D:\Download\dust\{}.jpg'.format(i * 20 + j), 'wb') as f: r = requests.get(result[j - 1]) f.write(r.content) print("{} is done!".format(i * 20 + j))
如果还看不明白,百度上有非常多的教程,请自行搜索。
2,图片标注
使用LabelImg来标注,小编是windows10 + anaconda安装的。
github的安装包地址:https://github.com/tzutalin/labelImg
打开anaconda prompt跳转到安装包下载的目录下,执行以下命令:
conda install pyqt=5 pyrcc5 -o libs/resources.py resources.qrc python labelImg.py
运行起来终端显示是这样的:
跳出可视化界面:
然后就可以开始愉快的标注啦~
1,修改标签
在data/predefined_classes里面修改class,我是要进行字符识别,因此写了0~9,A-Z共36个类别
2,打开后将格式改为yolo
3,选择图片保存位置和标注文件保存位置:
- 创建images文件夹和labels文件夹
- 将需要标注的图片放在images文件夹中