[비전검사 시리즈 13편] 비전검사 Histogram(히스토그램)을 활용하는 방법 | 밝기 분석과 불량 검출
Histogram(히스토그램)이란?
비전검사 시스템에서 이미지를 분석할 때 가장 먼저 확인해야 하는 것이 있습니다.
바로 Histogram(히스토그램) 입니다.
많은 초보 엔지니어들은 카메라 설정이나 AI 모델부터 수정하려고 하지만, 숙련된 머신비전 엔지니어들은 먼저 히스토그램을 확인합니다.
그 이유는 매우 간단합니다.
히스토그램은 이미지의 상태를 숫자로 보여주는 가장 기본적인 분석 도구이기 때문입니다.
이미지가 너무 어두운지, 너무 밝은지, 대비가 충분한지, 조명이 일정한지 등을 한눈에 파악할 수 있습니다.
실제로 비전검사 알고리즘의 성능은 대부분 입력 이미지의 품질에 영향을 받기 때문에 히스토그램 분석은 검사 정확도를 높이기 위한 첫 번째 단계라고 할 수 있습니다.
Histogram의 원리
히스토그램은 이미지 안에 존재하는 밝기(Brightness) 값의 분포를 그래프로 표현한 것입니다.
흑백 이미지의 경우 밝기는 일반적으로 다음과 같이 표현됩니다.
- 0 : 완전한 검정
- 255 : 완전한 흰색
즉, 0부터 255까지 각각의 밝기 값이 이미지 안에 몇 개 존재하는지를 막대그래프로 나타낸 것이 히스토그램입니다.
예를 들어,이미지 대부분이 검은색이라면 그래프는 왼쪽에 집중됩니다.
반대로 밝은 이미지라면 오른쪽에 많은 값이 분포합니다.
히스토그램은 어떻게 읽을까?
히스토그램을 읽는 방법은 생각보다 간단합니다.
왼쪽에 그래프가 몰려 있다면
이미지가 어둡다는 의미입니다.
발생 가능한 문제는 다음과 같습니다.
- 조명 부족
- Exposure 부족
- Threshold 설정 어려움
- Pattern Matching 정확도 감소
- OCR 인식률 저하
오른쪽에 그래프가 몰려 있다면
이미지가 너무 밝다는 의미입니다.
대표적인 문제는 다음과 같습니다.
- 과노출(Over Exposure)
- 흰색 영역 손실
- 반사광 증가
- Edge 정보 손실
중앙에 고르게 분포한다면
가장 이상적인 상태입니다.
명암 대비가 충분하고 다양한 밝기 정보가 존재하기 때문에 대부분의 비전검사 알고리즘이 안정적으로 동작합니다.
왜 Histogram이 중요한가?
비전검사는 단순히 이미지를 보는 것이 아니라 숫자로 분석하는 과정입니다.
예를 들어 Threshold를 이용해 제품과 배경을 분리한다고 가정해 보겠습니다.
배경과 제품의 밝기 차이가 충분하다면 쉽게 분리할 수 있습니다.
하지만 히스토그램이 서로 겹쳐 있다면 정확한 분리가 어렵습니다.
결국 Blob Analysis, OCR, Pattern Matching, Edge Detection과 같은 알고리즘의 성능도 함께 저하됩니다.
Histogram과 Threshold의 관계
Threshold는 특정 밝기 값을 기준으로 이미지를 두 개의 영역으로 나누는 기술입니다.
예를 들어 Threshold를 120으로 설정하면
- 120보다 작은 값은 검정
- 120보다 큰 값은 흰색
으로 변환됩니다.
하지만 히스토그램이 다음과 같은 형태라면 문제가 발생합니다.
제품 ████████
배경 ███████
두 영역이 서로 겹치기 때문에 적절한 Threshold를 찾기 어렵습니다.
반면 아래처럼 분리되어 있다면
제품 █████
████████ 배경
Threshold 하나만으로도 정확하게 제품과 배경을 분리할 수 있습니다.
좋은 Histogram의 조건
좋은 히스토그램은 다음과 같은 특징을 가지고 있습니다.
- 전체 밝기가 적절하다.
- 명암 대비가 충분하다.
- 과도한 포화 영역이 없다.
- 너무 어두운 영역이 없다.
- 그래프가 한쪽으로 치우치지 않는다.
이러한 조건을 만족하면 대부분의 비전검사 알고리즘이 안정적으로 동작합니다.
Histogram을 이용한 조명 최적화
실무에서는 히스토그램을 가장 많이 사용하는 목적이 바로 조명 최적화입니다.
예를 들어, 조명을 조금씩 밝게 조절하면서 히스토그램을 확인합니다.
그래프가 오른쪽 끝까지 붙기 시작하면 과노출입니다.
반대로 왼쪽에만 몰려 있다면 조명이 부족한 것입니다.
가장 좋은 상태는 그래프가 중앙을 기준으로 넓게 퍼져 있는 경우입니다.
이 방법은 카메라 Exposure나 Gain을 조절할 때도 동일하게 적용됩니다.
Histogram Equalization이란?
Histogram Equalization(히스토그램 평활화)은 이미지의 명암 대비를 자동으로 향상시키는 기술입니다.
어두운 이미지나 밝기가 한쪽으로 치우친 이미지를 보다 선명하게 만들어 줍니다.
장점은 다음과 같습니다.
- Edge Detection 향상
- OCR 정확도 향상
- 작은 결함 강조
- 대비 향상
하지만 모든 이미지에 적용하는 것은 아닙니다.
노이즈까지 함께 강조될 수 있기 때문에 검사 목적에 맞게 사용하는 것이 중요합니다.
불량 검출에서 Histogram 활용 사례
1. 표면 오염 검사
제품 표면에 이물질이 생기면 밝기 분포가 달라집니다.
히스토그램을 비교하면 정상 제품과 불량 제품의 차이를 쉽게 확인할 수 있습니다.
2. 코팅 검사
코팅이 제대로 이루어지지 않은 영역은 밝기가 달라집니다.
히스토그램 변화만으로도 코팅 불량을 검출할 수 있습니다.
3. 인쇄 품질 검사
인쇄 농도가 일정하지 않으면 히스토그램의 분포도 달라집니다.
OCR 검사 전 단계에서 품질을 확인하는 데 자주 활용됩니다.
4. 조명 이상 감지
LED 조명의 밝기가 감소하거나 외부 환경이 변하면 히스토그램이 변합니다.
이를 이용하면 검사 장비의 이상 여부도 확인할 수 있습니다.
OpenCV에서 Histogram 계산
OpenCV에서는 calcHist() 함수를 이용하여 히스토그램을 계산할 수 있습니다.
일반적인 처리 과정은 다음과 같습니다.
- 이미지 읽기
- Grayscale 변환
- Histogram 계산
- Histogram 그래프 출력
- 밝기 분포 분석
실제 비전검사 프로그램에서는 히스토그램을 실시간으로 표시하여 카메라 설정을 최적화하는 경우가 많습니다.
실무에서 많이 하는 실수
다음과 같은 실수는 검사 정확도를 떨어뜨릴 수 있습니다.
히스토그램을 확인하지 않고 Threshold만 수정한다.
이미지 품질이 좋지 않다면 Threshold를 아무리 변경해도 원하는 결과를 얻기 어렵습니다.
Exposure만 계속 변경한다.
조명이 부족한데 Exposure만 높이면 Motion Blur가 발생할 수 있습니다.
먼저 조명을 개선해야 합니다.
Gain을 과도하게 높인다.
Gain은 노이즈도 함께 증가시키므로 히스토그램이 좋아 보여도 실제 검사 성능은 낮아질 수 있습니다.
히스토그램이 항상 같아야 한다고 생각한다.
제품 색상이나 재질에 따라 히스토그램은 달라질 수 있습니다.
중요한 것은 같은 제품은 항상 비슷한 히스토그램을 유지하는 것입니다.
비전검사 Histogram(히스토그램) 설정 실패 사례
비전검사 현장에서 발생하는 많은 검사 실패는 알고리즘 문제가 아니라 입력 이미지 품질 문제에서 시작됩니다.
특히 Histogram(히스토그램)을 확인하지 않고 카메라 설정이나 Threshold 값을 임의로 변경하면, 검사 시스템이 불안정해지고 양품을 불량으로 판단하는 오검출(False Positive)과 불량을 놓치는 미검출(False Negative)이 증가할 수 있습니다.
이번 글에서는 실제 제조 현장에서 자주 발생하는 Histogram 분석 실패 사례와 개선 방법을 알아보겠습니다.
실패 사례 1. Histogram 확인 없이 Threshold 값만 변경한 경우
발생 상황
한 제조라인에서 제품 외곽 형상을 검사하기 위해 Binary Threshold를 적용했습니다.
초기에는 정상적으로 제품과 배경이 분리되었지만, 시간이 지나면서 조명 변화로 인해 검사 결과가 흔들리기 시작했습니다.
개발자는 문제 해결을 위해 Threshold 값을 계속 변경했습니다.
예)
기존 Threshold : 120
변경 후 100, 140, 160등 여러 값을 테스트했습니다.
하지만 검사 결과는 개선되지 않았습니다.
문제 원인
근본적인 원인은 Threshold 값이 아니라 이미지 밝기 분포 변화였습니다.
확인 결과,
LED 조명 밝기 감소,카메라 Exposure 변경,제품 표면 반사 변화등으로 인해 Histogram 위치가 이동한 상태였습니다.
제품과 배경의 밝기 차이가 줄어들었기 때문에 어떤 Threshold 값을 적용해도 안정적인 분리가 어려웠습니다.
개선 방법
Threshold 조정 전에 반드시 Histogram을 확인해야 합니다.
확인 항목: 제품 밝기 영역,배경 밝기 영역,명암 대비,포화 영역 존재 여부,제품과 배경 Histogram이 충분히 분리되어 있다면 Threshold 조정으로 해결할 수 있습니다.
하지만 Histogram이 겹쳐 있다면 먼저 조명과 카메라 설정을 개선해야 합니다.
실패 사례 2. Gain만 올려 밝기를 해결한 경우
발생 상황
검사 이미지가 어둡게 촬영되는 문제가 발생했습니다.
작업자는 카메라 밝기를 높이기 위해 Gain 값을 크게 증가시켰습니다.
기존 Gain: 3 dB
변경 후: 18 dB
결과적으로 이미지는 밝아졌지만 검사 정확도는 오히려 떨어졌습니다.
문제 원인
Gain은 실제 빛의 양을 증가시키는 기능이 아니라 센서 신호를 증폭하는 기능입니다.
따라서 Gain 증가 시 다음 문제가 발생합니다.
- 이미지 노이즈 증가
- 작은 점 노이즈 발생
- Histogram 분포 불안정
- Blob 검사 오류
- Edge 검출 성능 저하
겉으로 보기에는 밝아졌지만 실제 검사에는 불리한 이미지가 만들어진 것입니다.
개선 방법
밝기 조정 순서는 다음과 같이 진행해야 합니다.
조명 조정 → Exposure 조정 → Gain 최소 사용 → Gamma 조정
가능하면 Gain은 최소 수준으로 유지하고 부족한 밝기는 조명으로 해결하는 것이 가장 안정적입니다.
실패 사례 3. 과노출 상태에서 검사 프로그램을 수정한 경우
발생 상황
제품 표면 검사에서 Edge Detection 결과가 불안정했습니다.
개발자는 알고리즘 문제라고 판단하여 Edge Threshold 변경,Filter 추가,AI 모델 재학습등 여러 방법을 시도했습니다.
하지만 검사 결과는 계속 흔들렸습니다.
문제 원인
카메라 이미지가 이미 과노출 상태였습니다.
Histogram을 확인한 결과 밝기 값이 오른쪽 끝(255 영역)에 집중되어 있었습니다.
즉, 흰색 영역이 모두 날아가 세부 정보가 사라진 상태였습니다.
이 경우 아무리 알고리즘을 개선해도 원본 이미지에 정보가 없기 때문에 정상적인 검사가 어렵습니다.
개선 방법
과노출 발생 시 다음 순서로 조치해야 합니다.
- 조명 밝기 감소
- Exposure 감소
- 편광 필터 적용(반사 제품)
- Histogram 재확인
좋은 검사 이미지는 단순히 밝은 이미지가 아니라 정보가 충분히 포함된 이미지입니다.
실패 사례 4. 제품별 Histogram 차이를 고려하지 않은 경우
발생 상황
한 생산라인에서 여러 종류의 제품을 검사했습니다.
관리자는 모든 제품이 동일한 Histogram 형태를 가져야 한다고 판단했습니다.
하지만 제품 종류가 변경될 때마다 검사 결과가 달라졌습니다.
문제 원인
제품 재질과 색상이 다르면 Histogram도 달라지는 것이 정상입니다.
예를 들어
검은색 플라스틱 제품 : 어두운 Histogram
금속 제품 : 밝은 Histogram
흰색 부품 : 오른쪽 영역 증가
처럼 제품 특성에 따라 밝기 분포는 달라집니다.
개선 방법
절대적인 Histogram 기준보다 정상 제품의 기준 범위를 관리해야 합니다.
예)
정상 제품 Histogram 평균 → 검사 제품 Histogram 비교 → 허용 범위 초과 시 NG이 방식으로 조명 이상이나 제품 이상을 동시에 판단할 수 있습니다.
실패 사례 5. Histogram Equalization을 무조건 적용한 경우
발생 상황
어두운 제품 이미지를 개선하기 위해 Histogram Equalization을 적용했습니다.
처음에는 이미지가 선명해졌지만 검사 결과가 불안정해졌습니다.
문제 원인
Histogram Equalization은 명암 대비를 높이는 효과가 있지만, 동시에 노이즈도 증가시킬 수 있습니다.
특히 작은 결함 검사의 경우 원래 존재하지 않는 노이즈 불량으로 판단하는 문제가 발생할 수 있습니다.
개선 방법
Histogram Equalization은 목적에 맞게 사용해야 합니다.
적합한 경우: OCR 문자 대비 개선, 어두운 영역 분석, 저대비 이미지 개선,
주의가 필요한 경우: 작은 이물 검사, 정밀 치수 검사, 미세 Edge 검사, 적용 전후 검사 결과 비교가 반드시 필요합니다.
Histogram 기반 안정적인 비전검사 구축 방법
안정적인 검사 시스템을 만들기 위해서는 다음 순서를 추천합니다.
1단계. 조명 확인
- LED 밝기 확인
- 반사 여부 확인
- 조명 균일도 확인
2단계. Histogram 분석
확인 항목: 밝기 분포, 명암 대비, 포화 영역, 노이즈 수준
3단계. Camera 설정
조정 순서:
조명: Exposure → Gain → Gamma
4단계. 검사 알고리즘 적용
이후에 Threshold,Blob Analysis,Edge Detection,Pattern Matching,AI 검사를 적용해야 안정적인 결과를 얻을 수 있습니다.
실무 체크리스트
Histogram 문제를 확인할 때 다음 항목을 점검하세요.
✔ 이미지가 너무 어둡지 않은가?
✔ 밝기 값이 한쪽으로 몰려 있지 않은가?
✔ 255 포화 영역이 존재하지 않는가?
✔ 제품과 배경의 대비가 충분한가?
✔ 조명 변화에 따라 Histogram이 변하지 않는가?
✔ Gain 증가로 노이즈가 발생하지 않는가?
✔ 정상 제품의 Histogram 기준값을 관리하고 있는가?
자주 묻는 질문(FAQ)
Q1. Histogram이 반드시 가운데에 있어야 하나요?
반드시 그렇지는 않습니다.
제품의 색상이나 검사 목적에 따라 달라질 수 있지만, 한쪽 끝으로 치우치거나 포화되는 것은 피하는 것이 좋습니다.
Q2. Histogram만 보면 검사 품질을 판단할 수 있나요?
히스토그램은 이미지 품질을 평가하는 중요한 기준이지만, Edge, Contrast, Noise, Focus 등도 함께 확인해야 합니다.
Q3. 컬러 이미지도 Histogram을 사용할 수 있나요?
가능합니다.
RGB 각각의 채널에 대해 히스토그램을 계산하거나 HSV 색공간을 이용하여 분석하기도 합니다.
Q4. Histogram Equalization은 항상 사용하는 것이 좋은가요?
아닙니다.
대비를 향상시키는 장점이 있지만 노이즈도 함께 증가할 수 있으므로 검사 목적에 맞게 적용해야 합니다.
마무리
Histogram은 단순한 그래프가 아니라 비전검사 시스템의 상태를 판단하는 중요한 진단 도구입니다.
현장에서 발생하는 많은 검사 실패는 알고리즘 문제가 아니라 잘못된 이미지 입력에서 시작됩니다.
Threshold 값을 계속 변경하거나 AI 모델을 수정하기 전에 먼저 Histogram을 확인해야 합니다.
좋은 Histogram은 안정적인 검사 결과를 만드는 첫 번째 조건입니다.
비전검사 시스템 구축 시 조명 → 카메라 설정 → Histogram 분석 → 알고리즘 적용 순서를 지키면 불필요한 튜닝 시간을 줄이고 더욱 안정적인 품질 검사를 구현할 수 있습니다.