邊緣智能計(jì)算應(yīng)用課件:基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署_第1頁(yè)
邊緣智能計(jì)算應(yīng)用課件:基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署_第2頁(yè)
邊緣智能計(jì)算應(yīng)用課件:基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署_第3頁(yè)
邊緣智能計(jì)算應(yīng)用課件:基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署_第4頁(yè)
邊緣智能計(jì)算應(yīng)用課件:基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于Pytorch(YOLOv5)目標(biāo)檢測(cè)模型部署邊緣智能計(jì)算應(yīng)用基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署邊緣智能計(jì)算應(yīng)用職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署了解rknn模型部署流程。能夠使用RKNN格式的模型進(jìn)行推理;能夠完成推理后的圖片處理并輸出結(jié)果;能夠使用線程的方式實(shí)現(xiàn)模型的實(shí)時(shí)檢測(cè);能夠在邊緣網(wǎng)關(guān)完成應(yīng)用的運(yùn)行與調(diào)試。職業(yè)能力目標(biāo)01知識(shí)目標(biāo)技能目標(biāo)職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署此任務(wù)在邊緣端對(duì)RKNN格式的模型進(jìn)行測(cè)試,并通過線程的方式實(shí)現(xiàn)邊緣端實(shí)時(shí)目標(biāo)檢測(cè)的應(yīng)用。任務(wù)描述任務(wù)要求加載RKNN模型并初始化運(yùn)行環(huán)境;使用RKNN模型進(jìn)行模型推理;使用線程進(jìn)行實(shí)時(shí)目標(biāo)檢測(cè)。任務(wù)描述與要求02職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署任務(wù)分析實(shí)時(shí)推理為什么是用訓(xùn)練好的模型?模型可以部署在哪些端?任務(wù)分析與計(jì)劃03任務(wù)計(jì)劃表項(xiàng)目名稱基于Pytorch(yolov5)目標(biāo)檢測(cè)模型部署任務(wù)名稱基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署計(jì)劃方式自主設(shè)計(jì)計(jì)劃要求請(qǐng)用8個(gè)計(jì)劃步驟來完整描述出如何完成本次任務(wù)序號(hào)任務(wù)計(jì)劃1

2

3

4

5

6

78通過上面的思考,你是否對(duì)本任務(wù)要完成的工作有所了解?讓我們一起來制訂完成本次任務(wù)的實(shí)施計(jì)劃吧!任務(wù)分析與計(jì)劃03職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署設(shè)備端模型部署204知識(shí)儲(chǔ)備云計(jì)算部署模式133邊緣AI云計(jì)算部署模式04云計(jì)算有4種部署模式社區(qū)云混合云公共云私有云04私有云

如果一個(gè)云端的所有消費(fèi)者只來自一個(gè)特定的單位組織(如微算科技公司),那么就是私有云。私有云的核心特征是云端資源只供一個(gè)企事業(yè)單位內(nèi)的員工使用,其他的人和機(jī)構(gòu)都無權(quán)租賃并使用云端計(jì)算資源。至于云端部署何處、所有權(quán)歸誰、由誰負(fù)責(zé)日常管理,并沒有嚴(yán)格的規(guī)定。

云端部署何處,這有兩個(gè)可能,一是部署在單位內(nèi)部(如機(jī)房),稱為本地私有云;二是托管在別處(如阿里云端),稱為托管私有云。云計(jì)算部署模式04本地私有云

由于本地私有云的云端部署在企業(yè)內(nèi)部,私有云的安全及網(wǎng)絡(luò)安全邊界定義都由企業(yè)自己實(shí)現(xiàn)并管理,一切由企業(yè)掌控,所以本地私有云適合運(yùn)行企業(yè)中關(guān)鍵的應(yīng)用。云計(jì)算部署模式04托管私有云

托管私有云是把云端托管在第三方機(jī)房或者其他云端,計(jì)算設(shè)備可以自己購(gòu)買,也可以租用第三方云端的計(jì)算資源,消費(fèi)者所在的企業(yè)一般通過專線與托管的云端建立連接,或者利用疊加網(wǎng)絡(luò)技術(shù)在因特網(wǎng)上建立安全通道(VPN),以便降低專線費(fèi)用。托管私有云由于云端托管在公司之外,企業(yè)自身不能完全控制其安全性,所以要與信譽(yù)好、資金雄厚的托管方合作,這樣的托管方抵御天災(zāi)人禍的能力更強(qiáng)。云計(jì)算部署模式04社區(qū)云

如果一個(gè)云端的所有消費(fèi)者來自兩個(gè)或兩個(gè)以上特定的單位組織,那么就是社區(qū)云。社區(qū)云的核心特征是云端資源只給兩個(gè)或者兩個(gè)以上的特定單位組織內(nèi)的員工使用,除此之外的人和機(jī)構(gòu)都無權(quán)租賃和使用云端計(jì)算資源。參與社區(qū)云的單位組織具有共同的要求,如云服務(wù)模式、安全級(jí)別等。具備業(yè)務(wù)相關(guān)性或者隸屬關(guān)系的單位組織建設(shè)社區(qū)云的可能性更大一些,因?yàn)橐环矫婺芙档透髯缘馁M(fèi)用,另一方面能共享信息。與私有云類似,社區(qū)云的云端也有兩種部署方法,即本地部署和托管部署。云計(jì)算部署模式04本地社區(qū)云

由于存在多個(gè)單位組織,所以本地部署存在三種情況:只部署在一個(gè)單位組織內(nèi)部;部署在部分單位組織內(nèi)部;部署在全部單位組織內(nèi)部。如果云端部署在多個(gè)單位組織,那么每個(gè)單位組織只部署云端的一部分,或者做災(zāi)備。云計(jì)算部署模式04托管社區(qū)云

類似于托管私有云,托管社區(qū)云也是把云端部署到第三方,只不過用戶來自多個(gè)單位組織,所以托管方還必須制訂切實(shí)可行的共享策略。云計(jì)算部署模式04公共云

如果一個(gè)云端的所有消費(fèi)者來自社會(huì)公眾,那么就是公共云。公共云的核心特征是云端資源面向社會(huì)大眾開放,符合條件的任何個(gè)人或者單位組織都可以租賃并使用云端資源。公共云的管理比私有云的管理要復(fù)雜得多,尤其是安全防范,要求更高。公共云的一些例子:深圳超算中心、亞馬遜、微軟的Azure、阿里云等。

云計(jì)算部署模式04混合云如果一個(gè)云端的資源來自兩個(gè)或兩個(gè)以上的云,那么就是混合云?;旌显剖怯蓛蓚€(gè)或兩個(gè)以上不同類型的云(私有云、社區(qū)云、公共云)組成的,它其實(shí)不是一種特定類型的單個(gè)云,其對(duì)外呈現(xiàn)出來的計(jì)算資源來自兩個(gè)或兩個(gè)以上的云,只不過增加了一個(gè)混合云管理層。云服務(wù)消費(fèi)者通過混合云管理層租賃和使用資源,感覺就像在使用同一個(gè)云端的資源,其實(shí)內(nèi)部被混合云管理層路由到真實(shí)的云端了。

在右圖中,假如用戶在混合云上租賃了一臺(tái)虛擬機(jī)(IaaS型資源)及開發(fā)工具(PaaS型資源),那么用戶每次都是連接混合云端,并使用其中的資源。用戶并不知道自己的虛擬機(jī)實(shí)際上位于另一個(gè)IaaS私有云端,而開發(fā)工具又在另一個(gè)公共云上。云計(jì)算部署模式04混合云部署方法由于私有云和社區(qū)云具有本地和托管兩種類型,再加上公共云,共有5種類型,所以混合云的組keys[-1]合方式就有很多種形式了。

云計(jì)算部署模式04公/私混合云混合云屬于多云這個(gè)大類,是多云大類中最主要的形式,而公/私混合云又是混合云中最主要的形式,因?yàn)樗瑫r(shí)具備了公共云的資源規(guī)模和私有云的安全特征。從下圖中可以看出私有云和公共云構(gòu)成的混合云占比達(dá)到55%。

云計(jì)算部署模式04公/私混合云的優(yōu)勢(shì)1.架構(gòu)更靈活:可以根據(jù)負(fù)載的重要性靈活分配最適合的資源,例如將內(nèi)部重要數(shù)據(jù)保存在本地云端,而把非機(jī)密功能移動(dòng)到公共云區(qū)域。2.技術(shù)方面更容易掌控。3.更安全:具備私有云的保密性,同時(shí)具有公共云的抗災(zāi)性(在公共云上建立虛擬的應(yīng)急災(zāi)備中心或者靜態(tài)數(shù)據(jù)備份點(diǎn))。4.更容易滿足合規(guī)性要求:云計(jì)算審計(jì)員對(duì)多租戶的審查比較嚴(yán)格,他們往往要求云計(jì)算服務(wù)提供商必須為云端的某些(或者全部)基礎(chǔ)設(shè)施提供專門的解決方案。而這種混合云由于融合了專門的硬件設(shè)備,提高了網(wǎng)絡(luò)安全性,更容易通過審計(jì)員的合規(guī)性檢查。5.更低的費(fèi)用:租用第三方資源來平抑短時(shí)間內(nèi)的季節(jié)性資源需求峰值,相比自己配置最大化資源以滿足需求峰值的成本,這種短暫租賃的費(fèi)用要低得多。如下圖所示。

云計(jì)算部署模式04公/私混合云的構(gòu)成1.私有云:這是混合云的主要組成部分,企業(yè)部署混合云的步驟一般是先“私”后“公”。2.公共云。3.公/私云之間的網(wǎng)絡(luò)連接:一般為公共云提供商提供的高速專線,或者是第三方的VPN。4.混合云管理平臺(tái):是用戶的統(tǒng)一接入點(diǎn),實(shí)現(xiàn)資源的自動(dòng)化、費(fèi)用結(jié)算、報(bào)表生成、云端日常操作及API調(diào)用等,可以進(jìn)一步細(xì)化為數(shù)據(jù)管理、虛機(jī)管理、應(yīng)用管理等幾個(gè)層面的軟件。目前混合云管理平臺(tái)產(chǎn)品有VMware。

公/私混合云的功能混合云可以做多個(gè)層面的事情,基本可以分為數(shù)據(jù)層面和業(yè)務(wù)負(fù)載層面。在這兩個(gè)層面,有一些典型的應(yīng)用場(chǎng)景,具體如下:1.數(shù)據(jù)備份:將私有云的數(shù)據(jù)備份到更便宜和可靠的公共云上。2.災(zāi)備:在私有云出現(xiàn)故障時(shí),由公共云上的災(zāi)備環(huán)境提供服務(wù)。3.負(fù)載延伸:當(dāng)私有云無法提供新增負(fù)載所需要的資源時(shí),在公共云上創(chuàng)建虛擬主機(jī)來支持新的負(fù)載,當(dāng)負(fù)載下降后再刪除這些虛擬主機(jī)回到純私有云。4.使用公共云作為開發(fā)測(cè)試云。

云計(jì)算部署模式設(shè)備端模型部署204知識(shí)儲(chǔ)備云計(jì)算部署模式133邊緣AI04設(shè)備端模型部署當(dāng)我們把深度學(xué)習(xí)模型訓(xùn)練好之后,想要基于深度學(xué)習(xí)模型來開發(fā)實(shí)際應(yīng)用的時(shí)候,主要有三種不同的應(yīng)用場(chǎng)景移動(dòng)端、桌面端和服務(wù)器端。移動(dòng)端:我們將模型封裝成SDK給Android和IOS調(diào)用,由于移動(dòng)端算力有限通常還需要考慮基于移動(dòng)端CPU或GPU框架的優(yōu)化問題來提速。如果模型要求的算力比較大,就只能考慮以API的形式來調(diào)用了,這時(shí)候模型是部署在服務(wù)器上的。桌面端:桌面應(yīng)用主要包括Windows和MacOS以及Linux,這時(shí)候我們還是需要將模型封裝成SDK然后提供接口來進(jìn)行調(diào)用。Windows將模型封裝成dll或lib庫(kù),Linux封裝成so或a庫(kù),MacOS封裝為.a或.tbd庫(kù)。服務(wù)器端:服務(wù)器端模型的部署如果對(duì)并發(fā)量要求不高,通常可能都是采用flask或tornado來封裝一個(gè)API接口來給調(diào)用。但是這種方式有一個(gè)致命的缺點(diǎn)就是,能支持的并發(fā)量很低,可擴(kuò)展性也不高,如果被工具服務(wù)器很容易奔潰。對(duì)于并發(fā)量要求高的應(yīng)用建議使用基于modelserver的服務(wù)框架。04設(shè)備端模型部署近年來深度學(xué)習(xí)模型在計(jì)算機(jī)視覺、自然語言處理、搜索推薦廣告等各種領(lǐng)域,不斷刷新傳統(tǒng)模型性能,并得到了廣泛應(yīng)用。隨著移動(dòng)端設(shè)備計(jì)算能力的不斷提升,移動(dòng)端AI落地也成為了可能。相比于服務(wù)端,移動(dòng)端模型的優(yōu)勢(shì)有:1.減輕服務(wù)端計(jì)算壓力,并利用云端一體化實(shí)現(xiàn)負(fù)載均衡。特別是在雙11等大促場(chǎng)景,服務(wù)端需要部署很多高性能機(jī)器,才能應(yīng)對(duì)用戶流量洪峰。平時(shí)用戶訪問又沒那么集中,存在巨大的流量不均衡問題。直接將模型部署到移動(dòng)端,并在置信度較高情況下直接返回結(jié)果,而不需要請(qǐng)求服務(wù)端,可以大大節(jié)省服務(wù)端計(jì)算資源。同時(shí)在大促期間降低置信度閾值,平時(shí)又調(diào)高,可以充分實(shí)現(xiàn)云端一體負(fù)載均衡。2.實(shí)時(shí)性好,響應(yīng)速度快。在feed流推薦和物體實(shí)時(shí)檢測(cè)等場(chǎng)景,需要根據(jù)用戶數(shù)據(jù)的變化,進(jìn)行實(shí)時(shí)計(jì)算推理。如果是采用服務(wù)端方案,則響應(yīng)速度得不到保障,且易造成請(qǐng)求過于密集的問題。利用端計(jì)算能力,則可以實(shí)現(xiàn)實(shí)時(shí)計(jì)算。3.穩(wěn)定性高,可靠性好。在斷網(wǎng)或者弱網(wǎng)情況下,請(qǐng)求服務(wù)端會(huì)出現(xiàn)失敗。而采用端計(jì)算,則不會(huì)出現(xiàn)這種情況。在無人車和自動(dòng)駕駛等可靠性要求很高的場(chǎng)景下,這一點(diǎn)尤為關(guān)鍵,可以保證在隧道、山區(qū)等場(chǎng)景下仍能穩(wěn)定運(yùn)行。4.安全性高,用戶隱私保護(hù)好。由于直接在端上做推理,不需要將用戶數(shù)據(jù)傳輸?shù)椒?wù)端,免去了網(wǎng)絡(luò)通信中用戶隱私泄露風(fēng)險(xiǎn),也規(guī)避了服務(wù)端隱私泄露問題。04設(shè)備端模型部署移動(dòng)端部署深度學(xué)習(xí)模型也有很大的挑戰(zhàn)。主要表現(xiàn)在,移動(dòng)端等嵌入式設(shè)備,在計(jì)算能力、存儲(chǔ)資源、電池電量等方面均是受限的。故移動(dòng)端模型必須滿足模型尺寸小、計(jì)算復(fù)雜度低、電池耗電量低、下發(fā)更新部署靈活等條件。因此模型壓縮和加速就成為了目前移動(dòng)端AI的一個(gè)熱門話題。模型壓縮和加速不僅僅可以提升移動(dòng)端模型性能,在服務(wù)端也可以大大加快推理響應(yīng)速度,并減少服務(wù)器資源消耗,大大降低成本。結(jié)合移動(dòng)端AI模型和服務(wù)端模型,實(shí)現(xiàn)云端一體化,是目前越來越廣泛采用的方案。模型壓縮和加速是兩個(gè)不同的話題,有時(shí)候壓縮并不一定能帶來加速的效果,有時(shí)候又是相輔相成的。壓縮重點(diǎn)在于減少網(wǎng)絡(luò)參數(shù)量,加速則側(cè)重在降低計(jì)算復(fù)雜度、提升并行能力等。模型壓縮和加速是一個(gè)很大的命題,可以從多個(gè)角度優(yōu)化??傮w來看,個(gè)人認(rèn)為主要分為三個(gè)層次:1.算法應(yīng)用層壓縮加速。這個(gè)維度主要在算法應(yīng)用層,也是大多數(shù)算法工程師的工作范疇。主要包括結(jié)構(gòu)優(yōu)化(如矩陣分解、分組卷積、小卷積核等)、量化與定點(diǎn)化、模型剪枝、模型蒸餾等。2.框架層加速。這個(gè)維度主要在算法框架層,比如tf-lite、NCNN、MNN等。主要包括編譯優(yōu)化、緩存優(yōu)化、稀疏存儲(chǔ)和計(jì)算、NEON指令應(yīng)用、算子優(yōu)化等3.硬件層加速。這個(gè)維度主要在AI硬件芯片層,目前有GPU、FPGA、ASIC等多種方案,各種TPU、NPU就是ASIC這種方案,通過專門為深度學(xué)習(xí)進(jìn)行芯片定制,大大加速模型運(yùn)行速度。設(shè)備端模型部署204知識(shí)儲(chǔ)備云計(jì)算部署模式133邊緣AI邊緣AI04

邊緣AI實(shí)際上指的就是終端智能,即在硬件設(shè)備上本地處理的AI算法。邊緣AI是融合網(wǎng)絡(luò)、計(jì)算、存儲(chǔ)、應(yīng)用核心能力的開放平臺(tái),將AI部署在邊緣設(shè)備上可以使智能更貼近用戶,更快、更好地為用戶提供智能服務(wù)。隨著終端設(shè)備的日益增長(zhǎng),海量的數(shù)據(jù)處理需要傳送到云計(jì)算中心進(jìn)行,這增大了系統(tǒng)的時(shí)延,同時(shí)對(duì)網(wǎng)絡(luò)帶寬帶來了極大的壓力。因此,實(shí)時(shí)性和帶寬不足成為了云端AI的兩大劣勢(shì),為了帶來更快、更低成本、更安全的應(yīng)用體驗(yàn),AI開始由云端向邊緣端蔓延。邊緣AI04邊緣AI與云端AI已經(jīng)形成了對(duì)立面呢?隨著邊緣算力的豐富,包括5G大規(guī)模鋪開,越來越多地應(yīng)用場(chǎng)景選擇在邊緣進(jìn)行展開,但這并不代表云和邊緣是兩個(gè)互相對(duì)立的角色,相反,這兩者是相輔相成,分工協(xié)同的。云端有著非常強(qiáng)的算力,智能終端從技術(shù)和商業(yè)模式上來講都是云端智能在邊緣側(cè)的一個(gè)延伸,是一個(gè)分布式的技術(shù)體現(xiàn)邊緣AI最大的特點(diǎn)便是離客戶更近,為云端減少負(fù)載,節(jié)省帶寬,提升反饋效率。其次,讓終端數(shù)據(jù)留在終端,讓云端去處理一些抽象、有共性的數(shù)據(jù),從而保護(hù)隱私。但問題也隨之而來,在終端設(shè)備收到連接問題、功耗及小型化的困擾下,芯片的面積、功耗、算力都不能夠完整滿足客戶所有的需求,這時(shí)就需要云端AI芯片。在分工協(xié)同的情況下,邊緣側(cè)會(huì)更加場(chǎng)景化,更加人性化,更加體現(xiàn)出它對(duì)于一些場(chǎng)景的理解和高效性,而云端芯片需要更加智能化,能夠處理各種各樣的業(yè)務(wù)。職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08基于YOLOv5的實(shí)時(shí)檢測(cè)模型部署05任務(wù)實(shí)施RKNN模型加載1RKNN模型推理測(cè)試2使用線程進(jìn)行實(shí)時(shí)目標(biāo)檢測(cè)32加載RKNN模型1初始化RKNNSDK環(huán)境3初始化運(yùn)行時(shí)環(huán)境RKNN模型加載05RKNN模型加載初始化RKNNSDK環(huán)境05rknn=RKNN(verbose=True)1.初始化RKNNSDK環(huán)境rknn=RKNN(verbose=True,verbose_file=None)Verbose:指定是否要在屏幕上打印詳細(xì)日志信息;默認(rèn)False不打印,verbose_file:調(diào)試信息指定轉(zhuǎn)儲(chǔ)到文件路徑,默認(rèn)為None。如果有設(shè)置,且verbose參數(shù)值為True,日志信息還將寫到該參數(shù)指定的文件中importcv2importthreading#這是python的標(biāo)準(zhǔn)庫(kù),線程庫(kù)fromrknn.apiimportRKNNfromyolov5.rknn.yolov5_rknn_detectimport*初始化RKNNSDK環(huán)境05RKNN_MODEL='./yolov5/rknn/models/best.rknn'ret=rknn.load_rknn(RKNN_MODEL)2.加載RKNN模型ret=rknn.load_rknn(path,load_model_in_npu=False)主要的參數(shù)說明:path:RKNN模型文件路徑。load_model_in_npu:是否直接加載npu中的rknn模型。其中path為rknn模型在npu中的路徑。返回值:0表示加載成功,-1表示加載失敗只有當(dāng)RKNN-Toolkit運(yùn)行在運(yùn)行在RK3399ProLinux開發(fā)板或連有開發(fā)板或連有NPU設(shè)備的的PC上時(shí)才可以設(shè)為True。默認(rèn)值為False。初始化RKNNSDK環(huán)境05ret=rknn.init_runtime()3.初始化運(yùn)行時(shí)環(huán)境ret=rknn.init_runtime(target=None,device_id=None,perf_debug=False,eval_mem=False,async_mode=False)主要的參數(shù)說明:target:目標(biāo)硬件平臺(tái),目前支持rk3399pro、rk1806、rk1808、rv1109、rv1126。默認(rèn)為None,即在PC使用工具時(shí),模型在模擬器上運(yùn)行;在RK3399ProLinux開發(fā)板運(yùn)行時(shí),模型在RK3399Pro自帶NPU上運(yùn)行;否則在設(shè)定的target上運(yùn)行。如果是開發(fā)板上直接運(yùn)行,通常不寫。device_id:設(shè)備編號(hào),如果PC連接多臺(tái)設(shè)備時(shí),需要指定該參數(shù),設(shè)備編號(hào)可以通過list_devices接口查看。默認(rèn)值為None。如果是開發(fā)板上直接運(yùn)行,通常不寫。perf_debug:進(jìn)行性能評(píng)估時(shí)是否開啟debug模式。在debug模式下,可以獲取到每一層的運(yùn)行時(shí)間,否則只能獲取模型運(yùn)行的總時(shí)間。默認(rèn)值為False。eval_mem:是否進(jìn)入內(nèi)存評(píng)估模式。進(jìn)入內(nèi)存評(píng)估模式后,可以調(diào)用eval_memory接口獲取模型運(yùn)行時(shí)的內(nèi)存使用情況。默認(rèn)值為False。async_mode:是否使用異步模式。調(diào)用推理接口時(shí),涉及設(shè)置輸入圖片、模型推理、獲取推理結(jié)果三個(gè)階段。如果開啟了異步模式,設(shè)置當(dāng)前幀的輸入將與推理上一幀同時(shí)進(jìn)行,所以除第一幀外,之后的每一幀都可以隱藏設(shè)置輸入的時(shí)間,從而提升性能。在異步模式下,每次返回的推理結(jié)果都是上一幀的。該參數(shù)的默認(rèn)值為False。返回值:0表示初始化運(yùn)行時(shí)環(huán)境成功,-1表示初始化運(yùn)行時(shí)環(huán)境失敗。05任務(wù)實(shí)施RKNN模型加載1RKNN模型推理測(cè)試2使用線程進(jìn)行實(shí)時(shí)目標(biāo)檢測(cè)32模型推理1圖像讀取與圖像數(shù)據(jù)預(yù)處理3結(jié)果繪制及圖像顯示RKNN模型推理測(cè)試05RKNN模型推理測(cè)試05#讀取圖片img_1=cv2.imread('./yolov5/data/images/bus.jpg')#使用函數(shù)修改圖像大小,返回處理后的圖像、縮放比例、以及縮放后需要補(bǔ)充的寬高img,ratio,(dw,dh)=letterbox(img_1,new_shape=(IMG_SIZE,IMG_SIZE))#顏色通道BGR轉(zhuǎn)RGBimg=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)1.圖像讀取與圖像數(shù)據(jù)預(yù)處理RKNN模型推理測(cè)試05#Inferenceprint('-->Runningmodel')outputs=rknn.inference(inputs=[img])#postprocessinput_data=post_process(outputs)#獲取推理結(jié)果boxes,classes,scores=yolov5_post_process(input_data)2.模型推理RKNN模型推理測(cè)試05ifboxesisnotNone:draw(img_1,boxes,scores,classes,dw,dh,ratio)#在notobook中顯示importipywidgetsaswidgets#jupyter畫圖庫(kù)fromIPython.displayimportdisplay#jupyter顯示庫(kù)imgbox=widgets.Image()#定義一個(gè)圖像盒子,用于裝載圖像數(shù)據(jù)display(imgbox)#將盒子顯示出來imgbox.value=cv2.imencode('.jpg',img_1)[1].tobytes()#把圖像值轉(zhuǎn)成byte類型的值#在邊緣網(wǎng)關(guān)中顯示dWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.setWindowProperty('image_win',cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)#全屏展示cv2.imshow('image_win',img_1)cv2.waitKey(5000)cv2.destroyAllWindows()rknn.release()3.結(jié)果繪制及圖像顯示RKNN模型推理測(cè)試42編寫攝像頭采集線程1導(dǎo)入相關(guān)依賴包3編寫目標(biāo)檢測(cè)線程實(shí)例化線程5啟動(dòng)線程和停止線程使用線程進(jìn)行實(shí)時(shí)目標(biāo)檢測(cè)05使用線程進(jìn)行實(shí)時(shí)目標(biāo)檢測(cè)05importcv2importthreading#這是python的標(biāo)準(zhǔn)庫(kù),線程庫(kù)fromrknn.apiimportRKNNfromyolov5.rknn.yolov5_rknn_detectimport*RKNN_MODEL='./yolov5/rknn/models/best.rknn'1.導(dǎo)入相關(guān)依賴包RKNN模型推理測(cè)試052.編寫攝像頭采集線程RKNN模型推理測(cè)試053.編寫目標(biāo)檢測(cè)線程RKNN模型推理測(cè)試05camera_th=CameraThread(0,640,480)d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論