NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 엔지엠 RPA 매크로 - 1부 과태료, 명함, 영수증 이미지에서 문자만 추출해서 엑셀에 정리하는 방법. (한글, 숫자, 영어 …

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 회사에서 과태료나 명함 또는 영수증을 스캔해서 특정 내용만 엑셀로 정리하는 단순 업무를 반복하는 경우가 많을겁니다. 대부분의 회사는 사람이 직접 눈으로 보면서 특정 키워드의 내용들을 엑셀에 정리하는데요. 내부에 개발자가 있거나 직접 업무 자동화 시스템을 구축한 회사들은 시스템을 자동화 했을겁니다. 자~ 엔지엠 에디터로 아래와 같은 과태료 고지서나 영수증이 있다고 생각 해봅시다.

    MafBkU6.png

     

     

    엔지엠 에디터를 실행하고, 아래 동영상을 참고해서 [ OCR 체크 ] 액션을 추가하세요. 그리고, 과태료 고지서 또는 영수증의 "범칙금 VS 과태료" 글자를 인식 시킵니다. 한글과 영어가 혼합되어 있기 때문에 기본적인 OCR 기능으로는 인식이 쉽지 않습니다. 결과는 "범칙금 ㅁ5 과태료"와 같이 나옵니다. 영어가 인식이 안되는군요.

    A31gpl8.gif

     

     

    아래 그림과 같이 숫자, 영어, 한글이 포함된 경우에도 모델이나 언어를 변경해도 정확하게 인식하기는 어렵습니다.

    BUBMbXy.gif

     

     

    그래서, 보통은 한글, 영어, 숫자 영역을 나눠서 인식시키는데요. 그렇다보니 간단한 문자 판독에만 사용되고 있습니다. 나눠서 인식해볼까요? 전체 스크립트는 아래와 같습니다.

    NCnYMsr.png

     

     

    각각 인식 영역을 나눠서 다시 합쳐주는 방식입니다. OCR 체크 액션에서 "20, km/h, 이하" 3개의 인식 영역이 다릅니다. 각각 변수에 저장하면서 [ 문자열 연결 ]로 합쳐줍니다. 이렇게 3개의 문자열을 합친 후 마지막에 [ 메세지 박스 ]에 표시하도록 했습니다. 뭔가 많이 번거롭죠^^;

    4x5UhbO.gif

     

     

    이번에는 과태료나 영수증의 전체 글자를 추출하는 방법을 해보겠습니다. 새로운 스크립트를 추가하고, 커스텀 모듈인 구글의 [ Vision AI ] 액션을 추가하세요.

    N8fn7L9.gif

     

     

    구글 Vision AI 액션은 이미지 영역을 선택할 필요가 없습니다. 그렇기 때문에 특정 폴더에 이미지를 넣어두고 실행하면 이미지를 메모리로 불러와서 처리 해줍니다.

    94C0Ejv.gif

     

     

    결과는 아래와 같습니다. 구글 Vision AI의 강점은 문서에 포함된 모든 글자를 영어, 숫자, 한글, 중국어, 일본어 구분하지 않고 자동으로 인식해서 처리 해준다는 점입니다.

    속도위반
    범칙금 VS 과태료
    80
    승용차 기준
    초과속도
    범칙금 (벌점)
    과태료
    20km/h 이하
    3만원
    4만원
    40km/h 이하
    6만원 (15점)
    7만원
    60km/h 이하
    9만원 (30점)
    10만원
    60km/h 초과
    12만원 (60점)
    13만원

     

    이렇게 문자가 추출되면 줄바꿈된 텍스트를 Parsing(파싱, 데이타를 특정 패턴 또는 순서를 분석해서 가공하는 것)해서 처리가 가능합니다. 이 방법이 더 쉽고 정확합니다. 다만, 구글 API를 사용하기 때문에 추가적인 요금이 발생할 수 있습니다. 월 1,000개까지는 무료고, 1,000개 이상부터는 사용량에 따라 비용이 발생하게 됩니다. 네이버도 CLOVA OCR 서비스가 있는데요. 네이버는 월 100건을 무료로 사용할 수 있습니다. 구글 비전 AI를 신청하려면 아래 글을 참고하세요.

    [ 구글 비전 AI 사용 신청 ]

     

    [ 문자열 분리 ] 액션으로 줄바꿈이 있는 텍스트를 배열로 변경할 수 있습니다. 아래 그림과 같이 배열은 숫자로 접근이 가능합니다.

    NT7w4Yu.png

     

     

    배열의 7번째에 있는 "20km/h 이하"를 가져오려면 배열 값 액션에서 7을 입력하면 됩니다.

    zwog7zL.gif

     

     

    이렇게하면, 과태료나 명함 또는 영수증을 스캔할 때 위치가 약간씩 틀어지더라도 문제없이 처리할 수 있습니다. OCR 체크 액션은 화면 기준으로 창을 위치 시킨 후 처리하기 때문에 고정된 위치에서 무료로 사용하기에는 괜찮습니다. 예를 들어 거래소의 금액 또는 캐릭터의 체력, 피통등등... 에서 효과적으로 사용할 수 있습니다. 하지만, 사람이 직접 스캔하는 이미지는 상태에 따라 약간씩 틀어질 수 있기 때문에 위치가 달라지면 OCR 체크로는 인식시키기가 쉽지 않습니다. 아래와 같은 고지서가 있다고 해봅시다.

    4BeBIb5.jpg

     

     

    위 이미지와 같이 저품질의 스캔 이미지도 잘 처리됩니다. 구글 Vision AI의 성능이 엄청나다는걸 다시한번 느낄 수 있네요.

    aCl3Syr.png

     

     

    배열값에서 원하는 텍스트를 잘 추출하고 있습니다. 좀 더 로직적으로 처리하려면 위 또는 아래 내용을 먼저 인식해서 원하는 카테고리의 텍스트인지 판단해야 합니다. 또는 [ For 반복 ]이나 [ Foreach 반복 ]을 이용해서 순차적으로 어떤 카테고리(범주)에 속하는지에 따라 처리한 후 엑셀의 특정 셀에 입력하면 됩니다.

    bpstEkd.png

     

     

    개발자라면 여기서 이런 생각이 들 수도 있습니다. "그냥 커스텀으로 모두 만들어버리면 더 편하지 않을까?" 개발자 입장에서는 더 편한게 사실입니다. 하지만, 사용자가 동작에 대해 개입할 수 있는 여지를 주고, 커스텀하게 수정해서 쓸 수 있도록 하는게 더 좋습니다. 개발자는 코딩으로 처리하지만, 사용자는 에디터의 액션으로 처리하게 되는데요. 모든 처리를 전부 코딩으로 만들면 사용자는 변경 및 유지보수에 어려움을 겪을 수밖에 없습니다. 유연한 프로그래밍이 되려면 특정 기능을 모듈화하고, 사용자에게 열려 있어야 합니다.

     

    1부는 이렇게 글을 마치도록 하고, 2부에서는 특정 폴더에 이미지가 들어오면 문자 판독하는 로직에 대해 알아보겠습니다. 보통은 매크로가 실행되는 컴퓨터가 있을테고, 이 컴퓨터의 특정 폴더에 과태료나 고지서 스캔 이미지를 넣어둘겁니다. 특정 폴더에 이미지가 들어오면 자동으로 인식해서 처리되면 더 좋겠죠? 처리가 완료된 이미지는 다른 폴더로 백업하는 기능까지 자세하게 알아볼께요~

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.