費了九牛二五之力終於把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文件夾中