딥러닝(인공지능)을 이용한 산업용 영상처리

-ViDi Suite 소개 -

많은 사람들의 주목을 받았던 이세돌 9단과 알파고의 바둑 대결은 알파고의 완승으로 끝났다. 비록 대결은 끝났지만 이번 대결로 인해 ‘도대체 인공지능의 한계는 어디까지인가?’라는 의문과 보다 커진 인공지능에 대한 궁금증이 많은 사람들 사이에서 생겨나기 시작했다.
이에 이 글을 통해 알파고에 사용된 인공지능 기술이 무엇이고, 기존 기술과 어떻게 다른지 그리고 영상처리에 있어 어떻게 사용되는지에 대해 알아보고자 한다.

-크래비스 황준현 대표-

1. 서론
얼마 전 이세돌 9단과 알파고의 세기적인 바둑 대결이 있었는데, 결과는 시작 전의 예상과 달리 알파고의 완승으로 끝났다.
 이 글을 통해서 알파고에 사용된 인공지능 기술은 무엇인지, 종래의 기술과 어떻게 다른지, 실례로 영상처리에 어떻게 사용되는지 살펴보고자 한다.
대국이 시작되기 전 바둑을 즐겨하는 주변 지인과 가벼운 내기를 한 적이 있었는데, 아무리 컴퓨터라도 바둑에서 만큼은, 그것도 이세돌 9단처럼 독창적인 수를 즐겨 두는 프로기사에게는 안될 거라 하면서 5:0 우승을 장담했고, 나 역시 그 예상에 동의하면서도 한편으론 처음엔 힘들겠지만, 학습을 통해 성능을 향상시켜 나가는 딥러닝 기술의 원리상 후반부에서는 이길 수 있지 않을까?
아직은 우리에게 생소하지만 미래를 바꿀 새로운 기술의 홍보를 위해서라도 한번쯤은 이겨 주었으면 하는 바람에서 반대편에 걸었는데, 결과는 많은 사람의 예상과 다르게 진행되어 갔다.
첫판의 이세돌 9단이 한두 번의 실수로 졌을 때만 해도, 인간은 실수를 하고 기계는 실수를  하지 않으니 졌다는 시각에서, 어떻게 하더라도 인간이 알파고를 이길 수 없을 것 같아 인간을 대표하는 이세돌 9단이 한 번쯤은 이겨 주었으면 바람에서 점차 이세돌 9단을 응원하는 분위기가 생길 정도였다.

2. 알파고 승리의 의미
많은 사람들이 인공지능이 바둑에서 인간에 승리한 의미를 그저 슈퍼컴퓨터가 인간을 이겼다는 의미 정도로 과소평가하고 있는데, 사실을 알고 보면 그리 간단한 사건이 아니다.
로봇공학자인 “한스 모라벡의 역설”을 요약하면 컴퓨터가 인간보다 뛰어난 것 같아도 실상은 인간은 아무렇지 않게 잘 할 수 있는 일도 컴퓨터는 잘 못한다고 한다.
예를 들어, 컴퓨터가 숫자 계산을 엄청나게 잘 하는 것 같아도, 이는 인간이 할 수 있는 계산을 컴퓨터가 더 빠르고 실수하지 않게 잘 할 수는 있어도, 장애물이나 계단을 걸어 갈 때 기계는 돌 지난 아이보다 더 많이 실수하고 넘어진다.
바둑을 둘 때 경우의 수가 361!(팩토리얼)로 우주에 존재하는 원자의 전체 수보다 많은데, 첫 8수를 단순 비교법으로 계산하면 1초에 100만 번을 비교하는 슈퍼 컴퓨터라도 무려 4만 년이나 걸린다. 알파고 이전에 바둑용 컴퓨터 소프트웨어는 단순 비교가 아니라 여러 가지 기법이나 알고리즘을 통해서 그 계산 시간을 줄이기는 하지만 프로기사의 벽을 넘을 수 있는 수준은 아니었다.
더 쉬운 예로, “세일즈맨의 최단 경로 문제”가 있는데, 가령 영업 사원이 서울에서 출발하여 국내 주요 도시 25개를 다 방문하고 다시 서울로 돌아와야 하는 경우, 효율적인 알고리즘을 사용하지 않고 그냥 거리 계산을 한다면 가장 적게 걸리는 경로를 계산하는데 4,900년이 걸리는데 반해, 실제 사람은 가장 효율적이지는 않더라도 그럭저럭 쓸 만한 경로로 1달이 채 안 걸려 모든 도시를 다 돌아보고 올 수 있다.
이와 같이 이번 대결은 지금까지 인간이 컴퓨터보다 가장 잘 할 수 있다는 바둑의 영역에서도, 인공지능이 인간보다 앞섰다는 대단하면서도 한편으로는 씁쓸한 소식으로, 이제는 인공지능이 인간만이 가질 수 있다고 믿었던 통찰력, 직관력, 예측 능력을 가질 수 있다는 의미이다.

3. 딥러닝의 원리
어떻게 이런 일이 가능할까? 도대체 알파고를 만든 회사, 구글이 대학 졸업생 몇 명이 만든 창업 회사를 무려 7,000억에 인수한, 딥마인드라는 회사가 가진 딥러닝이란 어떤 기술일까?


얼마 전까지 인공지능 관련 기사가 자주 TV와 신문에 나오면서 인간의 일자리를 위협한다고 했을 때, 그래도 알파고 같은 것을 만드는 소프트웨어 프로그래머들의 일자리는 줄어들지 않을 것 같다는 비전문가의 언급을 본 적이 있다.
결론부터 말하면 이는 사실이 아니다. 구글이 인수한 이 회사의 궁극적인 목표는 “게임”을 잘하는 컴퓨터가 아니라, “게임” 프로그램을 스스로 만드는 컴퓨터를 개발하는 것이다. 물론 프로그램 코딩을 하는 사람을 필요로 하겠지만 별로 많이 필요로 하지 않을 것이다. 본격적으로 알파고에 사용된 "딥러닝"이라는 기술을 살펴보겠다.
먼저 “인공지능”이라는 단어를 알아야 한다. 문헌상으로는 그리스 신화에도 나오지만, 이런 “인공지능”이 도대체 무엇인지에 대한 정의는 명확하지 않다. 세탁물의 양과 오염 정도에 따라 세제의 양과 세탁 시간을 조절해 주는 자동화 개념의 전기세탁기에서부터, 앨런 튜어링 박사가 정의한 튜어링 테스트(2015년 개봉된 엑스 마키나라는 영화를 보면 쉽게 이해가 됨)를 통해 사람인지 기계인지 구분하기 힘든 정도까지, 여러 단계로 나눌 수 있다.
이러한 인공지능을 실현하기 위해, 흔히 “If then else”로 알려진 규칙기반(Rule Based)이나, 탐색기법(Search) 및 확률 기법과 같은 다양한 알고리즘과 더불어 기계 학습(Machine Learning)이라는 분야가 있다. 이 기계 학습은 말 그대로 기계를 학습시켜 인공지능을 구현하고자 하는 것으로 회귀이론, Clustering, 기하학 및 통계 기반의 10여 개 이상의 다양한 이론과 알고리즘이 있는데, 그 중 하나가 "인공신경망"(Artificial Neural Network : ANN)이다.


이 인공신경망 기술이 오랜 시간의 좌절과 혁신을 거쳐 "딥러닝 기술"로 발전했는데 다른 기술들이 수학, 논리, 통계에 기반하는 소프트웨어 및 알고리즘인데 비해, 인공신경망 기술은 인간의 두뇌 속에 있는 신경 세포인 뉴런과 이를 연결하는 시냅스에서 영감을 얻어, 두뇌 구조를 근사적으로 모방한 하드웨어 개념에 기반한 기술이다.
시간 간격을 두고 소프트웨어적으로 모델링할 수도 있지만, 하드웨어의 도움으로 병렬처리를 하지 않으면 처리 시간이 많이 걸리므로 대개 GPU의 도움을 받아 구현하고 있다.


 즉, 인간의 뇌를 모방한 구조물을 만들어 다양한 방법으로 학습을 시키면 특정 기능에 대해 사람을 능가하는 지능을 가지게 되는 “인공신경망” 기술에서 시작 되었다.
이런 기술은 1970년대에 소개되어 주목을 받았다. 학습을 통해 뉴런 내의 설정치와 시냅스 연결의 가중치를 역방향으로 조정하면서 원하는 결과와의 오류를 최소화하는 혁신적인 방법(오류역전파법)이었는데, 전체 최소값이 아닌 지역 최소값(Local Minimum)에 머무르는 학습오류 문제, 너무 오랜 학습시간과 초기 훈련 데이터에만 지나치게 적응되어 일반화가 이루어지지 않는 과적합(Overfitting)문제로 두 차례의 암흑기를 맞게 되었다.
모두가 외면하고 관련 논문이 저널에 실리기도 힘든 시기에, 1970년대부터 지속적으로 인공신경망 연구를 해온 캐나다 토론토 대학의 제프리 힌튼 교수는 2006년 적은 규모의 연구 과제를 통해, 내부 계층을 “복수의 계층화된 단계”(=Deep)로 나누어 각 단계별로 사전에 지도 없이 초기 학습을 시키면, 마치 콩을 반복적으로 켜면 콩과 돌이 스스로 구분되어 지듯이, 적절한 "초기 설정값"을 갖게 되고, 다시 전체를 오류역전파법으로 학습을 시키면 과적합의 오류에 빠지지 않고 적절한 일반화가 이루어지는 학습 방법을 발견하여, 힌튼 교수를 딥러닝의 아버지라고도 부른다.
이후로 신경망의 구조와 학습 방법에 대한 거듭된 연구와 혁신으로 처리 성능을 발전시켜, 2010년대 초반 각종 분야의 인공지능 대회에서 2등과 큰 격차를 벌리며 우승을 차지하게 되어, 어느덧 인공지능이라 하면 “딥러닝”이라는 등식이 성립될 지경에 이르렀다. 이러한  Deep level artificial neural network learning 을 줄여 Deep Learning(딥러닝)이라고 부르고 있다.


이제 딥러닝과 인공지능 그리고 머신러닝 간의 관계를 이해했고, 적어도 왜 딥(Deep)이라고 하는지 알게 되었을 것이다. 이런 딥러닝이 가능하게 된 배경에는 앞서 말한 학습 방법과 인공 신경망의 구조를 포함하는 설계 기술, 게임 산업의 성장으로 인한 GPU의 병렬처리기술과 빅데이터 처리 기법의 발전과 같은 3가지 요소가 결합되어 실현 가능하게 되었다.
딥러닝 자체보다 이런 딥러닝을 이용하여 어느 분야에 적용했고 기존 기술과 비교하여 얼마나 큰 성능 향상을 보이게 하는 것이 관건인데, 딥러닝을 이용한 머신비전 분야의 영상처리 기술 소개를 통해 딥러닝을 좀 더 명확히 이해시키고자 한다.
스위스 ViDi Systems사가 개발하여 2014년 6월경에 시장에 출시한 ViDi Suite라는 소프트웨어는 현재까지 스위스 회사들을 중심으로 유럽의 부품 및 물류 회사 80여개 이상에 적용한 제품으로, 딥러닝 기반의 영상처리 기술을 머신비전에 최초로 적용한 제품이다. 크게 기본적인 Core와 Blue, Red, Green의 4가지 부분으로 나뉘어져 있는데 Core는 딥러닝의 학습에 항상 필요하고, 사용하는 목적에 따라 Blue, Red, Green을 적절히 사용해야 한다.


여기서는 Red의 비지도 학습을 예로 설명해 보겠다. 위 그림과 같은 직물의 불량을 검사하고자 할 때 기존 기술로는 단일 색상의 직물에 있는 불량이 아니면 검출이 사실상 어려웠지만, 양품 영상을 ViDi Suite에 약 20장 가까이 입력하고 학습을 시키면, 양품 영상의 특징과 패턴을 스스로 파악하여 새롭게 입력되는 영상에 대하여 합격인지 불합격인지를 판정해준다.
즉, 기존처럼 불량의 유형이나 특징에 대한 구현과 프로그램 없이 영상을 보여주고 학습시키는 것만으로 불량 검출이 가능하다.
위 그림과 같은 금속성 물체의 표면 결함은, 전반사가 심하여 검사가 어려웠다. 종래의 방법은 최대한 전반사가 일어나지 않도록 조명환경을 꾸미고 여러 개의 카메라로 여러 각도에서 검사를 해야만 했다. 


ViDi Suite에서는 일반적인 조명에서 대상물을 회전시켜 다양한 각도의 합격 영상을 얻고 이를 학습시키면, 새로운 대상물을 회전시키면서 검사를 수행하면 빛의 포화가 일어나는 부분은 어쩔 수 없지만 조금 지나 그렇지 않은 부분에서 검사가 가능하다. 마치 실제 사람이 검사하는 것과 가장 유사한 방법으로 사람보다 더 안정적이고 빠른 결과를 얻을 수 있다.
이렇게 학습과 검증이 끝나면 라이브러리 형태로 호출해 사용할 수 있는데, 기존에 몇 개월씩 걸리는 검사 소프트웨어의 개발과 검증이 반나절 만에라도 가능해지고, 기존에 검사 자동화가 어려워 어쩔 수 없이 사람의 육안 검사에 의존했던 공정에도 검사 자동화가 가능해졌다.
딥러닝을 한마디로 요약하면, “인공 두뇌를 만들어 특정 기능을 학습시키면, 숙련된 사람과 같은 성능을 발휘”하게 된다는 것이다. 앞으로 다양한 분야에서 딥러닝을 활용한 기술과 제품이 출현될 것으로 예상되며, 그 미래는 어쩌면 우리의 예상을 벗어날 만큼 세상을 급격하게 변화시키리라 예상해본다. 

자료제공 | 크래비스(www.crevis.co.kr)

크래비스, 코리아팩 2016에서 ‘딥러닝’ 기반 영상처리 ‘ViDi Suite'소개

국내 산업용 네트워크(필드버스: FieldBus) 전문 회사이자 자동화 분야에서 활용되는 전문 기술력을 보유하고 있는 회사인 크래비스가 일산 킨텍스에서 개최된 ‘제20회 국제포장기자재전’에 참가했다.
전시회에 참가한 크래비스는 딥러닝 기반의 영상처리 프로그램인 ViDi Suite 소프트웨어 소개 및 데모 시연, 제품 소개 등을 진행했다.
크래비스가 선보인 ViDi Suite는 종래의 기술로는 구현하기 어려운 불량 검출 및 영상처리에 최적화되어 있고, 사람이 판단한 것과 같은 최상의 검사 결과를 제공할 수 있다. 뿐만 아니라 자기 학습 방법을 사용하므로 별도의 프로그램 개발과 같은 절차가 필요 없다는 장점을 가지고 있다.
또한, ViDi Suite는 개발과 유지 보수에 있어서도 용이성을 가지고 있어 품질 또는 제조 기술 등에서도 충분히 활용 가능하다. 

자료제공 | 크래비스(www.crevis.co.kr)

주요기사

먼저 비밀번호를 입력하여 주세요.

창닫기확인