女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

大家好,接下來會為大家開一個樹莓派5和YOLO的連載文章。

內容包括四個部分:

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

在樹莓派5上開啟YOLO人體姿態估計識別之旅

YOLO物體檢測在樹莓派AI Hat+上 | 如何編寫自定義Python代碼

YOLO姿態估計在樹莓派AI Hat+上 | 編寫自定義Python代碼

今天是第二部分:樹莓派5上使用YOLO進行人體姿態估計識別之旅

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

你是否曾想涉足計算機視覺領域?那么在樹莓派這樣一款低功耗、便攜式的硬件設備上嘗試如何?

在本指南中,我們將在樹莓派5上,借助OpenCV和YOLO姿態估計模型家族進行相關設置。我們將探討一些可用的不同YOLO模型,以及如何優化這些模型以獲得更流暢的幀率(FPS),還會介紹如何使用模型生成的關鍵點數據,以便將姿態估計應用到你的下一個項目中。這是我們近期制作的最有趣的指南之一,讓我們開始吧!

對于需要相關資料的外部讀者,這里是我們的項目代碼壓縮文件夾,其中包含運行姿態估計所需的所有腳本。

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


目錄:

所需物品

硬件組裝

安裝樹莓派操作系統

設置虛擬環境并安裝YOLO

運行姿態估計

更換YOLO模型

提高處理速度

太空入侵者演示及后續方向

致謝

項目壓縮文件下載


太空入侵者演示

要跟隨本指南進行操作,你需要準備以下物品:

樹莓派5 - 4GB或8GB型號均可。雖然理論上也可以在樹莓派4上完成,但速度遠于樹莓派5,體驗不佳,因此我們未在樹莓派4上進行測試。

樹莓派攝像頭 - 我們使用的是攝像頭模塊V3

轉接線 - 樹莓派5配備的是不同尺寸的CSI攝像頭線,而你的攝像頭可能配備的是較舊的較粗線,因此請仔細檢查。攝像頭模塊V3肯定需要轉接線

散熱方案 - 我們使用的是主動散熱器(計算機視覺會讓你的樹莓派達到性能極限)

電源

Micro SD卡 - 容量至少為16GB

顯示器和Micro-HDMI轉HDMI線

鼠標和鍵盤

*所需物品可以直接聯系我們進行購買。


硬件組裝

硬件組裝過程相對簡單。將線纜較粗的一端連接到攝像頭,較細的一端連接到樹莓派5。這些連接器上有一個標簽 - 將其抬起,然后將線纜插入插槽。確保線纜插入整齊后,將標簽壓回原位以固定線纜。

注意,這些連接器只能以一個方向插入,且較為脆弱,因此請避免過度彎曲(稍微彎曲一點沒問題)。

34555e6e-63a9-11f0-a486-92fbcf53809c.jpg


安裝樹莓派操作系統

首先,我們需要將樹莓派操作系統安裝到Micro SD卡上。使用樹莓派成像工具,選擇樹莓派5作為設備,樹莓派操作系統(64位)作為操作系統,以及你的MicroSD卡作為存儲設備。

34668bee-63a9-11f0-a486-92fbcf53809c.png

下載樹莓派操作系統:https://www.raspberrypi.com/software/

注意:將樹莓派操作系統安裝到MicroSD卡上會清除卡上的所有數據。

下載并安裝操作系統可能需要幾分鐘時間。安裝完成后,將卡插入樹莓派并啟動。樹莓派將進行首次安裝設置,請確保將其連接到互聯網。


設置虛擬環境并安裝庫

隨著2023年Bookworm操作系統的推出,我們現在需要使用虛擬環境(或venv),因為它們是在樹莓派上提供一個獨立的空間,我們可以在其中進行實驗而不會損害樹莓派操作系統或其他項目。本指南提供了所有所需的命令和說明,但如果你需要幫助,虛擬環境有其自己的指南。

3475f9ee-63a9-11f0-a486-92fbcf53809c.jpg

要創建虛擬環境,請打開一個新的終端窗口并輸入:

python3 -m venv--system-site-packagesyolo_pose

創建venv后,我們可以通過輸入以下命令進入:

sourceyolo_pose/bin/activate

執行上述操作后,你會在綠色文本的左側看到虛擬環境的名稱 - 這意味著我們正在其中正確工作。如果你需要重新進入此環境(例如,如果你關閉了終端窗口,你將退出環境),只需再次輸入上述source命令即可。

現在,我們處于虛擬環境中,可以開始安裝所需的軟件包。首先,通過輸入以下三行命令確保PIP(Python軟件包管理器)是最新的:

sudoapt updatesudo apt install python3-pip -ypip install -U pip

然后,使用以下命令安裝Ultralytics軟件包:

pip install ultralytics[export]

Ultralytics的優秀團隊是最新YOLO模型的主要開發者和維護者之一。他們的這個軟件包將承擔大部分繁重的工作,并安裝OpenCV以及我們運行YOLO所需的所有基礎設施。

此過程還將安裝大量其他軟件包,因此可能會失敗。如果你的安裝失敗(會顯示一大片紅色文本),只需再次輸入Ultralytics安裝命令,它應該會繼續。在極少數情況下,可能需要重復輸入安裝命令幾次。

安裝完成后,重啟樹莓派。如果你想成為高級用戶,可以在shell中輸入:

reboot

我們還有一件事要做,那就是設置Thonny以使用我們剛剛創建的虛擬環境。Thonny是我們將運行所有代碼的程序,我們需要讓它從同一個venv中運行,以便它可以訪問我們安裝的庫。

首次打開Thonny時,它可能處于簡化模式,你會在右上角看到“切換到常規模式”。如果存在此選項,請點擊它并關閉Thonny以重新啟動。

348c43b6-63a9-11f0-a486-92fbcf53809c.jpg

現在,通過選擇“運行”>“配置解釋器”進入解釋器選項菜單。在“Python可執行文件”選項下,有一個帶三個點的按鈕。選擇它并導航到我們剛剛創建的虛擬環境中的Python可執行文件。

349cf4ae-63a9-11f0-a486-92fbcf53809c.jpg

該文件位于home/pi/yolo_pose/bin下,在此文件中,你需要選擇名為“python3”的文件。點擊確定,你現在將在此venv中工作。

無論何時打開Thonny,它都將自動在此環境中運行。你可以通過從同一解釋器選項菜單中“Python可執行文件”下的下拉菜單中選擇它來更改工作環境。如果你想退出虛擬環境,請選擇bin/python3選項。

34ab033c-63a9-11f0-a486-92fbcf53809c.jpg


運行姿態估計

現在,我們已經安裝了所需的庫,并且Thonny正在虛擬環境中運行,我們可以運行姿態估計腳本了。繼續并將項目壓縮文件夾解壓到桌面等方便的位置。

在那里,你將找到我們將使用的第一個腳本“pose demo.py”。在Thonny中打開它并點擊綠色的大運行按鈕。首次運行此腳本時,它可能會自動安裝一些額外所需的內容,幾秒鐘后,你應該會看到一個預覽窗口出現,其中正在運行你的姿態估計。

34b77928-63a9-11f0-a486-92fbcf53809c.jpg

此時應該會發生幾件事。首先,YOLO將嘗試檢測人類,如果識別到一個人,它會在其周圍繪制一個方框,并在頂部顯示置信度評分。重要的是,它將在它認為你身體的一些關鍵部位放置點(這些點稱為關鍵點),并在這些點之間繪制線條以估計人的姿態和方向。右上角還將顯示此腳本運行的FPS(我們稍后將提高它)。

就這樣!通過這幾個簡單的步驟,我們已經讓樹莓派運行姿態估計了!


更換YOLO模型

到目前為止,我們一直在運行YOLO11,而這個Ultralytics軟件包的美妙之處在于,我們只需在代碼中替換一行即可完全更改模型。我們可以使用它來運行更高級的YOLO11模型,甚至是舊模型。你只需要更改設置中的這一行:

# Load our YOLO11 modelmodel= YOLO("yolo11n-pose.pt")

此行當前使用的是nano模型,它是YOLO11中最小、功能最弱但速度最快的模型。我們可以通過更改“11”后面的單個字母來更改此行以運行此模型的不同尺寸版本,如下所示。如果你將此行更改為另一個模型尺寸并運行它,腳本將自動下載新模型(對于較大的模型,可能達到數百MB)。

34d3d76c-63a9-11f0-a486-92fbcf53809c.jpg

這些模型之間的差異在于姿態估計性能和FPS之間的權衡。模型越大,它越擅長估計可能未被攝像頭捕捉到的身體部位,以及更復雜的角度和畫面中有更多人的幀,但你可能只能期望每10秒處理一幀!我們將在下一步中提高它。

另一方面,nano模型運行速度最快,未經優化時約能達到1.5 FPS,但它沒有較大模型的處理能力。對于姿態估計,大多數情況下nano模型就足夠了,因為它通常能滿足你的需求,但如果你需要更強大的功能,請繼續增大模型尺寸以滿足你的需求。

34e7913a-63a9-11f0-a486-92fbcf53809c.jpg

在此行中,我們還可以更改正在運行的YOLO版本。如果你想,可以回退到舊模型,或者利用新模型。本指南最終會過時,如果Ultralytics發布了YOLO13,你應該只需將此行更改為以下內容即可開始使用更新的YOLO版本:

# Load our YOLO11 modelmodel= YOLO("yolo13n-pose.pt")

另外請注意,一些較舊的YOLO模型名稱中包含“v”。例如,YOLO8稱為:

# Load our YOLO11 modelmodel= YOLO("yolov8n-pose.pt")


提高處理速度

我們可以采取兩種方法來提高樹莓派上的FPS,而最有效的方法是將模型轉換為稱為NCNN的格式。這是一種更優化以在樹莓派等基于ARM處理器上運行的模型格式。打開名為“ncnn conversion.py”的腳本,你將找到以下內容:

fromultralyticsimportYOLO# Load a YOLO11n PyTorch modelmodel = YOLO("yolo11n-pose.pt")# Export the model to NCNN formatmodel.export(format="ncnn", imgsz=640) # creates 'yolov11n-pose_ncnn_model'

要使用此腳本,首先指定你想要轉換的模型。這使用我們在上一節中討論的相同命名約定。然后,指定模型格式“ncnn”作為輸出格式以及分辨率。目前保持默認的640。首次運行此腳本時,它將下載更多所需的內容,但實際轉換應該只需幾秒鐘。

完成后,在腳本所在的文件夾中,你將找到一個名為“yolo11n-pose_ncnn_model”之類的新文件夾。復制此文件名并返回到我們之前的演示腳本。

現在,你需要通過將模型行更改為它剛剛創建的文件夾的名稱來告訴腳本使用我們創建的模型。它應該如下所示:

# Load our YOLO11 modelmodel= YOLO("yolo11n-pose_ncnn_model")

如果你運行腳本,它應該與之前完全一樣地工作,但由于NCNN轉換,FPS提高了4倍。

我們可以做的另一件事來提高FPS是降低處理分辨率。這是我們將運行YOLO模型的分辨率,像素越少意味著處理每幀所需的時間越少。

雖然轉換為NCNN是免費的FPS提升,但降低分辨率確實會犧牲一些能力。較低的分辨率會略微降低姿態估計的準確性(雖然不太明顯),并且它最大的影響是降低了可以估計姿態的距離。默認分辨率為640時,范圍相當遠,因此我們可以適當降低一點。

為此,請打開我們剛剛使用的NCNN轉換腳本并在以下行中指定你想要的分辨率:

# Export the model to NCNN formatmodel.export(format="ncnn", imgsz=320) # creates 'yolov11n-pose_ncnn_model'

注意:這必須是32的倍數。因此,你不能將其設置為300,但可以設置為320

我們發現,160到320范圍內的分辨率在性能和速度之間取得了良好的平衡。

3502f736-63a9-11f0-a486-92fbcf53809c.jpg

運行轉換代碼,它將導出具有所需分辨率的模型。這樣做也會覆蓋任何之前導出的同名模型。

在演示腳本中,確保你像之前一樣指定了NCNN模型。還有一件重要的事情我們必須做,那就是告訴腳本要向模型輸入什么分辨率。在while true循環中,你將找到以下行。確保它與模型的分辨率匹配,對于此示例,我們導出的是320:

# Run YOLO model on the captured frame and store the results results= model.predict(frame, imgsz =320)

如果一切順利,你應該會看到FPS再次顯著提高。根據需要調整此分辨率,但請記住:

它必須是32的倍數

你必須更改主腳本中的名稱以使用導出的模型

你必須將主腳本中的分辨率設置為與模型匹配


太空入侵者演示及后續方向

現在,我們的姿態估計已經運行,并且達到了合適的FPS,讓我們看看如何利用這些關鍵點做些什么。模型輸出的所有數據都存儲在“results”變量中。繼續并打開名為“keypoint acquisition.py”的腳本。此腳本與之前的演示腳本幾乎相同,只是在頂部添加了以下函數:

defget_keypoint_position(keypoint_num, axis='x'): """ Keypoint reference: 0: nose 5: left_shoulder 10: right_wrist 15: left_ankle 1: left_eye 6: right_shoulder 11: left_hip 16: right_ankle 2: right_eye 7: left_elbow 12: right_hip 3: left_ear 8: right_elbow 13: left_knee 4: right_ear 9: left_wrist 14: right_knee """ ifnot0<= keypoint_num <=?16:? ? ? ? raise?ValueError("Keypoint number must be between 0 and 16")? ? if?axis.lower()?not?in?['x',?'y']:? ? ? ? raise?ValueError("Axis must be 'x' or 'y'")? ? # Get the keypoint data? ? keypoint = results[0].keypoints.xyn[0][keypoint_num]? ? # Return x or y coordinate based on axis parameter? ? return?keypoint[0].item()?if?axis.lower() ==?'x'?else?keypoint[1].item()

此函數接受兩個輸入:你想要使用的關鍵點和你想在屏幕上獲取的其x或y坐標。然后,它將接受此請求并從函數中提取該數據以輸出。它還包含一個映射參考,說明關鍵點編號對應于身體上的哪個點。如果我們想調用函數來查找鼻子(關鍵點0)的位置以及它在x軸上的位置,我們將使用以下行:

nose_x= get_keypoint_position(0,'x')

這將返回鼻子在x軸上的相對位置,因此它將是一個0到1之間的數字。0將在屏幕的最左側,1將在屏幕的最右側。如果我們獲取的是y軸,它也將返回一個數字,其中0是屏幕的頂部,1是屏幕的底部。運行腳本是獲得對此的直觀理解的最好方法。

這是YOLO運行姿態估計與將其應用到我們的項目中的橋梁,因為我們現在有一個Python腳本可以跟蹤身體特定部位的位置并返回其在攝像頭中的位置。作為一個可能的示例,我們(大致)創建了名為“space invaders.py”的腳本。這是關鍵點獲取腳本的修改版本,它使用鼻子在x軸上的位置來控制一個簡單的太空入侵者游戲。運行此腳本并玩一玩!

351d2386-63a9-11f0-a486-92fbcf53809c.jpg

這是使用一個名為Pygame的酷炫庫制作的,但不幸的是,這不是一個關于如何使用Pygame的教程。我們也沒有手動編寫此代碼,而是咨詢了一位Pygame專家,你也可以訪問他。像ChatGPT和Claude這樣的大型語言模型在編寫此類代碼方面很有經驗,我們只是將關鍵點獲取代碼和一些文本要求它制作一個太空入侵者游戲粘貼在一起,它就為我們輸出了這段代碼。你可以做同樣的事情,但用于其他簡單游戲,如打磚塊和貪吃蛇!

很有可能它不會一次就完美,你可能會遇到錯誤,或者它可能太慢,或者顏色可能不對。但你可以簡單地要求它修復這個問題,它會盡力解決。它還可以分解并教你代碼的工作原理,就像你問一個人一樣。

你還可以做的不僅僅是控制視頻游戲,你還可以使用這些點來控制硬件,如伺服電機、馬達和電磁閥。或者你可以發揮創意,跟蹤肩膀的位置并制作一個引體向上或俯臥撐計數器。

無論你的項目是什么,你現在都有一個樹莓派,它可以分析視頻源,尋找人類,并輸出那個人身體上點的位置。而且我們能夠在我們謙遜的小樹莓派上運行所有這些功能,這確實是一項了不起的成就。

如果你用這個制作了什么酷炫的東西,或者你需要任何幫助,請在我們的論壇上專門為本指南發布的帖子下方留言。


致謝

首先,我們要感謝OpenCV和COCO庫的眾多貢獻者、開發者和維護者。現代計算機視覺領域的許多成果都建立在他們的努力之上。

我們還要感謝Joseph Redmon和Ultralytics開發并維護了許多這里使用的YOLO模型。它們是非常強大的模型,能夠在樹莓派等低功耗硬件上運行,這絕非易事!

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

    關注

    19

    文章

    7663

    瀏覽量

    90800
  • 樹莓派
    +關注

    關注

    121

    文章

    2009

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RS Components攜手樹莓創始人開啟中國之旅

    Upton于8月11日-13日在上海及深圳兩地開啟一場樹莓的“中國之旅”, 并與當地工程師及樹莓
    發表于 08-14 16:44 ?837次閱讀

    如何在Arm虛擬硬件的虛擬樹莓4完成圖像識別應用的部署

    本期課程,小編將以計算機視覺領域的圖像識別任務為目標,帶領大家動手實現在樹莓的虛擬設備上部署基于 Paddle Lite 的圖像識別模型,以及如何將在 Arm 虛擬硬件 (Arm V
    的頭像 發表于 09-30 10:00 ?2843次閱讀

    完整指南:如何使用樹莓5、Hailo AI Hat、YOLO、Docker進行自定義數據集訓練?

    今天,我將展示如何使用令人印象深刻的HailoAIHat樹莓5訓練、編譯和部署自定義模型。注意:文章內的鏈接可能需要科學上網。Hail
    的頭像 發表于 06-28 08:23 ?1240次閱讀
    完整指南:如何使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>5</b>、Hailo AI Hat、<b class='flag-5'>YOLO</b>、Docker進行自定義數據集訓練?

    Eben+RS:兩大合力引爆樹莓熱潮

    趁著RS Components攜樹莓基金會創始人Eben Upton開啟一場樹莓“中國之旅
    發表于 08-21 18:47 ?1611次閱讀

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

    經過之前對于開發板的使用,以及通過幾個愛芯官方給出的示例demo(mobilenet/yolov5開發板的部署之后,筆者也逐漸了解
    發表于 01-01 01:04

    樹莓5,Raspberry Pi 5 評測

    性能和64位操作系統,我們獲得了一個更注重速度的系統。樹莓樹莓5的性能比樹莓
    發表于 06-19 14:51

    樹莓做人臉識別

    基于云服務平臺的人臉識別1、設備樹莓2、USB攝像頭。2、要求l使用USB攝像頭抓拍(可以使用各種開源軟件,也可以自己編程)臉部照片;l使用人臉識別的云服務平臺(可選擇FACECOR
    發表于 08-07 23:19

    樹莓基礎功能設置

    樹莓基礎功能設置 目錄1、重置root密碼,樹莓開啟root2、樹莓
    發表于 03-02 09:10

    樹莓設置基本流程(

    第一步,win系統下安裝樹莓的系統到SD卡 第二步,安裝和啟動樹莓 第三步,如何設置樹莓
    發表于 11-30 11:03 ?17次下載

    樹莓3wifi配置_樹莓3開啟wifi熱點_樹莓3的wifi使用教程

    樹莓32016年2月29號正式發布了,樹莓3幾乎和樹莓
    發表于 12-08 11:47 ?3.2w次閱讀

    解答樹莓如何開啟root賬戶

    樹莓使用的linux是debian系統,所以樹莓啟用root和debian是相同的。
    發表于 10-30 10:06 ?6651次閱讀
    解答<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>如何<b class='flag-5'>開啟</b>root賬戶

    TensorFlow手勢識別樹莓開源

    電子發燒友網站提供《TensorFlow手勢識別樹莓開源.zip》資料免費下載
    發表于 11-09 09:27 ?1次下載
    TensorFlow手勢<b class='flag-5'>識別</b><b class='flag-5'>樹莓</b><b class='flag-5'>派</b>開源

    使用愛芯Pro開發板部署人體姿態估計模型

    經過之前對于開發板的使用,以及通過幾個愛芯官方給出的示例demo(mobilenet/yolov5開發板的部署之后,筆者也逐漸了解
    的頭像 發表于 01-09 09:50 ?2052次閱讀
    使用愛芯<b class='flag-5'>派</b>Pro開發板部署人體<b class='flag-5'>姿態</b><b class='flag-5'>估計</b>模型

    樹莓分類器:用樹莓識別不同型號的樹莓

    對準樹莓4,屏幕上會顯示“RaspberryPi4”;對準樹莓Zero時顯示“RaspberryPiZero”,依此類推。組裝在樹莓
    的頭像 發表于 06-13 16:39 ?418次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>分類器:用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>識別</b>不同型號的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>!

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

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