在单个CameraSource(Google移动视觉)中实施FaceDetector和TextRecognizer

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在单个CameraSource(Google移动视觉)中实施FaceDetector和TextRecognizer相关的知识,希望对你有一定的参考价值。

在我的android应用程序中,我需要同时进行面部检测和ORC功能。我可以在同一个CameraSource上实现这两个吗?可能吗?

Context context = getApplicationContext();

TextRecognizer textRecognizer = new TextRecognizer.Builder(context).build();
textRecognizer.setProcessor(new OcrDetectorProcessor(mGraphicOverlay));

FaceDetector detector = new FaceDetector.Builder(context).setClassificationType(FaceDetector.ALL_CLASSIFICATIONS).build();
detector.setProcessor(new MultiProcessor.Builder<>(new GraphicFaceTrackerFactory()).build());

mCameraSource = new CameraSource.Builder(getApplicationContext(), detector)
                    .setFacing(CameraSource.CAMERA_FACING_BACK)
                    .setRequestedPreviewSize(1280, 1024)
                    .setRequestedFps(15.0f)
                    .setFlashMode(useFlash ? Camera.Parameters.FLASH_MODE_TORCH : null)
                    .setFocusMode(autoFocus ? Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE : null)
                    .build();

在示例代码中,它们一次只能将一个检测器传递给CameraSource。 textRecognizerdetector

答案

更新:我找到了办法。您可以创建一个MultiDetector并将FaceDetectorTextRecognizer添加到其中并将MultiDetector对象传递给CameraSource.Builder

MultiDetector multiDetector = new MultiDetector.Builder()
            .add(textRecognizer)
            .add(detector)
            .build();

多检测器将从相机源接收一系列帧。每个帧都提交给两个探测器。 MultiFetector

以上是关于在单个CameraSource(Google移动视觉)中实施FaceDetector和TextRecognizer的主要内容,如果未能解决你的问题,请参考以下文章

从com.google.android.gms.vision.CameraSource访问相机并增加/减少预览亮度

如何在适用于 Android 的 Google API 的 CameraSource 中保存带有叠加层的图像?

Mobile VisionbarcodeScanner:SurfaceView为啥不更新CameraSource?

如何使用 CameraSource 拍照?

如何在android studio中修复CameraSource预览方向

LinearLayout 和 CameraSource 不填满屏幕