Cloud Vision API를 사용하여 가장 짧은 노선에서 OCR(문자인식)의 안드로이드 애플리케이션을 만듭니다.

9433 단어 Android

개시하다


기계 학습의 시대다.
그래서 저는 기계 학습을 이용한 응용 프로그램을 만들고 싶은데 데이터 집합이 없어서 어떻게 해야 할지 모르겠어요.
이 경우 Google이 제공하는 Google Cloud Platform의 머신러닝 API를 사용하면 머신러닝을 놀랍게도 간단하게 활용한 앱을 만들 수 있다.
이번에는 Google Cloud Vision API의 OCR(문자인식) 기능을 사용하여 문자인식 애플리케이션을 제작합니다.

Google Cloud Vision API


공식.
Google Cloud Vision API를 사용해 보았습니다.
1000개 단원이면 무료로 이용할 수 있다.
요금표는이쪽

릴리즈 API 키


먼저 Google Developers Console부터 API 키를 릴리즈합니다.
필요한 것은 아래와 같다
  • Google 계정
  • 신용카드(불입금)
  • API 키는 다음 웹 사이트를 참조하여 릴리즈되었습니다.
    Cloud Vision API 사용 방법 요약

    공식 샘플 가져오기


    클라우드 비전 API를 사용하는 안드로이드 애플리케이션공식 견본이 있기 때문에 이 코드를 기반으로 한다.
    먼저 git clone https://github.com/GoogleCloudPlatform/cloud-vision.git를 쳐서 샘플 코드를 얻습니다.
    가져오면 MainActivity 상수 CLOUDVISION_API_KEY 릴리즈의 API 키를 대입합니다.

    Feature Type 변경 사항


    공식 샘플은 LABEL입니다.DETECTION을 했기 때문에.
    TEXT_DETECTION(문자인식)을 위해 보면서참고 자료 고쳐 쓴다.
    before
    MainActivity.java
                annotateImageRequest.setFeatures(new ArrayList<Feature>() {{
                    Feature labelDetection = new Feature();
                    labelDetection.setType("LABEL_DETECTION");
                    labelDetection.setMaxResults(MAX_LABEL_RESULTS);
                    add(labelDetection);
                }});
    
    after(MAX LABEL RESULTS를 10에서 1로 변경)
    MainActivity.java
                annotateImageRequest.setFeatures(new ArrayList<Feature>() {{
                    Feature textDetection = new Feature();
                    textDetection.setType("TEXT_DETECTION");
                    textDetection.setMaxResults(MAX_LABEL_RESULTS);
                    add(textDetection);
                }});
    

    출력 형식 수정


    문자인식 결과를 출력하기 위해 코드를 다시 작성합니다.
    before
    MainActivity.java
        private static String convertResponseToString(BatchAnnotateImagesResponse response) {
            StringBuilder message = new StringBuilder("I found these things:\n\n");
    
            List<EntityAnnotation> labels = response.getResponses().get(0).getLabelAnnotations();
            if (labels != null) {
                for (EntityAnnotation label : labels) {
                    message.append(String.format(Locale.US, "%.3f: %s", label.getScore(), label.getDescription()));
                    message.append("\n");
                }
            } else {
                message.append("nothing");
            }
    
            return message.toString();
        }
    
    after
    MainActivity.java
        private static String convertResponseToString(BatchAnnotateImagesResponse response) {
            StringBuilder message = new StringBuilder("I found these things:\n\n");
    
            TextAnnotation label = response.getResponses().get(0).getFullTextAnnotation();
            if (label != null) {
                message.append(label.getText());
            } else {
                message.append("nothing");
            }
    
            return message.toString();
        }
    

    확인


    이 사진으로 프로그램을 검증합니다.

    결실


    공백을 없앤'증보 개정판'을 포함해 완벽하군!

    총결산


    Google Cloud Vision API에서 OCR을 최단 경로로 테스트하기 전의 단계를 요약했습니다.
    API를 사용하면 기계 학습 지식이 많지 않아도 최첨단 기술을 간단하게 체험할 수 있다.
    꼭 해보세요.

    좋은 웹페이지 즐겨찾기