본문 바로가기
Project

[Project] Vision Al 기반 컨베이어 벨트 객체 인식 시스템 구축 및 딥러닝 모델 최적화 프로젝트(2)

by ykr0919 2025. 3. 5.

 

 

 

학습 테이터 이미지의 밝기, PCB 위에 생긴 그림자, 그리고 이미지의 선명도가 낮아 각 부분의 특징을 잘 인식하지 못하는 문제를 개선해 보자! 

 

우선 선명도부터 올리자!

 

선명도 개선 

 

주어진 환경에서는 카메라 각도나 카메라 높낮이를 조절할 수 없었기 때문에  

 

 

컨베이어 벨트와 카메라의 물리적 위치를 가깝게 하여 PCB를 더 가까이 볼 수 있도록 개선(아래 박스를 두어 높이를 올림).

 

 

PCB 구성이 육안으로 인식될 만큼 훨씬 선명해짐. (오른쪽: 개선 후)

 

 PCB 빛 반사 개선 

 

 

PCB에서 불균형한 형광등 빛의 반사로 인해 PCB의 뚜렷한 형태를 확인할 수 없다고 생각함.

 

컨베이어 벨트 위의 칩셋을 촬영했을 때, 강한 반사광과 그림자 때문에 이미지 품질이 저하되는 문제가 발생. 칩셋 표면의 반사광이 디테일을 가려 이미지 인식의 정확도에 영향을 미침.

 

 

간단하게 A4 용지를 활용하여 빛을 조금 차단해 보았음.

 

하지만 여전히 덜 가려진 부분으로 빛이 들어와 큰 차이를 느낄 수 없었음. (예시 이미지가 없어 아쉽ㅠㅠ)

 

전체적으로 빛을 차단해야 그림자가 생기고, 빛 반사를 줄일 수 있을 것이라 생각함.

 

 

가방과 박스를 사용하여 전체적인 빛을 차단해 보았음.

 

 

빛 반사와 그림자는 사라졌지만, 빛 반사를 막기 위해 위쪽 빛을 차단하다 보니 촬영 이미지가 더욱 어두워지는 문제가 생김.

 

이를 해결하기 위해 빛 반사와 그림자는 줄이면서 일정한 빛을 제공하는 조명 시스템이 필요하다고 느낌.

 

 

실제 협업에서 사용되는 방식을 찾아본 결과, "편광조명"이라는 것을 알게 되었음.

 

 

위는 "엠비전"의 편광 조명 시스템임!

 

 

편광 조명이란!

편광조명은 편광 필터를 사용하여 특정 방향의 빛만 투과시켜 반사광을 줄이고, 피사체의 디테일을 더욱 선명하게 촬영할 수 있는 조명 방식. 반사로 인해 발생하는 빛의 노이즈를 최소화하여 이미지의 품질을 높이는 데 중요한 역할을 함.

편광조명이 활용되는 이유
편광조명은 반사광이 문제가 되는 경우에 특히 유용함. 반사광은 이미지 인식에서 피사체의 특징을 가리거나 왜곡할 수 있는데, 편광 필터가 장착된 조명과 카메라를 함께 사용하면 표면 반사광을 억제하여 피사체의 디테일을 더 정확히 확인할 수 있음.

편광조명의 활용 예
반짝이는 표면 검사: 칩셋, 유리, 금속 등의 광택이 있는 표면에서 반사광을 줄여 표면의 작은 결함이나 특징을 보다 명확하게 확인할 수 있음.
전자 부품 및 회로 검사: 칩이나 PCB 등 반사광이 강한 소재에서 부품의 위치나 손상을 정확하게 감지할 수 있도록 도와줌.
식품 및 포장 검사: 포장 필름이나 반사광이 있는 포장지에서도 라벨과 불량 상태를 정확하게 검사할 수 있음.
자동차 및 정밀 산업: 금속 부품이나 차량 부품의 결함을 탐지할 때도 편광조명이 많이 사용.

편광조명은 특히 이미지 인식과 머신비전 검사에서 정확한 데이터 수집이 중요한 경우에 효과적.

 

 

반사광 문제를 해결하기 위해 편광 조명을 고려했으나, 프로젝트 환경에 편광 조명 장비가 없어 다른 대안이 필요했음.

 

우선, 그림자는 확실히 없애고, 반사광은 최대한 개선되는 방향으로 가기로 함.

 

많은 방법을 고려해 보다가 적용한 방식이 Shadowless light(무그림자 조명)임!

 

 

의학 드라마를 많이 본 사람들은 한 번쯤은 봤을 거임! 그리고 "어?! 왜?!" 빛을 의사가 가리고 있는데 그림자가 안 지지? 이런 의문을 한 번쯤 들었을 거임! 그게 다 Shadowless light(무그림자 조명)이기 때문!!!! 

 

Shadowless light는 그림자가 없는 조명 기술로, 일반적으로 물체의 표면에 그림자가 생기지 않도록 조명 방향과 분포를 조정하는 방법. 이 방식은 특정한 조명 배치를 통해 빛이 고르게 퍼져 물체의 표면에 그림자나 하이라이트가 생기지 않도록 함.

Shadowless light의 특징과 활용

그림자 제거: 주로 물체의 형태나 디테일을 정확하게 인식하고 분석해야 할 때 유용. 예를 들어, 품질 검사, 이미지 인식, 의료 영상 등에서는 그림자가 있으면 잘못된 정보가 전달될 수 있기 때문에, 그림자 없는 조명이 효과적.
균일한 조명: 그림자 없는 조명은 물체 전체를 균일하게 비추어 표면의 결함이나 특징을 더 잘 파악할 수 있게 도와줌. 이는 주로 비전 AI 시스템, 이미지 처리, 3D 모델링 등에 활용.
다방향 조명 사용: 그림자 없는 조명을 만들기 위해서는 여러 방향에서 빛을 동시에 쏴서 물체에 고르게 분포. 이를 통해 각도에 상관없이 그림자가 생기지 않도록 할 수 있습니다. 예를 들어, 4방향 조명이 대표적.
조명의 특성: 그림자 없는 조명은 빛의 확산과 집중을 조절하여 물체가 어느 방향에서 촬영되든 그림자가 생기지 않게 설계. 일반적으로 소프트 박스, 디퓨저, 플래시 조명 등을 사용하여 이를 구현할 수 있음.

 

이 방식은 여러 방향에서 빛을 균일하게 비추어 그림자를 줄이고, 칩셋 표면의 반사광을 최소화할 수 있음.

 

 

이 방식을 채택할지 평가하기 위해 가방으로 주변 빛을 차단한 후, 4방향에서 휴대폰 라이트를 활용하여 빛을 공급해 봄.

 

 

PCB 위에 생긴 그림자는 거의 보이지 않을 정도로 줄어들었고, 이미지 밝기도 증가하여 매우 선명한 모습을 보게 되었음.

 

하지만 반사광은 여전히 존재!!!

 

이 부분에서 문제는 각 팀원들의 휴대폰 기종 밝기 차이와 높이 및 각도 차이로 인해 일정한 위치에서 빛이 전달되지 않았다고 생각이 들었음!

 


세 번째 개선 방안

  • 4개의 조명이 일정한 빛과 일정한 각도로 나오는 것이 필요.
  • 주변 빛을 더욱 차단하기 위해, PCB가 들어오는 입구를 제외한 모든 빛을 차단.

 

 

PCB가 들어오는 입구를 제외하고는 모든 빛을 박스로 차단!

 

 

조명은 다이소에서 조명을 사서 ㅋㅋ 4방향으로 일정한 각도로 일정한 빛이 나오게 만들어주었음! 

 

PCB가 들어가는 입구의 모습!  🔼

 

 

최종적으로 개선된 이미지임!  🎯

 

칩셋의 반사광은 사라졌고, 카메라가 달려 있는 기둥 때문에 컨베이어 벨트에 그림자가 지긴 하지만, PCB 위에는 그림자가 없는 모습을 볼 수 있었음.

 

"HOLE"도 육안으로 구분될 정도로 매우 선명해짐!

 

사실 Shadowless light(무그림자 조명)를 완벽하게 구현했다고 말할 수는 없지만, 제한된 환경에서도 데이터의 질을 많이 개선할 수 있었음!

 

3차 학습 

 

 

학습 데이터가 매우 선명하고 질이 높다 보니, 라벨링 과정이 매우 수월했음!!

 

학습된 모델로 실제 컨베이어 벨트에서 추론한 결과, 매우 잡기 어려웠던 "HOLE"을 매우 잘 잡는 모습을 보였음!

 

위 이미지에는 "RASPBERRY PICO"를 못 잡는 모습을 보여주고 있음. (잘 잡은 이미지는 사라짐 ㅠㅠ)

 

정확도는 약 80% (32/40) 정도였습니다.

 

이전 정확도 2.5%에서 80%로 약 3100% 개선!!!

 

 

위 시스템은 실시간으로 컨베이어 벨트를 작동시키면서 PCB의 양품과 불량품을 구분하고 있음!

 

실제로 불량품을 만들어 USB가 없는 PCB, BOOTSEL이 파손된 PCB 등을 실험하여 확인해 보았음.

 

대부분 높은 정확도를 보여주었음!

 

그러나 여전히 왼쪽 이미지처럼 양품이지만, "USB"를 2개로 인식하고, "RASPBERRY PICO"를 잡지 못해 False로 출력되었음. 최적화가 더 필요함!!! 

 

 

 

이번 프로젝트를 진행하면서 "좋은 데이터 없이는 좋은 모델이 없다"는 것을 더욱 실감하게 되었음.

 

실제 현업에서의 고민을 직접 경험하며, 하나씩 개선해 나가면서 편광조명이나 모델 학습의 실제 방법에 대해 많은 것을 배웠음.

 

또한, YOLO 모델 선택, 학습 데이터셋 개수 결정, 예외 데이터셋 추가, Threshold 제한 등 여러 고민을 하면서 모델 최적화가 얼마나 어려운 일인지 체감함.

 

이번 프로젝트에서는 소프트웨어적인 개선은 크지 않아서 하드웨어적인 개선이 정확도를 올리는 데 도움이 되었지만, 추후 기회가 된다면 소프트웨어적으로 모델을 더욱 개선하여 더 나은 모델을 만들 수 있을 것 같음!! 🔥

 

이 경험을 통해 많은 것을 배우고, 실제 현업에서도 같은 고민을 하고 있다는 것을 느꼈음. 이러한 경험을 바탕으로 추후에 입사를 하게 된다면 회사에서 실제로 겪는 문제를 해결하는 데 참여해 보고 싶다는 생각이 커졌음!!