《邊緣智能計算應用》課件 項目五 基于TFLite的手掌檢測模型部署_第1頁
《邊緣智能計算應用》課件 項目五 基于TFLite的手掌檢測模型部署_第2頁
《邊緣智能計算應用》課件 項目五 基于TFLite的手掌檢測模型部署_第3頁
《邊緣智能計算應用》課件 項目五 基于TFLite的手掌檢測模型部署_第4頁
《邊緣智能計算應用》課件 項目五 基于TFLite的手掌檢測模型部署_第5頁
已閱讀5頁,還剩159頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目五基于TFLite的手掌檢測模型部署邊緣智能計算應用項目引導案例感知手的形狀和運動的能力可能是改善跨各種技術(shù)領域和平臺的用戶體驗的重要組成部分,在人機交互場景中起到非常重要的作用本章節(jié)任務中我們采用的是Mediapipe的模型,它是一種高保真手和手指跟蹤解決方案。其使用機器學習(ML)從單幀中推斷出一只手的21個2D地標。盡管當前最先進的方法主要依賴于強大的桌面環(huán)境進行推理,但通過模型轉(zhuǎn)換,其具備了在邊緣計算平臺上使用npu資源進行圖像目標檢測和識別的功能。項目引導案例本項目將帶著大家體驗基于TFLite的手掌檢測模型部署,主要任務有:TFLite模型文件轉(zhuǎn)RKNN模型文件基于rknn的手掌檢測手掌檢測在嵌入式設備中的部署和運行項目中所涉及的操作過程主要如下圖所示:TFLite模型文件轉(zhuǎn)RKNN模型文件基于rknn的手掌檢測手掌檢測在嵌入式設備中的部署和運行任務一基于TFLite的Mediapipe模型文件轉(zhuǎn)RKNN模型文件邊緣智能計算應用職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務一基于TFLite的Mediapipe模型文件轉(zhuǎn)RKNN模型文件了解RKNN的相關知識了解模型轉(zhuǎn)換工具RKNN-Toolkit了解TensorFlowLite工具掌握TFLite模型到RKNN模型轉(zhuǎn)換的環(huán)境搭建掌握使用RKNNToolkit工具將TFLite模型轉(zhuǎn)換為RKNN模型職業(yè)能力目標01知識目標技能目標職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務一基于TFLite的Mediapipe模型文件轉(zhuǎn)RKNN模型文件

此任務要求搭建RKNN模型轉(zhuǎn)換的環(huán)境,并配置模型量化和模型轉(zhuǎn)換的相關參數(shù),并對手勢識別和手掌檢測模型進行轉(zhuǎn)換。任務描述任務要求完成環(huán)境的配置完成rknn模型搭建完成模型的轉(zhuǎn)換任務描述與要求02職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務一基于TFLite的Mediapipe模型文件轉(zhuǎn)RKNN模型文件任務分析模型處理的參數(shù)要設置為多少才比較合理?為什么要轉(zhuǎn)換為rknn模型?任務分析與計劃03任務計劃表項目名稱基于TFLite的手掌檢測模型部署任務名稱基于TFLite的Mediapipe模型文件轉(zhuǎn)RKNN模型文件計劃方式自主設計計劃要求請用8個計劃步驟來完整描述出如何完成本次任務序號任務計劃1

2

3

45678通過上面的思考,你是否對本任務要完成的工作有所了解?讓我們一起來制訂完成本次任務的實施計劃吧!任務分析與計劃03職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務一基于TFLite的Mediapipe模型文件轉(zhuǎn)RKNN模型文件rknn簡介204知識儲備Mediapipe簡介1TensorFlowLite3MediaPipe是一款由Google開發(fā)并開源的數(shù)據(jù)流處理機器學習應用開發(fā)框架。它是一個基于圖的數(shù)據(jù)處理管線,用于構(gòu)建使用了多種形式的數(shù)據(jù)源,如視頻、音頻、傳感器數(shù)據(jù)以及任何時間序列數(shù)據(jù)。04Mediapipe簡介04Mediapipe簡介MediaPipe是跨平臺的,可以運行在嵌入式平臺(樹莓派等),移動設備(iOS和Android),工作站和服務器上,并支持移動端GPU加速。使用MediaPipe,可以將機器學習任務構(gòu)建為一個圖形的模塊表示的數(shù)據(jù)流管道,可以包括推理模型和流媒體處理功能。04Mediapipe簡介我們?yōu)槭裁葱枰狹ediaPipe呢?04Mediapipe簡介構(gòu)建包含推理的應用程序所涉及的不僅僅是運行機器學習推理模型。開發(fā)者還需要做到以下幾點:利用各種設備的功能平衡設備資源使用和推理結(jié)果的質(zhì)量通過流水線并行運行多個操作確保時間序列數(shù)據(jù)同步正確04Mediapipe簡介

MediaPipe框架解決了這些挑戰(zhàn),開發(fā)者可以使用它輕松快速地將現(xiàn)有的或新的機器學習模型組合到以圖表示的原型中,并將其跨平臺實現(xiàn)。04Mediapipe簡介開發(fā)人員可以配置使用MediaPipe創(chuàng)建的應用程序做到如下幾點:有效管理資源(CPU和GPU)達到低延遲性能處理諸如音頻和視頻幀之類的時間序列數(shù)據(jù)的同步并測量性能和資源消耗04Mediapipe簡介MediaPipe有下面三個主要部分組成:用于構(gòu)建基于感官數(shù)據(jù)進行機器學習推理的框架用于性能評估的工具可重用的推理和處理組件的集合04Mediapipe簡介MediaPipe的核心框架由C++實現(xiàn),并提供Java以及Objective-C等語言的支持。MediaPipe的主要概念包括:圖(Graph),數(shù)據(jù)包(Packet),節(jié)點(Node),數(shù)據(jù)流(Stream),

圖配置(GraphConfig),計算單元(Calculator)和子圖(Subgraph)04Mediapipe簡介MediaPipe還提供了MediaPipeVisualizer在線工具,它幫助開發(fā)者了解其計算單元圖的結(jié)構(gòu)并了解其機器學習推理管道的整體行為。這個圖預覽工具允許用戶在編輯器中直接輸入或上傳圖形配置文件來加載。

04MediaPipeHands是一種高保真手和手指跟蹤解決方案;它采用機器學習(ML)僅從單個幀中推理出手部的21個3D坐標;當前最先進的方法主要依賴于強大的算力,而使用MediaPipe提供的解決方案實現(xiàn)了在手機上進行實時檢測的性能,甚至可以同時辨識到多只手;MediaPipe框架將在未來被廣泛地研發(fā),更多的開發(fā)者也將加入到此行列中對手部識別和模擬應用進行開發(fā)。Mediapipe簡介rknn簡介204知識儲備Mediapipe簡介1TensorFlowLite3rknn簡介04RKNN是RockchipNPU平臺使用的模型類型,以“rknn”后綴結(jié)尾的模型文件。將模型轉(zhuǎn)換為特定格式的RKNN文件能夠調(diào)用平臺上的人工智能專用加速芯片(NPU),以獲得更高的算力。Rockchip提供了模型轉(zhuǎn)換工具RKNNToolkit,方便用戶將自主研發(fā)的算法模型轉(zhuǎn)換成RKNN模型。RKNNToolkit是為用戶提供在PC、RockchipNPU平臺上進行模型轉(zhuǎn)換和性能評估的開發(fā)套件,用戶通過該工具提供的Python接口可以便捷地完成模型轉(zhuǎn)。RKNNToolkit支持將Caffe、TensorFlow、TensorFlowLite、ONNX、Darknet、Pytorch、MXNet等框架的模型轉(zhuǎn)成RKNN模型,支持RKNN模型導入導出,后續(xù)能夠在RockchipNPU平臺上加載使用。從1.2.0版本開始支持多輸入模型。本實驗使用的是RKNNToolkit1.7.1版本。rknn簡介204知識儲備Mediapipe簡介1TensorFlowLite304TensorFlowLiteTensorFlowLite是一組工具,可幫助開發(fā)者在移動設備、嵌入式設備和loT設備上運行模型,以便實現(xiàn)設備端機器學習。04TensorFlowLiteTensorFlowLite和TensorFlow有什么聯(lián)系呢?04TensorFlowLiteTensorFlowLite是為了解決TensorFlow在移動平臺和嵌入式端過于臃腫而定制開發(fā)的輕量級解決方案,是與TensorFlow完全獨立的兩個項目,與TensorFlow基本沒有代碼共享。04TensorFlowLiteTensorFlow本身是為桌面和服務器端設計開發(fā)的,沒有為ARM移動平臺定制優(yōu)化,因此如果直接用在移動平臺或者嵌入式端會“水土不服”。04TensorFlowLiteTensorFlowLite則實現(xiàn)了低能耗、低延遲的移動平臺機器學習框架,并且使得編譯之后的二進制發(fā)布版本更小。TensorFlowLite不僅支持傳統(tǒng)的ARM加速,還為AndroidNeuralNetworksAPI提供了支持,在支持ANN的設備上能提供更好的性能表現(xiàn)。04TensorFlowLiteTensorFlowLite不僅使用了ARMNeon指令集加速,還預置了激活函數(shù),提供了量化功能,加快了執(zhí)行速度,減小了模型大小。04TensorFlowLiteTensorFlowLite具有許多優(yōu)良的特性,而這些特性源于TensorFlowLite的架構(gòu)設計。04TensorFlowLite我們可以用這樣的方式理解TensorFlowLite與TensorFlow的差異,首先需要訓練一個TensorFlow的模型文件,然后使用TensorFlowLite的模型轉(zhuǎn)換器將TensorFlow模式轉(zhuǎn)換為TensorFlowLite的模型文件(.tflite格式)。接著可以在移動應用里使用轉(zhuǎn)換好的文件。04TensorFlowLite我們可以在Android和iOS上使用TensorFlowLite,通過TensorFlowLite加載轉(zhuǎn)換好的.tflite模型文件。04TensorFlowLite但是tflite模型無法使用嵌入式開發(fā)板上的NPU資源,這樣就會造成了資源的浪費。因此我們要將其轉(zhuǎn)換為可以嵌入到開發(fā)板上的rknn模型。職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務一基于TFLite的Mediapipe模型文件轉(zhuǎn)RKNN模型文件rknn模型的搭建205任務實施環(huán)境的搭建1模型轉(zhuǎn)換305環(huán)境的搭建在做模型轉(zhuǎn)換之前,需要搭建環(huán)境,安裝所需的Python依賴包,手動安裝以下依賴包:thirdparty/rknn_toolkit-1.7.1-cp36-cp36m-linux_x86_64.whlcertifi==2021.10.8tensorflow==2.1

安裝依賴在命令行中,安裝依賴包可以寫一個或多個包同時安裝05環(huán)境的搭建導入依賴包安裝完依賴一定不要忘記導入哦!importnumpyasnp

importre

importmath

importrandom

fromrknn.apiimportRKNNrknn模型的搭建205任務實施環(huán)境的搭建1模型轉(zhuǎn)換305rknn模型的搭建創(chuàng)建RKNN對象RKNN(verbose=True,verbose_file=None)初始化rknnSDK環(huán)境verbose指定是否要在屏幕上打印詳細日志信息;默認False不打印,verbose_file調(diào)試信息指定轉(zhuǎn)儲到文件路徑,默認為None。如果設置了verbose_file參數(shù),且verbose參數(shù)值為True,日志信息還將寫到該參數(shù)指定的文件中rknn=RKNN(verbose=True)05rknn模型的搭建創(chuàng)建RKNN對象rknn.config(mean_values=[[0,0,0]],std_values=[[255,255,255]],reorder_channel='012',target_platform='rk3399pro',output_optimize=1)調(diào)用config接口設置模型的預處理參數(shù)05rknn模型的搭建加載原始模型ret=rknn.load_tflite(model='./models/hand_landmark.tflite')– model:tflite模型文件(.tflite后綴)所在的路徑– 返回值:0表示導入成功,-1表示導入失敗加載原始的tflite模型05rknn模型的搭建構(gòu)建RKNN模型rknn.build(do_quantization=True,dataset='./rknn/dataset.txt',pre_compile=False,rknn_batch_size=1)依照加載的模型結(jié)構(gòu)及權(quán)重數(shù)據(jù),構(gòu)建對應的RKNN模型– do_quantization:是否對模型進行量化,值為True或False。– dataset:量化校正數(shù)據(jù)的數(shù)據(jù)集。目前支持文本文件格式,用戶可以把用于校正的圖片(jpg或png格式)或npy文件路徑放到一個.txt文件中。文本文件里每一行一條路徑信息。如有多個輸入,則每個輸入對應的文件用空格隔開,如:a.jpga2.jpg– pre_compile:預編譯開關,如果設置成True,可以減小模型大小,及模型在硬件設備上的首次啟動速度。但是打開這個開關后,構(gòu)建出來的模型就只能在硬件平臺上運行,無法通過模擬器進行推理或性能評估。如果硬件有更新,則對應的模型要重新構(gòu)建。 model:tflite模型文件(.tflite后綴)所在的路徑– 返回值:0表示導入成功,-1表示導入失敗05rknn模型的搭建導出RKNN模型?ret=rknn.export_rknn('./rknn/models/best.rknn')export_path:導出模型文件的路徑。返回值:0表示導出成功,-1表示導出失敗將RKNN模型保存到指定文件中(.rknn后綴)05rknn模型的搭建釋放RKNN運行環(huán)境rknn.release()釋放RKNN運行環(huán)境時,用戶不需要設置模型預處理參數(shù)不釋放運行環(huán)境可能會造成內(nèi)存擁擠哦!rknn模型的搭建205任務實施環(huán)境的搭建1模型轉(zhuǎn)換305模型轉(zhuǎn)換同上進行手掌檢測模型的轉(zhuǎn)換rknn=RKNN(verbose=True)rknn.config(mean_values=[[127.5,127.5,127.5]],std_values=[[127.5,127.5,127.5]],reorder_channel='210',target_platform='rk3399pro',output_optimize=1)rknn.load_tflite(model='./models/palm_detection_without_custom_op.tflite')rknn.build(do_quantization=True,dataset='./images/dataset.txt')rknn.export_rknn('./models/palm_detectionu8.rknn')rknn.release()05模型轉(zhuǎn)換使用如下命令,確認RKNN模型是否轉(zhuǎn)換成功,以及模型文件創(chuàng)建的時間ls-almodels/*.rknn!ls-almodels/*.rknn職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務一基于TFLite的Mediapipe模型文件轉(zhuǎn)RKNN模型文件任務檢查與評價06序號評價內(nèi)容評價標準分值得分1知識運用(20%)掌握相關理論知識,理解本次任務要求,制定詳細計劃,計劃條理清晰,邏輯正確(20分)20分

理解相關理論知識,能根據(jù)本次任務要求、制定合理計劃(15分)了解相關理論知識,有制定計劃(10分)無制定計劃(0分)2專業(yè)技能(40%)很好的完成環(huán)境的配置,rknn模型的搭建和模型的轉(zhuǎn)換。(40分)40分

大體完成環(huán)境的配置,rknn模型的搭建和模型的轉(zhuǎn)換。(30分)只完成環(huán)境的配置,rknn模型的搭建。(20分)只完成環(huán)境的配置。(10分)沒有完成環(huán)境的配置。(0分)3核心素養(yǎng)(20%)具有良好的自主學習能力、分析解決問題的能力、整個任務過程中有指導他人(20分)20分

具有較好的學習能力和分析解決問題的能力,任務過程中無指導他人(15分)能夠主動學習并收集信息,有請教他人進行解決問題的能力(10分)不主動學習(0分)4課堂紀律(20%)設備無損壞、設備擺放整齊、工位區(qū)域內(nèi)保持整潔、無干擾課堂秩序(20分)20分

設備無損壞、無干擾課堂秩序(15分)無干擾課堂秩序(10分)干擾課堂秩序(0分)總得分1、請參照評價標準完成自評和對其他小組的互評。2、各組請代表分析本組任務實施經(jīng)驗。職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務一基于TFLite的Mediapipe模型文件轉(zhuǎn)RKNN模型文件任務小結(jié)07職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務一基于TFLite的Mediapipe模型文件轉(zhuǎn)RKNN模型文件任務拓展08嘗試將mediepipe的模型(tflite)轉(zhuǎn)onnx模型1仿照以上所學到的嘗試完成轉(zhuǎn)換根據(jù)上述內(nèi)容完成拓展。解題

思路提示任務要求2完整敘述出操作流程謝謝大家學習項目五基于TFLite的手掌檢測模型部署邊緣智能計算應用任務二基于rknn的手掌檢測邊緣智能計算應用職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務二基于rknn的手掌檢測了解RKNN的相關知識了解仿射變化,歸一化,量化等概念了解OpenCV的相關知識掌握OpenCV的使用掌握掌握RKNN模型的加載和使用掌握如何使用RKNN模型去檢測手掌掌握手掌檢測的流程職業(yè)能力目標01知識目標技能目標職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務二基于rknn的手掌檢測

此任務要求使用轉(zhuǎn)換后的RKNN模型對手掌進行目標檢測和識別,并繪制手掌輪廓。任務描述任務要求掌握手掌目標檢測;完成手掌圖片的截?。徽莆帐终脐P節(jié)節(jié)點檢測。任務描述與要求02職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務二基于rknn的手掌檢測任務分析我們要如何使用RKNN模型去檢測手掌呢?我們應該用什么辦法去獲取手掌的關鍵點呢?任務分析與計劃03任務計劃表項目名稱基于TFLite的手掌檢測模型部署任務名稱基于rknn的手掌檢測計劃方式自主設計計劃要求請用8個計劃步驟來完整描述出如何完成本次任務序號任務計劃1

2

3

45678通過上面的思考,你是否對本任務要完成的工作有所了解?讓我們一起來制訂完成本次任務的實施計劃吧!任務分析與計劃03職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務二基于rknn的手掌檢測04知識儲備手掌關鍵點介紹21非極大值抑制3圖片的仿射變化4置信度與置信區(qū)間5邊緣填充算法和np.pad()函數(shù)04手掌關鍵點介紹在計算機視覺領域中,手勢識別被廣泛應用于人機交互、手語識別等場景中,而手勢識別依賴于手掌關鍵點檢測,并且隨著移動終端和移動互聯(lián)網(wǎng)的普及,手勢識別也廣泛應用于移動終端中。04手掌關鍵點介紹手掌關鍵點是指手掌中的各個關節(jié)點,現(xiàn)有技術(shù)中手部關鍵點檢測最常用的方法是使用深度卷積神經(jīng)網(wǎng)絡,通過深度卷積神經(jīng)網(wǎng)絡輸出手部關鍵點的三維坐標。04手掌關鍵點介紹手掌的21個關鍵點04知識儲備手掌關鍵點介紹邊緣填充算法和np.pad()函數(shù)21非極大值抑制3圖片的仿射變化4置信度與置信區(qū)間504邊緣填充算法我們在獲取的圖像往往會存在一些無關的信息,因此我們要對圖像進行預處理,其主要目的是消除圖像中無關的信息,恢復有用的真實信息,增強有關信息的可檢測性和最大限度地簡化數(shù)據(jù),從而改進特征抽取、圖像分割、匹配和識別的可靠性。04邊緣填充算法下面將介紹和圖像預處理相關的兩個應用:邊緣填充算法和np.pad()函數(shù)04邊緣填充算法邊緣填充算法是先求出多邊形的每條邊與掃描線的交點,然后將交點右側(cè)的所有像素顏色全部取為補色(或反色)。按任意順序處理完多邊形的所有邊后,就完成了多邊形的填充任務。04邊緣填充算法邊緣填充算法利用了圖像處理中的求“補”或求“反”的概念,對于黑白圖像,求補就是把RGB(1,1,1)(白色)的像素置為RGB(0,0,0)(黑色),反之亦然。對于彩色圖像,求補就是將背景色置為填充色,反之亦然。04邊緣填充算法在卷積神經(jīng)網(wǎng)絡中,為了避免因為卷積運算導致輸出圖像縮小和圖像邊緣信息丟失,常常采用圖像邊緣填充技術(shù),即在圖像四周邊緣填充0,使得卷積運算后圖像大小不會縮小,同時也不會丟失邊緣和角落的信息。在Python的numpy庫中,常常采用numpy.pad()進行填充操作。語法結(jié)構(gòu)參數(shù)解釋pad(array,pad_width,mode,**kwargs)返回值:數(shù)組array:表示需要填充的數(shù)組;pad_width:表示每個軸(axis)邊緣需要填補的長度。參數(shù)輸入方式為:((before_1,after_1),…(before_N,after_N))。mode:表示填充的方式(取值:str字符串或用戶提供的函數(shù)),總共有11種填充模式;04邊緣填充算法填充方式‘constant’——表示連續(xù)填充相同的值,每個軸可以分別指定填充值,constant_values=(x,y)時前面用x填充,后面用y填充,缺省值填充0‘edge’——表示用邊緣值填充‘linear_ramp’——表示用邊緣遞減的方式填充‘maximum’——表示最大值填充‘mean’——表示均值填充‘median’——表示中位數(shù)填充‘minimum’——表示最小值填充‘reflect’——表示對稱填充‘symmetric’——表示對稱填充‘wrap’——表示用原數(shù)組后面的值填充前面,前面的值填充后面04知識儲備手掌關鍵點介紹21非極大值抑制3圖片的仿射變化4置信度與置信區(qū)間5邊緣填充算法和np.pad()函數(shù)非極大值抑制,簡稱為NMS算法,英文為Non-MaximumSuppression。其思想是搜素局部最大值,抑制非極大值。NMS算法在不同應用中的具體實現(xiàn)不太一樣,但思想是一樣的。04非極大值抑制目標檢測的過程中在同一目標的位置上會產(chǎn)生大量的候選框,這些候選框相互之間可能會有重疊,此時我們需要利用非極大值抑制找到最佳的目標邊界框,消除冗余的邊界框。04非極大值抑制而非極大值移植就是選擇其中置信度最大,并去除像素點較少的框。04非極大值抑制非極大值抑制,在計算機視覺任務中得到了廣泛的應用,例如邊緣檢測、人臉檢測、目標檢測(DPM,YOLO,SSD,F(xiàn)asterR-CNN)等。04非極大值抑制04知識儲備手掌關鍵點介紹21非極大值抑制3圖片的仿射變化4置信度與置信區(qū)間5邊緣填充算法和np.pad()函數(shù)圖像的幾何變換主要包括:平移、縮放、旋轉(zhuǎn)、仿射、透視等等。圖像變換是建立在矩陣運算基礎上的,通過矩陣運算可以很快的找到不同圖像的對應關系。04圖片的仿射變化圖像的幾何變換主要分為三類:剛性變換、仿射變換和透視變換。04圖片的仿射變化仿射變換是建立在轉(zhuǎn)至矩陣叉乘基礎上以實現(xiàn)圖像的平移、縮放、旋轉(zhuǎn)、仿射、透視變換的方法。04圖片的仿射變化04知識儲備手掌關鍵點介紹21非極大值抑制3圖片的仿射變化4置信度與置信區(qū)間5邊緣填充算法和np.pad()函數(shù)我們先探究一個問題04置信度與置信區(qū)間假設你想知道美國有多少人熱愛足球。為了得到100%正確的答案,你可以做的唯一一件事是向美國的每一位公民詢問他們是否熱愛足球。根據(jù)維基百科,美國有超過3.25億的人口。與3.25億人談話并不現(xiàn)實,因此我們必須通過問更少的人來得到答案。04置信度與置信區(qū)間我們可以通過在美國隨機抽取一些人(與更少人交談)并獲得熱愛足球的人的百分比來做到這一點,但是我們不能100%確信這個數(shù)字是正確的,或者這個數(shù)字離真正的答案有多遠。04置信度與置信區(qū)間所以,我們試圖實現(xiàn)的是獲得一個區(qū)間,例如,對這個問題的一個可能的答案是:「我95%相信在美國足球愛好者的比例是58%至62%」。這就是置信區(qū)間和置信度名字的來源,我們有一個區(qū)間,并且我們對它此一定的信心。04置信度與置信區(qū)間置信度:也稱可靠度,置信水平,即估計值與總體參數(shù)在一定允許的誤差范圍以內(nèi),其相應的概率有多大,這個相應的概率稱作置信度。置信區(qū)間:置信區(qū)間是由樣本(總體樣本,不是真實樣本)構(gòu)造的對總體參數(shù)估計的一個區(qū)間,每一個置信區(qū)間會對應一個置信水平,表示真實參數(shù)落在置信區(qū)間中的概率。置信區(qū)間隨著置信度的變化而變化。職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務二基于rknn的手掌檢測05在做模型轉(zhuǎn)換之前,需要搭建環(huán)境,安裝所需的Python依賴包,手動安裝以下依賴包:opencv-python==4.5.5.62certifi==2021.10.8matplotlib==3.1.0pillow==5.3.0thirdparty/rknn_toolkit-1.7.1-cp36-cp36m-linux_x86_64.whl

安裝依賴在命令行中,安裝依賴包可以寫一個或多個包同時安裝任務實施05任務實施導入依賴包安裝完依賴一定不要忘記導入哦!importcv2importnumpyasnpfrommatplotlibimportpyplotaspltfromPILimportImageimportcsvfromrknn.apiimportRKNNfromsrc.miscimportnon_max_suppression_fast,_get_hand_source_points,_coordinate_affine,_draw_palm,printSoursePoints,printDetectedPoints,printDetectedTangle,printAllTureIndex,printAllAnchorsTangle05rknn模型加載frame=cv2.imread('./images/liuxiang.jpg')im2=cv2.cvtColor(frame,cv2.COLOR_RGB2BGR)plt.imshow(im2)rknn模型載入函數(shù)任務實施05rknn模型加載任務實施加載模型./models/palm_detectionu8.rknn,并初始化運行時加載模型./models/hand_landmarku8.rknn,并初始化運行時讀取錨點文件./models/anchors.csv,用于被識別圖像的區(qū)域劃分05輸入圖片預處理任務實施為原圖補padding,時圖片變?yōu)檎叫慰s放圖片為256*256大小將圖片存儲空間保存為地址連續(xù)空間執(zhí)行成功輸出預處理后的圖片,如下圖:05手掌目標檢測(CPU模擬rk3399pro的情況下運算速度較慢)任務實施下圖是手掌檢測的關鍵點坐標(顯示的數(shù)字的坐標,為keypoints數(shù)組的偏移量所指向的元素)執(zhí)行成功后打印05模型置信度計算任務實施將模型輸出結(jié)果out_clf轉(zhuǎn)換為概率執(zhí)行成功輸出:以第0個結(jié)果為例:整數(shù)值-23.71446,轉(zhuǎn)概率值5.02274e-11。表示成功,之后標記所有置信度大于0.5的位置執(zhí)行成功輸出:148714891549155015511552155316141615161705獲得置信度滿足要求的手掌識別結(jié)果任務實施執(zhí)行成功后,打印N*18尺寸的數(shù)組,每一個18長度的子項表示一個置信度大于0.5的識別結(jié)果。candidate_detect=out_reg[detecion_mask]

print(candidate_detect)獲得置信度滿足要求錨點位置信息執(zhí)行成功后,打印N*4尺寸的數(shù)組,每一個4長度的子項表示一個置信度大于0.5的錨點信息。candidate_anchors=anchors[detecion_mask]print(candidate_anchors)05獲得置信度滿足要求置信度實際數(shù)值任務實施執(zhí)行成功后,一系列置信度大于0.5的實際置信度數(shù)字集合probabilitiesUsable=probabilities[detecion_mask]print(probabilitiesUsable)05獲得所有置信度大于0.5的預選框信息任務實施執(zhí)行成功后,打印一系列預選框在原圖中的位置尺寸信息,并在原圖中打印出來使用非極大值抑制,得出最終手掌所在的位置執(zhí)行成功打印圖片,為非極大值抑制后的圖片顯示結(jié)果,如下圖05在原圖中打印手掌檢測的最終結(jié)果任務實施使用非極大值抑制,所確定的最佳輸出,打印該結(jié)果下,手掌目標檢測的7個關鍵點坐標,如下圖:05獲得手掌的精確范圍和放向任務實施基于上一步驟得到的手掌檢測結(jié)果,我們通過如下步驟,計算手掌反射變換所需要的3個點的坐標source通過手掌目標檢測的結(jié)果,我們可以使用0和2坐標可以得到左圖紅色向量我們將向量乘以1.5并加上掌心2點的坐標,可以得到有圖方向一致大小為原來1.5倍的綠色向上的向量,并得到此綠色向量終點的坐標。我們將左圖中的向量做90度逆時針旋轉(zhuǎn),可以達到圖中指向左側(cè)的綠色向量,并得到此綠色向量終點的坐標05任務實施如果執(zhí)行成功,我們將得到source的3個手掌范圍范圍坐標如下:[[57.75703178.80229][57.75703121.95381][0.90854454178.80229]]并將這三個點的坐標打印到原圖中,如下圖:05截取檢測到的手掌圖片并展示任務實施使用仿射變換截取手掌圖片,如下圖:并打印通過反射變換截取到的手掌圖片,如下圖:05檢測手掌的指關節(jié)坐標任務實施檢測并繪制手掌的21個坐標點,坐標對應關系和輸出結(jié)果如下:下圖是手掌關節(jié)檢測的關鍵點坐標(數(shù)字為keypoints數(shù)組的偏移量),如下圖:職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務二基于rknn的手掌檢測任務檢查與評價06序號評價內(nèi)容評價標準分值得分1知識運用(20%)掌握相關理論知識,理解本次任務要求,制定詳細計劃,計劃條理清晰,邏輯正確(20分)20分

理解相關理論知識,能根據(jù)本次任務要求、制定合理計劃(15分)了解相關理論知識,有制定計劃(10分)無制定計劃(0分)2專業(yè)技能(40%)很好的完成環(huán)境的配置,對手掌的目標檢測,對得到的錨點框使用仿射變換,對手掌區(qū)域的圖像進行平移,旋轉(zhuǎn),縮放和截取,對手掌關節(jié)節(jié)點檢測,并標記輸入截取到的手掌數(shù)據(jù)。(40分)40分

完成環(huán)境的配置,對手掌的目標檢測,對得到的錨點框使用仿射變換,對手掌區(qū)域的圖像進行平移,旋轉(zhuǎn),縮放和截取。(30分)完成環(huán)境的配置,對手掌的目標檢測,對得到的錨點框使用仿射變換。(20分)完成環(huán)境的配置,對手掌的目標檢測。(10分)沒有完成環(huán)境的配置,對手掌的目標檢測。(0分)3核心素養(yǎng)(20%)具有良好的自主學習能力、分析解決問題的能力、整個任務過程中有指導他人(20分)20分

具有較好的學習能力和分析解決問題的能力,任務過程中無指導他人(15分)能夠主動學習并收集信息,有請教他人進行解決問題的能力(10分)不主動學習(0分)4課堂紀律(20%)設備無損壞、設備擺放整齊、工位區(qū)域內(nèi)保持整潔、無干擾課堂秩序(20分)20分

設備無損壞、無干擾課堂秩序(15分)無干擾課堂秩序(10分)干擾課堂秩序(0分)總得分1、請參照評價標準完成自評和對其他小組的互評。2、各組請代表分析本組任務實施經(jīng)驗。職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務二基于rknn的手掌檢測任務小結(jié)07職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務二基于rknn的手掌檢測任務拓展08嘗試利用手掌的檢測完成,設計一個門禁系統(tǒng)。1進入者要做出對應的手部動作,門禁才能打開。根據(jù)上述內(nèi)容完成拓展。解題

思路提示任務要求2完整敘述出操作流程謝謝大家學習項目五基于TFLite的手掌檢測模型部署邊緣智能計算應用任務三手掌檢測在嵌入式設備中的部署和運行邊緣智能計算應用職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務三手掌檢測在嵌入式設備中的部署和運行了解模型部署相關流程。掌握手掌檢測在嵌入式設備中的部署和運行。職業(yè)能力目標01知識目標技能目標職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務三手掌檢測在嵌入式設備中的部署和運行

此任務要求首先要將模型進行保存與工程打包,接著使用MobaXterm工具將工程下載到嵌入式開發(fā)板中,最后進行工程代碼的解壓與運行,得到檢測結(jié)果。任務描述任務要求完成模型的保存與工程打包;掌握MobaXterm工具的使用;完成下載工程到開發(fā)板中。任務描述與要求02職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務三手掌檢測在嵌入式設備中的部署和運行任務分析MobaXterm軟件是如何實現(xiàn)將工程文件下載到開發(fā)板的?如何使用工程代碼進行解壓和運行?任務分析與計劃03任務計劃表項目名稱基于TFLite的手掌檢測模型部署任務名稱手掌檢測在嵌入式設備中的部署和運行計劃方式自主設計計劃要求請用8個計劃步驟來完整描述出如何完成本次任務序號任務計劃1

2

3

45678通過上面的思考,你是否對本任務要完成的工作有所了解?讓我們一起來制訂完成本次任務的實施計劃吧!任務分析與計劃03職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結(jié)07任務拓展08任務三手掌檢測在嵌入式設備中的部署和運行手部關鍵點204知識儲備手勢識別1MediaPipeHands304手勢識別在計算機科學中,手勢識別是通過數(shù)學算法來識別人類手勢的一個議題。手勢識別可以來自人的身體各部位的運動,但一般是指臉部和手的運動。04手勢識別用戶可以使用簡單的手勢來控制或與設備交互,讓計算機理解人類的行為。其核心技術(shù)為手勢分割、手勢分析以及手勢識別。04手勢識別手勢無論是靜態(tài)或動態(tài),其識別順序首先需進行圖像的獲取手的檢測和分割手勢的分析,然后進行靜態(tài)或動態(tài)的手勢識別。04手勢識別手勢分割是手勢識別過程中關鍵的一步,手勢分割的效果直接影響到下一步手勢分析及最終的手勢識別。目前最常用的手勢分割法主要包括基于單目視覺的手勢分割和基于立體視覺的手勢分割。04手勢識別手勢分析是完成手勢識別系統(tǒng)的關鍵技術(shù)之一。通過手勢分析,可獲得手勢的形狀特征或運動軌跡。手勢的形狀和運動軌跡是動態(tài)手勢識別中的重要特征,與手勢所表達意義有直接的關系。04手勢識別手勢識別是將模型參數(shù)空間里的軌跡(或點)分類到該空間里某個子集的過程,其包括靜態(tài)手勢識別和動態(tài)手勢識別,動態(tài)手勢識別最終可轉(zhuǎn)化為靜態(tài)手勢識別。04手勢識別手勢識別應用場景家庭娛樂智能駕駛智能穿戴手部關鍵點204知識儲備手勢識別1MediaPipeHands3MediaPipeHands是一種高保真手和手指跟蹤解決方案,它采用機器學習(ML)僅從單個幀中推理出手部的21個3D坐標04MediaPipeHands當前最先進的方法主要依賴于強大的算力,而使用MediaPipe提供的解決方案實現(xiàn)了在手機上進行實時檢測的性能,甚至可以同時辨識到多只手。04MediaPipeHandsMediaPipe框架將在未來被廣泛地研發(fā),更多的開發(fā)者也將加入到此行列中對手部識別和模擬應用進行開發(fā)。04MediaPipeHands手部關鍵點204知識儲備手勢識別1MediaPipeHands3在計算機視覺領域中,手勢識別被廣泛應用于人機交互、手語識別等場景中,而手勢識別依賴于手部關鍵點檢測,并且隨著移動終端和移動互聯(lián)網(wǎng)的普及,手勢識別也廣泛應用于移動終端中。04手部關鍵點04手部關鍵點04手部關鍵點識別是指對于任何一幅給定的圖像,如果圖像中有手,則定位手的21個關鍵點的位置,每個關鍵點的位置用它在圖像中的橫縱坐標表示;這21個關鍵點包括大拇指、食指、中指、無名指、小拇指的指尖、指間關節(jié),以及手心,不區(qū)分左右手;21個關鍵點在手上的位置分布如圖所示:手部關鍵點04指尖識別是指只對伸出食指這種手勢的食指指尖進行定位的技術(shù),是一種特殊的手部關鍵點識別;手部關鍵點04手部關鍵點檢測圖片中的手部并返回坐標信息,精準定位食指指尖、及4個輔助關鍵點的坐標位置。04手部關鍵點給定任意的圖片,如果其中手勢的類別是伸出食指,那么返回指尖的位置,其中位置用橫縱坐標表示;04手部關

溫馨提示

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

評論

0/150

提交評論