machine learning at swift3

38
Machine learning at Swift 3 バレンタインデー1ヶ月前から始める Swift×MT Data API in日本マイクロソフト社

Upload: daisuke-nagata

Post on 19-Jan-2017

250 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Machine learning at swift3

Machine learning at Swift 3バレンタインデー1ヶ月前から始める Swift×MT Data API

in日本マイクロソフト社

Page 2: Machine learning at swift3

Machine learning 機械学習

Page 3: Machine learning at swift3

Machine learning とは

データ分析、統計学との関連が深く、データが生成した潜在的機構を捉え、

識別したパターンを用いて、新たな予測を行います。

Page 4: Machine learning at swift3

今回の取り組み顔認識システムをIOSで実証する。

Page 5: Machine learning at swift3

iosで機械学習を利用する

Page 6: Machine learning at swift3

Pythonを活用する

Page 7: Machine learning at swift3

iosでPythonを使用するには、C++で活用するmm.FileからPythonを呼び、人

工知能の生成を実施する必要がある。

Page 8: Machine learning at swift3

C++をSwiftで使えるようにする。

Page 9: Machine learning at swift3

これまでの流れ

Page 10: Machine learning at swift3
Page 11: Machine learning at swift3

コンピュータービジョンライブラリー

openCV

Page 12: Machine learning at swift3

openCVを学んだ歩み2016/10末より実施

Page 13: Machine learning at swift3

顔や目の解析

Page 14: Machine learning at swift3

輪郭抽出や合成

Page 16: Machine learning at swift3

今回 顔認識から顔認証への試み

Page 17: Machine learning at swift3

参考リンクhttp://d.hatena.ne.jp/shu223/20150518/1431901401

こちらのヒントでライブラリー内のframeworkを変更する処理が必要です。

http://qiita.com/dandelion1124/items/c250449c99775f096475

Page 18: Machine learning at swift3

情報がIOSではなく、C++を調べ上げないと、実装できない貴重な情報ですので、具体的な

全体像は割愛させて頂きます。

少しだけならhttp://www.slideshare.net/DaisukeNagata1

Page 19: Machine learning at swift3

実装手順

Page 20: Machine learning at swift3

Mat関数を仕様cv::Mat mat;

UIImageToMat(correctImage, mat);

Page 21: Machine learning at swift3

画像を取得して、2闘値化を実施

cv::normalize(gray_img1, gray_img1, 0,255,cv::NORM_MINMAX);

白黒にすること

Page 22: Machine learning at swift3

特徴量の抽出 cv::Ptr<cv::Feature2D> extractor = cv::AKAZE::create();

Page 23: Machine learning at swift3

非線形拡散によって、スケール空間で画像を展開する限り、重要な画像の詳細を保持し、ノイズを除去する非線形スケール空間の特徴を検出して記述することができます。 我々は、非線形拡散の最も単純な

ケースの1つである可変コンダクタンス拡散を使用する。 非線形スケール空間は、任意のステップサイズに対して安定で並列化可能な加算演

算子分割(AOS)方式によって効率的に構築されます。

Page 24: Machine learning at swift3

マッチングアルゴリズムBrueForceを使用

します。

Page 25: Machine learning at swift3

openCVのMat関数を使用して、UIImageよりMat関数に変換、

アルゴリズムのマッチング処理を実施

Page 26: Machine learning at swift3

特徴量の抽出して、UIを表示する処理をします。

Page 27: Machine learning at swift3

iosでC++を使う場合は、ブリッジ処理で、クラスメソッドを使えば、実施できます。

今回のサンプルアプリケーションも数値やUIImageなどは、C++側で出力をしたものを受

け取っている仕様です。

Page 28: Machine learning at swift3

OpenCV機能仕様

Page 29: Machine learning at swift3

OpenCV機能実装数値は特徴量を数値でC++から呼び出しています。

動画も、静止画も対応できます

Page 30: Machine learning at swift3

課題

顔の認識ではなく、特徴が似ていると、認識してしまいます。(右が顔認識をしないと特徴点の選出をしないように実施して対応しました)

Page 31: Machine learning at swift3

課題

顔認認証を実装するには、顔認識の前に、顔認識しやすいように、背景を加工する。顔の部分だけ取得処理が必要になります。

ヒントリンク(webカメラ)http://littlewing.hatenablog.com/entry/2015/04/07/221856

Page 32: Machine learning at swift3

そもそも顔認識は、機械学習でどうやって認識しているのか?

Page 33: Machine learning at swift3

機械学習では、学習ファイルというものを生成して、そのファイルから判断させて、

結果を導き出している。

Page 34: Machine learning at swift3

Pythonに戻ります。

Page 35: Machine learning at swift3

Pythonで何を?

Page 36: Machine learning at swift3

C++でもあるようですが、TensorFlowというライブラリーがあり、

これは機械学習で人工知能を学習する環境が整っています。

Page 37: Machine learning at swift3

次なる作業

Page 38: Machine learning at swift3

Pythonでオリジナルな学習ファイルを

生成するため、Pyhtonを覚える。

Swiftで人工知能の力を召喚するためにC++を使い、Pythonも使えるように

する。