yolov5下載并部署
參考博客
labelme注意事項
labelme包下載
labelme-master https://www.aliyundrive.com/s/bMeCNrwHuva
提取碼: a43f
點擊鏈接保存,或者復制本段內(nèi)容,打開「阿里云盤」APP ,無需下載極速在線查看,視頻原畫倍速播放。
里面的train_txt.py是把json轉(zhuǎn)txt的腳本,注意模型參數(shù)的yaml文件的label位置標注和train_txt.py文件的順序得一樣,不然會造成識別錯誤的情況
參數(shù)說明:
train.py
大致的用法上面的參考博客已經(jīng)闡述了,我這里僅做一些部分補充
1.若顯存不足的話,出現(xiàn)顯存分配不足的情況下,盡量把batch_size調(diào)小一點就行
2.電腦上device一般是可以配上CUDA,所以device的值填0,但是在樹莓派上好像沒辦法用CUDA加速,也可能是我學的差,不知道怎么去配置,所以在樹莓派上的device填的是cpu
detect.py
1.source位置的參數(shù)是待識別文件的路徑,可以是圖片,視頻等。
當default=0的時候,調(diào)用的是電腦攝像頭,若電腦外接攝像頭調(diào)用的話,則default處等于1,樹莓派沒有攝像頭,所以樹莓派外接攝像頭顯示時default=0
坐標返回
在這個位置,找到box_label函數(shù),ctrl+點擊進入到文件里面
box內(nèi)存的值就是圖片的坐標信息
box[0]:標簽框左上角x坐標
box[1]:標簽框左上角y坐標
box[2]:標簽框右下角x坐標
box[3]:標簽框右下角y坐標
我這里增加了個return,返回的是中心點的像素坐標,可按自己需求修改
用途:
如果你想做類似于識別后想控制機械臂抓取的話,我的思路大概是先將機械臂大概移動到圖像坐標原點的位置,然后大概記下此時機械臂對應他自己坐標系的x,y值是多少,然后再移到對角處,測一下對角處位置機械臂的x,y值大概是多少,然后根據(jù)你自己圖片的規(guī)格去換算一下,比如說拿一張640×480的圖片,然后機械臂移到攝像頭截取圖像的圖像坐標系的原點,比如說等于(-5, 10),對角坐標為(10,30),x值差了15,對應x方向的像素點變換了480,大概能估測出機械一個坐標位大約等于圖像的32個像素點位,換算過去之后,你就大約可以準確地夾取到圖中檢測物體的所在位置
例 夾取坐標 = (機械臂在坐標原點的x坐標 + 像素坐標的x值/32, 機械臂在坐標原點的y坐標 + 像素坐標的y值/32)
改進
用完之后,才發(fā)現(xiàn),yolov5在樹莓派根本跑不起來,連最輕量的yolov5s部署完成后,識別都需要3秒左右一幀,卡的你懷疑人生,這里可以稍微優(yōu)化一下,比如你可以pip 一下onnxruntime,然后用yolov5包里面帶的export函數(shù)將訓練完成的.pt權(quán)重文件轉(zhuǎn)成.onnx文件,然后把這里的dnn改成true
然后把detec的權(quán)重文件改成.onnx格式就行
在樹莓派cpu的情況下,大約能快上三分之一,就是3秒一幀編程兩秒一幀,但是在GPU運行下,速度就基本沒變,不會提速,需要具體地去推理,速度提升才會顯著文章來源:http://www.zghlxwxcb.cn/news/detail-407402.html
總結(jié)
此次部署完之后,其實覺得yolov5太大了,在樹莓派上跑不動,建議換個輕量點地模型可能效果會好一些,例如:SSD,Faster-RCNN,yolov5-lite等。看起來會流暢許多,如果你是手頭富裕有加速棒之類的,就當我沒說,畢竟我是個學生黨,生活還是比較拮據(jù)的。
總體來說,比較建議的是,模型啥的都在電腦上訓練,包括轉(zhuǎn)格式啥的,因為在電腦上比較塊,可以用GPU跑,也比較熟悉,然后每次跑完把單獨的那個.pt或者.onnx文件單獨傳過去就行,這樣時間會節(jié)省不少,如果具體想用樹莓派做類似視覺之類的項目,建議還是換個輕量點的模型吧。文章來源地址http://www.zghlxwxcb.cn/news/detail-407402.html
到了這里,關于樹莓派yolov5簡單調(diào)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!