KR102547333B1 - 깊이 영상 기반 실시간 바닥 검출방법 - Google Patents

깊이 영상 기반 실시간 바닥 검출방법 Download PDF

Info

Publication number
KR102547333B1
KR102547333B1 KR1020200137127A KR20200137127A KR102547333B1 KR 102547333 B1 KR102547333 B1 KR 102547333B1 KR 1020200137127 A KR1020200137127 A KR 1020200137127A KR 20200137127 A KR20200137127 A KR 20200137127A KR 102547333 B1 KR102547333 B1 KR 102547333B1
Authority
KR
South Korea
Prior art keywords
cells
floor
plane
cell
depth image
Prior art date
Application number
KR1020200137127A
Other languages
English (en)
Other versions
KR20220052784A (ko
Inventor
김동규
Original Assignee
(주)베라시스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)베라시스 filed Critical (주)베라시스
Priority to KR1020200137127A priority Critical patent/KR102547333B1/ko
Publication of KR20220052784A publication Critical patent/KR20220052784A/ko
Application granted granted Critical
Publication of KR102547333B1 publication Critical patent/KR102547333B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • G06T7/596Depth or shape recovery from multiple images from stereo images from three or more stereo images
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Optics & Photonics (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 깊이영상 기반 실시간 바닥 검출 방법에 관한 것으로, 일정 공간내에 위치한 사물들을 촬영할 수 있도록 TOF(Time Of Flight) 카메라가 장착된 상태에서, TOF 카메라 영상으로부터 ROI 영역에서 깊이영상 기반 실시간 바닥 검출 방법은, 바닥 탐색 영역 설정 후 깊이 이미지(image)를 셀(cell)로 분할하는 단계, 이미지 셀(cell)을 NDT(Normal Distribution Transformation) 적용 후 고유값(eigen value)을 이용하여 평면여부를 판단하는 단계, 바닥 기준에 근접한 셀(cell)들만 후보군 셀(cell)로 추출하는 단계, 셀(cell)이 최소후보 셀(cell)수보다 큰지를 판단하는 단계, 만약, 상기 판단 단계에서, 셀(cell)이 최소후보 셀(cell)수보다 작으면 바닥평면 없음으로 판단하며, 만약, 상기 판단 단계에서, 셀(cell)이 최소후보 셀(cell)수보다 크면, 셀(cell) 기반 RANSAC으로 바닥 모델링 하는 단계, 및 후보군 셀(cell)이외의 거리 기준 인라이어(inlier)를 추가하는 단계를 포함한다.

Description

깊이 영상 기반 실시간 바닥 검출방법{Depth Image based Real-time ground detection method}
본 발명은 깊이 영상 기반 실시간 바닥 검출방법에 관한 것으로, 더욱 상세하게는, 깊이 영상 기반의 노이즈에 강인하면서도 실시간으로 실행될 수 있도록 적은 연산량을 가지는 깊이 영상 기반 실시간 바닥 검출방법에 관한 것이다.
모노카메라 컬러영상에서의 객체 정보는 정확한 거리정보를 얻을 수 없다. 왜냐하면, 3차원 실세계(3D Real world)의 배경과 객체에서 반사된 빛이 카메라 이미지 센서에 부딪히면서 얻어지는 이미지에는 깊이라고 하는 차원이 하나 줄어들어 많은 정보가 소실된다.
그래서 이미지로부터 거리정보를 얻기 위해서는 카메라 캘리브레이션이 선행되어야 한다. 실세계(Real world)에서의 점이 카메라 렌즈를 통해서 굴절되고 센서에 부딪혀서 얻은 이미지의 x, y 좌표에 대응하는지를 알기 위한 캘리브레이션으로도 스케일 팩터(scale factor)는 얻을 수 없기 때문에 또 다른 특정한 조건을 만족하여야 얻을 수 있다. 객체가 땅에 붙어있고 땅은 평평한 조건이거나, 또는 객체의 실제 크기를 알고 있거나 하는 등의 정보이다.
깊이 정보를 얻는 센서는 라이다, 스테레오 카메라를 이용한 이미지 정합, TOF 카메라 등이 있다. 비행시간거리측정(TOF:Time Of Flight) 카메라는 일반 카메라와 비슷하게 m x n의 픽셀 수를 가지고 각각의 픽셀이 색상이나 밝기가 아닌, 카메라로부터의 거리값을 가진다. 객체를 검출하고 정보를 얻기 위해서 바닥영역을 먼저 검출하고 제거한 뒤에 남아있는 거리 데이터들을 가공하고 그룹화하여 검출해야 할 것이다.
3D point cloud의 데이터는 3D Real world 좌표계로 환산하면 x, y, z의 값을 가진 데이터인데 이를 가공하기 위해서 다른 지점(point)들과의 거리값을 계산하고 연관관계를 따져야 하고, 이는 많은 연산량을 필요로 한다.
또한, 태생적으로 3D point cloud들이 가지는 노이즈의 영향을 많이 받아 알고리즘을 적용하기 힘든 측면이 있다.
영상 기반 거리 검출
모노카메라 단일 이미지로는 정확한 거리를 알 수 없다. 일반적으로 스테레오 카메라를 이용하여 동시에 촬영된 이미지와 스테레오 카메라의 기하학 구조를 이용하여 거리를 측정할 수 있다. 이 방법은 정합에 잘려나가는 사각지대가 존재하고, 거리가 멀수록 정확도가 떨어진다. 하지만 영상만으로 거리를 측정해낼 수 있다는 장점이 있다. 물체의 실제크기를 알고 있는 경우 카메라 왜곡이 없을 때, 간단한 비례식으로 구할 수 있다.
영상기반 거리측정으로 얻어진 깊이영상과, TOF 카메라로부터 얻어진 깊이영상은 원론적으로 같은 의미를 지닌다. 둘 다 pixel이 색상과 밝기정보가 아닌 깊이 값을 가진 부분은 같고, 이 값을 구하기 위해 사용된 기술의 성능과 특성차이가 존재할 뿐이다.
깊이 영상 기반 바닥검출
깊이 영상의 정의
깊이 영상은 카메라 영상에서 픽셀(pixel)이 색상과 밝기정보가 아닌 깊이 값을 가진 영상을 말한다. 일반적으로 깊이 값은 무지개색상과 같이 표현되어 색상정보처럼 보일 수 있으나 실제로는 거리값을 한눈에 볼 수 있도록 거리를 색상에 대응하여 나타낸 것이다. 깊이 영상은 pixel 하나가 거리와 대응되는데 단순하게 깊이 영상의 x, y위치와 거리값만을 가지고 계산하기에는 어려움이 따른다. 그렇기에 거리값을 실제 3D Real world상의 좌표로 변환하는 과정이 필요하다. TOF 카메라도 카메라 특성을 따르기 때문에 이를 이용하여 거리값을 실제 3D Real world 좌표계로 변환할 수 있다.
3D point cloud에 관한 연구
3D point cloud에서 모든 점들이 바닥의 구성요소가 아니기 때문에 이를 고려하여 바닥을 검출해야 한다. 또한, 3D point cloud는 점의 수도 많고, 데이터도 실수형태의 데이터가 X, Y, Z형태로 들어가 있어서 데이터량이 많으므로 각각의 점 자체를 이용하기 보다 real world의 공간을 3D grid로 나누고 그 안의 3d point들의 분포를 분석, voxel로 표현하여 효율적으로 관리하는 방법이 연구되고 있다. 3D point cloud가 존재하는 real world 공간을 나누기 위해서는 TOF 깊이영상 1장이 아닌 SLAM(Simultaneous Localization and Mapping)과 같은 알고리즘을 이용하여 여러 깊이 정보를 누적 정합시킨 지도에서 적용하는 것이 적합하다.
3D point cloud와 RANSAC(RANdomSAmple Consensus) 알고리즘을 이용하여 바닥평면을 모델링 할 수 있다. Point 3개를 추출하여 점 3개를 이용한 평면의 방정식으로 평면의 법선벡터를 계산하여 바닥평면을 모델링 한다. 그리고 다른 point들의 consensus를 카운트하여 최대값을 갱신하는 방향으로 모델링과 consensus를 반복한다. Consensus를 확인하는 과정에서 평면과의 거리정보를 이용하지만 이는 point들의 숫자가 많아 연산량이 높다. 그리고 모델링(modeling)을 할 때, 3 point 선택시에도 문제점이 있는데, 3d point cloud의 정보는 일반적으로 노이즈가 포함되어 있고, 이 노이즈는 예측불가라고 한다. 이 노이즈가 포함된 3개의 point들을 뽑아 추출할 시 바닥이 살짝 기울어지게 되면 consensus 계산할 때, 실제 인라이어(inlier)도 아웃라이어(outlier)로 판단되어 제외되는 경우가 많다. 노이즈로 인한 잘못된 모델링은 많은 iteration의 필요성을 야기시켜 연산량의 증가로 이어지게 된다.
카메라 캘리브레이션은
3D real world의 좌표계의 한 점이 카메라 렌즈를 통과하여 이미지센서에투영되면서 이미지 space의 u, v로 변환되는 것을 기하학적으로 기술한 것이다.
RANSAC은
노이즈와 같은 outlier들이 포함된 데이터셋으로부터 모델 파라미터를 예측하는 방법이다. 데이터 일부를 랜덤(Random)하게 Sample하여 모델을 만들고 이 모델을 지지(consensus)하는 데이터들의 수를 카운트하여 높은 지지를 가진 모델을 얻는 방법이다. 이를 반복적으로 수행하여 inlier와 outlier의 비율을 알 때, 알고리즘의 성공확률을 알 수 있다.
RANSAC의 장점은 이론적으로 outlier를 제외한 inlier들로 이루어진 파라미터 모델을 얻을 수 있다.
RANSAC의 단점은 반복횟수에 있고 얻어진 결과가 최적이 아닐 가능성이 존재한다. Outlier가 많을수록 많은 반복이 필요하다. 단 하나의 모델만 얻을 수 있다.
NDT
논문: 리모트 센싱(Remote Sens. 2017,9,433;doi:10.3390/rs9050433 www.mdpi.com/journal/remotesensing, Article: 정규분포변환 셀에 기초한 3차원 클라우드 평면 세그멘테이션을 위한 개선된 RANSAC(An Improved RANSAC for 3D Point Clould Plane Segmentation Based on Normal Distribution Transformation Cells))
위 논문에서 3d point cloud map을 3차원 실세계(3D real world)에서 공간분할하여 NDT를 적용 후 평면 셀(cell) 판단을 한다. 평면 모델을 최적화를 통해 피팅(fitting) 시킨다.
NDT는 Normal Distribution Transformation의 약자로 정규 분포 변환이라고 해석될 수 있다. 3D real world의 데이터를 NDT 변환을 하여 공분산을 구할 수 있다. 공분산은 데이터의 분포와 상관관계를 나타내준다. 2차원에서의 공분산은 타원의 형태를 가지고 3차원에서는 타원체 형태의 모양을 가지게 된다(도 1은 공분산과 eigen vector, eigen value를 나타낸 도면이다).
[선행기술문헌]
1. 논문: 리모트 센싱(Remote Sens. 2017,9,433;doi:10.3390/rs9050433 www.mdpi.com/journal/remotesensing, Article: 정규분포변환 셀에 기초한 3차원 클라우드 평면 세그멘테이션을 위한 개선된 RANSAC(An Improved RANSAC for 3D Point Clould Plane Segmentation Based on Normal Distribution Transformation Cells))
2. 대한민국 공개특허공보 제10-2015-0109868호(2015.10.02.공개)(발명의 명칭: 깊이정보를 사용한 바닥영역 처리방법과 이를 위한 처리장치 및 프로그램을 기록한 컴퓨터 판독 가능 기록 매체)
본 발명의 목적은 상기한 바와 같은 종래의 실정을 감안하여 제안된 것으로, 깊이 영상 기반의 노이즈에 강인하면서도 실시간으로 실행될 수 있도록 적은 연산량을 가지는 깊이 영상 기반 실시간 바닥 검출방법을 제공하는데 있다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따르면,
일정 공간내에 위치한 사물들을 촬영할 수 있도록 TOF(Time Of Flight) 카메라가 장착된 상태에서, TOF 카메라 영상으로부터 ROI 영역에서 깊이영상 기반 실시간 바닥 검출 방법은,
바닥 탐색 영역 설정 후 깊이 이미지(image)를 셀(cell)로 분할하는 단계,
이미지 셀(cell)을 NDT(Normal Distribution Transformation) 적용 후 고유값(eigen value)을 이용하여 평면여부를 판단하는 단계,
바닥 기준에 근접한 셀(cell)들만 후보군 셀(cell)로 추출하는 단계,
셀(cell)이 최소후보 셀(cell)수보다 큰지를 판단하는 단계,
만약, 상기 판단 단계에서, 셀(cell)이 최소후보 셀(cell)수보다 작으면 바닥평면 없음으로 판단하며,
만약, 상기 판단 단계에서, 셀(cell)이 최소후보 셀(cell)수보다 크면, 셀(cell) 기반 RANSAC으로 바닥 모델링 하는 단계, 및
후보군 셀(cell)이외의 거리 기준 인라이어(inlier)를 추가하는 단계를 포함하고,
상기 셀 기반 RANSAC으로 바닥 모델링 하는 단계는
삭제
후보군 셀(cell)의 평균(mean)값으로 3개의 셀(cell) 랜덤 선택 후 바닥 평면 모델링하는 단계,
후보군 셀(cell)들과의 평면각도, 거리 계산 후 인라이어 셀(inlier cell) 조건을 판단하는 단계,
이후, 컨센서스(Consensus)(지지) 카운트가 최대 카운트(MAX COUNT)보다 큰지를 판단하는 단계,
상기 판단 단계에서, 컨센서스(Consensus)(지지) 카운트가 최대 카운트(MAX COUNT)보다 크면,
베스트 모델(Best model)로 판단하여, 인라이어 셀(inlier cell)을 갱신하는 단계,
베스트 모델(Best model)의 인라이어(inlier) 비율이 95% 이상인지를 판단하는 단계,
상기 단계에서, 베스트 모델(Best model)의 인라이어(inlier) 비율이 95% 이상이면, RANSAC 반복(Iteration)을 탈출하는 단계,
상기 단계에서, 베스트 모델(Best model)의 인라이어(inlier) 비율이 95% 이상이 아니면, 최대(MAX) 반복(Iteration)인지를 판단하는 단계,
상기 단계에서, 최대(MAX) 반복(Iteration)이면, RANSAC 반복(Iteration)을 탈출하는 단계를 수행하고,
셀(Cell) 안에 데이터가 3/4 이상 존재하는 경우만 NDT를 계산하며,
3/4 기준은 센서의 성능에 따라 다르게 설정할 수 있고.
이 기준으로 NDT 계산을 위한 cell들을 걸러내며,
깊이 영상의 한 pixel의 값이 단순하게 카메라로부터의 거리로만 표현되어 있다면 카메라 캘리브레이션 정보를 이용하여 3D Real world값이고,
3축 직교좌표계인 X, Y, Z로 변환한 뒤 NDT를 진행하고,
3차원의 점 집합의 위치 평균값 m과 3 by 3 형태의 공분산 행렬을 구하고,
이 공분산 행렬에 대한 고유값(eigen value)와 고유벡터(eigen vector)를 구하고,
고유벡터는 3가지가 나오게 되는데 이 3개의 고유벡터는 서로 수직인 주성분 벡터이고, 3축의 방향을 가지며, 고유값은 고유벡터 각각의 크기를 말해주고,
고유값들의 크기로 데이터의 공분산 형태가 원반형태를 띄는지 판단할 수 있고, 고유벡터의 값으로 기준 바닥 평면의 방정식을 이용하여 기준 바닥 평면과의 각도를 계산하고,
각 cell들의 eigen value인 λ1,λ2,λ3를 크기가 큰 순으로 정렬하여 λ1> λ2> λ3로 만들고,
λ1>λ3 ×5 이고 λ2>λ3 ×5을 만족할 때, 공분산의 형태가 평면에 해당한다고 판단하고,
평면으로 판단된 cell은 기준 바닥 평면과의 각도를 계산하고,
평면 2개의 각을 구할 때, 법선벡터들을 이용한 벡터의 내적으로 각도를 구하고,
이 각도의 크기가 +20도 미만일 때 바닥 평면 후보군 cell의 List에 추가하고, 이 조건을 만족하지 못한다면 평면에 해당하는 cell이지만, 바닥 후보군 평면에는 들어가지 못하도록 하는 것을 특징으로 하는 깊이영상 기반 실시간 바닥 검출 방법이 제공된다.
삭제
또한, 2차원에서 데이터 군집의 공분산의 고유 벡터(eigen vector)는 분포가 가장 작고, 가장 큰 2축의 방향을, 고유값(eigen value)는 축의 크기를 나타내며, 2축은 직교하고, 3차원에서 데이터 군집의 공분산의 고유 벡터(eigen vector)는 타원체의 3축 방향을, 고유값(eigen value)는 각 축의 크기를 나타내고 3개의 축은 서로 직교하는 형태를 띄며, 이 축의 방향과 크기를 이용하여 데이터의 분포가 평면에 해당하는지 선에 해당하는지, 아닌지 구분할 수 있도록 된 것을 특징으로 한다.
본 발명의 다른 측면에 따르면, 일정 공간내에 위치한 사물들을 촬영할 수 있도록 TOF(Time Of Flight) 카메라가 장착된 상태에서, TOF 카메라 영상으로부터 ROI 영역에서 깊이영상 기반 실시간 바닥 검출 방법은,
TOF 카메라로부터 깊이 영상을 수신하는 제1 단계,
일정 크기의 이미지에서 하단부분의 ROI영역을 설정하는 제2 단계,
일정 크기의 ROI 영역을 일정크기의 정사각형 픽셀 그리드(grid)로 분할하는 제3 단계,
위 단계를 통과한 각각의 셀(cell)들을 NDT(Normal Distribution Transformation)을 사용해서 공분산을 구하고, 타원체 형태의 공분산 매트릭스(matrix)의 고유값(eigen value)와 고유벡터(eigen vector)를 계산하는 제4 단계,
위의 절차를 통과한 후보군 평면 셀(cell)들이 평면을 계산하기에 충분한 셀(cell)이 있는지 판단하는 제5 단계,
바닥 평면 후보군 셀(cell) 집합 중에서 3개를 추출하는 제6 단계,
이 셀(Cell) 안에 포인트(point)집합들의 평균값을 이용하여 3개의 점을 만들고 이를 이용하여 평면을 모델링하고 법선벡터를 계산하는 제7 단계,
평면의 방정식이 RANSAC에서의 모델이 되어 바닥 평면 후보군 cell들을 검사하되, 바닥 모델과 cell이 이루는 각도가 ±10도 이내여야 하며, 둘의 거리는 5cm 이하이어야 컨센서스(Consensus)(지지) 카운트로 인라이어(Inlier)에 추가하는 제8 단계,
상기 제8단계 이후에, 마지막으로 ROI내에 현재 바닥 모델의 인라이어 셀(inlier cell)이 아닌 다른 모든 셀들을 거리 기준으로 검사하여 5cm 이내의 거리를 가지고 있으면 이들 또한 바닥으로 인라이어(inlier)로 추가하는 제 9단계를 더 포함하고,
셀(Cell) 안에 데이터가 3/4 이상 존재하는 경우만 NDT를 계산하며,
3/4 기준은 센서의 성능에 따라 다르게 설정할 수 있고.
이 기준으로 NDT 계산을 위한 cell들을 걸러내며,
깊이 영상의 한 pixel의 값이 단순하게 카메라로부터의 거리로만 표현되어 있다면 카메라 캘리브레이션 정보를 이용하여 3D Real world값이고,
3축 직교좌표계인 X, Y, Z로 변환한 뒤 NDT를 진행하고,
3차원의 점 집합의 위치 평균값 m과 3 by 3 형태의 공분산 행렬을 구하고,
이 공분산 행렬에 대한 고유값(eigen value)와 고유벡터(eigen vector)를 구하고,
고유벡터는 3가지가 나오게 되는데 이 3개의 고유벡터는 서로 수직인 주성분 벡터이고, 3축의 방향을 가지며, 고유값은 고유벡터 각각의 크기를 말해주고,
고유값들의 크기로 데이터의 공분산 형태가 원반형태를 띄는지 판단할 수 있고, 고유벡터의 값으로 기준 바닥 평면의 방정식을 이용하여 기준 바닥 평면과의 각도를 계산하고,
각 cell들의 eigen value인 λ1,λ2,λ3를 크기가 큰 순으로 정렬하여 λ1> λ2> λ3로 만들고,
λ1>λ3 ×5 이고 λ2>λ3 ×5을 만족할 때, 공분산의 형태가 평면에 해당한다고 판단하고,
평면으로 판단된 cell은 기준 바닥 평면과의 각도를 계산하고,
평면 2개의 각을 구할 때, 법선벡터들을 이용한 벡터의 내적으로 각도를 구하고,
이 각도의 크기가 +20도 미만일 때 바닥 평면 후보군 cell의 List에 추가하고, 이 조건을 만족하지 못한다면 평면에 해당하는 cell이지만, 바닥 후보군 평면에는 들어가지 못하도록 하는 것을 특징으로 하는 깊이영상 기반 실시간 바닥 검출 방법이 제공된다.
또한, 상기 제8 단계에서의 두 조건 중 하나라도 벗어난다면 인라이어(inlier)에서 제외하고, 현재 바닥 모델이 기존의 가장 많은 지지를 얻은 바닥모델보다 컨센서스(Consensus)(지지)가 높다면 베스트 모델(best model)을 현재모델로 대체하고, 인라이어(inlier list)도 갱신하며, 이를 최대(Max) 반복(iteration) 수까지 반복하고, 반복 도중 모델에 대한 바닥 평면 후보군 셀(cell)들의 컨센서스(consensus)(지지) 비율이 95%를 넘어간다면, 더 이상 반복하지 않은 채 RANSAC 알고리즘을 종료하는 것을 특징으로 한다.
삭제
삭제
또한, 상기 깊이 영상 셀(cell)은 3차원 실세계(3D Real world)공간의 데이터들중에서 깊이 영상 셀(cell)기준으로 군집한 것을 특징으로 하며,
이미지 셀(Image cell) 기반으로 NDT 알고리즘 처리 후 평면을 판단하고, 작은 후보군 안에서 RANSAC으로 모델링하는 것을 특징으로 한다.
이상 설명한 바와 같이, 본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법에 의하면, 깊이 영상 기반의 노이즈에 강인하면서도 실시간으로 실행될 수 있도록 적은 연산량을 가지는 효과가 있다.
또한, 본 발명에 따르면, 이 부분에서 셀(cell)단위가 아닌 픽셀(pixel)단위의 접근을 하지는 않았지만 한다면, 더 세밀한 부분까지 바닥 영역으로 검출할 수 있다. 픽셀(Pixel)들을 이미지 셀(image cell)기반 NDT 평면형태로 검사하였기 때문에 대부분의 평면에 해당하는 데이터들은 포함되어 있다. 즉 검사해야 할 point 수 자체가 적다는 것이다. 또한, 바닥 평면 모델(model)에 포함된 셀(cell)근방의 인접 영역만 검사하는 것이기 때문에 연산량의 부담도 적다. 바닥 평면의 가장자리부분의 잔여 point pixel만을 추가하는 것이므로, best model 평면과의 거리를 이용하여 추가할 수 있다.
도 1은 공분산과 고유벡터(eigen vector), 및 고유값(eigen value)를 나타낸 도면으로서, 2차원에서의 공분산은 타원의 형태를 가지고 3차원에서는 타원체 형태의 모양을 가지게 되는 것을 나타낸 도면이다.
도 2는 본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법에서의 바닥 검출과정의 일예를 순차적으로 나타낸 흐름도이다.
도 3 및 도 4는 일반적인 포인트 기반 RANSAC 바닥 검출방법의 결과 화면들을 나타낸 도면들이다.
도 5는 깊이 영상 이미지를 나타낸 도면이다.
도 6은 본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법을 실행하기 위한 초기 영상의 일예를 나타낸 도면이다.
도 7은 본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법의 실행영상의 일예를 나타낸 도면이다.
이하 본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법을 첨부도면을 참조로 상세히 설명한다.
도 2는 본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법에서의 바닥 검출과정의 일예를 순차적으로 나타낸 흐름도이고, 도 3 및 도 4는 일반적인 포인트 기반 RANSAC 바닥 검출방법의 결과 화면들을 나타낸 도면들이고, 도 5는 깊이영상 이미지를 나타낸 도면이고, 도 6은 본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법을 실행하기 위한 초기 영상의 일예를 나타낸 도면이고, 도 7은 본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법의 실행영상의 일예를 나타낸 도면이다.
본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법에 따르면,
이미지 공간에서 셀(cell)로 분할되어 하나의 셀(cell)안에 포함된 3차원 실세계(3D Real world)의 점 데이터들의 집합의 공분산을 계산하여, 점들이 퍼져있는 형태가 평면의 형태인지 아닌지를 판단하게 된다. 또한, 2차원에서 데이터 군집의 공분산의 고유 벡터(eigen vector)는 분포가 가장 작고, 가장 큰 2축의 방향을, 고유값(eigen value)는 축의 크기를 나타낸다. 2축은 직교한다. 3차원에서 데이터 군집의 공분산의 고유벡터(eigen vector)는 타원체의 3축 방향을, 고유값(eigen value)는 각 축의 크기를 나타내고, 3개의 축은 서로 직교하는 형태를 띈다. 이 축의 방향과 크기를 이용하여 데이터의 분포가 평면에 해당하는지 선에 해당하는지,아닌지 구분할 수 있다.
본 발명에 따르면, 목표는
TOF 카메라로부터 얻어진 320x240 깊이 영상 스틸샷으로 사용한다.
3D point cloud데이터를 누적한 맵 형태의 데이터가 아닌 스틸샷 한장을 사용한다.
설치 위치와 자세는 대략적으로 알고 있는 상태(평면을 찾는 것이 아닌 바닥 검출이기 때문에)이다.
실시간 로버스터 알고리즘(Real-time & Robust Algorithm)
실시간(Real-time)-->point간의 거리 정보를 계산해야 하는 것에서 point묶음 cell단위 계산이라 RANSAC알고리즘 사용 시 최대 반복횟수를 줄이고, voting 판단을 위한 비교해야 하는 수도 줄어서 실시간 처리 가능하다.
Robust-->3D point cloud에는 예측 불가능한 노이즈가 끼기 때문에 point 데이터를 그대로 사용하여 모델링을 할 때, 오차가 포함된 결과가 나타나게 된다. Cell 단위로 묶게 되어서 cell이 평면형태를 이루는지 아닌지 판단하여 평면이 아닌 cell들은 바닥 모델링을 위한 재료에서 제외된다. 근접한 물체에 point들이 찍히면 원거리보다 개수가 많아지고 단순 point 거리기준 voting시 영향을 많이 받아 실제 바닥이 아닌 모델이 검출되기도 하는 문제를 cell 단위로 처리할 경우 해결이 가능하다.
본 발명에서는 깊이 영상을 이용한 cell 기반 RANSAC 알고리즘이 사용되고, 추출된 모델에 평면에 가까운 inlier 추가된다.
도 2는 본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법에서의 바닥 검출과정의 일예를 순차적으로 나타낸 흐름도로서,
도 2를 참조하여, 알고리즘 프로세서(Algorithm Process)을 간단히 설명한다.
본 발명에서 TOF 카메라가 일정 공간에 장착된 상태에서, TOF 카메라의 이미지로부터 설정된 ROI(관심) 영역에서 깊이 이미지(혹은 영상 이라 함) 기반 실시간으로 바닥을 검출한다.
먼저, 바닥 탐색 영역 설정후 깊이 이미지를 셀(cell)로 분할한다(S2).
이후, 이미지 셀(cell)을 NDT 알고리즘 적용 후 고유값(eigen value)을 이용하여 평면여부를 판단한다(S4). 한편, 상기 NDT 알고리즘은 공간 분할용으로 맵(map)기반으로 제안된 것이다. 예를 들어 라이다(ridar)는 도로 맵(map)기반 기술로 소개되고 있다.
이후, 바닥 기준에 근접한 셀(cell)들만 후보군 셀(cell)로 추출한다(S6).
이후, 셀(cell)이 최소후보 셀(cell)수보다 큰지를 판단한다(S8).
만약, 상기 단계 S8에서, 셀(cell)이 최소후보 셀(cell)수보다 작으면 바닥평면 없음으로 판단한다(S7).
만약, 상기 단계 S8에서, 셀(cell)이 최소후보 셀(cell)수보다 크면,
셀(cell) 기반 RANSAC(알고리즘)으로 바닥 모델링 한다(S10). 단계 S10까지 진행하면 도 7과 같이 이미지가 표시된다.
이후, 후보군 셀(cell)이외의 거리 기준 인라이어(inlier)를 추가한다(S12).
상기 단계들의 처리를 위한 깊이영상 기반 실시간 바닥 검출 프로그램 저장부(미도시)에서,
이미지 분할처리부(미도시)에서, 바닥 탐색 영역 설정후 깊이 이미지를 셀(cell)로 분할처리한다.
평면판단부(미도시)에서, 이미지 셀(cell)을 NDT 알고리즘 적용 후 고유값(eigen value)을 이용하여 평면여부를 판단한다
후보군 추출부(미도시)에서 바닥 기준에 근접한 셀(cell)들만 후보군 셀(cell)로 추출한다.
셀 판단부(미도시)에서 셀(cell)이 최소후보 셀(cell)수보다 큰지를 판단한다.
상기 셀 판단부는 만약, 상기 단계 S8에서, 셀(cell)이 최소후보 셀(cell)수보다 작으면 바닥평면 없음으로 판단한다.
또한, 상기 셀 판단부는 만약, 상기 단계 S8에서, 셀(cell)이 최소후보 셀(cell)수보다 크면,
셀(cell) 기반 RANSAC(알고리즘)으로 바닥 모델링 한다.
인라이어 추가부(미도시)에서는 후보군 셀(cell)이외의 거리 기준 인라이어(inlier)를 추가한다.
한편, 셀(cell) 기반 RANSAC 바닥 모델링과정은 셀 기반 RANSAC으로 바닥 모델링 프로그램(미도시)에 의해 수행된다. 즉, 후보군 셀(cell)의 평균(mean)값으로 3개의 셀(cell) 랜덤 선택 후 바닥 평면 모델링하고,
후보군 셀(cell)들과의 평면각도, 거리 계산 후 인라이어 셀(inlier cell) 조건을 판단하고,
이후, Consensus(지지) 카운트가 최대 카운트(MAX COUNT)보다 큰지를 판단하고,
컨센서스(Consensus)(지지) 카운트가 최대 카운트(MAX COUNT)보다 크면, 베스트 모델(Best model), 인라이어 셀(inlier cell)을 갱신하도록 제어하고,
이후, Best model의 인라이어(inlier) 비율이 95% 이상인지를 판단하고,
Best model의 인라이어(inlier) 비율이 95% 이상이면, RANSAC 반복(Iteration)을 탈출하도록 제어하고,
상기 단계에서, Best model의 인라이어(inlier) 비율이 95% 이상이 아니면, MAX Iteration인지를 판단하고,
상기 단계에서, MAX 반복(Iteration)이면, RANSAC 반복(Iteration)을 탈출하도록 제어한다.
도 3 및 도 4는 일반적인 포인트 기반 RANSAC 바닥 검출방법을 나타낸 도면으로서, 도 3을 참조하면, 단순하게 RANSAC으로 모델링된 평면 방정식과 포인트(point)와의 거리만을 계산한 방법이라서 세로로 세워진 파티션 부분도 RANSAC 모델링의 인라이어(Inlier)로 동작한다.
도 4를 참조하면, 도 3의 경우와 유사하지만, 실제 바닥영역이 검출되는 경우를 나타낸 것이다(바닥영역이 책상영역보다 넓기 때문). 도 4에서 바닥부분 검출이 잘된 경우를 나타낸다.
RANSAC의 문제점은 RANSAC은 아웃라이어를 제외한 강인한 모델을 만들 수 있다는 장점이 있지만, 일반적으로 사용되는 3d point cloud 데이터를 이용한 RANSAC기반 바닥 검출에는 도 3 처럼 잘못된 결과가 나올 수 있고, 세로 벽면의 아웃라이어(outlier)를 걸러내지 못하는 문제점이 있다. 그 이외에도 많은 반복횟수를 필요로 하여 실시간 처리가 안되는 단점이 있다.
도 5는 TOF 카메라로 접수한 일반적인 깊이 영상 사진을 나타낸다.
도 6은 본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법을 실행하기 위한 초기 영상의 일예를 나타낸 도면이다.
도 6을 참조하면, 320*240 이미지 중에서 설치위치를 고려한 ROI 영역과 ROI 영역 내에 10 by 10 픽셀로 분할된 상태를 나타낸다.
본 발명에서는 실시간으로 데이터를 얻어서 사용할 수 있다.
도 7은 본 발명에 따른 깊이 영상 기반 실시간 바닥 검출방법의 실행영상의 일예를 나타낸 도면이다.
도 7을 참조하면, ROI 영역 내에 NDT 변환 후, RANSAC 바닥 평면 인라이어(Inlier)를 표시한 것으로서, 흰색 부분은 인라이어(inlier) 바닥 검출부분이고, 회색 부분은 마지막에 추가된 바닥 평면 후보군이 아니었던 인라이어(inlier)이고(단계 S12 참조),
하늘색 부분은 RANSAC best model시에 선택된 3개의 셀(cell)을 나타내고(하늘색 부분의 갯수는 매번 바뀌게 된다), 작은 원부분은 평면이 아닌 영역을 나타낸다.
상기 단계 S12 과정에서 바닥 평면이 표시되게 되면, 이 바닥표시 데이터가 유용하게 사용될 수 있다. 왜냐하면, 전체 이미지에서 오브젝트(object)(예, 서 있는 사람)가 중요하기 때문에 오브젝트를 확실하게 인식하려면 바닥데이터를 제거해야 할 필요가 있기 때문이다.
한편, 인라이어(inlier)는 실제 검출하고자 하는 모델에 부합하는 데이터라고 할 수 있으며, 아웃라이어는 검출할 때 반영되지 않아야 하는 데이터를 말한다.
본 발명에 따르면, 반복 횟수는 줄이면서 성공률은 높이는 방법 특히, 실시간으로 처리가능한 방법을 제안한다.
본 발명에서는 단계 S2, S4를 통해 연산량을 줄인다.
또한 셀기반 RANSAC으로 바닥 모델링을 수행한다(S112, S114, S116,S118,S120,S122,S124).
한편, 단계 S114는 평면이 아닐 수도 있는 영상 부분, L자 혹은 기타 노이즈가 걸러지는 과정이다.
이하 설명에서 베스트 모델을 저장하는 과정에서는 컨센서스(consensus)(지지)했던 것들의 인덱스(index)만 저장하게 된다.
본 발명의 특징
본 발명에 따르면, 먼저 카메라의 대략적인 설치 위치를 알고 있는 상태에서 진행한다. 예를 들어 자율주행 차량의 후방에 장착한다고 한다면, 설치 위치는 대략 1m부근에 설치하고, 수평선을 카메라의 중심축이 바라보도록 설치한다고 하지만, 여러가지 요인들로 인해서 자세가 바뀔 수 있다. 땅이 기울어졌거나, 설치할 때의 자세가 약간 틀어졌거나, 차량의 뒷바퀴의 바람이 빠져서 살짝 내려앉았거나 하는 등의 이유이다. 이때 설치 각도가 바닥평면 찾을 때의 기준이 될 것이다.
- TOF 카메라로부터 깊이 영상을 받는다. 깊이 영상은 320*240의 크기를 가지고 픽셀 수는 76800개이다. 카메라의 크기가 달라진다고 한다면 파라미터들 또한 그에 맞추어 바꾸면 된다.
-320*240 크기의 이미지에서 하단부분의 ROI영역을 설정한다(이는 설치 위치에 따라 바닥이 많이 보일경우, 아니면 적게 보일 경우에 따라서 조절할 수 있다).
- 320*120 크기의 ROI 영역을 10 by 10 pixel 크기의 grid로 분할한다(크기 분할도 바뀔 수 있긴 하지만, 너무 작을경우 노이즈에 의해 평면특징이 잘 추출되지 않아서 적당히 크면 좋다. 고스펙의 카메라를 사용한다면 그에 맞추어 크기를 변경해도 무방하다). 그리고 10 by 10 pixel 중에서 데이터가 존재하는 비율이 50%가 넘는 cell만 다음 절차를 진행한다. 넘지 못한 cell들은 노이즈로 크기가 너무 작거나 노이즈로 간주한다.
-위 절차를 통과한 각각의 cell들을 Normal Distribution Transformation을 사용해서 공분산을 구한다. 그리고 타원체 형태의 공분산 matrix의 eigen value와 eigen vector를 계산한다.
- 각각의 cell들의 eigen value값을 크기순으로 정렬하여 사용한다(λ1>λ2>λ3).λ1,λ2가 λ3보다 5배 이상 크면 평면으로 계산한다(이것은 센서의 정확도에 따라 달라질 수 있다. 센서의 정확도가 클수록 노이즈가 적어서 λ들의 크기 차이가 크다). 그 이후에 설치 위치에 따른 바닥 기준 평면과의 각도가 ±20도 이내일 경우에 바닥평면 후보군 cell로 남는다. 나머지는 NDT만 계산된 채로 남는다(20도 카메라의 성능이 좋으면 크기를 줄여도 된다.).
-위의 절차를 통과한 후보군 평면 cell들이 평면을 계산하기에 충분한 cell이 있는지 판단한다. 객체가 너무 가깝거나 벽을 보고 있거나 하는 등의 상황에서는 바닥면적이 보이기 어렵다. 이때에는 “바닥평면이 없다”라고 결론짓고 알고리즘을 종료한다. 만약 최소 바닥 cell 개수 기준을 넘으면 다음을 진행한다.
-바닥 평면 후보군 cell 집합 중에서 3개를 추출한다. Cell 안에 point 집합들의 평균값을 이용하여 3개의 점을 만들고 이를 이용하여 평면을 모델링하고 법선벡터를 계산한다. 평면의 방정식이 RANSAC에서의 모델이 되어 바닥 평면 후보군 cell들을 검사한다. 바닥 모델과 cell이 이루는 각도가 ±5도 또는 ±10도 또는 ±20도 이내 이어야 하며, 둘의 거리는 5cm이하 이어야 Consensus 카운트로 Inlier에 추가한다. 두 조건 중 하나라도 벗어난다면 inlier에서 제외한다. 현재 바닥 모델이 기존의 가장 많은 지지를 얻은 바닥모델보다 Consensus가 높다면 best model을 현재모델로 대체하고, inlier list도 갱신한다. 이를 Max iteration 수까지 반복한다. 반복 도중에 모델에 대한 바닥 평면 후보군 cell들의 consensus 비율이 95%를 넘어간다면, 더 이상 반복하지 않은 채 RANSAC 알고리즘을 종료한다.
-마지막으로 ROI내에 현재 바닥 모델의 inlier cell이 아닌 다른 모든 셀들을 거리 기준으로 검사하여 5cm 이내의 거리를 가지고 있으면 이들 또한 바닥으로 inlier로 추가한다.
이하, 본 발명에 따른 방법을 좀 더 자세하게 설명한다.
카메라 설치 위치, 기준평면 초기화
주로 바닥 검출은 객체 검출 이전단계에 수행되는 것으로 객체를 분리 및 처리하기 위해 사용된다. 본 특허는 1개의 바닥을 찾는 것을 목표로 한다. 그리고 이는 카메라의 설치 각도를 대략적으로 알고 있다는 가정을 한다.
필요한 정보는 바닥으로부터 카메라의 높이, 그리고 카메라의 자세값을 적용한 기준 바닥평면의 방정식이다. 예시로 약 1m, 카메라는 정면을 바라보도록 설치하였다. TOF카메라를 사용하는 환경에 따라, 장착하는 물체 혹은 위치에 따라 카메라의 기준 파라미터를 정하면 될 것이다.
평면의 방정식은 ax+by+cz+d=0이며, (a,b,c)는 평면에 대한 법선벡터를 나타낸다. 위의 조건을 적용하기 전에 real world의 좌표축인 x,y,z를 설명하면, x축은 이미지의 평면에서의 u축과 방향이 같고 평행하다, 그리고 y축은 v축과 평행하다. z축은 카메라 중심축과 평행하며 카메라의 중심축과 바라보는 방향이 같다. 이 조건대로 바닥평면의 1m, 카메라의 중심축은 바닥평면과 수평하도록 설치하고, 이미지 상에서 u축이 지평선과 수평하도록 설치한다고 한다. 그렇게 되면 바닥 평면의 방정식을 이용하여 나타낼 수 있는데 (a,b,c)는 (0,1,0)의 값을 갖는다. 수식은 1y+d=0 으로 간소화된다. 여기에서 1m 높이에 설치하였으므로, (0, 1, 0)을, x,y,z에 대입하면 d=-1이 된다. 이 부분을 이용하여 기준바닥 평면과 RANSAC으로 얻어진 후보군 평면과의 거리(카메라 위치 기준으로 계산한 거리)를 이용할 수 있겠지만, 카메라의 위치와 각도가 흔들릴 수 있어서 이를 고정으로 둘 수 없다. 또한, 본 특허에서는 카메라의 설치 위치와 각도가 정확하지 않을 수 있다는 점을 고려하기 때문에, 기준 평면 방정식과의 거리를 이용한 부분은 제외하였다. 다시 돌아와서 실제 설치 위치가 바뀌게 되거나 기준 바닥평면이 달라질 경우 기준 바닥 평면의 법선벡터를 구하여 적용하면 된다. 설치 높이가 달라진다고 하더라도 각도만 같다면, a,b,c의 값은 변하지 않는다. 그러므로 기준 평면과 바닥 후보군 cell 평면일 때, 기준 평면과 RANSAC으로 추출된 바닥 모델 평면일 때, 평면과의 평면각도 계산 시 값이 달라지지 않는다. 계산시에는 a,b,c만 이용하기 때문이다.
위와 같은 기준으로 카메라를 설치할 경우 거리가 무한대까지 측정이 가능하다면 바닥영역은 TOF 이미지 영역내의 v축의 절반을 차지하게 되어 관심영역(Region of Interest)을 320*120크기로 주었다. 이 값은 설치하는 위치와 방향에 따라 달라질 수 있다. 위에 기재한 조건대로 320*240 이미지의 하단 절반영역을 ROI로 설정하였고 이를 10 by 10 pixel 크기의 cell로 분할하였다. 일반적으로 3D Point Cloud의 데이터에는 노이즈가 있는데 너무 작은 cell로 분할할 경우 이 셀들을 NDT 변환을 하더라도 노이즈로 인해 평면특성이 나오기 어렵다. 이는 센서의 성능이 좋아 노이즈의 크기가 매우 작다면 cell의 크기가 작더라도 준수한 성능을 낼 수 있다.이는 센서의 스펙과 성능에 따라 조절해야 한다. 너무 크게 설정해버리면 굴곡진 데이터들이 하나의 cell로 대표되기 때문에, 실제 바닥영역과 차이가 발생할 수 있으므로, TOF 센서로부터 받는 영상의 크기와 데이터의 정확도에 따라 분할 크기를 조절해야 한다.
10 by 10 pixel 크기의 cell에선 100개의 3D point data가 있다. TOF 깊이 영상에서는 모든 픽셀이 데이터를 가지고 있는 것은 아니다. 너무 가깝거나 멀어서, 센서 성능의 한계 때문에, 매끄러운 표면에 빛이 반사되어 돌아오지 않거나, 흡수되는 경우 등의 이유로 데이터가 없을 수 있다. 그렇기에 종종 cell들 중에서 데이터가 비어있는 경우도 있다. 이렇게 데이터가 없는 경우에는 NDT 변환 시 cell의 공분산이 평면 형태로 계산되기가 힘들다. Cell 안에 데이터가 3/4 이상 존재하는 경우만 NDT를 계산한다. 3/4 기준은 센서의 성능에 따라 다르게 설정할 수 있다. 이 기준으로 NDT 계산을 위한 cell들을 걸러낸다. 깊이 영상의 한 pixel의 값이 단순하게 카메라로부터의 거리로만 표현되어 있다면 카메라 캘리브레이션 정보를 이용하여 3D Real world값이고, 3축 직교좌표계인 X, Y, Z로 변환한 뒤 NDT를 진행한다. NDT는 Normal Distribution Transformation의 약자로 정규 분포 변환 정도로 번역될 수 있다. 3차원의 점 집합의 위치 평균값 m과 3 by 3 형태의 공분산 행렬을 구한다. 이 공분산 행렬에 대한 고유값(eigen value)와 고유벡터(eigen vector)를 구한다. 고유벡터는 3가지가 나오게 되는데 이 3개의 고유벡터는 서로 수직인 주성분 벡터이다. 그리고 3축의 방향을 가진다. 고유값은 고유벡터 각각의 크기를 말해준다. 고유값들의 크기로 데이터의 공분산 형태가 원반형태를 띄는지 판단할 수 있고, 고유벡터의 값으로 기준 바닥 평면의 방정식을 이용하여 기준 바닥 평면과의 각도를 계산할 수 있다. 각 cell들의 eigen value인 λ1,λ2,λ3를 크기가 큰 순으로 정렬하여 λ1> λ2> λ3로 만든다. λ1>λ3 ×5 이고 λ2>λ3 ×5을 만족할 때, 공분산의 형태가 평면에 해당한다고 판단한다. 이 부분에서 실제 Real world의 3D Point Cloud 데이터들을 정사각형 형태의 cell로 공간분할을 하여 NDT를 적용한다면, 평면에서는 타원이 아닌 원반형태가 나오게 될 것이다. 맵의 크기에 따라 많은 공간분할이 필요하고, 데이터가 많이 있을 경우에 유효한 방법이나, TOF 카메라로부터 얻는 1장의 깊이 영상에는 Real world 공간분할이 적절하지 않다. 비어있는 공간도 많고, 거리가 멀어질 경우 그 공간 안에 들어있는 데이터의 숫자가 급격하게 감소하여 공분산을 구한다고 하더라도 정확도 면에서 떨어질 수 밖에 없다. Image cell 기반 NDT는 cell 안에 데이터의 수를 보장한다. 하지만 거리가 멀어질수록 원반이 아닌 타원의 형태가 나오게 되므로, λ1과 λ3, λ2와 λ3의 비교만 있고, λ1,λ2의 비교 의미는 없다.
평면으로 판단된 cell은 기준 바닥 평면과의 각도를 계산한다. 평면 2개의 각을 구할 때, 법선벡터들을 이용한 벡터의 내적으로 각도를 구한다.이 각도의 크기가 +20도 미만일 때 바닥 평면 후보군 cell의 List에 추가한다. 이 조건을 만족하지 못한다면 평면에 해당하는 cell이지만, 바닥 후보군 평면에는 들어가지 못한다. 예를들면 벽이나 박스의 겉면과 같은 것이 이에 해당한다. 여기에서 거리값의 비교는 하지 않는다. 그 이유는 설치 각도가 살짝 틀어졌을 경우 거리가 멀어질수록 해당 cell과 기준 바닥 평면과의 거리는 늘어나기 때문에 하나의 임계치로 조절할 수 없다. NDT 결과 선택된 바닥 평면 후보군 cell들의 숫자를 세어서 20개 미만일 경우에는 바닥이 없다 라고 하고 알고리즘을 끝낸다. 이 조건은 선택이며, 너무 큰 수를 조건으로 삼게 되면 바닥 검출 알고리즘이 동작하지 않을 것이고 너무 낮게 된다면 RANSAC에 의한 바닥평면 모델링 시 낮은 검출 성능을 보인다.
최소 후보 cell수를 통과한다면 RANSAC에 의한 바닥 평면 검출을 적용한다. RANSAC은 데이터 군집 중에서 임의로 데이터를 선택하여 모델을 만든 뒤 이 모델에 대한 지지수를 확인하고 이를 반복적용하여 지지수가 높은 모델을 선택하도록 하는 방법이다. Outlier가 포함된 데이터에서 Outlier들의 데이터의 영향을 줄인 강인하게 모델을 추정할 수 있지만 최적의 모델 생성을 보장하지는 못한다는 단점이 있다. RANSAC방법을 이용하여 바닥 평면 후보군 cell들 중에서 3개의 cell을 임의로 중복되지 않게 추출한다. 추출된 cell의 평균값들을 이용하여 일반적인 평면의 방정식을 계산한다. 이 세 점을 Q, R, S라고 한다면 벡터 QR, QS를 계산하고,ax+by+cz+d=0에서 a,b,c,d값을 계산한다. 계산된 수식과 모든 바닥 평면 후보군 cell의 평균값을 이용한 거리 계산과, 모델 평면과 cell 평면이 이루는 각도를 계산한다. 거리의 크기가 5CM 이하의 값을 가지고,각도의 크기가 10도 이하의 값을 가지게 된다면 지지 수에 추가하고 Inlier로 분류한다. 지지 수가 이전 best model의 count수보다 크다면, 현재 모델과 지지 수, Inlier list를 best로 갱신한다. Best 모델의 지지(Consensus)비율이 RANSAC 반복 탈출조건인 95%를 넘어가면 RANSAC 알고리즘 종료, 넘지 못하면 다시 반복한다. 여기에서 사용된 각도들과 최소 cell 수, 탈출조건 등 파라미터들은 환경에 맞추어 변동될 수 있다. RANSAC으로 바닥을 검출하는 과정에서 사용된 수식은 다음과 같다.
평면의 방정식
세 점으로 평면의 방정식을 구하기
두 평면의 각도 구하기
평면과 점 사이의 거리 구하기
RANSAC으로 추출된 best 바닥 model을 평면의 방정식 형태로 얻고난 뒤, ROI영역에 있는 모든 cell을 검사하여 Inlier에 추가한다. 이는 NDT로 평면이 아닌 형태로 나타난 cell들을 거리기준을 두고 추가하는 것이다. 예를들면 작은 돌맹이가 놓여진 공간은 평면으로 계산되진 않았지만 객체로 분류하기에는 너무나도 작기 때문에 바닥으로 추가하는 것이다. 혹은 벽이 바닥과 만나 직각으로 된 구조물이 cell들로 분류되어 이 부분도 바닥으로 추가될 수 있을 것이다.
이 부분에서 셀(cell)단위가 아닌 픽셀(pixel)단위의 접근을 하지는 않았지만 한다면, 더 세밀한 부분까지 바닥 영역으로 검출할 수 있다. 픽셀(Pixel)들을 이미지 셀(image cell)기반 NDT 평면형태로 검사하였기 때문에 대부분의 평면에 해당하는 데이터들은 포함되어 있다. 즉 검사해야 할 point 수 자체가 적다는 것이다. 또한, 바닥 평면 모델(model)에 포함된 셀(cell)근방의 인접 영역만 검사하는 것이기 때문에 연산량의 부담도 적다. 바닥 평면의 가장자리부분의 잔여 point pixel만을 추가하는 것이므로, best model 평면과의 거리를 이용하여 추가할 수 있다.
S2: 바닥 탐색 영역 설정후 깊이 영상을 셀(cell)로 분할하는 단계
S4: 셀(cell)을 NDT 적용 후 고유값(eigen value)을 이용하여 평면여부를 판단하는 단계
S6: 바닥 기준에 근접한 셀(cell)들만 후보군 셀(cell)로 추출하는 단계
S8: 셀(cell)이 최소후보 셀(cell)수보다 큰지를 판단하는 단계
S10: 셀(cell) 기반 RANSAC으로 바닥 모델링 하는 단계
S12: 후보군 셀(cell)이외의 거리 기준 인라이어(inlier)를 추가하는 단계

Claims (8)

  1. 일정 공간내에 위치한 사물들을 촬영할 수 있도록 TOF(Time Of Flight) 카메라가 장착된 상태에서, TOF 카메라 영상으로부터 ROI 영역에서 깊이영상 기반 실시간 바닥 검출 방법은,
    바닥 탐색 영역 설정 후 깊이 이미지(image)를 셀(cell)로 분할하는 단계,
    이미지 셀(cell)을 NDT(Normal Distribution Transformation) 적용 후 고유값(eigen value)을 이용하여 평면여부를 판단하는 단계,
    바닥 기준에 근접한 셀(cell)들만 후보군 셀(cell)로 추출하는 단계,
    셀(cell)이 최소후보 셀(cell)수보다 큰지를 판단하는 단계,
    만약, 상기 판단 단계에서, 셀(cell)이 최소후보 셀(cell)수보다 작으면 바닥평면 없음으로 판단하며,
    만약, 상기 판단 단계에서, 셀(cell)이 최소후보 셀(cell)수보다 크면, 셀(cell) 기반 RANSAC으로 바닥 모델링 하는 단계, 및
    후보군 셀(cell)이외의 거리 기준 인라이어(inlier)를 추가하는 단계를 포함하고,
    상기 셀 기반 RANSAC으로 바닥 모델링 하는 단계는
    후보군 셀(cell)의 평균(mean)값으로 3개의 셀(cell) 랜덤 선택 후 바닥 평면 모델링하는 단계,
    후보군 셀(cell)들과의 평면각도, 거리 계산 후 인라이어 셀(inlier cell) 조건을 판단하는 단계,
    이후, 컨센서스(Consensus)(지지) 카운트가 최대 카운트(MAX COUNT)보다 큰지를 판단하는 단계,
    상기 판단 단계에서, 컨센서스(Consensus)(지지) 카운트가 최대 카운트(MAX COUNT)보다 크면,
    베스트 모델(Best model)로 판단하여, 인라이어 셀(inlier cell)을 갱신하는 단계,
    베스트 모델(Best model)의 인라이어(inlier) 비율이 95% 이상인지를 판단하는 단계,
    상기 단계에서, 베스트 모델(Best model)의 인라이어(inlier) 비율이 95% 이상이면, RANSAC 반복(Iteration)을 탈출하는 단계,
    상기 단계에서, 베스트 모델(Best model)의 인라이어(inlier) 비율이 95% 이상이 아니면, 최대(MAX) 반복(Iteration)인지를 판단하는 단계,
    상기 단계에서, 최대(MAX) 반복(Iteration)이면, RANSAC 반복(Iteration)을 탈출하는 단계를 수행하되,
    셀(Cell) 안에 데이터가 3/4 이상 존재하는 경우만 NDT를 계산하며,
    3/4 기준은 센서의 성능에 따라 다르게 설정할 수 있고,
    이 기준으로 NDT 계산을 위한 cell들을 걸러내며,
    깊이 영상의 한 pixel의 값이 단순하게 카메라로부터의 거리로만 표현되어 있다면 카메라 캘리브레이션 정보를 이용하여 3D Real world값이고,
    3축 직교좌표계인 X, Y, Z로 변환한 뒤 NDT를 진행하고,
    3차원의 점 집합의 위치 평균값 m과 3 by 3 형태의 공분산 행렬을 구하고,
    이 공분산 행렬에 대한 고유값(eigen value)와 고유벡터(eigen vector)를 구하고,
    고유벡터는 3가지가 나오게 되는데 이 3개의 고유벡터는 서로 수직인 주성분 벡터이고, 3축의 방향을 가지며, 고유값은 고유벡터 각각의 크기를 말해주고,
    고유값들의 크기로 데이터의 공분산 형태가 원반형태를 띄는지 판단할 수 있고, 고유벡터의 값으로 기준 바닥 평면의 방정식을 이용하여 기준 바닥 평면과의 각도를 계산하고,
    각 cell들의 eigen value인 λ1,λ2,λ3를 크기가 큰 순으로 정렬하여 λ1> λ2> λ3로 만들고,
    λ1>λ3 ×5 이고 λ2>λ3 ×5을 만족할 때, 공분산의 형태가 평면에 해당한다고 판단하고,
    평면으로 판단된 cell은 기준 바닥 평면과의 각도를 계산하고,
    평면 2개의 각을 구할 때, 법선벡터들을 이용한 벡터의 내적으로 각도를 구하고,
    이 각도의 크기가 +20도 미만일 때 바닥 평면 후보군 cell의 List에 추가하고, 이 조건을 만족하지 못한다면 평면에 해당하는 cell이지만, 바닥 후보군 평면에는 들어가지 못하도록 하는 것을 특징으로 하는 깊이영상 기반 실시간 바닥 검출 방법.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서, 2차원에서 데이터 군집의 공분산의 고유 벡터(eigen vector)는 분포가 가장 작고, 가장 큰 2축의 방향을, 고유값(eigen value)는 축의 크기를 나타내며, 2축은 직교하고, 3차원에서 데이터 군집의 공분산의 고유 벡터(eigen vector)는 타원체의 3축 방향을, 고유값(eigen value)는 각 축의 크기를 나타내고 3개의 축은 서로 직교하는 형태를 띄며, 이 축의 방향과 크기를 이용하여 데이터의 분포가 평면에 해당하는지 선에 해당하는지, 아닌지 구분할 수 있도록 된 것을 특징으로 하는 깊이영상 기반 실시간 바닥 검출 방법.
  5. 일정 공간내에 위치한 사물들을 촬영할 수 있도록 TOF(Time Of Flight) 카메라가 장착된 상태에서, TOF 카메라 영상으로부터 ROI 영역에서 깊이영상 기반 실시간 바닥 검출 방법은,
    TOF 카메라로부터 깊이 영상을 수신하는 제1 단계,
    일정 크기의 이미지에서 하단부분의 ROI영역을 설정하는 제2 단계,
    일정 크기의 ROI 영역을 일정크기의 정사각형 픽셀 그리드(grid)로 분할하는 제3 단계,
    위 단계를 통과한 각각의 셀(cell)들을 NDT(Normal Distribution Transformation)을 사용해서 공분산을 구하고, 타원체 형태의 공분산 매트릭스(matrix)의 고유값(eigen value)와 고유벡터(eigen vector)를 계산하는 제4 단계,
    위의 절차를 통과한 후보군 평면 셀(cell)들이 평면을 계산하기에 충분한 셀(cell)이 있는지 판단하는 제5 단계,
    바닥 평면 후보군 셀(cell) 집합 중에서 3개를 추출하는 제6 단계,
    이 셀(Cell) 안에 포인트(point)집합들의 평균값을 이용하여 3개의 점을 만들고 이를 이용하여 평면을 모델링하고 법선벡터를 계산하는 제7 단계,
    평면의 방정식이 RANSAC에서의 모델이 되어 바닥 평면 후보군 cell들을 검사하되, 바닥 모델과 cell이 이루는 각도가 ±5도 또는 ±10도 또는 ±20도 이내 이어야 하며, 둘의 거리는 5cm이하 이어야 컨센서스(Consensus)(지지) 카운트로 인라이어(Inlier)에 추가하는 제8 단계,
    상기 제8단계 이후에, 마지막으로 ROI내에 현재 바닥 모델의 인라이어 셀(inlier cell)이 아닌 다른 모든 셀들을 거리 기준으로 검사하여 5cm 이내의 거리를 가지고 있으면 이들 또한 바닥으로 인라이어(inlier)로 추가하는 제 9단계를 더 포함하고,
    셀(Cell) 안에 데이터가 3/4 이상 존재하는 경우만 NDT를 계산하며,
    3/4 기준은 센서의 성능에 따라 다르게 설정할 수 있고,
    이 기준으로 NDT 계산을 위한 cell들을 걸러내며,
    깊이 영상의 한 pixel의 값이 단순하게 카메라로부터의 거리로만 표현되어 있다면 카메라 캘리브레이션 정보를 이용하여 3D Real world값이고,
    3축 직교좌표계인 X, Y, Z로 변환한 뒤 NDT를 진행하고,
    3차원의 점 집합의 위치 평균값 m과 3 by 3 형태의 공분산 행렬을 구하고,
    이 공분산 행렬에 대한 고유값(eigen value)와 고유벡터(eigen vector)를 구하고,
    고유벡터는 3가지가 나오게 되는데 이 3개의 고유벡터는 서로 수직인 주성분 벡터이고, 3축의 방향을 가지며, 고유값은 고유벡터 각각의 크기를 말해주고,
    고유값들의 크기로 데이터의 공분산 형태가 원반형태를 띄는지 판단할 수 있고, 고유벡터의 값으로 기준 바닥 평면의 방정식을 이용하여 기준 바닥 평면과의 각도를 계산하고,
    각 cell들의 eigen value인 λ1,λ2,λ3를 크기가 큰 순으로 정렬하여 λ1> λ2> λ3로 만들고,
    λ1>λ3 ×5 이고 λ2>λ3 ×5을 만족할 때, 공분산의 형태가 평면에 해당한다고 판단하고,
    평면으로 판단된 cell은 기준 바닥 평면과의 각도를 계산하고,
    평면 2개의 각을 구할 때, 법선벡터들을 이용한 벡터의 내적으로 각도를 구하고,
    이 각도의 크기가 +20도 미만일 때 바닥 평면 후보군 cell의 List에 추가하고, 이 조건을 만족하지 못한다면 평면에 해당하는 cell이지만, 바닥 후보군 평면에는 들어가지 못하도록 하는 것을 특징으로 하는 깊이영상 기반 실시간 바닥 검출 방법.
  6. 삭제
  7. 제 5 항에 있어서, 상기 제8 단계에서의 두 조건 중 하나라도 벗어난다면 인라이어(inlier)에서 제외하고, 현재 바닥 모델이 기존의 가장 많은 지지를 얻은 바닥모델보다 컨센서스(Consensus)(지지)가 높다면 베스트 모델(best model)을 현재모델로 대체하고, 인라이어(inlier list)도 갱신하며, 이를 최대(Max) 반복(iteration) 수까지 반복하고, 반복 도중 모델에 대한 바닥 평면 후보군 셀(cell)들의 컨센서스(consensus)(지지) 비율이 95%를 넘어간다면, 더 이상 반복하지 않은 채 RANSAC 알고리즘을 종료하는 것을 특징으로 하는 깊이영상 기반 실시간 바닥 검출 방법.
  8. 제 5 항에 있어서,
    상기 깊이 영상 셀(cell)은 3차원 실세계(3D Real world)공간의 데이터들중에서 깊이 영상 셀(cell)기준으로 군집한 것을 특징으로 하며,
    이미지 셀(Image cell) 기반으로 NDT 후 평면을 판단하고, 작은 후보군 안에서 RANSAC으로 모델링하는 것을 특징으로 하는 깊이영상 기반 실시간 바닥 검출 방법.
KR1020200137127A 2020-10-21 2020-10-21 깊이 영상 기반 실시간 바닥 검출방법 KR102547333B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200137127A KR102547333B1 (ko) 2020-10-21 2020-10-21 깊이 영상 기반 실시간 바닥 검출방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200137127A KR102547333B1 (ko) 2020-10-21 2020-10-21 깊이 영상 기반 실시간 바닥 검출방법

Publications (2)

Publication Number Publication Date
KR20220052784A KR20220052784A (ko) 2022-04-28
KR102547333B1 true KR102547333B1 (ko) 2023-06-23

Family

ID=81446850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200137127A KR102547333B1 (ko) 2020-10-21 2020-10-21 깊이 영상 기반 실시간 바닥 검출방법

Country Status (1)

Country Link
KR (1) KR102547333B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102659898B1 (ko) * 2022-11-30 2024-04-23 (주)비주얼신 모바일 단말을 이용한 3차원 발 모델 생성 방법 및 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102074929B1 (ko) * 2018-10-05 2020-02-07 동의대학교 산학협력단 깊이 영상을 통한 평면 검출 방법 및 장치 그리고 비일시적 컴퓨터 판독가능 기록매체

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101620632B1 (ko) * 2014-09-22 2016-05-12 주식회사 에스원 깊이영상 기반 노멀정보를 이용한 바닥검출 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102074929B1 (ko) * 2018-10-05 2020-02-07 동의대학교 산학협력단 깊이 영상을 통한 평면 검출 방법 및 장치 그리고 비일시적 컴퓨터 판독가능 기록매체

Also Published As

Publication number Publication date
KR20220052784A (ko) 2022-04-28

Similar Documents

Publication Publication Date Title
CN109829398B (zh) 一种基于三维卷积网络的视频中的目标检测方法
Oehler et al. Efficient multi-resolution plane segmentation of 3D point clouds
TWI536318B (zh) 深度測量之品質提升
US10521694B2 (en) 3D building extraction apparatus, method and system
JP5759161B2 (ja) 物体認識装置、物体認識方法、学習装置、学習方法、プログラム、および情報処理システム
JP6456141B2 (ja) 地図データの生成
US20140340489A1 (en) Online coupled camera pose estimation and dense reconstruction from video
US20090103773A1 (en) Smart picking in 3d point clouds
CN110807350A (zh) 用于面向扫描匹配的视觉slam的系统和方法
US8503730B2 (en) System and method of extracting plane features
US20190065824A1 (en) Spatial data analysis
EP2266074A2 (en) Registration of 3d point cloud data using eigenanalysis
US20170278258A1 (en) Method Of Detecting And Describing Features From An Intensity Image
CN111814792A (zh) 一种基于rgb-d图像的特征点提取与匹配方法
US20220148200A1 (en) Estimating the movement of an image position
CN110793441B (zh) 一种高精度物体几何尺寸测量方法及装置
KR102547333B1 (ko) 깊이 영상 기반 실시간 바닥 검출방법
CN107765257A (zh) 一种基于反射强度辅助外部校准的激光探测与测量方法
Zhang et al. Monocular vision simultaneous localization and mapping using SURF
US10223803B2 (en) Method for characterising a scene by computing 3D orientation
CN116147618B (zh) 一种适用动态环境的实时状态感知方法及系统
Yao et al. Robust surface registration using N-points approximate congruent sets
Nguyen et al. Scan profiles based method for segmentation and extraction of planar objects in mobile laser scanning point clouds
KR101980899B1 (ko) 직교 소실점을 이용한 단일 영상의 내벽 구조 검출 장치 및 방법
JP6546898B2 (ja) 3次元空間特定装置、方法、及びプログラム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant