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つのトレンド

ブログ    
ブログ    

推薦する

スタートアップ企業の皆様、人工知能は本当に必要ですか?

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

新しいディープラーニングモデルがエッジデバイスに画像セグメンテーションをもたらす方法

[51CTO.com クイック翻訳]画像セグメンテーションは、画像内のオブジェクトの境界と領域を決定...

人工知能時代の未来の人材をどう育成するか?専門家や名門校の校長はこう言う

人工知能の時代、未来の人材をどう育成するか? 10日、2019年重慶人材大会第4回大学・高校教育発展...

...

3.15を利用して、あなたの周りの偽の人工知能を数えましょう

他のインターネットの概念と同様に、AI は人気が出ると数え切れないほどの支持者を獲得しました。彼らは...

Python は R を抜いて、データ サイエンスと機械学習プラットフォームで最も人気のある言語になるのでしょうか?

最近、kdnuggets はデータ サイエンスと機械学習言語の使用に関するアンケート調査を実施しまし...

再帰アルゴリズム: 不可解なスイッチ「ライトを引く」

[[411620]]タイトル出典:AcWing[1]。トピック「Pull the Light」とい...

中国のこの場所で:人工知能の新たな革命が起こる - 中国におけるAIの現状分析

中国はなぜ米国と同じくらい多くの人工知能研究者を育成しているにもかかわらず、機械学習などの主要分野で...

知識が求められるポストディープラーニング時代に、知識グラフをいかに効率的かつ自動的に構築するか

ナレッジグラフは何ができるのでしょうか?ナレッジグラフを自動的かつ効率的に構築するにはどうすればよい...

C++ kmp アルゴリズム テンプレート コード解釈

C++ プログラミング言語でのテンプレートの適用は、比較的複雑な適用技術です。今日は、C++ kmp...

人工知能の7つの応用シナリオ

人工知能とは、人間の行動や思考をシミュレートし、トレーニングを通じて特定の問題を解決できる機械によっ...

人間の知能と人工知能:どちらが優れているのでしょうか?

人工知能は近い将来、人間の知能を超える可能性を秘めている。テクノロジーは飛躍的に進歩しましたが、AI...

AからZまで、人工知能が世界を変える26のキーワード

今日、人工知能はもはや漠然とした研究室の技術ではなく、私たちの生活のあらゆる側面に組み込まれています...

信じてはいけないクラウドコンピューティングと人工知能に関する2つの誤解

クラウド コンピューティングによってデータ センターが消滅し、AI プロジェクトは失敗する運命にある...

Kubernetes上の機械学習プラットフォームの実践

背景これまで、音楽アルゴリズムのモデル トレーニング タスクは、物理マシン上で開発、デバッグ、スケジ...