Android의 Camera2API 및 Mobile Vision API를 사용하여 얼굴 및 바코드 감지

Android의 Mobile Vision API를 사용하여 얼굴 감지
계속

개요


지금까지의 보도는 카메라에서 나온 연속 이미지에서 얼굴과 바코드를 검출했다.
  • Camera2API 및 Mobile Vision API를 사용하여 얼굴 감지
  • Camera2API 및 Mobile Vision API를 사용하여 바코드 감지
  • Camera2API 및 Mobile Vision API를 사용하여 문자열 감지
  • 이번 보도는 카메라의 연속 이미지와 함께 얼굴과 바코드를 검출했다.
    아래의 공식 샘플 코드를 예로 들어 설명하다.
    googlesamples multi-tracker
    공식 샘플 코드에서 카메라의 제어
    Mobile Vision API를 사용하는 Cameara Source
    reference: CameraSource
    이 글에는 지금까지의 글에서 자체 제작한 Cameara Source가 사용됩니다.

    Vision API 설정 이동


    AndroidManifest.xml 변경
    AndroidManifest.xml
    
        <!-- 顔を検出するとき -->
            <meta-data
                android:name="com.google.android.gms.vision.DEPENDENCIES"
                android:value="face" />
    
        <!-- 顔とバーコードを一緒に検出するとき -->
            <meta-data
                android:name="com.google.android.gms.vision.DEPENDENCIES"
                android:value="barcode, face" />
    

    MultiDetector


    다중 검측기는 여러 개의 검측기를 조합하는 데 쓰인다.
    원본에서 수신된 하나 이상의 프레임에서 여러 개의 탐지기를 함께 사용할 수 있습니다.
    모든 탐지기는 연결된 프레임마다 실행됩니다.
    reference ; MultiDetector
    아래와 같이 FaceDetector와 BarcodeDetector를 생성한 후 MultiDetector와 통합합니다.
    // FaceDetector
            FaceDetector faceDetector = new FaceDetector.Builder(context).build();
            FaceTrackerFactory faceFactory = new FaceTrackerFactory(mGraphicOverlay);
            faceDetector.setProcessor(
                    new MultiProcessor.Builder<>(faceFactory).build());
    
    // BarcodeDetector
            BarcodeDetector barcodeDetector = new BarcodeDetector.Builder(context).build();
            BarcodeTrackerFactory barcodeFactory = new BarcodeTrackerFactory(mGraphicOverlay);
            barcodeDetector.setProcessor(
                    new MultiProcessor.Builder<>(barcodeFactory).build());
    
    // MultiDetector
            MultiDetector multiDetector = new MultiDetector.Builder()
                    .add(faceDetector)
                    .add(barcodeDetector)
                    .build();
    

    MultiProcessor.Factory


    검측기에서 검측 결과를 수신하는 클래스입니다.
    얼굴과 바코드에 대해 MultiProcessor.FaceTracker Factory와 BarcodeTracker Factory를 만들기 위해 FaceTracker Factory를 구현합니다.
    새 항목이 발견되면 이 항목에 대한 새 추적 프로그램 실례를 만듭니다.
    reference : MultiProcessor.Factory

    FrameProcessor


    카메라로부터 연속 이미지를 수신하여 MultiDetector에 전달하는 프레임 프로세서 클래스를 만듭니다.
    이 반은 직접 얼굴 검사한 물건을 유용한다.

    감지된 얼굴 및 바코드에 그래픽 표시


    얼굴과 바코드의 경우 Graphic Overlay.그래픽을 계승하는 FaceGraphic과 BarcodeGraphic을 만듭니다.
    얼굴은 둥글고 바코드는 장방형으로 서로 다른 도형을 표시한다.

    화면 캡처



    샘플 코드가github에 발표되었습니다.
    https://github.com/ohwada/Android_Samples/tree/master/Vision7

    좋은 웹페이지 즐겨찾기