アプリで使用する画像を前処理する方法について記述します。 スクリプトで用意してある前処理は以下のとおりです。
いずれの前処理も予めスクリプトの環境構築を行っておく必要があります。
前処理を行うためにはスクリプトを実行する環境を構築する必要があります。 スクリプトはPythonで書かれているため、Python の実行環境が必要です。予め Python の実行環境をセットアップしておいてください。 .tool-versionsに推奨の Python バージョンが記載されています。
Python の実行環境がセットアップできたら、このリポジトリをクローンしてスクリプトを配置しているディレクトリへ移動します。
$ git clone git@github.com:TenTakano/CharLab.git
$ cd CharLab/pre_process以下のコマンドで必要なライブラリをインストールします。
$ python -m pip install poetry --user
$ poetry install既に背景除去済みの画像がある場合、背景除去が不要な場合はこの手順は不要です。
背景除去が必要な場合は、以下の手順に従ってスクリプトを実行してください。スクリプトの実行には Python 環境が必要です。推奨 Python バージョンについては.tool-versionsをご確認ください。
背景除去は機械学習モデルを利用して行います。そのため、出力結果が完璧でない場合や、再実行により結果が変わる可能性があります。より良い結果を得るためには、以下の条件を満たす画像の使用が望ましいです。
- 背景が単色、単純な模様、またはキャラクターよりもぼやけているもの
- キャラクターの輪郭がはっきりしており、背景とのコントラストが高いもの
- キャラクターが画像内で大きく写っているもの
背景除去は以下のコマンドで実行できます。
$ poetry run python ./extract.py {画像ファイルまたはディレクトリのパス} {出力先ディレクトリのパス}たとえば、/path/to/input にある画像を背景除去し、結果を /path/to/output に出力する場合は、次のように実行します。
$ poetry run python ./extract.py /path/to/input /path/to/output入力パスと出力パスには、各環境に合わせた適切なパスを指定してください。
入力パスにはファイルまたはディレクトリを指定できます。ディレクトリを指定した場合、対象はディレクトリ内のすべての画像となり、ディレクトリ構造を反映して出力されます。ファイルを指定した場合は、単一の画像が処理され、出力は指定されたディレクトリの直下に保存されます。
出力先ディレクトリが存在しない場合は自動的に作成されます。既にディレクトリが存在し、かつファイルがある場合や、指定パスがファイルの場合は警告が表示され、続行するか確認が求められます。続行後、同名のファイルがある場合は上書きされます。
アプリでは背景を透明で描画するため、画像のトリミングを行わない場合、画像の周囲に余白が残るためウィジェットのサイズが見た目よりも大きくなります。 トリミングを行うことで、画像の周囲の余白を削除し、ウィジェットのサイズを適切に調整できます。 アプリの使用前にトリミングを行うことを強く推奨します。
画像のトリミングは以下のコマンドで実行できます。
$ poetry run python ./trim.py {画像ファイルまたはディレクトリのパス} {出力先ディレクトリのパス}たとえば、/path/to/input にある画像をトリミングし、結果を /path/to/output に出力する場合は、次のように実行します。
$ poetry run python ./trim.py /path/to/input /path/to/output入力パスと出力パスの指定方法は、画像背景の除去と同様です。