소속: PIE 역할: Computer Vision SW Engineer 기간: 2021.08 – 2022.12 산업 도메인: 이차전지 검사 (원통형 배터리)
Situation
LG Energy Solution의 원통형 이차전지 공정에서, 밀봉 전 내부 젤리롤 형태의 구성물에 대한 결함 검사가 필요했다. Washing Top 프로젝트 진행 중에 갑자기 동시에 시작된 프로젝트로, 업무량이 상당히 부담되는 상황이었다.
Washing Top용으로 개발하고 있던 WPF 기반 솔루션을 그대로 템플릿으로 사용할 수 있었으나, 이 시점에서는 아직 솔루션 구조에 딥러닝 검사에 대한 고려가 되어 있지 않았다. Rulebase와 딥러닝을 동시에 병렬로 수행하는 검사 프로세스를 새롭게 설계해야 했다.
Task
- 팀 구성:
- 영업 & PM ×1
- Lead Computer Vision SW Engineer ×1
- Computer Vision SW Engineer(본인) ×1
- 담당 영역:
- Rulebase + 딥러닝 병렬 검사 아키텍처 설계 및 구현
- Task Pool 기반 비동기 검사 처리 구현
- 택타임 내 검사 완료를 위한 Timeout 처리
- 목표: 젤리롤 Bottom의 Dent/Short 결함 검출, 사내 최초 Rulebase + 딥러닝 병렬 검사 구조 구현
Action
기술 스택 & HW 구성
| 분류 | 기술 |
|---|---|
| Language | C# |
| Framework | WPF |
| Image Processing | OpenCV |
| Deep Learning | 협력사 제공 DLL |
| Camera | 키엔스 LumiTrax (GigE Vision) |
| 검사 방식 | Rulebase + Deep Learning 병렬 |
핵심 구현 사례
1. 사내 최초 Rulebase + 딥러닝 병렬 검사 아키텍처
문제: 기존 솔루션 구조에는 딥러닝 검사에 대한 고려가 없었다. 내부 젤리롤의 찍힘이나 끊어짐을 검출하기 위해 Rulebase만으로는 한계가 있었고, 딥러닝 추론을 병렬로 수행하는 구조가 필요했다.
구현: Rulebase 알고리즘과 딥러닝 추론을 동시에 병렬로 진행하고, 두 프로세스가 모두 완료될 때까지 대기한 후 결과를 병합하여 최종 양불 판정을 수행하는 구조를 설계했다. 이는 사내 최초의 Rulebase + 딥러닝 병렬 검사 아키텍처였다.
2. Task Pool 기반 비동기 검사 처리
구현: 이미지 Grab 시 해당 이미지에 대한 검사 Task를 즉시 예약하는 비동기 구조를 구현했다. 각 Task 내에서 Rulebase와 딥러닝이 병렬로 실행되고, 양쪽 모두 완료되면 결과를 병합하여 양불 판정을 내린다. 허용된 택타임보다 오래 걸릴 경우 Timeout으로 실패 처리하여 생산 라인의 흐름이 중단되지 않도록 했다. 이 구조를 통해 초당 4회 처리(일 360K) 수준의 처리량을 달성했다.
Result
기술 성과
- 사내 최초 Rulebase + 딥러닝 병렬 검사 아키텍처 구현
- Task Pool 기반 비동기 처리로 초당 4회 처리 (일 360K) 달성
- Timeout 기반 택타임 보호 메커니즘 구현
- 젤리롤 Bottom Dent/Short 결함 검출 성공
비즈니스 임팩트
- LG Energy Solution 프로젝트 성공 납품, 고객 만족 달성
- Rulebase + 딥러닝 병렬 구조가 이후 프로젝트의 검사 아키텍처 레퍼런스로 활용
회고
잘한 점
Washing Top과 동시에 진행되는 부담 속에서도 성공적으로 개발하고 고객을 만족시켰다. Washing Top용으로 개발하던 WPF 솔루션을 템플릿으로 재사용하면서도, 딥러닝 병렬 검사라는 새로운 요구사항을 구조적으로 해결한 것이 핵심 성과였다. Task Pool 비동기 처리 + Timeout 보호 메커니즘은 생산 라인의 안정성을 보장하면서도 검사 처리량을 확보하는 실용적인 설계였다.
아쉬운 점 / 다시 한다면
딥러닝 검사의 경우 협력사가 만든 DLL을 가져와서 사용하는 방식이었는데, DLL이 매우 불안정하여 프로그램 자체가 여러 번 비정상 종료되었다. 외부 DLL의 크래시가 메인 프로세스를 함께 죽이는 구조적 취약점이었다. 지금이라면 딥러닝 추론을 별도 프로세스로 분리하고 gRPC 서버 등의 구조를 제안하여, 추론 프로세스의 크래시가 메인 애플리케이션에 영향을 주지 않도록 격리했을 것이다.
배운 점
두 개의 프로젝트를 동시에 진행하면서 WPF 템플릿 기반의 재사용성을 직접 체감했다. Washing Top에서 확립한 아키텍처가 Jelly Roll Bottom에 빠르게 적용 가능했던 것은 초기 설계의 가치를 증명한 사례였다. 또한 외부 컴포넌트(협력사 DLL)의 안정성이 전체 시스템의 안정성을 좌우한다는 것을 경험했으며, 이는 이후 프로세스 격리와 장애 격리 설계의 중요성을 인식하는 계기가 되었다.