Integrating Stereo Vision with a CNN Tracker for a Person-Following Robot
- "Integrating Stereo Vision with a CNN Tracker for a Person-Following Robot", By Bao Xin Chen, Raghavender Sahdev and John K. Tsotsos, In the 11th International Conference on Computer Vision Systems, Schezhen, China, July 10-13, 2017.
2. Related Works
Person Following Robots
[31] : 1998 년도에 초기에 연구됨. 목표 색깔과 윤곽 정보를 사용.
[34] : 색깔 기반의 추적 제어
[33] : HSV 기반의 추적 제어
=====================================
→ 모습의 변화라던가 가려진 것에 대해서 취약함!
[8,36] : Optical flow 기반 추적 제어
[37] : 엣지, 코너를 사용하여 간단한 피쳐를 사용
[4] : Pre-trained apperance model 사용
[7] : Lucas-Kanade 알고리즘 사용
[30] : SIFT 피쳐 알고리즘
[2] : HOG 피쳐 알고리즘
[25] : 키, 걸음걸이에 대한 피쳐
[6] : Selected Online Ada-Boosting
[24] : 레이저 센서 기반 (레이저를 사용하지 못하는 환경에서느 부적합. 예를 들면 병원, 학교같은 곳..)
[9,12] : Kinect 센서 기반 (실내에서 사용하기에는 부적합)
그래서 이 논문에서는 스테레오 카메라를 사용!
Object Tracking
실시간으로 객체를 추적하는 것은 person-following 로봇을 제어할 때 매우 중요하다.
[29] : MGbSA
[17] : CNN as features
[22] : Proposal Selection
[38] : deep learning
[28] : Locally Orderless tracking
=====================================
→ 이 알고리즘들은 목표하는 실시간 성능을 만족하지 못함!
다른 연구들은 연산 속도에 더 초점을 맞추었다.
[20] : Struct SVM with GPU
[41] : Structure preserving
[39] : Online Discrimination Feature Selection
[18] : Online Ada-Boosting
[5] : DS-KCF는 RGBD 이미지 시퀀스를 사용하여 극심하게 가려지는 객체를 찾아는데 아주 훌륭하 성능을 냈다. (40 fps 정도)
[14] : CNNs
[21] : pre-trained CNN는 SVM 분류기를 학습한 특징을 생성했다.
[38] : 위와 동일하게 pre-trained CNN을 사용했지만, CNN 마지막 레이어에 Naive Bayes classfier를 추가했다.
[40] : 하나의 convolutional 레이어를 사용.
[17] : pre-trained CNN 사용하여 ELDA Tracker를 향상시킴
[16] : ELDA Tracker
CNN Using RGBD Images
RGB와 스테레오 뎁스 이미지를 사용하여 CNN 모델을 학습시키는 것은 이 페이퍼의 다른 방식으로 집중하는 것이다.
[19] : RGBD CNNs on object detection
[13] : object recognition : RGB 레이어와 D 레이어를 각각 학습
[10] : RGBD 이미지를 사용하여 single stream CNN 분류를 학습
3. Approach
3.1. CNN Models with RGBSD Images
우선 생략...
3.2. Navigation of the Robot
두 가지 케이스가 존재.
(1) 이미지 상에서 사람이 보일 때
(2) 이미지 상에서 사람이 보이지 않을 때
- PID 제어기 사용
- 사람 pose으 local history를 저장하고 로봇의 local path를 계산
- 로봇은 마지막에 관측된 pose로 이동
- 4 개의 basic components 존재
- Localization of the robot
- Target Pose Estimation
- Robot following using a PID based controller
- local path planner (trajectory replication)
Robot following using a PID based controller
- 선속도와 각속도에 대해서 PID 제어를 사용
- 선속도 v는 목표 값 D : 1 m로 설정
- 각속도 w는 목표 값 X_mid : 영상 좌표의 중심으로 설정
Localization
- global coordinate frame 기준으로 로봇의 pose를 계산
- 2D 에서는 x,y, theta 요소 존재
- Wheel odometry 사용
- 피쳐가 많이 존재하지 않기 때문에 visual odometry 사용 X
- 에러 누적으로 인해 dead reckoning 또한 사용 X
Target Pose Estimation
- 사람의 pose를 계산하는 것은 뎁스 카메라와 focal length를 사용함
Trajectory Replication / Path Planner
- 사람이 보이지 않을 때, 사람을 따라가는 네비게이션 알고리즘에 대해서 설명
- 이 알고리즘은 코너에서 갑자기 꺾을 때, 혹은 야외에서 나무 근처에서 사용된다.
- 로봇은 항상 사람의 최근 p pose들의 local history를 유지한다.
- 우리는 p=100 사용했다.
- 0.5 초 동안 일시적으로 목표가 보이지 않는다면, 코너를 돌았거나 어떤 것에 의해 가려졌다고 암시한다.
- 그렇게 판단했을 때, 목표의 마지막 관측된 위치로 도달한다.
- 그 목표점에 도달했을 때, 사람이 보일 때까지 회전
- 사람이 보이지 않는다면, 종료