ドローン開発日記~第6回勉強会開催~
ブログから記事を見つけたい場合はこちら
お久しぶりです。開発メンバーの松原です。
最近は大学時代の友人とクラフトピアで遊ぶなどをしています。コロナ禍は誰にとっても大変ですが、遠方の友達とオンラインで遊ぶようになったのはうれしいですね。
SSDの学習をさせる
さて、今週は独自データセットでSSDに学習させる枠組みを作成しました。
SSDとは、ざっくり物体の検知, 検知した物体の識別を同時にやってくれるようなAIです。私は下の動画で勉強しました。
で、学習させる手順は大体下みたいな感じですね。
1. 学習データセットを作成
2. 学習実行するPythonファイルを用意
3. 各種ライブラリインストール
4. 学習開始
学習データセット作成はVoTTで行い、学習実行Pythonファイルは下記サイトを参考にしました。
https://water2litter.net/rum/post/ai_chainercv_ssd_trial/
SSDの学習データセット
学習データはVOTTで作成しました。
最終的なフォルダ構造はこんな感じ。
ImageSetsフォルダの中はどれを学習画像, どれを評価用画像にするかというtxtファイルが入っています。こんな感じ。
大体VoTTが自動でやってくれたはず。
ライブラリインストールの注意事項
で、大事なのがライブラリインストールです。
ここでかなり沼にはまりました。GPUを利用して学習を行うのですが、GPUで計算を実施させるためのcupyというものがうまく利用できなかったのですね。
で、cupyについて以下が正しいインストール手順です。
1. cudaの10.1をPCにインストール(要再起動)1
https://developer.nvidia.com/cuda-toolkit-archive
2. 下記コマンドでインストール
pip install cupy-cuda101==6.3.0
書いてみると簡単な結論なんですが、自分で探るのはこういうのが結構大変なんですよね…
K君がぱぱっと解決してくれました!
あとはChainerCVというライブラリのインストールもはまると長いので、以下の記事を参考にしてください。
ChainerCVのインストール - 茨城エンジニアのPython開発日記
学習実施!
なんとか今回は学習実施までこぎつけました!こんな感じのコンソール画面になります。
学習画像5枚, エポック数500で20分くらいかな?resultフォルダに学習したnpzファイルが出力されます。
ちなみに推論を実施したところ、学習用画像では識別がきちんと行われていました。新しく用意した画像ではだめ…
学習画像5枚ではしっかり過学習してますね。
ちなみにデータセットは私が友人の犬を勝手にデータセットにしたので、お見せすることはできません。来週はお見せするのを持ってきます。
来週からはなにはともあれN増しですねー。個人開発でそんな大量のデータセット集められない…
日記といいつつかなり技術的な話になってしまいましたが、今回はこのあたりで。それではまた!