LoginSignup
7
4

More than 5 years have passed since last update.

Ryan Dahl's Automatic Colorizationをpure TensorFlow化してscikit-imageに由来するセグメンテーションフォルトをなくした話

Last updated at Posted at 2016-05-30

Ryan DahlによるAutomatic Colorizationのサンプルがscikit-imageを利用しており環境によってはセグメンテーションフォルトが起きる。それを回避するために画像の入出力をTensorFlowのみで行うように改造した話。

三行

  • オリジナルはこ↑こ↓
  • 今回改造したのはこ↑こ↓
  • 得られたもの = scikitから完全解放された淫夢くんUC

左: 入力画像、右: 入力画像を一度グレイスケールにして再着色した画像
inmukun.jpg inmukun-color.jpg

細かい話

Ryan DahlによるAutomatic Colorization

Ryan DahlによるAutomatic Colorization。いわゆるディープラーニングによるグレイスケール画像の自動着色。アルゴリズムだけでなく学習データと実行スクリプトも公開されているのでTensorFlowの実行環境があれば誰でも試すことができる。

日本語の情報

問題

いくつかのブログに実行するとセグメンテーションフォルトが起きると書いてあり私の環境でも発生した。スクリプトの中で scikit-image を利用しており scikit-image の import でセグメンテーションフォルトが発生している。

これはTensorFlowの依存か何かの問題らしい。

segmentation fault #2034

解決法

今回のスクリプトでは scikit-image は画像ファイルの入出力とクロップ・リサイズのみに使用されている。TensorFlowはこれらも可能であるためpure TensorFlowで実装することで依存を減らした。

環境によっては発生しない問題のようなので無理に使用する必要はない。

TensorFlowは入力はOpノードとして記述し、出力はencode_jpegしたノードをrunで出力することで行う。

この辺の入出力をTensorFlowのグラフで行うか、TensorFlow以外のパッケージで行うかは設計による。大体の場合はTensorFlow外で行えばよいと思う。今回は問題回避のためにTensorFlowの入出力を使用した。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4