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
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
4
3.7k
いかに伝えるか 〜新卒エンジニアの教育のための、ライトノベル活用の一例
ikedon
1
210
Sigmaユーザーのための有用リソース一挙公開 & Sigmaで使えるMCP #sigma_ucj /useful-resources-for-sigma-computing-users-and-mcps-with-sigma
shinyaa31
0
120
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
270
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
2
460
【Oracle AI Spotlight ウェビナー】AWSか、Azureか、Google Cloudか。その議論にオラクルを含める意義。
oracle4engineer
PRO
2
240
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
250
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.5k
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
580
現場に行くだけでは足りない——プロダクトエンジニアが業務の流れを捉える観点と、その鍛え方
takumiengineering
0
300
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
250
少人数データチームのDevin活用実践事例
runandy16
2
440
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Everyday Curiosity
cassininazir
0
310
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
450
The Cost Of JavaScript in 2023
addyosmani
55
10k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
260
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The Curse of the Amulet
leimatthew05
2
14k
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