zoukankan      html  css  js  c++  java
  • 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:Downloaddust{}.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文件夹中

      

  • 相关阅读:
    putty配置
    BroadcastReceiver应用详解 (转)
    linux主设备号和次设备号
    Enable screen lock and HOME key (eclair and older versions)(转)
    C#获取用户桌面等特殊系统路径
    java中Thread与Runnable的区别
    博文索引
    FlinkCDC实践
    关于libxml2.so.2不被Gstreamer链接的解决
    s.length什么意思
  • 原文地址:https://www.cnblogs.com/boligongzhu/p/15109224.html
Copyright © 2011-2022 走看看