香橙派AIpro實測:YOLOv8便捷檢測,算法速度與運行速度結合
文章目錄
- 香橙派AIpro實測:YOLOv8便捷檢測,算法速度與運行速度結合
- 一、引言
- 二、香橙派AIpro簡介
- 三、YOLOv8檢測效果
- 3.1 目標檢測算法介紹
- 3.1.1 YOLO家族
- 3.1.2 YOLOv8算法理論
- 3.1.3 病害蟲檢測重要性
- 3.2香橙派開機
- 3.3 目標檢測算法訓練
- 3.3.1 安裝第三方庫
- 3.3.2 開始訓練
- 3.3.3 訓練結果展示
- 四、測評流程總結
一、引言
很榮幸前幾天收到了一塊開發板,這款開發板是香橙派聯合華為精心打造的,沒錯,就是被美國連年制裁的華為,所以光聽到這兩個公司就知道產品質量絕對是可以保證的,香橙派的宣傳sologen是:“為AI而生”。這個開發板特別小,更應該說是:“迷你”,收到快遞的時候,這個開發板是放在一個小盒子里,一個手掌大小的小盒子,很神奇有木有!
抱著半信半疑的態度進行目標檢測算法的實踐,博主成功實現了使用香橙派AIpro進行YOLOv8算法的訓練同時是基于林業病害蟲目標檢測的。從博主自身使用體驗來說,香橙派AIpro的這塊板子的性價比特別高高,非要讓我來描述,那就是“短小精悍”以及“麻雀雖小、五臟俱全”,衷心祝賀香橙派AIpro可以生產出這么棒的產品,這對助力AI算法的發展具有非常重要的作用。
二、香橙派AIpro簡介
我自己描述可能會有不準確的地方,那就把官方說明貼出來吧。
來自官方的說明:
OrangePi AIpro(8T)采用昇騰AI技術路線,具體為4核64位處理器+AI處理器,集成圖形處理器,支持8TOPS AI算力,擁有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模塊,支持雙4K高清輸出。 Orange Pi AIpro引用了相當豐富的接口,包括兩個HDMI輸出、GPIO接口、Type-C電源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆網口、兩個USB3.0、一個USB Type-C 3.0、一個Micro USB(串口打印調試功能)、兩個MIPI攝像頭、一個MIPI屏等,預留電池接口,可廣泛適用于AI邊緣計算、深度視覺學習及視頻流AI分析、視頻圖像分析、自然語言處理、智能小車、機械臂、人工智能、無人機、云計算、AR/VR、智能安防、智能家居等領域,覆蓋 AIoT各個行業。 Orange Pi AIpro支持Ubuntu、openEuler操作系統,滿足大多數AI算法原型驗證、推理應用開發的需求。
三、YOLOv8檢測效果
3.1 目標檢測算法介紹
目前基于深度學習的目標檢測任務主要有兩大技術路線:一是以 YOLO(You Only Look Once)系列算法和 SSD(Single Shot Detection)[3]系列算法為主的 One-Stage 目標檢測算法;二是以 Faster R-CNN(Faster Region with Convolutional Neural Network)[4]系列算法為主的 Two-Stages目標檢測算法。其中,One-Stage 目標檢測算法是將目標檢測問題轉化成直接回歸問題,不產生候選框;Two-Stage目標檢測算法是通過卷積神經網絡(Convolutional Neural Network,CNN)與區域建議網絡(Region Proposal Network,RPN)[4]相結合,以不同尺寸的滑動窗口自左上角向右下角滑動并掃描特征圖(Feature Map)來生成若干候選區域,再提取候選區域相關的視覺特征。兩種方法各有其特點和優勢:One-Stage 目標檢測算法檢測速度快,因此實時性更有優勢。如方仁淵和王敏在對商品包裝類型的檢測中,先精簡原始 YOLO 算法的骨干網絡部分,使得訓練時間成本大幅減低,再提出反向連接結構得到與原始網絡在平均精度上持平的檢測結果。
3.1.1 YOLO家族
YOLO家族是一個經典的物體探測器。該算法自2015年第一版發布以來,以單級框架實現了領先的效率,迅速成為主流檢測算法。通過不斷的研究和創新,不同版本的YOLO被提出。最新版本是YOLOv8 [8]算法,由Ultralytics于2023年1月開源。這種算法引入了新的特性和改進,成為YOLO家族中最好的模型。YOLOv8包括輸入、主干、頸部、輸出四個部分。YOLOv8的結構如所圖所示.
3.1.2 YOLOv8算法理論
輸入主要包括顏色擾動、空間擾動、鑲嵌、混合。不同數量的圖片經過組合數據增強處理后拼接在一起,增加了多方向的物體視角,也豐富了圖像背景的多樣性。
主干主要包括卷積層、C2F層和SPPF層。C2F結構不同于YOLOv8中的C3模塊,后者借鑒了YOLOv7中ELAN(高效層聚合網絡)的思想[9],提高了梯度傳播的效率,使網絡能夠快速收斂。SPPF層保持了YOLOv8中的設計。
Neck采用FPN(特征金字塔網絡)和PAN(路徑聚合網絡)相結合的結構[10].相鄰層的特征被連接,作為C2F模塊的輸入。當特征從上到下傳遞時和底層特征的高級語義特征組合在一起。
輸出實現了檢測和分類的解耦。底層特征用于獲取小目標對象的信息,頂層特征是大目標對象的結果。每個檢測層輸出一個結果向量,其中包含位置和相應的類別信息。
3.1.3 病害蟲檢測重要性
在過去的二十年里,我們看到了物體檢測技術的快速發展及其對整個計算機視覺領域的深遠影響。目標檢測是在圖像分類基礎上增加了目標定位功能的研究方向,其應用領域越來越廣泛,例如小區門禁人臉識別,運動領域的動作點識別等。其中,利用目標檢測識別林業病蟲進行預防是林業方向的重要應用。
林業病蟲害檢測與常見目標檢測的主要區別在于,室外環境復雜多變,數據集中的圖像往往存在光照不足、反光、模糊等問題。森林存在著對林業不同的威脅,例如閃電造成的山火、濫砍濫伐、病害蟲的侵蝕等,其中,閃電造成的山火不能提前預測只能在發生山火后進行撲滅防止,濫砍濫伐可以通過政策進行防治保護,病害蟲卻是可以通過目標檢測提前識別然后進行對不同病害蟲的防治工作。
3.2香橙派開機
香橙派的強大之處第一點就是只需要一個顯示器就可以生成一個高性能的計算機,將顯示器和開發板組合,開機,屏幕成功顯示。
Ubuntu的初始密碼是:Mind@123,如下圖所示成功進入Ubuntu22.04系統。
3.3 目標檢測算法訓練
3.3.1 安裝第三方庫
先安裝python 3.9
python 安裝完成后害需要安裝以下庫:
pip install numpy pandas matplotlib opencv-python pillow seaborn tqdm lap thop warnings
YOLOv8運行時可能會產生一些無關緊要的代碼提示,可以安裝warnings設置不顯示:
import warnings
warnings.filterwarnings(“ignore”)
3.3.2 開始訓練
將自己的yolo算法文件放在桌面,同時修改需要訓練的yaml文件指定的數據集地址
1.先把數據集劃分成test、train、val以及對應的images、annotations/xmls
2.到yolov8\ultralytics\datasets復制一個文件修改path、names
運行train.py文件麻煩的話,可以自己寫一個run_train.ipynb文件,內容如下:
from ultralytics import YOLO
model=YOLO(“ultralytics/cfg/models/v8/yolov8.yaml”).load(“weights/yolov8n.pt”)
model.train(data=“ultralytics/datasets/insect.yaml”,epochs=100,device=0)
metrics=model.val()
data=“ultralytics/datasets/insect.yaml”,epochs=100,device=0:data代表數據集地址,epochs是訓練次數,device是訓練時指定的是CPU還是GPU進行訓練。
3.3.3 訓練結果展示
YOLOv8目標檢測算法訓練結束后會生成一個綜合各種預測圖、數據曲線、訓練周期變化數據的文件夾run.zip,如下圖所示。
這里以其中幾個圖進行示例:
預測示例圖:
PR_curve.png:
右側數據:每個類別的AP,以及設定IoU=0.5時的mAP是0.848
AP(Average Precisin)衡量的是學習出來的模型在每個類別上的好壞
mAP(mean Average Precisin)衡量的是學習出來的模型在所有類別上的好壞
希望曲線接近(1,1),即希望mAP曲線的面積盡可能接近1
labels.jpg:
第一個圖是訓練集得數據量,每個類別有多少個;
第二個圖是框的尺寸和數量;
第三個圖是中心點相對于整幅圖的位置;
第四個圖是圖中目標相對于整幅圖的高寬比例;
四、測評流程總結
文章總體做個簡單總結吧,自己使用香橙派AIpro訓練了YOLOv8算法用于林業病害蟲的目標檢測,全程使用下來感受真的很震撼,只能說真的很棒,驗證了香橙派AIpro是可以用于林業病害蟲目標檢測的。經過測評香橙派AI|pro真的驚艷到了我,博主之前是用的趨動云這樣的服務器進行訓練的,實際操作起來很繁瑣,需要壓縮解壓縮各種巴拉巴拉的,而且云服務器都是按小時計費的,計算能力越高小時費用越高,而香橙派AIpro8+32G的版本才800元左右,關鍵使用云服務器不論你用了多久花了多少錢都不是自己的,可以用更少的錢獲得性價比更高的產品,這無疑是AI訓練的不二選擇!
博主作為一名研究深度學習的目標檢測領域的人員來說,非常意外能夠看到香橙派AIpro橫空出世的優異產品,自己通過部署YOLOv8算法,驗證了香橙派AIpro的計算能力是可以勝任目標檢測快速訓練任務的,等后續會把香橙派AIpro實際部署到自己的攝像頭上面看下病害蟲實際檢測時的效果。