[첨단 헬로티]
딥러닝에서 가장 핫이슈가 되는 영역 중의 하나가 매뉴팩처링이다. 특히 제조 공장에서는 인건비와 함께 품질향상을 어떻게 할 것인지에 대해 많은 고민을 하고 있는데, 여기에 딥러닝이 활용된다. 결론부터 말하면 Train 시킬 충분한 데이터와 데이터에 대한 지식이 없으면 매뉴팩처링에 딥러닝 적용이 어렵다. 따라서 데이터를 분류하는 사람이 딥러닝 프레임워크를 이용하여 분류하고 적용하는 것이 가장 효과적일 것이다. 스마트공장에 딥러닝 기반 솔루션 적용 방안에 대해 최근 열린 ‘AI 융합 비즈니스 개발 컨퍼런스 2018’에서 라온피플 추연학 이사가 강연한 내용을 정리했다.
▲ 라온피플 추연학 이사
데이터 분석 위한 요구사항들
딥러닝에서 가장 중한 것이 데이터이다. 데이터를 가지고 Train 시키기 때문이다. 그러면 공장에서 요구하는 데이터는 어떤 것이며, 어떻게 적용할 수 있는지를 살펴보겠다.
우선 데이터 분석이다. 예를 들면, 자연영상 이미지로 이루어진 CIFAR-10 이미지는 10개 클래스로 구분되어 있다. 이것을 구분하는 것은 5살 이상 어린이면 충분히 풀 수 있는 문제이지만, 컴퓨터 비전에서는 상당히 어려운 문제로 보고 있다.
조금 더 나아가면 세그먼테이션 문제로 볼 수 있다. 첫 번째 문제는 주어진 이미지가 무엇인지 알아내는 classifi-cation 문제였다면, 두 번째 문제는 segmentation 문제이다. 예를 들어 비행기가 있으면 비행기에 윤곽선을 그려주는 것을 세그먼테이션이라고 한다. 그렇다면 이러한 자연적인 영상 외에 공장에서 사용하는 이미지는 어떤지 예를 들어 보도록 하겠다.
200×200 해상도의 직물 8개의 이미지가 있다. 여기에 2개만 양품이고 나머지는 불량 이미지이다. 기존 비전으로 검사 했다면 모두 오류가 있는 이미지이다. 실제로 오류로 다 처리해버리면 섬유회사에서는 품질이 안 나오기 때문에 사람이 직접 육안 검사해서 양품과 불량을 분류하고 있다.
다음은 아이폰에 들어가는 고무 패킹이 있는데, 1개는 양품 이미지이고 2개는 불량 이미지이다. 4200×600 해상도의 이 이미지는 classification 문제로는 접근이 어렵기 때문에 segmentation 문제로 접근했다. 불량 이지미의 경우 고무를 받치고 있는 부분이 벌려져 있거나 고무 패킹 부분이 깎여 있어 불량 처리를 해야 했다.
또 하나는 기존 카메라 모듈 검사로 불량인지 양품인지를 판별해 내지만 육안으로 불량의 위치를 찾아내기 어려운 경우도 있다. 그래서 시신경에 의존해 이 이미지를 흔들어 보면서 어느 부분이 불량인지를 찾는다. 실제로 휴대폰 S사의 경우 베트남 공장에서 작업자들이 핸드폰을 가지고 움직여 보면서 불량 위치를 판별하는 사례가 있다. 또한, 기존 룰 베이스로는 검출률이 높지 않았다. 라온피플이 룰 베이스라는 알고리즘으로 검출했을 때도 30%밖에 불량률을 잡아내지 못했다.
지금까지 제조공정에서 데이터 분석의 요구사항을 정리해 보면 다음과 같다. 첫째는 기존 사람이 육안 검사하는 분야에 적용해야 하며, 둘째는 대다수 요구사항이 양불 판정에 있으며, 셋째는 매우 높은 수준의 미검(99.9%)에 대한 정확도를 요구하는 경우이며, 넷째는 대부분이 양품 이미지이고 적은 수량의 불량 이미지가 존재하며, 다섯째는 시료 반출 문제로 시료를 얻기 힘들고, 여섯째는 데이터에 대한 기본 지식이 없어 분류 자체가 불가능하며, 일곱째는 양불 판정에 대한 정형화된 수치가 없어 회사에 따라 다르게 적용하고 작업자마다 다른 기준으로 적용하는 경우이다.
결론적으로 보면 Train 시킬 충분한 데이터와 데이터에 대한 지식이 없으면 매뉴팩처링에 딥러닝 적용이 어렵다. 따라서 실제 데이터를 분류하는 사람이 딥러닝 프레임워크를 이용하여 분류하고 적용하는 것이 가장 효과적일 것이다.
자동화를 위한 딥러닝 솔루션
그러면 라운피플에서 제공하는 자동화를 위한 딥러닝 시스템 구축에 대해서 알아보겠다. 첫째, 프레임워크이다. 라온피플에서는 딥러닝을 할 수 있는 간단한 윈도 프로그램을 통해 사용자가 쉽게 Train 할 수 있도록 이미지 분류도 해주고 이미지 데이터가 나올 수 있게 Train 리포트도 해주는 툴을 만들었다. 이 툴은 윈도 설치 파일 형태로 제공된다. 그런데 가장 힘들었던 부분은 Train된 Accuracy가 얼마이고 모델은 무엇을 써야 하며 언제 Train 했는지, 이미지는 어디에 뒀는지 등의 관리가 안 되는 문제가 있었다. 그래서 데이터 관리 Train을 통해서 모델 관리를 하고 있다. 그리고 Train 시키고 데이터가 나오면 그 이미지를 레퍼런스해서 얼마만큼의 성능이 나오는지 바로 확인할 수 있는 토털 솔루션을 만들었다.
둘째, Train 모델이다. 딥러닝에서 가장 중요한 게 알고리즘과 연산 속도이다. 최근 가장 잘 나온 게 Inception V4, Resnet 50, Resnet 152, FCN-VGG16이다. 이미지 사이즈는 Inception V4, Resnet 50, Resnet 152 경우 Classifier로 227×227 해상도이며, Segmentation인 FCN-VGG16은 500×500 해상도 크기이다. 각각의 콘볼루션과 파라미터는 표 1과 같다.
▲ 표 1 Accuracy와 자연 영상에 초점을 맞춘 기존 네트워크
연산이 얼마나 복잡하냐에 따라 계산의 복잡성을 나타내는데, Accuracy가 좋아지고 레이어 수가 올라가면 그만큼 연산이 복잡해지고 파라미터 수도 많아진다. 결국 Accuracy와 자연 영상에 초점을 맞추다 보니 기계가 하기에는 어려운 부분이 있고, 기계가 하기 어려운 부분을 하기 위해서 연산량이 많아지고 파라미터 수가 많아진 것이다. 따라서 모델이 복잡해지고 모델이 복잡해지면 당연히 고가의 GPU 및 시스템이 필요하게 된다. 그런데 이것을 가지고 공장에 도입하라고 하면 큰 회사는 도입하겠지만, 작은 회사는 ROI가 안 나올 것이다.
앞서 예로 든 자연 영상인 Cifar-10 이미지 경우는 전 영역에 걸쳐 색상이 넓은 영역에 랜덤하게 분포하고 있고 같은 클래스라도 다양한 형태로 나온다. 이미지 사이즈 또한 비교적 작기 때문에 사람은 인식하지만, 기계는 각도만 바꿔도 같은 대상물인지 인식을 못 한다. 반면, 공장에서 사용하는 영상은 특정 영역의 색상만이 일정하게 나오고 대체적으로 정형화 되어 있다. 해상도 또한 8000×10000 사이즈 이상이 존재한다. 따라서 색상도 일정하고 얼라인도 맞춰져 있다고 한다면 굳이 복잡한 모델을 사용할 필요가 없다.
라온피플의 경우 기존 잘 되어 있는 네트워크에서 어떤 특성을 연구하여 모델을 만들었다. Classifier 경우 Mercury Model, Segmentation 경우 Mars Model이라고 하는데, 각각 콘볼루션과 파라미터는 표 2와 같다.
▲ 표 2 라온피플이 만든 Mercury 모델과 Mars 모델
라온피플에서 같은 데이터를 두고 테스트를 했을 때, Mercury Model 2는 Resnet50보다 파라미터 사이즈는 16배 컸고, 속도는 9배나 빨랐다. Mars Model 2 또한 VGG16-FCN과 비교했을 때 파라미터 사이즈는 196배 컸고, 속도는 18배나 빨랐다. 새로 나온 모델은 270배까지 커지고 48배까지 빨랐다.
세그먼테이션 Train 시간은 이미지 100장을 가지고 10000번 반복시켰을 경우 640×480 해상도는 10~20분 이내, 1280×960 해상도는 40~50분 이내, 그리고 2560×1600 해상도는 90~100분 이내였다. 플랫폼 사양은 CPU는 인텔 i7 코어, GPU는 Nvidia 1080Ti를 사용했다.
실제로 기업들은 공장에서 불량이 나왔을 경우 빨리 네트워크에 적용해서 딥러닝을 구축하고 싶어 했다. 라온피플 역시 이 문제를 풀 수 있는 새로운 AI를 만들어서 적용시키는 게 목적이었기 때문에, 모델을 최적화시켜 비슷한 정확도를 가지면서 경량화하는 작업을 했다. 그리고 별도의 모델을 제작할 필요 없이 설정만으로 필요한 모델 선택이 가능하도록 했다. 또한, 미리 Train 된 데이터를 제공하여 Train 시간도 단축하게 되었다. 그리고 비교적 저렴한 GPU를 사용함으로써 개발 비용도 낮췄다.
셋째, Deploy이다. 오픈 소스를 사용할 경우 리눅스 환경의 Python 모델을 제공하지만, 이 경우 카메라 연동과 같은 기존 비전 시스템과의 연동 문제가 발생한다. 또한, 복잡한 모델을 사용하면 테스트 시 택타임(Tack time)이 길고 비교적 고가의 GPU가 필요하게 된다. 반면, 라온피플에서 제공하는 라이브러리는 프레임워크에다 Train된 데이터를 선택하여 동작시킬 수 있다. 따라서 기존 비전 시스템에 유기적으로 사용이 가능하고 콤팩트한 모델이기 때문에 택타임이 빠르다. 예를 들어, 640×480 해상도일 경우 10ms 정도이기 때문에 초당 100장을 처리할 수 있다. 이 툴은 윈도/리눅스 플랫폼과 멀티 GPU/CPU 모드, C++/C#/Python 인터페이스 등을 지원한다.
딥러닝 기반 솔루션 적용 사례
라온피플은 NAVI AI를 가지고 딥러닝을 이용한 검사 시스템을 구축했다. 이 툴을 이용하기 위해 먼저, 해결할 문제를 정의하고, 시료에 적합한 네트워크망 구성 및 테스트 시료를 통한 정확도를 검토했다. 그 다음에 검사 시스템을 구축하고 NAVI Trained data를 제공했다.
실제 구축 사례를 보겠다. 첫 번째, 알약 검사 사례인데, 캡슐 안에 알약 2개가 잘 있느냐 업느냐 확인하는 작업이다. 기존 룰 방식을 적용했을 때는 양불 판정이 불가능하여 작업자가 육안으로 확인하는 공정이었다. 라온피플은 NAVI AI를 통한 딥러닝 검사 시스템을 통해 용기 속의 다양한 형상 모두를 판독할 수 있었다.
두 번째, PCB 검사이다. 양불 판정이 복잡해서 툴로 하는 것보다 솔루션화 시키는 것이 해결 능력을 키운다고 보고 AIPi(Artificial Intelligence PCB inspection)라는 용어를 붙여서 만들었다. PCB는 양불 판정에서 직물이나 약품보다 훨씬 복잡하다. 패턴 검사 불량 종류로는 홀, 오염, 쇼트, 오픈, 돌기, 훼손 등이 있으며, 외관 검사 불량 종류에는 Missing SR, 스크래치, SR uneven, 찍힘, SR 편심, SR 미현상, SR 떨어짐 등이 있다. 단순히 육안으로는 어느 게 양품이고 불량인지 쉽게 구분이 안 간다. 딥러닝도 판정이 쉽지 않다. 또 하나의 문제는 어느 위치에 따라 불량이 나와도 괜찮고 나와서는 안 되는 부분들이 있다. 각각 요구사항이 다르다 보니 하나의 모델로는 양불 판정하기 어렵다.
라온피플에는 AOI(Auto Optical Inspection) 검사 장비가 있다. 검사 공정을 보면, 룰 베이스 기반에서 ‘어느 부분이 불량일 것이다’라고 다음 공정으로 이송하면 작업자들은 VRS(Verification and Repair Station) 장비를 통해 현미경으로 보게 된다. 그러다 보니 만약 AOI 검사 장비에서 매우 많은 불량의 위치를 뽑아내게 되면 작업자들은 그만큼 기하급수적으로 늘어나게 된다. 그런 부분을 없애기 위해서 AOI 검사 장비에서 나온 이미지를 가지고 AIPi에서 한 번 필터링을 시켜줘야 한다. 여기서 80%가 필터링이 된다면 업무량이 감소하고 검사 시간도 감소해 제품 생산 속도는 더욱 향상될 것이다. 또한, 제품 이동 중 발생 가능한 손상 방지 효과로 생산 품질도 향상될 수 있다.
세 번째, Mura 검사이다. 핸드폰을 보면 약간의 A등급, B등급, C등급을 매겨 놓는데, 여기에 약간 고르지 않은 패턴들이 나오게 된다. 중간 단계에서 계속 검사하면서 최종 단계에 가면 어떤 이유에서인지 다양한 Mura들이 생성되게 된다. 이 부분이 정형화 되게 나오지 않다 보니 육안 검사로도 해결되지 않는 문제점이 존재했다. 라온피플은 기존 툴과 접근 방법이 다른 AIDi(Artificial Intelligence Display inspection) 검사 솔루션으로 이 문제를 해결했다. 이 솔루션은 딥러닝 비전 검사와 고화소 카메라를 하나의 패키지로 제공되며, 딥러닝 비전 검사로는 비정형 불량 위치를 추적하고 비정형 불량 종류를 판별하는 데 쓰인다. 그리고 50M 고화소 카메라는 OLED 패널을 Sub Pixel Level로 검사하고 검사 편차 또한 해소함으로써 육안 검사로도 해결되지 않는 문제점을 해결했다.