본문 바로가기

Robotics : 로봇공학/Certificate : 자격증

1-1-5 로봇 학습, 머신 비전

로봇 학습
  • 기계 학습(machine learning)

머신 러닝 즉, 기계 학습은 인공 지능의 한 분야로 컴퓨터가 학습할 수 있도록 하는 알고 리즘과 기술을 개발하는 분야를 말한다. 가령 기계 학습을 통해서 학습한 수신한 이메일이 스팸인지 아닌지를 구분할 수 있도록 훈련할 수 있다.
[그림 1]은 단순 기계 학습 시스템의 모델을 나타낸다. 그림에서 원으로 표시된 부분은 정보의 선언적인 부분(즉, 사실 표현)을 나타내며 사각형은 절차들을 나타낸다. 화살표는 학습 시스템 내에서의 자료 흐름의 방향을 나타낸다. 주위 환경은 학습 요소(learning element)에 특정 정보를 제공하고, 학습 요소는 이 정보를 이용하여 지식베이스를 개선한 다. 실행 요소는 지식베이스를 이용하여 특정 작업을 수행하고, 작업을 수행하는 동안에 얻은 정보는 다시 학습 요소에 반영시킨다. 이 모델은 가장 기본적인 것으로서 많은 중요한 기능들이 생략되어 있지만, 이들 네 가지 구성 요소들을 어떻게 구현하는가에 따라서 학습 시스템을 분류하는 데 많은 도움을 줄 수 있다. 특정의 응용 시스템이 있다면, 주위 환경, 지식베이스, 실행 작업들이 주어진 학습 문제의 본질을 결정지을 수 있으며, 이를 통해서 학습 요소가 수행해야 하는 특정 기능들을 결정할 수 있다.

 

[그림 1] 단순 기계 학습 시스템의 모델

기계 학습은 주어진 데이터를 훈련시켜(training), 훈련된 지식을 기반으로 새로운 입력(test input)에 대해 적절한 답(test output)을 찾고자하는 일련의 과정이다. 이때 훈련시키는 데이터가 질문(training input)과 정답(training output)이 모두 주어진 경우가 있고, 질문만 주어진 경우도 있다. 전자의 경우를 라벨링(labeling)이 되어 있다고 말한다. 기계 학습의 문제는 이 라벨링의 유무에 따라 지도 학습(supervised learning), 비지도 학습(unsupervised learning), 강화 학습(reinforcement learning)으로 나눌 수 있다.

 

- 지도 학습은 훈련 데이터에 라벨링이 되어있는 경우, 즉 각 질문(input)에 대해 무엇이 정답(output)인지 훈련 데이터가 알고 있는 경우이다. 대표적인 방법으로 예측(regression)은 (x, y)들의 데이터를 가지고 모함수 y=f(x)의 관계를 예측하는 방법이며, 분류(classification) 는 각 그룹별 특징을 학습하여 새로운 데이터가 어느 그룹에 속해야 하는지 판단하는 방법이다.

 

- 비지도 학습은 데이터만 주어져 있는 경우이다. 즉, 문제는 있는데 답은 없는 경우이다. 대표적인 방법으로 클러스터링(clustering)은 어떠한 데이터끼리 군집으로 묶을 수 있는지 판단하는 방법이며, 차원 축소(dimension reduction)는 독립적인 특징(축)들을 추출해 이를 중심으로 데이터를 압축하는 저차원으로 압축하는 방법이다.

 

- 강화 학습은 어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식하여, 선택 가능한 행동들 중 보상을 최대화하는 행동 혹은 행동 순서를 선택하는 방법이다. 강화 학습은 로봇 제어나 엘리베이터 스케쥴링 등에 성공적으로 적용되어 왔다.

대상 로봇의 특성 그리고 미션에 따라 적합한 학습 전략이 구성되어야 한다. 지도학습이 성능이 가장 좋으나 지도 범위를 벚어나는 상황에 노출되면 급격히 성능이 낮아진다. 한정된, 정의한 영역에서 사용할 경우 매우 좋은 성능을 보이기 때문에 현재 산업에서 매우 폭 넓게 사용중이며 안정적이다. 

비지도 학습은 답이 없기에 이정도면 되지 않을까 를 찾는 것이다. 모든 경우의 수에 따른 외부환경과의 조합을 고려하여 적절한 결론을 얻는 것이다. 대료적인 것이 수많은 소형 부품들이 섞여 있을때 이것을 올바르게 잡아서 분류하는 미션이다. 

강화학습은 입력도 알고 답이 무엇인지도 명확히 알고 있다. 그 닶을 만들어 내기위한 과정이며 최적 목적 함수식을 구성하여 진행하며 외부 환경 요인도 고려된다. 대표적인 것이 4족 보행로봇의 보행이나 갤럽핑을 좋은 사례이다. 이미 걷는 것 뛰는 것이 답으로 되어 있기 때문이다.

비지도학습이나 강화학습이 로봇의 미션에 따라 정확한 구분이 어려울 수도 있을 수 있다. 대표적인 차이는 강화학습은 한정적이지만 모델링이 가능하고 운동방정식으로 표현도 가능하지만 비지도 학습의 경우 그 표현 방법이 있긴 하나 상대적으로 명확하거나 구체적이지 못하다.

 

머신 비전

로봇 시스템에서 로봇이 작업물을 쉽게 잡을 수 있도록 고정구나 지그 등을 이용하여 작업물의 방향이 일정하게 유지된다면 로봇은 엔드이펙트를 이용하여 쉽게 작업물을 잡을수 있다. 그러나 작업물의 종류가 많거나 작업물의 위치가 움직일 때에는 로봇이 작업물을 잡기 위해서 머신 비전(machine vision) 기술로 작업물의 형상을 파악해야 한다.

 

  • 디지털 영상 처리

디지털 영상 처리(digital image processing)는 컴퓨터를 이용하여 영상을 생성하고, 처리하고 영상을 해석 및 인식하는, 즉 영상과 관련된 모든 분야를 의미한다. 이 기술을 이용하여 우리는 흐린 영상을 보다 선명하게 볼 수 있다거나, 영상이 회손된 경우 다시 원 영상 으로 복원한다든지 영상에서 필요한 정보만을 추출하여 얻을 수 있는 등 다방면으로 활용할 수 있다.
영상 처리는 컴퓨터 그래픽(computer graphics), 머신 비전(computer vision)과 밀접한 관계가 있다. 컴퓨터 그래픽은 컴퓨터를 이용하여 영상을 생성 시키는 쪽에 주력하는 분야이 고, 머신 비전은 영상 처리 중에서도 특히 영상의 인식, 이해 등을 중점적으로 주로 연구 하는 분야이다. 반면에 영상 처리는 보통 여러 장치들을 통하여 이미 생성된 영상을 입력 하여 영상을 변화시키는 것이며 영상을 재가공하거나 영상에서 정보를 추출하는 과정이라할 수 있다.
산업용 로봇에서는 머신 비전이 많이 사용된다. 산업용 로봇에서 사용되는 머신 비전은 2D와 3D로 분류된다. 2차원 시스템은 장면(scene)을 2D 이미지로 나타낸다. 산업 응용에서의 많은 상황이 2D 장면을 포함하기 때문에 대부분의 경우 2차원 시스템이 적당하다. 예로서는 로봇이 작업물을 잡기 전에 작업물의 치수를 측정하는 일이 포함된다.
최근에는 빈 피킹(bin picking)과 같은 보다 복잡한 형태의 로봇 작업이 필요한 경우가 있다. 작업물을 일정한 형태로 놓기 힘든 부품들(예를 들면 스마트폰 케이스에 들어가는 이어폰 등)을 로봇이 잡기 위해서는 3D 영상을 인식해야 한다.
머신 비전은 이미지 획득과 디지털화, 이미지 처리와 분석, 해석의 세 단계로 구분된다.

어둠속에서 손끝에 감각이 없는 상태에서 여러가지 물건이 들어있는 부품박스의 물건들을 집어서 정리한다고 하자! 이것이 "빈 피킹"이며 현재('23.7) 특정영역에서 상용화 될 만큼 기술이 많이 발전되었다. 소프트 그리퍼를 이용하여 물건의 어떻게 어떤 힘으로 잡을까 하는 문제를 해결한 경우도 있지만 중요한 것은 전통적인 로봇 집게(그리퍼)로 해당 물체를 어떠한 각도와 방향으로 접근하여 미끄러지지 않게 잡아 낼것이며 이는 비전을 통해 물체의 3차원 데이터와 물체까지의 상대적인 거리를 어디에 줄지(무게중심추정)에 대한 복합적인 계산이 필요하다. 

 

  • 이미지 획득과 디지털화

이미지 획득과 디지털화는 다음 단계의 분석을 위한 이미지 데이터를 저장하기 위하여 카메라와 디지타이징 시스템을 사용하여 수행된다.

카메라는 측정하고자 하는 물체에 초점을 맞춘다. 이미지는 시각 영역(viewing area)을 이산적인 화소(픽셀이라 부품)의 행렬로 나눔 으로써 얻어지는데, 이때 각 화소는 장면 각 부분의 빛의 세기에 비례하는 값을 갖는다. 각 화소의 빛의 세기는 ADC에 해당되는 디지털 값으로 바뀐다.
[그림 2]는 2진 비전 시스템이라고 불리는 가장 간단한 형식의 비전 시스템으로부터 얻어질 수 있는 이미지를 보여준다. 2진 비전(binary vision)에서는 각 화소의 빛의 세기가 주어진 임계값(threshold)을 넘었는지의 여부에 따라서 흰색과 검은색의 두 가지 극단 값으로 수렴된다. 더욱 정교한 비전 시스템은 회색의 서로 다른 농도를 구분하고 저장할 수 있다.
이것을 그레이 스케일(gray scale) 시스템이라 부른다. 이 형식의 시스템은 물체의 윤곽과 면적 특징뿐만 아니라 질감이나 색깔과 같은 표면 특성도 알아낼 수 있다.
그레이 스케일 비전 시스템은 보통 8비트 메모리를 사용하는데, 256개의 농도 레벨을 구분할 수 있다.

카메라의 경우, 최근에는 반도체 카메라가 많이 사용된다. 반도체 카메라는 CCD(charge-coupled device), CID(charge-injected device), CPD(charge-printing device)로 구분된다.

 

출처: 한영근(2009). 현대 생산자동화와 CIM. 시그마프레스. [그림 4-2] 2진 비전 시스템의 이미지

화소 배열은 640(수평)×480(수직), 1024×768, 1040×1392 화소 등이 사용된다. 비전 시스 템의 해상도(resolution)는 이미지의 미세한 부분과 특징들을 감지해내는 능력을 의미한다. 해상도는 사용된 화소(픽셀)의 개수에 달려 있다. 즉, 비전시스템에 설계된 화소가 많을수록 해상도는 높아지고, 화소의 수가 늘어날수록 카메라의 가격은 높아진다. 더욱 중요한 점은 화소의 수가 늘어날수록 화소를 순차적으로 읽고 데이터를 처리하는 데 걸리는 시간이 증가한다.
머신 비전에서 가장 중요한 것 중의 하나는 조명이다. 비전 카메라에 잡힐 장면은 반드시잘 조명되어야 하며, 조명은 시간에 대하여 일정해야 한다. 설비의 주변광에 의존하지 말고 머신 비전 응용을 위한 특별한 조명이 설치되어야 한다.
[그림 3]은 조명의 종류를 나타내고 있다. 조명에는 전면조명, 후면조명, 측면조명 등이 있다.

 

전면조명의 경우, 광원은 물체에 대해 카메라와 같은 쪽에 위치한다. 이것은 상표의 프린트 같은 표면 특징과 용접선과 같은 표면 패턴을 검사할 수 있는 물체가 반사하는 반사광을 만들어낸다. 로봇 응용에서 카메라는 로봇의 암 끝단에 설치를 많이 하며, 조명은 로봇이 작업해야 하는 공간의 천정에 설치하는 경우가 많다.

 

후면조명의 경우, 광원은 카메라가 바라보는 물체의 뒤에 놓인다. 이것은 밝은 배경과 뚜렷한 명암 대조를 이루는 물체의 어두움 윤곽을 만들어 낸다. 이 형태의 조명은 2진 비전시스템이 물체의 치수를 검사하고 서로 다른 물체의 윤곽을 구별하는 데 사용된다.

 

측면조명의 경우, 평탄한 포면에 불규칙성이 있을 때 그 부분이 비전 시스템으로 감지할 수 있는 그림자를 만들도록 만든 다. 이것은 물체의 표면의 결함이나 흠의 검사에 사용된다.

 

출처: 한영근(2009). 현대 생산자동화와 CIM. 시그마프레스. [그림 4-3] 조명의 종류

 

  • 이미지 처리와 분석

머신 비전의 두 번째 작업은 이미지 처리와 분석이다. 로봇이 실시간으로 작업하기 위해 서는 매우 빠른 속도로 이미지 처리가 이루어져야 한다(보통 초당 10FPS(frame per second)에서 30FPS). 이를 위하여 다양한 이미지 처리 기술들이 개발되었다.

이 속도는 산업현장에서 로봇이나 대상이 변화하는 것이 아니라 잘짜여진 작업 절차에 맞게 미션을 수행 할 때 이며 요즘 로봇도 움직이며 그에 따라 대상 물체도 좌표도 동시에 변화하는 미션들이 늘어나고 있디에 더 빠른 처리속도가 필요하다. 그리고 무엇보다 단일 처리해야 할 이미지 양과 그 이미지 종류가 더 늘어나고 있다는 것이 중요하다!

분할(segmentation)은 이미지 안에 있는 관심 영역을 정의하고 분리해 내는 기술이며, 이진 화(binarization or thresholding)는 영상의 픽셀 값을 0 또는 255로 만드는 방법이다. 윤곽선 검출(edge detection)은 이미지에서 물체와 배경 사이의 경계의 위치를 찾는 방법이다.
이진화는 각 픽셀의 농도를 흑이나 백을 나타내는 2진 레벨로 변환시키는 것인데, 농도 값을 정의된 임계값(threshold)보다 밝은 픽셀들은 모두 흰색으로, 그렇지 않은 픽셀들은 모두 검은색으로 바꾸는 것을 말한다.
윤곽선 검출은 이미지에서 물체와 배경 사이의 경계의 위치를 찾는 것이다. 윤곽선 검출은 미분 연산자를 이용하여 이미지의 밝기 값의 변화를 이용하여 찾아내는 것이다. 소벨 마스크(Sobel mask)나 프리윗(Prewitt) 마스트 등과 같은 마스크 연산 방법이 사용된다.
분할 작업에 뒤따른 이미지 처리와 분석의 다른 기술은 특징 형상 추출(feature extraction)이다. 대부분의 머신 비전 시스템은 물체의 특징 형상을 이용하여 이미지 안의 물체를 특징짓는다. 물체의 특징 형상으로는 물체의 면적, 길이, 폭, 지름, 둘레, 무게 중심, 폭/높이 비율 등이 있다. 특징 형상 추출 방법은 이진화나 모서리 추출 등을 이용하여 얻어진 물체의 면적과 경계를 기준으로 이들 특징 형상을 결정하도록 설계된다.

 

  • 해석

어떤 주어진 응용에서 이미지는 추출된 특징 형상을 기초로 해석되어야 한다. 해석 기능은 보통 물체를 인식하는 것과 관련되는데, 물체 인식 또는 패턴 인식(pattern recognition) 이라는 용어로 불리는 작업이다. 이 작업의 목적은 미리 정의된 모델이나 표준값과 이미지 안의 물체를 비교하여 그 물체를 인식하는 것이다. 두 가지 흔히 사용되는 해석 기술은 템플리트 매칭(template matching)과 특징 가중(feature weighting)이다.

 

템플리트 매칭은 이미지의 하나 또는 여러 특징 형상을 컴퓨터 메모리에 저장된 모델이나 템플리트의 해당 특징과 비교하는 방법이다. 각종 기초적인 템플리트 매칭 기술은 이미지의 각각의 픽셀을 해당 컴퓨터 모델의 픽셀과 비교하는 방법이다. 템플리트 매칭의 어려움 중의 하나는 복잡한 이미지 처리 없이 비교가 쉽게 이루어지게 하기 위하여 카메라의 앞에 물체를 같은 위치, 같은 방향으로 정렬하는 것이다.

 

특징 가중은 물체를 인식하는 데 있어 상대적인 중요도에 따라 각 특징(예로 면적, 길이, 둘레와 같은)에 가중치를 할당함으로써 여러 특징을 하나의 측정으로 결합하는 방법이다. 이미지 상의 물체의 점수는 적절히 인식하기 위하여 컴퓨터 메모리에 저장되어 있는 이상 적인 물체의 점수와 비교된다.

과거와 달리 해석부분이 GPU 발전과 더불어 알고리즘들이 급격한 성능을 보여주고 있다. 과거 감지부분의 알고리즘 성능이나 HW의 수준 부족으로 로봇의 필드 적용에 한계로 발전이 더디고 있었으나 최근 눈부신 발전으로 매칭이나 가중의 학습에 대한 강인성(물체의 배경, 색상, 외형등)을 확보가 할수 있게 되었다. 즉, 컵자체 인식 뿐만 아니라 컵들중에서 손잡이 있는 컵 또는 그 중 고양이 그림이 있는 컵만을 등등 임공지능은 아니지만 그 정도의 수준으로 오해할 만할 정도의 기술이 발전되어 누구나 가져와 적용할 수 있다.