ラベル 機械学習 の投稿を表示しています。 すべての投稿を表示
ラベル 機械学習 の投稿を表示しています。 すべての投稿を表示

2017年9月2日土曜日

Windows10 で白黒写真をカラー化する方法

How to colorize monotone photos on Windows10

過去のブログ 機械学習で白黒写真をカラー化する方法 では、Linux 用機械学習アプリケーションを使って白黒写真をカラー化しました。
このアプリケーションに必要なTourchフレームワークがMac OS と一部のLinuxディストリビューションしかサポートしていなかったため 当時はUbuntu Linux を使いましたが、Windows Subsystem for Linux でも使えたのでその方法をまとめました。
blog.fujiu.jp Windows10 で白黒写真をカラー化する方法


環境

  • Windows 10 Creators Update


Windows Subsystem for Linux をセットアップする

Windows Subsystem for Linux は初期状態では利用できないので次の手順でセットアップします。
コントロールパネル - 更新とセキュリティ - 開発者向け
を開いて開発者モードに設定します。

コントロールパネル - アプリと機能 - プログラムと機能 - Windowsの機能の有効かまたは無効化
を開いて
Windows Subsystem for Linux (Beta) にチェックを入れてOKをクリックしてWindowsを再起動するとインストールされます。

Windows Subsystem for Linux はスタートメニューに登録されません。(スタートメニューに Bash on Ubuntu on Windows が登録されることがあるようです)
コマンドプロンプトかPowerShellのコンソールから bash と入力すると利用できます。


カラー化アプリケーションをインストールする

Windows Subsystem for Linux の bash は初期状態ではツール類が不足していました。
bash に次のコマンドを入力して インストールに必要と思われるツール類をインストールしました。


bashに次のコマンドを入力してTorchフレームワークをインストールします。
インストール中はインターネットへの接続が必要でした。

このインストールは数時間を要し、途中で何度かルートユーザーのパスワードの入力が必要でした。

インストールが終わると
Do you want to automatically prepend the Torch install location to PATH and LD_LIBRARY_PATH
と表示されるので yes と入力します。
これで .bashrc にexportコマンドが追記されるので次のコマンドを実行して環境変数を更新します。


bashに次のコマンドを入力してLua用パッケージをインストールします。


bashに次のコマンドを入力してホームディレクトリーに siggraph2016_colorization をインストールします。


これでインストールは終わりです。


白黒写真をカラー化する

カラー化したい白黒の画像はpngフォーマットだと「Wrong number of input channels!」というエラーが起きることがあるのでjpgフォーマットをお勧めします
bashからconvertコマンドを使うと画像ファイルをjpgフォーマットに変換できます。

また、画像サイズが横512×縦512ピクセルを超えると処理が遅いとのことです。
縦横とも512ピクセル以内なら1秒以内に終わります。

白黒画像をホームディレクトリに
monotoon.jpg
というファイル名で置いた場合、次のようなコマンドを実行すると result.png というファイル名でカラー化されます。


こんな画像を処理したら

こうなりました。

元の画像はこちらです。

今回はセピア調になってしまいましたが、昔の白黒写真をカラー化すると面白い結果になります。

GATAG|フリー画像・写真素材集 4.0 http://free-photos.gatag.net/tag/%E6%98%AD%E5%92%8C より

関連ブログ

機械学習で白黒写真をカラー化する方法
Vsiaul Studio Code のターミナルを Bash に設定する方法
Windows や Linux で COBOL のプログラミングをする方法
WindowsでUnix用GUIツールを実行する方法

2016年5月28日土曜日

[Machine Learning] 機械学習で白黒写真をカラー化する方法

How to color monotone photo with the machine learning

ディープラーニング アプリケーション「Automatic Colorization of Grayscale Images」
https://github.com/satoshiiizuka/siggraph2016_colorization
を使って白黒写真をカラー写真にしてみました。
その手順をまとめました。


環境

  • Windows 10のVirtualBoxにUbuntu Linux 15.10をインストールした


Linux OSを用意する

Cygwinへのインストールを試みましたがTorch7が「platform not supported, aborting」というエラーでインストールできませんでした。
このアプリは
  • Ubuntu Linux で開発された
  • GPUを使わない
とのことなので、VirtualBoxにUbuntu Linuxをインストールして使うことにしました。

ちなみにCentOSは7のみ、Fedoraは20と22のみをサポートのようです。
blog.fujiu.jp 機械学習で画風を変換する方法


インストール

必要なソフトを全てインストールします。

gitをインストールする



Torch7をインストールする



最後に
Do you want to automatically prepend the Torch install location to PATH and LD_LIBRARY_PATH
と表示されるので yes と入力します。
これで .bashrc にexportコマンドが追記されるので次のコマンドで環境変数を更新します。


インストール後のソースは不要のようです。ソースを消すコマンドは次の通り。


必要なパッケージ群をインストールする



siggraph2016_colorization をダウンロードする



これで必要なソフトが揃ったはずです。


白黒画像をカラー化する方法

カラー化したい白黒の画像はpngフォーマットだと「Wrong number of input channels!」というエラーに悩まされるのでjpgフォーマットをお勧めします
Ubuntuならconvertコマンドでjpgに変換できます。

また、画像サイズが横512×縦512ピクセルを超えると処理が遅いとのことです。
縦横とも512ピクセル以内なら1秒以内に終わります。

白黒画像をホームディレクトリに
monotoon.jpg
というファイル名で置いた場合、次のようなコマンドを実行すると result.png というファイル名でカラー化されます。



こんな画像を処理したら

こうなりました。

白黒にする前の画像がこちらです。

別の画像ではこうなりました。
上から原画・白黒化画像・カラー化画像の順です。

いろいろ試してみましたがセピア調になることが多いです。

風景写真のカラー化は安定してますが人工物の写真やアニメ調のイラストは苦手のようです。


関連ブログ

[GPGPU] 機械学習で画風を変換する方法
Android4.0をVmwareやVirtualBoxで起動する
Windows8をVirtualBoxにインストールする

以上、参考になれば幸いです。

2016年5月21日土曜日

[GPGPU] 機械学習で画風を変換する方法 [Machine Learning]

How to install and use the chainer-gogh

2015年9月に公開された画風を変換するアルゴリズム「chainer-gogh」をインストールして使ってみました。
https://github.com/mattya/chainer-gogh
使い方までの手順をまとめてみました。


環境

  • CUDAコア数が48、動作周波数が900HMzのNVIDIAグラフィックスを搭載したノートPC
  • 64bit版 Ubuntu Linux 15.10


CUDA Toolkitが使えるLinux PCを用意する

CUDAはNVIDIA製の一部のグラフィックスに搭載される並列演算に特化した機能です。
CUDA ToolkitはCUDAの機能を利用するための開発環境です。
chainer-goghはCUDA Toolkitを利用すると高速に処理できます。
今回はchainer-goghをCygwinやホストOSがWindowsのVirtualBoxで実行したのですが、このブログを書いている時点ではどちらもCUDA Toolkitが利用できず、画像1枚変換するのに90時間ほどかかりそうでした。

そこでUSBメモリードライブにUbuntu 15.10をインストールして使いました。
blog.fujiu.jp 機械学習で画風を変換する方法


必要な環境をインストールする

Ubuntu 15.10でchainer-goghを使えるようにするまでインストールするものが沢山ありました。
すべて端末からインストールしました。

グラフィックスドライバーをインストールする

システム設定 - ソフトウェアとアップデート - 追加のドライバー
から検証済みのドライバーをインストールしました。

NVIDIA純正のドライバーは
  • インストール時にX Serverを停止する必要がある
  • インストール後にOSが起動しない
などの問題がありました。

また、Ubuntu 16.04では検証済みのドライバーのインストール後にX-Windowでログインできなくなるトラブルがありました。

CUDA Toolkit をインストールする



インストール後は次の環境変数の設定が必要です。~/.bachrc に追記しておくと端末起動時に自動で設定されます。


cuDNNに対応していればインストールする

cuDNNはCUDAの処理を最適化をする機械学習用ライブラリーです。
Accelerated Computing Developer Programにユーザー登録するとダウンロードできます。
cuDNNが使えればchainer-goghの高速化が期待できますが、今回はPCが対応してなかったので使えませんでした。

GCC4.9ををインストールする

Ubuntu 15.10はGCC5がインストールされていますが、ChainerフレームワークのインストールにはGCC4.9が必要でした。


Pythonのライブラリー群をインストールする

下記のコマンドだと不要なものもあるかもしれませんが、必要なものが欠けてると何もできないのでまとめてインストールします。


Chainerフレームワークをインストールする



次のコマンドを実行して何も表示されなければCUDAが使えます。


このコマンドを実行して
ImportError: No module named cupy
と表示されるようならCUDA Toolkitがインストールされてないか環境変数が正しく設定されてません。
CUDA ToolkitがインストールしてChainerフレームワークをインストールをインストールし直してください。

gitをインストールする



chainer-goghと学習モデルをインストールする

学習モデルは作者曰く「お手軽」のものを使いました。


これで必要な環境が揃ったはずです。


使い方

ホームディレクトリに
変換したい画像 input.png
画風スタイルの画像 style.png
がある場合、次のコマンドで変換できます。


処理中はホームディレクトリに img_・・・・.png という画像ファイルが作られます。
im_04950.png が完成です。下が完成の画像です。

所要時間は次の通りでした。
  • CPUのみで推定90時間
  • CUDAで約45分
  • cuDNNは未対応なので検証不可

白地が多い画像は苦手のようです。


トラブルシューティング

実行したらCUDAに対応していなかった (cannot import name core)

CUDAを使わずに実行する


cuDNNをインストールしたらcuDNNに未対応で実行できない (CUDNN_STATUS_ARCH_MISMATCH)

環境変数のcuDNNのパス設定を削除してChainerフレームワークを再インストールする。

Chainerフレームワークを再インストールする方法



GCCを元に戻す方法




関連ブログ

Android4.0をVmwareやVirtualBoxで起動する
Windows8をVirtualBoxにインストールする
[Blender] Pythonで複数の設定を一瞬で編集する方法

以上、参考になれば幸いです。