入力フレームのトリミング

ほとんどの使用例では、検出の対象となる機能を含むカメラからの入力フレームの一部のみが実際に使用でき、フレームの REST は無視できます。 たとえば、上部のフレームの一部に、機能が表示されないような青い空が含まれている場合があります。 Live Sense SDK では、入力フレームからこのような部分をトリミングして、次のことを行うことができます。

  • 画像のサイズを縮小することで、各フレームの処理時間を短縮できます
  • より正確な検出を行い、誤検出を減らすために、画像の対象部分に焦点を当てます

これは道路標識モデルでのみ利用できます。

ランニングレコグニションに渡される前に、 4 つの辺すべてから個々にクロップされるフレームの割合を設定します。

すべてのクロップの割合の値はデフォルトで 0 で、 0 ~ 100 の間で変動する必要があります。

  • @param leftCropPercent, rightCropPercent - 入力フレームの合計幅のうち、左および右からそれぞれ切り取る割合。
  • @param topCropPercent, bottomCropPercent - 入力フレームの合計幅のうち、上および下からそれぞれ切り取る割合。

@throws IllegalArgumentException - 次の場合に例外がスローされます

  • crop percent 引数はすべて 0 未満です
  • leftCropPercent +>=100 rightCropPercent
  • topCropPercent +>=100 bottomCropPercent

プログレッシブズーム

広範な実験を通して、より遠くにあり、より近くにない限り検出されなかった機能を検出するのに役立つアプローチが特定されました。 この方法では、 3 フレームごとに連続する入力フレームの中央部分を徐々に拡大します。 これにより、フレームの中心に大きくなるフィーチャーを早期に正確に検出できます。

トリミングは常に入力画像の中央に焦点が当てられ、フレームの端の周りの部分が削除されます。

これは道路標識モデルでのみ利用できます。

メソッドの署名

func cropPixelBuffer(_ inputBuffer:CVPixelBuffer) -> (CVPixelBuffer?,CGRect)

使用量

 var imageCropper = LSImageCropper()
 imageCropper._topCropPercent = 50
 imageCropper._enableCenterCrop = true // Set true to incrementally zoom the input frames.
 let output = imageCropper.cropPixelBuffer(pixelBuffer)
if let processedBuffer = output.0{
  //Pass cropped pixelbuffer
  lsdRecognition?.processPixelBuffer(pixelBuffer: processedBuffer, orientation: orientation)
}
else{
  //Fallback
  lsdRecognition?.processPixelBuffer(pixelBuffer: pixelBuffer, orientation: orientation)
}

」に一致する結果は 件です

    」に一致する結果はありません