前回、tf-poseを使って骨格検出をしてみましたが、動きはするもののあまり精度が良くありませんでした。
先に実戦しておられるこちらのブログで用いられている画像と同じ物を使ってみましたが・・・。
フリー素材ぱくたそ様のこちらの画像↓
sudo python3 run.py --image=./150415022548_TP_V.jpg
僕の実際の環境ではこんな状態になってしまいます。
おかしぃなあ、同じtf-openposeを使っているはずなのに・・・
他にも、
ん〜、どうも様子がおかしい・・・
ということで、検出用のmodelを変更してみることにしました。
modelの指定は
cmu / mobilenet_thin / mobilenet_v2_large / mobilenet_v2_small
から選択出来るそうです。
では、実験です。
sudo python3 run.py --image=./150415022548_TP_V.jpg --model=mobilenet_thin
↓
あれ?よけいに精度が悪くなってます。
sudo python3 run.py --image=./150415022548_TP_V.jpg --model=mobilenet_v2_large
↓
うーん、これなら最初の方が良かったかもしれません。
sudo python3 run.py --image=./150415022548_TP_V.jpg --model=mobilenet_v2_small
↓
あー、悪くなってる・・・。何故か黒板にまで反応が・・・
実は女性モデルが苦手なのか?
なんてことは無いですよね。
えーっと・・・、ここでは不要なムスコの判定をしてくれているようですが、どうやら全体的に必用な下半身の判定が出来ていない様子です。
ダメモトで他の画像を試してみたところ、
おお!?
こちらはすごくうまくいっています。
これは・・・、ひょっとして?
と、少し思い立つものがあり、最初の画像を試してみましたところ、
ほほう!
なるほど!
さらに、
これはバッチリ!
ここまですると見え辛い・・・
お気付きでしょうか?
実は元の画像のサイズを小さくしていました。
フリー素材提供先の画像をそのまま引っ張ってきていたので画像が大き過ぎて判定が難しくなっていたようです。
なんという失態・・・
前回記事で判定がうまくいかないのは服装のせいだとしていた画像もカンペキです。
精度いいですね。
そもそも、run.pyプログラム自体にresizeオプションがありました。
sudo python3 run.py --image=./332TSURUTAMA20211_TP_V.jpg --resize=432x368
とすると、大きな画像もそのサイズにしてくれるようです。
ということで、精度の悪さは使う人の問題だっただわけで、tf-openpose自体はすごい便利です!
VPS上でも問題無く動作します。
※但し遅いので(画像1枚で数秒かかる)、動画の検出には向きません
今回は以上です。