学習モデルから任意画像の物体検出を行ったあと検出画像を動画化したい

前提

アニメ動画に対してセマンティックセグメンテーションを用いた
キャラクター画像の顔パーツ検出を行いたいと考えています。
その過程で詰まってしまったので、どなたかアドバイスをいただきたく存じます…
尚、機械学習完全素人なので、温かい目で閲覧してやってください。

できたこと

現状達成できたこととしては

  1. labelmeを用いた自前ラベルの作成。(.json)
  2. 教師画像から学習を行い、学習モデルの生成。(.pb, .h5)
  3. 学習モデルを用いて、任意画像に対する顔パーツ検出。
  4. opencvを用いて、任意のアニメ動画から画像を取得。(30fpsの動画の場合、30秒であれば900枚の画像を取得)

の4点になります。

やりたいこと

初期の考えとしては、3. が達成できたので、アニメ動画像リスト(900枚の画像)を作成し、その1枚1枚の要素に対して顔パーツの検出を行うループ処理を考えていました。以上の処理が終わり、顔パーツが検出された900枚の画像を再構成し、検出されたラベルのみが表示される動画の出力を目的としていました。

発生している問題・エラーメッセージ

900枚もの画像を含んだリストをループで処理しようとした結果、メモリエラーが発生してしまい、動画を作成するための材料の準備ができない状況になってしまいました。

試したこと

画像サイズの変更などは試したのですが、最終的に動画として見れるものにしたいので断念しました。動画に対するセグメンテーション?や、TFRecordなどの解決の手がかりは見つかったのですが、如何せん素人なのでその先の処理が分かりません。現状持っているデータ(学習済みモデル.pb, .h5)を用いて、動画に対してセグメンテーションする方法や、900枚の画像をメモリエラーを発生させずに処理できる方法などをご存じの方がいらっしゃれば、是非ともお力をお貸しください…

補足情報(FW/ツールのバージョンなど)

実行環境
・CPU:windows11
・GPU:RTX3060
・メモリ:16GB

構築環境
・CUDA 11.0
・cuDNN 8.0
・tensorflow-gpu == 2.4.0
・python 3.7

備考
・利用モデルはSegmentation models
・Jupyter notebook上での動作を想定

参考サイト
・トマトの画像をマルチクラス分類してみた【Segmentation models】
https://farml1.com/multiclass_classification/

・DeepLab v3+でオリジナルデータを学習してセマンティックセグメンテーションする
https://qiita.com/otakoma/items/2f40e583980013acb2f7

・【技術解説】DeepLabのセマンティックセグメンテーションとTouchDesignerを用いた映像制作
https://note.com/thedesignium/n/nf4245f419441

コメントを投稿

0 コメント