Python+AI で古い写真をカラー化

Python+AI で古い写真をカラー化

こんにちは、みんな。

今日も引き続き、興味深い AI プロジェクトを皆さんと共有したいと思います。

前回は、GAN (Generative Adversarial Network) を使用して静止画像をアニメーション化する方法を紹介しました。

今日は、古い写真をカラー化する NoGAN の画像強化技術を紹介します。効果は以下のとおりです。

オリジナル画像

着色後

NoGAN は、GAN のトレーニングに最も短い時間しかかからない新しいタイプの GAN です。

今日共有したプロジェクトは GitHub でオープンソース化されました。実行してみましょう。

1. 準備

まず、git clone コマンドを使用してソースコードをダウンロードします。

 git クローンhttps://github.com/jantic/DeOldify.git

プロジェクトのルート ディレクトリに入り、Python 依存パッケージをインストールします。

 pip3 インストール-r要件.txt

コードを記述してプロジェクトを実行する前に、事前トレーニング済みのモデルをダウンロードする必要があります。このプロジェクトでは、次の 3 つのモデルが提供されます。

モデル

違いは次のとおりです。

  • ColorizeArtistic_gen.pth: 興味深いディテールと鮮やかさを備えた最高品質の画像カラー化を実現します。このモデルは、UNet のバックボーンとして resnet34 を使用し、NoGAN を介して 5 回の批評事前トレーニング/GAN サイクルで再トレーニングされます。
  • ColorizeStable_gen.pth: 横向きと縦向きで最高の結果を達成します。このモデルは、UNet のバックボーンとして resnet101 を使用し、NoGAN を介して 3 つの批評的事前トレーニング/GAN サイクルで再トレーニングされます。
  • ColorizeVideo_gen.pth: スムーズなビデオ用に最適化されており、Inception Generator/Critic Pretrained/GAN NoGAN トレーニングのみを使用します。スムーズなスピードを追求したため、前2作よりもカラー数が少なくなっています。
  • ダウンロードしたモデル ファイルをプロジェクト ルート ディレクトリの models ディレクトリに配置します。

2. コードを書く

プロジェクトのルート ディレクトリと同じディレクトリに Python ファイルを作成し、ダウンロードしたモデル ファイルを読み込むコードを記述します。

 DeOldify .deoldify .generators からgen_inference_wide をインポートします
DeOldify.deoldify.filters からMasterFilter ColorizerFilter をインポートします

# モデルファイルを指定する
learn = gen_inference_wide ( root_folder = Path ( './DeOldify' ) weights_name = 'ColorizeVideo_gen' )

# モデルをロードする
deoldfly_model = MasterFilter ( [ ColorizerFilter ( learn = learn ) ] render_factor = 10 )

root_folder はプロジェクトのルート ディレクトリを指定し、weights_name は次に写真をカラー化するために使用するモデルを指定します。

古い写真を読み取ってカラー化します。

 cv2をインポート
numpyをnp としてインポートする
PIL インポート画像から

img = cv2.imread ( './images/origin.jpg' )
画像= cv2.cvtColor (画像 cv2.COLOR_BGR2RGB )
pil_img = Image.fromarray ( img )

フィルターされた画像= deoldfly_model .filter (
pil_img pil_img render_factor = 35 post_process = True


result_img = np .asarray (フィルターされた画像)
結果画像= cv2.cvtColor (結果画像, cv2.COLOR_RGB2BGR )
cv2 .imwrite ( 'deoldify.jpg' result_img )

cv2 を使用して古い写真を読み取り、PIL.Image モジュールを使用して写真をモデル入力に必要な形式に変換し、モデルに送信して色付けし、完了したら保存します。

上記のコードはプロジェクトのソースコードから抽出したものです。ご覧のとおり、コードの実行は非常に簡単です。

<<:  液体ロボットはマーケティングの策略か、それとも自動化の未来か?

>>:  セマンティックAIとデータ管理の5つのトレンド

ブログ    
ブログ    

推薦する

人工知能の3つの主要分野とその産業応用

人工知能は、人間の知能の拡張と拡大をシミュレートするための理論、方法、技術、アプリケーション システ...

基本に立ち返る: 一歩先を行くために読むべき 5 つのデータ サイエンス論文

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

マルチモーダル生成AIの深掘り

マルチモーダル生成型人工知能 (GenAI) は、汎用人工知能の実現に向けた次の大きな進歩と言えます...

ElevenLabs、元の話し手の声と感情を維持するAI翻訳吹き替え機能を発表

AIテキスト読み上げ会社ElevenLabsは10月11日、火曜日にAI Dubbingを発表した。...

AIに置き換えられる最後のグループも失業するだろう

[[262639]]これまで、データラベラーは常に「AI に置き換えられる最初のグループ」と呼ばれて...

高齢者が松葉杖を捨てるのも夢ではない、新たなウェアラブルデバイス「スーパースーツ」をSeismicが開発

BBCによると、サイズミック社は「スーパースーツ」と呼ばれる新しいウェアラブルデバイスを開発した。こ...

クラッシュラマ2!マイクロソフトの13億パラメータphi-1.5は、単一のA100でトレーニングされ、SOTAを更新します

モデルが大きくなれば機能も増えるのでしょうか?しかし、そうではありません。最近、マイクロソフトの研究...

Google Brainの主要研究:高速微分可能ソートアルゴリズム、桁違いに高速

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

これは人工ニューラルネットワークの非常に簡単な説明です

[[419321]]導入私は機械学習についてはよく知りませんが、先月、GitHub で Go のサン...

C# アルゴリズムの選択ソートの簡単な分析

C# 選択ソート アルゴリズムとは何ですか?これはどのように達成されるのでしょうか?この紹介が C#...

Gym Anytradingに基づく強化学習の簡単な例

強化学習 (RL) は近年、アルゴリズム取引の分野で大きな注目を集めています。強化学習アルゴリズムは...

...