邊緣智能計(jì)算應(yīng)用課件:人體關(guān)鍵點(diǎn)算法接口應(yīng)用_第1頁(yè)
邊緣智能計(jì)算應(yīng)用課件:人體關(guān)鍵點(diǎn)算法接口應(yīng)用_第2頁(yè)
邊緣智能計(jì)算應(yīng)用課件:人體關(guān)鍵點(diǎn)算法接口應(yīng)用_第3頁(yè)
邊緣智能計(jì)算應(yīng)用課件:人體關(guān)鍵點(diǎn)算法接口應(yīng)用_第4頁(yè)
邊緣智能計(jì)算應(yīng)用課件:人體關(guān)鍵點(diǎn)算法接口應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

邊緣計(jì)算算法SDK應(yīng)用(基于RockX)邊緣智能計(jì)算應(yīng)用人體關(guān)鍵點(diǎn)算法接口應(yīng)用

邊緣智能計(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人體關(guān)鍵點(diǎn)算法接口應(yīng)用

了解人體關(guān)鍵點(diǎn)檢測(cè)定義和應(yīng)用場(chǎng)景;了解RockX人體關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用;了解多線程調(diào)用算法進(jìn)行圖像識(shí)別的知識(shí)。掌握USB攝像頭采集圖像;掌握人體關(guān)鍵點(diǎn)檢測(cè)算法接口的定義;掌握人體關(guān)鍵點(diǎn)檢測(cè)算法接口的調(diào)用,并識(shí)別圖片;掌握多線程調(diào)用算法進(jìn)行圖像識(shí)別。職業(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

人體關(guān)鍵點(diǎn)算法接口應(yīng)用

此任務(wù)的主要內(nèi)容是了解人體關(guān)鍵點(diǎn)定義和應(yīng)用場(chǎng)景,RockX人體關(guān)鍵點(diǎn)相關(guān)算法接口的定義與使用的相關(guān)知識(shí),實(shí)現(xiàn)多線程調(diào)用算法進(jìn)行圖像識(shí)別,通過(guò)本次學(xué)習(xí),掌握人體關(guān)鍵點(diǎn)算法接口的應(yīng)用。任務(wù)描述任務(wù)要求完成RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用;多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(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

人體關(guān)鍵點(diǎn)算法接口應(yīng)用任務(wù)分析怎么樣實(shí)現(xiàn)攝像頭對(duì)人體關(guān)鍵點(diǎn)的識(shí)別?如何使用多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)?任務(wù)分析與計(jì)劃03任務(wù)計(jì)劃表項(xiàng)目名稱邊緣計(jì)算算法SDK應(yīng)用(基于RockX)任務(wù)名稱人體關(guān)鍵點(diǎn)算法接口的應(yīng)用計(jì)劃方式自主設(shè)計(jì)計(jì)劃要求請(qǐng)用6個(gè)計(jì)劃步驟來(lái)完整描述出如何完成本次任務(wù)序號(hào)任務(wù)計(jì)劃1

2

3

456通過(guò)上面的思考,你是否對(duì)本任務(wù)要完成的工作有所了解?讓我們一起來(lái)制訂完成本次任務(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

人體關(guān)鍵點(diǎn)算法接口的應(yīng)用RockX人體關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用204知識(shí)儲(chǔ)備人體關(guān)鍵點(diǎn)含義和應(yīng)用場(chǎng)景11人體關(guān)鍵點(diǎn)檢測(cè)含義2人體關(guān)鍵點(diǎn)檢測(cè)應(yīng)用場(chǎng)景0404

人體骨骼關(guān)鍵點(diǎn)檢測(cè)是計(jì)算機(jī)視覺的基礎(chǔ)性算法之一,在計(jì)算機(jī)視覺的其他相關(guān)領(lǐng)域的研究中都起到了基礎(chǔ)性的作用,如行為識(shí)別、人物跟蹤、步態(tài)識(shí)別等相關(guān)領(lǐng)域。具體應(yīng)用主要集中在智能視頻監(jiān)控,病人監(jiān)護(hù)系統(tǒng),人機(jī)交互,虛擬現(xiàn)實(shí),人體動(dòng)畫,智能家居,智能安防,運(yùn)動(dòng)員輔助訓(xùn)練等等。人體關(guān)鍵點(diǎn)檢測(cè)含義04人體骨骼關(guān)鍵點(diǎn)檢測(cè)也稱為PoseEstimation,主要檢測(cè)人體的關(guān)節(jié)、五官等,通過(guò)關(guān)鍵點(diǎn)描述人體骨骼信息。人體關(guān)鍵點(diǎn)檢測(cè)含義04人體骨架點(diǎn)檢測(cè)是對(duì)圖像或者視頻中的人體進(jìn)行主要關(guān)節(jié)點(diǎn)定位的過(guò)程,其作用是服務(wù)于人體動(dòng)作的分類或識(shí)別,安全監(jiān)控,人機(jī)交互,數(shù)字娛樂(lè),體育分析等領(lǐng)域都離不開對(duì)人體動(dòng)作的分析。因此,對(duì)人體骨架點(diǎn)檢測(cè)的深入研究,有著廣闊的應(yīng)用前景。人體關(guān)鍵點(diǎn)檢測(cè)含義04實(shí)現(xiàn)人體檢型,通常采用人體姿態(tài)估計(jì)(HumanPostureEstimation),即將圖片中已經(jīng)檢測(cè)到的人體關(guān)鍵點(diǎn)正確聯(lián)系起來(lái)從而實(shí)現(xiàn)人體姿態(tài)的估計(jì),實(shí)現(xiàn)人體的檢測(cè)。人體關(guān)鍵點(diǎn)通常對(duì)應(yīng)人體上有一定自由度的關(guān)節(jié),比如頸、肩、肘、腕、腰、膝、踝等。人體關(guān)鍵點(diǎn)檢測(cè)含義人體關(guān)鍵點(diǎn)檢測(cè)描述了人體關(guān)鍵點(diǎn)細(xì)粒度的信息,識(shí)別人的動(dòng)作,能夠作為行為識(shí)別、步態(tài)識(shí)別、人機(jī)交互的基礎(chǔ),人體姿態(tài)估計(jì)是機(jī)器理解圖片和視頻中的人物行為的關(guān)鍵步驟。04人體關(guān)鍵點(diǎn)檢測(cè)含義人體關(guān)鍵點(diǎn),即為人體骨架中與運(yùn)動(dòng)強(qiáng)相關(guān)的主要骨骼連接點(diǎn)。人體關(guān)鍵點(diǎn)的相對(duì)位置反映了人體姿態(tài),刻畫了人所處的運(yùn)動(dòng)狀態(tài)。有常規(guī)的站立、坐下、行走、跑步、跳躍等動(dòng)作形態(tài),還有游泳、舞蹈、武術(shù)等大范圍的體育運(yùn)動(dòng)形態(tài)。04人體關(guān)鍵點(diǎn)檢測(cè)含義04圖片的數(shù)量未知。圖片中人與人之間的接觸會(huì)極大影響識(shí)別效率,比如追擋、接觸、掩蓋。圖片中的人數(shù)的增加會(huì)直接導(dǎo)致計(jì)算的復(fù)雜度提高。由于人體具有相當(dāng)?shù)娜嵝裕瑫?huì)出現(xiàn)各種姿態(tài)和形狀,而且還面臨著遮擋、光照、霧等環(huán)境的影響。人體骨骼關(guān)鍵點(diǎn)檢測(cè)難點(diǎn)人體關(guān)鍵點(diǎn)檢測(cè)含義04人體骨骼關(guān)鍵點(diǎn)檢測(cè)方法主要分兩周:自上而下和自下而上。自上而下:先檢測(cè)人體,在檢測(cè)單人人體關(guān)鍵點(diǎn)。自下而上:先將圖片中所有的關(guān)鍵點(diǎn)檢測(cè)出來(lái),再進(jìn)行關(guān)鍵點(diǎn)聚類。人體骨骼關(guān)鍵點(diǎn)檢測(cè)方法人體關(guān)鍵點(diǎn)檢測(cè)含義1人體關(guān)鍵點(diǎn)檢測(cè)含義2人體關(guān)鍵點(diǎn)檢測(cè)應(yīng)用場(chǎng)景0404(1)用于檢測(cè)兒童或者老人是否突然摔倒,人體是否由于碰撞或疾病造成摔倒(2)用于體育、健身和舞蹈等肢體相關(guān)的教學(xué)和核對(duì)(3)用于理解人體的明確的肢體信號(hào)和指示(如機(jī)場(chǎng)跑道信號(hào)、交警信號(hào)、航海旗語(yǔ)等)(4)用于協(xié)助進(jìn)行姿態(tài)保持和保證(如學(xué)生課堂聽講和學(xué)情報(bào)告)(5)用于增強(qiáng)安保和監(jiān)控人體行為(如識(shí)別校園學(xué)生追打和上下樓梯推搡等行為)運(yùn)動(dòng)捕捉虛擬游戲舞蹈教學(xué)人體關(guān)鍵點(diǎn)檢測(cè)應(yīng)用場(chǎng)景041、人類行為識(shí)別:人類行為識(shí)別是指在給定的圖片或者圖片序列中識(shí)別出人體的動(dòng)作意圖。人類行為識(shí)別是計(jì)算機(jī)視覺領(lǐng)域一個(gè)極其重要的研究方向。人體關(guān)鍵點(diǎn)檢測(cè)應(yīng)用場(chǎng)景042、人機(jī)交互:人機(jī)交互是指設(shè)計(jì)一種計(jì)算機(jī)和用戶進(jìn)行信息傳遞的接口程序。人機(jī)交互處于計(jì)算機(jī)科學(xué),行為科學(xué),設(shè)計(jì),媒體研究的交叉點(diǎn)。人體關(guān)鍵點(diǎn)檢測(cè)應(yīng)用場(chǎng)景043、服裝解析:服裝解析是指在一張圖像中解析出人體上不同的服裝。解析服裝的視覺算法具有各種各樣的潛在應(yīng)用價(jià)值,更好的理解圖像,人物服飾識(shí)別,或基于內(nèi)容的圖像檢索等。人體關(guān)鍵點(diǎn)檢測(cè)應(yīng)用場(chǎng)景044、運(yùn)動(dòng)捕捉和增強(qiáng)現(xiàn)實(shí)(CGI):通過(guò)檢測(cè)出人體關(guān)鍵點(diǎn),將人體姿態(tài)應(yīng)用到圖形、特效增強(qiáng)、藝術(shù)造型等,使用計(jì)算機(jī)合成技術(shù)將相關(guān)數(shù)據(jù)加載在電影人物上。人體關(guān)鍵點(diǎn)檢測(cè)應(yīng)用場(chǎng)景045、虛擬游戲:在交互游戲中追蹤人體對(duì)象的運(yùn)動(dòng),使用人體關(guān)鍵點(diǎn)檢測(cè)技術(shù)來(lái)追蹤人類玩家的運(yùn)動(dòng),從而利用它來(lái)渲染虛擬人物的動(dòng)作。人體關(guān)鍵點(diǎn)檢測(cè)應(yīng)用場(chǎng)景046、訓(xùn)練機(jī)器人:人類教練通過(guò)演示特定的動(dòng)作,來(lái)教機(jī)器人學(xué)習(xí)這一動(dòng)作,機(jī)器人識(shí)別人體關(guān)鍵點(diǎn),計(jì)算如何移動(dòng)自己的活動(dòng)關(guān)節(jié),來(lái)進(jìn)行相同的動(dòng)作。人體關(guān)鍵點(diǎn)檢測(cè)應(yīng)用場(chǎng)景RockX人體關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用204知識(shí)儲(chǔ)備人體關(guān)鍵點(diǎn)含義和應(yīng)用場(chǎng)景1RockX人體關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用04RockX人體關(guān)鍵點(diǎn)相關(guān)算法庫(kù)是集成在核心開發(fā)板上的一套python的接口庫(kù),可以直接調(diào)用。主要包含:人臉檢測(cè),人臉特征獲取,人體關(guān)鍵點(diǎn),目標(biāo)追蹤等相關(guān)算法RockX人體關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用04人體關(guān)鍵點(diǎn)檢測(cè)的性能說(shuō)明:mAP@OKS0.5=0.623表示OKS=0.5時(shí)對(duì)應(yīng)的mAP=0.623。MSCOCOval2017是COCO2017KeypointDetectionTask的驗(yàn)證集,共5000張,其中2000多張有關(guān)鍵點(diǎn)。RockX人體關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用04人體關(guān)鍵點(diǎn)位置信息RockX人體關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用04人體關(guān)鍵點(diǎn)位置信息檢測(cè)之前的照片RockX人體關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用04人體關(guān)鍵點(diǎn)位置信息檢測(cè)之后的照片目標(biāo)檢測(cè)結(jié)果用藍(lán)框框表示,表明目標(biāo)檢測(cè)為人的概率為1.0。然后17個(gè)關(guān)鍵點(diǎn)都可見且用紅點(diǎn)表示出來(lái)。旁邊是紅點(diǎn)的編號(hào),從1~17。職業(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

人體關(guān)鍵點(diǎn)算法接口的應(yīng)用05任務(wù)實(shí)施多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)2RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用142加載圖片數(shù)據(jù)1導(dǎo)入相關(guān)的庫(kù)3加載圖片數(shù)據(jù)調(diào)用人體骨骼點(diǎn)檢測(cè)函數(shù)RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用05RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用畫出人體的骨骼點(diǎn)位和骨骼點(diǎn)連線5RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用05下面通過(guò)人體骨骼點(diǎn)檢測(cè)實(shí)驗(yàn),利用opencv采集圖片,識(shí)別圖片中的目標(biāo)物體,來(lái)詮釋RockX人體骨骼點(diǎn)檢測(cè)算法接口的定義和使用RockX人體關(guān)鍵點(diǎn)相關(guān)算法接口的定義與使用05importtime#時(shí)間庫(kù)importcv2#引入opencv圖像處理庫(kù)fromrockximportRockX#引入車牌識(shí)別算法接口庫(kù)1導(dǎo)入相關(guān)的庫(kù)RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用05圖片使用OpenCV利用攝像頭采集一張圖片,或者使用OpenCV讀取現(xiàn)有的圖片,這里使用讀取攝像頭的方式2加載圖片數(shù)據(jù)RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用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人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用05importipywidgetsaswidgets#jupyter畫圖庫(kù)fromIPython.displayimportdisplay#jupyter顯示庫(kù)imgbox=widgets.Image()#定義一個(gè)圖像盒子,用于裝載圖像數(shù)據(jù)display(imgbox)#將盒子顯示出來(lái)imgbox.value=cv2.imencode('.jpg',image_pose)[1].tobytes()#把圖像值轉(zhuǎn)成byte類型的值2加載圖片數(shù)據(jù)(2)顯示讀取的圖片利用以下函數(shù)顯示讀取的圖片RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用05in_img_h,in_img_w,ch=image_pose.shapeprint(in_img_h,in_img_w,ch)2加載圖片數(shù)據(jù)(3)獲取圖片信息獲取圖片的長(zhǎng),寬和通道數(shù)RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用05在RockX庫(kù)中,包含了算法各種功能模式,實(shí)例化算法為:handle=RockX(功能類型)功能類型:這里采用人體骨骼點(diǎn)檢測(cè)的功能模式RockX.ROCKX_MODULE_POSE_BODY是人體骨骼點(diǎn)檢測(cè)功能類型3實(shí)例化算法接口RockX人體關(guān)鍵點(diǎn)相關(guān)算法接口的定義與使用054調(diào)用人體骨骼點(diǎn)檢測(cè)函數(shù)參數(shù)說(shuō)明:in_img:輸入圖片(numpyndarray)width:圖片寬height:圖片高pixel_fmt:圖片pixelformat為了獲取目標(biāo)的位置,調(diào)用人體骨骼點(diǎn)檢測(cè)函數(shù),通過(guò)對(duì)圖像的檢測(cè),識(shí)別人體骨骼點(diǎn)的位置信息rockx_pose_body(self,in_img,width,height,pixel_fmt)返回值說(shuō)明:ret:狀態(tài)碼,0為成功,其他失敗results:RockX對(duì)象的列表,就是說(shuō)一張圖可能包含多個(gè)人體骨骼點(diǎn)對(duì)象,每個(gè)對(duì)象包含了人體骨骼點(diǎn)的位置信息等results[0].points是所有關(guān)節(jié)點(diǎn)的坐標(biāo)信息列表,每個(gè)關(guān)鍵點(diǎn)包含x,y坐標(biāo)值RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用055畫出人體的骨骼點(diǎn)位和骨骼點(diǎn)連線cv2.circle(img,center,radius,color=(0,255,0),thickness=3)(1)利用OpenCV在圖像上畫出骨骼點(diǎn)位cv2.circle()的作用是根據(jù)坐標(biāo),描繪一個(gè)簡(jiǎn)單的圓點(diǎn),參數(shù)依次為:圖片,中心點(diǎn)坐標(biāo),圓點(diǎn)半徑,線條顏色,線條粗細(xì)RockX人體關(guān)鍵點(diǎn)相關(guān)算法接口的定義與使用055畫出人體的骨骼點(diǎn)位和骨骼點(diǎn)連線cv2.line(img,pt1,pt2,color=(0,255,0),thickness=3)(2)利用OpenCV在圖像上畫出骨骼點(diǎn)連線cv2.line()的作用是根據(jù)坐標(biāo),描繪一個(gè)簡(jiǎn)單的圓點(diǎn),參數(shù)依次為:圖片,起點(diǎn)坐標(biāo),結(jié)束點(diǎn)坐標(biāo),線條顏色,線條粗細(xì)RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用055畫出人體的骨骼點(diǎn)位和骨骼點(diǎn)連線RockX.ROCKX_POSE_BODY_KEYPOINTS_PAIRS(3)人體骨骼關(guān)鍵點(diǎn)的配對(duì)這個(gè)是算法自帶已經(jīng)集成在RockX里面的配對(duì)列表這里繪畫結(jié)果,都只采用獲取到的第一個(gè)人體來(lái)說(shuō)明,也就是results[0],如果有需要多個(gè),數(shù)值可用變量代替RockX人體骨骼關(guān)鍵點(diǎn)檢測(cè)算法接口的定義與使用056將經(jīng)過(guò)算法處理的圖像顯示importipywidgetsaswidgets#jupyter畫圖庫(kù)fromIPython.displayimportdisplay#jupyter顯示庫(kù)imgbox=widgets.Image()#定義一個(gè)圖像盒子,用于裝載圖像數(shù)據(jù)display(imgbox)#將盒子顯示出來(lái)imgbox.value=cv2.imencode('.jpg',image_pose)[1].tobytes()#把圖像值轉(zhuǎn)成byte類型的值(3)人體骨骼關(guān)鍵點(diǎn)的配對(duì)利用jupyter的畫圖庫(kù)和顯示庫(kù),來(lái)顯示獲取的圖片05任務(wù)實(shí)施多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)2RockX人體關(guān)鍵點(diǎn)相關(guān)算法接口的定義與使用142定義攝像頭采集線程1引入相關(guān)的庫(kù)3定義算法識(shí)別線程調(diào)用兩個(gè)線程,啟動(dòng)視頻流的人體骨骼點(diǎn)檢測(cè)5停止線程多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)05多線程方式實(shí)現(xiàn)視頻流的目標(biāo)檢測(cè)根據(jù)前面學(xué)到的知識(shí)點(diǎn),利用多線程,使圖像采集和算法識(shí)別同時(shí)運(yùn)行,從而實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè),并且可以避免一些因花時(shí)間太久,導(dǎo)致的視頻卡頓多線程實(shí)現(xiàn)的人體骨骼點(diǎn)檢測(cè)是針對(duì)多個(gè)人體的識(shí)別和實(shí)時(shí)畫面的捕獲。多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)05使用線程可以把占據(jù)長(zhǎng)時(shí)間的程序中的任務(wù)放到后臺(tái)去處理。用戶界面可以更加吸引人,比如用戶點(diǎn)擊了一個(gè)按鈕去觸發(fā)某些事件的處理,可以彈出一個(gè)進(jìn)度條來(lái)顯示處理的進(jìn)度。程序的運(yùn)行速度可能加快。在一些等待的任務(wù)實(shí)現(xiàn)上如用戶輸入、文件讀寫和網(wǎng)絡(luò)收發(fā)數(shù)據(jù)等,線程就比較有用了。在這種情況下我們可以釋放一些珍貴的資源如內(nèi)存占用等等。1引入相關(guān)的庫(kù)多線程類似于同時(shí)執(zhí)行多個(gè)不同程序,多線程運(yùn)行有如下優(yōu)點(diǎn):多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)051引入相關(guān)的庫(kù)importtime#時(shí)間庫(kù)importcv2#引入opencv圖像處理庫(kù)fromlib.ft2importft#中文描繪庫(kù)importthreading#這是python的標(biāo)準(zhǔn)庫(kù),線程庫(kù)importipywidgetsaswidgets#jupyter畫圖庫(kù)fromIPython.displayimportdisplay#jupyter顯示庫(kù)fromrockximportRockX#引入算法庫(kù)每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列和程序的出口。但是線程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制。多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)052定義攝像頭采集線程結(jié)合上面的opencv采集圖像的內(nèi)容,利用多線程的方式串起來(lái),形成一個(gè)可傳參,可調(diào)用的通用類。這里定義了一個(gè)全局變量camera_img,用作存儲(chǔ)獲取的圖片數(shù)據(jù),以便于其他線程可以調(diào)用init初始化函數(shù)實(shí)例化該線程的時(shí)候,會(huì)自動(dòng)執(zhí)行初始化函數(shù),在初始化函數(shù)里面,打開攝像頭,并設(shè)置分辨run函數(shù)該函數(shù)是在實(shí)例化后,執(zhí)行start啟動(dòng)函數(shù)的時(shí)候,會(huì)自動(dòng)執(zhí)行。在該函數(shù)里,實(shí)現(xiàn)了循環(huán)獲取圖像的內(nèi)容請(qǐng)說(shuō)說(shuō)執(zhí)行線程的幾種方式?多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)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)#設(shè)置攝像頭分辨率寬度self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT,camera_height)#設(shè)置攝像頭分辨率高度代碼分析多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)05defrun(self):globalcamera_img#定義一個(gè)全局變量,用于存儲(chǔ)獲取的圖片,以便于算法可以直接調(diào)用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()多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)0523定義算法識(shí)別線程結(jié)合調(diào)用算法接口的內(nèi)容和圖像顯示內(nèi)容,利用多線程的方式整合起來(lái),循環(huán)識(shí)別,對(duì)攝像頭采集線程中獲取的每一幀圖片進(jìn)行識(shí)別,并顯示,形成視頻流的畫面init初始化函數(shù)實(shí)例化該線程的時(shí)候,會(huì)自動(dòng)執(zhí)行初始化函數(shù),在初始化函數(shù)里面,定義了顯示內(nèi)容,并實(shí)例化車牌識(shí)別run函數(shù)該函數(shù)是在實(shí)例化后,執(zhí)行start啟動(dòng)函數(shù)的時(shí)候,會(huì)自動(dòng)執(zhí)行。在該函數(shù)是一個(gè)循環(huán),實(shí)現(xiàn)了對(duì)采集的每一幀圖片進(jìn)行算法識(shí)別,然后將結(jié)果繪畫在圖片上,并將處理后的圖片顯示出來(lái)多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)05調(diào)用兩個(gè)線程,啟動(dòng)視頻流的人體骨骼點(diǎn)檢測(cè)camera_th=CameraThread(0,640,480)camera_th.start()face_detect_th=FaceDetectThread()face_detect_th.start()實(shí)例化兩個(gè)線程,并啟動(dòng)這兩個(gè)線程,實(shí)現(xiàn)完整的目標(biāo)功能,運(yùn)行時(shí),加載模型比較久,需要等待幾秒多線程方式實(shí)現(xiàn)視頻流的人體骨骼點(diǎn)檢測(cè)055停止線程obj_detect_th.stop()camera_th.stop()為了避免占用資源,需要停止攝像頭采集線程和算法識(shí)別線程,或者重啟內(nèi)核職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論