PC環境(2017/04/04更新)

メイン

  • CPU : core i7 2600
  • RAM : DDR3 16GB
  • HDD : Seagate 500GB + WDBlack2TB
  • VGA : GTX660
  • OS : Windows10 pro

録画機

  • CPU : core i7 2600K
  • RAM : DDR3 8GB
  • HDD : Seagate 500GB + WDRed 2TB
  • PT3
  • OS : Windows10 home

ノート

予備:Dell PowerEdge R410

  • CPU : Xeon E5620 x2
  • RAM : 8GB
  • HDD : SAS300GB x2→RAID0 600GB
  • VGA : HD6450
  • OS : WindowsServer2012 R2

youtube-dlのメモ

音だけ 

youtube-dl -i --extract-audio --audio-format mp3 <video URL>

最高画質 

youtube-dl -i -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 <video URL>

-iを付けることによってエラーが出ても次の処理に進んでくれる。(YouTubeのリストをダウンロードする時、著作権に引っかかって消された動画あったとしても進んでくれるので便利)

14.04 - How to select video quality from youtube-dl? - Ask Ubuntu : http://askubuntu.com/questions/486297/how-to-select-video-quality-from-youtube-dl

command line - How to download an MP3 track from a YouTube video - Ask Ubuntu : http://askubuntu.com/questions/178481/how-to-download-an-mp3-track-from-a-youtube-video

久しぶりに起動したwindowsでDHCPでのIPの振り分けが適用されない時

ipconfig /release

で消去、

ipconfig /renew

で新規IPアドレスの取得。

難しいことは何も分からないけどpix2pixを使ってみたい

注:Ubuntuブラウジングくらいしかやったことがないプログラミング素人高校生が興味本位で試してみたものです。おそらく間違いや余計なことを多々しているかと思います。
Twitterでpix2pixってやつが面白いって見て、調べてみたら「めっちゃ簡単」って書いてあったので試してみたくなった。結論から言うとpix2pixを使うための環境構築にとても時間がかかりました。OpenCVビルドするの大変すぎ(-_-;)半日くらい?かかった。

今回使ったマシン

手順

ubuntu server 16.04LTSのインストール

ローカルのHDD見たらUbuntuServerのisoしか無かったのでこれを使った。普通にDesktopでいいと思う。unetbootinを使ってUSBメモリインストーラ入れて作業。指示に従ってインストールしてたら元から入ってたWindows10がGRUBに表示されないじゃないですかー。年賀状の住所録が入っているので忘れないうちに抜き出しとかないとやばい。ブートローダーのところの話はいまいち良く分からない。どうやったら確実に共存させられるんだろう?
インストール中に「LANカードが見つからない」と出てきたら画面戻ってその項目に従うべきだ。勝手に見つけてくれる。無視してインストールを続行したらネットに繋がらなくて(当然)、もう一度最初からやり直した。見つけてくれるなら最初からそうしてくれよって思うのは私だけ?

Nvidiaドライバ&CUDA&cuDNNのインストール

これは調べればいくつも出てくるので省略。GPUドライバは自分のグラボに合った最新のものをチェックして入れる。確認はWindowsにドライバを入れるときと同じようにNvidiaのサイトに行き、OSを「linux 64bit」みたいなやつを選び、何が最新か見る。
CUDAとcuDNNをダウンロードするにはNvidiaのDeveloper menbershipというものに登録しない。こちらのページを参考にした。

Ubuntu 16.04へのCUDAインストール方法 - Qiita : http://qiita.com/yukoba/items/3692f1cb677b2383c983

私がハマったのは以下に書いたので何かの参考になれば幸いです。

Ubuntu16.04にOpenCV3.2 - takanotume24 (・・? : http://takanotume24.hatenablog.jp/entry/2017/01/12/201827

pix2pix関係をインストール

こちらのページを参考にした。

pix2pix(GAN)を使ってモノクロのおそ松くんをカラー画像にしてみた - 技術メモ集 : http://t-nkb.hatenablog.com/entry/2016/11/26/120255

学習させる画像がでかすぎる

GTX660ではVRAMが足りないようで、out of memoryのエラーを吐いて途中で学習が終わってしまう。「pix2pix outofmemory」とかでググってみると、学習させる画像データを小さくしてみろって出てきた。
サンプルデータは512x256、これを256x128に圧縮する。ImageMagickと言うものを利用し、テキトウなシェルスクリプトを書いて変換した。ファイル名が「数字.jpg」で助かった。Imagemagickはカラー→グレースケールへの変換も対応していて、学習用データを作るときにも使った。

学習させてみる

あとはpix2pixのGithubのドキュメントに書いてあるとおりにトレーニングを実行してみる。
先程のブログにあった、train.luaのbatchSizeを1→4に増やすとトレーニングを高速化させることができる、というのをやってみたところ実際に早くなった。
最後まで処理させて3時間位。ただ、入力画像サイズ(128px)とtrain後検証用画像(256px)でサイズが違ったせいか、かなりぐちゃぐちゃな画像になってしまった。
今回は途中から面倒くさくなってきて検証用画像の方の圧縮をサボったが、これサイズ合わせたらちゃんと出力されるのだろうか?
ちなみに学習が20(単位がわからない 10回トレーニングしたってことなのだろうか?)行ったくらいでCtrl+Cで強制終了させてテストしてみたところかなりいい感じに出力された。
解像度が足りてない感じはあったがちゃんと窓のある建物の写真が出力されていて感動した。もとの写真とは違うけど「こんな建物あるよな」という感じのものが生成された。

学習用画像を生成できるpythonスクリプトについて

scripts/内にあるcombine_A_and_B.pyはOpenCV3.2では仕様変更しているところがあるらしく、私の環境では修正する必要があった。

python - cv2.imread flags not found - Stack Overflow : http://stackoverflow.com/questions/19013961/cv2-imread-flags-not-found

これに書いてあるとおり、scripts/combine_A_and_B.pycv2.CV_LOAD_IMAGE_COLORcv2.IMREAD_COLORに変更する。

やっていて気がついたこと

GUIなしのUbuntuServerを使うことにはある意味良いようで、GUIを起動してしまうとその分VRAMを消費してしまうため、CUIオンリーで作業するとVRAMの節約になり学習に支障が出ない。CUIで256px(付属のスクリプトでダウンロードした画像群)の画像でトレーニングを行うと、途中でトレーニングが強制終了してしまうものの、「途中までは」すすめることができる。
後に慣れないCUIが嫌になってきてGnome Desktopをインストールしたのだが、そうすると完全にVRAMが足りなくなりトレーニング開始直後にOutofmemoryで終了するようになった。VRAMに余裕があれば普通にGUIを使っても大丈夫そうだが、2GB程度だとダメっぽい。

今後の目標

  • 自前で用意した画像で学習させてみる。モノクロ画像→カラー画像にするのが素材が一番集めやすいと思う。
  • 256pxだとVRAM不足でエラー落ちしてしまうのが残念。128pxは流石に荒すぎる。GTX1070とかあればVRAM8GBで余裕そう。でも途中で強制終了させたときは結構いい感じに生成できていた。もしかして学習させる画像とテストで出力させる画像の解像度は一致してなくてもいいor良くする方法があるのだろうか?

Ubuntu16.04にOpenCV3.2

使ったのはOpenCV3.2

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..

うまくmakeができなかったのでエラーを見ると/opt/OpenBLAS/includeにlapacke_mangling.hが必要らしい。見てみるとたしかに無い。そのままlapacke_mangling.hでググってみるとなんかそれらしきものが出てきたので新規で作って入れた。

#ifndef LAPACK_HEADER_INCLUDED
#define LAPACK_HEADER_INCLUDED

#ifndef LAPACK_GLOBAL
#if defined(LAPACK_GLOBAL_PATTERN_LC) || defined(ADD_)
#define LAPACK_GLOBAL(lcname,UCNAME)  lcname##_
#elif defined(LAPACK_GLOBAL_PATTERN_UC) || defined(UPPER)
#define LAPACK_GLOBAL(lcname,UCNAME)  UCNAME
#elif defined(LAPACK_GLOBAL_PATTERN_MC) || defined(NOCHANGE)
#define LAPACK_GLOBAL(lcname,UCNAME)  lcname
#else
#define LAPACK_GLOBAL(lcname,UCNAME)  lcname##_
#endif
#endif

#endif

http://www.netlib.org/lapack/lapacke_mangling.h

その後は

sudo make install

UbuntuOpenCVとChainerをインストール - Qiita : http://qiita.com/sheep6box/items/37fb63c41d93c088013a

UbuntuServer16.04LTSにGnomeDesktop入れたらUIが全部化けて何もわからない

調べども調べども「ターミナルが化ける」話しか出てこなくて困った。

解決

sudo apt-get install $(check-language-support)

これで足りない日本語パッケージをインストールできる。

sudo reboot now

忘れずに再起動。

第417回 Ubuntu 16.04 LTSの日本語入力:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社 : http://gihyo.jp/admin/serial/01/ubuntu-recipe/0417

Xbox oneでBlu-rayを見る際に「日本語字幕、日本語音声の選択肢が出てこない問題」について

Xbox oneが手に入ったので、Blu-rayを借りてきてインターステラー見てみました。Blu-rayで映画見るのはこれが始めてです。大体これまでは地上波で放送してくれるの待ちか、DVD借りるかだったので・・・。クリストファー・ノーラン監督のバッドマンシリーズが大好きで、インターステラーはタイトルだけ知ってて見たことは無かったので借りてみました。いい話だった。それからBlu-rayって綺麗。

見る前に一つ困ったのが、メニュー画面が何故かスペイン語(?)、字幕もよく分からん言語のしか出てこなくて、これは借り間違えたのかなあって思ってパッケージ見ても日本語版っぽいし、ディスクの表面も日本語で書いてある。

少し調べて、再生機器の設定で多言語が表示されることがあるらしいって事がわかった。Xboxの本体の言語設定を英語にしてるので(日本語だと致命的にメニュー画面がダサいと思う。regionは日本。)、それが影響してたみたいです。

表示を日本語に治す必要はなくて、設定画面のところのDisk&Blu-rayBlu-ray→Preferred languageを全部日本語に直す。それでディスクを入れ直したら表示が直りました。

Xbox oneBlu-ray再生できるのってあまり知られてないような気がするけどどうなんだろう?ゲームも出来るBlu-rayプレイヤー最高です。おしまい