AIアート制作では、思い通りの画像が作れないこともあります。全体が完璧に仕上がることは少ないでしょう。画像から上手に描けている部分だけを利用して、複数の画像を切り貼りする画像編集する方法があります。
そうした画像編集に欠かせない背景の除去ですが、手動で行うと手間がかかります。そこで、「Rembg」というPythonライブラリを使えば簡単に背景を除去できるのです。しかも、初心者でも簡単に使えるということで、注目を集めています。
この記事では、「Rembg」を使って画像から背景を除去する方法を紹介します。特に、初心者でも簡単に扱えるStable Diffusion Web UI「AUTOMATIC1111」を使った方法を中心に解説します。さらに、Rembgの概要やパラメータの調整方法、注意点なども説明します。
Stable Diffusionで人物の画像がよくできたときに、同じ画像を使って異なるシーンを作りたいことはありませんか。背景を除去した画像があれば、img2imgなどを使って新たな画像を生成することも可能です。
この記事を読むと、以下のような事がわかります。
- 初心者でも簡単に画像から背景を除去する方法がわかる
- 画像編集の手間を大幅に減らせる
- Rembgの概要やパラメータの調整方法がわかる
- より高品質な画像編集ができる
簡単に画像から背景を除去する方法が知りたい人は、ぜひこの記事を読んでみてください。
透過画像とは?
背景が透明になっている画像のことを指します。
背景が透明になっているので、他の画像を下のレイヤーに重ねて、背景が重なり合うことなく自然な合成ができますよ。
この例では、水色の背景に、人物の透過画像を重ねました。
※画像をクリックすると、オリジナルサイズで画像を確認できます。
透過画像の活用
このような透過画像は、Webデザインやグラフィックデザイン、映像制作などの分野でよく使われています。
具体的には、Webページの背景画像や、ロゴやアイコンなどのグラフィック素材などですね。
動画やスライドの制作にも透過画像がよく利用されていて、画像編集ソフトにも搭載される機能です。
趣味のAIアート制作だけでなく、仕事でもよく使われる画像なんです。
さまざまな作品に活用でき、表現の幅を広げることができるでしょう。
背景除去の概要説明
透過画像は、人物写真の背景を透明にしたい場合などに背景を除去して作成します。
一般的に、背景除去は画像編集ソフトで手動で行われますが、RembgというPythonライブラリを使うと自動的に背景を除去できます。
Rembgは、画像内の背景と被写体を自動で判別し、背景を除去する機能を持っており、除去された画像は透明な背景になっているため、必要に応じて色や背景画像を変更できます。
ただし、精度や除去の範囲によっては、手動での細かな修正が必要になる場合もあります。
Rembgでの背景除去例
早速、Rembgの実例をご覧いただきます。
以下は、背景消去の処理前後の比較です。
背景を除去した透過画像は、このように変わります。
※画像をクリックすると、オリジナルサイズで画像を確認できます。
いかがでしょうか、スマホで見る画像やウェブサイトに掲載する画像なら、これで十分なことが多いです。
多少、細部に背景が残っている部分もあります。
それでも、残っている部分と近い色合いの背景を付けると、自然に見えることが多いです。
例えば、上記の画像なら山や森などの風景を背景に追加するなら、色彩が近いので細部にこだわらなくても自然な感じに仕上がるでしょう。
背景を替えて、新しい画像が作れるので、作りたい画像のイメージに合わせやすくなります。
また、背景を除去して、img2imgで新たな画像を生成するのに応用できます。
人物の画像がよくできたときに、元画像から画像のバリエーションを増やす方法として使えますね。
Rembgの背景除去が苦手なところ
細い線で囲まれた髪の毛の部分、コントラストの差が少ないスカートの部分では、やや切り抜きの精度が低くなります。
繊細な画像は、最初から背景と人物を分けて作成して、後から画像を合成する方がイメージに近くなります。
人物の画像を作成するときに、背景をグリーンスクリーンにすると切り抜きやすいですね。
Rembgの紹介
Rembgは、AUTOMATIC1111から利用するとプログラミング無しで背景除去が行なえます。
有料のフォトレタッチソフトの被写体選択機能と同等の精度で画像を切り抜ける(背景除去できる)のが魅力です。
Pythonプログラミングの経験がある方には、OpenCVと言う画像処理ライブラリの方が馴染みがあるでしょう。
これは画像処理やコンピュータビジョンのためのライブラリで、様々な画像処理の機能を持ち、背景除去においても多くの機能があります。
RembgとOpenCVは、両方とも背景除去において有用なツールであり、それぞれに以下のような特徴があります。
Rembg
初心者でも迷わず簡単操作で背景除去できます。
難しいパラメータ設定をしなくても画像内の背景を自動で判別し、フォトレタッチソフト並の高精度で透過画像に変換します。
AUTOMATIC1111では、以下のGithubのRembgを使用します。
OpenCV
手動での背景除去や、背景差分法、移動物体検知など、様々な手法があります。
また、高度で多彩な機能を備えていますが、パラメータを設定しないと使えません。
OpenCVには、Web UIが用意されていないので、Pythonプログラムを作成して利用します。
Pythonプログラミングの経験がないと使えないのがデメリットです。
初心者には、各パラメータの設定値をどう設定すればよいのか悩むと思います。
AIアート制作には、Rembgがおすすめ
RembgとOpenCVは、それぞれに特長があり、目的や用途に応じて使い分けることが重要です。
OpenCVを利用するにはプログラミングスキルが必要ですが、高度な画像編集機能を備えています。
しかし、AUTOMATIC1111を使ってAIアート制作するなら、背景除去精度が高く、操作が簡単なRembgがおすすめです。
Rembgのインストール方法
AUTOMATIC1111のページからRembgのインストールを行います。
予め、Stable Diffusionの実行環境をセットアップしましょう。
以下のブログでは、M1 MacにAUTOMATIC1111をインストールして使う方法を紹介しています。
まだ、インストールされていない方は、この記事をご参考になります。
Stable Diffusionのインストールが終わりましたら、以下のステップで画像除去に使用するRembgのインストールを進められます。
Rembgのインストール手順
インストール作業は、次の2つのステップなのでとても簡単です。
すべて画像付きでインストール作業をご説明します。
パソコンの環境によっては、日本語表示になっているかもしれません。
AUTOMATIC1111のページでインストール作業を行います。
まず、「Extensions」(拡張機能)タブを開きます。
「Available」タブを開きます。
「Load from:」ボタンをクリックします。
リストから「stable-diffusion-webui-rembg」を見つけて、install」ボタンをクリックします。
ここでは、AUTOMATIC1111からRembgを利用できるようにします。
まず、「Extensions」(拡張機能)タブの「Installed」タブを開きます。
「Installed」タブにある「Apply and restart UI」ボタンをクリックします。
パソコンのスペックなどにもよりますが、5秒程度でUIが再起動します。
再起動の状況は、ターミナルアプリ上で確認できます。
最後に、ブラウザでAUTOMATIC1111のページを再読み込みします。
以上で、Rembgのインストールは、たったこれだけで完了です。
Rembgの使い方
ここでは、画像から背景を除去する方法を解説します。
AUTOMATIC1111を使った作業手順は、以下の通りです。
「Single Image」タブを開きます。
背景除去したい画像は、「ここに画像をドロップ -または- クリックしてアップロード」で読み込ませます。
※このタブからは、1つの画像ファイルのみ読み込ませることが可能です。複数の画像を読み込ませる方法は、後ほど解説します。
Rembgで利用できるモデルが複数あり、「Remove background」プルダウンメニューから使用したいモデルを選択します。
ここでは「u2net」を選択しますが、目的によって以下のモデルを使い分けることができます。
モデル | 特徴 | 人物 | モノ |
None | 背景除去しないとき | ||
u2net | 一般的なユースケース向けのモデル | ||
u2netp | u2net モデルの軽量バージョンのモデル | ||
u2net_human_seg | ヒューマン・セグメンテーションのモデル 人物の切り抜き用 | ||
u2net_cloth_seg | 人物のポートレートから布を抽出するモデル 服を上半身、下半身、全身の 3 つに分解 | ||
silueta | u2net と同じ サイズが 43Mb に縮小 |
基本的には背景除去を行いますが、画像の中で残したい対象(抽出したい人物やモノ)によって、モデルの使い分けが可能です。
「Generate」ボタンをクリックします。
処理が終わると、右側に背景が除去されたサムネイル画像が表示されます。
サムネイル画像をクリックすると、大きな画像表示に変化します。
また、処理後の画像は「outputs」ディレクトの「extras-images」に保存されます。
背景除去の操作は、これだけなのでとっても簡単です。
画像を生成するよりも、ずっと処理時間が短く、512 x 512 の画像なら1つの画像に5秒程度です。
まとめて複数の画像を背景除去
AIアートは、パソコンで大量に生成できるため、背景を除去したい画像も多くなりがちです。
10ファイル程度なら、それほど大変な作業ではありません。
AIアート制作では、一日に数百から数千の画像を作ることも、それほど大変ではありません。
なので、どうしても処理対象の画像ファイル数が多くなりでしょう。
Rembgなら、まとめて複数の画像を背景除去できます。
複数画像をバッチ処理
10ファイル程度までの画像を一括処理するときに「Batch Process」タブから作業します。
画像ファイルを読み込ませたら、「Generate」ボタンをクリックします。
ただし、大量の画像ファイルをドロップしたり、選択したりするに手間がかかります。
フォルダ内の画像をバッチ処理
大量に処理する場合、フォルダに処理対象の画像ファイルをまとめます。
そのフォルダのディレクトリパスを、以下の「Input directory」に指定します。
処理結果は「Output directory」に指定したディレクトリパスへ出力されます。
2つのディレクトリパスを指定したら、「Generate」ボタンをクリックします。
この方法なら処理前後で画像ファイルを手作業で仕分けずに済みます。
Rembgのオプション
Rembgには、「Return mask」と「Alpha matting」の2つのオプションがあります。
AIアート制作に馴れてきて、よりクリエイティビティを高める手法として、これらのオプションを使うケースがあります。
フォトレタッチソフトよりも手軽に扱えます。
マスク画像を抽出する「Return mask」
「マスク画像」とは、画像処理の分野で使われる技術の1つで、画像内の特定の領域を抽出するために使われます。
例えば、顔認識技術では、顔の部分だけを抽出して処理するのに使われます。
マスク画像は、機械学習やコンピュータビジョンの分野でよく使われる重要な技術の一つです。
Rembgでマスク画像を作る
Rembgでマスク画像を作るのは、透過画像を作るのと基本的に同じです。
ただ、処理前に以下の「Return mask」にチェックを付けて、「Generate」ボタンをクリックするだけです。
処理結果として、以下のマスク画像が出力されます。
比較として、元画像、マスク画像、透過画像を掲載します。
※画像をクリックすると、オリジナルサイズで画像を確認できます。
中央のマスク画像は、白い部分が背景除去後の画像に表示される部分です。黒い部分はマスクされて背景として除去される部分です。
マスク画像を使って、透過画像(背景除去後の画像)が作られます。
フォトレタッチソフトやOpenCVを使って、マスク画像画像を作るよりも圧倒的に簡単です。
背景除去を微調整する「Alpha matting」
透過画像の生成には、画像内の特定の領域を正確に抽出し、背景と分離します。
このときにパラメータを設定して、思い通りに画像を分離したいときがあります。
そんなときに、RembgのAlpha mattingオプションを使います。
このオプションでは、透過画像を生成するときの背景と抽出領域を分離の調整に使えます。
この機能を利用するには、以下のAlpha matting」にチェックを付けます。
そうすると、以下のような3つの設定項目が表示されます。
Rembgでは、この3つの設定項目で、以下のパラメータで調整できます。
パラメータ | デフォルト | 解説 |
Erode size | 10 | 人物やモノの輪郭部分を収縮します |
Foreground threshold | 240 | 前景領域・抽出領域(人物やモノ)を定義します |
Background threshold | 10 | 背景領域を定義します |
これらのパラメータは、モデルと組み合わせて設定することが可能です。
パラメータの効果
パラメータの効果は、以下の通りです。
中央のオレンジ色の部分は、デフォルト値です。
基本的にRembgのデフォルト値でも、フォトレタッチソフトのようにキレイに透過画像を作れます。
Erode sizeの効果を比較
もっと精度が高く、背景除去できないか試してみます。
例えば、髪の毛の間の背景除去がうまく行かないときには、Erode sizeを10と30で比較です。
背景はグレーにしています。
ここでは、Foreground thresholdとBackground thresholdは、デフォルト値のままで変更していません。
※画像をクリックすると、オリジナルサイズで画像を確認できます。
Erode sizeの値は大きくなると、より細かく輪郭を抽出するようになります。
そのため、10のときと比べて30の方が、輪郭部分を収縮しており、髪の毛の間の背景も除去されます。
しかし、輪郭のシャープさが低下します。
AIアートの絵作りにこだわりたくなったら、パラメータを調整してみると良いでしょう。
まとめ
AIアートの編集において、透過画像を作成することが有効であることを説明しました。そして、透過画像の作成方法、マスク画像作成、調整すべきパラメータについても実例を交えて解説しました。
Stable DifffusionとRembgを使えば、高速で正確な透過画像が作れるようになります。初心者にとっても扱いやすく、時間を節約できるというメリットがあります。
また、透過画像を作成することで、AIアートの編集において、背景の変更や画像合成など、様々なアレンジが可能になります。初心者でも、このテクニックをうまく応用すると、AIアートの編集がより手軽かつクオリティの高いものになでしょう。
例えば、失敗画像の中から、人物、モノや服などのパーツを再利用できるようになります。
グラフィックソフトを併用すると、パーツを組み合わせて新たな画像を作ることも簡単ですよ。
こうしたときに、一番使われているソフトは「CLIP STUDIO PAINT」なんです。
もし興味がありましたら、以下のリンクから詳しい情報をチェックしてみて下さい。
また、AIアートから作ったパーツは、絵のスタイル、色合い、着彩など異なることも考えられます。
CLIP STUDIO PAINTで、パーツを組み合わせてより自然な絵作りをするために、次のような本も参考になります。
プロ絵師の技を完全マスター 真・キャラ塗り上達術 完全版 CLIP STUDIO PAINT PRO/EX/iPad 対応 |
こちらも合わせてチェックしてみて下さい。
透過画像を活用して、AIアートを楽しんでみてはいかがでしょうか。