哈囉大家好,我是橘白卯咪,歡迎大家來看看我能不能撐過30天
好想出國啊~想到之前去日本的時候
努力比手畫腳、使用簡單的英文跟日文單字溝通
結果雙方認真了一番才發現,原來對方會講中文啊~~真是尷尬
但在使用github的時候,遇到問題發個issue
因為不知道對方的國籍跟使用語言,所以都會很努力用 破爛的 英文發問
一旦發現對方也會講中文,就跟對方用熟悉的語言對話了起來,沒有尷尬只有倍感親切啊
今天要介紹一個即時行為辨識系統Multi-person Real-time Action Recognition Based-on Human Skeleton
它雖然不像前幾篇介紹的這麼有名氣
不過因為作者是廣大華語圈的一份子,可以用中文問問題真的是太棒了
加上系統跟readme都很好理解,一定要介紹給想自己訓練、建立行為辨識系統的大家
(據作者介紹,這系統是一份課堂專題。別人的課堂專題這麼的完整,整個汗顏到爆啊
作業系統: ubuntu 16.04
顯示卡: NVIDIA GeForce RTX 2070
Python = 3.6
請參考第7天的文章
即時行為辨識系統Multi-person Real-time Action Recognition Based-on Human Skeleton
一樣用你習慣的方式即可~
整個過程包含從資料集取得骨骼關鍵點資料-->結合資料與行為分類標記-->萃取特徵-->訓練模型-->測試
這邊先下載作者準備好的資料集
作者的資料集中,有9種動作分類
在valid_images.txt.這個檔案裡,也可以看到對應的資料標記
在config.yaml當中,也有對應的設定
因為今天的教學是使用作者的資料集,所以使用預設的設定即可
執行
python src/s1_get_skeletons_from_training_imgs.py
執行
python src/s2_put_skeleton_txts_to_a_single_txt.py
執行
python src/s3_preprocess_features.py
執行
python src/s4_train.py
這步執行完會出現一個混淆矩陣的圖以及各行為類別的準確度報告
模型建立完成,這系統有三種測試方式,分別是輸入圖片、輸入影片跟使用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
這是使用作者提供的範例影片測試的結果
可以看到左邊呈現P2這個人各項動作的機率,p2這個人可能在揮手或跳躍
右邊畫面出現畫面中兩個人的動作,都被判斷為跳躍
這個系統對於大型肢體動作的準確度比較高,對於身體大部分被屏蔽或臉部被遮蔽的辨識效果比較不好
辨識效果可能有需要改進的地方,不過實在很感謝這位作者不厭其煩的回答我的問題
明天,我們要從頭開始,訓練自己的行為辨識模型囉~