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文件夹中

  

 

posted @ 2021-08-23 22:45  玻璃公主  阅读(2213)  评论(0编辑  收藏  举报