VisionFrameworkSamples

概要

以下に機械学習における オンデバイスAPI として公開されている Vision フレームワークの処理内容やサンプルをまとめました。

多くの処理については公式のサンプルが公開されていますが、以下の処理についてはサンプルがなかったため本リポジトリで公開しています。

  • 輪郭検出
  • 人体検出
  • 体の姿勢
  • 動物認識
  • 水平検出
  • オプティカルフロー
  • 書類検出

以下表の処理内容を確認したい場合は、サンプル番号の項目のリンク先にあるプロジェクトをビルドすることで実行することができます。 (番号は便宜上つけたものです、どのようなサンプルかについては表の下に記載している「Vision フレームワークサンプル一覧」の内容を参照ください)

Vision フレームワークは利用方法がどれもほぼ同じで、リクエスト時のパラメータと出力されるオブジェクトに注目すれば良い

処理内容
サンプル番号
リクエスト 出力オブジェクト
画像識別 3 VNClassifyImageRequest [VNClassificationObservation]
画像の顕著性認識 6 VNGenerateAttentionBasedSaliencyImageRequest
VNGenerateObjectnessBasedSaliencyImageRequest
[VNSaliencyImageObservation]
画像の位置合わせ 15, 19 VNTranslationalImageRegistrationRequest
VNHomographicImageRegistrationRequest
[VNImageTranslationAlignmentObservation]
[VNImageHomographicAlignmentObservation]
画像の類似性判定 4 VNGenerateImageFeaturePrintRequest [VNFeaturePrintObservation]
オブジェクトの検出 2 (複数のリクエスト) (複数のオブジェクト)
オブジェクトのトラッキング 8 (複数のリクエスト) (複数のオブジェクト)
軌道検出 11 VNDetectTrajectoriesRequest [VNTrajectoryObservation]
輪郭検出 - VNDetectContoursRequest [VNContoursObservation]
テキスト検出 2 VNDetectTextRectanglesRequest [VNTextObservation]
テキスト認識 12, 13, 14 VNRecognizeTextRequest [VNRecognizedTextObservation]
顔検出 2, 5, 7 VNDetectFaceRectanglesRequest [VNFaceObservation]
フェイストラッキング 7 (複数のリクエスト) (複数のオブジェクト)
顔のランドマーク 2, 7 VNDetectFaceLandmarksRequest [VNFaceObservation]
顔のキャプチャクオリティ 9 VNDetectFaceCaptureQualityRequest [VNFaceObservation]
人体検出 - VNDetectHumanRectanglesRequest [VNHumanObservation]
体の姿勢 - VNDetectHumanBodyPoseRequest [VNHumanBodyPoseObservation]
手の形 10 VNDetectHumanHandPoseRequest [VNHumanHandPoseObservation]
動物認識 - VNRecognizeAnimalsRequest [VNRecognizedObjectObservation]
バーコード検出 2, 19 VNDetectBarcodesRequest [VNBarcodeObservation]
矩形検出 2, 8 VNDetectRectanglesRequest [VNRectangleObservation]
水平検出 - VNDetectHorizonRequest [VNHorizonObservation]
オプティカルフロー - VNGenerateOpticalFlowRequest [VNPixelBufferObservation]
人物セグメンテーション 5 VNGeneratePersonSegmentationRequest [VNPixelBufferObservation]
書類検出 - VNDetectDocumentSegmentationRequest [VNRectangleObservation]

Vision フレームワーク公式サンプル一覧

エッセンシャル

静止画分析

画像シーケンス分析

顕著性分析

オブジェクト追跡

顔と体の検出

体と手の姿勢検出

軌跡検出

テキスト認識

画像の配置

  • 15. 類似画像の整列
    • 同じシーンをキャプチャした画像から合成画像を作成します。
    • swiftUI ベースのプロジェクト
    • 利用リクエスト
      • (VNImageRegistrationRequest)
      • VNTranslationalImageRegistrationRequest
      • VNHomographicImageRegistrationRequest

物体認識

機械学習による画像解析


本リポジトリのサンプル一覧

各サンプルは、以下に記載の公式サンプルを参考に実装しています。

それぞれのサンプルについては参考元のライセンスに準じます。(各プロジェクト内にLISENSEファイルを格納しています)

輪郭検出

カメラプレビュー機能の利用において、以下プロジェクトを参考にしています。

人体検出

カメラプレビュー機能の利用において、以下プロジェクトを参考にしています。

バウンディングボックスの描画において、以下のプロジェクトを参考にしています。

体の姿勢

カメラプレビュー機能の利用において、以下プロジェクトを参考にしています。

その他参考サイト

動物認識

カメラプレビュー機能の利用において、以下プロジェクトを参考にしています。

水平検出

フォトライブラリの画像利用、及びバウンディングボックスの描画において、以下プロジェクトを参考にしています。

オプティカルフロー

VNPixelBufferObservation の利用において、以下プロジェクトを参考にしています。

書類検出

カメラプレビュー機能の利用において、以下プロジェクトを参考にしています。

バウンディングボックスの描画において、以下のプロジェクトを参考にしています。