ほとんどの使用例では、検出の対象となる機能を含むカメラからの入力フレームの一部のみが実際に使用でき、フレームの REST は無視できます。 たとえば、上部のフレームの一部に、機能が表示されないような青い空が含まれている場合があります。 Live Sense SDK では、入力フレームからこのような部分をトリミングして、次のことを行うことができます。
- 画像のサイズを縮小することで、各フレームの処理時間を短縮できます
- より正確な検出を行い、誤検出を減らすために、画像の対象部分に焦点を当てます
メソッドの署名
public void setSideCropPercent(int leftCropPercent, int topCropPercent, int rightCropPercent, int bottomCropPercent);
使用量
RoadSignsModel.Options rsOption = new RoadSignsModel.Options();
rsOption.setSideCropPercent(int leftCropPercent, int topCropPercent, int rightCropPercent, int bottomCropPercent);
ランニングレコグニションに渡される前に、 4 つの辺すべてから個々にクロップされるフレームの割合を設定します。
すべてのクロップの割合の値はデフォルトで 0 で、 0 ~ 100 の間で変動する必要があります。
-
@param leftCropPercent, rightCropPercent
- 入力フレームの合計幅のうち、左および右からそれぞれ切り取る割合。 -
@param topCropPercent, bottomCropPercent
- 入力フレームの合計幅のうち、上および下からそれぞれ切り取る割合。
入力フレームは Recognizer#recognizeImage(Bitmap, int, float)
、クロップを適用する前に渡された回転値に基づいて自然な向きに回転されます。 つまり、このメソッドのパラメーターの方向性は、生の入力フレームではなくユーザーのビューに基づいて解釈されます。
次の 場合、IllegalArgumentException
がsetSideCropPercent
スローされます。
- crop percent 引数はすべて 0 未満です
-
leftCropPercent
+>=100 rightCropPercent
-
topCropPercent
+>=100 bottomCropPercent
プログレッシブズーム
広範な実験を通して、より遠くにあり、より近くにない限り検出されなかった機能を検出するのに役立つアプローチが特定されました。 この方法では、 3 フレームごとに連続する入力フレームの中央部分を徐々に拡大します。 これにより、フレームの中心に大きくなるフィーチャーを早期に正確に検出できます。
トリミングは常に入力画像の中央に焦点が当てられ、フレームの端の周りの部分が削除されます。
メソッドの署名
public void setUseIncrementalCenterCrop(boolean useIncrementalCenterCrop);
使用量
RoadSignsModel.Options rsOption = new RoadSignsModel.Options();
rsOption.setUseIncrementalCenterCrop(boolean useIncrementalCenterCrop);
道路標識モデルで、への各コールの入力フレームを段階的に拡大するかどうかを定義 RoadSignsModel#recognizeImage(Bitmap, int, float)
します。
フレームの調整は、で指定した側面のトリミング setSideCropPercent(int, int, int, int)
が適用された後に適用されます。