Open23

What's new in VisionKit

Ryo TsuzukihashiRyo Tsuzukihashi

https://developer.apple.com/wwdc23/10048

VisionKitを使用して、アプリ内の画像から被写体をすばやく持ち上げたり、Visual Look Upで画像の内容を詳しく知ることができる方法をご紹介しています。また、Live Textインタラクション、データスキャン、macOSアプリのサポート拡大など、VisionKitの最新アップデートをご紹介します。VisionKitについては、WWDC23の「Lift subjects from images in your app」をご覧ください。

Ryo TsuzukihashiRyo Tsuzukihashi

画像の被写体を長押しするだけで、周囲から浮き上がり、美しいアニメーションのような輝きを放ち、共有したり、Visual Look Upを呼び出したりすることができます。

Ryo TsuzukihashiRyo Tsuzukihashi

iOS 17の新機能として、持ち上げた被写体を使ってステッカーを作成できるようになり、ピカピカ、パフパフなどの楽しいエフェクトをかけて、友達や家族と共有できるようになりました。

Ryo TsuzukihashiRyo Tsuzukihashi

[朗報]リフティングを統合することは非常に簡単
昨年のビデオと同じコードスニペットで、画像を解析してインタラクションにセットしているコード
コードを変更することなく、Subject Liftingをサポートしている

Ryo TsuzukihashiRyo Tsuzukihashi

アナライザーの設定に特別なものを渡していないことに注目!
これは、パワーとパフォーマンスを維持するために、Subject Liftingの解析は、最初の解析が完了した後、相互作用によって別々に処理されるから。
iOSの場合は画面に表示されてから数秒後に、macOSの場合は初めてメニューが表示された時にこの処理が発生します。
つまり、ユーザーが多くの写真をスワイプするようなケースに対応する必要がないのです。

Ryo TsuzukihashiRyo Tsuzukihashi

必要なのは、適切なインタラクションタイプ(この場合は自動)が設定されていることを確認することだけで、あとはインタラクションが処理する。

Ryo TsuzukihashiRyo Tsuzukihashi

インタラクションの種類

  • Automaticは、テキストインタラクション、Subject Liftingなどを組み合わせた、既定のアウトオブボックス体験を提供
  • テキスト選択やデータ検出を行わず、サブジェクトリフティングのみを行う場合は、インタラクションタイプを .imageSegmentation に設定するか、他のタイプと組み合わせることができる
  • Subject Liftingがアプリにとって意味をなさないが、iOS 16からの以前の自動動作が必要な場合は、新しいタイプ、.automaticTextOnlyを使用する
Ryo TsuzukihashiRyo Tsuzukihashi

今年のVisionKitは、Visual Look Upにも対応

Visual Look Upは、ペット、自然、ランドマーク、アート、メディアを簡単に識別し、学ぶことができる

iOS 17では、Visual Look Upが食品、製品、標識・記号などのドメインを追加でサポート
洗濯物のタグに書かれている記号の意味を簡単に調べることができるようになった

Ryo TsuzukihashiRyo Tsuzukihashi

Visual Look Upがどのように機能するのか

初期処理は、解析時にすべてデバイス上で行われる

アナライザー構成に .visualLookUp タイプがある場合、Visual Look Up は結果のバウンディングボックスとそのトップレベルドメインを特定します

ユーザーがオブジェクトの検索を要求すると、その時だけ、特徴抽出によるドメインと画像の埋め込みが追加処理のためにサーバーに送信されます

Ryo TsuzukihashiRyo Tsuzukihashi

アプリに追加するために必要なアクション

Visual Look Upは、2種類の方法で呼び出すことができる
1つ目は、サブジェクト・リフティングと連動して、現在リフティングされているサブジェクトに、相関するビジュアル検索結果が1つだけ含まれている場合、メニューに検索オプションが表示され、それを選択すると、検索結果がすべて表示されます。

解析時にアナライザーの設定に.visualLookUpを追加していただくだけでよい

Ryo TsuzukihashiRyo Tsuzukihashi

2つ目は、ビジュアル検索結果の上にバッジを配置するモーダルインタラクションを用意したことです。

このモードは、インタラクションのpreferredInteractionTypeとして.visualLookUpを設定することで呼び出されます。

注意:このタイプは、他のインタラクションタイプよりも優先される
そのため、通常はボタンと組み合わせて使うなど、オーダーメイドでこのモードを出し入れすることになります。例えば、クイックルックでは、情報ボタンを使ってビジュアルルックアップモードに入ります。

Ryo TsuzukihashiRyo Tsuzukihashi

Data Scannerの新しいAPIや機能

iOS 16で導入されたDataScannerViewControllerは、ライブカメラのビューファインダーでOCRを使用する最も簡単な方法として設計された

iOS 17では、オプティカル・フロー・トラッキングに加え、通貨のサポートが強化されている

iOS 16

iOS 17


ハイライトの安定感や接地感が以前より格段に向上した

Ryo TsuzukihashiRyo Tsuzukihashi

オプティカル・フロー・トラッキングは、DataScannerViewControllerを使用する際に提供されますが、テキスト認識時のみ利用可能で、機械読み取り可能なコードには対応していません。

そして、特定のテキストコンテンツタイプが設定されていないテキストをスキャンすることも要求されます。

ハイフレームレートトラッキングが有効になっていることを確認してください。

どのように構成しても、データスキャナーは優れたテキストトラッキングを提供しますが、ユースケースでこの構成が可能であれば、新しいオプティカル・フロー・トラッキングでさらに強化することができます。

Ryo TsuzukihashiRyo Tsuzukihashi

データスキャナーに新しいオプションが追加され、ユーザーは貨幣価値を検索して操作することができるようになりました。
データスキャナーのイニシャライザーでテキスト認識を指定する際に、メールアドレスや電話番号など他のコンテンツタイプと同様に、テキストのコンテンツタイプを通貨に設定するだけです。

Ryo TsuzukihashiRyo Tsuzukihashi

データスキャナーで通貨をテキストで認識した場合、バウンドとトランスクリプトの両方が含まれます
トランスクリプトには、通貨記号と金額の両方が記載されています

Ryo TsuzukihashiRyo Tsuzukihashi

レシートのようなもので、すべての値の合計を求める例
まず、現在のロケールを使って通貨記号を取得します。

recognizedItemsストリームでデータスキャナの結果を待つ間に、認識された各アイテムをループして、そのトランスクリプトを取得することができます。

トランスクリプトに気になる通貨記号が含まれていたら、そのまま合計値を更新してみます。

Ryo TsuzukihashiRyo Tsuzukihashi

Live Textの機能強化

  • Live Textの対応言語をタイ語、ベトナム語に拡大
  • 文書構造検出の強化が盛り込まれている

例) iOS 16ではLive Textはリスト検出をサポート
これにより、メモなどのリストを理解するアプリにリストを簡単にコピー&ペーストすることができ、リストの書式は維持されます。
Live Textは、数字や箇条書きなど、いくつかのリストスタイルに対応しています。

Ryo TsuzukihashiRyo Tsuzukihashi

今回、Live Textはテーブルにも同様のサポートを提供し、画像からノートやNumbersなどのアプリケーションに構造化されたテーブルデータを簡単に取り込むことができるようになりました。

Ryo TsuzukihashiRyo Tsuzukihashi

Context Aware Data Detectors
この機能では、コンタクトを追加する際に、データ検出器とその視覚的な関係を使用します。
メールアドレスからこの連絡先を追加すると、周囲のデータ検出器の情報も追加され、一度に簡単に追加できるようになっていることに注目してください。

名刺やチラシから連絡先を追加するのは、これまでになく簡単です。

Ryo TsuzukihashiRyo Tsuzukihashi

VisionKit

昨年

  • 画像解析のTranscriptプロパティにアクセスすることで 全文内容 を取得することができた

今年
以下のアクセスも容易になった
-プレーンテキスト

  • 属性付きテキスト
  • 選択範囲にフルアクセス
  • 選択テキストへ

新しいデリゲートメソッドも用意されているので、テキスト選択が変更されたときにそれを認識し、適切にUIを更新することができるようになった

Ryo TsuzukihashiRyo Tsuzukihashi

macOS

Live Text、Subject Lifting、Visual Look Upをサポートしていますが、残念ながらQRコードのサポートは、VisionKitのCatalyst環境とmacOSのネイティブAPIのいずれでも利用できません。