機械学習で背景を削除する
機械学習で背景を削除するという記事を拝見させてもらいました。自分の学習メモです。
こちらの記事を参考にさせてもらいました。
https://www.12-technology.com/2022/03/modnet-python.html
記事では、Google Colaboratoryを使っていましたが、オフラインで実行したかったので、Ubuntu上で実施しました。いろいろ初心者なので、間違ったことを言っているかもしれません。
背景を削除する手順
contentというディレクトリを作成します。
mkdir content
cd content
MODNetをダウンロードします。
git clone https://github.com/ZHKKKe/MODNet
次に、入力用と出力用と背景用のディレクトリを作成しておきます。
mkdir -p demo/image_matting/colab/input
mkdir -p demo/image_matting/colab/output
mkdir -p demo/image_matting/colab/background
そして、背景を削除したい画像を3つのディレクトリにコピーしておきます。複数の画像を用意してもよです。
cp original_image.png demo/image_matting/colab/input/
cp original_image.png demo/image_matting/colab/output/
cp original_image.png demo/image_matting/colab/bakground/
ポートレートマットを生成します。背景を見つける処理になります。
python3 -m demo.image_matting.colab.inference \
--input-path demo/image_matting/colab/input \
--output-path demo/image_matting/colab/output \
--ckpt-path ./pretrained/modnet_photographic_portrait_matting.ckpt
そして、画像化する処理です。元のblog上では、Google Colaboratory上にあった処理です。
元のコードは、こちらです。
https://github.com/kaz12tech/ai_demos/blob/main/MODNet_demo.ipynb
git clone https://github.com/y38y38/delete_haikei
そして、背景を除去して画像します。
python3 haikei/delete_haikei.py
結果、背景を除去した画像ができます。