概要
このモデルを使用すると、画素の粗い画像の解像度を 4 倍に増やすと同時に、写真のようにリアルな細部を生成できます。このニューラル・ネットワークを支えているのは、OpenImages V4 データセットの 600,000 点の画像でトレーニングされた 敵対的生成ネットワーク (GAN) です。
この GAN は SRGAN-tensorflow GitHub リポジトリーとこのリンク先の研究論文をベースとしたものです。
モデルのメタデータ
ドメイン | アプリケーション | 業種 | フレームワーク | トレーニング・データ | 入力データの形式 |
---|---|---|---|---|---|
視覚 | 高解像度化 | 一般 | TensorFlow | OpenImages V4 | 画像 (RGB/HWC) |
ベンチマーク
Set5 | 著者の SRGAN | この SRGAN |
---|---|---|
PSNR | 29.40 | 29.56 |
SSIM | 0.85 | 0.85 |
Set14 | 著者の SRGAN | この SRGAN |
---|---|---|
PSNR | 26.02 | 26.25 |
SSIM | 0.74 | 0.72 |
BSD100 | 著者の SRGAN | この SRGAN |
---|---|---|
PSNR | 25.16 | 24.4 |
SSIM | 0.67 | 0.67 |
この実装のパフォーマンスを評価するために使用したデータセットは、Set5、Set14、BSD100 の 3 つです。 PSNR (ピーク信号対ノイズ比) と SSIM (構造的類似性指数) のメトリックを評価しましたが、上述の研究論文では 最も有益なメトリックとして MOS (平均オピニオン評点) を考察しています。本質的に、SRGAN 実装は見た目に優れた結果と引き換えに、高い PSNR スコアまたは SSIM スコアを達成します。これにより、出力される一連の画像はより鮮明で、細部がより現実的なものとなります。
注: 研究論文で取り上げられている SRGAN は ImageNet の 350,000 点のサンプルでトレーニングされていますが、この SRGAN のトレーニングに使用したのは OpenImages V4 の 600,000 点の画像です。
参考資料
- C.Ledig、L. Theis、F. Huszar、J. Caballero、A. Cunningham、A. Acosta、A. Aitken、A. Tejani、J. Totz、Z. Wang、W. Shi 共著「Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network」(ArXiv、2017 年)
- SRGAN-tensorflow (モデル・コードのソース)
- tensorflow-SRGAN
ライセンス
コンポーネント | ライセンス | リンク |
---|---|---|
モデルの GitHub リポジトリー | Apache 2.0 | LICENSE |
モデルの重み | Apache 2.0 | LICENSE |
モデルのコード (サード・パーティー) | MIT | LICENSE |
テスト・アセット | CC BY 2.0 | サンプルの README |
CC0 | サンプルの README |
このモデルのデプロイ方法
このモデルは、以下のメカニズムを使用してデプロイできます。
Docker Hub からデプロイする場合:
docker run -it -p 5000:5000 codait/max-image-resolution-enhancer
Red Hat OpenShift からデプロイする場合:
Follow the instructions for the OpenShift web console or the OpenShift Container Platform CLI in this tutorial and specify
codait/max-image-resolution-enhancer
as the image name.Kubernetes 上にデプロイする場合:
kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Image-Resolution-Enhancer/master/max-image-resolution-enhancer.yaml
ローカルにデプロイする場合: GitHub 上のモデルの README に記載されている手順に従います。
使用例
このモデルは cURL を使用してテストまたは使用できます。
cURL を使用してモデルをテストする
高解像度の出力画像を取得するためには、model/predict
エンドポイントを使用してテスト画像をロードしてください (assets/test_examples/low_resolution
フォルダー内にあるいずれかのテスト画像を使用できます)。
モデルをデプロイしたら、コマンド・ラインからモデルをテストできます。以下に例を示します。
curl -F "image=@samples/test_examples/low_resolution/food.png" -XPOST http://localhost:5000/model/predict > food_high_res.png
上記のコマンドは、低解像度の woman.png
ファイルをモデルに送信し、高解像度の出力画像をルート・ディレクトリー内の woman_high_res.png
ファイルに保存します。
理想的な入力画像は、解像度が 100×100 から 500×500 の範囲で、できればキャプチャー後の処理も派手な色も使われていない PNG ファイルです。このモデルは画素の粗い画像 (低 DPI) から細部を生成できますが、「ぼやけた」画像を修正することはできません。
左: 入力画像 (106 x 159)、右: 出力画像 (424 x 636)