Schift OCR
‹ 블로그

Vision

불량 사진 10장이면 AI 외관검사가 시작된다

처음 보는 제품도 불량 사진 10장과 양품 사진 50장으로 2분 학습하면 AI가 불량 100개 중 86개를 잡고, 양품은 100개 중 1~2개만 불량으로 본다. 공개 데이터셋 12개 제품으로 잰 결과와 한계.

2026. 11. 5. · 5분 읽기


처음 보는 제품이라도 불량 사진 10장과 양품 사진 50장으로 2분 학습하면, AI가 불량 100개 중 86개를 잡고 양품은 100개 중 1~2개만 불량으로 본다. 불량 사진을 40장으로 늘리면 93개, 60장이면 96개를 잡는다. 공개 데이터셋의 12개 제품으로 잰 평균이다.

학습 전, 불량 사진 10장, 40장으로 학습한 뒤 같은 회로기판 사진에 AI가 그은 박스

처음 보는 제품에 그대로 쓰면 과검이 쏟아진다

Schift의 비전 모델은 공개 결함 데이터셋 VisA의 12개 제품으로 불량 찾기를 배웠다. 배운 12개 제품에서는 시험 사진 240장 가운데 불량은 96%를 잡았고 양품을 불량으로 본 사진은 0장이었다.

처음 보는 제품에서는 사정이 다르다. 병, 케이블, 나사 같은 MVTec AD의 15개 제품에 그대로 돌리자 불량은 거의 다 잡았지만 양품의 59~70%도 불량이라고 했다. 이대로 라인에 올리면 양품을 열 개 중 예닐곱 개씩 버리게 된다. 그래서 고객 제품마다 그 제품 사진으로 짧게 다시 학습시키기로 했고, 이때 불량 사진이 몇 장 있어야 하는지를 쟀다.

처음 보는 제품을 일부러 만들어 시험했다

VisA의 12개 제품을 4개씩 세 묶음으로 나눴다. 한 묶음을 떼어 두고 나머지 8개 제품으로 기본 학습을 하면, 떼어 둔 4개는 AI에게 처음 보는 제품이 된다. 세 묶음을 차례로 돌려 12개 제품이 모두 한 번씩 처음 보는 제품이 되게 했다.

떼어 둔 제품마다 불량 사진 5장, 10장, 20장, 40장, 60장을 양품 사진 50장과 함께 주고 2분씩 학습했다. 어떤 사진이 뽑혔느냐에 따라 결과가 흔들리니 조건마다 다른 사진으로 두 번씩 돌렸다. 채점은 제품마다 처음부터 따로 빼 둔 사진 90장(불량 40, 양품 50)으로 했고, 불량 판정 기준은 학습 전에 정해 둔 값을 끝까지 그대로 썼다.

불량 사진 10장이면 평균 F1 0.91, 60장이면 12개 제품 모두 0.90

아래 표는 12개 제품 평균이다. 과검은 양품을 불량으로 본 비율이다. F1은 불량을 놓친 것(미검)과 양품을 불량으로 본 것(과검)을 함께 깎는 점수로, 미검과 과검이 모두 0일 때 1.0이다.

불량 사진잡은 불량과검F10.90 넘은 제품
학습 전98%70%0.713/12
5장80%1.2%0.885/12
10장86%1.5%0.917/12
20장90%1.5%0.948/12
40장93%2.3%0.9511/12
60장96%2.1%0.9612/12

평균은 10장에서 0.90을 넘고, 제품별로는 12개 중 7개가 넘는다. 가장 낮은 두 제품은 무늬가 복잡한 회로기판 하나와 과자 하나로, 10장에서 0.82~0.83이었다가 40장에서 0.92~0.93까지 오른다. 60장이면 12개 제품이 모두 0.90을 넘고 그중 9개가 0.95를 넘는다.

양품 사진 50장만 주면 거의 모든 사진을 양품이라고 해서 불량을 31%만 잡는다. 불량이 어떻게 생겼는지 보여 주는 사진이 몇 장은 꼭 있어야 한다.

불량 위치는 박스로 표시한다

AI는 불량으로 판정한 사진에 불량 위치를 빨간 박스로 그린다. 노란 박스는 사람이 표시한 실제 불량이다. 불량 사진 10장을 본 뒤에는 빨간 박스가 실제 불량 쪽으로 모인다.

학습 전, 10장, 40장으로 학습한 뒤의 캡슐 사진

학습 전에는 양품 사진에도 박스를 여기저기 친다. 학습한 뒤에는 같은 양품 사진을 깨끗하게 둔다.

학습 전에는 양품 회로기판에 박스 7개를 쳤고, 학습한 뒤에는 박스가 사라진 모습

박스가 실제 불량 위에 있어야만 맞힌 것으로 치면 12개 제품 평균 F1이 10장에서 0.89, 60장에서 0.93이다. 과자와 양초는 불량이 있다는 건 맞혀도 박스가 불량을 비껴가는 사진이 남아 0.86~0.88에 머문다. 불량 하나하나에 박스를 정확히 하나씩 치는지까지 따지면 0.6~0.7이라, 불량 개수를 세는 데 쓰기엔 아직 이르다.

귀사 라인에 올리기 전에

이 숫자는 공개 데이터셋 VisA의 사진으로 잰 값이다. 귀사 라인의 조명과 카메라에서는 귀사 사진으로 같은 채점을 다시 해야 한다. 제품당 채점 사진 90장으로 잰 결과라 제품별 점수는 ±0.02쯤 흔들릴 수 있다.

모델은 제품 하나에 하나씩 만든다. 한 모델에 여러 제품을 같이 맡길 때와 양품 사진 장수를 50장에서 바꿀 때의 결과는 아직 모른다.

불량 사진 10장과 양품 사진 50장이면 시작할 수 있다. 불량을 100개 중 95개 넘게 잡으려면 불량 사진을 60장까지 모으면 된다.

시험에 쓴 VisA 데이터는 CC BY 4.0이고, MVTec AD는 평가에만 썼다.

Schift Newsletter

AI 모델, 논문, 흥미로운 소식을 골라 매주 한 번 보내 드립니다.

구독하러 가기