需要項目的請關(guān)注、私信
1、原理介紹
1.1 Opencv
Opencv(Open Source Computer Vision Library)是一個基于開源發(fā)行的跨平臺計算機視覺庫,它實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法,已成為計算機視覺領(lǐng)域最有力的研究工具。在這里我們要區(qū)分兩個概念:圖像處理和計算機視覺的區(qū)別:圖像處理側(cè)重于“處理”圖像–如增強,還原,去噪,分割等等;而計算機視覺重點在于使用計算機來模擬人的視覺,因此模擬才是計算機視覺領(lǐng)域的最終目標。Opencv主要用來讀取視頻,以及展示視頻。
1.2 Mediapipe
Mediapipe是google的一個開源項目,可以提供開源的、跨平臺的常用機器學習(machine learning)方案。Mediapipe實際上是一個集成的機器學習視覺算法的工具庫,包含了人臉檢測、人臉關(guān)鍵點、手勢識別、頭像分割和姿態(tài)識別等各種模型??梢垣@取人體33個關(guān)鍵點的坐標。本文將利用人體的相關(guān)特征坐標進行姿態(tài)的識別。
2、實驗步驟
本次實驗主要分為兩個部分,分別為人體姿態(tài)檢測以及界面設(shè)計。
2.1 導入工具包
如圖所示,分別為進行頁面設(shè)計的PyQt5工具包,包括QTWidgets、QtCore、QtGui。QtGui包含多種基本圖形功能的類,包括但不限于:窗口集、事件處理、2D圖形、基本的圖像和界面、字體和文本類。QtCore包含核心的非GUI功能,此模塊用于處理程序中涉及到的時間、文件、目錄、數(shù)據(jù)類型、流、網(wǎng)址、MIME類型、進程或線程等對象。QtWidgets包含了一整套UI元素組件,用于建立符合系統(tǒng)風格的用戶界面。還有用于進行姿態(tài)識別的opencv與Mediapipe。
2.2 中文輸入
通過PIL工具構(gòu)建可以在圖片上進行中文打印的函數(shù)。
2.4 建立姿態(tài)位置信息庫
創(chuàng)建繪圖工具與工具自帶的位置信息庫。
讀取視頻,按幀讀取,對每幀圖像變換通道,并利用自帶的位置信息庫在圖中進行特征點位置信息檢測。
2.5 位置信息獲取
獲取位置特征信息位置坐標信息,包括左右肩、左右跨、左右膝蓋、左右眼、左右手踝、左右胳膊肘以及左右腳踝等。
獲取角度信息。
2.6 姿態(tài)識別
通過不同的角度信息以及各個位置點的特征信息進行不同動作的判斷。并對實時狀態(tài)進行繪制。
3 實驗結(jié)果與評價
本次實驗主要選取一支單人民族舞視頻,對視頻動作進行分解,識別其中的動作屬于哪一種,由于視頻中涉及多個動作,在實驗中只選擇10個典型的動作進行識別,具體的動作分類為下表所示。
其中每個動作的示例如圖所示:
這里就舉兩個例子。
具體的基于界面的操作流程加展示界面如下所示:
首先運行class_win.py文件點擊運行生成檢測界面如圖所示:
界面右上角兩個按鈕分別代表選擇視頻文件與運行檢測,首先點擊選擇視頻文件,打開文件夾選擇合適的視頻,點擊確定,再點擊運行,結(jié)果如圖所示:
畫面從左往右分別為原始視頻畫面,實時檢測結(jié)果畫面,以及信息統(tǒng)計畫面。
實際的檢測結(jié)果,以動作一和動作2為例,如圖所示:
博客主頁:https://blog.csdn.net/weixin_51141489,需要源碼或相關(guān)資料實物的友友請關(guān)注、點贊,私信吧!