본문 바로가기

논문 리뷰

[MASK R-CNN] Integration of deep learning-based object recognition and robot manipulator for grasping objects 논문 리뷰

728x90
반응형

 

 

해당 논문 링크 : https://ieeexplore.ieee.org/document/8768650

 

 

0. Abstract

 

많은 산업용 로봇들이 반복적인 작업을 요구하는 간단한 업무에 적용되어 왔다. 그러나 4차 산업혁명과 딥러닝의 신속한 발전을 통해, 로봇의 역할이 더욱 확대되어 '인간이 하는 일'을 수행할 것이라 전망하고 있다. 예를 들어 서비스 로봇 공학에선, 제품 자동 진열과 보충 그리고 집안 청소 등에 대한 연구를 진행 중이다. 이 논문에서, 우리는 딥러닝 방식을 이용한 물체 인식 시스템과 직렬 조작기와 그리퍼가 있는 grasping system(파악 시스템)을 통일하였다. 

우리가 수행하는 bin-picking은 물체를 집어 쓰레기통으로 옮기는 작업이다. 해당 태스트에서 우리가 적용할 Mask R-CNN은 객체 세분화 분야에서 널리 사용되며, 객체의 종류와 모양을 결정하는 역할을 한다. 이미지에서 이러한 segmentation을 수행한 후, 무게중심과 간단한 알고리즘을 사용하여 문제의 포즈를 얻는다. 오브젝트가 3D 공간이 아닌 평면에 존재한다고 가정하므로, 평면에서 오브젝트의 회전 방향만 결정하자. 또한 카메라를 유연하게 배치하기 위해 marker를 로봇에 부착하고, 해당 marker를 사용하여 카메라와 로봇 사이의 변환을 등록한다. 4개의 가정용품을 대상으로 한 bin-picking 실험은 한 개당 평균 30초가 소요되었다. 이는 안전을 고려하여 무리하지 않게 속도를 제한한 결과다. 

이 실험에서, 우리는 grasping system과 딥러닝을 이용한 물체 인식을 통합한 효과를 입증할 수 있었다. 향후 연구에선 정교한 작업을 위한 6D 포즈 추정을 완성할 예정이다. 

 

 

1. Introduction

 

공장에서 단순 반복 작업을 하는 로봇의 역할을 넘어, 사람만 할 수 있는 일을 다루는 지능형 로봇이 등장하고 있다. 이러한 이유로 최근 전 세계적으로 많은 로봇 경진대회가 개최되고 있다. Amazon Picking Challenge는 로봇이 사물을 인식하고 분류하는 대회로, 로봇의 역할이 단순 작업을 넘어 복잡한 작업으로 향하고 있는 최근 연구 경향을 보여준다. 

로봇이 사물이 무엇인지 알기 위해서는 오감 중 시각이 가장 중요하다. 그러므로 많은 연구진들이 이미지 정보를 사용하여 사물을 인식하는 방법을 개발해왔다. 시각 정보를 기반으로 물체의 복잡한 특성을 분석하기 위해서는, 데이터로부터 높은 수준의 특징을 얻을 수 있는 능력이 필요하다. PCA, Surf, naive Bayes, SVM과 같은 전통적인 이미지 처리 방식들은 낮은 수준의 특징을 사용하기 때문에 좋은 성능을 기대하기 어렵다. 
또한 noise나 occlusion의 변화에 취약하여 잘못된 결과를 생성할 확률이 높다. 딥러닝 기반의 방법은 이러한 한계를 해결하고, 더욱 정확하고 안정적인 성능으로 고차원의 특징을 추출할 수 있다. 이 논문에서는 여러 객체와 환경을 인식하는 딥러닝 접근 방식을 채택하였다. 

연구 과정은 section 2에, 객체 인식에 사용되는 Mask R-CNN과 pose estimation 방법은 section 3에 잘 묘사되어 있다. 그리고 카메라와 로봇 사이의 위치 관계 등록은 section 4에서 설명한다. 마지막으로, 시각 정보로 물체를 인식한 후 로봇과 그리퍼를 사용하여 상자로 이동하는 실험은 section 5에 나와 있으며, section 6으로 마무리된다. 

 

 

2. Workflow

 

(1) Pre-process

 

The experimental setup of bin-picking

 

Registration of Robot Coordinate : vision 기반 로봇 제어는 2가지 방법으로 수행할 수 있다. [1] robot end-effector에 카메라가 장착된 eye-in-hand 방식과, [2] 작업 공간 외부에 카메라가 장착된 eye-to-hand 방식이 있다. 이 연구에서는 물체를 인식하는 데 eye-to-hand 방식을 사용하였다. 이 방법은 카메라와 로봇 베이스 사이의 좌표 변환이 필요하다. 그래서 우리는 카메라를 천장 위치에 고정하고, 로봇 끝에 거리 정보를 이미 알고 있는 특정 marker를 부착했다. 그리고 로봇 기준 좌표, 카메라 좌표의 관계는 로봇의 encoder sensor 정보와 RGB-D camera를 이용한 마커의 자세 추정을 통해 등록된다. section 4에 자세한 설명이 있다.

Training a Network : 딥러닝 방식을 적용할 때, 적절한 데이터 세트에 대한 학습이 중요하다. 우리는 COCO dataset으로 사전 학습하여, 범용적으로 사용할 수 있는 네트워크를 최적화했다. COCO(Common Objects in Context)는 객체 탐지, 세분화, 핵심 포인트 검출을 위한 데이터이며 매년 변경된다. 그런 후 다른 데이터셋으로 학습하여 네트워크를 특정화했다. YCB dataset은 로봇 작동의 벤치마킹을 용이하게 하기 위해 만들어졌다. 이미지 정보를 통해 물체를 인식하고 로봇 조작기와 집게로 물체를 포작하는 시스템 통합에 초점을 맞추었기 때문에, 네트워크의 구조와 성능 평가에 대한 논의는 하지 않는다. 

Mask R-CNN에 관한 논문 리뷰 자료는 여기를 클릭

 

(2) The whole process

우리가 하고자 하는 전체 과정은 [1] vision data로부터 원하는 물체의 pose를 추출하고, [2] 이 정보를 이용하여 로봇을 제어하여 물체를 파악 및 이동시키는 것이다. 이를 위해 물체 인식에 사용되는 카메라 좌표와 로봇 좌표의 관계를 설정하고 물체 인식 네트워크를 학습한 후에, 물체 파악 동작을 수행할 수 있다. 

 

Workflow

 

먼저 객체 인식에서는 딥러닝 방법인 Mask R-CNN을 사용하여 인식된 객체의 이미지 좌표상의 위치를 얻는다. 그 다음, Intel RealSense D435 RGB-Dcamera에 내장된 일부 라이브러리를 통해 이미지 좌표에서 3차원 좌표로 변환한다. 다음으로 TCP/IP 통신을 통해 오브젝트의 이름, 위치, 회전(c, x, t, z, θ)이 메인 컴퓨터로 전송된다. 마지막으로 로봇이 움직임을 멈추면 마스터 PC는 TCP/IP 통신을 통해 로봇에게 목적지를 전송하고 그리퍼에게 명령을 보낸다. 

 

 

3. Object Detection

 

우리는 instance segmentation 기술로 널리 알려진 Mask R-CNN 기술을 사용했다. 이 기술은 R-CNN에서 Fast R-CNN을 거치고, Faster R-CNN도 거친 최첨단 네트워크다.

R-CNN은 고전적인 이미지 처리 기법과 CNN을 모두 사용하여 객체 감지를 성공적으로 수행했다. 여기에는 이미지를 여러 영역으로 분할하는 선택적 검색도 포함한다. 그리고 AlexNet은 틍징을 추출하고, SVM을 통해 최종 후보를 도출한다. R-CNN의 가장 큰 문제점은 테스트에 상당한 시간이 소요된다는 점이다. 이 시간을 단축하기 위해, Fast R-CNN은 Rol pooling layer를 채택하여 R-CNN 중에서 중복되는 많은 지역 처리를 효율적으로 하였다. 또한 SVM과 선형 회귀 모델을 하나의 네트워크에 포함시켰다. Faster R-CNN은 시간이 오래 걸리는 선택적 탐색 대신, 지역 기반 탐지기를 사용한다. CNN을 통과하는 속성 맵에서 sliding window는 각 anchor에 대해 가능한 바운딩 박스의 좌표를 계산하고, anchor와 이 바운딩 박스의 점수를 계산한다. 

Mask R-CNN은 각 픽셀이 오브젝트에 해당하는지 여부를 마스킹하기 위해 Faster R-CNN에 네트워크를 추가한다. 그것은 binary mask라고 불린다. 정확학 픽셀 위치를 추출하기 위해 CNN을 통해, RolPool 영역의 위치에서 발생하는 소수점 오차를 RolAlign이라는 2D 선형 보간을 사용하여 줄였다고 한다. 

 

 

이 네트워크는 section 2에서 소개한 방법을 통해 학습되었으며, 일부 YCB 데이터 세트를 인식했다. 왼쪽 그림은 원본 이미지, 오른쪽 그림은 사물의 이름과 posture가 포함된 추정 결과 이미지다. 

Mask R-CNN을 모든 프레임에 적용한 후, 우리는 분할된 결과에서 무게 중심이 있는 물체의 위치를 정의한다. 실험 조건으로 모든 물체가 2차원 평면에 존재한다고 가정하자. 물체 방향을 파악하기 위해, 중심점으로부터 30도 간격으로 직선을 그린다. 그리고 이 직선들은 물체의 가장자리와 만나는 두 점을 찾는다. 그 후 6개의 축 중, 두 점들 사이의 거리가 가장 짧은 축이 방향 파악을 위해 선택된다. 여기서는 2-finger gripper를 사용하므로 0~180도 사이의 각도만 정의하면 물체를 잡을 수 있다. 

-> 물론 물체를 잡을 방향을 결정하기 위해, PCA, O(p2n + p3)를 사용하여 단축 축을 선택하는 방법도 있지만, 우리는 비교적 간단한 알고리즘을 사용하여 복잡성을 줄인다. 

 

 

4. Robot Registration

 

앞서 말했듯이, 로봇 비전 시스템의 구현 방식은 크게 eye-in-hand와 eye-to-hand 방식이 있다. eye-in-hand 방식은 로봇 손에 카메라가 고정되어, 로봇이 움직임에 따라 카메라 좌표가 변경되는 방식이다. 로봇과 카메라의 관계가 단순히 기하학적이기에 오차를 유발하는 요소가 적다. 그러나 real-time 물체 추정이 어렵다는 단점이 있다. 로봇의 움직임에 따라 카메라의 시야각이 변하기 때문이다. 반면 eye-to-hand 방식은 작업 공간과 물체에 대한 시각적 정보를 지속적으로 인식할 수 있다. 카메라가 일반적으로 적절한 위치에 배치되어 작업 공간을 들여다보기 때문이다. 따라서 카메라의 위치는 물체가 잘 관찰되는 곳에 위치해야 한다. 카메라가 고정된 후에는 카메라 좌표와 로봇 좌표 사이의 관계를 구하는 것이 중요하다. 

본 연구에선 eye-to-hand 방식을 사용하여 물체를 잡았다. 또한 특정 마커를 사용한 로봇 등록 방법은 실험 환경에 따라 카메라 위치를 유연하게 선택할 수 있다. grasping(파악)의 정확도를 높이기 위해, 객체 인식에 사용되는 카메라에 대한 로봇 기준 좌표를 정의했다. 로봇 등록 방법은 로봇으로부터 로봇 기준 좌표(B)마커 좌표(M)로봇 끝 좌표(E)를 통해 카메라 좌표(C)로 균질 변환하는 것으로, 식은 아래와 같다. 

 

 

동질 변환 행렬 Tab는 a 좌표계에서 b 좌표계로 변환하는 것을 의미한다. TME는 고정된, 알고 있는 값이고 TBE는 encoder 센서와 로봇 링크 파라미터를 통해 사용할 수 있다. 

RGB-D 카메라를 이용하여 TCM를 얻기 위해선, 아래 그림과 같이 4개의 마커로 구성된 마커 툴을 인식하고, 각 마커를 중심으로 중심점을 검출하였다. 이 과정에서 사용자는 간단한 영상 처리를 위해 영상 내 ROI 영역을 수동으로 지정한다. 

-> ROI area란? Region of Interest area를 나타내며, 이미지에서 특정 관심 영역을 의미한다. ROI는 주로 이미지 내에서 중요한 부분, 특정 객체 또는 분석하려는 영역을 나타낸다. 

 

Position and orientation estimation of marker coordinate using RGB-D camera for robot registration

 

그런 다음, 이미지 필터와 영역 내의 Hough Circle Transformation을 사용하여 원의 중심을 감지했다. 허프 원 변환은 노이즈에 취약하기 때문에 가우시안 필터와 중앙값 필터를 이미지 필터로 사용했다. 

-> Hough circle Transformation(허프 원 변환)은 디지털 이미지 처리 및 컴퓨터 비전 분야에서 사용되는 기술 중 하나로, 이미지 내에서 원 형태의 객체나 패턴을 감지하기 위해 사용된다. 허프 변환은 이미지 공간에서 해당 도형의 파라미터 공간으로의 변환을 수행한 다음 이 파라미터 공간에서 특정 도형을 나타내는 점들이 교차하는 지점을 찾아내는 방식으로 작동하며, 특히 선분이나 원 같은 간단한 도형을 검출하는 데 유용하다. 허프 원 변환은 허프 변환을 원 형태의 도형을 검출하는 데 적용한 것이다. 원은 중심 좌표와 반지름으로 정의되기 때문에 허프 원 변환은 이러한 파라미터를 검색하여 이미지 내의 원을 찾는다. 

-> 가우시안 필터는 단순 노이즈 제거 필터로 널리 사용되며, 중앙값 필터는 충동적인 노이즈 제거에 효과적이다. 

각 중심점은 리얼센스 카메라에 내장된 기능을 사용하여 이미지 좌표에서 3차원 좌표로 변환했다. 카메라 좌표에서 4개의 마커 위치를 감지했지만, 카메라에 대한 마커 도구 좌표의 방향을 얻으려면 추가 매핑 프로세스가 필요하다. 

이미지에서 감지된 중심점이 실케 마커의 점과 일치해야 한다. 따라서, 인식된 4개 마커의 중간 위치로부터 각 마커까지의 거리 dt는 유클리드 거리로 구한다. 마커와 중간 위치 사이의 실제 거리 lj가 기준값이 된다. 그리고 획득한 길이와 기준 길이 사이의 가장 유사도가 높은 si가 L2 표준에 의해 계산된다. 

 

 

위의 방정식처럼 거리 di와 모든 길이 l 사이의 유사성을 계산 한 후에, si는 그들 중 가장 작은 값이 된다. 그리고 카메라를 통해 얻은 점의 위치가 정확한 지 확인하기 위해 si는 지정된 threshold보다 작은 지 검사된다. 이 검증을 거친 후, 이미지의 i번째 지점과 si의 인수인 j번째 지점이 일치된다. 

만약 실제 마커의 좌표계의 점과 카메라 좌표계의 점이 일치하면 Horn's method를 사용하여 두 좌표 사이의 관계를 얻을 수 있다. 최소 제곱 문제에 대한 이 폐쇄형 해법에서, point들은 최소 3개 이상이어야 한다. 안정적인 해를 얻기 위해 우리는 registration에 4개 점을 사용한다. 비록 robot registration은 1개 이미지만으로도 가능하지만, 4개 점들이 한 이미지 안에 포함되어야 했다. 따라서 등록 과정에서 로봇의 end-effector를 시야에 배치하여야 했다.

-> Horn's method란? 초기에 이미지를 smoothing하고, 그 다음에 광도 맵을 추정하는 방식으로 동작한다. 이 광도 맵은 이미지 내의 밝기 변화를 표현하는데 사용된다. 이후 광도 맵을 이용하여 원본 이미지를 보정하고, 밝기 차이를 보완하는 과정을 거친다. 

 

 

5.  Experiment

 

우리는 학습된 물체 범주 내에서 몇 가지 물체를 선택하고, 특정 물체를 잡아 상자에 옮기는 bin-picking을 수행한다. 물체 인식을 위한 RGB-D 카메라로는 RealSense D435를, 6자유도 시리얼 로봇으로는 Indy-7과 UR-3을 사용하였다. 또한 여러 개의 물체를 안정적으로 감지하기 위해 메인 PC와 별도로 GTX 1080Ti를 2개 장착한 PC를 사용했다. 메인 PC에서 원하는 물체를 선택하고, TCP/IP 통신을 통해 로봇 매니퓰레이터에게 대상의 포즈와 이름을 담은 명령을 내렸다. 

카메라와 로봇 간의 매칭 과정을 통해 end-effector의 정확도는 향상되었지만, 2D 분할 결과를 사용했기 때문에 부피가 있는 물체의 깊이 정보를 추정하는 것이 어려웠다. 또한 RGB-D 카메라는 깊이 정보의 해상도가 낮고, 그리퍼가 닫혀 있어 발생하는 그리퍼와 변위 사이의 간격을 알기 어렵다. 이 문제를 해결하기 위해, 모든 물체가 평면에 있다고 가정하였다. 그리고 각 오브젝트에 추가되는 z방향의 오프셋을 설정할 수 밖에 없다. 

 

From the left top to right bottom in the figure, the robot catches the teddy bear, the baseball, the water bottle, and the biscuit and moves it to the box.

 

실험에서 테디베어, 야구공, 물병, 비스킷의 순서로 대상 물체를 선택했다. 이 물체들을 box로 옮기는 데 소요된 평균 시간은 약 30초였다. 시간이 더 단축될 순 있었지만, 그리퍼의 안정성을 고려하여 속도를 제한하였다. 우리는 2 손가락 그리퍼를 사용하기 때문에 물체를 잡는 각도를 0~180도 사이로 지정했다. 그리퍼가 테디베어와 같이 변형 가능한 물체를 잡으려 할 때 피킨 성공률은 높았지만, 야구공과 같이 딱딱하고 미끄러운 물체에서는 실패하기도 했다. 물체의 pose 정보가 실제 값과 약간 다를 때, 물체의 낮은 마찰력으로 인해 물체가 그리퍼 밖으로 밀려났던 것이다. 

또한 로봇에 3차원 위치 제어 구조를 적용했다. 3차원 위치(x, y, z)와 1차원 방향(θ)을 이용하여 로봇을 제어했다. 하지만 정의된 경로에 특이점이 존재하기 때문에, 시행착오를 통해 상자 위치가 배치되었다. 이 문제를 해결하는 또다른 방법은 작업 공간에서 경로를 설정하고, 조인트 공간에서 각 경로를 생성하는 것이다. 공간에서 각 경로를 생성하는 방법도 있지만, 그리퍼와 로봇 사이의 충돌이 발생할 수 있기 때문에 사용하지 않았다. 

 

Experiments with a teddy bear selected as the target among the objects which were recognized.

 

위 실험에서, 테디베어는 단계별 방식으로 선택되었다. 로봇과 카메라가 분리되어 있기 때문에, 그림 7의 마지막 장면과 같이 로봇의 상태에서 다음 물체로 바로 이동할 수 있다. 

 

 

6. Conclusion

 

각각의 encoder sensor를 이용한 로봇 티칭 방식이 아닌, 사물 인식을 통한 로봇 제어는 다양한 환경에 적용할 수 있는 장점이 있다. 그 중 하나는 작업 환경이 바뀌어도 유연하게 작업할 수 있다는 점이고, 다른 하나는 사용자가 물체 이름만 선택하면 로봇에 명령을 쉽게 변경할 수 있다는 점이다. 

본 연구에서는 그리퍼(집게)와 로봇 매니퓰레이터를 결합한 물체 인식 시스템과 그립 시스템을 통합하였다. 물체의 위치를 추정하기 위해, 먼저 딥러닝 방법 중 하나인 Mask R-CNN을 사용하여 인스턴스 분할을 수행하였다. 그런 다음 분할된 결과에 간단한 알고리즘을 적용하여 물체의 posture를 결정했다. 우리는 또한 외부에 RGBD 카메라를 부착한 eye-to-hand방식을 사용하였다. 카메라를 유연하게 배치하기 위해 영상 처리와 Horn의 방법을 이용한 좌표 변환 방법을 적용했다. 단, 물체가 평면에 놓여있다고 가정하여 물체의 3차원 방향을 추정하지 않았다. 

우리는 통합 시스템을 사용하여 4가지 생활용품에 대한 쓰레기통 집기 작업을 수행하였으며, 각 항목당 평균 30초가 소요되었다. gripping 성공률은 물체마다 조금씩 달랐으며, 야구공처럼 마찰이 적고 단단한 물체는 약 50%, 곰 인형과 같이 변형이 가능한 물체는 약 90%의 성공률을 보였다. 이러한 실험을 통해 딥러닝을 활용한 물체 인식과 grasping 시스템의 통합 효과를 확인 하였다. 향후 연구 과제로는 정교한 작업을 위한 6D pose estimation을 완성하는 것을 목표로 하고 있다. 

 

 

728x90
반응형