스테레오 비전 - ADAS 애플리케이션의 도전과 기회

  • 2016년 10월호
  • 김영학 기자, yhk@elec4.co.kr
  • 글|아이쉬 듀비(Aish Dubey), ADAS, 텍사스 인스트루먼트



카메라는 고해상도로 정확한 데이터를 포착하는데 쓰이는 가장 정밀한 메커니즘이다. 카메라는 인간의 눈처럼 레이더나 초음파, 레이저 같은 다른 센서들은 포착할 수 없는 아름답고 세밀한 장면의 해상도와 세밀도, 생생함을 포착한다. 전 세계 동굴에서 발견되는 수만 년 전의 그림들은 시각과 결합된 그림과 채색이 정밀한 정보를 전달하는데 선호됐다는 증거라고 볼 수 있다[1].

일부 사람들이 기술 커뮤니티에 가장 큰 도전이 될 것이라 주장하는 다음 엔지니어링 분야는 실시간 머신 비전과 인텔리전스로 실시간 의료분석(수술로봇), 산업 머신, 자율 지능으로 운행하는 자동차 등을 들 수 있다. 본 백서는 자율 첨단운전지원시스템(Advanced Driver Assistance Systems, ADAS) 애플리케이션과 특히 카메라와 스테레오 비전이 어떻게 스스로 ‘보고 운전’할 수 있는 안전한 자율주행 자동차의 핵심인지에 초점을 맞추려 한다.
 

〈그림 1〉에는 ADAS용 카메라가 필요한 주요 애플리케이션들이 나와 있다. 일부 애플리케이션들은 전방, 후방, 측방 카메라 같은 비전 시스템만으로도 보행자 감지, 신호등 인식, 사각지대 및 차선이탈 감지 시스템의 구현이 가능하다. 지능형 어댑티브 크루즈 컨트롤(adaptive cruise control) 같은 것들은 무엇보다 시내교통, 굴곡 도로, 고속 등의 복잡한 시나리오에 대비해 레이더 데이터와 카메라 센서의 융합으로 견고하게 구현될 수 있다.

어떤 카메라가 필요한가? 

카메라가 접하게 되는 모든 현실 장면들은 3D다. 현실에서는 깊이가 서로 다른 물체들이 카메라 센서가 2D로 맵핑한 세상에서는 서로 인접한 것처럼 보일 수 있다. 〈그림 2〉는 Middlebury 이미지 데이터 세트의 사진이다[2]. 사진의 모터바이크는 사진 배경의 창고 선반보다 카메라에 2미터 가량 더 가깝다.

 

이 사진에서 지점 1과 지점 2를 자세히 보자. 배경의 빨간 상자(지점 1)는 포착된 이미지에서 모터바이크의 포크(지점 2)와 가까워 보이지만 실제로는 카메라로 부터 2미터 이상 떨어져 있다. 인간의 뇌는 2D 장면을 보고 깊이에 대한 결정을 내릴 수 있는 원근감을 가지고 있지만 자동차의 전방 카메라의 경우, 원근 분석 능력이 그렇게 쉽지 않다.

단 한 개의 센서만으로 처리와 분석이 필요한 비디오를 포착하는 경우, 이러한 시스템을 단안(외눈) 시스템이라고 하고, 두 개의 카메라가 서로 분리되어 있는 시스템을 스테레오 비전 시스템이라고 한다. 내용을 더 발전시키기 전에 〈표 1〉에서 단안 카메라 ADAS와 스테레오 카메라 시스템의 기본 속성들을 비교해보자.

 

단안 카메라 기반의 비디오 시스템도 많은 일들을 제법 잘 해낼 수 있다. 이 시스템과 분석력은 차선, 보행자, 다양한 신호등, 자동차 경로 내에 있는 다른 차량들을 괜찮은 정확도로 식별할 수 있다. 단안 시스템이 확고하거나 신뢰하기 어려워지는 부분은 싱글 카메라 센서에서 수신한 평면 2D 프레임에서 현실의 3D 뷰를 계산하는 경우다. 인간과 대부분의 동물은 두 개의 눈을 가지고 태어난다는 자연적 사실을 고려했을 때 이것은 별로 놀랄 일도 아니다.

 

이 문제를 좀 더 자세히 분석해보기 전에, 〈그림 3>을 살펴보자. 이 그림은 카메라 센서에서 받은 비디오(이미지) 프레임을 분석하는데 쓰이는 프로세스와 알고리즘을 하이 레벨에서 설명하고 있다.

<그림 3〉의 첫 번째 단계는 이미지 사전 처리 단계다. 이 단계에서 센서 노이즈와 그 밖의 불필요한 정보를 제거하기 위해 여러 가지 필터들이 이미지(일반적으로 모든 픽셀)에 실행된다. 또한 이 단계는 카메라 센서에서 받은 BAYER 데이터의 형식을 YUV 또는 RGB 모드로 변환해 다음 단계들에서 이를 분석할 수 있게 한다.

이 첫 번째 단계에서 실행된 사전 특징 추출(edges, haar, Gabor filters, Histogram of oriented gradients 등)을 바탕으로 두 번째와 세번째 단계는 분할, 광학 흐름, 블록 매칭, 패턴 인식 같은 알고리즘들을 실행해 이미지를 분석하여 대상 영역을 식별한다. 마지막 단계는 이전 단계들에서 생성된 영역 정보와 특징 데이터를 활용해 대상 영역의 물체 유형에 대해 지능적인 분석 결정을 한다.

이렇게 짧은 설명만으로는 관련 ADAS 이미지 처리 알고리즘 분야를 보여주기에 충분치 않다. 그러나 이 글의 주된 목적은 스테레오 비전 시스템으로 인한 과제들과 견고함을 조명하는데 있기 때문에, 블록 레벨의 알고리즘 정보는 우리가 이 주제를 좀 더 깊이 조사하는데 충분한 배경이다.



단안 카메라는 2D 데이터에서 물체까지의 거리를 어떻게 측정하는가?

단안 카메라는 크게 두 가지 방식으로 거리 측정을 한다. 첫 번째는 카메라에 가까운 물체일수록 커 보이고, 따라서 프레임에서 더 큰 픽셀 영역을 차지한다는 간단한 전제에 기반하고 있다. 어떤 물체가 자동차로 식별된 경우, 그 물체의 크기는 그 주위로 그려진 최대 영역 직사각형을 통해 그 물체의 크기를 대략 계산할 수 있다. 이 직사각형의 크기가 커질수록 그 물체와 카메라(예: 자동차)의 거리가 가깝다. 비상 제동 알고리즘은 프레임에서 식별된 각 물체까지의 거리가 사전 설정된 안전값보다 가까울 경우, 충돌 방지 동작이나 운전자 경고 동작을 발동한다. 〈그림 4〉에서 이 아이디어에 관한 간단한 예시를 참고할 수 있다.

 

단순함과 간결함이 이 방식의 장점이긴 하지만, 이 방식에는 몇 가지 단점이 있다. 그 물체가 미리 ‘정확하게’ 식별될 때까지는 식별 물체까지의 거리를 가늠할 수 없다. 〈그림 5〉의 시나리오를 생각해보자. 이 사진에는 3명의 보행자 그래픽이 있다. 보행자 1은 키가 큰 사람이지만 보행자 2는 보행자 1보다 키가 작은 소년이다.

이 두 사람과 카메라의 거리는 동일하다. 사진에서 세 번째 보행자 3은 카메라로부터 좀 더 멀리 떨어져 있고, 키가 큰 사람이다. 여기에서 물체 감지 알고리즘이 식별된 세 명의 보행자를 식별해 그 주위에 직사각형을 그릴 것이다. 안타깝게도 키가 작은 소년(사람 2) 주위에 그려진 직사각형의 크기는 키 큰 사람(사람 3)보다 훨씬 카메라에 가깝지만 멀리 떨어진 키 큰 사람의 직사각형 크기와 동일할 것이다.

따라서 캡처된 2D 프레임에서 픽셀로 된 식별 물체의 크기는 그 물체와 카메라의 거리를 알려주는 표지로는 그리 믿을 만하지 않다. 또 다른 문제도 생각해보아야 한다. 어떤 장면에서 물체가 식별되지 않은 경우 알고리즘이(픽셀로 된) 그 물체의 크기를 알지 못해 거리를 알아낼 수 없다는 점이다. 그 물체는 폐색, 조명, 기타 이미지 인공물 같은 다양한 이유로 계속 식별되지 않을 수도 있다.

두 번째 방법은 단안 카메라를 사용해 물체의 거리를 계산할 때 쓸 수 있는 방법으로, ‘운동에서 비롯된 구성(structure-from-motion, SFM)’이라 한다. 카메라는 원칙상 움직이고 있기 때문에, 캡처된 연이은 프레임들을 서로 비교해 핵심 특징을 알아낼 수 있다.

 

등극선 기하(Epipolar geometry)는 움직이는(평행 이동 및 회전하는) 카메라로 캡처된 두 개의 연속 프레임에서 3D 공간의 특정 지점이 움직일 수 있는 곳에 대해 한정된 파라미터들을 규정하고 있다. SFM은 그 자체로도 난해한 주제이므로, 이 글에서는 그 수행 기법과 수학적 처리보다는 SFM을 사용한 거리계산의 문제들에 집중하려 한다. SFM의 원리에 관심이 많은 독자들에게는 참고문헌[5]이 좋은 참고서 역할을 할 것이다. 여기에서는 SFM 알고리즘 원리에 대한 하이 레벨 흐름을 이해하는 것으로 충분하다(그림 6).

 

데이터 흐름을 감안했을 때 단안 카메라 시스템에서는 SFM 기반의 거리 계산문제들을 이해하기가 쉽다.〈표 2〉에서 이 문제들의 목록을 참고한다.

스테레오 비전은 2D 평면 데이터에서 물체의 거리를 어떻게 계산하는가? 

레이더가 발명되기 전에도 선박은 이미 스테레오 반향 메커니즘과 시계장치 다이얼을 이용해 적군 선박이나 해적선의 거리를 계산했었다(이 정보는 적군 선박의 대포를 겨냥하는데 쓰이곤 했다). 선체의 각 측면에는 두 개의 거울들, 가끔은 그 이상의 거울들(입체경)이 탑재됐다. 주의 깊게 배열된 반사경 시스템이 기본 입체경의 이미지들을 통제소로 릴레이 전달했다.

그러면 통제소의 오퍼레이터가 시계장치 메커니즘을 조정해 두 개의 수신 이미지들을 서로 겹쳐 배열했다. 그러면 시계장치에 부착된 사전에 캘리브레이션 된 다이얼에 나타난 값이 적군 선박의 거리를 알려줬다. 이 기본적인 스테레오 알고리즘은 현재도 수백 년 동안 변함이 없기 때문에 이 방법은 안정적이고 믿을 만하다. 알고리즘의 이러한 규칙성과 안정성은 스테레오 비전 계산을 수행할 수 있는 최적의 하드웨어 머신을 설계할 수 있도록 해준다.

 

〈그림 7〉은 스테레오 기하 방정식을 보여주고 있다. 이 두 개의 카메라를 캘리브레이션하면, 물체까지의 거리를 알아내는 문제를 다시 공식화해 그 지점에 대해 좌우 카메라가 캡처한 동시 이미지간의 격차를 알아낼 수 있다.

미리 캘리브레이션된 스테레오 카메라의 경우, 등극 기하 선들이 두 개 이미지간의 모든 지점에 대해 (같은 열에서) 단순한 수평 검색이 되도록 이미지들을 교정할 수 있다. 그러면 그 격차는 왼쪽 카메라 이미지와 비교해 오른쪽 카메라 이미지의 특정 지점이 움직인 픽셀의 수로 정의된다. 이 개념을 반드시 기억해둬야 한다. 하드웨어 구현에 맞춰 수정할 수 있는 규칙적인 계산 패턴을 이것이 허용하고 있기 때문이다.
이 주제를 깊이 파고들기 전에 격차라는 개념에 대해 좀 더 분명히 해둘 필요가 있다.


스테레오 격차 계산과 계산된 거리의 정확도

〈그림 8〉은 3개의 그래프로 격차와 물체까지 거리의 관계를 보여주고 있다. 우선 알아둬야 할 점은 측정된 격차가 물체까지 거리와 반비례한다는 점이다.

물체가 스테레오 카메라에 가까울수록 격차가 커지고, 멀수록 격차가 줄어든다. 이론상, 격차가 제로인 지점은 카메라로부터 무한정 떨어져 있다. 시스템에서 선택된 물리적 파라미터들의 경우(그림 8a 참고), 1픽셀의 격차는 ~700미터의 거리를 나타내고 2픽셀의 계산 격차는 ~350미터의 거리로 추정할 수 있음을 이 계산에서 알 수 있다. 이것은 정말로 큰 해상도로, 격차 계산이 1픽셀만큼 부정확해도 추정 거리(100미터 이상 거리의 경우)는 크게 부정확해질 것이다. 짧은 거리의 경우(그림 8의 곡선들의 하단부 50미터 미만)에는 거리 계산의 해상도가 아주 크게 개선되므로 그래프들의 거리 계산 점들이 모여 있는 것을 보면 분명하다.

이 범위에서 격차 계산이 1픽셀(또는 그 이하) 부정확할 경우, 계산된 거리는 대략 2 ~ 3미터가량 틀려진다.

이 시스템의 정밀도를 좀 더 높일 수 있는 방법들이 있다. 〈그림 8b〉와 〈그림 8c〉에서 볼 수 있듯이 격차 계산을 하프 또는 쿼터 픽셀 수준으로 수행하면, 거리 계산의 해상도가 비례해 향상된다. 이러한 시나리오에서 100미터 이상(그러나 300미터 이하일 것)의 거리의 경우, 연속 격차에 대해 계산된 거리의 해상도는 ~30 ~ 40미터로 100미터 이하의 거리에서는 정밀도가 50cm 이상 개선될 수 있다. 근접 거리에서 작동하는 충돌 방지 시스템에서 이 정밀도를 거듭 극대화(0.1미터 범위 이하로)해야 할 수도 있다. 동시에 스테레오 카메라의 작동 범위도 개선해야 하는데, 필요하면 약간의 정밀도 손실을 감수해야 할 것이다.

스테레오 카메라 ADAS 시스템의 범위 

기본 스테레오 방정식(그림 7)을 다시보면, 시스템의 최대 범위를 개선하려면 거리 계산이 충분히 정확해야 낮은 격차를 낼 수 있음을 알 수 있다. 이것은 다음 세 가지 방식 중 어떤 방식으로도 달성 가능하다. 이 방식들 각각은 기계 설계나 전자 설계, 궁극적으로는 시스템비용에서 타협점들을 가지고 있다.

(a) 작은 픽셀 크기를 사용할 것 → 작은 픽셀 크기를 사용하고(예컨대 하프 픽셀) 그 밖의 것은 동일하다고 가정했을 때, 그 범위는 (같은 정밀도에서) 약 50% 가량 향상된다.
(b) 두 개 카메라 사이의 거리를 늘릴 것 → ‘T’가 두 배로 늘어나고 그 밖의 것은 동일하다고 가정했을 때, 그 범위는 (같은 정밀도에서) 약 50% 가량 향상된다.
(c) 초점거리를 변경할 것 → ‘f’가 두배로 늘어나고 그 밖의 것은 동일하다고 가정했을 때, 그 범위는 (같은 정밀도에서) 약 50% 가량 향상되지만 시야는 좁아진다.
(d) 픽셀 이하 정밀도로 스테레오 격차를 계산하는 계산 시스템을 이용할 것

수학적으로 타당하긴 하지만, 옵션 (b)와 (c)는 시스템의 물리적 속성들과 직접 관련성을 가지고 있다. 스테레오 시스템을 자동차에 탑재해야 할 경우, 시스템의 고정 크기나 요건은 최대한 작아야 하는 것이 일반적이기 때문에 미학적 필요성은 카메라 사이의 거리(T) 증가나 초점거리(f) 증가와 맞지 않는다. 따라서 높은 범위 및 정밀도를 가진 정확한 스테레오 거리 계산 시스템에 가장 적합한 옵션들은 위의 (a)와 (d) 옵션들을 위주로 한다.


프로세스

〈그림 9〉는 데이터 흐름의 하이레벨 블록 다이어그램과 스테레오 격차를 계산하는 계산 고리를 보여주고 있다. 〈그림 6〉의 SFM 블록 다이어그램에 있었던 카메라 캘리브레이션 단계가 없고 촘촘한 스테레오 격차 알고리즘으로 특징을 검색할 필요도 없다는 점에 유의한다. 물체의 크기를 바탕으로 거리를 계산하는 SFM 기반의 거리 계산 방식에서는 특징을 알아내고 물체를 식별하는 것이 필요하다.

이미지 랭크 변환은 스테레오 이미지 프로세싱 파이프에서 첫 번째나 두 번째 단계일 경우가 가장 많다. 이 단계의 목적은 이후 두 개 이미지의 블록 비교들이 좌우 이미지 간의 조명 변화나 밝기변화 같은 실제 노이즈 조건에 강하게 하는데 있다[7]. 이러한 변화의 요인에는 여러 가지가 있다. 그중에는 두 개 카메라의 시점 변화로 인해 달라진 조명, 셔터 속도 간의 미세한 차이, 카메라가 좌우 이미지를 약간씩 시간을 달리해 포착하게 만드는 그 밖의 지터 인공산물 등이 있다.

이미지에 대한 여러 가지 랭크 변환 옵션들과 그것이 격차 계산의 견고함에 어떻게 영향을 미치는지 여러 연구자들이 논문들과 기법들을 내놓고 있다[8]. 〈그림 9〉의 이미지 교정 단계는 이후의 격차 계산이 수평 등극 검색 선들을 따라 수행될 수 있게 하기 위한 것이다. 이 프로세스의 다음 단계들이 실제 격차 계산과 그 계산의 신뢰 수준, 사후 프로세싱이다. 조밀한 격차 계산은 공간 도메인에서 주로 수행되지만, 주파수 도메인에서 격차를 계산하는 몇 가지 방법들이 있다[9].

이러한 방법들은 커다란 FFT가 비교적 빨리 계산될 수 있다는 점을 활용하려고 하지만, FFT에는 상황을 유리하게 돌리지 못하는 다른 복잡한 점들이 있다. 이 글에서 더 깊이 논의할 필요 없이, (전부는 아니더라도) 대부분의 상품화된 스테레오 격차 알고리즘이 공간 도메인에서 구현된다는 주장은 타당하다. 가장 기본적인 레벨에서 이 분석은 (변환된) 좌측 이미지의 모든 픽셀에 대해 그 주변을 둘러싼 작은 픽셀 블록을 고르도록 요구하고 있다.

 

그 다음에 우리는 (변환된) 우측 이미지에서 등극(수평) 선을 따라 같은 블록이 위치한 곳을 찾을 때까지 검색을 해야 한다. 이 계산은 격차의 모든 가능값에 대해 수행된다(1부터 최대(64 또는 128, 또는 그 밖의 값)). 좌측 블록과 우측 블록 사이의 격차(또는 상호상관)는 그 픽셀에 대해 격차의 실제 값에 가까운 최소(최대)에 접근하게 될 것이다. 수행된 ‘moving-window’ 블록 비교와 매칭은 그 블록이 얼마나 움직였는지를 계산할 것이며, 그 결과를 이용해 3D 공간에서 특정 픽셀의 거리를 계산하게 될 것이다. 이 프로세스는 〈그림10〉에서 볼 수 있다. 랭크 변환과 이후 SAD(sum of absolute differences) 기반 비용 함수 최소화를 이용한 격차 계산의 예를 볼 수 있다[8].

격차를 찾기 위한 SAD기반 방식은 간결하고 가끔은 너무 단순하다. 이 방식의 기본 전제는 특정 픽셀 블록의 경우 격차들이 동일하다는 것인데, 이것은 물체의 가장자리에서는 거의 항상 참이 아니다. 〈그림 2〉를 다시 찾아 모토사이클의 포크에 대한 주석과 빨간 상자에 관심을 기울이면, 격차가 서로 다른 곳에 인접 픽셀들이 많다는 것을 금방 알 수 있을 것이다. 이것은 사실 ‘선반의 빨간상자’가 ‘포크’보다 카메라로부터 약 2미터 더 떨어져 있기 때문에 당연한 것이다.

 

작은 픽셀 블록의 격차는 물체의 경계선에서 크게, 비스듬하거나 굴곡진 표면에서는 근소하게 변할 수 있다.
Middlebury 데이터 세트[10]의 ‘원뿔과 얼굴’ 이미지는 이러한 점을 완벽하게 보여준다. 하나의 원뿔(약간 기울어진 표면) 위에서 발견된 인접 픽셀들은 격차 변화가 적겠지만 물체 경계선의 격차 차이는 클 것이다. 간단한 SAD 기반의 알고리즘을 랭크 변환과 함께 사용할 경우, 한 카메라에서만 볼 수 있는 인공물과 물체 경계선 같은 커다란 격차 구멍들을 두 폐색 모두에 남기게 될 것이다.

 

이러한 부정확과 결정론적 실행 시간을 해결하기 위한 간결한 방식이 나왔다[11]. 이 방식을 ‘세미 글로벌 매칭(semi global matching)’이라고 한다. 이 방식에서는 한 방향 이상에서 모든 픽셀에 대해 평탄 비용 함수(smoothness cost function)가 계산된다(4, 8, 16). 이 비용 함수 계산은 〈그림 12〉에서 볼 수 있다. 이것의 목적은 모든 픽셀에 대해 여러 방향에서 비용함수 S(p,d)를 계산해 평탄한 격차 맵을 확보하는데 있다.

 

SGM에 관한 오리지널 논문은 비용 함수의 최적화를 위해 16개 방향을 제안했지만, 실제 구현에서는 2개 방향, 4개방향, 8 개 방향이 시도됐다. SGM 비용 함수의 구체적 구현과 최적화 알고리즘은 〈그림 13〉에 나와 있다. 이 유사 코드 세그먼트를 이용하면 메모리와 계산을 평가하기 쉽고, 궁극적으로 SGM 기반 계산을 실시간으로 가능하게 하는 하드웨어 난이도 요건도 평가하기 쉬워지며 실시간으로 가능하게 하는 하드웨어 난이도 요건도 평가하기 쉬워진다.

격차 계산의 계산법 및 메모리 요건 

이 계산은 ADAS 애플리케이션의 경우 계산량이 많다. 전형적인 전방 스테레오 카메라 장비는 1M 픽셀 카메라 세트로 초당 30 프레임으로 작동하며 격차 계산 프로세스의 첫 번째 단계는 랭크 변환이다. 전형적인 랭크 변환은 센서스 변환이나 약간 수정된 버전이다.

필요한 입력 정보는 스테레오 이미지 둘다이고, 출력정보는 센서스-변환완료 이미지 쌍이다. 픽셀 주변 N×N 블록의 센서스 변환에 필요한 계산법은 6,000만 N × N 센서스 변환을 수행하는 것이다. N × N 블록의 어느 한 픽셀에서 수행되는 모든 센서스 변환에는 N2 비교연산이 필요하다. 그 밖의 관련 랭크 변환에서는 모든 픽셀에 대해 N2 포인트 분류가 필요하다. 앞으로 몇 년 동안 실제 차량에 배치되는 실질적 시스템에서는 6,000만 × N2 비교 연산을 실행하는 것을 최소한의 요건으로 가정하는 것이 안전하다.

이 프로세스의 두 번째 단계는 이미지교정으로 수평선들에서 등극 격차 검색이 이루어지게 해야 한다. 세 번째 단계는 더욱 흥미롭다. 모든 픽셀 및 격차 조합에 대해 C(p,d), Lr(p,d), S(p,d) 계산이 수반되기 때문이다(그림 13 참고).

C(p,d)가 블록 관련 SAD 연산이고 이 블록 크기는 N × N이며, 필요한 시스템 범위가 ~200미터이고, 계산된 거리 정밀도가 하프 픽셀 격차 계산을 요구한 경우 이 시스템은 64 ~ 128 격차 가능성들에 대해 C(p, d)를 계산해야 할 것이다. 이러한 파라미터들과 함께 C(p,d)에 대한 총 계산 요건은 초당 6,000만 × N2 × 128 SAD 연산을 수행하는 것이다.

‘r’ 가능 방향들에서 모든 픽셀에 대해 Lr(p,d) 계산을 실시해야 한다. 따라서 이항(그림 13 참고)에 대한 계산은 6,000만 × 128 × r회 실시돼야 한다. 한 픽셀에 대한 계산에는 다섯 번의 덧셈(뺄셈을 고려하는 경우, 특별한 형식의 덧셈)과 한번의 최솟값 찾기 연산이 필요하다. 초당 Lr(p,d) 계산에는 6,000만 × 128 × r × 5번의 덧셈과 4개 항에 대한 6,000만 × 128 × r 최솟값 계산이 필요하다.

S(p,d) 계산은 모든 가능 픽셀과 격차값에 대해 r회 실시돼야 하고, S(p,d)에 관한 모든 계산법에는 ‘r’ 덧셈과 한 번의 비교가 필요하다. 초당 이것을 계산하는데 필요한 총 연산은 6,000만 × 128 × r 덧셈과 6,000만 × 128 비교다.

 

세 개 모두를 한데 모은 정밀 SGM 기반 격차 계산 엔진이 1 M 픽셀 30 fps카메라에서 실행되고 128 격차 가능성을 계산하려고 하는 경우, 초당 약 1테라 연산을 수행해야 할 것이다(덧셈, 뺄셈, 최솟값 찾기). 이 숫자를 감안해 임베디드 도메인의 첨단 다목적 프로세스는 사이클마다 7 ~ 10개의 명령을 발한다. 이 명령어들의 일부가 SIMD 타입으로 이 명령어들은 데이터의 8 ~ 16조각들을 병렬로 다룰 수 있다. 다목적 프로세서가 내놓는 베스트 IPC를 감안했을때, 2 GHz에서 실행되는 쿼드코어 프로세서는 약 320기가 64비트 연산을 내놓을 것이다.

스테레오 파이프라인의 대부분이 16비트일 것이고 16비트 bins를 100% 효율로 꾸릴 수 있다고 가정하더라도, 쿼드코어 다목적 프로세스가 현대 ADAS 스테레오 비전 시스템의 요구를 충분히 수용하기 어렵다. 다목적 프로세서의 목적은 모든 종류의 하이레벨 프로그래머빌리티를 제공하는데 있다. 이는 실시간 ADAS 스테레오 비전시스템의 설계에 전문 하드웨어가 필요하다는 뜻이다.

계산의 견고함 

ADAS 비전 시스템의 목적은 교통사고의 심각성을 피하거나 적어도 이를 최소화하는 데 있다. 해마다 120만명 이상이 교통사고로 사망하고 있으며, 15 ~ 29세 연령대에서는 교통사고가 주된 사망 원인으로 꼽히고 있다. 보행자들은 도로 이용자들 중 가장 취약한 층으로, 25만 명 이상의 보행자들이 해마다 부상을 당하고 있다.

교통사고의 주요 원인은 부주의나 피로로 인한 운전자의 실수다. 따라서 비상 제동용 ADAS 비전 시스템의 가장 중요한 목적은 사고의 심각도와 빈도를 줄이는데 있다. 이것은 이중적 요건이다. 비전 시스템은 모든 비디오 프레임에 대해 매우 견고하고 정확하게 거리를 추정해야 할 뿐만 아니라 허위의 양성 시나리오도 최소화해야하기 때문이다. ADAS시스템이 적절한 수준의 견고함으로 지정, 설계되도록 하기 위해 ISO 26262가 자동차 안전 애플리케이션에서 전자시스템의 사양, 설계, 개발에 관한 국제표준으로 확립됐다.

 

계산이 적으면 스테레오 비전 시스템의 거리 계산에서 오류가 나올 것을 예상할 수 있다. 〈그림 15〉를 참고한다. 초점거리(f)에 대한 오류 허용공차와 카메라 간의 거리(T)의 오류 허용공차가 1%이고 격차 계산 알고리즘의 정밀도가 5%인 경우, 계산된 거리(Z)는 그래도 약 2.5% 부정확할 것이다. 격차 계산 알고리즘의 정밀도를 픽셀 이하 수준(쿼터 픽셀이나 하프 픽셀)까지 개선하는 것이 그래서 중요하다. 여기에는 두 가지 의미가 있다. 첫 번째는 알고리즘과 하드웨어에 대한 사후 처리 보간법 계산요건이 증가한다. 두 번째 요건은 좀 더 정교하고 ISO 26262와 관련 있다.

 

아키텍처와 설계는 전자 컴포넌트의 일시적 오류와 항구적 오류 모두를 시스템의 FTTI(fault tolerant time interval) 내에서 탐지하고 표시할 수 있어야 한다. FTTI와 그 밖의 관련 지표들의 계산은 이 글의 범위를 벗어나는 것으로, 시스템 제작에 사용된 전자 컴포넌트들이 ADAS 비전 시스템에 필요한 ASIL 레벨을 달성할 수 있어야 한다는 점을 지적하는 것으로 충분할 것이다.

시스템 하드웨어 옵션과 요약 

이 글에서 전반적인 여러 알고리즘 옵션들의 효과와, 특히 자동차 ADAS 안전 비상 제동 시스템에서 거리를 계산하는 스테레오 비전 알고리즘에 대 살펴보았다. 텍사스 인스트루먼트는 ADAS 프로세싱 분야 전반과 그 중에서도 특히 효율적이고 견고한 스테레오 비전처리에서 혁신을 주도하고 있다.

ADAS 안전 비전 시스템의 설계와 성능 목표를 달성할 수 있는 전자시스템 옵션들이 서로 다를 수 있다. 텍사스 인스트루먼트의 이종 칩 아키텍처(TDA 제품군)라면 이러한 애플리케이션의 성능, 전력, 크기, ASIL 기능 안전 등의 목표들을 충족할 수 있다. 스테레오에 관한 시스템 블록 다이어그램과 TI TDA2x 및 TDA3x 디바이스를 사용하는 그 밖의 ADAS 시스템들, 이 기술의 데모는 관련 홈페이지(www.ti.com/ADAS)에서 볼 수 있다.

● 참고문헌 

 

 

<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>

본 기사의 전문은 PDF문서로 제공합니다. (로그인필요)
다운로드한 PDF문서를 웹사이트, 카페, 블로그등을 통해 재배포하는 것을 금합니다. (비상업적 용도 포함)
 PDF 원문보기

  • 100자평 쓰기
  • 로그인

태그 검색
본문 검색
TOP