一、前言
1.1 開(kāi)發(fā)需求
這篇文章講解:采用華為云最新推出的 Flexus 云服務(wù)器 X 實(shí)例部署 YOLOv3 算法,完成圖像分析、目標(biāo)檢測(cè)。
隨著計(jì)算機(jī)視覺(jué)技術(shù)的飛速發(fā)展,深度學(xué)習(xí)模型如 YOLOv3 在圖像識(shí)別和目標(biāo)檢測(cè)領(lǐng)域展現(xiàn)出了卓越的性能。為了滿足日益增長(zhǎng)的數(shù)據(jù)處理需求,本項(xiàng)目利用華為云最新推出的 Flexus 云服務(wù)器 X 實(shí)例的強(qiáng)大計(jì)算能力,部署 YOLOv3 算法以實(shí)現(xiàn)高效的圖像分析與指定目標(biāo)檢測(cè)功能。通過(guò)將先進(jìn)的算法與高性能云計(jì)算資源相結(jié)合,不僅能夠處理大規(guī)模圖像數(shù)據(jù)集,還能夠保證實(shí)時(shí)性和準(zhǔn)確性,這對(duì)于智能監(jiān)控、自動(dòng)駕駛等應(yīng)用場(chǎng)景至關(guān)重要。
考慮到實(shí)際應(yīng)用中對(duì)于靈活性和服務(wù)化的需求,在服務(wù)器上開(kāi)發(fā)了一套后端程序,該程序提供了 HTTP 接口,允許外部客戶端通過(guò)簡(jiǎn)單的 API 調(diào)用來(lái)上傳圖片。服務(wù)器端接收到請(qǐng)求后,將自動(dòng)執(zhí)行目標(biāo)檢測(cè)流程,并將分析結(jié)果反饋給客戶端。這種方式極大地簡(jiǎn)化了客戶端的應(yīng)用開(kāi)發(fā)流程,使得無(wú)需深入了解復(fù)雜的圖像處理細(xì)節(jié)即可享受到高效的目標(biāo)檢測(cè)服務(wù)。此架構(gòu)不僅增強(qiáng)了系統(tǒng)的可訪問(wèn)性,也為未來(lái)的擴(kuò)展和維護(hù)提供了便利。
1.2 Flexus 云服務(wù)器介紹
華為云 Flexus 云服務(wù)器 X 實(shí)例是由國(guó)家科技進(jìn)步獎(jiǎng)獲得者、華為公司 Fellow 及華為云首席架構(gòu)師顧炯炯牽頭研發(fā)的一款創(chuàng)新性云服務(wù)器。該實(shí)例基于華為的擎天 QingTian 架構(gòu)、瑤光云腦和盤(pán)古大模型等核心技術(shù),是業(yè)界首款應(yīng)用驅(qū)動(dòng)的柔性算力云服務(wù)器,適用于高科技、零售、金融、游戲等多個(gè)行業(yè)的通用工作負(fù)載場(chǎng)景,如網(wǎng)絡(luò)應(yīng)用、數(shù)據(jù)庫(kù)、虛擬桌面、分析索引、微服務(wù)及持續(xù)集成/持續(xù)部署(CI/CD)等。
傳統(tǒng)的云服務(wù)器通常只提供固定的 CPU 和內(nèi)存規(guī)格,無(wú)法精準(zhǔn)匹配用戶的實(shí)際資源需求,導(dǎo)致資源利用效率低下。相比之下,華為云 FlexusX 實(shí)例提供了更為靈活的算力配置,支持超過(guò) 100 種不同的 CPU 與內(nèi)存配比,最高可達(dá)到 3:1 的比例,從而更好地適應(yīng)各種業(yè)務(wù)應(yīng)用的需求。
Flexus X 實(shí)例不僅在性能方面表現(xiàn)出色,還內(nèi)置了智能應(yīng)用調(diào)優(yōu)算法,結(jié)合華為技術(shù)專(zhuān)家多年積累的經(jīng)驗(yàn),在基礎(chǔ)模式下,其 GeekBench 單核及多核跑分可達(dá)業(yè)界同規(guī)格獨(dú)享型實(shí)例的 1.6 倍。在性能模式下,F(xiàn)lexusX 實(shí)例的性能超過(guò)了同類(lèi) C 系/G 系/R 系及 S 系旗艦型云主機(jī)的標(biāo)準(zhǔn)。
Flexus X 實(shí)例還配備了 X-Turbo 加速技術(shù)和大模型底層智能調(diào)度技術(shù),為關(guān)鍵業(yè)務(wù)應(yīng)用提供加速功能。例如,在 FlexusX 實(shí)例上部署的 MySQL、Redis 和 Nginx 等應(yīng)用,其性能最高可達(dá)業(yè)界同規(guī)格獨(dú)享型實(shí)例的 6 倍(MySQL 性能),長(zhǎng)期運(yùn)行時(shí)也能保持 2 倍的性能優(yōu)勢(shì)。
Flexus X 實(shí)例在定價(jià)策略上定位于經(jīng)濟(jì)型級(jí)別,但其性能表現(xiàn)卻超越了旗艦級(jí)云主機(jī)。通過(guò)動(dòng)態(tài)業(yè)務(wù)畫(huà)像規(guī)格優(yōu)化等技術(shù),用戶在將業(yè)務(wù)從本地服務(wù)器或其他云服務(wù)提供商遷移到 FlexusX 實(shí)例時(shí),可以節(jié)省高達(dá) 30%的算力成本,從而實(shí)現(xiàn)業(yè)務(wù)的全面提速和效能提升,享受到云基礎(chǔ)設(shè)施的顯著改進(jìn)體驗(yàn)。
1.3 YOLOv3 目標(biāo)檢測(cè)算法
YOLO(YouOnly Look Once)算法是一種用于實(shí)時(shí)物體檢測(cè)的深度學(xué)習(xí)框架,它改變了傳統(tǒng)目標(biāo)檢測(cè)方法中逐步細(xì)化的過(guò)程,通過(guò)一次性地對(duì)整個(gè)圖像進(jìn)行預(yù)測(cè)來(lái)直接生成邊界框和類(lèi)別概率,從而顯著提高了檢測(cè)速度。與傳統(tǒng)的基于區(qū)域提議(如 R-CNN 系列算法)的方法不同,YOLO 將目標(biāo)檢測(cè)視為一個(gè)回歸問(wèn)題,直接從輸入圖像到邊界框坐標(biāo)和類(lèi)別標(biāo)簽進(jìn)行映射,這使得 YOLO 能夠在保持較高檢測(cè)精度的同時(shí),實(shí)現(xiàn)極快的檢測(cè)速度。
YOLO 的核心優(yōu)勢(shì)在于其獨(dú)特的檢測(cè)方式。它將輸入圖像分割成固定大小的網(wǎng)格,并且每個(gè)網(wǎng)格負(fù)責(zé)預(yù)測(cè)出現(xiàn)在該網(wǎng)格內(nèi)的對(duì)象。每個(gè)網(wǎng)格單元會(huì)生成一組邊界框及其對(duì)應(yīng)的置信度分?jǐn)?shù),其中置信度表示該邊界框內(nèi)存在某個(gè)特定類(lèi)別的對(duì)象的概率。這種方法確保了模型可以同時(shí)處理多個(gè)對(duì)象,并且能夠有效地檢測(cè)小尺寸的對(duì)象,這是許多其他檢測(cè)框架所難以做到的。
隨著時(shí)間的發(fā)展,YOLO 經(jīng)歷了多個(gè)版本的迭代,從最初的 YOLOv1 到后來(lái)的 YOLOv2、YOLOv3 以及更先進(jìn)的 YOLOv4 和 YOLOv5 等版本。每一個(gè)新版本都在前一版本的基礎(chǔ)上進(jìn)行了改進(jìn),提高了檢測(cè)精度和速度。例如,YOLOv3 引入了多尺度特征融合,可以在不同的尺度上進(jìn)行檢測(cè),從而提升了小物體的檢測(cè)效果;而 YOLOv4 則進(jìn)一步優(yōu)化了網(wǎng)絡(luò)結(jié)構(gòu),采用了更強(qiáng)大的骨干網(wǎng)絡(luò),并結(jié)合了一系列最新的改進(jìn)技術(shù),如 Mish 激活函數(shù)、SPP 模塊等,使得其在速度和精度之間達(dá)到了更好的平衡。
YOLO 算法因其高效的速度和良好的檢測(cè)性能,在自動(dòng)駕駛、安防監(jiān)控、無(wú)人機(jī)影像分析等多個(gè)領(lǐng)域得到了廣泛的應(yīng)用。它的設(shè)計(jì)理念強(qiáng)調(diào)實(shí)時(shí)性和實(shí)用性,使其成為構(gòu)建實(shí)時(shí)視覺(jué)系統(tǒng)的理想選擇。
1.4 客戶端開(kāi)發(fā)思路
客戶端應(yīng)用程序采用 Qt 框架開(kāi)發(fā),為用戶提供一個(gè)直觀且高效的界面,以便實(shí)時(shí)采集攝像頭圖像并調(diào)用服務(wù)器上部署的 YOLO 算法完成圖像的目標(biāo)分類(lèi)檢測(cè)。Qt 是一個(gè)跨平臺(tái)的應(yīng)用程序開(kāi)發(fā)框架,以其豐富的圖形用戶界面組件和強(qiáng)大的網(wǎng)絡(luò)通信功能著稱(chēng),非常適合用于開(kāi)發(fā)此類(lèi)需要圖形展示與網(wǎng)絡(luò)交互的應(yīng)用程序。
客戶端的主要功能包括實(shí)時(shí)視頻流的捕獲與顯示。通過(guò)集成 Qt 的多媒體模塊,客戶端可以輕松地與各種類(lèi)型的攝像頭進(jìn)行連接,捕捉實(shí)時(shí)視頻流,并在界面上呈現(xiàn)給用戶。用戶可以通過(guò)簡(jiǎn)單的操作啟動(dòng)或停止視頻捕獲,調(diào)整攝像頭參數(shù),如分辨率和幀率,以適應(yīng)不同的使用場(chǎng)景。
在視頻流捕獲的基礎(chǔ)上,客戶端還實(shí)現(xiàn)了與服務(wù)器的無(wú)縫對(duì)接。當(dāng)客戶端捕獲到視頻幀后,會(huì)將其發(fā)送至預(yù)先配置好的服務(wù)器地址。服務(wù)器端運(yùn)行著之前部署的 YOLO 目標(biāo)檢測(cè)算法,接收到來(lái)自客戶端的圖像數(shù)據(jù)后,將對(duì)其進(jìn)行處理,識(shí)別出圖像中的各類(lèi)目標(biāo),并計(jì)算出相應(yīng)的邊界框和類(lèi)別標(biāo)簽。處理完成后,服務(wù)器會(huì)將包含檢測(cè)結(jié)果的數(shù)據(jù)包回傳給客戶端。
客戶端接收到檢測(cè)結(jié)果后,會(huì)在視頻畫(huà)面上疊加相應(yīng)的邊界框和標(biāo)簽信息,直觀地顯示出識(shí)別出的目標(biāo)類(lèi)型及其位置。這一過(guò)程幾乎是在實(shí)時(shí)進(jìn)行的,使得用戶能夠立即看到目標(biāo)檢測(cè)的效果。這樣的功能對(duì)于監(jiān)控應(yīng)用特別有用,可以幫助用戶迅速識(shí)別出視頻流中的關(guān)鍵信息。
客戶端提供附加功能,比如保存帶有檢測(cè)結(jié)果的圖像、記錄視頻片段,以及根據(jù)用戶的偏好設(shè)置自定義的檢測(cè)閾值或目標(biāo)類(lèi)別過(guò)濾等。通過(guò)這樣的設(shè)計(jì),客戶端不僅能夠滿足基本的目標(biāo)檢測(cè)需求,還能根據(jù)具體的應(yīng)用場(chǎng)景進(jìn)行靈活的定制,提高用戶體驗(yàn)和系統(tǒng)的實(shí)用性。
1.5 客戶端運(yùn)行效果
Qt 制作的界面,運(yùn)行目標(biāo)檢測(cè)的結(jié)果:
二、服務(wù)器選購(gòu)
2.1 登錄官網(wǎng)
鏈接:https://www.huaweicloud.com/
在官網(wǎng)首頁(yè)的輪播圖里可以看到,有 Flexus 云服務(wù)器的宣傳。這是華為云匠心打造的下一代躍級(jí)產(chǎn)品,面向中低負(fù)載場(chǎng)景,性能倍增、體驗(yàn)躍級(jí)的服務(wù)器。
2.2 選購(gòu)服務(wù)器
在產(chǎn)品頁(yè)面,也可以看到 Flexus 云服務(wù)的選項(xiàng),點(diǎn)擊進(jìn)去選購(gòu)服務(wù)器。
鏈接:https://www.huaweicloud.com/product/flexus.html
在選購(gòu)頁(yè)面可以看到服務(wù)器推廣器件,1 年 36 塊錢(qián)。每個(gè)月的流量是 100G,對(duì)于一些訪問(wèn)量不高的服務(wù)器或者測(cè)試用是非常合適的。
當(dāng)前我要選擇的服務(wù)器是:Flexus 云服務(wù)器 X 實(shí)例,點(diǎn)擊 Flexus 系列產(chǎn)品,選擇 X 實(shí)例。Flexus 云服務(wù)器 X 實(shí)例符合:柔性算力,六倍性能,旗艦體驗(yàn),覆蓋高科技、零售、金融、游戲等行業(yè)大多數(shù)通用工作負(fù)載場(chǎng)景。
2.3 選擇服務(wù)器區(qū)域
針對(duì)時(shí)延敏感型業(yè)務(wù)請(qǐng)選擇靠近您業(yè)務(wù)的區(qū)域,以降低網(wǎng)絡(luò)時(shí)延,提高訪問(wèn)速度;針對(duì)和存量云產(chǎn)品有內(nèi)網(wǎng)互通需求的業(yè)務(wù),請(qǐng)選擇和存量產(chǎn)品相同的區(qū)域。
2.4 選擇服務(wù)器規(guī)格
2.5 選擇系統(tǒng)鏡像
我這選擇 ubuntu 系統(tǒng),用來(lái)搭建服務(wù)器。這個(gè)根據(jù)自己的情況選擇,自己適合那一種就選擇哪一種。
2.6 選擇存儲(chǔ)盤(pán)
我選擇 150G 大小。
2.7 配置密碼
設(shè)置好服務(wù)器的名字(如果你有多個(gè)服務(wù)器,為了自己好區(qū)別)和系統(tǒng)的登錄密碼。
2.8 配置云備份
云備份這個(gè)不買(mǎi)。有需要自己可以購(gòu)買(mǎi)。
2.9 確認(rèn)配置
2.10 立即購(gòu)買(mǎi)
購(gòu)買(mǎi)成功。
創(chuàng)建成功之后,郵箱會(huì)收到提示的。
2.10 后臺(tái)控制臺(tái)
鏈接:https://console.huaweicloud.com/ecm
在控制臺(tái)可以看到服務(wù)器的詳情。
三、服務(wù)器登錄
3.1 查看服務(wù)器的詳情
點(diǎn)擊服務(wù)器的名稱(chēng),可以進(jìn)去到詳情頁(yè)面。
3.2 遠(yuǎn)程登錄
填入設(shè)置好的密碼。
登錄成功。
3.9 采用 FinalShell 登錄
自帶的在瀏覽器里運(yùn)行,每次需要打開(kāi)瀏覽器,文件也不方便上傳下載。
所以,這里開(kāi)發(fā)階段,我采用的FinalShell 登錄到服務(wù)器。
新建 SSH 連接,輸入連接信息。
登錄成功。
接下來(lái)就可以進(jìn)行開(kāi)發(fā)了。
四、部署 YOLOv3 算法
4.1 YOLO 算法介紹
YOLO 算法官網(wǎng)介紹:https://pjreddie.com/darknet/yolo/
You only look once (YOLO) is a state-of-the-art, real-time object detection system. On a Pascal Titan X it processes images at 30 FPS and has a mAP of 57.9% on COCO test-dev.
You Only Look Once (YOLO) 是最先進(jìn)的實(shí)時(shí)目標(biāo)檢測(cè)系統(tǒng)。在Pascal Titan X 上,它以30 FPS 處理圖像,并且在COCO 測(cè)試開(kāi)發(fā)上的mAP 為57.9%。
Comparison to Other DetectorsYOLOv3 is extremely fast and accurate. In mAP measured at .5 IOU YOLOv3 is on par with Focal Loss but about 4x faster. Moreover, you can easily tradeoff between speed and accuracy simply by changing the size of the model, no retraining required!
與其他探測(cè)器的比較 YOLOv3 非常快速且準(zhǔn)確。在mAP 中,測(cè)量結(jié)果為0.5 IOU YOLOv3 與Focal Loss 相當(dāng),但速度快約4 倍。此外,只需更改模型的大小即可輕松在速度和準(zhǔn)確性之間進(jìn)行權(quán)衡,無(wú)需重新訓(xùn)練!
4.2 快速部署算法模型
(1)安裝 darknet
root@flexusx-1a58:~# mkdir yolov3root@flexusx-1a58:~# cd yolov3/root@flexusx-1a58:~# git clonehttps://github.com/pjreddie/darknetroot@flexusx-1a58:~# cd darknetroot@flexusx-1a58:~# make
注意,如果 clone 失敗,多測(cè)幾次就行了。
下載完成:
編譯過(guò)程中:
編譯完成:
(2)下載權(quán)重文件
root@flexusx-1a58:~# wgethttps://pjreddie.com/media/files/yolov3.weights
yolov3.weights是YOLOv3 網(wǎng)絡(luò)訓(xùn)練得到的權(quán)重文件,存儲(chǔ)了神經(jīng)網(wǎng)絡(luò)中每個(gè)層次的權(quán)重和偏置信息。
在 cfg/目錄下已經(jīng)包含了 yolov3 對(duì)應(yīng)的配置文件。
下載過(guò)程:
(3)運(yùn)行 detector
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
檢測(cè)分類(lèi):
root@flexusx-1a58:~/yolov3/darknet# ./darknet detect cfg/yolov3.cfg yolov3.weights data/horses.jpg
識(shí)別結(jié)果:
識(shí)別的結(jié)果可以直接打開(kāi)。
五、總結(jié)
華為云正在舉行其年度 828B2B 企業(yè)節(jié)活動(dòng),期間提供了包括 FlexusX 實(shí)例在內(nèi)的多種產(chǎn)品的優(yōu)惠。對(duì)于那些對(duì)計(jì)算性能有較高要求,并且需要自行部署 MySQL、Redis、Nginx 等服務(wù)的用戶來(lái)說(shuō),這次促銷(xiāo)是一個(gè)很好的機(jī)會(huì),建議有興趣的朋友可以前往查看相關(guān)的優(yōu)惠信息。
官網(wǎng)直達(dá):https://activity.huaweicloud.com/828_promotion/index.html
審核編輯 黃宇
-
云服務(wù)器
+關(guān)注
關(guān)注
0文章
639瀏覽量
13372 -
華為云
+關(guān)注
關(guān)注
3文章
2566瀏覽量
17465
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論