以下に機械学習における オンデバイスAPI として公開されている Vision フレームワークの処理内容やサンプルをまとめました。
多くの処理については公式のサンプルが公開されていますが、以下の処理についてはサンプルがなかったため本リポジトリで公開しています。
- 輪郭検出
- 人体検出
- 体の姿勢
- 動物認識
- 水平検出
- オプティカルフロー
- 書類検出
以下表の処理内容を確認したい場合は、サンプル番号の項目のリンク先にあるプロジェクトをビルドすることで実行することができます。 (番号は便宜上つけたものです、どのようなサンプルかについては表の下に記載している「Vision フレームワークサンプル一覧」の内容を参照ください)
Vision フレームワークは利用方法がどれもほぼ同じで、リクエスト時のパラメータと出力されるオブジェクトに注目すれば良い
- 1. スポーツ分析用の機能豊富なアプリの構築
- コンピューター ビジョンと機械学習を使用して、人間の活動をリアルタイムで検出して分類します。
-
- Vision フレームワークを使用して、画像内の四角形、顔、バーコード、およびテキストを見つけて区別します。
- 利用リクエスト
- VNDetectRectanglesRequest
- VNDetectFaceRectanglesRequest
- VNDetectFaceLandmarksRequest
- VNDetectTextRectanglesRequest
- VNDetectBarcodesRequest
-
- Vision 分類リクエストを使用して画像を分析し、ラベルを付けます。
- 利用リクエスト
- VNClassifyImageRequest
-
- 特徴点を生成して、画像間の距離を計算します。
- 利用リクエスト
- VNGenerateImageFeaturePrintRequest
- 5. 画像や動画の人物にマット効果を適用する
- セマンティックな人物セグメンテーションを使用して、人物の画像マスクを自動的に生成します。
- 利用リクエスト
- VNDetectFaceRectanglesRequest
- VNGeneratePersonSegmentationRequest
- 6. 顕著性を使用した画像内の関心領域の強調表示
- 人が画像のどこを見る可能性が高いかを数値化して視覚化します。
- 利用リクエスト
- VNGenerateAttentionBasedSaliencyImageRequest
- VNGenerateObjectnessBasedSaliencyImageRequest
-
- セルフィー カム フィードからリアルタイムで顔を検出して追跡します。
- 利用リクエスト
- VNDetectFaceRectanglesRequest
- VNTrackObjectRequest
- VNDetectFaceLandmarksRequest
-
- Vision アルゴリズムを適用して、ビデオ全体でオブジェクトまたは四角形を追跡します。
- 利用リクエスト
- VNDetectRectanglesRequest
- (VNTrackingRequest)
- VNTrackObjectRequest
- VNTrackRectangleRequest
- 9. キャプチャ品質に基づいてセルフィーを選択する
- Vision を使用して、一連の画像で顔のキャプチャ品質を比較します。
- 利用リクエスト
- VNDetectFaceCaptureQualityRequest
- 10. Vision による手のポーズの検出
- 手のポーズを検出する Vision の機能を使用して、仮想描画アプリを作成します。
- 参考ビデオ
- 利用リクエスト
- VNDetectHumanHandPoseRequest
- 11. ビデオ内の移動オブジェクトの検出
- Vision を使用して、投げられたオブジェクトの軌道を識別します。
- 利用リクエスト
- VNDetectTrajectoriesRequest
-
- Vision と VisionKit を使用して、名刺またはレシートのテキストを検出、認識、構造化します。
- 参考ビデオ
- 利用リクエスト
- VNRecognizeTextRequest
-
- ライブ キャプチャで認識されたテキストから電話番号を分析およびフィルタリングし、時間の経過とともに証拠を構築します。
- 参考ビデオ
- 利用リクエスト
- VNRecognizeTextRequest
-
- 画像のテキスト認識を構成して実行し、テキスト コンテンツを識別します。
- 参考ビデオ
- 利用リクエスト
- VNRecognizeTextRequest
- 15. 類似画像の整列
- 同じシーンをキャプチャした画像から合成画像を作成します。
- swiftUI ベースのプロジェクト
- 利用リクエスト
- (VNImageRegistrationRequest)
- VNTranslationalImageRegistrationRequest
- VNHomographicImageRegistrationRequest
-
- Vision アルゴリズムを適用して、リアルタイム ビデオ内のオブジェクトを識別します。
- 利用リクエスト
- VNCoreMLRequest
-
17. Vision と物体検出モデルによるサイコロの振りを理解する
- カメラ フレームに表示されたサイコロの位置と値を検出し、サイコロ検出モデルを利用してロールの終わりを判断します。
- 参考ビデオ
- 利用リクエスト
- VNCoreMLRequest
-
18. Vision と Core ML を使用した画像の分類
- Vision フレームワークを使用して写真をトリミングおよびスケーリングし、Core ML モデルで分類します。
- 利用リクエスト
- VNImageBasedRequest
- VNCoreMLRequest
-
19. 花を分類するための Create ML モデルのトレーニング
- Swift Playgrounds で Create ML を使用して花の分類子をトレーニングし、結果のモデルを Vision を使用してリアルタイムの画像分類に適用します。
- 利用リクエスト
- VNDetectBarcodesRequest
- VNCoreMLRequest
- VNTranslationalImageRegistrationRequest
各サンプルは、以下に記載の公式サンプルを参考に実装しています。
それぞれのサンプルについては参考元のライセンスに準じます。(各プロジェクト内にLISENSEファイルを格納しています)
カメラプレビュー機能の利用において、以下プロジェクトを参考にしています。
カメラプレビュー機能の利用において、以下プロジェクトを参考にしています。
バウンディングボックスの描画において、以下のプロジェクトを参考にしています。
カメラプレビュー機能の利用において、以下プロジェクトを参考にしています。
その他参考サイト
カメラプレビュー機能の利用において、以下プロジェクトを参考にしています。
フォトライブラリの画像利用、及びバウンディングボックスの描画において、以下プロジェクトを参考にしています。
VNPixelBufferObservation の利用において、以下プロジェクトを参考にしています。
カメラプレビュー機能の利用において、以下プロジェクトを参考にしています。
バウンディングボックスの描画において、以下のプロジェクトを参考にしています。