Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CoreMLで実現する爆速のARサイズ計測
Search
Kohei Arai
September 06, 2019
Technology
2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CoreMLで実現する爆速のARサイズ計測
9/6(金)に行われたiOSDC 2019でのLT資料です。
Kohei Arai
September 06, 2019
More Decks by Kohei Arai
See All by Kohei Arai
VisionKit_Basics.pdf
kokoheia
0
210
Swift5_Cheet_Sheet.pdf
kokoheia
7
1.4k
Other Decks in Technology
See All in Technology
Pavlokで始める電撃駆動開発
sgrsn
0
190
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
240
【AG-UI × A2UI × MCP Apps】Generative UIをやさしく解説する
nrinetcom
PRO
1
110
関東Kaggler会発表資料
takoi
1
220
SmartHR Engineering Team Deck
smarthr
1
1.9k
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
7.1k
認知負荷をGemini で溶かす — GKE 基盤「Orbit」における AI エージェントの実践
sansantech
PRO
1
290
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
530
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
110
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
320
[しろおび夏祭り2026] チャットするAIから、作業するAIへ - 使われ方の変化と、その裏側で起きていること
kk0n
0
1.7k
【CEDEC2026】グラフィックスエンジニアのためのニューラルシェーディング入門
cygames
PRO
0
140
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
470
What's in a price? How to price your products and services
michaelherold
247
13k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
240
Being A Developer After 40
akosma
91
590k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
440
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
Building the Perfect Custom Keyboard
takai
2
840
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
590
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
250
Typedesign – Prime Four
hannesfritz
42
3.1k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Fireside Chat
paigeccino
42
4k
Transcript
iOSDC 2019 CoreMLで実現する 爆速のARサイズ計測 Kohei Arai @kokoheia
Kohei Arai @kokoheia • Mercari / 新卒 iOS Engineer •
Twitter: @kokoheia • Instagram: @kokoheia • ポートレートを撮るのが趣味です • 最近PUBGにハマっています
突然ですが、みなさん こんな経験をしたことは ありませんか?
「フリマアプリで洋服を出品したい!」
特に、洋服の「サイズ」を載せたい (コメントで聞かれた。。)
そうだ、AR Measureで 測ってみよう!
。。。。
。。。結構面倒くさい • そもそも測る場所がわからない • 測り方が合ってるか自信ない • 何枚も出品したいけど時間かけたくない。。
IN THE NEXT FIVE MONTHS ARメジャーの課題 • ARの体験に慣れるのに時間がかかる • 大きいものを測るのが大変
• メジャーを代替しただけなので計測にかか る時間はあまり変わらず Item 1 Item 2 Item 3 Item 4 Item 5 40 30 20 10 0
テクノロジーを使って もっと簡単に測ることは できないか!?
ML(機械学習) ✖AR で 爆速 & 超簡単にサイズ計測する
Demo
None
仕組み 画像を撮影 ML(機械学習)で 画像内の特徴点の座標を 推定 特徴点の座標を元に AR Kitを使って現実世界 のスケールを得る。
MLモデル created by ARヒノボル / @liketableteninu 姿勢推定のモデルを応用 Alibabaのデータセット
2Dの推定 3Dの推定(AR) 仕組み
どれくらい 速くなったのか?
測定した対象 袖丈、肩幅、身幅、着丈の4点 出典: https://minne.com/items/17640623
サイズ計測にかかる時間 自力 ML + AR 40 ~ 50秒 10 ~
15秒
もっと速くしたい!
CoreMLを使って サーバレスで推定
Demo 2: CoreML
None
サイズ計測にかかる時間 自力 AR + ML (サーバー) 40 ~ 50秒 10
~ 15秒 AR + CoreML 5秒未満
MLモデルの生成 Created by ARヒノボル / @liketableteninu
推定の精度 サーバー CoreML 身幅 2cm以内 2cm以内 着丈 5cm以内 5cm以内 袖丈
10cm前後 10cm前後 肩幅 10cm前後 10cm前後 推定しやすい 推定しづらい
• モデル自体を改善する ◦ カテゴリごとの画像の数を増やして学習する • 物体認識の精度をあげる (for CoreML) ◦ 機械学習で物体認識してから、その範囲内で推定すると精度が上がる
精度を改善するために
ML ✖ AR Measureの可能性 • 人間のサイズも測定できる → 服と照らし合わせてフィット度を計測する • 靴やインテリアなど、服以外の商品にも応用が可能
ご清聴ありがとうございました!
おまけ
推定の速度 サーバー(GPU) サーバー(CPU) CoreML 2 ~ 3秒以下 6秒程度 1秒以下
月あたりコスト(一例) サーバー(GPU) サーバー(CPU) CoreML 約68,000円 / 台 約13,000円 / 台
無料 GPUはaws p2.xlarge, CPUはaws c5xlargeを参照。 GPU: 0.9(USD/hr) * 24 hrs * 30 days * 105(JPY/USD) = 68,040JPY CPU: 0.17(USD/hr) * 24 hrs * 30 days * 105(JPY/USD) = 12,852JPY
Pytorchからモデルを変換した理由 • Turi Create や Create MLでモデルを作ることも 検討した • Pythonで書かれた機械学習用のライブラリに比
べるとできる処理も限られていたためPytorchか らの変換を採用
非同期のHit Test処理
非同期のHit Test処理のTips Hit Testには3種類ある • ARSCNView hitTest(_ point: CGPoint, types:
ARHitTestResult.ResultType) -> [ARHitTestResult] • ARSKView hitTest(_ point: CGPoint, types: ARHitTestResult.ResultType) -> [ARHitTestResult] • ARFrame hitTest(_ point: CGPoint, types: ARHitTestResult.ResultType) -> [ARHitTestResult]
非同期のHit Test処理のTips • 画像をサーバに送りレスポンスが帰ってくるのを待たなくては行 けなかった • 今回は画像撮影時のARFrameを保存しておいて、レスポンスが 帰ってきてから、保存済みのARFrameからhitTest処理をするとい う実装をした •
最初、予想した結果とはるかに異なる点がプロットされて戸惑っ た
非同期のHit Test処理のTips ARFrameを使ってhitTestをするときは、結果をinvertしないといけなかった
参考 • https://www.digitaltrends.com/mobile/how-to-use-the-measure-app-in-ios-12/ • https://github.com/matterport/Mask_RCNN • https://github.com/LiMeng95/MultiPoseNet.pytorch • https://tianchi.aliyun.com/mobile/gameDetail/231670 •
https://qiita.com/kamata1729/items/e54bcb7d0ed3d296daf8 • https://aws.amazon.com/jp/emr/pricing/ • https://pytorch.org/ • https://github.com/onnx/onnx • https://github.com/onnx/onnx-coreml • https://developer.apple.com/documentation/arkit/arframe/2875718-hittest