Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Core ML でiOSアプリはどう変わるのか
Search
Takaaki Tanaka
August 28, 2017
Technology
330
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Core ML でiOSアプリはどう変わるのか
第二回 合同勉強会 in 福岡での発表資料です
Takaaki Tanaka
August 28, 2017
More Decks by Takaaki Tanaka
See All by Takaaki Tanaka
現場に降りてきたAI フィジカルAIの技術スタックと実案件デモ #devio2026
kongmingstrap
0
280
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
690
Zenn のウラガワ ~エンジニアのアウトプットを支える環境で Google Cloud が採用されているワケ~ #burikaigi #burikaigi_h
kongmingstrap
22
8.6k
AWS re:Invent 2024 ふりかえり
kongmingstrap
0
520
製造の課題に立ち向かう Manufacturing Data Engine と Manufacturing Connect の ご紹介
kongmingstrap
0
1.4k
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
1k
JAWS-UG 福岡 #16 re:Invent 現地に行った人のお話 #jawsugfuk #jawsug
kongmingstrap
0
810
AppMod の開発のイマを知るために現地に潜入した私が見たものは・・・? #GoogleCloudNext
kongmingstrap
0
900
Kong Gateway から読みとく、 API統合・API連携サービスの最新情報 #devio2023
kongmingstrap
0
2.3k
Other Decks in Technology
See All in Technology
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
470
An Introduction to Context Ontology Accelerator (teaching AI agents what your data means)
inariku
PRO
1
180
JAWSコミュニティに 参加して1年経った結果
ssakita
0
120
自治体AIコンタクトセンター、何をどこに任せる?~Amazon Connect Customer +Amazon Bedrockの実践知~ / 20261107 Satoshi Torano
shift_evolve
PRO
1
120
FinOpsを導入してマルチプロダクトのコスト最適化を実現する
kworkdev
PRO
0
140
llm-d に入門してみた / Try out llm-d
kota2and3kan
0
100
re:Invent2026 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
170
会社説明資料_最新版
demaecan
0
32k
自律的なチームを作るためにTechPMがやらないこと
ny7760
1
530
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
190
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
4
1.7k
2026 Apache Flink Community Checkpoint
rmetzger
0
200
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
247
13k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
480
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
290
Building AI with AI
inesmontani
PRO
1
1.4k
Darren the Foodie - Storyboard
khoart
PRO
4
4.1k
For a Future-Friendly Web
brad_frost
184
11k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
510
Everyday Curiosity
cassininazir
0
400
Designing for Performance
lara
612
70k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
670
Skip the Path - Find Your Career Trail
mkilby
1
290
Transcript
2017/08/26 Core ML Ͱ iOSΞϓϦ Ͳ͏มΘΔͷ͔ ୈೋճ ߹ಉษڧձ in Ԭ
About Me
• ాத ໌ (Takaaki Tanaka) • Ϋϥεϝιουגࣜձࣾ • @kongmingtrap •
Swift / Objective-C / Scala / JavaScript … • GyazSquare / GitHub
Introduction
WWDC17
None
Swift 4 ARKit Core ML HomeKit MusicKit Files Vision SiriKit
Xcode
Swift 4 ARKit Core ML HomeKit MusicKit Files Vision SiriKit
Xcode
Core ML IUUQTEFWFMPQFSBQQMFDPNNBDIJOFMFBSOJOH
Core ML Core MLɺSiriɺCameraɺQuickTypeͳͲɺApple શମͰ༻͞Ε͍ͯΔ৽͍͠جૅతͳϚγϯֶ शϑϨʔϜϫʔΫΛ׆༻͍ͯͩ͘͠͞ɻ Core ML ɺػցֶशϞσϧΛ؆୯ʹ౷߹ͯ͠ڻ͘΄Ͳߴ ͳύϑΥʔϚϯεΛ࣮ݱ͠ɺߦͷίʔυΛ༻͠
ͯΠϯςϦδΣϯτͳ৽ػೳΛඋ͑ͨΞϓϦΛߏ ஙͰ͖·͢ɻ
Core ML ͷొʹΑͬͯ • ઐࣝΛඞཁͱͨ͠ɺը૾ೖྗˠʮֶश Ϟσϧʯˠʮ݁Ռʯˠʮ݁Ռग़ྗʯΛհ ͢ΔͨΊɺiOSΞϓϦ୲ऀʹͱͬͯɺʮֶ शϞσϧʯΛཧղͤͣͱػցֶशͷԸܙ ΛಘΒΕΔΑ͏ʹͳͬͨɻ
Agenda • Core MLͱपลٕज़ • Core MLΛࢼ͢ • ࣗ࡞ͷֶशϞσϧΛΠϯϙʔτͯ͠ΈΔ
Caution!! • ػցֶशɾσΟʔϓϥʔχϯάʹ͍ͭͯ ৄղ͠·ͤΜ • ϞσϧͷੜϩδοΫʹؔͯ͠ͷઆ໌͠ ·ͤΜ
Core MLͱपลٕज़
Core ML
Core ML
Vision
IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZ XXED
Vision IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOWJTJPO
Face Detection and Recognition
Face Detection and Recognition
Face Detection and Recognition
Face Detection and Recognition
Face Detection and Recognition
Machine Learning Image Analysis
Barcode Detection
Barcode Detection
Image Alignment Analysis
Text Detection
Text Detection
Horizon Detection
Object Detection and Tracking
Object Detection and Tracking
Natural language processing
IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZ XXED
IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZ XXED
IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZ XXED
Core MLΛࢼ͢
ͳΔ͘ҙࣝͤͣʹͰ͖Δ͜ ͱΛΓ͍ͨ
IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPODPSFNM HFUUJOH@B@DPSF@NM@NPEFM
IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPODPSFNM JOUFHSBUJOH@B@DPSF@NM@NPEFM@JOUP@ZPVS@BQQ
IUUQTEFWFMPQFSBQQMFDPNNBDIJOFMFBSOJOH
Core ML
Import
None
VNCoreMLModel
VNCoreMLRequest guard let coreMLModel = try? VNCoreMLModel(for: Inceptionv3().model) else {
fatalError("faild create VMCoreMLModel") } guard let ciImage = CIImage(image: image) else { fatalError("faild convert CIImage") } let request = VNCoreMLRequest(model: coreMLModel) { request, error in guard let results = request.results as? [VNClassificationObservation] else { fatalError("Error faild results") } if let classification = results.first { self.identifierLabel.text = classification.identifier self.confidenceLabel.text = "\(classification.confidence)" } else { print("error") } } let handler = VNImageRequestHandler(ciImage: ciImage, options: [:]) guard (try? handler.perform([request])) != nil else { fatalError("faild handler.perform”) }
VNCoreMLRequest guard let coreMLModel = try? VNCoreMLModel(for: Inceptionv3().model) else {
fatalError("faild create VMCoreMLModel") } guard let ciImage = CIImage(image: image) else { fatalError("faild convert CIImage") } let request = VNCoreMLRequest(model: coreMLModel) { request, error in guard let results = request.results as? [VNClassificationObservation] else { fatalError("Error faild results") } if let classification = results.first { self.identifierLabel.text = classification.identifier self.confidenceLabel.text = "\(classification.confidence)" } else { print("error") } } let handler = VNImageRequestHandler(ciImage: ciImage, options: [:]) guard (try? handler.perform([request])) != nil else { fatalError("faild handler.perform”) } $PSF.-.PEFMΛࢦఆ
VNCoreMLRequest guard let coreMLModel = try? VNCoreMLModel(for: Inceptionv3().model) else {
fatalError("faild create VMCoreMLModel") } guard let ciImage = CIImage(image: image) else { fatalError("faild convert CIImage") } let request = VNCoreMLRequest(model: coreMLModel) { request, error in guard let results = request.results as? [VNClassificationObservation] else { fatalError("Error faild results") } if let classification = results.first { self.identifierLabel.text = classification.identifier self.confidenceLabel.text = "\(classification.confidence)" } else { print("error") } } let handler = VNImageRequestHandler(ciImage: ciImage, options: [:]) guard (try? handler.perform([request])) != nil else { fatalError("faild handler.perform”) } $**NBHFΛऔಘ
VNCoreMLRequest guard let coreMLModel = try? VNCoreMLModel(for: Inceptionv3().model) else {
fatalError("faild create VMCoreMLModel") } guard let ciImage = CIImage(image: image) else { fatalError("faild convert CIImage") } let request = VNCoreMLRequest(model: coreMLModel) { request, error in guard let results = request.results as? [VNClassificationObservation] else { fatalError("Error faild results") } if let classification = results.first { self.identifierLabel.text = classification.identifier self.confidenceLabel.text = "\(classification.confidence)" } else { print("error") } } let handler = VNImageRequestHandler(ciImage: ciImage, options: [:]) guard (try? handler.perform([request])) != nil else { fatalError("faild handler.perform”) } 7/$PSF.-3FRVFTUΛ࡞
VNCoreMLRequest guard let coreMLModel = try? VNCoreMLModel(for: Inceptionv3().model) else {
fatalError("faild create VMCoreMLModel") } guard let ciImage = CIImage(image: image) else { fatalError("faild convert CIImage") } let request = VNCoreMLRequest(model: coreMLModel) { request, error in guard let results = request.results as? [VNClassificationObservation] else { fatalError("Error faild results") } if let classification = results.first { self.identifierLabel.text = classification.identifier self.confidenceLabel.text = "\(classification.confidence)" } else { print("error") } } let handler = VNImageRequestHandler(ciImage: ciImage, options: [:]) guard (try? handler.perform([request])) != nil else { fatalError("faild handler.perform”) } ݁Ռ͕ϋϯυϥʔͰฦͬͯ͘ΔͨΊ ॲཧ͍ͨ͠༰Λهड़
VNCoreMLRequest guard let coreMLModel = try? VNCoreMLModel(for: Inceptionv3().model) else {
fatalError("faild create VMCoreMLModel") } guard let ciImage = CIImage(image: image) else { fatalError("faild convert CIImage") } let request = VNCoreMLRequest(model: coreMLModel) { request, error in guard let results = request.results as? [VNClassificationObservation] else { fatalError("Error faild results") } if let classification = results.first { self.identifierLabel.text = classification.identifier self.confidenceLabel.text = "\(classification.confidence)" } else { print("error") } } let handler = VNImageRequestHandler(ciImage: ciImage, options: [:]) guard (try? handler.perform([request])) != nil else { fatalError("faild handler.perform”) } ը૾ղੳϋϯυϥʔΛ࡞͠ QFSGPSN͢Δ
Demo
ࣗ࡞ͷֶशϞσϧΛ Πϯϙʔτͯ͠ΈΔ
motivation
IUUQTXXXTMJEFTIBSFOFUDIPNBEP YBNBSJONTBJDVTUPNWJTJPOTFSWJDF
Custom Vision Service͠Ύ͍͝…
Core ML modelͷ࡞
mlmodel Core ML Λར༻͢Δʹ͋ͨͬͯɺ۩ମతʹɺ Keras Caffe ͷΑ͏ͳػցֶशϑϨʔϜ ϫʔΫ͕ग़ྗͨ͠Ϟσϧ͔Β .mlmodel
ͱ͍͏ ϑΝΠϧΛ࡞͠ɺ͜ΕΛ Xcode ʹΠϯϙʔ τ͠·͢ɻ ҎԼͰɺ.mlmodel ϑΝΠϧͷ࡞ ํ๏Λݟ͍͖ͯ·͢ɻ
Converting Trained Models to Core ML IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPODPSFNM DPOWFSUJOH@USBJOFE@NPEFMT@UP@DPSF@NM
coremltools 0.5.1 IUUQTQZQJQZUIPOPSHQZQJDPSFNMUPPMT Keras Caffe ͷΑ͏ͳػցֶशϑϨʔϜ ϫʔΫ͕ग़ྗͨ͠Ϟσϧ͔Β .mlmodel ʹม
Ͱ͖ΔϓϩάϥϜΛఏڙɻʢΦʔϓϯιʔεʣ
coremltools 0.5.1 IUUQTQZQJQZUIPOPSHQZQJDPSFNMUPPMT
Keras IUUQTLFSBTJPKB
KerasͰֶशϞσϧΛੜ • ޭը૾ɺࣦഊը૾Λ४උ • ޭɾࣦഊը૾ͷਖ਼σʔλΛ४උ • EC2ʹػցֶश༻ͷAMI͕ఏڙ͞Ε͍ͯΔ ͷͰΠϯελϯεΛ֬อ
None
None
None
None
None
KerasͰֶशϞσϧΛੜ • ܇࿅ϓϩάϥϜͷ࡞ • ܇࿅Λ࣮ߦ • ܇࿅ͨ݁͠ՌͷֶशϞσϧΛcoremltoolsΛ ར༻ͯ͠mlmodelʹม͢Δ
܇࿅ϓϩάϥϜ • CIFAR10Λࢀߟʹ܇࿅ϓϩάϥϜΛ࡞͢ Δ IUUQTHJUIVCDPNGDIPMMFULFSBTCMPCNBTUFS FYBNQMFTDJGBS@DOOQZ
None
QZUIPOVEO@NBJOQZ ܇࿅Λ࣮ߦ
None
coremltoolsͰίϯόʔτ • coremeltoolsΛΠϯετʔϧ͢Δ QJQJOTUBMMDPSFNMUPPMT
coremltoolsͰίϯόʔτ • KerasͷֶशϞσϧΛCore MLͰར༻Ͱ͖Δ ܗࣜʹมߋ͢Δ • ม༻ͷϓϩάϥϜΛ࡞͢Δ
QZUIPODPOWFSUQZ มΛ࣮ߦ
coremltools
Recap • Vision frameworkͷڧྗͳαϙʔτͰը૾ղ ੳɺจࣈݕग़ָʹ࣮Մೳ • ֶशϞσϧͷ࡞ʹઐ͕ࣝඞཁ • ωοτϫʔΫΛհͣ͞ʹػցֶशϞσϧΛ ར༻͢Δ͜ͱ͕Ͱ͖Δ
• ओʹը૾ݕग़Ͱར༻͢Δ߹͕ଟͦ͏
ँࣙ • KerasͰ͡ΊΔDeepLearning • http://dev.classmethod.jp/machine-learning/introduction-keras- deeplearning/ • Keras + iOS11
CoreML + Vision Framework ʹΑΔɺΫϩإࣝ ผΞϓϦͷ։ൃ • http://qiita.com/kenmaz/items/d416b191f79f60e07752 • 20170818_Xamarinجຊ + MSͷAIαʔϏεʮCustom Vision Serviceʯʹ͍ͭͯ • https://www.slideshare.net/chomado/20170818xamarin-msaicustom- vision-service
એ
એ
Thank you!