技術情報
弊社では、お客さまのご要望に合わせ、個別の用途や使用予定のソフトウェアに合わせて、最適なPCソリューションをご提案しております。
理工学・医学・生物学・心理学など様々な分野のお客様よりご指定いただく機会の多いソフトウェアのひとつに、DeepLabCut (動物の行動分析のための動画学習ツール)があります。
このツールは学習用のサンプル動画としてネズミの動画が提供されており、実際に学習を試すことができます。
もちろん、ネズミ以外の幅広い生物に対して、機械学習による行動・姿勢の分析ができます。
本記事では、前回記事「DeepLabCutにタイピング動画を学習させてみた」をベースに、同ツールにおける学習精度の改善を検証しました。
DeepLabCut
動物の行動を分析するためのオープンソースのディープラーニングツール。動画から動物の特定の身体部位を識別しマーカーレスでの追跡が可能で、精度の高い動きの分析を提供する。
こちらの動画の通り、学習元のオリジナル (左手) 、左手、他の人の手 (左手) は意図通りにラベル付けができましたが、右手の動画では、中指の付け根にラベル付けがされていたり、ラベル付けができていないことを確認しました。
今回の記事では、上記の学習精度の改善を試みます。
動画のラベル付けの推論結果として、画像のようなcsvが出力されます。それらの推論値のlikelihood (尤度) は下記の通りです。
学習結果csvの例
likelihood_1回目
上記のグラフから、右手の動画では推論結果の尤度が低く、ラベルの信頼性が低いことがわかります。
原因として、学習に使ったデータが左手のみであったことが影響していると考えられるため、右手の動画を学習用のデータセットに加えることによる改善を検討しました。
DeepLabCut には Refine Outlies – 外れ値のフレームを抽出してラベルを修正し学習用のデータに追加する機能がありますので、この機能を活用して学習データを充実させます。
右手の動画を対象にして、外れ値と推定されるフレームが複数枚抜き出されます。今回の検証では19枚が抜き出されました。
それぞれのフレームを手動で確認し、位置が誤っているフレームがあれば、正しい位置に直します。
誤ラベルの例
ラベルを直した例
ラベル付けの修正がおわったら、先程のUI上のMerge Dataset を押して、学習用のデータセットに加えます。
その後前回の記事と同様のパラメータ、手順で2回目の学習を実施しました。
Network: resnet_50
Augumentation Method: imgaug
Maximum Iterations: 50,000
新たに作成したモデルを用いた推論結果は下記の動画の通りです。
残念なことに「2回目 右手の動画」のラベル付けには改善が見られず、「他の人の手」の動画の精度の悪化が確認されました。そのため、引き続きモデルの改善を行っています。合計で4回の学習を行い、それぞれ以下のような結果になりました。
学習パラメータや学習に使用したフレームのデータセット
学習試行回数 | Maximum Iterations | 元の動画(左手) | 右手(外れ値①) | 他の人の手(外れ値) | 右手(外れ値②) |
---|---|---|---|---|---|
1回目 | 50,000 | 〇 | |||
「右手」の推論精度が悪かった。 |
学習試行回数 | Maximum Iterations | 元の動画(左手) | 右手(外れ値①) | 他の人の手(外れ値) | 右手(外れ値②) |
---|---|---|---|---|---|
2回目 | 50,000 | 〇 | 〇 | ||
1回目の学習で「右手」の精度が低かったため「右手」の外れ値を学習データに加えた。 しかし、「右手」の推論精度が改善せず、「他の人の手」の推論精度も悪化した。 |
学習試行回数 | Maximum Iterations | 元の動画(左手) | 右手(外れ値①) | 他の人の手(外れ値) | 右手(外れ値②) |
---|---|---|---|---|---|
3回目 | 200,000 | 〇 | 〇 | 〇 | |
2回目の結果を踏まえ、「他の人の手」の外れ値も学習データに加えた。 また、精度を向上させるため3回目からはMaximu Iterations のパラメータを上げた。 「他の人の手」の改善は見られたものの、「右手」の精度は改善しなかった。 |
学習試行回数 | Maximum Iterations | 元の動画(左手) | 右手(外れ値①) | 他の人の手(外れ値) | 右手(外れ値②) |
---|---|---|---|---|---|
4回目 | 200,000 | 〇 | 〇 | 〇 | 〇 |
3回目で「右手」の精度が低かったため、「右手」の外れ値を学習データに加えた。 すべての動画で十分推論できる精度のモデルが用意できた。 |
推論における尤度
1回目~4回目それぞれの推論における尤度 (likelihood) は下記の通りです。
2回目の他の人の手や1~3回目における右手等、推論の精度が悪い場合にはlikelihood の値も低く、モデルの改善に応じてlikelihood の値が上昇する様子が確認できます。
なお、4回目の学習では「左手」の指の付け根のlikelihoodが若干低下しています。
4回目に用いている学習データセットは、「元の動画」「右手(外れ値2回分)」「他の人の手」であり、「左手」の動画のフレームは学習に用いていないため、若干他の条件に最適化が傾いているものと考えられます。
点のラベル付の尤度 (likelihood) 学習1回目
点のラベル付の尤度 (likelihood) 学習2回目
点のラベル付の尤度 (likelihood) 学習3回目
点のラベル付の尤度 (likelihood) 学習4回目