Android의 Camera2API 및 Mobile Vision API를 사용하여 문자열 감지

Android Mobile Vision API를 사용하여 바코드 감지
계속

개요


이전 글에서 카메라의 연속 이미지에서 바코드가 검출되었다.
이번 보도에서 카메라의 연속 이미지에서 문자열(Text)이 검출되었습니다.
다음 공식 샘플 코드에서는 카메라 제어에 기존 Cameara API를 사용합니다.
googlesamples : ocr-reader
Cameara API
이 글에서 Camera2API를 사용하여 같은 기능을 가진 응용 프로그램을 만듭니다.
지난 보도에서 만들어진 바코드 검출 프로그램을 바탕으로
문외한: 문자열 검출은 OCR(광학 문자인식 Optical Character Recognition)라고도 부른다.
(Text와 Character, Detection과 Recognition, 같은 뜻이지만 미묘한 차이가 있습니다.

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="ocr" />

문자열 찾기


얼굴 검사나 바코드 검사 때와 같은 처리를 한다.

TextRecognizer


텍스트 레코더 생성
  OcrDetectorProcessor processor

        TextRecognizer textRecognizer = new TextRecognizer.Builder(this).build();

        textRecognizer.setProcessor( processor );
reference : TextRecognizer
문제: 검측기의 명칭은
얼굴 검사와 바코드 검사는 Face Detector와 Barcode Detector, 문자열 검사는 Text Recognizer입니다.

FrameProcessor


카메라로부터 연속 이미지를 수신하여 TextRecognizer에 전달하는 FrameProcessor 클래스를 만듭니다.
이 등급은 바코드로 검출된 물건을 직접 유용한다.
제목: 검사 결과를 수신하는 클래스
얼굴 검사와 바코드 검사 시 Tracker 계승
이름도 Tracker입니다.
문자열 검사일 뿐, 방법이 다른 이유를 모르겠다.
reference : Detector.Processor

감지된 문자열에 사각형 표시


얼굴 검사나 바코드 검사 때와 같은 처리를 한다.
ViewGroup을 상속하는 CameraSourcePreview를 만듭니다.
카메라 미리보기 화면을 표시하는 TextureView와 직사각형을 표시하는 덮어쓰기용 View를 CameraSourcePreview의 하위 뷰로 만듭니다.

여러 문자열 중 하나 선택


화면을 터치하여 선택하다.
터치한 화면의 위치와 문자열의 장방형의 위치에서 가까운 위치를 선택하세요.
제목: 바코드 검사와 코드는 미묘하게 다르지만 개의치 않습니다.

화면 캡처



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

좋은 웹페이지 즐겨찾기