android移动视觉api自定义探测器未检测到脸部

时间:2017-04-05 06:22:56

标签: android android-camera android-bitmap android-vision

我正在探索android vision api并遵循android开发者文档中提供的github示例。示例应用程序正在检测面部。

我想裁剪每个检测到的面孔。 我有一个 rect obj ,有左,上,右,下坐标。

但我缺少源位图来裁剪脸部。

我做过的事情

1.使用此SOF post

中给出的自定义检测器

此处myFaceDetector的 SparseArray检测(帧帧)方法被重复调用,并且没有检测到面部。处理器集未被调用。 我使用下面的代码

    FaceDetector detector = new FaceDetector.Builder(context)
            .setClassificationType(FaceDetector.ALL_CLASSIFICATIONS)
            .build();

    MyFaceDetector myFaceDetector = new MyFaceDetector(detector);

    myFaceDetector.setProcessor(new MultiProcessor.Builder<>(new GraphicFaceTrackerFactory())
    .build());

    mCameraSource = new CameraSource.Builder(context, myFaceDetector)
            .setRequestedPreviewSize(640, 480)
            .setFacing(CameraSource.CAMERA_FACING_FRONT)
            .setRequestedFps(2.0f)
            .build();

在相机预览开始后,不会调用GraphicFaceTrackerFactory()。

2.想要将相机图片作为源位图拍摄,但却连续拍照。

任何帮助都会非常有用。提前谢谢。

1 个答案:

答案 0 :(得分:0)

  

我想裁剪每个检测到的面孔。我有一个rect obj,有左,上,右,下坐标。

一旦检测到面部,您可以使用Face.getPosition(),Face.getHeight()和Face.getWidth()

获取面部的位置和尺寸
  

这里myFaceDetector的SparseArray detect(Frame frame)方法被重复调用,并且没有检测到面

您是否尝试过设置正确的方向?在Frame.Builder中,添加int Rechner() { int Betrag; int ZweiEuro = 0; int EinEuro = 0; int FuenfzigCent = 0; int ZwanzigCent = 0; int ZehnCent = 0; int FuenfCent = 0; int ZweiCent = 0; int EinCent = 0; cin >> Betrag; cout << "Die kleinse Menga an Muenzen um ihren Betrag zu bezahlen ist:" << endl << endl << endl; ZweiEuro + 2; cout << "2.00 = " << ZweiEuro << endl; cout << "1.00 = " << EinEuro << endl; cout << "0.50 = " << FuenfzigCent << endl; cout << "0.20 = " << ZwanzigCent << endl; cout << "0.10 = " << ZehnCent << endl; cout << "0.05 = " << FuenfCent << endl; cout << "0.02 = " << ZweiCent << endl; cout << "0.01 = " << EinCent << endl << endl << endl << endl << endl << endl; cout << "[Enter] druecken um zu beenden."; cin.sync(); cin.get(); return 0; ,其中setRotation(ROT)是一个带有以下任何值的int:0,1,2或3(分别代表0,90,180和270 degs。)。这在你引用的答案中作为注释提到:)

  

但我缺少裁剪源的Bitmap。

可以从当前帧生成位图

ROT

作为附注,CamerSource类有可用的代码,尽管在邻居示例中:BarCode Reader