私たちは皆、両親や祖父母などから受け継いだ古い写真の宝庫を持っています。これらの写真は白黒であることが多いですが、時にはカラーで生き生きとさせたいこともあります。ブラウザで数回クリックするだけでこれを実現できる Web サイトは数多くあります。しかし、これらのサイトの問題は、量と品質に多くの制限があることです。 さらに、これらのサービスでは登録やサブスクリプションが必要になることが多く、非常に面倒な場合があります。 この記事では、制限や登録、サブスクリプションの煩わしさなしに、素晴らしいツール を使用して任意の数の写真をカラー化する方法を紹介します。 DeOldify には があり、それを使用するのも良いのですが、準備ができていない人にとっては少し難しく感じるかもしれません。ここでは、 より簡単な方法を説明したいと思います。 DeOldify 素晴らしい紹介 DeOldify の 環境の準備 始めるには、 または を実行しているコンピューターが必要です。 を使用している場合でも、 を利用して続行できます。 Linux macOS Windows Windows Subsystem for Linux (WSL) に必要なパッケージのリストがあります: Ubuntu sudo apt update sudo apt install python3-pip wget git ffmpeg libsm6 libxext6 別の ディストリビューションをお持ちの場合は、このリストを参照として使用できます。 Linux の場合 (残念ながら、テスト用の明確な がないため、これはおおよそのリストです): macOS macOS brew install python wget git ffmpeg libsm libxext 次のステップは、すべての作業を行うための という名前の別のフォルダーを作成することです。他の名前を選択することも、何も作成せずにこのステップを完全にスキップすることもできます。 「Sandbox」 # Optional mkdir Sandbox cd Sandbox 次に、 クローンします。 DeOldify を git clone https://github.com/jantic/DeOldify.git にはリリースやタグがないので、 ブランチで作業します。最新のマスターがあれば、いつでもすべてが機能するはずです。ただし、念のため、すべてをテストしたリビジョン番号を以下に示します。 DeOldify マスター 。よろしければ、チェックしてみてください: be725ca6c5f411c47550df951546537d7202c9bc # Optional cd DeOldify git checkout be725ca6c5f411c47550df951546537d7202c9bc cd .. その後、すべての Python 依存関係をインストールします。 pip3 install --user -r DeOldify/requirements.txt pip3 install --user -r DeOldify/requirements-colab.txt pip3 install --user -r DeOldify/requirements-dev.txt 次に、モデル用のディレクトリを作成し、モデルをダウンロードします。 mkdir -p DeOldify/models wget https://data.deepai.org/deoldify/ColorizeArtistic_gen.pth -O DeOldify/models/ColorizeArtistic_gen.pth これで完了です。環境は準備完了です。最も難しい部分はこれで終わりです。では、Python コードを少し書いてみましょう。 すべてをカラー化 私たちにとって最も興味深く便利な関数は です。 ModelImageVisualizer.plot_transformed_image() 必要なのは、それに基づいてコードを記述することだけです。 これが私の実装です: #!/usr/bin/python3 from deoldify import device from deoldify.device_id import DeviceId # choices: CPU, GPU0...GPU7 device.set(device=DeviceId.GPU0) from deoldify.visualize import * import warnings import sys import os warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?") # Play with this constant! render_factor = 35 input_dir = sys.argv[1] output_dir = sys.argv[2] if not os.path.isdir(input_dir): print("input directory is not a directory or not exist") sys.exit(1) if os.path.exists(output_dir): print("out directory is already exist") sys.exit(1) os.makedirs(output_dir) root_dir = Path(os.environ['PYTHONPATH']) colorizer = get_image_colorizer(root_folder=root_dir, artistic=True) for filename in os.listdir(input_dir): f = os.path.join(input_dir, filename) if os.path.isfile(f) and (f.endswith(".png") or f.endswith(".jpg") or f.endswith(".jpeg")): image_path = colorizer.plot_transformed_image( path=f, results_dir=Path(output_dir), render_factor=render_factor, compare=True, watermarked=False ) print("{} ready".format(image_path)) 自由にコピー、貼り付け、変更してください。 スクリプトは、最初のスクリプト引数として渡されたディレクトリからすべての 、 、および 画像を読み取り、それらをカラー化して、結果を 2 番目のスクリプト引数として渡されたディレクトリに保存します。出力ディレクトリが存在してはならないことに注意してください。スクリプトによって自動的に作成されます。私はスクリプトを ファイルに保存しましたが、必要に応じて別の場所と名前を使用することもできます。 .png .jpg .jpeg Sandbox/runner.py 試してみましょう!白黒写真を に配置し、出力ディレクトリは です。 Sandbox/photos/in Sandbox/photos/out # from Sandbox directory PYTHONPATH=./DeOldify/ python3 runner.py photos/in/ photos/out/ 環境変数 ディレクトリを参照する必要があります。 PYTHONPATH は DeOldify 結果は次のとおりです。