




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
邊緣計算算法SDK應用(基于RockX)邊緣智能計算應用人體關鍵點算法接口應用
邊緣智能計算應用職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08人體關鍵點算法接口應用
了解人體關鍵點檢測定義和應用場景;了解RockX人體關鍵點檢測算法接口的定義與使用;了解多線程調用算法進行圖像識別的知識。掌握USB攝像頭采集圖像;掌握人體關鍵點檢測算法接口的定義;掌握人體關鍵點檢測算法接口的調用,并識別圖片;掌握多線程調用算法進行圖像識別。職業(yè)能力目標01知識目標技能目標職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08
人體關鍵點算法接口應用
此任務的主要內容是了解人體關鍵點定義和應用場景,RockX人體關鍵點相關算法接口的定義與使用的相關知識,實現(xiàn)多線程調用算法進行圖像識別,通過本次學習,掌握人體關鍵點算法接口的應用。任務描述任務要求完成RockX人體骨骼關鍵點檢測算法接口的定義與使用;多線程方式實現(xiàn)視頻流的人體骨骼點檢測。任務描述與要求02職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08
人體關鍵點算法接口應用任務分析怎么樣實現(xiàn)攝像頭對人體關鍵點的識別?如何使用多線程方式實現(xiàn)視頻流的人體骨骼點檢測?任務分析與計劃03任務計劃表項目名稱邊緣計算算法SDK應用(基于RockX)任務名稱人體關鍵點算法接口的應用計劃方式自主設計計劃要求請用6個計劃步驟來完整描述出如何完成本次任務序號任務計劃1
2
3
456通過上面的思考,你是否對本任務要完成的工作有所了解?讓我們一起來制訂完成本次任務的實施計劃吧!任務分析與計劃03職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08
人體關鍵點算法接口的應用RockX人體關鍵點檢測算法接口的定義與使用204知識儲備人體關鍵點含義和應用場景11人體關鍵點檢測含義2人體關鍵點檢測應用場景0404
人體骨骼關鍵點檢測是計算機視覺的基礎性算法之一,在計算機視覺的其他相關領域的研究中都起到了基礎性的作用,如行為識別、人物跟蹤、步態(tài)識別等相關領域。具體應用主要集中在智能視頻監(jiān)控,病人監(jiān)護系統(tǒng),人機交互,虛擬現(xiàn)實,人體動畫,智能家居,智能安防,運動員輔助訓練等等。人體關鍵點檢測含義04人體骨骼關鍵點檢測也稱為PoseEstimation,主要檢測人體的關節(jié)、五官等,通過關鍵點描述人體骨骼信息。人體關鍵點檢測含義04人體骨架點檢測是對圖像或者視頻中的人體進行主要關節(jié)點定位的過程,其作用是服務于人體動作的分類或識別,安全監(jiān)控,人機交互,數(shù)字娛樂,體育分析等領域都離不開對人體動作的分析。因此,對人體骨架點檢測的深入研究,有著廣闊的應用前景。人體關鍵點檢測含義04實現(xiàn)人體檢型,通常采用人體姿態(tài)估計(HumanPostureEstimation),即將圖片中已經檢測到的人體關鍵點正確聯(lián)系起來從而實現(xiàn)人體姿態(tài)的估計,實現(xiàn)人體的檢測。人體關鍵點通常對應人體上有一定自由度的關節(jié),比如頸、肩、肘、腕、腰、膝、踝等。人體關鍵點檢測含義人體關鍵點檢測描述了人體關鍵點細粒度的信息,識別人的動作,能夠作為行為識別、步態(tài)識別、人機交互的基礎,人體姿態(tài)估計是機器理解圖片和視頻中的人物行為的關鍵步驟。04人體關鍵點檢測含義人體關鍵點,即為人體骨架中與運動強相關的主要骨骼連接點。人體關鍵點的相對位置反映了人體姿態(tài),刻畫了人所處的運動狀態(tài)。有常規(guī)的站立、坐下、行走、跑步、跳躍等動作形態(tài),還有游泳、舞蹈、武術等大范圍的體育運動形態(tài)。04人體關鍵點檢測含義04圖片的數(shù)量未知。圖片中人與人之間的接觸會極大影響識別效率,比如追擋、接觸、掩蓋。圖片中的人數(shù)的增加會直接導致計算的復雜度提高。由于人體具有相當?shù)娜嵝?,會出現(xiàn)各種姿態(tài)和形狀,而且還面臨著遮擋、光照、霧等環(huán)境的影響。人體骨骼關鍵點檢測難點人體關鍵點檢測含義04人體骨骼關鍵點檢測方法主要分兩周:自上而下和自下而上。自上而下:先檢測人體,在檢測單人人體關鍵點。自下而上:先將圖片中所有的關鍵點檢測出來,再進行關鍵點聚類。人體骨骼關鍵點檢測方法人體關鍵點檢測含義1人體關鍵點檢測含義2人體關鍵點檢測應用場景0404(1)用于檢測兒童或者老人是否突然摔倒,人體是否由于碰撞或疾病造成摔倒(2)用于體育、健身和舞蹈等肢體相關的教學和核對(3)用于理解人體的明確的肢體信號和指示(如機場跑道信號、交警信號、航海旗語等)(4)用于協(xié)助進行姿態(tài)保持和保證(如學生課堂聽講和學情報告)(5)用于增強安保和監(jiān)控人體行為(如識別校園學生追打和上下樓梯推搡等行為)運動捕捉虛擬游戲舞蹈教學人體關鍵點檢測應用場景041、人類行為識別:人類行為識別是指在給定的圖片或者圖片序列中識別出人體的動作意圖。人類行為識別是計算機視覺領域一個極其重要的研究方向。人體關鍵點檢測應用場景042、人機交互:人機交互是指設計一種計算機和用戶進行信息傳遞的接口程序。人機交互處于計算機科學,行為科學,設計,媒體研究的交叉點。人體關鍵點檢測應用場景043、服裝解析:服裝解析是指在一張圖像中解析出人體上不同的服裝。解析服裝的視覺算法具有各種各樣的潛在應用價值,更好的理解圖像,人物服飾識別,或基于內容的圖像檢索等。人體關鍵點檢測應用場景044、運動捕捉和增強現(xiàn)實(CGI):通過檢測出人體關鍵點,將人體姿態(tài)應用到圖形、特效增強、藝術造型等,使用計算機合成技術將相關數(shù)據(jù)加載在電影人物上。人體關鍵點檢測應用場景045、虛擬游戲:在交互游戲中追蹤人體對象的運動,使用人體關鍵點檢測技術來追蹤人類玩家的運動,從而利用它來渲染虛擬人物的動作。人體關鍵點檢測應用場景046、訓練機器人:人類教練通過演示特定的動作,來教機器人學習這一動作,機器人識別人體關鍵點,計算如何移動自己的活動關節(jié),來進行相同的動作。人體關鍵點檢測應用場景RockX人體關鍵點檢測算法接口的定義與使用204知識儲備人體關鍵點含義和應用場景1RockX人體關鍵點檢測算法接口的定義與使用04RockX人體關鍵點相關算法庫是集成在核心開發(fā)板上的一套python的接口庫,可以直接調用。主要包含:人臉檢測,人臉特征獲取,人體關鍵點,目標追蹤等相關算法RockX人體關鍵點檢測算法接口的定義與使用04人體關鍵點檢測的性能說明:mAP@OKS0.5=0.623表示OKS=0.5時對應的mAP=0.623。MSCOCOval2017是COCO2017KeypointDetectionTask的驗證集,共5000張,其中2000多張有關鍵點。RockX人體關鍵點檢測算法接口的定義與使用04人體關鍵點位置信息RockX人體關鍵點檢測算法接口的定義與使用04人體關鍵點位置信息檢測之前的照片RockX人體關鍵點檢測算法接口的定義與使用04人體關鍵點位置信息檢測之后的照片目標檢測結果用藍框框表示,表明目標檢測為人的概率為1.0。然后17個關鍵點都可見且用紅點表示出來。旁邊是紅點的編號,從1~17。職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08
人體關鍵點算法接口的應用05任務實施多線程方式實現(xiàn)視頻流的人體骨骼點檢測2RockX人體骨骼關鍵點檢測算法接口的定義與使用142加載圖片數(shù)據(jù)1導入相關的庫3加載圖片數(shù)據(jù)調用人體骨骼點檢測函數(shù)RockX人體骨骼關鍵點檢測算法接口的定義與使用05RockX人體骨骼關鍵點檢測算法接口的定義與使用畫出人體的骨骼點位和骨骼點連線5RockX人體骨骼關鍵點檢測算法接口的定義與使用05下面通過人體骨骼點檢測實驗,利用opencv采集圖片,識別圖片中的目標物體,來詮釋RockX人體骨骼點檢測算法接口的定義和使用RockX人體關鍵點相關算法接口的定義與使用05importtime#時間庫importcv2#引入opencv圖像處理庫fromrockximportRockX#引入車牌識別算法接口庫1導入相關的庫RockX人體骨骼關鍵點檢測算法接口的定義與使用05圖片使用OpenCV利用攝像頭采集一張圖片,或者使用OpenCV讀取現(xiàn)有的圖片,這里使用讀取攝像頭的方式2加載圖片數(shù)據(jù)RockX人體骨骼關鍵點檢測算法接口的定義與使用05cap=cv2.VideoCapture(0)time.Sleep(2)cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)dWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO)ret,frame=cap.read()cv2.imshow('image_win',frame)cv2.waitKey(200)cv2.imwrite("圖片名稱",frame)cap.release()cv2.destroyAllWindows()2加載圖片數(shù)據(jù)讀取一張圖片利用OpenCV打開攝像頭采集一張圖片,在之前的章節(jié)有介紹,例如以下案例:RockX人體骨骼關鍵點檢測算法接口的定義與使用05importipywidgetsaswidgets#jupyter畫圖庫fromIPython.displayimportdisplay#jupyter顯示庫imgbox=widgets.Image()#定義一個圖像盒子,用于裝載圖像數(shù)據(jù)display(imgbox)#將盒子顯示出來imgbox.value=cv2.imencode('.jpg',image_pose)[1].tobytes()#把圖像值轉成byte類型的值2加載圖片數(shù)據(jù)(2)顯示讀取的圖片利用以下函數(shù)顯示讀取的圖片RockX人體骨骼關鍵點檢測算法接口的定義與使用05in_img_h,in_img_w,ch=image_pose.shapeprint(in_img_h,in_img_w,ch)2加載圖片數(shù)據(jù)(3)獲取圖片信息獲取圖片的長,寬和通道數(shù)RockX人體骨骼關鍵點檢測算法接口的定義與使用05在RockX庫中,包含了算法各種功能模式,實例化算法為:handle=RockX(功能類型)功能類型:這里采用人體骨骼點檢測的功能模式RockX.ROCKX_MODULE_POSE_BODY是人體骨骼點檢測功能類型3實例化算法接口RockX人體關鍵點相關算法接口的定義與使用054調用人體骨骼點檢測函數(shù)參數(shù)說明:in_img:輸入圖片(numpyndarray)width:圖片寬height:圖片高pixel_fmt:圖片pixelformat為了獲取目標的位置,調用人體骨骼點檢測函數(shù),通過對圖像的檢測,識別人體骨骼點的位置信息rockx_pose_body(self,in_img,width,height,pixel_fmt)返回值說明:ret:狀態(tài)碼,0為成功,其他失敗results:RockX對象的列表,就是說一張圖可能包含多個人體骨骼點對象,每個對象包含了人體骨骼點的位置信息等results[0].points是所有關節(jié)點的坐標信息列表,每個關鍵點包含x,y坐標值RockX人體骨骼關鍵點檢測算法接口的定義與使用055畫出人體的骨骼點位和骨骼點連線cv2.circle(img,center,radius,color=(0,255,0),thickness=3)(1)利用OpenCV在圖像上畫出骨骼點位cv2.circle()的作用是根據(jù)坐標,描繪一個簡單的圓點,參數(shù)依次為:圖片,中心點坐標,圓點半徑,線條顏色,線條粗細RockX人體關鍵點相關算法接口的定義與使用055畫出人體的骨骼點位和骨骼點連線cv2.line(img,pt1,pt2,color=(0,255,0),thickness=3)(2)利用OpenCV在圖像上畫出骨骼點連線cv2.line()的作用是根據(jù)坐標,描繪一個簡單的圓點,參數(shù)依次為:圖片,起點坐標,結束點坐標,線條顏色,線條粗細RockX人體骨骼關鍵點檢測算法接口的定義與使用055畫出人體的骨骼點位和骨骼點連線RockX.ROCKX_POSE_BODY_KEYPOINTS_PAIRS(3)人體骨骼關鍵點的配對這個是算法自帶已經集成在RockX里面的配對列表這里繪畫結果,都只采用獲取到的第一個人體來說明,也就是results[0],如果有需要多個,數(shù)值可用變量代替RockX人體骨骼關鍵點檢測算法接口的定義與使用056將經過算法處理的圖像顯示importipywidgetsaswidgets#jupyter畫圖庫fromIPython.displayimportdisplay#jupyter顯示庫imgbox=widgets.Image()#定義一個圖像盒子,用于裝載圖像數(shù)據(jù)display(imgbox)#將盒子顯示出來imgbox.value=cv2.imencode('.jpg',image_pose)[1].tobytes()#把圖像值轉成byte類型的值(3)人體骨骼關鍵點的配對利用jupyter的畫圖庫和顯示庫,來顯示獲取的圖片05任務實施多線程方式實現(xiàn)視頻流的人體骨骼點檢測2RockX人體關鍵點相關算法接口的定義與使用142定義攝像頭采集線程1引入相關的庫3定義算法識別線程調用兩個線程,啟動視頻流的人體骨骼點檢測5停止線程多線程方式實現(xiàn)視頻流的人體骨骼點檢測05多線程方式實現(xiàn)視頻流的目標檢測根據(jù)前面學到的知識點,利用多線程,使圖像采集和算法識別同時運行,從而實現(xiàn)視頻流的人體骨骼點檢測,并且可以避免一些因花時間太久,導致的視頻卡頓多線程實現(xiàn)的人體骨骼點檢測是針對多個人體的識別和實時畫面的捕獲。多線程方式實現(xiàn)視頻流的人體骨骼點檢測05使用線程可以把占據(jù)長時間的程序中的任務放到后臺去處理。用戶界面可以更加吸引人,比如用戶點擊了一個按鈕去觸發(fā)某些事件的處理,可以彈出一個進度條來顯示處理的進度。程序的運行速度可能加快。在一些等待的任務實現(xiàn)上如用戶輸入、文件讀寫和網絡收發(fā)數(shù)據(jù)等,線程就比較有用了。在這種情況下我們可以釋放一些珍貴的資源如內存占用等等。1引入相關的庫多線程類似于同時執(zhí)行多個不同程序,多線程運行有如下優(yōu)點:多線程方式實現(xiàn)視頻流的人體骨骼點檢測051引入相關的庫importtime#時間庫importcv2#引入opencv圖像處理庫fromlib.ft2importft#中文描繪庫importthreading#這是python的標準庫,線程庫importipywidgetsaswidgets#jupyter畫圖庫fromIPython.displayimportdisplay#jupyter顯示庫fromrockximportRockX#引入算法庫每個獨立的線程有一個程序運行的入口、順序執(zhí)行序列和程序的出口。但是線程不能夠獨立執(zhí)行,必須依存在應用程序中,由應用程序提供多個線程執(zhí)行控制。多線程方式實現(xiàn)視頻流的人體骨骼點檢測052定義攝像頭采集線程結合上面的opencv采集圖像的內容,利用多線程的方式串起來,形成一個可傳參,可調用的通用類。這里定義了一個全局變量camera_img,用作存儲獲取的圖片數(shù)據(jù),以便于其他線程可以調用init初始化函數(shù)實例化該線程的時候,會自動執(zhí)行初始化函數(shù),在初始化函數(shù)里面,打開攝像頭,并設置分辨run函數(shù)該函數(shù)是在實例化后,執(zhí)行start啟動函數(shù)的時候,會自動執(zhí)行。在該函數(shù)里,實現(xiàn)了循環(huán)獲取圖像的內容請說說執(zhí)行線程的幾種方式?多線程方式實現(xiàn)視頻流的人體骨骼點檢測052定義攝像頭采集線程classCameraThread(threading.Thread):def__init__(self,camera_id,camera_width,camera_height):threading.Thread.__init__(self)self.working=Trueself.cap=cv2.VideoCapture(camera_id)#打開攝像頭self.cap.set(cv2.CAP_PROP_FRAME_WIDTH,camera_width)#設置攝像頭分辨率寬度self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT,camera_height)#設置攝像頭分辨率高度代碼分析多線程方式實現(xiàn)視頻流的人體骨骼點檢測05defrun(self):globalcamera_img#定義一個全局變量,用于存儲獲取的圖片,以便于算法可以直接調用whileself.working:try: ret,image=self.cap.read()#獲取新的一幀圖片,ret為獲取的狀態(tài)值 ifnotret: time.sleep(0.1) continuecamera_img=imageexceptExceptionase: pass defstop(self): self.working=False self.cap.release()多線程方式實現(xiàn)視頻流的人體骨骼點檢測0523定義算法識別線程結合調用算法接口的內容和圖像顯示內容,利用多線程的方式整合起來,循環(huán)識別,對攝像頭采集線程中獲取的每一幀圖片進行識別,并顯示,形成視頻流的畫面init初始化函數(shù)實例化該線程的時候,會自動執(zhí)行初始化函數(shù),在初始化函數(shù)里面,定義了顯示內容,并實例化車牌識別run函數(shù)該函數(shù)是在實例化后,執(zhí)行start啟動函數(shù)的時候,會自動執(zhí)行。在該函數(shù)是一個循環(huán),實現(xiàn)了對采集的每一幀圖片進行算法識別,然后將結果繪畫在圖片上,并將處理后的圖片顯示出來多線程方式實現(xiàn)視頻流的人體骨骼點檢測05調用兩個線程,啟動視頻流的人體骨骼點檢測camera_th=CameraThread(0,640,480)camera_th.start()face_detect_th=FaceDetectThread()face_detect_th.start()實例化兩個線程,并啟動這兩個線程,實現(xiàn)完整的目標功能,運行時,加載模型比較久,需要等待幾秒多線程方式實現(xiàn)視頻流的人體骨骼點檢測055停止線程obj_detect_th.stop()camera_th.stop()為了避免占用資源,需要停止攝像頭采集線程和算法識別線程,或者重啟內核職業(yè)能力目標01任務描述與要求02任務分析與
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加班夜宵采購合同范本
- 單位間借用合同范本
- 個人股東入股合同范本
- 保安公司加盟合同范本
- 產學研技術采購合同范本
- 勞務聘用員工合同范本
- 企業(yè)綠化采購合同范本
- 加工中心租賃合同范本
- 勞務協(xié)議解除合同范本
- 公司股權集資合同范本
- 第8課《山山水水》教學設計(新人教版小學美術六年級上冊)
- word 公章 模板
- 泛讀2unit2-music
- 世界技能大賽PPT幻燈片課件(PPT 21頁)
- 中學生防溺水安全教育課件(PPT 44頁)
- Python程序設計ppt課件完整版
- T∕ZSQX 008-2020 建設工程全過程質量行為導則
- 2019版外研社高中英語選擇性必修二Unit 1 Growing up 單詞表
- 《腹膜透析》ppt課件
- 安徽省2020-2021學年七年級語文下學期期末測試卷[含答案]
- CFA考試一級章節(jié)練習題精選0329-7(附詳解)
評論
0/150
提交評論