SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Machine learning at Swift 3
バレンタインデー1ヶ月前から始める Swift×MT Data API
in日本マイクロソフト社
Machine learning
機械学習
Machine learning とは
データ分析、統計学との関連が深く、
データが生成した潜在的機構を捉え、
識別したパターンを用いて、新たな予測を行います。
今回の取り組み
顔認識システムをIOSで実証する。
iosで機械学習を利用する
Pythonを活用する
iosでPythonを使用するには、
C++で活用するmm.FileからPythonを呼び、人
工知能の生成を実施する必要がある。
C++をSwiftで使えるようにする。
これまでの流れ
コンピューター
ビジョンライブラリー
openCV
openCVを学んだ歩み
2016/10末より実施
顔や目の解析
輪郭抽出や合成
動画での顔認識 Qita投稿記事
http://qiita.com/daisukenagata/items/88f41d
9f0fe862e97975
今回 顔認識から顔認証への試み
参考リンク
http://d.hatena.ne.jp/shu223/20150518/1431901401
こちらのヒントでライブラリー内のframeworkを変更する処理が必要です。
http://qiita.com/dandelion1124/items/c250449c99775f096475
情報がIOSではなく、C++を調べ上げないと、
実装できない貴重な情報ですので、具体的な
全体像は割愛させて頂きます。
少しだけなら
http://www.slideshare.net/DaisukeNagata1
実装手順
Mat関数を仕様
cv::Mat mat;
UIImageToMat(correctImage, mat);
画像を取得して、
2闘値化を実施
cv::normalize(gray_img1, gray_img1, 0,255,cv::NORM_MINMAX);
白黒にすること
特徴量の抽出
cv::Ptr<cv::Feature2D> extractor = cv::AKAZE::create();
非線形拡散によって、スケール空間で画像を展開する限り、重要な画
像の詳細を保持し、ノイズを除去する非線形スケール空間の特徴を検
出して記述することができます。 我々は、非線形拡散の最も単純な
ケースの1つである可変コンダクタンス拡散を使用する。 非線形スケー
ル空間は、任意のステップサイズに対して安定で並列化可能な加算演
算子分割(AOS)方式によって効率的に構築されます。
マッチングアルゴリズム
BrueForceを使用
します。
openCVのMat関数を使用して、
UIImageよりMat関数に変換、
アルゴリズムのマッチング処理を実施
特徴量の抽出して、
UIを表示する処理をします。
iosでC++を使う場合は、ブリッジ処理で、クラ
スメソッドを使えば、実施できます。
今回のサンプルアプリケーションも数値や
UIImageなどは、C++側で出力をしたものを受
け取っている仕様です。
OpenCV機能仕様
OpenCV機能実装
数値は特徴量を数値で
C++から呼び出しています。
動画も、静止画
も対応できます
課題
顔の認識ではなく、特徴が
似ていると、
認識してしまいます。
(右が顔認識をしないと
特徴点の選出をしないよう
に実施して対応しました)
課題
顔認認証を実装するには、顔認識の前に、
顔認識しやすいように、背景を加工する。
顔の部分だけ取得処理が必要になります。
ヒントリンク(webカメラ)
http://littlewing.hatenablog.com/entry/2015/04/07/221856
そもそも顔認識は、
機械学習でどうやって
認識しているのか?
機械学習では、学習ファイルというものを
生成して、そのファイルから判断させて、
結果を導き出している。
Pythonに戻ります。
Pythonで何を?
C++でもあるようですが、
TensorFlowというライブラリーがあり、
これは機械学習で人工知能を
学習する環境が整っています。
次なる作業
Pythonでオリジナルな
学習ファイルを
生成するため、Pyhtonを覚える。
Swiftで人工知能の力を召喚するために
C++を使い、Pythonも使えるように
する。

Contenu connexe

Similaire à Machine learning at swift3

エンタープライズと機械学習技術
エンタープライズと機械学習技術エンタープライズと機械学習技術
エンタープライズと機械学習技術maruyama097
 
Pythonで機械学習をやってみる(bizpy 1/19 2022)
Pythonで機械学習をやってみる(bizpy 1/19 2022)Pythonで機械学習をやってみる(bizpy 1/19 2022)
Pythonで機械学習をやってみる(bizpy 1/19 2022)Hirofumi Watanabe
 
Swiftで機械学習(Play Machinelearning with Swift easily)
Swiftで機械学習(Play Machinelearning with Swift easily)Swiftで機械学習(Play Machinelearning with Swift easily)
Swiftで機械学習(Play Machinelearning with Swift easily)Yusuke Yoshie
 
Eccv2020_chained tracker
Eccv2020_chained trackerEccv2020_chained tracker
Eccv2020_chained trackerKyominSasaki
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1Toshiaki Maki
 
march report in japanese
march report in japanesemarch report in japanese
march report in japanesenao takatoshi
 
[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation
[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation
[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth EstimationKazuyuki Miyazawa
 
PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法Shinsuke Sugaya
 
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみようEinsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみようSalesforce Developers Japan
 
JPC2018[D1]「信頼できるCloud」のために ― マイクロソフト法務部門からお伝えしたいこと
JPC2018[D1]「信頼できるCloud」のために ― マイクロソフト法務部門からお伝えしたいことJPC2018[D1]「信頼できるCloud」のために ― マイクロソフト法務部門からお伝えしたいこと
JPC2018[D1]「信頼できるCloud」のために ― マイクロソフト法務部門からお伝えしたいことMPN Japan
 
20200819 VIoT-LT uiflow
20200819 VIoT-LT uiflow20200819 VIoT-LT uiflow
20200819 VIoT-LT uiflowShigekiInatama
 
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Etsuji Nakai
 
誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代Yoshitaka Seo
 
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けてSSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けてSSII
 

Similaire à Machine learning at swift3 (20)

MISO20200530
MISO20200530MISO20200530
MISO20200530
 
Pythonとベイズ統計
Pythonとベイズ統計Pythonとベイズ統計
Pythonとベイズ統計
 
エンタープライズと機械学習技術
エンタープライズと機械学習技術エンタープライズと機械学習技術
エンタープライズと機械学習技術
 
Pythonで機械学習をやってみる(bizpy 1/19 2022)
Pythonで機械学習をやってみる(bizpy 1/19 2022)Pythonで機械学習をやってみる(bizpy 1/19 2022)
Pythonで機械学習をやってみる(bizpy 1/19 2022)
 
Festa awsとkintoneでIoT
Festa awsとkintoneでIoTFesta awsとkintoneでIoT
Festa awsとkintoneでIoT
 
Sapporo20140709
Sapporo20140709Sapporo20140709
Sapporo20140709
 
Swiftで機械学習(Play Machinelearning with Swift easily)
Swiftで機械学習(Play Machinelearning with Swift easily)Swiftで機械学習(Play Machinelearning with Swift easily)
Swiftで機械学習(Play Machinelearning with Swift easily)
 
Eccv2020_chained tracker
Eccv2020_chained trackerEccv2020_chained tracker
Eccv2020_chained tracker
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
 
march report in japanese
march report in japanesemarch report in japanese
march report in japanese
 
[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation
[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation
[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation
 
OpenCV on mobile
OpenCV on mobileOpenCV on mobile
OpenCV on mobile
 
PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法
 
AIとの付き合い方
AIとの付き合い方AIとの付き合い方
AIとの付き合い方
 
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみようEinsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみよう
 
JPC2018[D1]「信頼できるCloud」のために ― マイクロソフト法務部門からお伝えしたいこと
JPC2018[D1]「信頼できるCloud」のために ― マイクロソフト法務部門からお伝えしたいことJPC2018[D1]「信頼できるCloud」のために ― マイクロソフト法務部門からお伝えしたいこと
JPC2018[D1]「信頼できるCloud」のために ― マイクロソフト法務部門からお伝えしたいこと
 
20200819 VIoT-LT uiflow
20200819 VIoT-LT uiflow20200819 VIoT-LT uiflow
20200819 VIoT-LT uiflow
 
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編
 
誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代
 
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けてSSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
 

Plus de Daisuke Nagata

iOSDC Japan 2019 Reject Conference days1[非公式]
iOSDC Japan 2019 Reject Conference days1[非公式]iOSDC Japan 2019 Reject Conference days1[非公式]
iOSDC Japan 2019 Reject Conference days1[非公式]Daisuke Nagata
 
Swift love party _meeting_materials
Swift love party _meeting_materialsSwift love party _meeting_materials
Swift love party _meeting_materialsDaisuke Nagata
 
Metalプログラミング
MetalプログラミングMetalプログラミング
MetalプログラミングDaisuke Nagata
 
Swiftプログラミングを考える
Swiftプログラミングを考えるSwiftプログラミングを考える
Swiftプログラミングを考えるDaisuke Nagata
 
実践業務を爆速でこなすtipsとgenerics
実践業務を爆速でこなすtipsとgenerics 実践業務を爆速でこなすtipsとgenerics
実践業務を爆速でこなすtipsとgenerics Daisuke Nagata
 
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみてRealm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみてDaisuke Nagata
 
Sansan様 登壇資料
Sansan様 登壇資料Sansan様 登壇資料
Sansan様 登壇資料Daisuke Nagata
 
クラスメソッド第4回登壇資料 RxRealm
クラスメソッド第4回登壇資料 RxRealmクラスメソッド第4回登壇資料 RxRealm
クラスメソッド第4回登壇資料 RxRealmDaisuke Nagata
 
Rx swift,Repro framewolrk
Rx swift,Repro framewolrkRx swift,Repro framewolrk
Rx swift,Repro framewolrkDaisuke Nagata
 
キャリアとアプリの アップデート
キャリアとアプリの アップデートキャリアとアプリの アップデート
キャリアとアプリの アップデートDaisuke Nagata
 

Plus de Daisuke Nagata (13)

iOSDC Japan 2019 Reject Conference days1[非公式]
iOSDC Japan 2019 Reject Conference days1[非公式]iOSDC Japan 2019 Reject Conference days1[非公式]
iOSDC Japan 2019 Reject Conference days1[非公式]
 
Swift love party _meeting_materials
Swift love party _meeting_materialsSwift love party _meeting_materials
Swift love party _meeting_materials
 
Swift愛好会vol37
Swift愛好会vol37Swift愛好会vol37
Swift愛好会vol37
 
Ios machine learning
Ios machine learningIos machine learning
Ios machine learning
 
Metalプログラミング
MetalプログラミングMetalプログラミング
Metalプログラミング
 
Swiftプログラミングを考える
Swiftプログラミングを考えるSwiftプログラミングを考える
Swiftプログラミングを考える
 
実践業務を爆速でこなすtipsとgenerics
実践業務を爆速でこなすtipsとgenerics 実践業務を爆速でこなすtipsとgenerics
実践業務を爆速でこなすtipsとgenerics
 
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみてRealm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみて
 
Sansan様 登壇資料
Sansan様 登壇資料Sansan様 登壇資料
Sansan様 登壇資料
 
クラスメソッド第4回登壇資料 RxRealm
クラスメソッド第4回登壇資料 RxRealmクラスメソッド第4回登壇資料 RxRealm
クラスメソッド第4回登壇資料 RxRealm
 
Rx swift,Repro framewolrk
Rx swift,Repro framewolrkRx swift,Repro framewolrk
Rx swift,Repro framewolrk
 
Realm meet up #17
Realm meet up #17Realm meet up #17
Realm meet up #17
 
キャリアとアプリの アップデート
キャリアとアプリの アップデートキャリアとアプリの アップデート
キャリアとアプリの アップデート
 

Machine learning at swift3