2016-03-13 2 views
1

Я хочу использовать FaceDetector в android. Я пробовал FaceDetector с растровым изображением и его работой.Как использовать ресурс камеры с FaceDetector в android?

(с помощью: http://code.tutsplus.com/tutorials/an-introduction-to-face-detection-on-android--cms-25212)

Теперь я хочу, чтобы обнаружить лицо, когда камера включена. Документация пишет:

Альтернативно, детектор может быть использован в конструкции трубопровода, в сочетании с источниками (например, CameraSource) и процессоров (например, LargestFaceFocusingProcessor), что позволяет построить достаточно дополнительные трубопроводы обнаружения с минимальным кодированием. Например, приведенный ниже код создает и запускает конвейер, который непрерывно получает кадры предварительного просмотра из источника камеры для фронтальной камеры, выполняет обнаружение на кадрах, управляет отслеживанием наиболее заметной грани, и доставляет непрерывные уведомления об обновлениях время до Разработанный разработчиком экземпляр «FaceTracker».

https://developers.google.com/android/reference/com/google/android/gms/vision/face/FaceDetector

Код обеспечивает:

detector.setProcessor(
    new LargestFaceFocusingProcessor(
    detector, 
    new FaceTracker())); 

CameraSource cameraSource = new CameraSource.Builder(context, detector) 
    .setFacing(CameraSource.CAMERA_FACING_FRONT) 
    .setRequestedPreviewSize(320, 240) 
    .build() 
    .start(); 

Я хочу, чтобы реализовать это в моем коде:

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     FaceDetector detector = new FaceDetector.Builder(this) 
       .setProminentFaceOnly(true) 
       .build(); 
     detector.setProcessor(
       new LargestFaceFocusingProcessor(
         detector, 
         new FaceTracker())); 

     try { 
      CameraSource cameraSource = new CameraSource.Builder(this, detector) 
        .setFacing(CameraSource.CAMERA_FACING_FRONT) 
        .setRequestedPreviewSize(320, 240) 
        .build() 
        .start(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    class FaceTracker extends Tracker 
    { 
     public void onDone() 
     { 

     } 


    } 

} 

, но не в состоянии двигаться вперед. Не могли бы вы помочь мне закодировать его дальше?

ответ

2

Проверьте код образца лица, который аналогичен. Он также работает с получением разрешения камеры и активность паузы/резюме:

https://github.com/googlesamples/android-vision/blob/master/visionSamples/FaceTracker/app/src/main/java/com/google/android/gms/samples/vision/face/facetracker/FaceTrackerActivity.java

Какие проблемы вы встречая?

Обратите внимание, что опция «visibleFaceOnly» будет определять только лица, которые выглядят относительно большими в предварительном просмотре камеры (т. Е. Лицо составляет около 35% или более от ширины изображения предварительного просмотра).