[비전검사 시리즈 19편] Barcode와 QR Code 검사 시스템 구축 방법 | 1D·2D 코드 인식부터 실무 적용까지
Barcode와 QR Code 검사가 중요한 이유
오늘날 대부분의 제조 공정에서는 제품을 식별하기 위해 다양한 코드를 사용합니다.
대표적으로 다음과 같은 정보가 코드에 저장됩니다.
- 제품 번호(Product ID)
- LOT 번호
- 제조일자
- 시리얼 번호
- 생산 라인 정보
- 검사 이력
- 고객 정보
사람이 직접 입력하면 오입력 가능성이 높지만, 비전검사 시스템은 수백 개의 제품을 빠르고 정확하게 읽을 수 있습니다.
그래서 자동차, 반도체, 식품, 제약, 물류, 전자제품 산업에서는 Barcode 및 QR Code 검사가 필수 공정으로 자리 잡았습니다.
Barcode란?
Barcode는 1차원(1D) 코드입니다.
굵기와 간격이 다른 검은 막대를 이용하여 정보를 저장합니다.
대표적인 종류는 다음과 같습니다.
- Code 39
- Code 128
- EAN-13
- UPC
- ITF
마트 상품이나 택배 송장에서 흔히 볼 수 있는 코드가 바로 Barcode입니다.
QR Code란?
QR Code는 2차원(2D) 코드입니다.
가로와 세로 방향 모두에 정보를 저장하기 때문에 Barcode보다 훨씬 많은 데이터를 저장할 수 있습니다.
QR Code에는 다음과 같은 정보를 저장할 수 있습니다.
- URL
- 제품 정보
- 생산 이력
- 검사 데이터
- 고객 정보
- Wi-Fi 정보
최근에는 스마트폰 카메라만으로도 쉽게 인식할 수 있어 활용 범위가 매우 넓습니다.
Data Matrix란?
제조업에서는 QR Code보다 Data Matrix를 더 많이 사용하는 경우가 있습니다.
특히 자동차와 반도체 산업에서는 Data Matrix가 표준처럼 사용됩니다.
그 이유는 다음과 같습니다.
- 작은 공간에도 인쇄 가능
- 높은 인식률
- 손상 복원 기능
- 레이저 마킹에 적합
자동차 엔진 부품이나 반도체 패키지에서 작은 정사각형 형태의 코드를 본 적이 있다면 대부분 Data Matrix입니다.
Barcode와 QR Code의 차이점
| 항목 | Barcode | QR Code |
| 차원 | 1D | 2D |
| 저장 용량 | 적음 | 매우 많음 |
| 인식 방향 | 한 방향 | 모든 방향 |
| 손상 복원 | 거의 없음 | 오류 복원 기능 지원 |
| 인쇄 크기 | 비교적 큼 | 작게 인쇄 가능 |
Barcode 검사 시스템의 동작 원리
Barcode 검사는 일반적으로 다음 순서로 진행됩니다.
- 카메라 촬영
- 이미지 전처리
- Barcode 영역 검출
- 코드 해독(Decode)
- 데이터 비교
- 검사 결과 출력
Barcode의 검은 막대와 흰 공간을 분석하여 숫자와 문자를 복원합니다.
QR Code 검사 시스템의 동작 원리
QR Code는 Finder Pattern(모서리의 큰 사각형)을 먼저 찾습니다.
이후
- 위치 검출
- 회전 보정
- Perspective 보정
- 데이터 복원
- Error Correction
과정을 수행하여 데이터를 읽습니다.
Error Correction(오류 복원)
QR Code의 가장 큰 장점 중 하나는 오류 복원(Error Correction) 기능입니다.
일부가 손상되어도 데이터를 복원할 수 있습니다.
QR Code는 다음 네 가지 오류 복원 수준을 제공합니다.
| 수준 | 복원 가능 비율 |
| L | 약 7% |
| M | 약 15% |
| Q | 약 25% |
| H | 약 30% |
제조 환경에서는 오염이나 스크래치가 발생할 수 있으므로 적절한 오류 복원 수준을 선택하는 것이 중요합니다.
Barcode 검사에 필요한 장비
안정적인 Barcode 검사 시스템을 구축하려면 다음과 같은 장비를 고려해야 합니다.
- 산업용 카메라
- 적절한 렌즈
- LED 조명
- 코드 리더기(Scanner)
- 산업용 PC
- PLC 연동 장치
카메라와 조명의 품질이 코드 인식률에 큰 영향을 미칩니다.
조명이 중요한 이유
Barcode와 QR Code는 흑백 대비가 명확해야 합니다.
조명이 너무 밝으면
- 코드가 번짐
너무 어두우면
- 코드가 사라짐
현상이 발생합니다.
확산 조명(Diffuse Light)을 사용하면 반사를 줄이고 안정적인 인식이 가능합니다.
OpenCV에서 Barcode와 QR Code 인식
OpenCV에서는 QR Code 인식을 위한 기능을 제공합니다.
대표적인 클래스는 다음과 같습니다.
- QRCodeDetector
Barcode는 OpenCV만으로 구현하기보다 다음과 같은 라이브러리를 함께 사용하는 경우가 많습니다.
- ZXing
- Dynamsoft Barcode SDK
- ZBar
산업 현장에서는 전용 SDK를 사용하는 사례도 많습니다.
Barcode 검사 활용 사례
자동차 산업
엔진 부품의 시리얼 번호 관리
반도체 산업
Wafer ID 및 패키지 추적
식품 산업
제품 추적 및 유통기한 관리
의약품 산업
LOT 번호 및 생산 이력 관리
물류 산업
택배 송장 및 상품 분류 자동화
검사 시스템 구축 시 고려 사항
Barcode와 QR Code 검사는 단순히 코드를 읽는 것에서 끝나지 않습니다.
다음 사항도 함께 검토해야 합니다.
- 코드 위치 확인
- 코드 방향 확인
- 코드 품질 평가
- 인쇄 상태 확인
- 중복 코드 검사
- 데이터베이스 비교
실제 생산라인에서는 이러한 기능을 통합하여 자동 검사 시스템을 구축합니다.
코드 품질(Barcode Verification)
읽을 수 있다고 해서 좋은 Barcode는 아닙니다.
국제 표준에서는 코드 품질도 평가합니다.
대표적인 평가 항목은 다음과 같습니다.
- Contrast(명암 대비)
- Modulation
- Defect
- Decode
- Quiet Zone
- Edge Contrast
품질 등급은 일반적으로
A
B
C
D
F
등으로 구분합니다.
자동차와 의료 산업에서는 일정 등급 이상의 코드만 허용하는 경우가 많습니다.
실무에서 많이 하는 실수
코드 크기가 너무 작다.
카메라 해상도가 부족하면 인식률이 크게 떨어집니다.
반사광을 고려하지 않는다.
금속 표면에서는 반사 때문에 코드가 보이지 않는 경우가 많습니다.
ROI를 너무 크게 설정한다.
불필요한 객체까지 함께 검출될 수 있습니다.
카메라 초점이 맞지 않는다.
초점이 흐리면 코드 해독이 어려워집니다.
Barcode·QR Code 인식률을 높이는 방법
다음 사항을 최적화하면 인식률을 크게 높일 수 있습니다.
- 고해상도 카메라 사용
- 적절한 렌즈 선택
- 균일한 LED 조명
- Exposure 최적화
- Focus 조정
- ROI 최소화
- 코드 크기 확보
- 노이즈 제거
검사 시스템 구축 체크리스트
구축 전에 다음 항목을 확인하세요.
- 코드 종류가 무엇인가?
- 코드 크기가 충분한가?
- 카메라 해상도가 적절한가?
- 조명이 균일한가?
- 코드 품질 기준이 있는가?
- PLC와 연동이 필요한가?
- MES 시스템과 연결하는가?
- 검사 속도를 만족하는가?
Barcode Scanner와 Vision Camera의 차이
많은 분들이 Barcode Scanner와 Vision Camera를 혼동합니다.
| Barcode Scanner | Vision Camera |
| 코드 읽기 전용 | 코드 + 이미지 검사 |
| 설치가 간단 | 다양한 검사 가능 |
| 비교적 저렴 | 비용이 높음 |
| 코드 판독만 수행 | 위치, 치수, 문자, 불량 검사 가능 |
생산라인에서 코드 판독만 필요하다면 Barcode Scanner, 코드와 함께 외관 검사까지 수행해야 한다면 Vision Camera가 적합합니다.
Barcode·QR Code 검사 실패 사례
실제 제조 현장에서 Barcode와 QR Code 검사가 실패하는 원인은 대부분 디코딩 알고리즘보다 영상 품질, 인쇄 상태, 설치 환경 문제에서 발생합니다.
전용 코드 리더기나 고성능 비전 카메라를 사용하더라도 입력 이미지가 불안정하면 정상적인 검사가 어렵습니다.
대표적인 실패 사례는 다음과 같습니다.
1. 반사광으로 인해 코드가 사라지는 경우
발생 사례
금속 부품에 레이저 마킹으로 Data Matrix를 인쇄한 생산라인에서 발생하는 대표적인 문제입니다.
금속 표면은 조명 반사가 강하기 때문에 특정 각도에서 촬영하면 코드 영역이 하얗게 날아가거나 일부 패턴이 보이지 않는 현상이 발생합니다.
문제 현상
- QR Code 일부 영역 미검출
- Data Matrix Decode 실패
- 동일 제품인데 인식률 차이 발생
- 시간대별 인식 성능 변화
원인
- 조명 각도 부적절
- 확산 조명 미사용
- 편광 필터 미적용
- 제품 표면 특성 고려 부족
개선 방법
- Dome Light 적용
- 저각도 조명 사용
- Polarizing Filter 적용
- 카메라와 조명의 반사각 조정
특히 금속 부품 검사에서는 조명의 방향만 변경해도 인식률이 크게 향상되는 경우가 많습니다.
2. 코드 크기가 너무 작아 인식하지 못하는 경우
발생 사례
반도체 패키지나 소형 전자부품에서는 제품 크기 제한 때문에 매우 작은 Data Matrix를 사용하는 경우가 있습니다.
하지만 카메라 해상도가 부족하면 코드 패턴 하나하나를 충분히 표현하지 못합니다.
문제 현상
- Code 영역 검출 실패
- 일부 문자 오류
- Decode 시간 증가
- 생산 속도 저하
원인
- 카메라 해상도 부족
- 렌즈 배율 부족
- 촬영 거리 과다
- Pixel Per Module 부족
개선 방법
- 고해상도 카메라 적용
- 적절한 렌즈 선정
- 촬영 거리 조정
- 코드 크기에 맞는 Pixel 확보
일반적으로 2D Code는 각 Module(최소 사각 셀)이 충분한 Pixel 수를 확보해야 안정적인 인식이 가능합니다.
3. 초점 불량으로 코드 판독 실패
발생 사례
생산라인 변경 후 카메라 위치가 이동되었지만 Focus 조정을 하지 않아 코드 인식률이 급격히 떨어지는 경우입니다.
문제 현상
- 정상 코드인데 Decode 실패
- 인식률 랜덤 변화
- 검사 시간이 길어짐
원인
- Lens Focus 불량
- 진동으로 카메라 위치 변화
- 제품 높이 편차
개선 방법
- Focus 재조정
- 고정 브라켓 보강
- Telecentric Lens 검토
- 제품 위치 가이드 적용
코드 검사는 문자와 패턴의 경계가 중요하기 때문에 약간의 초점 변화도 큰 영향을 줍니다.
4. 인쇄 품질 불량으로 검사 실패
발생 사례
잉크젯 프린터나 레이저 마킹 공정에서 코드 품질이 일정하지 않아 발생합니다.
문제 현상
- 같은 LOT인데 일부 제품만 NG 발생
- 특정 생산 시간대 불량 증가
- 코드 품질 등급 하락
원인
- 잉크 번짐
- 레이저 출력 부족
- 인쇄 위치 변화
- 오염 발생
개선 방법
- Barcode Verification 적용
- 인쇄 장비 상태 점검
- 코드 품질 기준 설정
- 주기적인 노즐 및 마킹 상태 관리
"읽힌다"와 "좋은 코드다"는 서로 다른 기준입니다.
생산 관리 목적에서는 단순 Decode뿐 아니라 코드 품질 평가가 필요합니다.
5. ROI 설정 오류로 인한 오검출 발생
발생 사례
카메라 전체 영역에서 QR Code를 찾도록 설정했지만 주변 문자, 부품 형상, 나사 등이 코드처럼 인식되는 경우입니다.
문제 현상
- 다른 위치의 코드 검출
- 잘못된 데이터 출력
- 검사 시간 증가
원인
- ROI 영역 과다 설정
- 주변 패턴과 코드 혼동
- 검색 영역 최적화 부족
개선 방법
- 검사 위치 고정
- ROI 최소화
- 제품 위치 보정 적용
- Pattern Matching 연계
6. 제품 위치 변화로 인해 코드 인식 실패
발생 사례
컨베이어 위 제품이 회전하거나 위치가 이동하면서 코드 방향이 달라지는 경우입니다.
문제 현상
- 특정 방향에서만 인식 가능
- 간헐적인 NG 발생
- 생산 속도 저하
원인
- 카메라 설치 방향 부적절
- Rotation 대응 부족
- Alignment 미적용
개선 방법
- QR Code 방향 검출 기능 활용
- Pattern Matching으로 위치 보정
- 제품 위치 가이드 설치
- Multi-angle 조명 적용
7. 너무 빠른 이동으로 Motion Blur 발생
발생 사례
고속 컨베이어 라인에서 제품이 이동하는 순간 촬영하여 코드가 흐려지는 경우입니다.
문제 현상
- Barcode 막대가 번짐
- QR Code Module 구분 실패
- Decode 실패 증가
원인
- Exposure 시간이 너무 김
- Strobe 조명 미사용
- 카메라 셔터 속도 부족
개선 방법
- Strobe 조명 적용
- Exposure 시간 단축
- Trigger 촬영 사용
- 고속 카메라 적용
Barcode·QR Code 검사 실패 원인 정리
| 실패 원인 | 주요 문제 | 개선 방법 |
| 반사광 | 코드 영역 손실 | 확산 조명, 편광 필터 |
| 낮은 해상도 | Module 구분 불가 | 고해상도 카메라 |
| Focus 불량 | 흐림 발생 | Lens 조정 |
| 인쇄 불량 | Decode 실패 | 품질 검사 강화 |
| ROI 오류 | 오검출 발생 | 영역 최적화 |
| 위치 변화 | 방향 인식 실패 | Alignment 적용 |
| Motion Blur | 코드 번짐 | Strobe 사용 |
실무에서 기억해야 할 핵심
Barcode와 QR Code 검사 문제를 해결할 때 많은 엔지니어가 먼저 소프트웨어 설정이나 디코딩 알고리즘을 변경합니다.
하지만 실제 현장에서는 다음 순서로 원인을 확인하는 것이 효과적입니다.
① 조명 확인
→ ② Focus 확인
→ ③ Exposure 확인
→ ④ 코드 품질 확인
→ ⑤ 카메라 해상도 확인
→ ⑥ 디코딩 설정 최적화
좋은 코드 인식은 좋은 이미지에서 시작됩니다.
비전검사 시스템에서는 "읽는 알고리즘"보다 먼저 "읽을 수 있는 영상"을 만드는 것이 가장 중요합니다.
자주 묻는 질문(FAQ)
Q1. Barcode와 QR Code 중 무엇을 사용하는 것이 좋나요?
저장해야 하는 데이터가 적다면 Barcode도 충분합니다. 하지만 많은 정보를 저장하거나 손상 복원이 필요한 경우에는 QR Code 또는 Data Matrix가 더 적합합니다.
Q2. Data Matrix와 QR Code는 무엇이 다른가요?
둘 다 2D 코드이지만, Data Matrix는 작은 크기에서도 높은 인식률을 제공하여 자동차와 반도체 산업에서 많이 사용됩니다.
Q3. OpenCV만으로 Barcode를 읽을 수 있나요?
QR Code는 OpenCV의 QRCodeDetector를 활용할 수 있지만, Barcode는 ZXing, ZBar, Dynamsoft SDK와 같은 전문 라이브러리를 함께 사용하는 경우가 많습니다.
Q4. 코드가 일부 손상되어도 읽을 수 있나요?
QR Code와 Data Matrix는 오류 복원 기능을 제공하므로 일정 수준까지는 정상적으로 데이터를 읽을 수 있습니다.
실무 노하우
많은 현장에서 "코드가 잘 안 읽힌다"는 문제를 소프트웨어로 해결하려고 합니다. 하지만 실제 원인은 조명, 카메라 각도, 인쇄 품질인 경우가 훨씬 많습니다.
특히 레이저 마킹된 금속 부품은 반사가 심하기 때문에, 조명 방향을 조정하거나 편광 필터(Polarizing Filter)를 적용하는 것만으로도 인식률이 크게 향상될 수 있습니다.
즉, 코드 인식률은 알고리즘뿐 아니라 광학 환경에 의해 크게 좌우됩니다.
마무리
Barcode와 QR Code 검사는 제조 자동화와 물류 시스템에서 제품을 정확하게 식별하고 추적하기 위한 핵심 기술입니다.
Barcode는 구조가 단순하고 빠른 인식이 장점이며, QR Code와 Data Matrix는 더 많은 데이터를 저장하고 오류 복원 기능까지 제공하여 다양한 산업에서 활용되고 있습니다.
안정적인 검사 시스템을 구축하려면 카메라, 렌즈, 조명, 코드 품질, 전처리 알고리즘을 함께 최적화해야 합니다.
다음 편에서는 "Color Inspection(색상 검사) 구현 방법 | RGB, HSV 색공간부터 실무 활용까지"를 통해 색상 검사의 원리와 실제 적용 방법을 자세히 알아보겠습니다.