Pythonプログラミング

Rembgで簡単に画像の背景除去!使い方と性能評価【python】

背景除去rembgの紹介記事のアイキャッチ画像 Python

今回は簡単に画像の背景除去ができるライブラリRembgの導入方法、サンプルコード、簡単な性能評価を簡単にしたのでまとめます。画像分析にて、入力画像への前処理として需要がある背景除去ですが非常に簡単にこなしてくれるライブラリです。

スポンサーリンク

背景除去ライブラリRembgの構築方法(インストール)

ここでは仮想環境を作成し、その仮想環境へRembgをインストールする方法を紹介します。
(よくある環境構築作業なので分かる方はスルーしてください。Windows向け)

手順は以下の通り。

  1. 仮想環境の構築
  2. 仮想環境を有効にする(以降の作業を仮想環境内で行うようになります)
  3. Rembgのインストール

上記手順をターミナル上で実行します(以下はすべてターミナル上のコマンド)。
パスは各自で変更してください。

①仮想環境を作る(myvenvは仮想環境名で変更可)
>> py -m venv myvenv
②仮想環境を有効にする
>> .\myvenv\Scripts\activate
③rembgのインストール
>>(myvenv) pip install rembg

③インストールを実行すると色々とインストールされます。これはRembg自体が必要とする他ライブラリもインストールされるからです。

仮想環境を無効にする場合はターミナル上で「deactivate」コマンドを実行すると仮想環境が無効になります(=仮想環境から抜けられます)。

スポンサーリンク

Rembgで画像の背景除去をするサンプルコード

入力画像(背景除去したい画像)のパスを関数に渡すことで実行できます。
入力画像はpythonファイルと同じ場所に配置してください。

from rembg import remove
from PIL import Image

# 入力画像・出力画像の指定
input_path = 'input.png'
output_path = 'output.png'

# 入力画像の読み込み
input = Image.open(input_path)
# 背景除去の処理を実施
output = remove(input)
# 出力画像を保存
output.save(output_path)

実行すると同パスに背景除去後の画像が保存されます。

rembgによる背景除去の様子
背景除去後の画像(右)の輪郭は見やすさの都合で付けてます

入力画像の拡張子はjpgでもよいですが、出力画像はjpgだとエラーになります(データ形式の関係)。

次はRembgの背景除去の性能評価についてです。

スポンサーリンク

Rembgの性能検証

上記のサンプルコードを使用して、Rembgの性能評価を簡単にしてみました。
使ううえでの参考にしてみてください。

以降の画像でよく出てくる青色の被写体は手元にあったBluetoothスピーカーです。選定理由は手元にあったからで特に意図はないです。

色々な背景色で検証

rembgによる背景除去の性能検証1

全て上手く背景除去されています。背景の色は被写体と同化でもしない限り影響はないでしょう。

被写体の模様違いで検証

次に少し背景と同化するような模様の被写体で検証。

rembgによる背景除去の性能検証2
モヤモヤ模様の布と本で検証

上手く除去できています。被写体の色が単色ではなく模様っぽいと背景として判断されるかもと思い検証しましたが、そのようなことはないようです。
(下の画像で一部影が誤認されていますが、これは被写体の模様とは関係ないでしょう)

被写体の中に被写体がある場合の検証

次は被写体の中にさらに被写体を配置した場合の検証
また入力画像内にて被写体の占めるサイズの影響も併せて検証。

rembgによる背景除去の性能検証3
同じ環境で被写体のサイズも変更

上側の画像では、布まで被写体として判断されてきれいに背景除去されています。
下側の画像では、布まで背景として判断され除去されています。

他の検証の結果も踏まえると、Rembgは画像内のある程度のサイズの色の塊を被写体として判断(≒面積がある程度大きいものを背景として判断)している可能性があります。

他rembgの検証

以下画像でも試しに検証。

rembgによる背景除去の性能検証4

上側画像では、背景なのか迷ったのか、出力画像に薄くなった領域があります。一番外と中側(本)の模様が中央の青スピーカと比較すれば似ているからでしょうか?加えて面積の影響もあるかもしれません。

下側画像では、背景の左端に違う色を入れた場合どうなるか気になり検証しました。
結果は問題なく背景除去されていますね。この場合では本ははっきり表示されていますね。

スポンサーリンク

まとめ

Rembgは簡単に導入できるうえにかなり優秀な背景除去ライブラリです。

画像内の背景や被写体の色の相性やサイズ感によって結果は変わるのでそこら辺の性能は把握したうえで使用するとより有効に活用できると思います。
特に背景の色が変更できる場合は一度検討することをおススメします。

以下関連記事。

コメント

タイトルとURLをコピーしました