水凪工房

Feed Rss

ニューラルネットワークで要素抽出

02.11.2018, ニューラルネットワークで要素抽出 はコメントを受け付けていません。, ソフトウェア, by .

Autoencoder

ニューラルネットワークは画像を認識させる際に、元情報よりも低次元で表現するようにネットワークを構成することが出来ます。

そのような低次元で表現された空間には、学習に使用した情報の要素が詰まっているとも言えます。

要素が詰まっているのですから、その情報を抜き出して再び画像にすれば、ニューラルネットワークが思っている物の片鱗を見ることが出来る…かもしれません。

技法的にはオートエンコーダと呼ばれるものなのですが、画像認識に使用しているヴィヴィオ達の画像を使用して計算させてみました。

Autoencoderを通したヴィヴィオ達

結果は以下のような感じです。

   

多分、リリカルなのはVividをよく知っている人であれば、誰か答えられるのではないかと思います。

今回は100次元で表現してみましたが、多分もっと少ない要素で表現出来そうで、ヴィヴィオ達は見た目だけでもかなり分類しやすそうに感じます。(…ってプロの方がそうなる様にデザインされているわけですから、そりゃそうなりますね。)

次元数を下げるほどぼやけた画像になっていき、極端に下げると「黄色っぽい」「みどりっぽい」だけの画像になります。

学習結果の応用

この学習は、

  • 「ヴィヴィオの絵」 + 「ヴィヴィオ」
  • 「アインハルトの絵」 + 「アインハルト」
  • 「リオの絵」 + 「リオ」
  • 「コロナの絵」 + 「コロナ」

という入力で学習させましたので、以下の様な入力を受け付けます。

  • 「ヴィヴィオの絵」 + 「アインハルト」
  • 「写真」 + 「ヴィヴィオ」

これを使えば、入力された画像をヴィヴィオっぽくしたり、アインハルトっぽくしたりする事が出来そうです。

試しに自分の絵を使って実行してみたものがこちら。

  •  =  + ヴィヴィオ
  •  =  + アインハルト
  •  =  + リオ
  •  =  + コロナ

…心の目で見ればなっているような、なっていないような。

今回やったことを図にすると、以下の様になります。

 学習させます。

 学習結果とヒントを使い、絵を加工。

Azure上でnnablaを動かしてみました

02.03.2018, Azure上でnnablaを動かしてみました はコメントを受け付けていません。, ソフトウェア, by .

現在使用しているAzure環境にnnablaをインストールして、ウェブアプリを作成してみました。

nnablaはSONY Neural Network Consoleでも使用されているもので、比較的簡単にニューラルネットワークを利用出来るのですけど、学習した結果をどう使うかがなかったので、サンプルを兼ねて作ってみました。

VE Detect

https://www.mizunagi-works.com/gadgets/ve_detect/index.html

 しょっぱなから誤判定するデータを与えていたりして

言い訳っぽいのですけど、これは学習データが少ないのと「アインハルトかヴィヴィオのどちらか」を判定させるように学習させた結果となります。

例えばおにぎりの画像を与えたときでも必ずどちらかという判定します。(どちらでもないという回答を出すようには学習させていません)

Azureへの導入

ニューラルネットワークというと、強力なGPUを使用する負荷の高いアプリケーションに感じられるかもしれません。

確かに計算量は多いのですが、処理が重たいのは学習をする時で、学習済み結果を利用するのはそんなに重くありません。

(今回作成したニューラルネットワークの構成が単純というのもあります)

自分が使用しているAzure上のVMはA1 Basicでかなり非力(下から2番目)なのですが、学習結果を利用するにあたってはそこまで負荷はありませんでした。

SONY NNCによるネットワークの作成と学習

こんなネットワークにしてみました。

10,000回ほど学習させました。

プログラムの作成

学習が完了すると、学習結果が保存されたフォルダにparameters.h5というファイルが生成されています。

学習済みモデルを利用するにはこのh5ファイルと、NNCからエクスポートしたPythonスクリプトが必要となります。

スクリプトはちょっと長めですのでGitHubに置いておきました。

bottleを使用していますので、ローカルでこっそり楽しむことが可能です。

.

去年やった絵柄判定ネタ再び

02.02.2018, 去年やった絵柄判定ネタ再び はコメントを受け付けていません。, ソフトウェア, by .

最近、Neural Network Consoleで遊んでいるのですが、去年イラストを学習させて、誰が描いたのかを判定してみるというのをやってみたところ、わりと悲しい結果となってしまったものに改めて挑戦してみました。

(データについては以前に許可を頂いているデータをそのまま使用しました)

今回のモデル

今回はGUIでモデルを作成していますので、ネットワーク構成とかはりつけてみました。

左図のようなモデルにしてみました。

1,000回学習させたものがこちら。

あんまり芳しい感じではないです。

イラスト100枚を学習させています。

結果

こんな感じになりました。

https://www.mizunagi-works.com/gadgets/nanoillust/20180201/index.html

確率で並び替えが出来るようになっています。

「engo001さんが描いたビールジョッキを持ったはやて」をsan_ponさんが描いたと判定してくれるようになったので、前回よりはそれっぽい判断になってくれ…たかもしれない。

.

Neural Network Libraryで遊んでみる

01.30.2018, Neural Network Libraryで遊んでみる はコメントを受け付けていません。, ソフトウェア, by .

SONYのNeural Network Libraryを使ってみてのメモとか。

NNLで画像を読み込みたい場合

モデルに画像を読み込ませるには、nnabla.utils.data_source_loaderモジュールで読み込ませる事が出来ます。

Pillowで読み込んだ画像をNNLで扱える構造にしたい場合

numpyモジュールを使います。

 

ISO-2022-JP-MSからCP932への変換

01.29.2018, ISO-2022-JP-MSからCP932への変換 はコメントを受け付けていません。, ソフトウェア, by .

使用する機械はあまりなさそうでうけど、ISO-2022-JP-MS(JIS)からCP932(SHIFT-JIS)へ変換するコードを、以下のサイトに掲載されているプログラムを移植してみました。

http://www.geocities.jp/hoku_hoshi/TIPPRG/tipprg03.html

プログラム本体

テストデータ

テスト方法

上記の様なテストデータをUTF-8で作成して、iconvやnkfを使用してjis形式のファイルに変換します。

iconvの場合

nkfの場合

.

Neural Network Consoleでキャラ判定

01.27.2018, Neural Network Consoleでキャラ判定 はコメントを受け付けていません。, ソフトウェア, by .

SONYが公開しているNeural Network Console を使用して、キャラクター判定をさせてみました。

NNCはWindows用なのですが、学習させたモデルの利用はMac(Anaconda + Python 3.6)でも動作しました。

ヴィヴィオとアインハルトのみですので適当に答えても50%の確率なので、あまり面白みはないけど…

Neural Network Console

https://dl.sony.com/ja/

SONYが公開しているニューラルネットワークを作成するためのGUI環境です。

今回は以下のようなネットワークを作成してみました。

 ネットワーク構成

 学習状況(2000Epoch)

画像データはBingの画像検索を使用してヴィヴィオとアインハルトの画像を収集しました。

画像については以下のルールで生成しています。

  • 変身前か変身後は関係なくキャラクター毎に30枚程度を用意
  • 描かれているキャラクターは一人だけ(背景はあってもなくてもよい)
  • 画像サイズは64×64に縮小(パディングは0(黒)で行う)

画像はかなり少ないのですが2000Epoch程学習をさせて、評価を行います。

評価方法

NNC上でも評価出来るのですが、生成したモデルをPythonやC++から使用することが出来ます。

今回は以下のようなコードを生成しました。

学習結果はフォルダにHDF5形式で格納されていますので、そのまま使用することが出来ます。

ソースコードもNNCが生成したものをそのまま使用可能となっています。

評価に使用するデータ

画像は自分が描いた2枚の画像を使用してみました。

 ヴィヴィオ( vivio = 1 )

 アインハルト( einhald = 0 )

実行結果

 0.978

 0.042

0に近いほどアインハルト、1に近いほどヴィヴィオという判定が出るように学習させましたので、どうやら正しく判定してくれたようです。

自分以外の絵でも試してみましたが、正答率は80%ぐらいでした。

.

カスタマイズとゆるい合作が可能なグッズ(3)

01.21.2018, カスタマイズとゆるい合作が可能なグッズ(3) はコメントを受け付けていません。, アニメ, クラフト, by .

以前考えていたブックマーカースタンドを既存の商品でレイアウトしてみました。

あとは厚さ1mmぐらいのアクリルで仕切りを作れば十分かもしれない。

一見したところ、全体的に透明の方が格好良さそうなのですが、透明だとブックマーカー自体が透明の場合に見づらくなってしまう為、やはり背面は白い方が良さそう。

 これは単なるフォトフレーム。

背景が黒い為ホコリが目立っていますが、アクリルだけあって静電気をなんとかしないと、かなり汚らしく見えますね。これも課題かもしれない。

設計図的なもの

 仕切り(1mm厚)

こんな感じの仕切りを考えて見たけど、通常の加工では強度の問題から幅を10mm以下に設定できなかったりして。(加工賃は多分5,000〜6,000円ぐらい?)

 雰囲気だけ。

ArtRageのキャンバス設定

01.14.2018, ArtRageのキャンバス設定 はコメントを受け付けていません。, イラスト, by .

以前にも作成した気がしますけど。

キャンバス設定とライティングを変更するだけで結構変わります。

 ライティング(有効)

 ライティング(無効)

なんとなく表にまとめてみました

01.11.2018, なんとなく表にまとめてみました はコメントを受け付けていません。, アニメ, by .

よくある「各エディションの比較表」みたいなもの。

間違っている可能性もありますので、詳細はオフィシャルサイトを確認してください。

.

餡子餅入りの白味噌雑煮

01.10.2018, 餡子餅入りの白味噌雑煮 はコメントを受け付けていません。, 料理, by .

 餡子餅がふたつ!

今年もせとうち旬菜館で食べてきました。

愛媛と香川のアンテナショップなので、うどん的な食品もかってみたりして。

 いわし煮干しエキス…

普通にうどんも買っています。