• 대한전기학회
Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers
  • COPE
  • kcse
  • 한국과학기술단체총연합회
  • 한국학술지인용색인
  • Scopus
  • crossref
  • orcid

  1. (Dept. of Information, Communication, and Electronic Engineering, The Catholic University of Korea, Korea)



Intelligent Vehicles, LGMD2, Collision Avoidance, VLSI Architecture, Real-time System

1. 서 론

최근 운전자의 개입 없이 스스로 감지하고 판단하여 제어하는 자율주행 기술에 대한 연구가 활발히 진행되고 있다. 또한 실제 자동차에 대한 적용이 다양하게 진행되고 있으며 이에 대한 핵심기술 중에 하나가 충돌감지 기술이다·[1]. 운전자 보조 시스템(Driving Assistant System)은 센서, 카메라 등을 이용하여 접근하는 물체를 감지하고 경고나 브레이크를 작동하여 운전자가 차량을 안전하게 운행할 수 있도록 지원해 준다. 이러한 충돌 감지 시스템은 무인자동차, 로봇비전, 물체인식 등 다양한 응용 분야에서 사용되는데, 하드웨어 설계에서는 충돌 감지의 정확도와 실시간 처리 여부가 중요하게 고려되어야 한다[2,3].

최근 영상기술, 카메라 및 GPU 등의 높은 컴퓨팅 성능을 바탕으로 다양한 충돌감지 알고리즘과 시스템에 대한 연구가 진행되었다·[2]. 거리, 속도 분석, 스테레오 기술, 시차 기술, 역원근 매핑 등을 이용한 비전기반 알고리즘들이 제안되었다[4,5]. Ren 등은 단일 카메라로 얻은 다중 객체 감지/추적 및 차선 표시를 바탕으로 한 비전 기반의 충돌감지 시스템을 제안하고 다양하고 실제적인 환경에서 시스템을 검증하였다·[4]. Kuo 등은 물체의 움직임을 분석하여 광학 흐름을 얻는 optical flow 알고리즘을 제안하였는데 광학 기반의 추적장치를 통해 앞차의 특징을 추출하여 충돌을 인식하였다·[6]. 그림자, 코너, 수직/수평 에지, 색, 특징점 등의 형태기반 알고리즘이 제안되었다. Lan 등은 DSP 칩을 이용하여 물체의 특징점인 코너를 검출하고 자동차를 추출하는 실시간 시스템을 제안하였다·[7]. 또한 상관기반(correlation-based) 알고리즘은 정의된 템플릿을 이용하여 유사성을 분석하여 물체를 감지한다. Lin 등은 복잡한 교통상황(자동차의 일부만 보이는 상황 등)에서 여러 대의 자동차를 추적할 수 있는 동적 템플릿 매칭 알고리즘을 제안하였다·[8]. 신경망, Support Vector Machine(SVM) 등 특징을 이용하여 분류하는 학습기반 알고리즘들이 제안되었다. Zhang 등은 영상에서 Gabor 특징들을 추출하고 SVM과 신경망을 결합하여 자동차를 검출하였다·[9]. 여러 가지 날씨 환경과 자동차를 다양한 거리에서 실험하여 좋은 결과를 얻었다.

곤충은 외부에서 수신한 빛을 감지하는 감각세포를 통해 뉴런을 활성화하여 접근하는 물체를 감지한다. 충돌을 감지하는 뉴런은 Lobula Giant Movement Detector(LGMD)이며 곤충의 망막은 이미지의 화소처럼 2차원 배열로 구성되어 있다·[10]. Fu 등은 이전에 밝혀진 곤충의 시각신경망 세포인 LGMD1 모델을 개선하여 좀 더 충돌에 민감한 반응을 보이는 LGMD2 알고리즘을 제안하였다[11,12]. 시각세포로부터 입력된 신호를 on/off 채널로 분할하여 on 경로에 더 강한 억제 편향을 가함으로써 더 어둡게 보이는 물체에 선택적으로 반응한다.

본 논문에서는 LGMD2 뉴런의 동작을 기반으로 하는 알고리즘을 이용하여 영상의 화소 값을 처리하는 실시간 차량 충돌감지 시스템을 설계하였다. 알고리즘의 다양한 함수들이 하드웨어 친화적으로 매핑되었고 임계경로를 분석을 통하여 파이프라인을 적용하여 성능이 개선되었다. 알고리즘에서 사용되는 지수함수는 오차분석을 통하여 다섯 구간의 선형근사식으로 대체하여 복잡도와 정확도를 만족하였다. 논문·[11]에서 제안한 on/off 채널에서의 휘도값 연산 과정에서 알고리즘을 변형함으로써 한 프레임 크기의 중간값을 위한 저장공간이 필요없게 되었으며 시뮬레이션을 통하여 충돌감지에 문제가 없음을 확인하였다. 또한 복잡도 개선을 위하여 곱셈 및 나눗셈은 단순한 시프트 연산으로 구현하였다. 이 때 발생하는 연산의 근사화로 인한 오류는 성능분석을 통하여 최소화하였고 이를 통하여 각 신호들에 대한 적절한 비트 폭을 결정하였다.

본 논문의 구성은 다음과 같다. 2장에서는 LGMD2 알고리즘을 설명하고, 3장에서는 제안하는 하드웨어 구조와 계산 방법에 대하여 설명한다. 4장에서는 다양한 충돌 환경에서의 알고리즘 검증 및 제안한 하드웨어 구조의 합성결과를 분석하고 5장에서는 결론을 맺는다.

2. LGMD2를 이용한 충돌감지 알고리즘

곤충은 외부에서 수신한 빛을 감지하는 감각세포를 활용하여 LGMD 뉴런을 활성화시켜 충돌을 감지한다. 곤충의 망막은 영상의 화소처럼 2차원으로 배열된 개별의 광수용기로 구성되며 메뚜기의 충돌 감지방식을 모방하여 충돌을 감지할 수 있다. 메뚜기의 시각신경망은 동작정보를 수집하여 처리하는 Photoreceptor layer(P_layer), Excitation layer(E_layer), Inhibition layer(I_layer), Summing layer(S_layer), Grouping layer(G_layer) 5개 층과 Lobula Giant Movement Detectors2(LGMD2) 세포로 구성된다. 비교적 단순한 구조의 LGMD1과 비교하여 LGMD2는 더 섬세한 감지가 가능하며 배경에 비해 어두운 물체가 다가올 때 선택적으로 충돌을 식별한다[11,12].

P_layer에서는 각 화소의 휘도변화를 계산하며 배경보다 어두운 물체의 충돌에 반응하기 위해 휘도 증가는 on 채널, 휘도감소는 off 채널로 구분하여 처리하며, 이때 on 채널에 더 강한 억제를 적용하여 다가오는 어두운 물체에 대한 선택성을 강화한다. 이후 E_layer, I_layer, S_layer는 on/off 경로로 나뉘어 병렬처리 된다.

(1)
$P_{x,\: y,\: t}^{d}=P_{x,\: y,\: t}-P_{x,\: y,\: t-1}$
(2)

$P_{x,\: y,\: t}^{on}=[P_{x,\: y,\: t}^{d}]^{+}+\alpha_{1}\bullet P_{x,\: y,\: t-1}^{on}$

$P_{x,\: y,\: t}^{off}=[P_{x,\: y,\: t}^{d}]^{-}+\alpha_{1}\bullet P_{x,\: y,\: t-1}^{off}$

(1)에서 $P_{x,\: y,\: t}^{d}$는 화소의 휘도 변화를 나타내며 계산된 값은 식 (2)의 on/off 채널로 전달된다. 식 (2)에서 $[x]^{+}$와 $[x]^{-}$는 각각 $|\max(0,\: x)|$ 및 $|\min(x,\: 0)|$를 나타내며 이를 통해 화소의 휘도 증가/감소를 구별한다. $\alpha_{1}$은 과거값인 $P_{x,\: y,\: t-1}^{on}$, $P_{x,\: y,\: t-1}^{off}$의 반영비율을 나타내는 파라미터이고, 결과값은 식 (3)에서 E_layer를 계산하는데 사용된다.

E_layer는 일정 범위 내의 알맞은 위치에 시간지연을 주어 계산하며 지연된 신호흐름은 주변영역으로 퍼져 측면억제를 형성한다. 측면억제는 움직임에 의존하는 흥분에 영향을 미치고 이를 감소시키는 역할을 한다.

(3)

$E_{x,\: y,\: t}^{on}=\alpha_{2}P_{x,\: y,\: t}^{on}+(1-\alpha_{2})P_{x,\: y,\: t-1}^{on}$, $(\alpha_{2}=\tau_{in}/(\tau_{1}+\tau_{in}))$

$E_{x,\: y,\: t}^{off}=\alpha_{3}P_{x,\: y,\: t}^{off}+(1-\alpha_{3})P_{x,\: y,\: t-1}^{off}$, $(\alpha_{3}=\tau_{in}/(\tau_{2}+\tau_{in}))$

(4)
$\tau_{1}=\begin{pmatrix}45& 30& 45\\30& 15& 30\\45& 30& 45\end{pmatrix}$ , $\tau_{2}=\begin{pmatrix}180& 120& 180\\120& 60& 120\\180& 120& 180\end{pmatrix}$

(3)에서 식 (2)의 현재 프레임 값과 한 프레임 전 값을 on/off 채널에 따라 $\alpha_{2}$, $\alpha_{3}$의 비율로 계산한다. 식 (4)는 셀의 위치에 따라 적용되는 지연상수이며 식 (3)의 $\tau_{1}$과 $\tau_{2}$는 E_layer의 지연상수를 나타내고, $\tau_{in}$은 입력 신호의 시간 간격을 나타낸다.

(5)

$I_{x,\: y,\: t}^{on}=\sum_{i=-1}^{1}\sum_{j=-1}^{1}E_{x+i,\: y+j,\: t}^{on}\bullet W_{i+1,\: j+1}^{on}$

$I_{x,\: y,\: t}^{off}=\sum_{i=-1}^{1}\sum_{j=-1}^{1}E_{x+i,\: y+j,\: t}^{off}\bullet W_{i+1,\: j+1}^{off}$

(6)
$W^{on}=\begin{pmatrix}1/4& 1/2& 1/4\\1/2& 2& 1/2\\1/4& 1/2& 1/4\end{pmatrix}$ , $W^{off}=\begin{pmatrix}1/8& 1/4& 1/8\\1/4& 1& 1/4\\1/8& 1/4& 1/8\end{pmatrix}$

(5)에서 I_layer는 식 (3)의 E_layer의 on/off 채널 값을 받아 가우시안 필터링을 통하여 접근하는 물체에 대한 선택성을 형성하고 해당 화소 주변 잡음에 대처하는 역할을 한다. 식 (6)은 셀의 위치에 따른 컨볼루션 가중치를 나타내며 어두운 물체의 충돌에 반응하도록 on 채널에 큰 값을 할당하여 강한 억제를 적용한다.

(7)에서 S_layer는 on/off 채널 휘도변화 값에서 $w_{1}\bullet I_{x,\: y,\: t}^{on}$, $w_{2}\bullet I_{x,\: y,\: t}^{off}$을 빼주어 충돌과 관련 없는 움직임 값을 억제한다. 식 (8)에서 $\theta_{1},\: \theta_{2},\: \theta_{3}$는 on/off 채널에서 대비에 의한 영향을 배분하는 계수이며 LGMD2에서 off 채널의 충돌감지 선호도를 향상시킨다. 복잡한 실제 교통 환경에서 다가오는 물체의 감지를 강화하기 위하여 식 (9)와 같이 S_layer에 가우시안 필터링을 적용하여 G_layer를 구한다. 식 (10)은 식 (9)에서 사용되는 컨볼루션 가중치를 나타낸다.

(7)
$S_{x,\: y,\: t}^{on}=[P_{x,\: y,\: t}^{on}-w^{on}\bullet I_{x,\: y,\: t}^{on}]^{+}$, $S_{x,\: y,\: t}^{off}=[P_{x,\: y,\: t}^{off}-w^{off}\bullet I_{x,\: y,\: t}^{off}]^{+}$
(8)
$S_{x,\: y,\: t}=\theta_{1}\bullet S_{x,\: y,\: t}^{on}+\theta_{2}\bullet S_{x,\: y,\: t}^{off}+\theta_{3}\bullet S_{x,\: y,\: t}^{on}\bullet S_{x,\: y,\: t}^{off}$
(9)
$G_{x,\: y,\: t}=\sum_{i=-1}^{1}\sum_{j=-1}^{1}S_{x+i,\: y+j,\: t}\bullet W_{i+1,\: j+1}^{g}$
(10)
$W^{g}=\begin{pmatrix}1/9& 1/9& 1/9\\1/9& 1/9& 1/9\\1/9& 1/9& 1/9\end{pmatrix}$

Photoreceptors Mediation(PM)은 S_layer의 on/off채널에서 측면억제에 대한 편향을 조절하며 급격한 휘도 변화가 있을수록 더 큰 억제를 적용한다. 이는 장면의 급격한 회전에 의한 반응이나 주변 배경에 의한 반응을 억제하고 LGMD2의 접근하는 어두운 물체에 대한 선택성을 강화한다.

(11)
$PM_{t}=\sum_{x=1}^{R}\sum_{y=1}^{C}|P_{x,\: y,\: t}|\bullet(C\bullet R)^{-1}$
(12)
$P\hat{M}_{t}=\alpha_{4}PM_{t}+(1-\alpha_{4})PM_{t-1},\: (\alpha_{4}=\tau_{in}/(\tau_{3}+\tau_{in}))$
(13)
$w^{on}=\max(1 ,\: \dfrac{P\hat{M}_{t}}{T_{pm}})$ , $w^{off}=\max(0.5 ,\: \dfrac{P\hat{M}_{t}}{T_{pm}})$
(14)
$MP_{t}=\sum_{x=1}^{R}\sum_{y=1}^{C}G_{x,\: y,\: t}$
(15)
$SMP_{t}=(1+e^{-|MP_{t}|\bullet(R\bullet C\bullet\alpha_{5})^{-1}})^{-1}$

(11)에서 C와 R은 영상의 열과 행을 나타내고, 한 프레임의 모든 화솟값을 누적한다. 식 (12)에서 $\tau_{3}$은 PM의 지연상수를 나타내며 현재와 이전 프레임 값을 $\alpha_{4}$의 비율로 연산한다. 식 (13)에서 $T_{pm}$은 PM 경로의 임계값이며 1과 0.5는 각각 on/off 경로의 바이어스 기준선을 나타낸다. 휘도가 급격하게 변화할수록 값이 커지며, 배경의 밝기가 변하는 상황에서의 반응을 억제한다. 식 (14)에서 G_Layer의 출력을 통합하여 LGMD2 셀의 Membrane Potential(MP)를 계산하며 식 (15)에서 $\alpha_{5}$는 스케일 계수를 나타낸다. MP를 Sigmoid 변환을 통해 정규화하여 Sigmoid Membrane Potential(SMP)을 구한다.

(16)
$ \begin{align*} SFA_{t}=\begin{cases} \alpha_{6}(SFA_{t-1}+SMP_{t}-SMP_{t-1})\\ \;\;\;\;\;\;\;\;\;\;,\: {if}({SMP}_{{t}}-{SMP}_{{t}-1})\le{T}_{{sfa}}&\\ \alpha_{6}\bullet SMP_{t},else\: \;\;\;\;\;\;\;\;\;\; \therefore(\alpha_{6}=\tau_{4}/(\tau_{4}+\tau_{in}))& \end{cases}\\ \end{align*}$
(17)
$S_{t}^{spike}=\begin{cases} 0,\: SFA_{t}<T_{sp}\\ 1,\: T_{sp}\le SFA_{t}<T_{sp}+\sigma_{sp}\\ 2,\: else \end{cases}$
(18)
$Col=\begin{cases} True,\: \sum_{i=t-N_{ts}}^{t}S_{t}^{spike}\ge N_{sp}\\ False,\: otherwise \end{cases}$

다가오는 물체에 대한 선택성을 증가시키기 위하여 Spike Frequency Adaption(SFA)을 적용한다. 식 (16)에서 현재와 이전의 SMP 값의 차이를 구하고 조건을 적용하여 현재의 SFA 값을 구한다. $\tau_{4}$는 SFA의 지연상수를 나타낸다. 식 (17)에서는 결과를 크기에 따라 구간을 나누어 스파이크를 생성하며 식 (18)은 해당 구간의 스파이크 값을 더하고 그 합이 일정 수준 이상일 경우 충돌을 감지한다.

3. 제안한 구조

그림 1은 제안한 시스템의 전체 구조로 화소 간 휘도 변화를 구하는 SUB와 P_layer, 잘못된 충돌을 억제하고 움직임 총량을 구하는 PM과 EIS_layer, G_layer, 각 화소의 움직임을 종합하여 충돌을 식별하는 LGMD2 세포로 구성되어 있다. LGMD2 세포는 MP_Exp, SFA, Spike_Collision으로 이루어져 있다.

연속된 3장의 영상으로부터 1×5 단위의 gray scale 화소 값이 입력된다. 입력된 값을 이용하여 P_layer, E_layer, I_layer, S_layer, G_layer의 총 5개 층위의 시각신경망과 PM 연산을 진행하며 최종 G_layer 값은 MP_Exp에 입력되어 영상 하나의 움직임 총량이 나올 때까지 누적한다. 한 영상의 움직임 총량은 MP_Exp, SFA, Spike_Collision 연산을 거쳐 충돌을 예측한다.

그림 1. 전체 시스템 구조

Fig. 1. Overall system architecture

../../Resources/kiee/KIEE.2024.73.5.834/fig1.png

그림 2. 가우시안 필터의 입력 영역

Fig. 2. Input range of Gaussian filter

../../Resources/kiee/KIEE.2024.73.5.834/fig2.png

효율적으로 가우시안 필터링을 하기 위해서는 1×3 화소 단위의 입력이 필요하다. 그림 2와 같이 9개의 레지스터에 저장된 P_layer 값으로 한 화소의 I_layer 값을 계산할 수 있다. I_layer의 값은 일정한 계산을 거쳐 S_layer 값으로 변환되며 이 값은 G_layer로 입력되어 가우시안 필터를 거친다. 즉 G_layer를 출력하기 위해서는 1×3 범위의 I_layer가 동시에 계산되어야 하며, 세 개의 가우시안 필터가 동시에 계산되기 위해서 1×5 단위의 화소가 필요하다.

(2)에서는 $P_{y,\: t}^{d}$가 양수인지 음수인지에 따라 각각 $[x]^{+}$, $[x]^{-}$ 연산을 하고 $\alpha_{1}\bullet P_{y,\: t-1}^{on}$, $\alpha_{1}\bullet P_{y,\: t-1}^{off}$를 더해준다. 그러나 위의 계산을 위해서는 $P_{y,\: t}^{on}$, $P_{y,\: t}^{off}$ 값을 저장할 한 프레임 크기의 저장공간이 필요하게 된다. 저장공간 사용을 줄이기 위해 식 (2)를 식 (19)로 수정하였으며 모의실험을 통해 충돌감지에는 영향이 없음을 확인하였다.

(19)

$P_{x,\: y,\: t}^{on}=[P_{x,\: y,\: t}^{d}]^{+}+\alpha_{1}\bullet[P_{x,\: y,\: t-1}^{d}]^{+}$

$P_{x,\: y,\: t}^{off}=[P_{x,\: y,\: t}^{d}]^{-}+\alpha_{1}\bullet[P_{x,\: y,\: t-1}^{d}]^{-}$

(20)
$P_{x,\: y,\: t-1}^{on}=[P_{x,\: y,\: t-1}^{d}]^{+}$ , $P_{x,\: y,\: t-1}^{off}=[P_{x,\: y,\: t-1}^{d}]^{-}$

그림 1의 SUB에서 t, t-1, t-2 세 종류의 화소들을 이용하여 $P_{y,\: t}^{d}$, $P_{y,\: t-1}^{d}$를 즉시 계산할 수 있으며 이를 이용하여 별도의 저장공간 없이 식 (19)를 구현할 수 있다. 그림 3은 식 (19)를 처리하는 P_layer 구조이다. $P_{y,\: t}^{d}$, $P_{y,\: t-1}^{d}$ 값은 on/off 채널로 입력되어 각각 $[x]^{+}$, $[x]^{-}$ 처리되며 $P_{y,\: t-1}^{d}$는 식 (20)과 같이 $P_{y,\: t-1}^{on}$, $P_{y,\: t-1}^{off}$로 출력된다. 이후 $P_{y,\: t-1}^{on}$, $P_{y,\: t-1}^{off}$에 $\alpha_{1}$을 곱하고 $[x]^{+}$, $[x]^{-}$ 처리된 $P_{y,\: t}^{d}$에 더하여 $P_{y,\: t}^{on}$, $P_{y,\: t}^{off}$를 계산한다.

그림 3. P_layer 모듈의 구조

Fig. 3. Structure of P_layer module

../../Resources/kiee/KIEE.2024.73.5.834/fig3.png

그림 4. 화소의 위치에 따른 표기법

Fig. 4. Notation according to the pixel location

../../Resources/kiee/KIEE.2024.73.5.834/fig4.png

가우시안 필터 등에서 2차원 화소를 정의할 때의 표기법을 그림 4에 나타내었다. 그림 4에서 t는 생략하였고 x, y 좌표를 나타낸 $P_{x,\: y}^{on}$로 예시하였다. 연한 회색으로 표시된 부분은 $I_{1}^{on}$계산에 필요한 범위의 $P_{x,\: y}^{on}$이다.

그림 5. EI_layer 모듈의 on 채널 구조

Fig. 5. On channel Structure of EI_layer

../../Resources/kiee/KIEE.2024.73.5.834/fig5.png

G_layer 결과를 얻기 위하여 1×3범위의 I_layer가 동시에 계산되어야 하므로 EIS_layer에서는 세 개의 가우시안 필터가 병렬로 연산된다. 그림 2에서 각 가우시안 필터의 연산을 위해 필요한 화소의 위치가 중첩되므로 해당 레지스터를 공유하여 레지스터의 수를 최소화하였다. 그림 5에서 on 채널 P_layer를 통해 입력된 각 1×5 단위의 $P_{x,\: y,\: t}^{on}$, $P_{x,\: y,\: t-1}^{on}$ 화솟값들은 시프트 레지스터에 저장되며 미리 저장해 두었던 값들과 함께 on 채널 가우시안 필터에 입력된다.

그림 6은 가우시안 필터 모듈 중 $I_{1}^{on}$ 출력의 경우를 예로 작성하였다. 식 (4)와 식 (6)을 분석하여 3×3 범위 화소 중에서 같은 가중치를 갖는 on 채널 P_layer 값들을 미리 모두 더해 준 후 가우시안 필터를 거치도록 설계하였다. 식 (3)에서 중앙셀 지연값, 모서리 지연값, 꼭짓점 지연값을 그림 6에서 각각 $\alpha_{2_{1}},\: \alpha_{2_{2}},\: \alpha_{2_{3}}$과 $\alpha_{3_{1}},\: \alpha_{3_{2}},\: \alpha_{3_{3}}$으로 표시한다. 그림에서 지연값 $\alpha_{2_{1}}$,$\alpha_{2_{2}}$,$\alpha_{2_{3}}$의 곱셈기는 시프트 연산으로 대체하였다. off 채널 EI_layer의 구조도 지연값과 가중치 외에는 on 채널의 경우와 동일하다.

그림 6. 가우시안 필터 모듈의 구조

Fig. 6. Structure of Gaussian Filter module

../../Resources/kiee/KIEE.2024.73.5.834/fig6.png

그림 7. EIS_layer 모듈의 구조

Fig. 7. Structure of EIS_layer module

../../Resources/kiee/KIEE.2024.73.5.834/fig7.png

그림 7은 EIS_layer 모듈의 구조를 나타내며 파이프라인 레지스터의 위치를 표시하였다. EIS_layer 모듈은 순차적인 연산이 집중된 구조를 갖기 때문에 전체 시스템에서 가장 긴 임계경로를 보이므로 해당 경로에 따라 최대 동작 주파수가 결정되어 시스템 성능을 좌우한다. 이를 개선하고자 임계경로의 중앙 부분에 파이프라인 레지스터를 삽입하여 같은 크기 영상을 적용하였을 때 두 배 가까운 성능이 향상되었다. 이후 $P_{x,\: y,\: t}^{on}$값에 $w_{1}\bullet I^{on}$ 값을 빼주어 on 채널 S_layer값을 구하며 $\theta_{1},\: \theta_{2},\: \theta_{3}$와의 곱셈은 시프트 연산으로 대체한다.

카메라의 미세한 흔들림에 의해 포착되는 물체의 테두리가 충돌로 인식되는 경우가 있다. 이를 방지하기 위해 계산된 S_layer 값이 $T_{s}$ 보다 작을 시 0으로 고정해주는 과정을 추가하였으며 계산과정은 식 (21)과 같다. 그림 1의 G_layer 모듈에서는 이전 모듈에서 구한 S_layer의 출력을 받아 평균값 필터 역할을 수행한다. EIS_layer에서의 출력을 3개씩 총 9개를 받아 시프트 연산으로 처리하였다.

(21)
$S_{x,\: y,\: t}=\begin{cases} S_{x,\: y,\: t}& ,\: S_{x,\: y,\: t}>T_{s}\\ 0 & ,\: otherwise \end{cases}$

그림 8은 PM 모듈의 구조를 나타내며 이전 모듈에서 구한 P_layer 값을 한 프레임만큼 누적하여 레지스터에 저장한다. 모든 화솟값이 저장되면 전체 화솟값($N_{cell}$)으로 나누어준다. 식 (11)과 식 (12)에서 $P\hat{M_{t}}$를 계산하기 위하여 현 프레임의 모든 화소의 P_layer 값을 누적해야 하는데 해당 모듈의 출력을 입력으로 받는 EIS_layer 모듈과 하위 모듈에서 그 시간만큼 연산이 지연되게 된다. 따라서 $\alpha_{4}$를 0으로 처리하여 이전 프레임의 $PM$ 값인 $PM_{t-1}$ 만을 사용하여 성능이 개선되었으며 모의실험을 통해 충돌감지에 영향이 없음을 확인하였다. 이후 비트연산을 이용해 $T_{pm}$으로 나누어준 뒤 $w^{on}$과 $w^{off}$를 출력한다.

그림 8. PM 모듈의 구조

Fig. 8. Structure of PM module

../../Resources/kiee/KIEE.2024.73.5.834/fig8.png

그림 9. MP_Exp 모듈의 구조

Fig. 9. Structure of MP_Exp module

../../Resources/kiee/KIEE.2024.73.5.834/fig9.png

표 1 함수 $\dfrac{1}{1+e^{-2x}}$에 대한 구간별 선형 근사표

Table 1 Linear approximation table for $\dfrac{1}{1+e^{-2x}}$

../../Resources/kiee/KIEE.2024.73.5.834/tb1.png

그림 9의 MP_Exp 모듈에서는 한 프레임에 대한 모든 G_layer의 값을 더하여 MP 값을 구하며 그 값을 $N_{cell}$로 나누고 $\alpha_{5}$를 0.5로 한 지수 함수의 입력으로 넣어 SMP 값으로 내보낸다. 본 연구에서는 지수 함수 대신 구간별로 선형 근사를 적용하였으며 $x>0$에서 $\dfrac{1}{1+e^{-2x}}$ 함수의 모양에 최적화된 5개의 구간을 설정하는 방식을 제안하였다. 이러한 최적화를 통하여 1% 미만의 표준 오차가 발생하였고 모의실험을 통하여 충돌감지에 문제가 없음을 확인하였다. 구간별로 사용된 수식은 표 1과 같다.

그림 10. SFA 모듈의 구조

Fig. 10. Structure of SFA module

../../Resources/kiee/KIEE.2024.73.5.834/fig10.png

그림 11. Spike_Collision 모듈의 구조

Fig. 11. Structure of Spike_Collision module

../../Resources/kiee/KIEE.2024.73.5.834/fig11.png

표 2 사용 파라미터

Table 2 Parameters used

../../Resources/kiee/KIEE.2024.73.5.834/tb2.png

그림 10은 SFA 모듈의 구조를 보여주며 이전 모듈에서 구한 값을 식 (16)에 적용하여 출력을 구한다. 현 프레임과 이전 프레임의 SMP 차이를 TSFA 값과 비교하고 이를 근거로 SFA 모듈의 출력을 계산한다. 그림 11은 Spike_Collision 모듈을 나타내며 SFA 모듈의 출력을 Tsp와 비교하고 이를 바탕으로 mux의 출력을 선택하여 스파이크를 결정한다. 그 후 인접 프레임들의 스파이크들을 합산한 값과 Nsp를 비교하여 충돌 여부를 결정한다. 표 2에 제안한 구조에서 사용된 다양한 파라미터의 값들을 정리하였다.

4. 성능 분석

본 연구에서 제안한 시스템의 성능을 분석하기 위하여 다양한 상황에서의 충돌감지 실험을 진행하였다. 4장에서는 인공적으로 만든 자극영상, 단순한 환경에서 공이 굴러오는 영상, 전방에서 자동차가 고속 접근하는 충돌영상, 자동차가 옆으로 지나가는 비충돌영상, LGMD2 알고리즘이 취약한 밝은 색 자동차와의 정면 충돌영상 등 총 5가지의 상황을 분석하였다. 각각 C 모델의 결과와 VerilogHDL로 설계한 하드웨어 환경에서 진행한 결과를 비교하여 분석하였다.

그림 12는 물체의 이동을 단순화한 영상에 대한 실험결과를 보여준다. 그림에서 충돌이 감지될 경우 별 모양의 충돌감지 마크가 표시된다. 상단의 두 영상은 물체가 다가오는 것을 나타낸 것으로 (a)는 밝은 배경에 어두운 물체, (b)는 어두운 배경에 밝은 물체가 다가오는 상황을 연출하였다. 그림(a)에서만 스파이크가 검출되었는데, 이는 검은 물체의 접근에 대한 LGMD2 알고리즘의 선택성 때문이다. (c)와 (d)는 가로질러 이동하는 물체가 있는 상황을 단순화한 영상으로 식 (16)의 SFA 특성에 따라 가로질러 이동하는 물체를 충돌로 감지하지 않음을 보여준다.

그림 13은 경사로에 굴러 내려가는 공을 정면으로 촬영한 영상으로 C++로 구현한 모델에서는 실제 충돌이 발생하는 43번째 프레임의 4프레임 전인 39번 프레임에서 충돌이 감지되었고, VerilogHDL로 설계한 하드웨어에서는 38번 프레임에서 충돌이 감지되어 제안한 구조에서 잘 감지되는 것이 확인되었다. 그림 14에서는 실제 충돌상황에서 제안한 하드웨어의 성능을 검증하였다. 해당 영상에서는 충돌이 발생하는 57번째 프레임의 6번째 프레임 전인 51번 프레임에서 충돌이 감지되었음을 보여준다.

그림 12. 사례 1: 인공 자극

Fig. 12. Case 1: artificial stimulation

../../Resources/kiee/KIEE.2024.73.5.834/fig12.png

그림 13. 사례 2: 접근하는 공

Fig. 13. Case 2: approaching ball

../../Resources/kiee/KIEE.2024.73.5.834/fig13.png

그림 14. 사례 3: 실제 상황(접근하는 차)

Fig. 14. Case 3: real scene (approaching car)

../../Resources/kiee/KIEE.2024.73.5.834/fig14.png

그림 15. 사례 4: 실제 상황(가로지르는 차)

Fig. 15. Case 4: real scene (translating car)

../../Resources/kiee/KIEE.2024.73.5.834/fig15.png

그림 16. 사례 5: 실제 상황(밝은 색 차 접근)

Fig. 16. Case 5: real scene (bright-colored car approaching)

../../Resources/kiee/KIEE.2024.73.5.834/fig16.png

그림 15는 가로질러 이동하는 물체에 대한 반응성을 보여주며 그림 12의 (c), (d)와 마찬가지로 충돌이 감지되지 않았다. 그림 16에서 상단의 영상은 어두운 배경에 밝은 차량이 접근하는 영상이다. LGMD2는 on 채널을 억제하고 off 채널 선호도를 강화하는 식 (6),(7),(8)에 의해 밝은 배경에 어두운 차량의 접근을 강조하는 특징이 있는데, 이러한 특징으로 그림 16 상단의 영상처럼 차량이 배경보다 밝은 상황에서는 실제 충돌이 있었음에도 충돌이 감지되지 않는 경우가 있었다. 이를 화소의 gray scale을 반전시켜 밝은 배경에 어두운 차량이 접근하는 상황으로 변환하여 하단의 영상과 같이 충돌이 감지되었다. 이처럼 상황에 따른 영상 반전을 통하여 LGMD2 알고리즘의 한계를 보완할 수 있을 것으로 생각한다.

본 논문에서 제안한 충돌 감지 시스템은 VerilogHDL로 설계하여 DB하이텍 110nm 표준셀 라이브러리로 합성되었다. 합성 결과 전체 시스템은 NAND2 기준으로 30.7K 개의 게이트를 필요로 하며 1920×1080 크기 영상을 적용하였을 때 최대 동작주파수 260MHz로 125fps의 처리 성능을 나타내었다. LGMD2 알고리즘에 대한 VLSI 설계의 사례가 없어 객관적인 비교는 어렵지만 하드웨어의 구조, 성능, 복잡도 등을 분석하였을 때 충분한 경쟁력이 있으며 더 큰 크기의 영상에 적용하거나 자율주행 시 필요한 다른 시스템을 추가하여도 실시간 처리가 가능할 것으로 생각된다.

5. 결 론

본 논문에서는 곤충의 LGMD2 시각 신경망을 이용하여 실시간 충돌감지 시스템을 설계하였다. 알고리즘의 다양한 함수들이 하드웨어 친화적으로 설계되었으며 임계경로 분석을 통하여 파이프라인 구조를 적용하였다. 5개의 화소가 동시에 입력, 처리되어 가우시안 필터가 효율적으로 동작하였으며 지수함수는 오차분석을 통하여 다섯 구간의 선형근사식으로 대체하여 복잡도와 정확도를 만족하였다. P_layer 모듈 구현 시 일부 알고리즘을 변형함으로써 on/off 채널에서 한 프레임씩 총 두 프레임 크기의 중간값을 저장하기 위한 공간을 줄였다. 알고리즘에서 곱셈과 나눗셈은 시프트 연산으로 대체하였고 오류분석을 통하여 신호들에 대한 적절한 비트폭을 결정하였다. 5 가지의 인공적인 영상과 실제 영상들을 적용하였을 때 올바른 시간에 충돌이 감지됨을 확인하였다. 제안한 구조는 동부하이텍 110nm 표준셀 라이브러리를 사용하여 합성한 결과 NAND2 기준 30.7K 개의 게이트가 필요하며 최대 동작주파수는 260MHz로 1920×1080의 영상을 적용하였을 때 125fps의 성능을 보여주었다.

Acknowledgements

We thank IDEC (IC Design Education Center) for providing us CAD softwares.

References

1 
S. Zehang, G. Bebis, and R. Miller, “On-road vehicle detection: A review,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 28, no. 5, pp. 694–711, 2006.DOI
2 
A. Mukhtar, X. Likun, and TB Tang, “Vehicle detection techniques for collision avoidance systems: A review,” IEEE Trans. Intell. Transp. Syst., vol. 16, no. 5, pp. 2318- 2338, 2015.DOI
3 
C.Bila, F. Sivrikaya, M. Khan, and S. Albayrak, “Vehicles of the future: A survey of research on safety issues,” IEEE Trans. Intell. Transp. Syst., vol. 18, no. 5, pp. 1046- 1065, 2016.DOI
4 
B. Ren, W. Deng, C. Tomm, F. Han, and Y. Wang, “Vision- based forward collision warning system design supported by a field-test verification platform,” in Proc. IEEE Intell. Veh. Symp., pp. 492–497, 2014.DOI
5 
K. Huh, J. Park, J. Hwang, and D. Hong, “A stereo vision-based obstacle detection system in vehicles,” Opt. Lasers Eng., vol. 46, no. 2, pp. 168–178, 2008.DOI
6 
Y.-C. Kuo, N.-S. Pai, and Y.-F. Li, “Vision-based vehicle detection for a driver assistance system,” Comput. Math. Appl., vol. 61, no. 8, pp. 2096–2100, 2011.DOI
7 
J. Lan and M. Zhang, “A new vehicle detection algorithm for real-time image processing system,” in Proc. ICCASM, pp. V10-1–V10-4, 2010.DOI
8 
M. Lin and X. Xu, “Multiple vehicle visual tracking from a moving vehicle,” in Proc. 6th ISDA, pp. 373–378, 2006.DOI
9 
Y. Zhang, S. J. Kiselewich, and W. A. Bauson, “Legendre and gabor moments for vehicle recognition in forward collision warning,” in Proc. IEEE ITSC, pp. 1185–1190, 2006.DOI
10 
R. Stafford, R. D. Santer, and F. C. Rind, “A bio-inspired visual collision detection mechanism for cars: Combining insect inspired neurons to create a robust system,” BioSystems, vol. 87, pp. 164-171, 2006.DOI
11 
Q. Fu, C. Hu, J. Peng, F. C. Rind, and S. Yue, “A robust collision perception visual neural network with specific selectivity to darker objects,” IEEE Trans. Cybernetics, vol. 50, no. 12, pp. 5074-5088, 2019.DOI
12 
Q. Fu, H. Cheng, and Y. Shigang, “Collision selective visual neural network inspired by LGMD2 neurons in juvenile locusts,” arXiv preprint arXiv:1801.06452 2017.DOI

저자소개

박상언 (Sang-Eon Park)
../../Resources/kiee/KIEE.2024.73.5.834/au1.png

He will receive his B.S degree in Information, Communication, and Electronic Engineering from The Catholic University of Korea in 2024. His research interests include seminconductor and digital system design.

김진호 (Jin-Ho Kim)
../../Resources/kiee/KIEE.2024.73.5.834/au2.png

She will receive her B.S degree in Information, Communication, and Electronic Engineering from The Catholic University of Korea in 2025. Her research interests include seminconductor and digital system design.

김도현 (Do-Hyeon Kim)
../../Resources/kiee/KIEE.2024.73.5.834/au3.png

She will receive her B.S degree in Information, Communication, and Electronic Engineering from The Catholic University of Korea in 2025. Her research interests include seminconductor and digital system design.

박태근 (Tae-Geun Park)
../../Resources/kiee/KIEE.2024.73.5.834/au4.png

He received his B.S degree in Electronic Engineering from Yonsei University, Korea in 1985 and M.S and Ph.D degrees from Syracuse University, USA in 1988 and 1993. Currently he is a professor in Information, Communication, and Electronic Engineering in The Catholic University of Korea. His research interests include VLSI design, CAD, and computer architecture.