見ると、2016年1月現在、フィードフォワード(順伝播型)ニューラルネットワークと、高速行列演算ライブラリはできあがっているようです。それぞれドキュメントがあります。利用しているとのことで、パフォーマンス面も考慮されてそうです。デモを試してみる同梱されているデモプロジェクト「Swift-AI-iOS」を実行してみると、下記のように、「サイン波(sin)のグラフがあって、トレーニング開始するとオレンジの点の集合がそのサイン波のグラフに近づいていく」というものでした。・・・学習の過程を視覚化したデモなのかもしれませんが、ちょっとありがたみがわかりにくいなと。そのXcodeプロジェクトの中を見てみると「HandwritingViewController」というソースコードがありました。あれ、手描き文字認識のデモもあるのかなと思ってソースを追いかけてみると、どうやら他にもデモがあるらしい。デモを起動して画面を見てみて、もしや、と思い左上のSwift燕画像をタップしてみると・・・ハンバーガーメニューが出てきました。なんともわかりにくいUI。デモを試してみると、バシッと手書き認識してくれました。手書き文字認識デモの実装ライブラリの中身を読んでもたぶん理解できないので、あくまでライブラリを利用する側として、デモではどう実装しているのか「Handwriting」デモのソースを見てみました。学習済みデータのファイルを指定して、FFNNクラスを初期化します。FFNN.fromFile(url)ニューラルネットの準備としてはこれだけ。検出されなければ認識処理が走るように実装されています。いうメソッドで行われています。pixelsArray}画像をクロップしたりリサイズしたり、といった処理は本ライブラリを利用するにあたって本質的な部分ではないので割愛しようと思ったのですが、あえて載せたのは、その後の処理に渡すにあたって、出力データの型が重要だと思ったからです。ポイントとしては、RGBAではなくA1チャンネルだけを取り出していること(手書き文字認識なので色情報は利用しない)と、UIImage型ではなくFloatの配列としてピクセルデータを返していること、といったあたりでしょうか。メソッドを実行します。Confidence(信頼度/その数字である可能性の高さ?)が入っているようです。高い数字(=認識結果)を探し、その認識結果の数字の値と、Confidenceを取り出しています。メソッドを呼ぶこの2ステップだけで手書き文字認識ができていることがわかります。自分のプロジェクトへの導入方法CocoaPodsやCarthageはサポートしてないとのこと。platforms.まだ試してないですが、デモプロジェクトを見る限り、FFNN.swiftStorage.swiftFFNN+Storage.swiftあたりのファイルを追加すれば使えそうです。他にも設定がいるかもしれませんが、ちゃんと動くデモプロジェクトが用意されているので、何かあればそちらと比較してみればよいかと。所感Swiftで書かれていて、MITライセンスなオープンソースで、ちゃんとパフォーマンスも考慮されていて、簡単に使える、ということでかなり期待の持てるライブラリではないでしょうか。今後いろんな学習済みデータや応用事例が出てくるとさらに楽しくなりそうです。(22)月別アーカイブリンクWishlist検索はてなブログをはじめよう!shu223さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。