Slide 1

Slide 1 text

Foundation Model × VisionKit で 実現するローカル OCR Sansan株式会社 技術本部 Eight Engineering Unit Mobile Application グループ 藤⾨ 莉⽣

Slide 2

Slide 2 text

2 © Sansan, Inc. ⾃⼰紹介 - 名前:藤⾨ 莉⽣(Rio Fujimon) - 所属:Eight Engineering Unit Mobile Application グループ - 担当:Eight の iOS 版アプリを開発 - 趣味:ランニング 🏃, 野球観戦 ⚾, etc

Slide 3

Slide 3 text

3 © Sansan, Inc. © Sansan, Inc.

Slide 4

Slide 4 text

4 © Sansan, Inc. 出典:Apple公式サイト(https://www.apple.com/jp/newsroom/2025/05/apples-worldwide-developers-conference-kicks-off-june-9/)

Slide 5

Slide 5 text

🗣 様々な内容が発表されましたね ✨

Slide 6

Slide 6 text

6 © Sansan, Inc. 出典:Apple公式サイト(https://www.apple.com/jp/newsroom/2025/06/apple-elevates-the-iphone-experience-with-ios-26/)

Slide 7

Slide 7 text

7 © Sansan, Inc. iOS 26 の登場 & Liquid Glass へのデザイン変更 出典:Apple公式サイト(https://www.apple.com/jp/newsroom/2025/06/apple-elevates-the-iphone-experience-with-ios-26/)

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Speech Analyzer による ⾼度な⾳声のテキスト変換が可能になった

Slide 10

Slide 10 text

⾊々発表されていますが、 やはり今後特に注⽬していくのは... 👀

Slide 11

Slide 11 text

11 © Sansan, Inc. 出典:Apple公式サイト(https://developer.apple.com/jp/machine- learning/) Foundation Models

Slide 12

Slide 12 text

12 © Sansan, Inc. - Foundation Models とは? - オンデバイスの⼤規模⾔語モデル(Local LLM) - メリット - オフラインで動作する - プライバシーを完全保護する - OS に組み込まれているため、アプリサイズが増加しない - 型安全な構造化データが⽣成できる - デメリット - Server Scale の LLM より性能が低い - 得意なこと - 要約・分類・抽出 - 苦⼿なこと - ⾼度な推論・最新の知識・⼤規模計算 → Server Scale の LLM に任せる Foundation Models の概要

Slide 13

Slide 13 text

本⽇の話を理解するために抑えるべき Foundation Models の内容は基本のみ 🔰

Slide 14

Slide 14 text

1. LanguageModelSession を作成 a. instructions:モデルの動作を制御する指⽰ 2. .respond(to: Prompt) で、結果を⽣成

Slide 15

Slide 15 text

1. .streamResponse(to: ) -> sending LanguageModelSession.ResponseSteram で、 レスポンスのストリームを取得 2. for await ループを利⽤することで、逐次的な⽣成結果として、 Optional な Generable.PartiallyGenerated を取得

Slide 16

Slide 16 text

Generable Macroを付与した型を Generable 型に変 換 プロパティの許可値を制御 Generable 型の ネストも扱える GenerationGuideで プロパティの⽣成⽅法を制御

Slide 17

Slide 17 text

「generating: 」に、Generable Macro を付与した型を指定すると、 指定した型が⽣成される

Slide 18

Slide 18 text

Foundation Models の基本はバッチリ 👍

Slide 19

Slide 19 text

ここからが本題です 🔥

Slide 20

Slide 20 text

VisionKit × Foundation Models で、 名刺撮影の ローカル OCR 機能を実装する

Slide 21

Slide 21 text

21 © Sansan, Inc. VisionKit(DataScannerViewController)

Slide 22

Slide 22 text

22 © Sansan, Inc. DataScannerViewController.init & RecognizedDataType

Slide 23

Slide 23 text

23 © Sansan, Inc. RecognizedDataType & TextContentType

Slide 24

Slide 24 text

テキストは取得できるが、 テキストの内容(意味)は ⼀部しか判定できない 😭

Slide 25

Slide 25 text

外部 API などを利⽤せずに 認識するテキスト内容の制限の 壁を超えたい 🧐

Slide 26

Slide 26 text

Foundation Models を 利⽤することで解決可能では 💡

Slide 27

Slide 27 text

27 © Sansan, Inc. 読み取り内容を @Generable や @Guide を付与した型として定義

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

29 © Sansan, Inc. 実⾏結果

Slide 30

Slide 30 text

30 © Sansan, Inc. まとめ Foundation Models × Apple 標準の API で、 オンデバイスで可能な実装の幅が広がる 🔍

Slide 31

Slide 31 text

31 © Sansan, Inc. 採⽤募集中

Slide 32

Slide 32 text

32 © Sansan, Inc. Appendix(1枚の名刺と判定する処理の流れ)

Slide 33

Slide 33 text

33 © Sansan, Inc. Appendix(初期クラスタリング)

Slide 34

Slide 34 text

34 © Sansan, Inc. Appendix(クラスターの結合)

Slide 35

Slide 35 text

35 © Sansan, Inc. Appendix(読み順ソート)

Slide 36

Slide 36 text

No content