NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    기타 업무 자동화 RPA 매크로 제작 - 오토핫키 OCR (한글 이미지 인식)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 요즘은 할만한 게임도 없고~ 심심한 하루를 보내고 있습니다. 그렇다고해서 딱히 뭔가 글을 작성하기에도 대부분 [ 팁 앤 테크 ] 게시판에 작성되어 있어서 중복성 글이 될거 같습니다. 비슷한 내용이라면 해당 글을 수정하는게 더 좋으니까요^^; 일단 오토핫키로 매크로 만들기 강좌는 이미 작성해놔서 아래 링크의 글들을 보시면 될거 같아요. 그리고, 오토핫키 개발 환경도 만들어야 첫번째 개발환경 구축하는 글은 꼭 읽어보시길 바랍니다.

    [ 오토핫키 매크로 만들기 강좌 ]

     

    오토핫키는 해외에서 만들어진 윈도우 자동화 프로그래밍 언어다보니 기본으로 제공하는 OCR(Optical Character Recognition)은 한글이 인식되지 않습니다. 아~ OCR이란? 광학 문자 인식이라는 뜻인데요. 말그대로 이미지에서 글자를 추출해서 텍스트로 변환해주는 기술을 말합니다. Visual Studio Code에서 ocr.ahk 파일을 하나 추가 해줍니다. 그리고, 아래와 같이 코딩을 추가하세요.

    #SingleInstance force
    
    #Include OCR.ahk
    
    CoordMode, Mouse, Screen
    
    F1:: ; F1을 누르면 실행
        widthToScan=100 ; OCR 미리보기 창 크기 설정
        heightToScan=100 
        WinSet, Transparent, 50, OcrPreviewWindow
    
        topLeftX = 0 ; 위치 지정
        topLeftY = 0
    
        WinMove, OcrPreviewWindow, , % topLeftX+2, % topLeftY-2
    
        ;NOTE: this is where the magical OCR function is called
        magicalText := GetOCR(topLeftX, topLeftY, widthToScan, heightToScan, options)
    
    return

    5Yiiv5M.png

     

     

    만약, 한글을 인식해야 한다면 깃헙에서 Vis2 OCR을 적용해볼 수 있습니다. 컴퓨터 비전을 사용한 자동화를 지원하는 소스인데요. 화면의 이미지를 직접 캡쳐해서 사용하거나 컴퓨터에 저장된 이미지에서 텍스트를 추출할 수 있습니다.  아래 링크에서 Vis2를 다운로드하고, 아래 코드를 복사하여 Vis2.ahk와 동일한 폴더에 AHK 스크립트를 생성하세요. 그리고, 아래 2줄을 추가 해줍니다.

    [ Vis2 다운로드 받기 ]

    #include <Vis2>
    MsgBox % OCR("https://i.stack.imgur.com/sFPWe.png")

    O7U0aCL.png

     

     

    오토핫키 OCR 이미지 서치 문자 판독에 사용된 이미지는 아래와 같습니다. 딱 봐도 인식이 그냥 잘 될거같아 보입니다.

    BC4EQgO.png

     

     

    실행 해보면, 정상적으로 이미지에서 텍스트를 판독해서 뿌려주는걸 확인할 수 있습니다.

    3TF2EFM.png

     

     

    이번에는 한글을 인식 해볼텐데요. 아래 이미지를 사용할겁니다. 오토핫키는 파일의 한글을 인식할 수 없으므로 이미지를 저장할 때 영어 이름으로 사용하셔야 합니다.

    cP05TCU.png

     

     

    코드를 아래와같이 변경하고, 다시 실행 해보세요. 아~ 이전에 아래 링크에서 언어팩을 다운로드 받아서 bin 폴더에 넣어줘야 합니다.

    [ Best Model Download: https://github.com/tesseract-ocr/tessdata_best ]

    [ Fest Model Download: https://github.com/tesseract-ocr/tessdata_fest ]

    #include <Vis2>
    MsgBox % OCR("C:\\Users\\ngmas\\Desktop\\image5.png", "kor+eng")

     

    실행 해볼까요? 음~ 영어는 인식이 잘 되는데... 한글은 인식률이 좀 안좋네요. 어쩌면 보더가 포함되어 있어서 그럴지도 모르겠습니다.

    0XmqSdL.png

     

     

    이번에는 이미지의 보더(외각선)를 제거하고 다시 실행 해볼께요. 음~ 뭔가 좀 달라지긴 했는데요. 여전히 한글 인식율은 크게 향상되지는 않았습니다. 숫자나 영어를 인식하는데만 사용해야 할거 같아요. 아마도, 글자가 작고 씬(Thin)해서 그런게 아닐까 싶기도 하네요.

    RML6Fuk.png

     

     

    마지막으로 굵고 큰 텍스트로 테스트 해보겠습니다. 아래 이미지로 테스트 했습니다.

    uSCeWDU.png

     

     

    오토핫키는 한글 인식에 사용하기는 어려울거 같습니다. 생각보다 인식률이 너무 안좋네요. 엔지엠 에디터의 OCR은 어떨지 동일한 환경에서 한번 테스트 해볼까요?

    dn9Wcpa.png

     

     

    엔지엠 에디터를 실행하고, 아래 텍스트를 인식 해볼께요. 스크립트에 [ OCR 체크 ] 액션을 추가 해줍니다.

    cP05TCU.png

     

     

    오토핫키의 OCR 보다 완벽하게 인식하는걸 확인할 수 있습니다. 그런데, 결과를 확인해보면 한글과 영어가 동일한 라인에 있는 경우 인식을 못하는 문제가 있습니다.

    흠페이지를 방문해 주신 여러분, 진심으로 환명합니다.
    NGMsoftware CHEO| A} iE ELITE
    국내 최조의 머신 러닝 매크로클 개발하여 공급하고 있습니다.
    복잠한 반복 엄무에 최적화된 솔루션임니다.
    업무 자동화와 이미지 분석, 머신 러닝을 이용하여 최적화된 매크로를 작성할 수 있습니다.
    투명하고 깨끗한 경영을 통해 고객으로부터 신뢰받고 사랑받는 회사,
    직원들이 보랄을 느끼고 성취감을 느낄 수 있는 회사로 만들어 가겠습니다.

    dIDMRDI.png

     

     

    이번에는 OCR 스마트 체크 액션으로 테스트 해볼까요? 인식 영역을 설정하고, 실행해보면 아래와 같이 한글과 영어가 동시에 인식되는걸 알 수 있습니다. 하지만, 정자체 글자가 아닌 경우 아래 결과에서 보듯이 일부 텍스트는 비슷한 다른 문자로 인식하는걸 알 수 있습니다. 좀 더 튜닝하면 완벽하게 처리가 될거 같긴하네요.

    음페이지를 방문해 주신 여러분, 진심으로 환영합니다.
    NGMsoftware 대표이사 김효진입 니다.
    국내 최조의 어신 러닝 다그로를 개발하여 공급하고 있습니다.
    복잡한 반복 업무에 최적화된| 솔루션입니다.
    무 자동화와 이미지 문석, 어신 러닝을 이용하여 최적화된 다그로를 작성할 수 있습니다.
    투명하고 깨끗한 경영을 통해 고객으로부터 신뢰 받고 사랑받는 회사,
    직원들이 보람을 느끼고 성취감을 느낄 수 있는 회사로 만들어 가겠습니다.
    감사합니다.

    xp0dscm.png

     

     

    실제 인식된 결과를 확인하려면 액션에서 결과 저장을 선택하세요. 아래 그림과 같이 인식 영역과 인식한 결과를 영역 위에 표시해줍니다.

    nejy862.png

     

     

    판독 문자 목록과 판독한 문자들의 위치까지 알 수 있기 때문에 전체 화면 범위에서 특정 글자의 위치를 쉽게 클릭할 수 있습니다. 판독한 문자들의 위치를 파악하는건 상당히 어려운 기술입니다. 그래서, 문자를 판독하는 기능만 가진 매크로들이 대부분입니다. 위치까지 알려주는 매크로는 아마도 없는거 같네요. 현재로써는요^^;

    S75D6WN.png

     

     

    이렇게해서 간단하게 오토핫키에서 이미지로부터 문자를 어떻게 추출하고 텍스트로 인식 시키는지 알아봤습니다. OCR과 OpenCV를 결합해서 이미지를 튜닝할 수 있다면 거의 완벽하게 이미지에서 텍스트를 추출할 수 있을겁니다. 엔지엠 매크로를 사용하시는분들은 대부분 주식이나 코인, 선물 거래와 같은 숫자 인식에 많이 이용하고 있습니다. 아니면, 인스타그램이나 네이버, 유튜브와 같은 곳에서 특정 키워드를 인식해서 조회하거나 방문하는 용도로 사용하고 있는데요. 다양한 방법으로 튜닝할 수 있는 내용들도 [ 팁 앤 테크 ] 게시판에 있으니 참고해보시면 더 좋은 결과를 만들어 낼 수 있을겁니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.