1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Vision 基礎

1
Posted at

Vision.frameworkとは

Appleが高度な画像解析処理を行うフレームワークのこと。
CoreMLが基礎になっている。Vision以外にも音声認識Speech,何の音か特定するSoundAnalysis、テキストを 処理するNatural Languageを提供している。

画像分析の流れ

VNRequest->画像の分析のリクエストを表す。分析したい種類によってそれぞれのサブクラスが用意されている。
VNImageRequestHandler/VNSequenceRequestHandler画像データを渡し、VNRequestを実際に実行する。
VNObservation 分析結果を表すクラス。

do {
 // リクエスト作成
     let request = VNDetectFaceRectanglesRequest()
   // リクエストハンドラー作成
     let requestHandelr = VNImageRequestHandler(cgImage: image,options: [:])
      // 画像分析実行
    try requestHandelr.perform([request])
     // 結果を得る
   let result = request.results?.first! as! VNFaceObservation
  } catch {
print(error.localizedDescription)
}

分析できるもの

顔の短形(VNDetectFaceRectanglesRequest)
目,鼻,口,あご,顔の特徴を検出(VNDetectFaceLandmarksRequest)
文字検出(VNDetectTextRectanglesRequest)
文字を認識(VNRecognizeTextRequest)
バーコードを検出(VNDetectBarcodesRequest)
長方形の物体を検出(VNDetectRectanglesRequest)
ビデオフレーム画像から物体を追跡(VNTrackObjectRequest)

VNRequest

画像分析のリクエストを行う。引数なしでイニシャライザをするか、VNRequestとError?を引数にもつクロージャーを入れる。

init(completionHandler: VNRequestCompletionHandler? = nil)

VNImageRequestHandler,VNSequenceRequestHandler

VNImageRequestHandler->同じ画像データにリクエストを複数実行
一つの画像に対してリクエストを実行するから効率的に分析できる。
VNSequenceRequestHandler→連続画像フレームにリクエストを実行
カメラからの連続フレーム画像に対してリクエストを実行するためのクラス。ビデオフレーム画像からトラッキングを行う場合に利用する。

また、これらのリクエストハンドラーで画像の向きを指定する(上向き)が正しく設定されているかどうか。

VNObservation
分析結果を表す。プロパティのconfidenceの精度を読み取れる。

var confidence: VNConfidence

このVNObservationを親クラスとしてサブクラスが何を分析したかにより分かれる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?