国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用樹莓派+OpenCV實現姿態估計和面部特征點追蹤?

上海晶珩電子科技有限公司 ? 2025-08-13 17:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家好,這是一個樹莓派和OpenCV的連載專題。

使用樹莓派與OpenCV實現姿態估計和面部特征點追蹤

使用樹莓派與OpenCV實現面部和運動追蹤的云臺系統

使用樹莓派和OpenCV實現手部識別與手指識別

使用樹莓派和OpenCV實時掃描并存儲二維碼

使用樹莓派和OpenCV實現物體與動物識別

使用樹莓派、攝像頭和OpenCV進行速度檢測

今天是第一部分:使用樹莓派與OpenCV實現姿態估計和面部特征點追蹤

如果大家對這個專題感興趣,記得關注樹莓派開發者,這樣你將會第一時間收到我們的內容更新通知。

考驗你英語聽力的時候到了,你可以選擇觀看視頻演示。

[更新——在OPEN-CV與新版樹莓派“Bullseye”操作系統完全兼容之前,我強烈建議現階段將先前的樹莓派“Buster”操作系統刷寫到Micro-SD卡上,以配合本指南使用——官方“Buster”鏡像下載鏈接在下方]

為了進一步探索樹莓派在人工智能領域的全面知識,我自然而然地邁出了下一步,即利用強大的樹莓派單板計算機研究姿態識別(人體關鍵點檢測)和面部遮罩技術。

你是否曾好奇過Snapchat濾鏡是如何工作的?答案就三個字——面部特征點識別。面部特征點識別(遮罩)與面部識別有何不同?主要有兩點實際差異。面部遮罩追蹤會在你的整個面部創建點和線段(因此它能準確知道你的眼睛相對于眉毛的位置),并且它只關注你的面部,別無他物。(而面部識別則會在你的頭部周圍畫一個框,并判定框內的任何東西都是面部。它不知道你的下巴在哪里,還會把你身后的背景也當作“人臉”。)另一方面,姿態估計則是利用機器學習模型,通過估計身體關鍵關節(稱為關鍵點)的空間位置,從圖像或視頻中估計人的姿態。

跟隨本指南,你將確切了解如何操作,從而在創客領域中建立一個適合你特定項目的類似系統。請參見以下指南內容:

你需要準備什么

初始設置與安裝流程

功能完備的姿態追蹤腳本

功能完備的面部遮罩腳本

接下來做什么(GPIO控制和其他應用)

在樹莓派“Buster”操作系統上設置Open-CV

下載腳本


以下是一張圖片,展示了在樹莓派“Buster”操作系統上運行姿態追蹤和面部遮罩軟件時的情景,使用的是樹莓派4 Model B、高質量攝像頭模塊和5毫米鏡頭。

27b62806-782a-11f0-9080-92fbcf53809c.png

在本頁底部,你可以找到將Open-CV安裝到樹莓派上的流程。這里探索的所有腳本都將使用Python編程語言(如果你需要,可以來參加Python研討會)。OpenCV和MediaPipe共同協作,使腳本得以運行。MediaPipe及其創建的TensorFlow使我們能夠實現姿態檢測和面部特征點檢測算法。MediaPipe擁有最強大的面部特征點數據集,可在樹莓派上運行。


你需要準備什么

以下是一份清單,列出了你需要快速搭建并運行本系統所需的組件。

樹莓派4 Model B(樹莓派提供的額外計算能力對這項任務非常有幫助,但此設置也適用于樹莓派3 Model B,只是速度會稍慢一些)

樹莓派高質量攝像頭和攝像頭鏡頭(你也可以使用樹莓派官方攝像頭模塊V2)

Micro SD卡

電源

顯示器

HDMI

鼠標和鍵盤


初始設置與安裝流程

將樹莓派作為臺式計算機連接,并連接到顯示器、鼠標和鍵盤。確保樹莓派攝像頭已正確安裝在插槽中,且排線方向正確,然后啟動下面將介紹的Open-CV安裝流程。完成此流程后,你將在全新版本的樹莓派“Buster”操作系統上安裝好Open-CV。然后,打開樹莓派配置菜單(通過左上角的菜單并滾動至首選項找到),并在接口選項卡下啟用攝像頭。啟用后,重啟樹莓派以使更改生效。設置位置請參見下圖。

27d1e654-782a-11f0-9080-92fbcf53809c.png

完成上述步驟后,下一步是使用屏幕左上角的黑色按鈕打開一個新的終端。下面你可以看到在樹莓派“Buster”桌面上打開終端時的樣子,圖中有一個大箭頭指向用鼠標點擊以打開終端的圖標。

現在,我們將在終端窗口中逐行輸入以下命令以安裝必要的軟件包。當需要你繼續安裝這些軟件包時,請按鍵盤上的 | Y | 鍵。

sudo apt-getupdate&&sudo apt-getupgradesudo apt-getinstall python-opencv python3-opencv opencv-datasudo pip3 install mediapipe-rpi3sudo pip3 install mediapipe-rpi4sudo pip3 install gttssudo apt install mpg321


功能完備的姿態追蹤腳本

完成上述步驟后,讓我們開始吧。以下是我們將用于搭建姿態追蹤系統的腳本。請在本頁底部找到并下載它。運行時,它將識別人體。當識別人體后,它將在識別出的人體的重要關節和面部放置點。這些點也被稱為特征點,每個點都有關聯的X、Y坐標。這意味著,與樹莓派手部追蹤非常相似,你將能夠識別出某些關節是在其他關節的上方還是下方。這種變化可以用作計數器來追蹤特定動作。

#Import all important functionalityimportcv2importmediapipeasmp#Start cv2 video capturing through CSI portcap=cv2.VideoCapture(0)#Initialise Media Pipe Pose featuresmp_pose=mp.solutions.posempDraw=mp.solutions.drawing_utilspose=mp_pose.Pose()#Start endless loop to create video frame by frame Add details about video size and image post-processing to better identify bodieswhileTrue: ret,frame=cap.read() flipped=cv2.flip(frame,flipCode=1) frame1 = cv2.resize(flipped,(640,480)) rgb_img=cv2.cvtColor(frame1,cv2.COLOR_BGR2RGB) result=pose.process(rgb_img) #Print general details about observed body print(result.pose_landmarks)
#Uncomment below to see X,Y coordinate Details on single location in this case the Nose Location.
#try: # print('X Coords are', result.pose_landmarks.landmark[mp_pose.PoseLandmark.NOSE].x * 640) # print('Y Coords are', result.pose_landmarks.landmark[mp_pose.PoseLandmark.NOSE].y * 480) #except: # pass
#Draw the framework of body onto the processed image and then show it in the preview window mpDraw.draw_landmarks(frame1,result.pose_landmarks,mp_pose.POSE_CONNECTIONS) cv2.imshow("frame",frame1)
#At any point if the | q | is pressed on the keyboard then the system will stop key = cv2.waitKey(1) &0xFF ifkey ==ord("q"): break

運行上述腳本時,打開的預覽窗口如下所示。它將在它認為能看到人體的地方創建一個框架并覆蓋上去。值得注意的是,此腳本還能識別你頭部上的面部和眼睛的大致位置。它還會向shell輸出一個表示可見度的數字(介于0和1之間)。如果只看到你的身體的一部分,那么這個可見度數字可能約為0.1。

2800ffe8-782a-11f0-9080-92fbcf53809c.png

與我們在《樹莓派手部識別》的這一部分中看到的如何識別并獲取人手上特定關節的實時X-Y數據點類似,我們也可以在這里對身體部位進行同樣的操作。請參見下圖,該圖展示了MediaPipe在代碼中如何對人體的每個部位進行標記和編號。因此,如果你想知道某個人的鼻子的確切X、Y坐標,你可以使用索引號 | 0 | 或通過其全名 | NOSE | 來引用。因此,如果你取上述腳本,取消注釋特定部分,然后保存并運行它,它將向shell輸出任何識別出的鼻子的X和Y坐標。有趣的是,它甚至似乎能在鼻子不在屏幕上時預測其位置。

2816749a-782a-11f0-9080-92fbcf53809c.png


功能完備的面部遮罩腳本

以下是我們將用于搭建面部遮罩系統的腳本。請在本頁底部找到并下載它。這將識別人臉,并在識別出的人臉上繪制大量點。這些點(也稱為特征點)都有關聯的X、Y坐標。這個深度學習系統擁有的特征點比68個面部特征點還要多(實際上有468個點),并且在樹莓派4 Model B上的幀率超過10 FPS。

importcv2importsys, timeimportmediapipe as mpmp_drawing= mp.solutions.drawing_utilsmp_face_mesh= mp.solutions.face_mesh# For static images:drawing_spec= mp_drawing.DrawingSpec(thickness=1, circle_radius=1)face_mesh= mp_face_mesh.FaceMesh(static_image_mode=True, max_num_faces=1, min_detection_confidence=0.5)defget_face_mesh(image): results= face_mesh.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) # Print and draw face mesh landmarks on the image. ifnot results.multi_face_landmarks: returnimage annotated_image= image.copy() forface_landmarks in results.multi_face_landmarks: #print(' face_landmarks:', face_landmarks) mp_drawing.draw_landmarks( image=annotated_image, landmark_list=face_landmarks, connections=mp_face_mesh.FACEMESH_CONTOURS, landmark_drawing_spec=drawing_spec, connection_drawing_spec=drawing_spec) #print('%d facemesh_landmarks'%len(face_landmarks.landmark)) returnannotated_image

font= cv2.FONT_HERSHEY_SIMPLEX cap= cv2.VideoCapture(0)if(cap.isOpened() == False): print("Unable to read camera feed")
cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)whilecap.isOpened(): s= time.time() ret, img = cap.read() ifret == False: print('WebCAM Read Error') sys.exit(0)
annotated= get_face_mesh(img) e= time.time() fps=1/ (e - s) cv2.putText(annotated, 'FPS:%5.2f'%(fps), (10,50), font, fontScale =1, color = (0,255,0), thickness =1) cv2.imshow('webcam', annotated) key= cv2.waitKey(1) ifkey ==27: #ESC breakcap.release()

運行上述腳本時,如果它能看到人臉,那么實時預覽窗口如下所示。它將在它認為是一張臉的地方覆蓋上一個完整的映射框架。

282babf8-782a-11f0-9080-92fbcf53809c.png


接下來做什么(GPIO控制和其他應用)

你可以對這兩個腳本進行多種拓展。你可以“教”系統識別俯臥撐或肱二頭肌彎舉的動作(基于這些動作中哪些關節在上方和下方),然后使用姿態追蹤來記錄你做了多少次。你還可以根據可見度因素確保某人仍然在攝像頭前,如果他們試圖躲開攝像頭,系統可以觸發警報。你還可以創建一個“改善你的姿勢”提醒機器。每當你開始彎腰時,一個煩人的蜂鳴器就會響起,迫使你坐直。此外,如果你想從姿態追蹤系統中獲取更多三維數據,可以看看PoseNet架構。3D PoseNet可以從連接的2D姿態和深度特征中預測3D姿態。

面部遮罩腳本可以拓展以實現各種功能。虛擬主播(vtubers)歡呼吧,你可以創建自定義Snapchat濾鏡。你還可以使用此設置進行基本的情緒檢測。這樣,如果樹莓派檢測到你情緒低落,它可以播放你最喜歡的曲子來讓你振作起來!或者你可以創建一個防瞌睡檢測樹莓派系統以提高安全性。通過關注眼睛之間的距離(上下),你可以跟蹤自己有多困。無論你做什么,希望這能激發你創作一些有創意的樹莓派項目!

那么,面部特征點識別與面部識別有何不同呢?面部遮罩的感興趣區域要緊密和準確得多。面部遮罩只關注你的面部,別無他物。這意味著面部遮罩可以用來確定你頭部的方向,而面部識別只能以一定的置信度告訴你,在其邊界框內的某個地方有一張臉。因此,面部識別無法確定邊界框內哪些是背景,哪些是人臉。


在樹莓派“Buster”操作系統上設置OPEN-CV

以下是一個詳細流程,指導你在樹莓派上安裝Open-CV,以便與上面討論的姿態和面部遮罩追蹤腳本配合使用。很快,我將創建一個腳本/單獨的教程來簡化此流程。打開一臺運行在Micro-SD卡上的全新版本樹莓派“Buster”操作系統的樹莓派4 Model B,并將系統連接到互聯網。

通過按左上角的終端按鈕打開終端。將每個命令復制并粘貼到樹莓派的終端中,按Enter鍵,并等待其完成后再繼續下一個命令。如果提示“你想繼續嗎?(y/n)”,請按Y鍵,然后按Enter鍵繼續。

sudo apt-getupdate&&sudo apt-getupgrade

在運行下一組命令之前,我們必須擴展交換文件。為此,在終端中輸入以下行。

sudo nano /etc/dphys-swapfile

將 CONF_SWAPSIZE = 100 上的數字更改為 CONF_SWAPSIZE=2048。完成此操作后,按Ctrl-X、Y,然后按Enter鍵保存這些更改。此更改只是暫時的,完成此操作后你應該將其改回。為了使這些更改生效,我們必須通過向終端輸入以下命令來重啟交換文件。然后,我們將恢復正常輸入終端命令。

sudo apt-get install build-essential cmake pkg-configsudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-devsudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-devsudo apt-get install libxvidcore-dev libx264-devsudo apt-get install libgtk2.0-dev libgtk-3-devsudo apt-get install libatlas-base-dev gfortransudo pip3 install numpywget -O opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zipwget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.4.0.zipunzip opencv.zipunzip opencv_contrib.zipcd~/opencv-4.4.0/mkdirbuildcdbuildcmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.4.0/modules \ -D BUILD_EXAMPLES=ON ..make -j $(nproc)

這個∣make∣命令將需要超過一個小時來安裝,并且不會有任何指示表明還需要多長時間。它也可能會凍結顯示器。請耐心等待,它會正常工作的。一旦完成,你就完成了大部分工作。如果它在任何時候失敗,你會收到類似∣make:???[Makefileall]Error2∣的消息,只需重新輸入并輸入上面的行∣make?j(nproc) |。不要害怕,它會記住所有已經完成的工作,并從停止的地方繼續。一旦完成,我們將繼續輸入終端命令。

sudomake install && sudo ldconfigsudo reboot

原文地址:

https://core-electronics.com.au/guides/raspberry-pi/pose-and-face-landmark-raspberry-pi/

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 操作系統
    +關注

    關注

    37

    文章

    7343

    瀏覽量

    128828
  • OpenCV
    +關注

    關注

    33

    文章

    651

    瀏覽量

    44486
  • 樹莓派
    +關注

    關注

    122

    文章

    2072

    瀏覽量

    109971
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    樹莓派上使用OpenCV和Python實現實時人臉檢測

    理論知識,因此初學者也能輕松跟著步驟實現。 項目所需設備 硬件: 樹莓 3 Model B; 樹莓攝像頭模塊(PiCam)。 語言和庫:
    的頭像 發表于 03-06 09:00 ?5.2w次閱讀

    【愛芯 Pro 開發板試用體驗】人體姿態估計模型部署前期準備

    。人體姿態估計任務主要通過一張圖片或者一段視頻,估計圖像中人物的身體的關鍵,再把人體的關鍵相互連接,組成類似一個“火柴人”的形象,從而把
    發表于 01-01 01:04

    樹莓之球形追蹤

    本帖最后由 348081236 于 2016-1-12 10:14 編輯 本教程展示如何用樹莓上的OpenCV追蹤兵乓球。它也可以用來追蹤任何能從背景中探測到的球形物體,可以應用
    發表于 01-11 18:15

    邊緣計算的機器學習和面部識別

    如何使用Edge Computing在物聯網中實現更高效的推理和面部識別。
    發表于 05-29 10:49

    樹莓與Arduino實現藥板自助取藥

    樹莓與Arduino實現藥板自助取藥準備工作樹莓安裝Opencv庫Arduino 串口開啟準
    發表于 09-02 06:50

    基于面部特征點定位的圖像人臉姿態估計方法

    針對目前基于學習的姿態估計方法對訓練樣本及設備要求較高的問題,提出一種基于面部特征點定位的無需訓練即能估計單幅圖像中人臉
    發表于 05-24 15:43 ?15次下載

    電賽總結之上位機(樹莓python-opencv實時識別黑線)

    在準備電賽的這段時間里,我確實學到了很多東西,我會一更新博客,從頭到尾總結一下,本篇博客主要寫一下樹莓opencv的使用,在這里我不
    發表于 05-10 09:29 ?2次下載
    電賽總結之上位機(<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>python-<b class='flag-5'>opencv</b>實時識別黑線)

    利用opencv+openpose實現人體姿態檢測

    利用opencv+openpose實現,接著我又開始找一些資料,在pycharm上部署。 前言 人體姿態估計的一個有趣應用是 CGI(computer graphic image,一種
    的頭像 發表于 06-26 10:15 ?4075次閱讀
    利用<b class='flag-5'>opencv</b>+openpose<b class='flag-5'>實現</b>人體<b class='flag-5'>姿態</b>檢測

    樹莓5上使用YOLO進行物體和動物識別-入門指南

    大家好,接下來會為大家開一個樹莓5和YOLO的專題。內容包括四個部分:在樹莓5上使用YOLO進行物體和動物識別-入門指南在樹莓
    的頭像 發表于 07-17 17:16 ?1626次閱讀
    在<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>5上使用YOLO進行物體和動物識別-入門指南

    樹莓5上開啟YOLO姿態估計識別之旅!

    大家好,接下來會為大家開一個樹莓5和YOLO的連載文章。內容包括四個部分:在樹莓5上使用YOLO進行物體和動物識別-入門指南在樹莓
    的頭像 發表于 07-18 15:31 ?2136次閱讀
    在<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>5上開啟YOLO<b class='flag-5'>姿態</b><b class='flag-5'>估計</b>識別之旅!

    如何在樹莓 AI HAT+上進行YOLO目標檢測?

    大家好,接下來會為大家開一個樹莓5和YOLO的連載專題。內容包括四個部分:在樹莓5上使用YOLO進行物體和動物識別-入門指南在樹莓
    的頭像 發表于 07-19 08:34 ?1266次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派</b> AI HAT+上進行YOLO目標檢測?

    如何在樹莓 AI HAT+上進行YOLO姿態估計

    大家好,接下來會為大家開一個樹莓5和YOLO的連載專題。內容包括四個部分:在樹莓5上使用YOLO進行物體和動物識別-入門指南在樹莓
    的頭像 發表于 07-20 20:34 ?653次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派</b> AI HAT+上進行YOLO<b class='flag-5'>姿態</b><b class='flag-5'>估計</b>?

    樹莓 + OpenCV 打造人臉識別技術!

    在本指南中,我們將教您如何使用OpenCV和面部識別庫(兩個出色的開源項目)設置樹莓派來檢測和識別面部。在這個設置中,所有的數據和處理都將在Pi上本地執行,這意味著您的所有
    的頭像 發表于 07-29 17:27 ?1084次閱讀
    用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b> + <b class='flag-5'>OpenCV</b> 打造人臉識別技術!

    如何使用樹莓OpenCV實現面部和運動追蹤的云臺系統?

    大家好,這是一個樹莓OpenCV的連載專題。使用樹莓OpenCV
    的頭像 發表于 08-14 17:45 ?1013次閱讀
    如何使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>與<b class='flag-5'>OpenCV</b><b class='flag-5'>實現</b><b class='flag-5'>面部</b>和運動<b class='flag-5'>追蹤</b>的云臺系統?

    零成本鋼鐵俠手套!樹莓+OpenCV 秒變手勢遙控器!

    大家好,這是一個樹莓OpenCV的連載專題。使用樹莓OpenCV
    的頭像 發表于 08-16 16:16 ?943次閱讀
    零成本鋼鐵俠手套!<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>+<b class='flag-5'>OpenCV</b> 秒變手勢遙控器!