파이썬을 활용한 불량 제품 이미지 판정 - 기획

이미지 판정 프로그램 기획

저는 제조업에서 엔지니어로 근무하고 있습니다.

저희 회사에서 만드는 제품의 경우 외관은 하나의 중요한 품질 관리 포인트 입니다.

설비 내에 제품의 치수를 측정하기 위한 용도로 자동으로 Vision에서 이미지를 촬영하는 기기가 포함되어 있습니다. 여기서 촬영되는 이미지는 제품의 고유번호 정보와 연계하여 자동 저장됩니다.

지금까지는 외관을 검사하기 위해 작업자가 일일히 확인하여 왔습니다.

Vision에서 촬영된 이미지를 활용하여 불량이 의심가는 이미지를 자동 분류하고, 의심가는 이미지에 대해서만 불량 여부를 확인하면 업무량을 크게 줄일수 있습니다.

AI 코딩툴을 활용해 이를 위한 이미지 판정 프로그램을 만들고자 하며, 이번 글은 기획 단계의 문서입니다.

프로젝트 개요

향후 만들고자 하는 프로그램은 다음과 같은 방식으로 동작하게 하고자 합니다.

1) 하루동안 Vision에서 촬영된 이미지를 다운로드 받아 하나의 폴더에 저장

2) 이미지를 자동으로 판정하는 프로그램을 실행하여, 해당 폴더의 이미지 중 불량이 의심되는 파일만 별도의 결과 폴더에 저장

3) 불량이 의심되는 파일의 이미지를 사람이 한번 더 확인하고 최종 판정

판정이 필요한 이미지에 대한 사례는 아래 이미지와 같습니다.
※ 아래 예시로 사용되는 이미지는 임의로 만들어진 사례 이미지 입니다.

OK 이미지와 NG 이미지는 아래와 같습니다.

다양한 유형의 키가 있는 일련의 흑백 사진

그냥 봐서는 큰 차이가 없어 보이지만, NG 이미지의 경우 확대해서 보면 검은색 열쇠 영역내에 흰색의 오염(흰색 점)이 있는 것을 볼 수 있습니다.

다양한 ��유형의 키를 보여주는 다이어그램

판정 로직에서는
1) 판정할 대상 영역을 설정한 다음 (열쇠)
2) 영역 안에 Spec으로 설정된 명도보다 밝은 점이 없는지 찾아야 합니다

구현할 프로그램 상세

구현한 프로그램은 다음과 같은 순서로 동작하게 기능 구현하고자 합니다.

1) 작업할 파일이 모인 폴더와 결과 폴더(불량 의심이미지를 저장할 폴더)를 입력받음

2) 중요 파라미터를 입력 받음
2) - (1) 판정에 활용할 영역 : Left / Right / Top / Bottom ,
2) - (2) 불량으로 판정하는 기준 Spec (명도 등)

3) 실행 버튼이 클릭되면
3) - (1) 작업할 폴더에서 순차적으로 파일을 불러옴
3) - (2) 불러온 파일의 이미지에 대해 판정
3) - (3) 판정 결과 불량이 의심되는 이미지는 결과 폴더로 복사
3) - (4) 3)-(1) ~ 3) - (3) 작업을 반복

3) - (2)의 이미지 판정 로직은 앞서 살펴본 판정 로직의 내용을 구현해야 하는데, 파이썬으로 이미지를 다루는 기법을 정확히 알지 못하면 실제 구현하기 어렵습니다.

이 영역의 코드를 특히 AI 코딩툴의 도움을 받아보겠습니다.

※ 1), 2), 3) - (1), 3) - (3), 3) - (4)에 해당하는 코드는
스터디에서 제공된 GUI를 활용해 구현하겠습니다.

이미지는 다음의 순서로 가공되어야 하고, 이 내용은 AI 코딩툴의 도움을 받아 구현할 예정입니다.
3) - (2) - ① 판정에 사용할 이미지 범위를 잘라냄
3) - (2) - ② 잘라낸 이미지를 복사해 검사 영역을 설정할 이미지(Mask)영역을 만듦
3) - (2) - ③ Mask 이미지를 뿌옇게 흐림 효과 처리함
3) - (2) - ④ 흐림 효과 처리된 이미지에서 검은색 영역과 밝은색 영역을 나눔
3) - (2) - ⑤ 검은색 영역을 선택하여 Mask 영역으로 저장
3) - (2) - ⑥ 잘라낸 원본 이미지에서 Mask영역에 대해 Spec보다 밝은점이 있는지 확인
3) - (2) - ⑦ Spec보다 밝은 점이 있을경우 불량으로 판정

3) - (2) - ③, ④ 과 같은 과정을 거치는 이유는 밝은점을 이미지 판정 영역에 포함시키기 위함입니다.

흐림 효과를 부여하지 않은 이미지에 대해 검은색 영역과 밝은색 영역을 나누게 되면 검출해내야 하는 흰색 Spot이 있는 지점을 밝은색 영역으로 판단, 검사 대상에서 아예 제외할수도 있기 때문입니다.

빨간색 원이 있는 열쇠의 흑백 이미지

이후 상세 진행 계획

향후 다음의 순서로 기능을 구현하고 최종 완성품을 만들어 보겠습니다.

Step 1.

AI 코딩툴을 활용해 3) - (2) 에 해당하는 핵심 기능에 대한코드를 완성하고, 하나의 이미지에 대해 기능 테스트합니다.

Step 2.

테스트 완료된 코드를 함수로 만들고, 함수가 정상적으로 동작하는지 테스트 합니다.

Step 3.

스터디에서 제공된 GUI를 활용해 GUI로 감싸고 정상 동작 테스트 합니다.

Step 4.

완성된 코드를 실행파일로 만듭니다.

시사점

AI 코딩 툴의 도움을 받고자 하는 영역은 현재 내 실력만으로 구현하기에는 난이도가 높은 기능에 대한 영역입니다.

코드 구현은 AI 코딩툴의 도움으로 진행하더라도, 이와 별개로 정확히 어떤 동작이 어떤 순서로 진행되어야 하는지에 대해서는 계획이 수립되어 있어야 합니다.

이 영역은 내가 이미 가진 지식을 활용하거나, 별도의 공부를 하거나 또는 다른 AI 툴을 통해 방법론적인 부분을 파악해야 합니다.

AI 코딩을 활용해 내 실력을 뛰어넘는 산출물을 만드는 것은 가능하지만, 그러기 위해서는 산출물이 어떤 기능을 가져야 하는지에 대한 방향성은 명확히 제시할 수 있어야 내가 원하는 기능을 구현할 수 있겠습니다.

이어서

다음글에서 기획했던 내용을 직접 구현해 봤습니다.

파이썬을 활용한 불량 제품 이미지 판정 - 구현

3
2개의 답글

👉 이 게시글도 읽어보세요