2020年10月29日 星期四

Yolo系列再開,這次用的是YOLO v5

上一篇提到,是因為要看懂一點用pytorch寫yolov4的運作
所以才會去學pytorch的基礎
雖然pytorch是學了一點皮毛這點不錯
但是,yolov4這邊卻是進展緩慢啊
同訓練集感覺YOLOv4的運算量比v3還大很多
加上電腦的顯卡太弱了,只有2G,所以只能用CPU訓練
進度超緩慢...
(在原本的成果只訓練到60epochs就花了近8小時)
就在訓練期間,爬到了這篇,YOLOV5在樹莓派上的測試
這Yolov5的運算量似乎很小,才可以在樹莓派上跑得用
不然來試試吧

先說這個爭議非常多的Yolo v5 XD
在今年YoloV4的程式碼與論文出來後不到一個月
Ultralytics就宣稱他們開發出來新一代的YOLO
立即引起這個圈子的軒然大波
只是根據這篇的情報,簡言之,YOLOv5 比 YOLOv4 差,而且並不是官方的。
或者該這麼稱呼它,U公司的Yolov5,這樣比較正確
不過太饒舌了,我還是簡稱yolov5吧
雖然名稱,與效能並不能與正版的YOLO相比
但畢竟我要識別的不是什麼複雜的人,車,動物花草之類的東西
只是符號(Symbol)之流,夠小可以用對我比較重要
那麼成果呢?

實際使用yolov5,成效對我而言算相當不錯
在預設的yolov5 S版原始權重下進行訓練
圖片大小在640,30epochs後
訓練出來的權重,在閥值設為0.4就可以抓到9成的元件了
而調整的過程
只要batch size在6以下,且圖片大小在640以下
竟然還可以用GPU訓練!!!
這真是太棒了
原本30個epochs要2個小時多,一下子就縮短成20分
就這樣再多跑個30個epochs後
閥值就不能設0.4,要拉到0.7才能濾掉一些錯認的元件
整體的識別率應該高達98%
扣掉錯認的(多認的)部分與訓練集過少(只有兩個)的某元件之外
應該可以等同100%
同時,使用的過程完全不用修改程式碼
對我更是不用再花時間除錯處理
換言之也就是寫的比較完整
畢竟是公司規模的專案嘛

訓練得夠快,權重夠小,準度也夠高了
想做的事算成功一半了
接下來,要做的就是抓元件上的字轉成文字
換進入到OCR的部分了
應該更沒問題.....吧?

沒有留言: