![Journal of Korea Robotics Society](/images/basic/pubreader_back.gif)
윤곽선의 선분 근사화를 활용한 양팔 화가 로봇의 개발
†Corresponding author: Dept. of Information & Communications Engineering, Hansung University, 389, Samsun-Dong 2-Ga, Sungbuk-Gu, Seoul, Korea ( hkcho@hansung.ac.kr)
© KROS
Abstract
This paper introduces a dual-arm robot painter system which is capable of sketching a camera-captured image with short line segments. To express various curved edges in the image by combining line segments, we first apply edge detection algorithm to the entire image, split the edged image into small boxed pieces, and then apply Hough Transformation to each piece so that the edges inside the piece can be approximated with short line segments. To draw the picture within a reasonable time, we designed a simple dual-arm robot system and controlled both arms concurrently according to linear interpolation algorithm. From the experiments, we could verify that simple linear motions can describe various images effectively with a unique brush style.
Keywords:
Edge Detection, Hough Transform, Painter Robot서 론
정보기술의 발전은 컴퓨터 안에서만 존재하던 소프트웨 어를 다양한 사물 속으로 끌어 내고 있으며, 이로 인해 산 업뿐만 아니라 예술이나 창작분야에서도 정보기술을 결합 한 다양하고 창의적인 시도들이 이루어져 보는 이들에게 영감을 주고 있다. 이러한 시도가 개인의 개성표현을 넘어 전문적인 수준으로 발전함에 따라 큰 부가가치를 낼 수 있는 새로운 형태의 콘텐츠에 대한 관심이 높아지고 있으 며, 예술과 기술을 융합하는 시도는 당분간 지속될 전망이 다[1,2]. 본 논문에서는 이러한 시도의 일환으로 영상처리기 술과 로봇기술을 응용한 화가 로봇 시스템을 제안하고자 한다.
현재 여러 가지 방법으로 그림을 그리는 화가로봇들이 있다. 첫 번째로, Automatic Graffiti Robot라 불리는 로봇은 두 가닥의 줄에 스프레이가 매달려 그림을 그리는 시스템 이다. 스프레이 양쪽에 달린 줄을 잡아 당기고 느슨하게 하면서 스프레이의 위치를 옮겨 그림을 그린다. 이 시스템 을 이용하면 아파트 벽과 같은 건축물 외벽에 그림을 그 릴 때, 사람이 위험하게 올라가서 그릴 필요가 없게 된다[3]. 다음으로, 독일 콘스탄츠 대학 연구팀이 개발한 'e-David'가 있다. e-David는 붓을 이용해 물감으로 그림을 그리는 로봇 이다. 이 로봇은 5개의 붓과 24가지 색을 선택할 수 있고, 심지어 어느 부분을 진하게 칠해야 하고 엷게 칠해야 하 는지를 계산하여 그림을 그리기도 한다. 또한 e-David는 스 스로 붓을 물로 깨끗하게 청소하는 기능도 갖고 있다[4]. 마지막으로, Patrick Tresset에서 Paul이라 불리는 화가 로봇 을 개발했다. Paul은 카메라로 얻은 사람 얼굴을 볼펜으로 그림 그린다. 이 로봇은 사람의 얼굴 형태부터 먼저 그린 다음 이목구비를 그리고 머리카락과 음영을 그리는 순으 로 사람 얼굴을 완성해 간다[5].
본 논문에서 제안한 화가 로봇 시스템은 선분을 근간으 로 그림을 그린다는 점에 있어 Patrick Tresset에서 개발한 Paul과 유사하나, 그림을 그리는 시간을 단축시키기 위해 두 팔을 사용하고 새로운 영상처리 알고리즘을 적용한다. 일반적으로 영상의 윤곽선은 곡선의 형태이나, 이를 수학 적으로 모델링하고 곡선을 따라 로봇 팔을 제어하는 것은 상당히 복잡한 과정을 동반한다. 본 논문에서는 복잡한 계 산을 피하고 선분들의 조합만으로 영상의 특징을 효과적 으로 표현하기 위해, 다양한 영상처리 알고리즘과 좌표변 환 및 역기구학(inverse kinnematics)을 이용하여 카메라를 통 해 들어온 이미지를 로봇 팔이 종이에 그리도록 설계 ∙ 구현한다.
본 론
전체 시스템
본 논문에서는 사물이나 사람을 카메라로 촬영한 영상 에서 선분을 추출하기 위해 캐니-윤곽선 추출 기법과 허프 변환을 이용하고, 좌표 변환과 역기구학을 이용해 그림을 그리는 양팔 화가 로봇을 구현한다.
전체 시스템의 구성은 Fig. 1과 같다. 카메라를 통해 촬 영한 컬러이미지를 흑백화 한다. 흑백화 된 이미지에서 잡 음을 제거하기 위해 가우시안 필터를 적용한 후, 캐니 윤 곽선 추출 알고리즘을 이용하여 윤곽선을 추출한다. 추출 된 윤곽선 이미지를 여러 개의 셀로 분할하고 각 셀 내에 서 허프 변환을 적용한다. 허프 변환의 결과로 나온 직선 들을 선분화 한다. 그 후 성분이 비슷한 선분들을 군집화 시키고, 끝점이 이어지는 선분들은 연결하여 선분의 개수 를 줄인다. 이렇게 얻은 선분들을 로봇 팔이 그릴 수 있도 록 화면상의 좌표를 로봇이 그릴 도화지상의 좌표로 변환 하고, 역기구학을 이용하여 모터의 각도를 계산한다. 그 다음 모터에게 명령을 보내어 로봇이 그림을 그릴 수 있 도록 제어한다.
로봇 기구부 설계
Fig. 2는 로봇의 왼쪽 팔로 3개의 모터로 구성된다. 3개의 모터 중 2개의 모터를 사용하여 펜이 그릴 위치로 이동할 수 있도록 하며, 나머지 모터는 펜을 위아래로 움직여 종 이에서 접촉할 수 있게 한다. Fig 3은 그림이 그려질 종이 상의 좌표를 나타낸 것이다.
그림을 그리기 위해서는 3자유도의 팔 제어가 필수적이 므로 좌표 변환과 역기구학을 유도한다. 우선 좌표변환은 카메라를 통해 얻어지는 640 * 480 픽셀(pixel) 이미지 좌표 를 종이 위 20cm * 15cm의 좌표로 변환하는 역할을 한다. 이것은 로봇 팔을 종이 위에서 정확하게 제어하기 위해 역기구학에서 필요한 로봇 기준 좌표를 구하는 과정이다. 다음으로, 역기구학은 로봇 좌표계 위치를 3자유도 모터의 각도로 계산하는 역할을 한다. 그 계산은 다음과 같다.
역기구학 식은 02T = 01T12T 이고, 02T는 주어진다.
이 때, 역 기구학의 위치정보를 이용하면
(1) |
(2) |
가 되며, 식 (1), (2)의 양변을 각각 제곱하여 더하고, sin2θ2 + cos2θ2 = 1를 이용하면, θ2를 식 (3)과 같이 계 산할 수 있다.
(3) |
이 때, 양과 음의 부호에 따라 값이 두 개가 존재하게 되는 데 본 논문에서는 양의 부호를 이용하여 자세를 결정한다.
다음으로 θ1을 구하면,
(4) |
(5) |
가 되므로, 크레이머 공식에 의해
에서 최종적으로 θ1을 식 (6)과 같이 구할 수 있다[6].
(6) |
이렇게 구한 θ1, θ2값을 모터에 각각 설정하여 목표위치 까지 이동시킬 수 있다. 반대쪽 팔의 모터의 각도 값 역시 위와 동일한 과정을 거쳐 계산할 수 있고, 그 값들을 미러 링(mirroring)하여 반대쪽 로봇 팔과 대칭적인 각도에서 모 터가 동작하도록 모터들에게 명령어를 내린다.
제어 소프트웨어 설계
소프트웨어의 아키텍쳐(architeecture)는 Fig. 4와 같이 카메 라 부, 컴퓨터 부 및 로봇 시스템 부로 구성되어 있다. 전 체적인 흐름은, 카메라로 받아들인 영상 데이터를 PC에서 가공하여 윤곽선을 선분의 조합으로 변환하고, 이 선분 식 을 이용하여 로봇 팔을 제어하는 것이다.
이 과정을 자세히 설명하면 다음과 같다. 먼저 카메라를 통해 대상의 이미지를 획득한 후, 그 이미지를 흑백화(grey scalee)한다. 이후 캐니 윤곽선 추출 알고리즘(canny edge detecction algorithm))을 적용하여 윤곽선을 추출한 후, 허프 변환(Hough transfoorm)을 응용하여 윤곽선을 선분의 조합으 로 근사화한다.
여기서 캐니 윤곽선 추출 알고리즘은 다음과 같은 과정 으로 이루어진다. 가장 먼저 가우시안 마스크(Gaussian maskk)를 이용하여 스무딩(smoothhing)을 수행을 한 후, 소벨 마스크(Sobel maskk)를 x방향, y방향에 대해 적용하여 x방향 미분 값과 y방향 미분 값을 구하여 기울기 크기와 방향각 을 구한다. 다음으로 기울기 크기가 방향각 방향의 주변 값보다 작을 경우, 윤곽선 대상에서 제거한다. 마지막으로 상한과 하한의 문턱치(thrreshold)를 두어 상한을 초과하는 경우 무조건 윤곽선으로 삼고, 하한의 미만일 경우에는 윤 곽선에서 제외시키며, 그 사이는 주변에 자신 이상인 것이 있을 때 윤곽선으로 삼는 과정을 거친다[7, 8].
허프 변환은 이미지를 구성하는 점들을 이용하여 주요 직선 성분을 찾는 과정이다. 직각 좌표계 상의 임의의 점 (x, y)를 지나는 모든 직선들은 원점 (0, 0)에서부터의 직 선거리와 방향각을 파라미터(parameter)로 재구성한 공간에 서는 곡선으로 표현되는데, 이 공간에서 특정한 점을 지나 는 곡선이 많다는 것은 원래 영상에 해당 파라메터로 표 현되는 직선이 존재한다는 것을 의미하게 된다. 따라서 변 환된 공간에서 임계치를 넘는 점들을 선별하면 직선 식을 구할 수 있다[9].
본 논문에서는 Fig. 5와 같이 전체 영상을 작은 셀(cell)로 분할하여 허프 변환을 적용하는데, 전체 영상을 대상으로 그대로 허프 변환을 적용하면 연산의 속도가 매우 느려질 뿐만 아니라, 임계치를 설정하는 데에 따라 실제로는 바로 연결되지 않은 긴 직선 성분이 많이 나타나 짧은 곡선이 나 섬세한 선들의 정보를 얻을 수 없기 때문이다. 이미지 를 분할하면 분할된 셀(cell) 내의 점만으로 검사하기 때문 에 연산량이 많이 줄어들며, 실제로 연결된 직선 성분들을 구할 수 있게 된다.
이렇게 직선을 구한 후에는 시작점과 끝점을 찾아 선분 으로 변환하는 작업이 필요하다. 만일 직선을 그대로 그리 면 마치 낙서를 한 듯한 직선들이 그려져 윤곽선의 형태 를 알아볼 수 없게 되기 때문이다. Fig. 6은 직선과 선분이 어떻게 다른 영상을 만들어 내는 지 보여준다. 처음의 점 영상과 그 점 영상을 허프 변환하여 직선으로 구성한 영 상, 그리고 연구에서 제안한 알고리즘으로 구한 선분 영상 을 통해 윤곽선의 근사화 과정을 알 수 있다.
선분들의 추출 과정이 완료되면 다음으로 분할된 셀들 의 선분들을 합치는 과정이 진행된다. 셀들의 선분들을 합 치는 과정은 직선 군집화를 응용하였다. 직선의 군집화란 직선들끼리의 떨어진 거리, 차이 나는 각도를 계산하고, 평행한지 교점이 있는 지를 검사하며 교점이 없다면 최단 거리를 계산하여 직선들끼리의 연관성을 찾아내고 연관성 이 있다면 최적의 직선으로 합치는 과정을 반복하는 것이 다[10]. 본 논문에서는 직선의 군집화를 응용하여 Fig. 7과 같 이 선분을 군집화하는 과정을 진행한다.
우선 하나의 기준 선분을 결정하고 비교할 직선을 결정 한다. 결정된 두 선분을 그림으로 표현하면 Fig. 8과 같다. 기준 선분과 비교 선분을 정하면, 두 선분 각도의 차이를 식 (7)과 같이 구할 수 있다.
(7) |
식 (7)이 임계값 보다 크면 다른 선분과 비교하며, 그렇지 않으면 기준 선분의 끝점과 비교 선분의 시작점과의 거리 식(8)을 계산한다.
(8) |
식 (8)의 거리가 가깝다면 기준 선분의 시작점 (x1, y1) 과 비교 선분의 끝 점 (x4, y4)을 잇는 새로운 선분을 만든 다. 만일 두 선분 사이의 거리가 멀다면 두 선분의 교점을 검사한다. 교점의 좌표는 다음과 같이 구한다. 선분을 포 함한 직선 식은 각각
r1 = (y2 - y1), r2 = (y4 - y3),
s1 = -(x2 - x1), s2 = -(x4 - x3),
t1 = x2y1 - x1y2, t2 = x4y3 - x3y4
이므로 r1x + s1y + t1 = 0, r2x + s2y + t2 = 0일 때, 교 점의 좌표는 식 (9)와 같이 된다.
(9) |
하지만 이 교점의 좌표가 직선 식에서 구한 식이기 때문 에 선분 상에서 교점이 있는 없는 지를 아직 알 수 없다. 교점의 좌표를 (xc, yc) 라 한다면 xc 는 x1,x2 의 사이와 x3,x4의 사이에 존재하고 yc는 y1,y2의 사이와 y3,y4의 사이에 존재해야 두 선분끼리 교점이 존재한다. 이렇게 교 점을 검출이 되면 두 선분의 각각의 시작점, 끝점 중 가장 긴 선분을 결정하여 새로운 선분을 만든다. 두 선분이 교 점이 없다면 평행이거나 약간만 연장을 하면 교점을 가진 다. 그러므로 두 선분 사이의 최소 거리를 계산하여 임계 값 보다 작다면 두 선분을 군집화한다. 그 과정은 교점이 발생된 선분들을 연결하는 것과 동일하다. 이렇게 기준 선 분과 비교 선분을 바꿔가면서 군집되는 선분이 없을 때까 지 Fig. 7의 과정을 반복을 한다. 군집되는 선분이 없으면 비로소 군집 합병 과정이 끝나게 된다.
Fig. 9는 캐니 윤관선 이미지와 군집화 과정을 반복으로 얻게 된 선분들의 이미지를 보인다. 이처럼 곡선을 선분들 의 조합으로 표현하는 것이 가능하게 되며, 이를 그림으로 옮기면 마치 연필로 스케치한 듯한 효과가 생성된다고 할 수 있다.
이러한 과정을 통해 선별된 선분들을 시작점과 끝점을 활용하여 그리기 위해서는 직선 보간 (linear interpolation)이 필요하다. 직선 보간은 시작점과 끝점 사이에서 중간 점들 을 구하는데, 다음과 같은 식 (10)으로 표현된다.
(10) |
(11) |
여기서 n은
그림을 그리는 속도는 중간 점들의 샘플링 주파수와 샘 플링 픽셀에 결정된다. 샘플링 주파수는 5Hz이며, 매 샘플 링 마다 일정하게 5픽셀 거리를 움직인다. 640 * 480 픽셀 을 20cm * 15cm로 출력하면 초당 0.78cm의 선분을 그린다. 여기서 5픽셀을 정한 이유를 설명하자면, 로봇 시스템을 구현에 이용된 모터의 최소 제어 각도는 0.29°이다. 최소 표현 가능 동작은 0.125cm이다. 5픽셀은 0.156cm이므로 최 소 움직임 보다 약간 크므로 5픽셀로 정했다. 아래 Fig. 10 에 보인 초상화의 경우, 허프 변환으로 발생되는 선분의 수는 대략 200~300개이며 선분의 평균 길이는 20~30픽셀 로 그림을 그리는 시간은 10~20분 정도 소요된다.
결 론
본 연구에서는 카메라를 통해 얻은 영상을 디지털 영상 처리 기법을 적용하여 단순하게 변형하고 그 영상을 종이 에 그려주는 로봇 시스템을 고안하였다. 카메라 영상의 단 순화를 위해 캐니 윤곽선 추출 알고리즘과 허프 변환을 사용하였고, 단순화된 영상 정보에 따라 로봇 팔을 제어하 기 위하여 역기구학을 유도하였다. 최종적으로 구현된 로 봇 화가 시스템은 고유한 스타일을 이용하여 원본 영상을 성공적으로 스케치하였다.
펜으로 그린 그림이 마치 화가처럼 고유한 스타일을 갖 는 이유는 다양한 원인의 오차가 작용한 결과이다. 5픽셀 기본 단위 움직임으로 인한 정밀도 오차, 모터 제어 오차, 균일하지 않은 종이 마찰 및 기구적인 펜의 흔들림으로 인해 실제 펜으로 그린 그림에서는 각 선분의 시작과 끝 에 고유한 터치가 남았다. 향후 전문적으로 설계된 기구를 활용하면 이미지를 더 정확하게 복원할 수 있을 것으로 예상되며, 나아가 초상화의 경우, 표정인식이나 감정인식[11, 12]을 결합하면 지능적이고 차별화된 문화 콘텐츠로 개선 할 수 있을 것으로 기대된다.
REFERENCES
-
Sang, Sang, Bal, JeonSo, “[IT/Application] IT Fusion Contents, Meet the new strategy”, http://koreancontent.kr/1572, (2013, July).
[https://doi.org/]
-
MK News, Moon Ye-Wie • Korea Culture Technology Institute conducts fusion between Art and Technology”, (2013, September).
[https://doi.org/]
-
MediaTrend, “Wonderful pictures”, (2006, August).
[https://doi.org/]
-
Robot new, “Robot, debuts a painter”, http:://blog.naver.com/kips1214//40193224831, (2013, July).
[https://doi.org/]
-
wired.co.uk, “Patrick Tresset's robots draw faces and doodle when bored“, (2011, June).
[https://doi.org/]
-
Moon, S.B, , “Intelligent Robotics”, Sciitech, (2010).
[https://doi.org/]
-
Jung, M.Y, , “C# Digital Image Processing”, MireaCom, (2005).
[https://doi.org/]
-
Junng, S.H, Lee, M.H, “Image Processing Comprehension and Utilization using C”, (2003), YeongHan publisher.
[https://doi.org/]
-
Kang, D.J, Ha, J.E, “Digital Image Processing with Visual C++”, Infinity Books, (2010).
[https://doi.org/]
-
Kim, J.Y, , “The Iterative Straight Line Clustering using Blocked Hough Transform”, Korea Institute of Information Scientists and Engineers spring workshop presentation file, (1997), 23(1), p2-3.
[https://doi.org/]
-
Choo, D, , “Facial Feature Tracking Using Adaptive Particle Filter and Active Appearance Model”, Journnal of Korea Robotics Societty, (2013), 8(2).
[https://doi.org/10.7746/jkros.2013.8.2.104]
-
Ahn, B, , “Robust Real-time Tracking of Facial Features with Application to Emotion Recognition”, Journal of Korea Robotics Society, (2013), 8(4).
[https://doi.org/10.7746/jkros.2013.8.4.266]