본문 바로가기

이미지 매크로

엑셀 VBA 매크로 제작 커뮤니티 - 과태료, 명함, 영수증 이미지에서 문자만 추출해서 엑셀에 정리하는 방법. (한글, 숫자, 영어 문자 판독 OCR)

반응형

무료 매크로 프로그램 다운로드

http://ngmsoftware.com/bbs/board.php?bo_table=product1&wr_id=32 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

#매크로 #매크로프로그램 #메크로 #g매크로 #마우스매크로 #키보드매크로 #엑셀매크로 #키매크로 #수강신청매크로 #로지텍마우스매크로 #매크로키보드 #파이썬매크로 #매크로뜻 #매크로마우스 #로지텍매크로 #ld플레이어매크로 #오토마우스매크로 #키보드마우스매크로 #오토핫키매크로 #이미지매크로 #이미지인식매크로 #하드웨어매크로 #화면인식매크로 #선착순구매매크로 #이미지서치매크로 #한글매크로

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

결과는 아래와 같습니다. 구글 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 사용 신청 ]

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

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

 

[ 초보자도 쉽게 따라할 수 있는 기초 학습 강좌 보기 ]

 

원본 글 보기

http://ngmsoftware.com/bbs/board.php?bo_table=tip_and_tech 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

#비활성매크로 #g102매크로 #철권매크로 #레이저마우스매크로 #ghub매크로 #녹화매크로 #키보드반복매크로 #로지텍마우스광클매크로 #플라스크매크로 #윈도우매크로 #비활성g매크로 #오토매크로 #자동사냥 #주식매크로 #오토핫키키보드 #오토핫키마우스 #오토핫키이미지 #지존오토 #기계식매크로 #하드웨어매크로 #무한반복매크로 #대량이메일발송매크로 #엑셀VBA매크로 #주식모니터링매크로

반응형