에디터 도구 상자 - 조건 - 이미지의 텍스트 판독 OCR 체크 (Tool box, Condition, OCR Check)
페이지 정보
본문
안녕하세요. 엔지엠소프트웨어입니다. 오늘은 이미지에서 문자를 추출하여 비교할 수 있는 OCR 체크 기능에 대해 알아보도록 하겠습니다. 대체로 화면을 캡처한 이미지에 사용자가 원하는 텍스트가 있는지 비교합니다. 그리고, 동일하다면 클릭 또는 어떤 행동을 수행하게 되죠. NGM 3의 내용도 한번 읽어보시는 게 좋습니다.
[ NGM 3 OCR 사용 가이드 ]
우선 간단한 테스트를 위해 아래와 같이 새로운 스크립트를 추가합니다.
File > 새로 만들기 > 스크립트 (단축키: Ctrl+N)
도구 상자의 조건 카테고리에 OCR 체크를 스크립트에 추가합니다.
- 조건의 OCR 체크 선택
- 클릭 드래그하여 스크립트에 추가
- 속성의 상세 내용 확인
NGM 3과는 많은 부분에서 차이점이 발생했습니다. 단순했던 설정에 비해 이번에 새롭게 만든 OCR은 이미지 편집기와 동일하게 수정하여 텍스트를 정확하게 읽을 수 있도록 도와줍니다. 또한, 2가지만 제공하던 API가 하나 더 늘어서 3개를 제공합니다. 또한, 텍스트 검출 좌표를 활용하여 복잡하게 계산해야 했던 작업량을 확실히 줄일 수 있도록 해줍니다.
좀 더 자세한 내용은 아래 동영상을 참고하시기 바랍니다. 그리고, NGM 3의 OCR과 비교해보면 달라진 부분들을 좀 더 명확하게 알 수 있을듯 합니다.
좀 더 쉽게 스크립트를 작성하려면, OCR의 경우 미리 테스트해봐야 합니다. 어느 정도의 정확도가 필요한지 모르는 상태에서 스크립트를 만들고 실행하면서 확인하는 것은 상당히 어렵고 고된 일입니다. 그렇기 때문에 유틸리티의 [ OCR 테스터 ]를 이용하여 미리 테스트해보고, 최적의 결과 값을 스크립트에 적용시켜야 합니다.
속성 정보
기본 설정
- 반전: 이미지의 색을 반전시킵니다.
- 배경 크기 조절: 이미지의 크기는 변화 없이 배경의 크기만 변경합니다.
- 자르기: 이미지의 상하좌우를 지정한 픽셀만큼 잘라냅니다. 원본 이미지는 유지되며 이미지 판단 조건이 실행될 때 잘라낸 후 비교하게 됩니다.
- 크기 조절: 이미지의 크기를 변경합니다. 원본 이미지는 유지되며 이미지 판단 조건이 실행될 때 이미지 크기 조정 후 비교하게 됩니다.
- 흐림 효과: 가우시안 블러 효과를 줍니다. 이 효과를 주면 이미지가 부드럽게(흐릿하게) 변화합니다.
- 흑백: 이미지를 흑백으로 바꿉니다.
기본 작업
- 사용 여부: 이 액션의 사용 여부를 설정합니다. False로 설정하면 이 액션은 실행되지 않습니다.
- 설명: 이 액션의 부가적인 설명을 입력합니다.
- 실행 전 지연: 이 액션이 실행되기 전 지연 시간을 입력합니다.
- 실행 후 지연: 이 액션이 실행된 후 지연 시간을 입력합니다.
- 아이디: 스크립트 내에서 유니크한 아이디를 입력합니다.
데이터
- 마우스 좌표: 이 액션이 수행된 후 마우스가 클릭한 위치입니다.
- 매인 윈도우 정보: 이 이미지를 캡처한 창의 위치와 크기 정보입니다. 이 값은 비활성 모드에서 이미지를 추적하기 위해 사용됩니다.
- 컨트롤 윈도우 정보: 이 이미지를 캡쳐한 컨트롤의 위치와 크기 정보입니다. 이 값은 비활성 모드에서 이미지를 추적하기 위해 사용됩니다.
- 판독 문자: OCR을 이용하여 판독한 결과 값이 표시됩니다.
마우스 동작
- 랜덤 맥시멈: 마우스 좌표를 랜덤 하게 처리하기 위한 최댓값입니다.
- 랜덤 미니멈: 마우스 좌표를 랜덤 하게 처리하기 위한 최솟값입니다.
- 마우스 동작: 마우스 동작을 선택합니다.
- 마우스 위치: 찾은 이미지의 범위 내에서 마우스 위치를 선택할 수 있습니다.
- 비활성 모드 방식: 비활성 모드에서 액션을 처리하는 방식을 선택할 수 있습니다.
- 활성 모드 방식: 활성 모드에서 액션을 처리하는 방식을 선택할 수 있습니다.
밝기와 대비
- 대비: 대비(Contrast)를 조정합니다.
- 밝기: 밝기(Brightness)를 조정합니다.
변수
- 가져오기: 글로벌 또는 로컬 변수에 저장되어 있는 값을 이 액션의 속성 값으로 가져옵니다.
- 추가하기: 이 액션의 속성 값을 글로벌 또는 로컬 변수에 저장합니다.
외곽선 (Canny)
- 그라디언트: L1, L2 방식의 그라디언트 사용 유무를 선택합니다. 기본값 False는 L1을 의미합니다. 일반적으로 L2를 사용하지만, 정밀도가 높은 L1이 기본으로 적용되도록 되어 있습니다.
- 임계값 1: 그라디언트 히스테리시스(Hysteresis)를 결정하는 X 임계값(Threshold)입니다.
-
임계값 2: 그라디언트 히스테리시스(Hysteresis)를 결정하는 Y 임계값(Threshold)입니다.※ Hysteresis는 그라디언트의 색상의 변화하는 과정에 의존한다는 뜻입니다. 이는 고정된 임계값을 적용하여, 의도치 않은 비교를 피하기 위함입니다
- 캐니 사용: Canny 외각선 검출의 사용 여부입니다.
- 커널: 노이즈를 필터링합니다. Canny 외곽선에서 노이즈를 필터링할 때 가우시안을 사용합니다. 이 때 가우시안 커널의 크기를 나타냅니다. 기본 값은 3입니다.
외각선 (Laplace)
- 델타: 델타 값은 연산이 완료된 대상 이미지를 저장할 때 적용되는 선택적 델타 값입니다.
- 라플라시안 사용: 라플라스 또는 라플라시안이라고 불리는 연잔자로, 라플라시안 외각선 검출의 사용 여부입니다.
- 매트릭스 타입: 매트릭스 타입은 행렬을 나타냅니다. 기본 값인 CV_8U는 8Bit Unsigned 행렬을 나타냅니다.
- 배율: 계산된 라플라시안 값의 선택적 배율 인수 값입니다.
- 외삽법: 픽셀 외삽법으로 경곗값을 채우는 Border Interpolation(경계 보간법)을 의미합니다. 인터폴레이션은 임의의 2 지점 사이에 연결 지점을 만들어줍니다.
- 커널: 노이즈를 필터링합니다. Laplace 외곽선에서 노이즈를 필터링할 때 가우시안을 사용합니다. 이 때 가우시안 커널의 크기를 나타냅니다. 기본 값은 1입니다.
외각선 (Sobel)
- X 방향 미분: 그라디언트의 변화에서 X 방향 미분 값을 입력합니다. 기본 값은 1입니다.
-
Y 방향 미분: 그라디언트의 변화에서 Y 방향 미분 값을 입력합니다. 기본 값은 1입니다.※ 미분: 외곽선을 검출하기 위해 그라이던트의 높은 변화량을 감지하는 미분 값으로, 그라디언트의 높은 변화량을 찾기 위해 사용됩니다.
- 델타: 연산이 완료된 대상 이미지를 저장할 때 적용되는 선택적 델타 값입니다.
- 매트릭스 타입: 매트릭스 타입은 행렬을 나타냅니다. 기본 값인 CV_8U는 8bit Unsigned 행렬을 나타냅니다.
- 배율: 계산된 소벨 값의 선택적 배율 인수 값입니다.
- 소벨 사용: 소벨 외각선 검출의 사용 여부입니다.
- 외삽법: 픽셀 외삽법으로 경곗값을 채우는 Border Interpolation(경계 보간법)을 의미합니다. 인터폴레이션은 임의의 2 지점 사이에 연결 지점을 만들어줍니다.
- 커널: 노이즈를 필터링합니다. Sobel 외곽선에서 노이즈를 필터링할 때 가우시안을 사용합니다. 이때 가우시안 커널의 크기를 나타냅니다. 기본 값은 3입니다.
이진화
- 반전: 색상을 반전시킵니다.
- 이진화 사용: 이진화는 색상을 0(검은색), 1(흰색)로 표현하는 방법입니다. 흑백과 유사하지만, 더 단순한 형태입니다. 이진화 사용 여부를 선택합니다.
- 임계값: 픽셀의 색상 값을 0과 1로 변화할 때 기준이 되는 값을 입력합니다.
작업
- OCR 영역: 판독할 영역을 선택합니다. 이미지 또는 화면에서 영역을 지정할 수 있습니다.
- 대소문자 구분: 영문의 경우 대소문자가 일치해야 하는지 설정합니다. 이 값은 한글의 경우 자동으로 무시됩니다.
-
변환 타입: Tesseract, MODI 2가지 API를 제공합니다.
Google API의 경우 일치하는 문자의 좌표 값으로 마우스 이벤트를 설정할 수 있습니다. 하지만, 기존에 제공하던 Tesseract, MODI는 좌표 값은 처리할 수 없습니다.※ 구글 API의 경우 유료 서비스라서 제외되었습니다. - 비교 간격: 사용자가 설정한 텍스트가 나올 때까지 반복해서 체크할 수 있습니다. 이때 반복하는 간격을 설정합니다.
- 비교 횟수: 원하는 결과가 나타날 때까지 반복해서 비교 체크를 수행합니다. 움직이는 이미지의 경우 일정 시간 동안 반복해서 체크하면 보다 정확한 결과를 얻을 수 있습니다.
- 비교할 텍스트: 이미지 또는 화면에서 판독한 문자와 비교하는 텍스트입니다.
- 언어: 한국어, 영어, 중국어를 지원합니다. 판독할 문자를 선택합니다.
- 텍스트 비교 옵션: 판독한 문자에서 비교할 텍스트가 같은지 또는 포함인지 사용자가 선택할 수 있습니다.
- 같음: OCR 체크가 True일 때 이동할 액션의 아이디를 설정합니다.
- 다름: OCR 체크가 False일 때 이동할 액션의 아이디를 설정합니다.
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
- 이전글도구 상자 - 조건 - 텍스트 체크 (Tool box, Condition, Text Check) 20.01.25
- 다음글도구 상자 - 조건 - 이미지 변화 체크 (Tool box, Condition, Image Change Check, Image Monitoring) 20.01.25
댓글목록
등록된 댓글이 없습니다.