[비전검사 시리즈 18편] OCR과 OCV 차이점 | 문자 인식 비전검사 구축 방법
OCR과 OCV란?
자동차 부품, 반도체, 식품, 의약품, 전자제품 등 다양한 제조 공정에서는 제품에 제조일자, LOT 번호, 시리얼 번호, 모델명, 유통기한 등의 문자가 인쇄됩니다.
이러한 문자를 사람이 직접 확인하면 시간이 오래 걸리고 실수가 발생할 수 있습니다.
이를 자동으로 검사하기 위해 사용하는 기술이 바로 OCR(Optical Character Recognition) 과 OCV(Optical Character Verification) 입니다.
두 기술은 모두 문자와 관련되어 있지만 목적과 활용 방식은 분명한 차이가 있습니다.
이번 글에서는 OCR과 OCV의 차이점, 동작 원리, 구축 방법, 실무 적용 사례까지 자세히 알아보겠습니다.
OCR(Optical Character Recognition)이란?
OCR은 이미지 속 문자를 읽어 텍스트 데이터로 변환하는 기술입니다.
예를 들어 제품에 다음과 같은 문자가 인쇄되어 있다고 가정해 보겠습니다.
LOT240815
OCR은 이를 분석하여
LOT240815
라는 문자열을 컴퓨터가 사용할 수 있는 데이터로 변환합니다.
즉, OCR = "무슨 글자인가?"를 읽는 기술 입니다.
OCV(Optical Character Verification)란?
OCV는 문자 자체를 읽는 것이 아니라 이미 알고 있는 문자와 비교하여 올바르게 인쇄되었는지 확인하는 기술입니다.
예를 들어 생산 시스템에서 오늘 인쇄되어야 하는 LOT 번호가
LOT240815
라고 정해져 있다면,OCV는 제품에 인쇄된 문자가 동일한지 확인합니다.
즉, OCV = "정해진 문자와 같은가?"를 검사하는 기술 입니다.
OCR과 OCV의 차이점
| 항목 | OCR | OCV |
| 목적 | 문자 읽기 | 문자 검증 |
| 입력 | 이미지 | 이미지 + 기준 문자열 |
| 결과 | 문자 데이터 | OK / NG |
| 활용 | 문서 인식, 번호 판독 | 생산라인 문자 검사 |
| 정확도 | 글자 품질에 영향 | 기준값 비교로 안정적 |
쉽게 말하면,OCR은 읽는 기술,OCV는 검사하는 기술입니다.
OCR의 동작 원리
OCR은 일반적으로 다음 순서로 수행됩니다.
- 이미지 입력
- Gray 변환
- 노이즈 제거
- Threshold 적용
- 문자 영역 검출
- 문자 분리
- 문자 인식
- 문자열 출력
최근에는 딥러닝 기반 OCR도 많이 사용됩니다.
OCV의 동작 원리
OCV는 다음과 같은 과정을 거칩니다.
- 이미지 입력
- 문자 영역 검출
- OCR 수행
- 기준 문자열 비교
- OK / NG 판정
따라서 OCV 내부에서도 OCR 기술이 함께 사용되는 경우가 많습니다.
OCR이 많이 사용되는 분야
OCR은 다양한 산업에서 활용됩니다.
자동차 산업
- 엔진 번호
- 시리얼 번호
- 부품 번호
반도체
- Wafer ID
- Chip ID
식품
- 제조일자
- 유통기한
- LOT 번호
의약품
- 사용기한
- 제조번호
- 제품명
물류
- 송장 번호
- 택배 라벨
- 바코드 정보
OCV가 많이 사용되는 분야
OCV는 생산 자동화에서 매우 많이 사용됩니다.
예를 들어 오늘 생산하는 제품의 LOT 번호가
LOT240815
이어야 한다면 OCV는 제품에 인쇄된 문자와 비교하여
- 동일 → OK
- 다름 → NG
를 판단합니다.
자동차와 제약 산업에서는 거의 필수 검사 항목입니다.
OCR 구축 시 중요한 요소
OCR 성능은 다음 요소에 크게 영향을 받습니다.
- 카메라 해상도
- 렌즈 품질
- 조명
- 문자 크기
- 글꼴(Font)
- 문자 대비
- Focus
- Exposure
문자가 선명할수록 OCR 정확도도 높아집니다.
OCR 전처리(Preprocessing)
OCR 인식률을 높이기 위해 다양한 전처리 과정을 수행합니다.
대표적인 전처리 기법은 다음과 같습니다.
| 전처리 | 목적 |
| Gray 변환 | 색상 제거 |
| Threshold | 문자 강조 |
| Gaussian Blur | 노이즈 제거 |
| Morphology | 문자 보정 |
| Edge Detection | 문자 경계 강화 |
| ROI 설정 | 문자 영역 제한 |
좋은 전처리는 OCR 정확도를 크게 향상시킵니다.
OCR과 AI OCR의 차이
최근에는 AI 기반 OCR도 널리 사용됩니다.
| 일반 OCR | AI OCR |
| 규칙 기반 | 딥러닝 기반 |
| 일정한 글꼴에 강함 | 다양한 글꼴 대응 |
| 빠른 처리 | 높은 인식률 |
| 구현 간단 | 학습 필요 |
인쇄 상태가 일정한 생산라인에서는 일반 OCR만으로도 충분한 경우가 많습니다.
OpenCV에서 OCR 구현
OpenCV 자체에는 OCR 기능이 포함되어 있지 않습니다.
일반적으로 다음과 같이 구성합니다.
OpenCV
↓
전처리
↓
Tesseract OCR
↓
문자 인식
↓
결과 출력
대표적으로 사용하는 OCR 엔진은 다음과 같습니다.
- Tesseract OCR
- EasyOCR
- PaddleOCR
- Google ML Kit
OCR 정확도를 높이는 방법
실무에서는 다음 사항을 반드시 확인합니다.
- 고해상도 카메라 사용
- 문자 높이 확보
- 균일한 조명
- Focus 최적화
- Exposure 최적화
- ROI 최소화
- 노이즈 제거
- 글꼴 일정하게 유지
이러한 조건을 만족하면 OCR 인식률을 크게 높일 수 있습니다.
OCR 구축 사례
자동차 부품
부품 번호 자동 판독
반도체
Wafer ID 자동 인식
PCB 검사
PCB Serial Number 확인
식품
유통기한 자동 판독
의약품
LOT 번호 확인
물류
송장 번호 자동 입력
OCR 구축 시 많이 하는 실수
문자 크기가 너무 작다.
문자 높이가 충분하지 않으면 인식률이 급격히 떨어집니다.
조명이 일정하지 않다.
반사광 때문에 문자가 사라질 수 있습니다.
ROI를 너무 크게 설정한다.
불필요한 문자가 함께 인식될 수 있습니다.
글꼴이 계속 바뀐다.
OCR 학습이나 설정을 다시 해야 하는 경우가 많습니다.
OCR 구축 체크리스트
구축 전에 다음 사항을 확인하세요.
- 카메라 해상도가 충분한가?
- 문자 높이가 적절한가?
- 조명이 일정한가?
- ROI가 정확한가?
- Threshold가 적절한가?
- Focus가 맞는가?
- OCR 엔진이 적합한가?
- OCV가 필요한 검사인가?
OCR과 OCV 검사 실패 사례와 개선 방법
실패 사례 1. 문자 크기가 작아 OCR 인식률이 떨어지는 경우
문제 상황
제품에 인쇄된 LOT 번호를 OCR로 검사했지만 동일한 문자에서도 인식 결과가 일정하지 않은 문제가 발생했습니다.
발생 결과:
- 숫자 오인식
- 문자 누락
- 반복 검사 결과 불일치
- OCV NG 증가
원인
OCR은 이미지 속 문자 형태를 분석하기 때문에 문자 크기가 매우 중요합니다.
문자 높이가 너무 작으면 하나의 글자를 구성하는 Pixel 정보가 부족해집니다.
예)
문자 높이 40 Pixel 이상 : 안정적인 인식 가능
문자 높이 10 Pixel 이하 : 오인식 증가 가능
개선 방법
- 고해상도 카메라 적용
- 렌즈 배율 조정
- 문자 영역 확대
- 촬영 거리 최적화
- 적절한 ROI 설정
OCR 성능 향상을 위해서는 OCR 엔진보다 먼저 문자 Pixel 확보가 중요합니다.
실패 사례 2. 반사광으로 인해 문자가 사라지는 경우
문제 상황
금속 부품에 레이저 마킹된 문자를 OCR 검사했습니다.
하지만 조명 위치에 따라 일부 문자가 보이지 않는 문제가 발생했습니다.
발생 결과:
- 특정 문자 인식 실패
- 숫자 누락
- OCV 오판정
원인
금속, 유광 플라스틱, 반사 필름 제품은 조명 각도에 따라 밝은 영역이 발생합니다.
이 반사 영역은 문자와 배경의 대비를 감소시켜 OCR 성능을 떨어뜨립니다.
개선 방법
- Dome Light 사용
- 저각 조명 적용
- 편광 필터 사용
- 확산판 적용
- 조명 각도 변경
문자가 잘 보이는 환경을 만드는 것이 OCR 성공의 핵심입니다.
실패 사례 3. Focus 불량으로 문자 형태가 깨지는 경우
문제 상황
카메라 설치 후 OCR 테스트에서는 일부 문자가 인식되었지만 생산라인에서 지속적인 오류가 발생했습니다.
원인
카메라 Focus가 정확하지 않아 문자의 경계가 흐려졌습니다.
OCR은 문자 형태의 특징을 분석하기 때문에 작은 흐림도 인식률에 영향을 줍니다.
발생 결과:
- 8과 3 혼동
- 0과 O 혼동
- 1과 I 혼동
- 특수 문자 오류
개선 방법
- 렌즈 Focus 재조정
- 조리개 설정 변경
- 카메라 거리 고정
- 진동 방지 구조 적용
실패 사례 4. Threshold 설정 오류로 문자가 손실되는 경우
문제 상황
OCR 전처리 과정에서 Binary Threshold를 적용했지만 일부 문자가 사라지는 문제가 발생했습니다.
발생 결과:
- 문자 일부 누락
- 인식률 감소
- OCV 불량 증가
원인
Threshold 값이 너무 높거나 낮으면 문자와 배경 분리가 제대로 되지 않습니다.
너무 낮은 경우:
- 배경 Noise 증가
- 불필요한 영역 포함
너무 높은 경우:
- 문자 일부 제거
- 획 끊김 발생
개선 방법
- Histogram 분석
- Otsu Threshold 적용
- Adaptive Threshold 검토
- Morphology 보정 적용
실패 사례 5. ROI 설정 오류로 잘못된 문자를 읽는 경우
문제 상황
제품 여러 위치에 문자가 존재하는 환경에서 OCR 검사를 진행했습니다.
하지만 검사 대상이 아닌 다른 문자까지 함께 인식되었습니다.
발생 결과:
- 잘못된 LOT 번호 검출
- OCR 문자열 오류
- OCV NG 발생
원인
OCR 영역(ROI)이 너무 넓으면 불필요한 정보가 포함됩니다.
예)
제품명 + LOT 번호 + 제조사 로고
OCR 결과: ABC LOT240815 XYZ 처럼 예상하지 않은 문자열이 입력될 수 있습니다.
개선 방법
- 문자 위치 기반 ROI 설정
- Pattern Matching 후 OCR 수행
- 필요 영역만 Crop
- 제품별 ROI 관리
실패 사례 6. Font 변경으로 OCR 인식 실패
문제 상황
생산 제품 모델 변경 후 기존 OCR 설정을 그대로 사용했습니다.
하지만 새로운 모델의 문자가 제대로 인식되지 않았습니다.
원인
OCR은 문자 형태와 패턴에 영향을 받습니다.
다음 변경 요소가 영향을 줍니다.
- Font 변경
- 문자 두께 변화
- 크기 변화
- 마킹 방식 변경
개선 방법
- 제품별 OCR 모델 관리
- Font별 테스트 진행
- Template OCR 적용
- AI OCR 검토
실패 사례 7. OCR은 정상인데 OCV 검사에서 NG가 발생하는 경우
문제 상황
OCR 결과는 정상적으로 표시되었지만 OCV 검사에서는 계속 NG가 발생했습니다.
원인
OCR 결과와 기준 문자열 비교 조건이 잘못 설정되었습니다.
예:
실제 OCR 결과:LOT240815
기준 값:LOT240815
하지만 내부 비교:
- 공백 포함
- 대소문자 구분
- 특수문자 포함
등으로 인해 불일치가 발생할 수 있습니다.
개선 방법
OCV 비교 조건을 최적화합니다.
확인 항목:
- 공백 제거
- 대소문자 처리
- 허용 문자 설정
- 숫자/문자 검증 조건 설정
실패 사례 8. OCR 엔진만 변경하고 이미지 품질을 개선하지 않은 경우
문제 상황
OCR 인식률이 낮아 여러 OCR 엔진을 변경했습니다.
하지만 결과는 크게 개선되지 않았습니다.
원인
문제의 원인이 OCR 알고리즘이 아니라 입력 이미지 품질이었기 때문입니다.
OCR 실패 원인의 대부분은 다음 요소에서 발생합니다.
- 부족한 조명
- 낮은 해상도
- 초점 불량
- 반사광
- Motion Blur
개선 방법
OCR 엔진 변경 전에 먼저 다음 순서를 확인해야 합니다.
- 조명 개선
- Focus 조정
- Exposure 설정
- Gain 최소화
- 문자 크기 확보
- 전처리 최적화
- OCR 엔진 변경 검토
좋은 이미지를 확보하면 일반 OCR에서도 높은 인식률을 얻을 수 있습니다.
OCR·OCV 실패를 줄이는 핵심 조건
산업용 문자 검사에서는 OCR 엔진보다 이미지 품질과 검사 환경 관리가 더 중요합니다.
안정적인 구축 순서:
- 문자 크기 확보
- 조명 최적화
- Focus 조정
- Exposure 설정
- ROI 설정
- 전처리 적용
- OCR 인식
- OCV 기준 비교
특히 생산라인에서는 다음 세 가지가 가장 중요합니다.
- 선명한 문자 이미지 확보
- 일정한 조명 환경 유지
- 정확한 기준 문자열 관리
이 조건을 만족해야 장시간 운영에서도 안정적인 문자 검사 시스템을 구축할 수 있습니다.
자주 묻는 질문(FAQ)
Q1. OCR과 OCV는 같은 기술인가요?
아닙니다.
OCR은 문자를 읽는 기술이며,
OCV는 기준 문자와 비교하여 올바르게 인쇄되었는지 검사하는 기술입니다.
Q2. OCR만으로 OCV를 구현할 수 있나요?
가능합니다.
OCR 결과를 기준 문자열과 비교하면 OCV 기능을 구현할 수 있습니다.
Q3. OpenCV만으로 OCR이 가능한가요?
아닙니다.
OpenCV는 이미지 전처리를 담당하며, 문자 인식은 Tesseract OCR이나 PaddleOCR 같은 OCR 엔진과 함께 사용합니다.
Q4. AI OCR이 항상 더 좋은가요?
반드시 그렇지는 않습니다.
일정한 글꼴과 일정한 환경에서는 일반 OCR이 더 빠르고 구현도 간단합니다.
실무 노하우
많은 초보 개발자가 OCR의 성능을 높이기 위해 OCR 엔진만 변경하려고 합니다. 하지만 실제 산업 현장에서는 OCR 엔진보다 카메라와 조명 환경이 더 큰 영향을 미치는 경우가 많습니다.
예를 들어, 문자가 선명하게 촬영되지 않는다면 최신 AI OCR을 사용하더라도 오인식이 발생할 수 있습니다. 반대로 균일한 조명과 적절한 노출(Exposure), 정확한 초점(Focus), 충분한 해상도를 확보하면 일반 OCR 엔진만으로도 99% 이상의 높은 인식률을 얻을 수 있습니다.
따라서 "좋은 영상 입력이 좋은 OCR 결과를 만든다."는 원칙을 항상 기억하는 것이 중요합니다.
마무리
OCR과 OCV는 문자와 관련된 검사라는 공통점이 있지만, 목적은 분명히 다릅니다.
- OCR은 문자를 읽어 데이터로 변환하는 기술입니다.
- OCV는 읽은 문자가 기준과 일치하는지 검증하는 기술입니다.
실제 제조 현장에서는 두 기술을 함께 사용하는 경우가 많으며, 카메라, 조명, 렌즈, 전처리 알고리즘까지 함께 최적화해야 높은 검사 정확도를 얻을 수 있습니다.
다음 편에서는 "Barcode와 QR Code 검사 시스템 구축 방법 | 1D·2D 코드 인식부터 실무 적용까지"를 통해 산업용 바코드 및 QR 코드 검사 시스템 구축 방법을 자세히 알아보겠습니다.