http://dx.doi.org/10.7236/JIIBC.2014.14.5.73
JIIBC 2014-5-10
SAD 알고리즘을 이용한 차량 속도 측정
Vehicle Speed Measurement using SAD Algorithm
박성일*, 문종대**, 고영혁***
Seong-Il Park*, Jong-Dae Moon**, Young-Hyuk Ko***
요 약 본 논문에서는 비디오 시퀜스에서 차들을 추적하고 검출하기 위해서 비디오와 이미지 처리를 활용하여 고속 도로 및 일반 도로상의 교통흐름과 차량의 속도를 계측하는 기법을 제안했다. 제안된 기법은 배경이미지를 평가하기 위해서 비디오 스트림의 처음 프레임을 활용하였다. 비쥬얼 추적 시스템은 프레임 절대 차의 합을 토대로 한 단순한 알고리즘이다. 그것은 각 비디오 프레임으로부터 전경 이미지를 산출하기 위해서 배경화면을 빼고, 각 전경 이미지에 형태적 제거를 실행하고 임계값화 함으로서 임계치 윈도우에서 보인 이진이미지를 산출한다. 첫 번째 하얀 라인과 두 번째 하얀 라인사이 거리를 측정하여 차의 위치를 찾았다. 평균속도는 물체의 위치 변화를 장소가 변하는 시간으로 나눔으로서 정의했다. 제시된 기법의 결과는 측정된 데이터와 잘 일치되었고, 실시간으로 결과를 본다.
Abstract In this paper, we proposed the mechanism which can measure traffic flow and vehicle speed on the highway as well as road by using the video and image processing to detect and track cars in a video sequence.
The proposed mechanism uses the first few frames of the video stream to estimate the background image. The visual tracking system is a simple algorithm based on the sum of absolute frame difference. It subtracts the background from each video frame to produce foreground images. By thresholding and performing morphological closing on each foreground image, the proposed mechanism produces binary feature images, which are shown in the threshold window. By measuring the distance between the "first white line" mark and the "second white line"mark proceeding, it is possible to find the car's position. Average velocity is defined as the change in position of an object divided by the time over which the change takes place. The results of proposed mechanism agree well with the measured data, and view the results in real time.
Key Words : SAD, Matlab, CCD, Image difference, Histogram
*정회원, 동신대학교 정보통신공학과(주저자)
**정회원, 동신대학교 전기공학과
***종신회원, 동신대학교 정보통신공학과(교신저자) 접수일자 : 2014년 7월 16일, 수정완료 : 2014년 8월 21일 게재확정일자 : 2014년 10월 10일
Received: 16 July, 2014 / Revised: 21 August, 2014 Accepted: 10 October, 2014
*Corresponding Author: [email protected]
Dept. of Information & Communication Enginnering, Dongshin University, Korea
I. 서 론
현재 실용되고 있는 차량 속도 계측 시스템의 무인카 메라는 고정식과 이동식 두 가지가 있으며, 구동방식에 따라 전파를 이용해 측정하는 레이더식, 빛의 반사에 따 라 측정하는 레이저식, 감지선에 의해 측정하는 센서식
등 세 가지로 구분 할 수 있다.
고정식 무인카메라는 그림 1과 같이 대부분 루프 방식 으로 일종의 감지선으로 카메라 전방 20~30m앞에 사각 형으로 그려져 있고, 도로에 속도를 읽는 센서를 내장한 두 줄의 루프를 깔고, 그 사이를 지나는 차의 ‘시간’을 측 정해 ‘속도’로 환산하는 방법이다.[1] 이 시스템은 루프를
차선 밑에 설치해야 하므로 설치 및 유지 보수의 문제가 있다.
그림 1. 루프 방식의 차량 추적 시스템의 루프 방식 Fig. 1. Loop formulas of vehicle tracking system
본 논문에서는 종전의 고정식 카메라의 속도 측정 방 식인 도로에 루프를 매설해야 한다는 단점을 해결하고자 루프를 매설하지 않고 영상 내에서 두 인접 프레임 사이 의 차이 영상을 구하고 제안한 시작과 종료라인을 영상 에 적용함으로써 차량을 빠른 시간에 포착하여 영상 내 에서 차량의 속도를 측정하는 방법을 제안하였다.
Ⅱ. 본 론
Matlab/Simulink에서는 고도한 영상처리용 관수나 가 시화기능, 해석기능을 제공하는 Image Processing Toolbox나 Video and Image Processing Blockset를 이 용하는 것으로 디지털 동화상 처리의 알고리즘 개발이나 시스템 레벨 시뮬레이션에 의한 검증을 효율적으로 행할 수 있다.[2] 더욱이 Image Acquisition Toolbox를 이용해 서 Windows Video Camera로 부터의 화상데이터를 실 시간으로 Simulink상에서 거두어 들일 수 있으므로 실제 로 곧바로 검증을 행할 수 있다.[2]
1. 주행차량 추적시스템의 개요
동화상처리 응용의 주행차량 추적시스템 개요는 그림 2와 같다.[3]
그림 2. 주행차량추적 시스템의 개념도
Fig. 2. The concept of driving a vehicle tracking system
시스템은 카메라나 동화상 파일로 부터 입력된 RGB 의 영상 프레임을 휘도영상으로 만든 후 배경영상을 생 성한다. 그리고 배경영상과 오브젝트(주행차량)를 분리 시키기 때문에 휘도화상 프레임으로 작성된 배경영상의 차분을 얻어서 2진화하고, 오브젝트 형태 보정으로서 형 태적(Morphological) 연산을 실시한다.[4] 출력영상에서는 주행차량의 추적 마크와 주행대수를 얻을 수 있고, 고속 도로 교통량 파악, 주행차량의 자동속도 측정기 등에 응 용한다.
2. 배경 생성 및 검지선의 설정 1) 배경 생성
시스템은 동화상 파일로 부터 입력된 RGB의 화상 프 레임을 휘도영상으로 만드후 배경화상을 생성한다. 배경 을 생성하게 되면 시간 경과에 따라 여러 환경 요인에 의 해 야기 될 수 있기 때문에 배경 영상은 일반적으로 차량 흐름이 없는 상태에서 생성을 해야만 양질의 결과를 얻 을 수 있다. 그리고 RGB영상을 영상의 밝기로 변환 한 후에 첫 프레임의 중간 값을 추출 하여 배경 영상을 생성 한다.
그림 3. 배경 영상
Fig. 3. Background image
그림 3은 RGB 원 영상을 그레이스케일 영상으로 변 환 후 차량의 움직임이 없는 첫 번째 프레임으로 만든 배
경 영상이다.
2) 검지선의 설정
현재 상용되고 있는 고정 카메라의 속도 측정 방법인 루프식처럼 일정한 거리를 측정하고, 획득한 영상만을 가지고 속도를 측정하기 위하여 영상 내에 임의의 시작 라인과 종료라인을 생성한다. 따라서 입력된 영상과 실 제 도로와의 실거리 관계를 알아야 하는데 입력된 영상 의 속성과 실제도로가 얼마나 정확하게 일치하느냐에 따 라 산출되는 결과 값의 정확성이 결정된다.
차량의 속도를 측정하기 위해서는 ‘속도=거리/시간’이 라는 기본적인 공식을 사용하고, 일정한 거리를 측정하 여야 하는데 입력 영상을 입력 할 때 일정한 거리를 측정 함에 있어서 현장의 실측 거리를 측정 한 후 입력 영상에 는 보이지는 않지만 영상 위에 실측 거리와 일치하도록 검지선을 그림 4와 같이 생성한다.[5][6] 배경 영상과 입력 영상의 차를 구하여 채움(closing)을 한 다음 영상의 픽 셀을 분리하는 값을 받아 영상 내에 검지선을 그리도록 하였다.
그림 4. 검지선 생성
Fig. 4. Generate detection lines
3. SAD(Sum of absolute difference) SAD란[4] 두 개의 입력영상사이에서 절대치의 차를 실행함으로서 유사성을 찾는다. 두 개의 입력영상 행렬 사이 유사성이 크면 클수록 SAD값은 작다. 연속된 프레 임의 모션에너지를 검출하는 기법에는 히스토그램 차 (histogram difference)나 영상 차(image difference)가 있다. 두 방식 모두 연속된 두 프레임의 차이를 이용하지 만, 전자는 히스토그램의 bin 차이를 이용하고, 후자는 직 접 두 프레임의 pixel 차이를 사용한다. 본 실험에서는 구 현이 용이한 후자를 채택했다.
연속된 영상의 프레임에서 움직임이 없는 도로의 배 경만 계속해서 입력되다가 주행 중인 차량이 나타나게
되면 연속한 두 프레임의 차이가 커진다. 이 차이가 주어 진 임계(threshold)를 넘게 되면 차량의 속도를 감지할 시작 포인트와 종료 포인트의 검지선이 작동하게 된다.
영상 차는 다음과 같이 주어진다.
∆ : 절대치 합 (1)
∆ : i 프레임과 j 프레임사이 프레임 차
∆ : i 프레임에서 픽셀 위치(x,y)의 강 도(Intensity)
SAD는 영상 차를 구할 수 있는 간단한 방법이면서 효 과적으로 차량의 속도를 구할 수 있다.
4. Blob 해석
Blob해석은 2진화 처리를 마친 영상을 분석하는 방법 이다. 즉, Blob의 유무, 수량, 면적, 위치 길이, 방향 등 대 상의 형태특징을 해석하는 영상처리의 수법이다. 이들 통계적인 함수 regionprops는 영역 묘사자를 계산하기 위해서 다음과 같이 주어진다.[7]
D = regionprops(L, properties) (2)
여기서 L은 레이블 메트릭스이고, D는 길이 max(L(:))의 구조체 배열이다. 이 구조체 필드들은 properties에 의해 규정된 대로 각 영역에 대해 다른 양을 표현하기 위해 사 용된다. 계산되는 묘사자들은 ‘Area’, ‘Centroid’,
‘BoundingBox’ 등이 있다. Area는 레벨화된 영역에서 픽 셀의 수를 나타내고, Centroid는 무게중심의 수평과 수직 을 x좌표, y좌표로 나타낸다. 그리고 BoundingBox는 각 각의 포위박스(BoundingBox) 좌표를 나타낸다.
5. 차량 탐지
차량을 탐지하기 위해서는 만들어진 입력영상과 배경 이미지에 의해서 계산되어진다. 배경 이미지는 각 비디 오 프레임에서 배경 이미지를 뺀 것이다.
휘도영상으로부터 2진 영상처리는 영상을 오브젝트영 역과 배경영역을 분리하기 위해서 행하였고, 형태적 (Morphological) 연산은 영상을 2진화 처리한 후에 오브
젝트의 오 판정이나 형상을 보정하도록 사용하였다. 본 논문에서는 영상 데이터에 대한 오브젝트의 추출이 데이 터 의존성이 크기 때문에 복수의 형태적 연산을 통해서 오브젝트 추출을 행하였다.
이진 이미지의 최소 화소수와 최대 화소수를 임계값 으로 결정 하고, 검지선을 지날 때 화소수를 체크 하여 최소 화소수를 넘으면서 최대 화소수를 넘지 않은 범위 내에서 차량을 탐지 하게 된다.
임계값을 정의 할 때 원근감에 의하여 첫 번째 검지선 을 지날 때 탐지하는 최소 화소수와 최대 화소수, 두 번 째 검지선을 지날 때 탐지 하는 최소 화소수와 최대 화소 수의 임계값은 각각 다르다. 만들어진 이진 이미지가 검 지선을 지나게 됨으로써 차량을 탐지 하게 되면서 빨간 색 직사각형을 생성하게 하였다.
6. 차량 추적
차량 추적은 Blob해석을 이용해서 2진화상의 오브젝 트 영역에 대한 통계량으로 계산하였다. 오브젝트의 면 적(Area)과 오브젝트의 외축에 해당하는 좌표정보 (Bounding Box)를 추출하고, 면적의 계산은 오브젝트가 주행차량인가를 판별하는데 사용하였다.[3][5][6][7][8]
주행중인 차량은 생성된 검지선을 지나게 되면 차 주 위에 사각형을 그리는 방법으로 차량 추적을 육안으로 확인할 수 있도록 하였다.
그림 5. 주행중인 차량의 검출
Fig. 5. Detection of the vehicle while driving
주행중인 차량은 검지선을 통과하여 임계값에 의해 정해진 화소수에 의하여 그려진다. 임계값에 의하여 사 각형이 그려지지만 화면에서 보이는 시작 포인트와 종료 포인트를 지나는 시점의 원근감이 있으므로 이 원근감에 맞는 화소수의 임계값을 정해 주었다.
그림 5에서 영상의 사각형은 차량을 추적하게 되는데 최소 임계값을 가지고 최대 임계값을 넘지 않는 범위에 서 차량을 추적 한다.
7. 차량의 속도 측정
실제도로상의 거리와 일치되게 계산된 첫 번째 검지 선은 차량이 출발 한 시점이고, 두 번째 검지선은 차량이 도달한 시점이다.
그림 6과 같이 첫 번째 검지선과 두 번째 검지선은 이 미 측정된 일정한 거리를 가지고 있으므로 첫 번째 검지 선을 지난 시각과 두 번째 검지선을 지난 시각을 알게 되 면 속도를 측정 할 수 있다.
그림 6. 검지선 통과시각의 검출
Fig. 6. Measurement of pass time through detection line
(a)
(b) 그림 7. 검지선 통과 시각의 파형 검출
(a)첫 번째 검지선(2.8Sec), (b)두 번째 검지선 (4Sec)
Fig. 7. Waveform measurement of pass time through detection line (a) first detection line(2.8Sec), (b) second detection line(4Sec) 그림 7은 첫 번째 검지선과 두 번째 검지선을 지나는 시각을 체크하기 위해서 주행중인 차량의 히스토그램의
변화량이 임계값을 도달할 때 의 파형을 스코프로 연결 하여 Matlab Simlink에 의해 측정하였다.[2][3]
첫 번째 검지선을 지날 때 파형을 그리는 첫 번째 스 코프와 두 번째 검지선을 지날 때 파형을 그리는 두 번째 스코프로 차량이 검지선을 지나면 각 스코프가 파형을 그리기 시작 한다. 파형을 그리기 시작한 곳이 바로 차량 이 검지선을 지나는 시점이 되고 그 시점이 검지선을 지 나는 시각이 된다.
첫 번째 검지선을 지나는 시간을 스코프로 체크 하고 그 시간을 t1 이라고 하고, 두 번째 검지선을 지나는 시간 을 스코프로 체크하고 그 시간을 t2 라고 한다. 두 번째 검지선을 지나는 시간에서 첫 번째 지나는 시간의 차를 거리로 나누면 아래 식에 의해 속도가 측정이 된다. (r은 거리)
(3)
Ⅲ. 실험방법
1. 실험환경
본 논문에서는 동영상에서 차량 속도측정을 위하여 맑은 주간에 도로를 달리는 차량을 녹화한 영상으로 실 험 하였다.
실험에는 일반 PC를 사용하였으며 고속도 화상 정보 처리가 가능한 SONY PC115를 사용 하였다. VCR로부터 취득한 실험용 영상은 320*240화소 크기의 초당 30프레 임으로 RGB영상으로 구성된 영상이다.
실험 영상은 맑은 날 주간에 고정 카메라가 위치 할 수 있는 높이에 카메라를 설치하고 일정 거리를 유지 하 였으며, 차량의 속도를 측정하고 검증하기 위하여 차량 을 검지선 위치와 매칭 시킬 실제 거리 30M를 영상의 중 앙에 오도록 촬영하였다. 또한 준비된 차량은 각각 50[Km/h], 80[Km/h], 90[Km/h]의 속도로 주행하게 하였 고 사용된 차량은 최대한의 정확한 속도를 유지하도록 GPS를 이용하여 속도를 유지하였다. 아울러 본문에 설 명되어진 SAD를 이용한 차량의 속도계산은 Malab Simulink로 시뮬레이션하여 확인하고, Matlab GUI를 사 용하여 실행파일로 작성하였다.
2. 차량 속도 측정
Matlab GUI 작성된 프로그램은 그림 8과 같은 인터페 이스를 가지고 있다. 먼저 실험에 쓰일 동영상을 로딩한 후 배경이미지를 분리한다. 프로그램은 로딩 된 동영상 에 대한 SAD를 수행하고 동시에 영상의 각 프레임의 변 화에 대하여 그래프를 작성한다.[4]
그림 8. Matlab GUI로 작성된 주행속도 계산 프로그램 Fig. 8. Speed calculation program created in
Matlab GUI
입력된 영상과 실제도로의 실측거리를 매칭하기 위한 도구로는 그림 9와 같은 입력도구를 만들어 입력된 영상 의 유연성을 확보하게 하였다.
그림 9. 영상에서 도로의 실측거리 입력
Fig. 9. The actual distance input of the road in images
분석된 SAD에서 취득한 차량의 검출영역내에서 발생 한 차량의 체류시간을 실시간으로 계산하여 출력하게 하 였으며 실험의 문제제기에 맞는 결과값이 산출되는지 그 림 10과 같은 주행차량 속도 계산 프로그램으로 확인할 수 있도록 하였다.
그림 10. 주행차량의 속도계산
Fig. 10. Calculation of the vehicle driving speed
첫 번째 검지선을 지난 시간을 t1 이라고 하고 두 번째 검지선을 지난 시간을 t2라고 하면 t2-t1을 계산함으로써 일정 거리를 지난 시간을 측정 할 수 있다. 제시된 일정 한 거리를 통과한 시간을 계산함으로써 아래의 식 에 대 입 하여 다음과 같은 식을 유도할 수 있다. 여기서 두 검 지선의 거리는 동일한 r값으로 입력된 30m로 하였다.
예를 들어 시작점 시간이 1[sec]이고, 도착점 시간이 2.8[sec]인 차량이 지나갔다면 속도는
(4) 과 같이 산출할 수 있다.
본 실험에서는 이미 주행속도를 알고 있는 영상 이미 지 3개를 대상으로 실험을 진행하였고 각각의 영상에 사 용된 차량의 속도는 각각 50Km/h, 80Km/h, 90Km/h 이 다. 여기서 중요한 것은 50Km/h로 사용된 영상이미지는 프로그램의 초기값을 확인하는 영상으로 사용하였다. 즉, 이미 알고 있는 속도의 영상 이미지를 통하여 검지선의 위치와 실제 도로의 실측거리에 대한 유효성을 확인한 후 다른 속도의 영상내 차량 주행속도를 검출한 것이다.
이와 같은 실험을 통하여 산출된 차량의 속도는 표 1과 같다.
표 1. 실험에 의해 산출된 차량의 주행속도
Table 1. The driving speed of the vehicle calculated by the experiment
속도계차량 시작점
시간 도착점
시간 도착점-시작점 계산된 속도 50[km/h] 2.93[sec] 5.08[sec] 2.15[sec] 50.23[km/h]
80[km/h] 1.6[sec] 2.93[sec] 1.33[sec] 81.20[km/h]
90[km/h] 2.8[sec] 4[sec] 1.2[sec] 90.00[km/h]
시작점의 시간이 각각 다른 것은 영상 내에서 주행중 인 차량이 검지선을 지나는 검출 시간이 각각 다르기 때 문이며 검지선에 의한 검출영역에 체류한 시간은 매우 양호하게 계산되었다. 실험결과 주행속도를 알고 있는 영상 이미지 50[Km/h], 80[Km/h], 90[Km/h]로 달리는 주행차량에 대한 프로그램에 의한 계산속도는 각각 50.23[Km/h], 81.20[Km/h], 90.00[Km/h]로 매우 양호하 게 산출되었다.
Ⅳ. 결 론
본 논문에서는 종전의 고정식 카메라의 속도 측정 방 식인 도로에 루프를 매설해야 한다는 단점을 해결하고자 루프를 매설하지 않고 영상 내에서 두 인접 프레임 사이 의 차이 영상을 구하고 제안한 시작과 종료라인을 영상 에 적용함으로써 차량을 빠른 시간에 포착하여 영상 내 에서 차량의 속도를 측정하는 방법을 제안하였다.
제안된 방법은 SAD알고리즘을 활용해서 고정된 장 소에서 50㎞/h, 80㎞/h, 90㎞/h의 속도로 달리는 차량을 녹화하여 시작점과 도착점의 시간을 추출하였고, 추출된 시간차와 거리에 의해서 50.23㎞/h, 81.20㎞/h, 90.00㎞/h 의 속도로 계산되었으며 매우 양호하게 일치함을 보였다.
그러나 영상을 통하여 입력되는 데이터는 날씨나 도 로주변여건, 카메라의 해상도, 프레임의 속도등에 의하여 결과값에 많은 영향을 받을 수 있는 점이 단점이지만 저 가의 간단한 시스템만으로도 많은 응용분야를 만들 수 있다는 장점을 동시에 가지고 있다. 따라서 앞으로 영상 에 입력된 데이터가 주변 여건에 관계없이 정확하게 속 도 측정이 가능한 영상처리에 대한 연구가 필요하다.
References
[1] http://blog.naver.com/gmlwo0216?Redirect=
Log&logNo=60177659791 Speed cameras principles [2] Matlab/Simulink, Image Acquisition ToolBox, Video
and Image Processing Blockset
[3] http://www.cybernet.co.jp Tracking Cars Using Background Estimation
[4] Yong-Ho Moon “An Efficient DCT Calculation Method Based on SDA” The Korean Institute of Communications and Information Sciences Vol. 28, No. 6, pp.602-607, 2003
[5] Beom-Seok Kim, Sung-il Park, Young-Hyuk Ko,
“Vision-based Real-time Velocity Detection Method”, Proceedings of the Korean Institute of Information and Communication Sciences Conference, pp 301~304, 2006
[6] Beom-Seok Kim, Sung-il Park, Young-Hyuk Ko,
“Motion Energy Analysis using SAD”, Proceedings of the Korean Institute of Information and
Communication Sciences Conference, pp615~618, 2007
[7] Hyeong-Seon Park, Jun-Kyu Yoon, Jong-Han, Lim,
"Vehicle Behavior Characteristics According to the Change of Vehicle Speed and Road Vertical Grades", IIBC, VOL. 14 No. 4, pp. 165~172, August 2014
[8] Kyu-Woong Lee, “Implementation of Video Surveillance System with Motion Detection based on Network Camera Facilities”, IIBC, VOL. 14 No.
1, pp.169~177, 2014.
저자 소개
박 성 일(Sung-il Park)
∙2010년 : 전남대학교 전자정보통신공 학과 박사
∙2006년 ∼ 2010년 : 동신대학교 정보 통신공학과 전임강사
∙2014년 ∼ 현재 : 동신대학교 정보통 신공학과 조교수
<관심분야 : RF 부품설계, 소형안테나 설계 초고주파 회로 설 계>
문 종 대(Jong-Dae Mon)
∙1996년 : 조선대학교 물리학과 이학 박사
∙1991년 ~ 현재 : 동신대학교 전기공 학과 교수
<관심분야 : 전기전자재료, 센서>
고 영 혁(Young-hyuk Ko)
∙1990년 : 건국대학교 전자공학과 공 학박사
∙1994년 ~ 1996년 : 리혼대학교 전자 공학과 Post Doc
∙1990년 ~ 현재 : 동신대학교 정보통 신공학과 교수
<관심분야 : 전자회로, 이동체 안테나 설계, 초고주파회로 설 계, EMI/EMC>