1. 서론
최근 자율주행 기술의 발전으로 교통신호 및 보행신호의 검출과 인식이 중요한 연구 주제로 부상하였다. 특히, 스마트시티 구축의 측면에서 도로 교통 분야는 보행신호의 변화에 따른 도로 조명 시스템의 조절과 같은 새로운 요구를 제기하고 있다. 이에 따라 교통신호 및 보행신호의 안정적인 활용은 점점 중요성을 갖게 되었으며, 주변 환경과 조명의 변화에 대응하기 위한 연구가 진행 중에 있다.
이 연구에서는 전통적인 방법으로 컬러 영상에서 가공된 정보를 이용하여 가우스 분포 분류기를 구축하였으나, 신호등의 검출을 위해서는 카메라의 노출시간이 충분히 길어야 한다[1]. 이에 대비하여, 마코브 체인을 활용한 알고리즘[2]과 Blancard의 신경망[3]을 이용한 소벨 에지 필터 및 Freeman 코드를 적용한 다른 알고리즘들은 높은 복잡도로 인해 실시간 처리가 어렵거나 높은 컴퓨팅 파워가 필요하여 적용하기 어려운 문제점을 가지고 있다. 최근에는 딥러닝을 기반으로 한 알고리즘들[4-6]이 계속 연구되어 오며, 이러한 방법들은 인식 성능에서 향상을 보이고 있으나, 위에서 언급한 것처럼 높은 복잡도로 인해 실시간 처리를 위해서는 고성능의 컴퓨터나 application specific integrated circuit (ASIC)의 사용이 요구된다. 이전연구[7]에서 DSP에서 운용가능한 낮은 복잡도의 보행자 신호 검출 알고리즘에 대해 선행연구를 하였으며, 본 논문에서는, 이를 전체 시스템으로 확장한 보행등의 구현에 관해 논의한다.
본 논문에서는 2장에서 머신비전 기반 보행자 신호 검출 알고리즘을 탐구하고, 3장에서는 이를 활용한 보행등의 구현에 대해 다룬다. 또한, 4장에서는 이러한 연구의 결론을 논의한다.
2. 머신비전 기반 보행자 신호 검출 알고리즘
야간에 신호등을 검출해야 할 때, 상대적으로 밝은 조명과 같은 물체의 강도(intensity)는 포화 되어 빛 번짐 현상이 발생한다. 이러한 상황에서 붉은 등은 주로 신호등의 위쪽 영역에서 검출되며, 녹색 등은 신호등의 아래쪽 영역에서 검출되게 된다. 그러나 빛 번짐현상으로 인해 검출 오류가 증가할 수 있다. 또한, 영상 센서에서 기본적으로 출력되는 RGB 색 공간 데이터를 활용할 경우, 신호등의 광 출력값에 따라 색상 픽셀값이 변화하므로 검출 오류가 더 높아질 우려가 있다.
이와 같은 이유로 검출 오류를 최소화하기 위해, 본 논문에서는 주간 및 야간에도 안정된 인식 성능을 가진 보행신호 검출기의 알고리즘에 관해 탐구하고자 한다.
그림 1은 제안하는 보행자 신호 검출 알고리즘의 블록 다이어그램을 나타내고 있으며, RGB 색공간을 HSV(Hue Saturation Value) 색공간으로 변경, 설정된 임계값에 의한 이진화, Noise reduction을 위한 Opening 등을 활용한 Morphological filtering, 라벨링 및 인식, 인식 결과 출력으로 구성되어 있다.
그림 1. 제안된 보행자 신호 검출 알고리즘의 블록 다이어그램.
Fig. 1. Block diagram of the proposed traffic signal detection algorithm.
신호등에 포함된 색상은 붉은색과 초록색이며 상대적으로 대비가 큰 값으로 구성되어 있지만 RGB공간에서 색의 분해가 어려운 문제가 있다. 이를 해결하기 위해서 색을 구분하기에 용이한 색상 성분이 포함되어 있는 HSV 색공간을 이용해 신호등 색상을 구분할 수 있도록 하였다.
그림 2는 웹캠을 통해 실시간으로 입력되는 영상에서 HSV 색공간을 이용해 파란색 물체를 검출한 결과 이미지를 나타낸다. 그림 2의 (a)는 H만을 사용해 검출한 결과를 나타낸다. 그림과 같이 실제 환경에서는 조명 등 광원의 영향으로 H만을 적용해 색상을 검출하면 상당한 노이즈가 발생하는 것을 확인할 수 있다. 그림 2의 (b)는 트랙 바를 활용해 S와 V 또한 검출에 적용한 결과를 나타낸다. 그림 2 우측 결과와 같이 검출결과가 향상된 것을 확인할 수 있다. 하지만 Spike noise가 발생하여, 이에 모폴로지 기법 중 opening 연산을 활용해 영상의 잡음을 제거하도록 한다.
그림 2. 웹캠을 통해 실시간 입력되는 영상에서 파란색 물체를 검출한 결과 이미지.
Fig. 2. Blue object detection result in real-time video data from webcam.
Opening 연산은 침식연산 후 팽창연산을 사용하는 알고리즘으로 돌출 제거, 좁은 연결을 끊거나 윤곽선을 부드럽게 만드는데 적용된다. 그림3은 앞서 설명한 알고리즘을 적용해 웹캠에서 입력되는 실시간 영상에서 두 가지 이상 색상을 검출한 결과를 나타낸다. 본 연구에서는 이를 활용해 그림 3과 같이 도출된 영역에 대해 labeling을 수행, 중심 좌표, 영역의 크기 등 영상처리에 유용한 정보를 noise 없이 도출했다.
그림 3. 웹캠에서 입력되는 실시간 영상에서 두 가지 색상의 물체를 검출한 결과.
Fig. 3. Result of the detecting two color objects in real-time video input from webcam.
그림 4는 주간에 관찰되는 신호등의 RGB 및 HSV의 RAW 데이터를 나타낸다. 표시된 좌표는 영역이 지정된 보행신호등 두 광원의 중심을 지정하였다. 주변 간판이나 조명 등 다른 광원이 설치되어 있지 않으면, 정지신호의 경우, RGB 채널에서도 적색에 해당하는 R값이 231로 혹은 G와 B값 대비 상당히 크게 도출됨을 확인하였다.
그림 4. 주간 보행자 신호등에서 관찰되는 신호등의 RGB 및 HSV 값의 RAW 데이터.
Fig. 4. RGB and HSV values of traffic lights observed at daytime pedestrian traffic lights.
본 논문에서 제안하는 보행신호 검출기는 고정된 위치에서 동작하므로 신호등 위치 검출은 불필요하다. 설치자가 설치 시에 앱을 통해서 모듈에서 바라보는 건너편 신호등 위치와 크기를 포함한 신호등의 위치를 지정하게 되면, 지정된 영역의 상반부는 정지 신호 영역으로 하반부는 보행신호 영역으로 인지하게 된다. 그림4의 결과와 같이 주간의 경우, 신호가 출력되는 영역만 정확히 설정해 준다면 서로 대비되는 색상 차로 인해 높은 수준의 검출률을 기대할 수 있다.
그림 5에서 야간 보행자 신호등의 경우에도 적색 신호시, HSV 색공간에서는 H 값이 적색 영역에 해당하는 10% 이하 값을 도출하는 것을 확인하였으며, 녹색 신호에는 50% 정도의 값이 도출되는 것을 확인하였다. 야간의 경우에는 주간과 다르게 영역이 고정되어 있더라도 빛 번짐 현상으로 인해 검출 오류가 발생할 수 있음을 확인하였다. 또한 녹색 및 청색에 해당하는 G 및 B 값 또한 상당히 크게 관측되기 때문에 RGB 색공간을 활용해 영상 처리하기에 어려움이 있음을 확인하였다.
그림 5. 야간 보행자 신호등에서 관찰되는 적색 신호등의 RGB 및 HSV 값의 RAW 데이터.
Fig. 5. RGB and HSV values of red traffic lights observed at night pedestrian traffic lights.
그림 6은 보행신호등 신호 판별에 사용된 표본 이미지를 보여주고 있다. 세부적으로는, 주간과 야간의 이미지는 물론, 상가 광고판 등 다른 광원의 영향을 받는 상황도 포함하고 있음에도 불구하고 100% 정상적으로 신호가 판별되었다.
그림 6. 보행신호등 신호 판별에 사용한 표본 이미지
Fig. 6. Sample images used to determine pedestrian traffic light signals
3. 보행자 신호검출 기반 보행 지시등의 구현
보행등은 보행자 신호등을 인식하고, 인식된 신호를 기반으로 보행등을 통해 보행자의 주의를 환기시킴으로써 사고를 예방 할 수 있는 시스템이다. 본 시스템의 하드웨어는 보행등 컨트롤 부와 머신비전 기반 보행신호등 검출 기능을 갖는 보행등 시스템의 구성은 그림 7과 같다.
그림 7. 머신비전 기반 보행신호등 검출 기능을 갖는 보행등의 시스템 구성
Fig. 7. Block diagram of a walking-aid light with machine vision-based pedestrian signal detection
보행등은 50W급 LED와 전력을 공급할 수 있는 정전압 인버터인 LCOT200HC를 포함하고 있으며, 보행등 컨트롤 모듈을 통하여 50W급 LED를 제어하게 된다. 또한 보행신호 검출모듈은 횡단보도 반대편의 보행신호를 검출하고 이를 보행등 컨트롤 모듈에 RS232규격을 통해 전달하여 보행등 컨트롤 모듈이 상황에 맞게 보행등을 제어하도록 한다. 이와 동시에 검출된 신호는 MQTT 프로토콜을 통해 서버에 전송되어, 서버에서는 거리의 보행등 점멸 상태를 관제할 수 있는 시스템으로 구성된다.
보행등컨트롤 모듈은 MQTT 프로토콜 및 보행등 제어를 위한 각종 스레드가 동작하도록 Xtensa LX6 Dual-core 32bit RISC CPU를 탑제한 Espressif 사의 ESP32에 FreeRTOS를 이용하여 구현하였다. 그림 8은 보행등 컨트롤 모듈의 구현된 모습을 보여주고 있다. LED구동을 위해 200W급 48V 정전압 인버터인 LCOT200HC에서 전원을 인가 받고, Power MOSFET인 IXFA5N5OP3을 이용하여 LED 모듈을 제어하게 된다. 이때 제어신호는 ESP32의 GPIO를 이용하여 PWM을 제어 상황에 맞게 생성하게 된다.
그림 8. 보행등 컨트롤 모듈의 구현
Fig. 8. Implementation of walking light control module
또, 보행신호 검출모듈은, 보행신호 검출을 할 수 있는 OpenCV 라이브러리가 구동될 수 있도록 Raspberry Pi Zero를 이용하여 구현하였으며, 검출된 정보를 RS232를 이용하여 보행등컨트롤 모듈과 연결되게 된다. 그림 9는 검출기로 바라본 건너편 보행신호등 및 위치가 지정된 모습을 보여주고 있다.
그림 9. Raspberry zero에 OpenCV 및 Flask 프레임워크를 사용해 구현된 검출기
Fig. 9. Detector implemented using OpenCV and Flask framework on Raspberry zero
4. 결론
보행자 신호등 검출 모듈은 제한된 컴퓨팅 자원을 가지고 있는 플랫폼에서 동작시킬 수 있는 머신비전 알고리즘을 제안하였다. 주변의 광 영향을 덜 받도록 HSV 색공간에서 검출을 수행하였으며 이진화 및 모폴로지 연산, 라벨링을 순차적으로 적용하여 빛 번짐 현상 등에 대응할 수 있는 검출 알고리즘을 제안했다. 또한, 비교적 단순한 pipelines로 머신비전 알고리즘이 구성되어 있어, raspberry zero와 같은 임베디드 시스템에 OpenCV와 같은 비전 라이브러리를 이용하여 충분히 구현되었다.
또, 50W급 LED를 구비하고 보행등을 제어하는 보행등 제어 모듈은 보행자신호 검출모듈과 RS232로 연동되어 검출된 보행신호에 따라 보행등 제어를 할 수 있으며, WiFi와 MQTT 프로토콜을 이용하여 서버에 검출 정보와 제어 상태를 전달하여 다수의 보행등을 관제할 수 있도록 하였다.
References
- U. Franke, D. Gavrila, S. Gorzig, F. Lindner, F. Puetzold, C. Wohler, Autonomous driving goes downtown, IEEE Intelligent Systems, Vol. 13, No. 6, pp. 40-48, 1998. https://doi.org/10.1109/5254.736001
- Zhuowen Tu, Automatic Recognition of Civil Infrastructure Objects in Mobile Mapping Imagery Using Markov Random Field, International Archives of Photogrammetry and Remote Sensing vol. XXXIII, Amsterdam, 2000.
- Marie de Saint Blancard, Road Sign Recognition: A Study of Vision-based Decision Making for Road Environment Recognition, Vision-based Vehicle Guidance pp 162-172, Springer-Verlag, 1992
- D. Tabernik and D. Skocaj, Deep Learning for Large-Scale Traffic-Sign Detection and Recognition, IEEE Transactions on Intelligent Transportation Systems, vol. 21, no. 4, pp. 1427-1440, 2020 https://doi.org/10.1109/TITS.2019.2913588
- Ayachi, R., Afif, M., Said, Y. et al. Traffic Signs Detection for Real-World Application of an Advanced Driving Assisting System Using Deep Learning. Neural Process Letters, no. 51, pp. 837-851, 2020.
- Zhang J, Huang M, Jin X, Li X, A Real-Time Chinese Traffic Sign Detection Algorithm Based on Modified YOLOv2, Algorithms. vol. 10, no. 4, 2017.
- J. Lee, H. An, J. Koo, A Study of Traffic Light Detection based on Machine Vision, Proceeding of Conference on Knowledge Information Technology and System, vol. 14, No. 2, pp. 135-138, Nov. 2020