Intelligence本記事では、Bringing-Old-Photos-Back-to-Lifeと呼ばれる機械学習手法を用いて、折れ皺などを除去し古い写真を復元する方法をご紹介します。restorationタスクを実現するディープラーニング手法です。Autoencoders(VAEs)で構成されています。この2つのVAEをトレーニングして、古い写真ときれいな写真をそれぞれ2つの潜在空間に変換します。2つの潜在空間の変換を合成画像の古い写真と、きれいな写真とのペアデータで学習します。この構成では、古い写真と合成画像とのドメインギャップが、コンパクトな潜在空間で閉じられるため、実際の古い写真にうまく一般化されるというメリットが存在します。restorationタスクの視覚的品質の点でSOTAを達成しています。Life詳細はこちらの論文をご参照ください。本記事では上記手法を用いて、任意の古い写真を復元していきます。デモ(Colaboratory)それでは、実際に動かしながら劣化した古い写真を復元していきます。ソースコードは本記事にも記載していますが、下記のGitHubでも取得可能です。Colaboratoryで開くこともできます。このデモはPythonで実装しています。Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。環境セットアップそれではセットアップしていきます。Colaboratoryを開いたら下記を設定しGPUを使用するようにしてください。初めにGithubからソースコードを取得します。33875eccf4ebcd3665cf38cc56f3a0ce563d3a9c次に依存するレポジトリをcloneします。.次にライブラリをインストールします。requirements.txt最後にライブラリをインポートします。PIL.Image以上で環境セットアップは完了です。学習済みモデルのセットアップ続いて、論文発表元が公開する学習済みモデルをセットアップしていきます。global_checkpoints.zipあわせて、予測結果を描画する関数を定義しておきます。Restorationそれでは、古い画像を復元していきます。レポジトリに含まれているテスト画像を入力してみます。--with_scratch出力結果は以下の通りです。image_restore))非常に高精度に写真の劣化部分を修正できています。続いて、Web上から取得した任意の画像を入力してみます。my_images/old_w_scratch/test_03.png先ほどと同様に、予測を実行します。image_restore))出力結果は以下の通りです。任意の画像に対してもなかなかの精度です。論文通りモデルの一般化が上手くいっていると言えそうです。まとめ本記事では、Bringing-Old-Photos-Back-to-Lifeを用いて、劣化の激しい古い写真を復元してみました。歴史的写真を復元することで新たな事実が発見できるかもしれませんね。本記事では、機械学習を動かすことにフォーカスしてご紹介しました。学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。*このブログについてホームサイトマップTeDokologyTeDokology。