本記事ではPaddleSegと呼ばれる機械学習手法を用いて、人が映る動画から背景を置換する方法を紹介します。
PaddleSegとは
PaddleSegは画像セグメンテーションの高効率開発ツールキットです。
PaddleSegは、セグメンテーションモデルの設計、モデルのトレーニング、推論速度・パフォーマンスの最適化などプロセス全体における支援を提供します。
また、約20のセグメンテーションモデルと、50を超える事前トレーニング済みモデルをサポートしています。
出典: https://github.com/PaddlePaddle/PaddleSeg |
なかなか手厚いツールキットです。PaddleSegは、Baiduが開発しているPaddlePaddleというAIフレームワークを使用しており画像セグメンテーションの他にもAIOCRなど幅広いツールキットを提供しています。
PaddleOCR等の導入手順は以下で紹介しています。ご興味があればご参照ください。
[AIOCR]PaddleOCRで日本語を文字認識する
CPUでも動作可能なPaddleOCRを使って日本語を文字認識する方法を紹介します
[使い方解説]PaddleClasで画像認識[Python]
PaddleClasで画像認識を行う手順を紹介しています
PaddleSegの導入手順
セットアップ1: conda環境構築
それでは早速、開発環境にPaddleSegをセットアップしていきます。
動作確認は下記の環境で行っています。
OS: Ubuntu 18.04.3 LTS
GPU: GeForce GTX 1080
なお、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
それでは、PaddleSegをインストールしていきます。他の機械学習環境に影響を与えないためにMinicondaの仮想環境上に構築していきます。Minicondaのインストール手順は公式ドキュメントをご参照ください。
conda環境構築手順を下記に記載します。
なお動作要件は下記の通りです。
- PaddlePaddle >= 2.0.2
- Python >= 3.7+
問題なくインストールできているか下記のコマンドを実行して確認します。
上記のようにバージョンが表示されチェックに成功すれば、paddlepaddle-gpuのインストールは完了です。
続いてPaddleSegをインストールします
上記コマンドで学習が実行させれば正常にPaddleSegがインストールされています。
セットアップ2: 学習済みモデルのダウンロード
以上でモデルのダウンロードは完了です。
背景置換(背景削除)
ここまでで準備した環境とモデルを使用して、動画の背景を削除してみます。
本記事ではフリー動画素材のこちらを使用させて頂きます。
上記の動画から背景を削除してみます。
上記の結果output
にavi形式の変換後の動画が出力されます。
こちらが背景削除の結果です。動作環境にもよりますが筆者の環境では30秒の動画を約30秒ほどで変換できました。
Githubにはリアルタイムで変換しているGifも挙げられています。
リアルタイムでも十分に動作可能だと考えられます。精度においても申し分ないのではないでしょうか?
背景置換
続いて、背景を任意の画像に入れ替えてみたいと思います。 本記事ではこちらのフリー画像を使用します。
上記コマンドの結果は以下となります。
高校球児に怒られそうですが、球場で踊る子供たちの動画を作成することができました。
環境のセットアップさえ完了してしまえばコマンド一つでこのような動画が作成できてしまいます。
またPaddleSegは学習用のコードも公開されているため学習データを用意しオリジナルのモデルをトレーニングすることも可能です。
まとめ
本記事では、PaddleSegで人物が映る動画から背景を削除する方法を紹介しました。
近年リモートワークが増えてきておりリモート会議など使う場面も多い技術ですね。
こういった技術を実際に動かしてみると、理解が深まって知的好奇心も刺激されます。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
参考文献
1. 論文 - PaddleSeg: A High-Efficient Development Toolkit for Image Segmentation
0 件のコメント :
コメントを投稿