PowerShell+WPFが動かない場合の原因と対策
仕事の関係でPowerShellを使ったので、PowerShellでの勉強内容と作成プログラムを記事に書きましたが、本番で動かず、困ってしまいました。同様の問題で困っている方がいるかもしれないので、解決先を書きます。
問題点
- スクリプトがネットワークドライブ上にあるとエラーとなる。
- PowerShell ISEでは動作するが、PowerShellではエラーとなる。
原因と解決方法
- スクリプトがネットワークドライブ上にあるとエラーとなる。
- 原因:スクリプトがネットワークドライブ上にあると、リモートスクリプト(ネットワークから入手したスクリプト)とみなされエラーとなる。
- 対策:powershellにオプション付加「powershell -ExecutionPolicy Bypass」
- 別案:「powershell -file ファイル名」で起動(2/18追記)
- PowerShell ISEでは動作するが、PowerShellではエラーとなる。
- 原因:powershellの古いバージョン(1.0と2.0)のPowerShellのデフォルトはMTAモードになっている。なお、PowerShell ISEは、古いバージョン(1.0と2.0)でもSTAモードで動作している。
- 対策:powershellにオプション付加「powershell -sta」
まとめ
PowerShellは、スクリプトがネットワークドライブにあるか、どのバージョンか、PowerShellかPowerShell ISEか、によって動作が異なるので注意が必要。]
- 対策:「powershell -sta -ExecutionPolicy Bypass ファイル名」で起動。
- 別案:「powershell -sta -file ファイル名」で起動(2/18追記)。
PaintsChainerが爆速になっていた
http://itsukara.hateblo.jp/entry/2017/01/29/064926:embed:先週の記事で書いた線画着色(PaintsChanier)の件、久しぶりに最新版をダウンロードして試してみたら、当方の貧弱なGPU RAM(2GB)でも動くようになっており、サイズが500x500位の画像では3秒ぐらいで処理が完了。爆速になっていた。
線画着色最新版が妙に青みがかっている
線画着色の件、最新版(2017/1/31 21:39; 03739fd)を本家github(下記)からダウンロードして試したところ、残念ながら、特に速くなったり、機能が追加されている気はしません。また、残念ながら、色が妙に青みがかっています。
1/29ダウンロード版で生成した画像
1/31 21:39ダウンロード版で生成した画像
githubサイトを見ると、OpenCVのインストール方法として、結構面倒な方法へのリンク(下記)が書かれているので、それをやらないとだめなのかと思ったのですが、下記サイトに書かれたテスト用のデモを現在環境で実行したところ、下記サイトに表示される絵が、そのままの色で表示され、何の問題も発生しませんでした。ということは、下記の面倒はインストールをしなくても、"conda install opencv"で十分だったということです。Preferred Networkさん、どうなっているでしょう... (線画着色の件、githubにcommitしている人を見ると、Preferred Networkの人が多数関わっています。Preferred Networkが開発したChainerの宣伝にもなるので、Taizanだけでなく、Preferred Network総がかりで取り組んでいるのだと思います)
- チェック用プログラムを走らせ、上記サイトのウィンドウに重ねて表示したところ。
上記表示結果を基に、本家サイトのIssueで質問予定です。
ちなみに、以前のソースと比べたら、img2imgDataset.pyの旧版と新版で下記のように変わってますが、学習データは旧版のソースコードで学習させていると思いますので、「現在のソースコード」と「旧ソースコードで作成した学習データ」の間での不整合が原因な気がします。
旧版:image2 = cv2.cvtColor(image2, cv2.COLOR_BGR2YUV)
新版:image2 = cv2.cvtColor(image2, cv2.COLOR_RGB2YUV)
本件、githubのissueで議論中です。下記を参照ください。学習データはYUVなので、単に、画像の入出力がRGBかBGRかという問題とのこと。これは、@abbychauさんが解決しました(OpenCVのバージョンを見て自動的に判定できるらしいです)
github.com
線画着色で満員御礼!
当サイトはこれまで平均100PV/日程度のアクセス数だったのですが、昨日と本日は、各1日で1か月分のPVを頂きました。関心を持って頂き、まことにありがとうございます。とても励みになります。
ついでに、他の記事も見てくれると更にうれしいです。例えば、OpenAI GymのMontezuma's Revengeで1位になると共に、Deep Mindの論文に書かれていない部屋にも到達した話とか... これがきっかけでOpenAIの本社に招待され、12月にサンフランシスコに行ってきました(費用はOpenAI負担)。
itsukara.hateblo.jp
DeepMindの論文に書かれていない部屋に到達した件は、論文の著者Marc G. Bellemare氏にもお知らせ済で、素直に喜んでくれています(下記youtubeのKorekara Itsukaraのコメントと、Marc G. Bellemare氏のコメント参照)。
Playing Montezuma's Revenge with Intrinsic Motivation - YouTube
OpenAI Gymのスコアは下記参照。1位~3位が当方です。
gym.openai.com
写真から輪郭を抽出し線画着色
ローカルに線画着色できるので、色々試してみました。
今回、写真から輪郭を抽出し、それを基に線画着色してみました。輪郭を抽出するjupyter notebookはgithubにアップしましたので、パラメーターをいろいろ変えて試してみてください。以下では、googleで「美人」で検索した画像から輪郭を抽出し、着色したものです。最後の写真以外、ヒントは無しです。
美人#1
元写真ほど良くないですが、結構きれいな画像になりました。
美人#2
元写真は知的で若い女性の写真ですが、おばさんになってしまいました。
美人#3
元写真は野性的で若い美人ですが、抽象画になってしまいました。
美人#4
元写真と比べ良い線画が撮れませんでしたが、着色したら、それなりになりました。
美人#5
細かい線画が撮れ、着色したら、まあまあの出来になりました。
追記
このように、Webから写真を取ってきて、そこから線画を抽出し、それを基に着色し、着色画像を写真と比較する処理を、自動化して、何百万枚も学習させると、更に凄いものになりそうな気がします。ついでに、線画抽出の部分もDeep Learningで作ると、線画抽出と、線画着色と、一緒に学習できますね。大学や研究機関で豊富なマシンパワーがある方は、ぜひ試してみてください。
DL使った線画自動着色がCPUでも動くようにしました
DL使った線画自動着色の件、下記記事を書いた後で、CPUだけでも動くように修正し、pull requestを出させていただきました。幸い、conflictsは無いようです。
修正内容ですが、元々CPUで使う場合は"python server.py -g -1"とすれば動くはずなのですが、"cgi_exe.py"で "self.gpu >= 0" か判定して処理を分ける部分が抜けていたので、追加したものです。
ちなみに、トレーニングと異なり判定だけなので、CPUでも十分に速いです。お試しサイトはアクセスが集中して処理が重くなっており着色に1分以上かかるので、お試しサイトの負荷を減らす意味でも、ローカル環境を作って試しましょう!
何よりも、CPUだけでもローカル環境の方がお試しサイトよりもずっと速いです。具体的には、CPUだけも15秒程度で着色が完了します*1。これに対して、お試しサイトはアクセス集中のため1分ぐらい待たされます。
merge前にCPUで試したい方は下記をお使いください。
https://github.com/Itsukara/PaintsChainer.git
GPUメモリ不足時の画面
CPUに切替後の画面
追記
当初、GPUを使って動くようにするために、下記記事を見てVisual Studioを入れたり、CUDA8.0を入れたりと、1時間以上掛かり、確かにMNISTは10倍くらい速くなったのですが、結局、GPUメモリ不足で一部しか動かず、残念でした。
qiita.com
ちなみに、CPUで動かすだけなら、chainerを"pip install chainer"で入れるだけであり、とても簡単です。(当然ながら、Pythonの事前インストールも必要ですが、これは、Anacondaをインストールして実行するだけなので、これも簡単です。また、opencvも必要ですが、これは"pip install opencv"で大丈夫でした)。
追記2 (Windowsでの簡単なインストール方法)
一応、Windowsでのインストール手順書いておきます。
# (1) Anacondaをインストール(Python 3.5 version) # ・下記からexeをダウンロードして実行(管理者権限で実行) # ・https://www.continuum.io/downloads # ・DOS窓で"python --version"を実行し、エラーにならないことを確認 # ・エラーになる場合、"Anaconda Windows インストール方法"でググり、自己対応願います。 # ・parco_opaaiさんが詳細なインストール方法を書かれています。ご参考まで。 # ・http://qiita.com/parco_opaai/items/5f654237afde9db85beb # ・ただし、上記記事のopencv-pythonを使うと色が変になるので要注意。 # (2) 以下を、DOS窓(管理者権限で実行)で実行 > conda upgrade pip > pip install chainer > conda install --channel https://conda.anaconda.org/menpo opencv3 # ※ "conda install opencv"ではUbuntuで色が青くなるのNGでした # (3) paintschainer (CPUで実行可能版)をインストール # ・下記からzipをダウンロードし解凍(github知らなくてもOK) # ・https://github.com/Itsukara/PaintsChainer/archive/master.zip # ※本家コードが急速に進化していますので、それを使った方が良さそうです。 # ・https://github.com/taizan/PaintsChainer/archive/master.zip # ・解凍してできたフォルダは、下記のように名前を変更 # ・PaintsChainer-master => PaintsChainer # ・下記フォルダを作成 # ・PaintsChainer\cgi-bin\paint_x2_unet\models # ・下記サイトにある学習済データを上記フォルダにダウンロード # ・http://paintschainer.preferred.tech/downloads/ # (4) フォルダPaintsChainerでSHIFTキーを押しながら右クリックし、 # 「コマンドウィンドウをここで開く」でDOS窓を開き、下記を実行 >python server.py -g -1 GPU: -1 start load model serving at localhost : 8000 # (4) ブラウザで下記を開く # ・http://localhost:8000/static/ # ※本家コード使用時は:http://localhost:8000/
追記3 (当サイトの宣伝)
ついでに、他の記事も見てくれると更にうれしいです。例えば、OpenAI GymのMontezuma's Revengeで1位になると共に、Deep Mindの論文に書かれていない部屋にも到達した話とか... これがきっかけでOpenAIの本社に招待され、12月にサンフランシスコに行ってきました(費用はOpenAI負担)。
itsukara.hateblo.jp
- DeepMindの論文に書かれていない部屋に到達した件は、論文の著者Marc G. Bellemare氏にもお知らせ済で、素直に喜んでくれています(下記youtubeのKorekara Itsukaraのコメントと、Marc G. Bellemare氏のコメント参照)。
Playing Montezuma's Revenge with Intrinsic Motivation - YouTube
- OpenAI Gymのスコアは下記参照。1位~3位が当方です。
- 下記はMontezuma's Revenge関連の成果をまとめたスライドです。
- 英語版(最新)
www.slideshare.net
- 日本語版(少し古い)
DL使った線画自動着色が凄すぎる!
下記の記事が、「はてなブックマーク」で第1位になっていたので、お試しサイトで試そうと思ったら、アクセスが非常に多いらしく、なかなか結果が出ないので、自分のPCにgit cloneして試してみました。
ただ、残念ながら、当方のPCではGPUメモリが足りずエラーとなり、小さな絵しか出ないため、ソースのhtmlコードを少し弄って1.5倍に拡大して表示しました。素材は、ネット上のフリー素材と自作画を使いました。
イチゴケーキ
ヒント無
ヒント無しだと、色使いが暗く、金属っぽいケーキになってしまいました。
ヒント有
白い部分を少しだけ色付けしてヒントを与えたら、結構それらしくなりました。ちなみに、白い部分も、白で塗ってヒントを与えています。左側の線画をよ~く見ると、少しだけ色がついている部分があることが分かると思います。たったこれだけのヒントを与えただけで、それらしい絵になりました。皿の縁は、特に何もしていませんが、それらしい色になっています。
カレー
ヒント無
ヒント無しだと、色使いが暗く、やはり今一つですね。
ヒント有
これも、少しだけヒントを与えると、カレーっぽくなりました。こちらは、白い部分を結構沢山白く塗ってます。
ハンバーガー
ヒント無
やはり、ヒント無しだと、色使いが暗くなってしまいますね。
ヒント有
これも、ちょっとヒントを与えただけで、それらしくなりました。
吉野山(奈良)
女の人が2人、着物を着て山里を歩いているようですが、特にヒント無しで、それらしい絵になりました。
へのへのもへじ
下手な絵を描いて試してみましたが、なんか、それらしくなりました。顔っぽい形があると、肌色に塗られるようです。
「初日の出」っぽい下手な絵
ヒント無
なぜか、丸い部分は太陽っぽい色になっていますね。
ヒント有
5点塗っただけで、結構変わりました。ただ、よく考えたら、山の前面は、太陽の陰になっていて暗いはずなので、ヒント無しの方が正解ですね...
実験用素材
今回の塗り絵素材は、Webで無料と書かれたものを使いました。その中で、下記サイトは、「MY介護の広場」の文字を削らずにご使用すれば無料とのことであり、良さそうなる理恵素材が多数あるので、ちょっと試すのには良さそうです。ただ、論文などで多数の絵を使うようでしたら、サイト運用会社と一度会話しておいた方が良いと思います。明治安田生命グループ提供されている「MY介護の広場 」様、ありがとうございました。
www.my-kaigo.com
ちなみに、上記に載っているのはPDFファイルです。これをダウンロードし、PDF-Viewerで表示し、PNGでエクスポートすれば、paintschainerで読み込めます。あるいは、Acrobatで表示し、Snipping Toolでキャプチャーし、ファイルに保管するのも良いと思います。