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で複数の設定を一瞬で編集する方法

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

2016年5月14日土曜日

[Docker] Eclipse Che でプログラミングする方法 [Java]

How to program in Eclipse Che

Eclipse CheはDockerで稼働しWebブラウザーでプログラミングする統合開発環境です。
以前のブログ で書いたとおりインストールしてみたのでプログラミングしてみます。


環境

  • Windows 10
  • Eclipse Che 4.0.1
  • Webブラウザーは Microsoft Edge


Workspaceを作る

Eclipse Cheが起動したらダッシュボードの左上のハンバーガーボタンをクリックして
blog.fujiu.jp Eclipse Cheでプログラミングする方法

Workspaceをクリックします。

右上のプラスのボタンをクリックすると新しいWorkspaceを追加できます。

追加するWorkspaceを設定する画面が表示されます。
今回はJAVAを作ることにし、全て初期設定のまま一番下の CREATE WORKSPACE をクリックします。

Workspaceの名前設定の画面が表示されます。
自分でWorkspaceの名前を入力してRENAMEをクリックすると変更できます。
RUNボタンでWorkspaceが作成されます。

Workspaceの作成いつまでたっても終わらない場合はブラウザーをリロードするとWorkspaceが完成していることがあります。
OPEN IN IDEでWorkspaceを操作する画面に変わります。


新しいProjectを作る

画面左上のWorkspaceメニューから Create Project をクリックします。

今回はMaven Projectを作ることにし、Nameにプロジェクトの名前を入力して Next ボタンをクリックします。

Mavenの設定に必要なArtifact IDやGroup IDを設定します。今回はArtifact IDにパッケージ名(自分のドメイン名)を、Group IDにプロジェクト名を設定しました。
Createボタンをクリックするとプロジェクトが作られます。

ここまでできれば今までのEclipseと同じように操作できます。


Workspaceをローカルディスクに保存する方法

画面左上のWorkspaceメニューから Download as Zip でローカルディスクにzipファイルとしてダウンロードできます。


使い心地

Eclipse Marsに比べると動作は軽快で画面が見やすくデザインされています。

その一方でEclipse Che 4.0.1では
  • ProjectがWorkspaceに自動で保存されない
  • GitのInitializeができない
  • Workspaceのロードにネットワークの帯域を喰われる
  • ショートカットキーがWebブラウザーにフックされて別のURLに遷移してしまう
  • エクスプローラーからドラッグ・ドロップでProjectにファイルの追加ができない
などのデメリットが目立ちました。
特にネットワークの負荷は深刻で、別窓で起動したWebブラウザーでWebサイトを閲覧したくてもタイムアウトしてしまうほどです。

現時点では実用面はEclipse Marsに及びませんでした。


関連ブログ

[Docker] Eclipse Che をWindowsにインストールする方法
[クラウド] Bluemix にJavaアプリを実装するまで
[クラウド] BluemixのJavaアプリ開発ではまったところと対処方法
[Java] Android StudioやEclipseのお節介な警告を消す方法
Visual Studio Community 2015 をISOファイルからWindows10にインストールする方法

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

2016年5月7日土曜日

[Docker] Eclipse Che をWindowsにインストールする方法

How to run Eclipse Che on Windows

2016年3月、Webブラウザーで利用できる統合開発ツール Eclipse Che が正式公開されました。
今までのEclipseと違い、仮想OSとアプリケーションをひとまとめにしたイメージ(コンテナ)を実行するDockerというエミュレーターで動作します。
コンテナ化によりEclipse CheはWindowsやMacに限らずクラウドで稼働させても全く同じように利用できとのことです。
実際に使ってみたのでインストールする手順をまとめてみました。


環境

  • Windows 10
    BIOSの仮想化支援機能を有効に設定済み
  • Eclipse Cheは初期設定で8080番のポートを使うので8080番を使うWebサーバー(IIS、apache、nginxなど)は稼働させない


Java1.8 と Docker Toolbox をインストールする

Eclipse Cheの動作に必要なJava1.8とDocker Toolboxをインストールします。

今回は下記サイトからJava SE Development Kit 8をダウンロードしてインストールしました。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Docker Toolboxは公式サイトからダウンロードしてインストールしました。
Virtual BoxやGit for Windowsなどが含まれていますがそれらも必要なので全てインストールします。
https://www.docker.com/products/docker-toolbox


Eclipse Cheをダウンロードする

Eclipse Cheを公式サイトからダウンロードします。
http://www.eclipse.org/che/download/

今回はZIP Packageをダウンロードして
D:\eclipse-che-4.0.1
に解凍して使います。


環境変数を設定する

JAVA_HOME というJava1.8のインストールパスへの環境変数が必要です。
また、Git for WindowsのインストールパスがPATH環境変数に含まれている必要があるようです。


Eclipse Che を起動する

Dockerはコマンドラインで操作します。
Dockerを起動し、Eclipse Cheを展開したサブフォルダーの
bin\che.bat run
を実行します。

今回は D:\eclipse-che-4.0.1 に展開したので
/d/eclipse-che-4.0.1/bin/che.bat run
と入力します。
blog.fujiu.jp Eclipse Che をWindowsにインストールする方法

時間がかかりますがDockerのコンソール出力が落ち着いたら

Webブラウザーで
http://localhost:8080
を開いてこんな画面が表示されたらインストール成功です。

次回はEclipse Cheを使ってみます。
次回を書きました → [Docker] Eclipse Che でプログラミングする方法 [Java]


関連ブログ

[クラウド] Bluemix にJavaアプリを実装するまで
[Java] Android StudioやEclipseのお節介な警告を消す方法
[Azure] クエリちゃんの動画投稿数をツイートするサービス をGitHubに公開するまで
Visual Studio Community 2015 をISOファイルからWindows10にインストールする方法

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