DeepLabCutにおける学習精度の改善
[目次] 尤度の確認 2回目の学習 -学習パラメータや学習に使用したフレームのデータセット -推論における尤度 -まとめ おわりに |
弊社で提供しているオーダーメイドPC製作サービス TEGSYSでは、お客さまのご要望に合わせ、個別の用途や使用予定のソフトウェアに合わせて、最適なスペックのPCをご提案しております。
よくご指定いただく使用ソフトウェアのひとつに、DeepLabCut (動物の行動分析のための動画学習ツール) があります。
前回の記事では、指でキーボードを押す動画を学習させてみました。
こちらの動画の通り、学習元のオリジナル (左手) 、左手、他の人の手 (左手) は意図通りにラベル付けができましたが、右手の動画では、中指の付け根にラベル付けがされていたり、ラベル付けができていないことを確認しました。
今回の記事では、上記の学習精度の改善を試みます。
尤度の確認
動画のラベル付けの推論結果として、画像のようなcsvが出力されます。それらの推論値のlikelihood (尤度) は下記の通りです。
学習結果csvの例 | likelihood_1回目 |
上記のグラフから、右手の動画では推論結果の尤度が低く、ラベルの信頼性が低いことがわかります。
原因として、学習に使ったデータが左手のみであったことが影響していると考えられるため、右手の動画を学習用のデータセットに加えることによる改善を検討しました。
外れ値の修正
DeepLabCut には Refine Outlies – 外れ値のフレームを抽出してラベルを修正し学習用のデータに追加する機能がありますので、この機能を活用して学習データを充実させます。
右手の動画を対象にして、外れ値と推定されるフレームが複数枚抜き出されます。今回の検証では19枚が抜き出されました。
それぞれのフレームを手動で確認し、位置が誤っているフレームがあれば、正しい位置に直します。
誤ラベルの例 | ラベルを直した例 |
ラベル付けの修正がおわったら、先程のUI上のMerge Dataset を押して、学習用のデータセットに加えます。
2回目の学習
その後前回の記事と同様のパラメータ、手順で2回目の学習を実施しました。
Network: resnet_50 Augumentation Method: imgaug Maximum Iterations: 50,000 |
新たに作成したモデルを用いた推論結果は下記の動画の通りです。
学習パラメータや学習に使用したフレームのデータセット
学習試行回数 | 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回目 |
まとめ
DeepLabcut は外れ値のフレームを抽出して学習用のデータに追加する機能があるため、最初に学習したモデルの精度悪かった場合でも、モデルを改善しやすい印象がありました。
2回目の学習では精度の悪化が見られましたが、基本的には学習データを増やしたり、Maximum Iterations (学習の繰り返し回数) 等のパラメータを上げたりすることにより精度が改善することを確認しています。
今回用意した動画では4回目の学習で十分なラベル付けができましたが、推論したい動画の条件の変動具合によっては、精度を向上させるためにはより多くの学習データセットの準備や学習時のパラメータの調整が必要になると考えられます。
おわりに
弊社では、AI・ディープラーニング用途向けのPCやワークステーション以外でも、お客さま個別のご要望に合わせ、最適なスペックのPCをご提案しております。
これまでのご提案実績や検証結果等のノウハウをもとにベストな提案を目指しておりますので、PC導入はお気軽にご相談ください。
関連情報:昆虫を動画撮影するための治具設計と試作事例 ※弊社オウンドメディア TEGAKARIに飛びます
DeepLearning環境における最適なGPU選びのご相談はお気軽に!
研究用・産業用PCの製作・販売サービス TEGSYS – テグシス