今後必要となってくるであろう、AIプログラミングの感覚をつかみたいと思って、現在AI関連で最も面白そうな画像変換系ソフトを色々使ってみました。
そちらの紹介と、最近特に触れているPix2Pixというソフトの動作環境ついて少しだけ詳しく書いてみたいと思います。
色々試して思った事(結論)
既存の用意されているツールやソフトで、ほとんどは事はできるかと思いましたが、細かい所になると少しプログラミングが必要なようです。
プログラミング自体は用意されたライブラリを使うことを覚えれば、さほどコードを書く事自体は難しくないように感じました。
ただ、通常のプログラムと違い、同様の入力でも順番などにより結果が異なることと、目的のために何度か結果を見ながら微調整を行うことをが多いかなと感じました。
使ってみたツール・サービス紹介
現在までに試してみたAI関係の技術(プログラム記載ではなんく既存のサービス・ソフトを利用)を紹介します。
DeepFaceLab
参考URL
https://github.com/iperov/DeepFaceLab
ディープラーニングを利用した動画の顔を入れ替えるソフトです。とても良くできており、使用方法も順番にバッチを使っていくだけなので簡単です。ただ、そこそこのマシンスペック(特にGPU)が無いとあまり学習成果が出ないのと、時間がかかるものです。
お試しで実行するのであればGPUメモリ4GBくらいのNVIDA製品(1万5千円前後のもの)で試す事ができます。ただし、6GB以上は欲しいところです。
Dain-app Alpfa0.31
参考URL
https://grisk.itch.io/dain-app
動画のフレームレートをAIにより補完してくれるソフトで、目に見えて変わるのでとても有用なソフトでした。特に等速で動作するものについてはかなりの精度で補完してくれます。また、パラメータも豊富で動作しない場合はパラメータを下げながら調整することも可能です。
ある程度のスペックがあればHD画質のものも滑らかに動かす事ができました。動作をみるだけであれば、GPUメモリ4GBくらいのNVIDA製品(1万5千円前後のもの)で試す事ができます。
Waifu2x-caffe
参考URL
https://github.com/lltcggie/waifu2x-caffe/releases
Wif2xとよばれる画像拡大時のブロック化をAIにより補完するソフトのWindowsアプリ版です。
非常に使いやすく、学習後のモデルを利用するため、すぐに利用できます。また、少し時間はかかりますがGPUが無くても動作します。
TopazLabs
参考URL
https://topazlabs.com/downloads/
画像の高画質化やノイズ除去などをAIにより行う製品化されたソフトです。
1か月の無償期間があるため、確認で使ってみたのですが、流石製品版というだけありかなりの精度で動作します。
また、GPUがなくてもCPUのみでも動作しますので一度試してみることをお勧めします。
pix2pix
参考URL
https://github.com/phillipi/pix2pix
GANを使った画像学習の最も有名なツールかと思います。GoogleのAIライブラリ「Tenserflow」を利用しています。
複数の言語に対応しているようですが、Pythonがやはり一番情報としては多いようです。
プログラムソースが公開されているので自分で改変し、学習させたい方向などをコントロールする事ができます。何かソリューションを作るにはこちらを利用するのが良いかと思います。
利用環境(主にハードウェア)
試した際に利用した環境を記載します。
先ほど照会した順に試していきながらスペックアップを図っています。
最初のお試し環境
余りのPCに少しGPUを追加して実験していました。
OS:Windows10
CPU:AMD PhenomⅡ X4 965
メモリ:16GB
GPU:4G(Gforce GTX1650)※以下のアマゾンリンク先の製品です。
お試しソフト:DeepFaceLab
利用環境強化第一段階
仮想基盤を強化した際にGPUを移植し、少しハイスペックにしました。
強化されたのはCPUとHDDの書き込み処理等なので直接GPUの効果は変わりませんが大分早くなりました。ただし、仮想環境だったことと、サーバOSだったためうまく動作しない場合がありました。
OS:Windows Server 2019
CPU:Xeon E3-1225 v6
メモリ:64GB
GPU:4G(Gforce GTX1650)
お試しソフト:DeepFaceLab、Dain-app Alpfa0.31、Waifu2x-caffe、pix2pix
利用環境番外編
ソフト「TopazLabs」がサーバOSだと上手く動作しなかったので、リモートアクセス用のPCで動かしました。少しスペックは落ちますが動作しています。
OS:Windows 10
CPU:i5-4570T
メモリ:4GB
GPU:なし
お試しソフト:TopazLabs
現在の利用環境
全てのソフトを網羅的に使いたいのとpix2pixを今後利用して何かを考える時に、専用のマシンが欲しいと思い作成しました。CPU等を少し抑えたので9万円位で組むことができました。
OS:Windows 10
CPU:i3-9100
メモリ:16GB
GPU:6GB(Gforce GTX1660 Super)※以下のアマゾンリンク先の製品です。
お試しソフト:pix2pix
利用環境(ソフトウェア)
特に利用環境最終段階でのPix2Pixについては実行環境を用意するのに苦労したので、自分なりの注意点を書いておきました。
・複数の言語で対応はされているがPythonが最も参考情報があるのでPython一択
・Tenserflow 2.x系はまだ参考となる情報が無いので使わないほうが無難(ゼロから書く場合は最新の方が良いかもしれない)
・TnserflowとCUDAとPythonの連携できるバージョンは必ず合せる
https://www.tensorflow.org/install/source?hl=ja#gpu_support_2
・Anacondaを使いその中で必ず仮想環境を作成し動作をさせる(今後のバージョン対応等で複数環境で動かすことになる可能性があるため)
現在安定して動作している環境は以下です
CUDA 10.0
Tenserflow 15.2
Python 3.7
cuDNN 7.4.2
Chainer 5.3
まとめ
正攻法での勉強をしたわけではありませんが、AIエンジニアになるには既存のAI学習方法(プログラムコード)をどのように活用していくかと、活用するために必要な最小限のプログラムコードの改変スキルかと思いました。
Pix2Pixについてプログラム改変も行いましたが、動作の改変自体それほど難しくありませんでした。
ただし、利用するライブライの考え方が新しく理解するのが難しい、また、実際のAIライブライの動きに関するエラーの解決はパラメータの調整をするしかなく、低スペックのものでは動作しない事がかなり多いのではないかと思います。
最後に、利用するバージョンの組み合わせを間違えると、うまく動かないので、ある程度環境構築の際にパターンを検証し、安定した環境に固定させた上で作りこみをした方が良いと思います。
コメント