iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
0
AI & Data

欸你在幹嘛?跟一眼瞬間就懂你的行為辨識技術初次見面系列 第 11

[DAY11]github尋神之路05--基於人體骨架的多人即時行為辨識系統

  • 分享至 

  • xImage
  •  

哈囉大家好,我是橘白卯咪,歡迎大家來看看我能不能撐過30天

好想出國啊~想到之前去日本的時候
努力比手畫腳、使用簡單的英文跟日文單字溝通
結果雙方認真了一番才發現,原來對方會講中文啊~~真是尷尬/images/emoticon/emoticon04.gif
但在使用github的時候,遇到問題發個issue
因為不知道對方的國籍跟使用語言,所以都會很努力用 破爛的 英文發問
一旦發現對方也會講中文,就跟對方用熟悉的語言對話了起來,沒有尷尬只有倍感親切啊/images/emoticon/emoticon34.gif

今天要介紹一個即時行為辨識系統Multi-person Real-time Action Recognition Based-on Human Skeleton
它雖然不像前幾篇介紹的這麼有名氣
不過因為作者是廣大華語圈的一份子,可以用中文問問題真的是太棒了
加上系統跟readme都很好理解,一定要介紹給想自己訓練、建立行為辨識系統的大家
(據作者介紹,這系統是一份課堂專題。別人的課堂專題這麼的完整,整個汗顏到爆啊/images/emoticon/emoticon16.gif

0.安裝環境

作業系統: ubuntu 16.04
顯示卡: NVIDIA GeForce RTX 2070
Python = 3.6

1.安裝tf-pose-estimation

請參考第7天的文章

2.取得即時行為辨識系統

即時行為辨識系統Multi-person Real-time Action Recognition Based-on Human Skeleton
一樣用你習慣的方式即可~

3.下載資料集

整個過程包含從資料集取得骨骼關鍵點資料-->結合資料與行為分類標記-->萃取特徵-->訓練模型-->測試
這邊先下載作者準備好的資料集
作者的資料集中,有9種動作分類
https://ithelp.ithome.com.tw/upload/images/20200911/20129150oszQTkRRP5.jpg
在valid_images.txt.這個檔案裡,也可以看到對應的資料標記
在config.yaml當中,也有對應的設定
因為今天的教學是使用作者的資料集,所以使用預設的設定即可

4.從資料集取得骨骼關鍵點資料

執行

python src/s1_get_skeletons_from_training_imgs.py

5.結合資料與行為分類標記

執行

python src/s2_put_skeleton_txts_to_a_single_txt.py

6.萃取特徵

執行

python src/s3_preprocess_features.py

7.訓練模型

執行

python src/s4_train.py

這步執行完會出現一個混淆矩陣的圖以及各行為類別的準確度報告

8.測試

模型建立完成,這系統有三種測試方式,分別是輸入圖片、輸入影片跟使用webcam,作者在data_test當中也有準備好的範例影片與圖片

輸入圖片

python src/s5_test.py \
    --model_path model/trained_classifier.pickle \
    --data_type folder \
    --data_path data_test/圖片所在資料夾/ \
    --output_folder output

其中data_path就是欲測試圖片放置的路徑,output就是結果儲存的地方

輸入影片

python src/s5_test.py \
    --model_path model/trained_classifier.pickle \
    --data_type video \
    --data_path data_test/要測試的影片.avi \
    --output_folder output

使用webcam

python src/s5_test.py \
    --model_path model/trained_classifier.pickle \
    --data_type webcam \
    --data_path 0 \
    --output_folder output

9.結果

這是使用作者提供的範例影片測試的結果
https://ithelp.ithome.com.tw/upload/images/20200911/20129150DqMivDAq9s.jpg
可以看到左邊呈現P2這個人各項動作的機率,p2這個人可能在揮手或跳躍
右邊畫面出現畫面中兩個人的動作,都被判斷為跳躍

這個系統對於大型肢體動作的準確度比較高,對於身體大部分被屏蔽或臉部被遮蔽的辨識效果比較不好
辨識效果可能有需要改進的地方,不過實在很感謝這位作者不厭其煩的回答我的問題/images/emoticon/emoticon02.gif

明天,我們要從頭開始,訓練自己的行為辨識模型囉~


上一篇
[DAY10]github尋神之路04—openvino smart classroom
下一篇
[DAY12]想建你!建立一個行為辨識模型之前要想清楚的事
系列文
欸你在幹嘛?跟一眼瞬間就懂你的行為辨識技術初次見面30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言