ISSN 1598-0170 (Print) ISSN 2287-1136 (Online) http://www.jksii.or.kr 안드로이드기반의도로밝기측정어플리케이션구현 A Road Luminance Measurement Application based on Android 최영환 1 김홍래 2 홍민 3* Young-Hwan Choi Hongrae Kim Min Hong 요 최근 5 년간의주 야간별교통사고통계에따르면대부분의자동차교통사고는주간보다야간에더많이발생했다. 교통사고는다양한원인으로발생하게되는데그중중요한요소는조명미설치또는조명위치의부적합으로운전자의시야혼란을야기하여교통사고를유발하게된다. 본논문은부적절한도로조명시설위치와미설치구역을파악하고관련정보들을데이터베이스화하였다. 이를위해운전자의위치정보, 주행정보, 도로밝기정보를스마트폰을이용하여실시간으로데이터베이스서버에저장하는도로밝기측정어플리케이션을설계및구현하였다. 본어플리케이션은안드로이드 NDK 을이용하여 Native C/C++ 환경에서구현되었으며, 이에따라자바나다른언어로작성된어플리케이션보다연산속도를향상시켰다. 도로밝기를측정하기위하여카메라영상인 RGB 색공간의영상을 YCbCr 색공간의영상으로변환하여휘도를측정한다. 이를위해먼저차선을검출하고도로밝기검출영역의휘도값을계산하여데이터베이스에저장한다. 또한스마트폰의카메라를이용하여실시간으로도로의영상을입력받고도로의차선부분에대한관심영역을지정하여연산속도를향상시켰다. 관심영역의영상은 Grayscale 영상으로변환하고 Canny 에지검출기를사용하여외곽선을추출하고 Hough line transform 을적용하여차선의후보군을선별한다. 선별된후보차선의기울기를계산하여양쪽의차선을선정한다. 양쪽차선이검출되면차선의교차점으로부터아래로 20 픽셀의높이를가진삼각형을도로밝기측정범위로설정한다. 삼각형부분의모든픽셀에대한 R, G, B 값을추출하여 Y 값을계산하고픽셀밝기값의평균을 0 부터 100 사이의값으로계산하여검은색부터초록색으로도로의밝기를표현하였다. 계산된 60m 전방의도로밝기값은스마트폰의 GPS 센서를통해측정된운전자의주행정보와위치정보를획득하여 10 분간격으로무선통신을통해데이터베이스서버에저장하였다. 향후수집된도로밝기정보들은스마트폰어플리케이션이나차량내비게이션을통해운전자들에게조심운전을경고하거나효율적인도로조명관리를위한개보수계획에반영될수있을것으로기대된다. 주제어 : 영상처리, 차선검출, 안드로이드 NDK, 스마트폰, 도로밝기측정, GPS 센서 약 ABSTRACT According to the statistics of traffic accidents over recent 5 years, traffic accidents during the night times happened more than the day times. There are various causes to occur traffic accidents and the one of the major causes is inappropriate or missing street lights that make driver s sight confused and causes the traffic accidents. In this paper, with smartphones, we designed and implemented a lane luminance measurement application which stores the information of driver's location, driving, and lane luminance into database in real time to figure out the inappropriate street light facilities and the area that does not have any street lights. This application is implemented under Native C/C++ environment using android NDK and it improves the operation speed than code written in Java or other languages. To measure the luminance of road, the input image with RGB color space is converted to image with YCbCr color space and Y value returns the luminance of road. The application detects the road lane and calculates the road lane luminance into the database sever. Also this application receives the road video image using smart phone's camera and improves the computational cost by allocating the ROI(Region of interest) of input images. The ROI of image is converted to Grayscale image and then applied the canny edge detector to extract the outline of lanes. After that, we applied hough line transform method to achieve the candidated lane group. The both sides of lane is selected by lane detection algorithm that utilizes the gradient of candidated lanes. When the both lanes of road are detected, we set up a triangle area with a height 20 pixels down from intersection of lanes and the luminance of road is estimated from this triangle area. Y value is calculated from the extracted each R, G, B value of pixels in the triangle. The average Y value of pixels is ranged between from 0 to 100 value to inform a luminance of road and each pixel values are represented with color between black and green. We store car location using smartphone's GPS sensor into the database server after analyzing the road lane video image with luminance of road about 60 meters ahead by wireless communication every 10 minutes. We expect that those collected road luminance information can warn drivers about safe driving or effectively improve the renovation plans of road luminance management. keyword : Image processing, lane detection, android NDK, Smartphone, Road luminance measurement, GPS sensor 1 Department of Computer Science, Soonchunhyang University, Asan-si, Chungcheongnam-do, 336-745, Korea. 2 Department of Electronics and Information Engineering, Soonchunhyang University, Asan-si, Chungcheongnam-do, 336-745, Korea. 3 Department of Computer Software Engineering, Soonchunhyang University, Asan-si, Chungcheongnam-do, 336-745, Korea. * Corresponding author (mhong@sch.ac.kr) [Received 31 January 2015, Reviewed 9 February 2015, Accepted 7 April 2015] 본연구는순천향대학교학술연구비지원으로수행하였음 본논문은 2014 년도인터넷정보학회추계학술발표대회우수논문추천에따라확장및수정된논문임 Journal of Internet Computing and Services(JICS) 2015. Apr.: 16(2): 49-55 49 http://dx.doi.org/10.7472/jksii.2015.16.2.49
1. 서론 2. 관련연구 도로교통공단에서제공하는 2009년부터 2013년까지의주 야간별교통사고통계 [1] 에따르면주간에발생한교통사고보다야간에발생한교통사고의건수가 6% 더많이발생했다. 표 1은주 야간별교통사고통계를표로나타낸것이다. 교통사고의원인은주로과속운전, 음주운전, 운전미숙및부주의등의운전자원인과도로환경, 차량고장등이있다. 도로환경문제는손상된도로와어두운조명시설과조명부재의원인들이있다. 도로에대한가로등미설치및부적절한설치는운전자의시야혼란을유발시켜대형교통사고원인이될수있다. 본논문은이러한도로의환경문제를분석하기위해서야간환경의도로밝기를스마트폰비디오영상을통해측정하는어플리케이션을설계및구현하였다. ( 표 1) 주 야간별교통사고통계 (Table 1) Statistics of car accident in the daytime and nighttime ( 단위 : 건 ) 년도 2009 2010 2011 2012 2013 합계 주간 2,566 2,392 2,325 2,474 2,288 야간 2,959 2,843 2,686 2,691 2,588 합계 5,525 5,235 5,011 5,165 4,876 12,045 (47%) 13,767 (53%) 25,812 (100%) 본논문에서구현된어플리케이션은차량에스마트폰을설치하여도로를주행하면서실시간으로도로의정보들을수집하게된다. 카메라영상을통하여주행하고있는도로의차선검출을통하여올바른주행방향파악과사용자시야에서전방에보이는도로의밝기를측정한다. 실시간으로저장되는데이터는스마트폰의 GPS 센서를통하여차량의위치계산을위한현재위 경도, 주행각, 주행속도를무선인터넷을통해일정시간별로데이터베이스서버에저장한다. 2.1 안드로이드 NDK ( 그림 1) 안드로이드 NDK 의구조 (Figure 1) Structure of Android NDK 안드로이드 NDK(Native Development Kit) 는안드로이드환경에서 C/C++ 언어로코드를작성하여사용할수있는개발환경을제공한다. C/C++ 의코드를컴파일하고 Java native interface 를통해서코드를동작할수있도록한다. Java 로작성된코드는 Virtual machine 에서동작하고 C/C++ 로작성된코드는 Native 로동작하기때문에 NDK 를사용하면 Java 코드보다 C/C++ 코드가일반적으로연산속도가더빠르다. 따라서 CPU 에연산이집중되는게임엔진, 신호처리와같은어플리케이션개발환경에서주로사용한다. 아래그림 1 은안드로이드 NDK 의구조 [2] 를보여주고있다. 기존의 Android 플랫폼에서구현기술에따른화질개선연산성능비교연구 [3] 에서는안드로이드환경에서이미지의명암비신장연산을사용하여영상의질을향상시키는방법을 C/C++, 자바, SIMD(Single Instruction Multiple Data) 기반의 NEON 을사용하여구현하고연산시간을비교하였다. 실험결과자바코드보다 C/C++ 와 NEON 코드의연산속도가각각 55-78 배, 50-76 배향상된것으로나타났다. 따라서본논문에서는비디오이미지영상의질을향상시키고처리속도를향상시키기위해서안드로이드 NDK 를사용하여 C/C++ 코드를작성하여도로밝기측정어플리케이션을구현하였다. 2.2 관심영역 영상처리알고리즘은일반적으로입력이미지의모든화소또는화소의그룹에대하여연산을수행되며일반 50 2015. 4
적인 PC 의환경에서도많은연산시간이소요된다. 특히스마트폰은 PC 에비해연산성능이월등히떨어지며따라서영상처리알고리즘을수행하기위한최적화가필요하다. 불필요한연산시간을감소시키고연산알고리즘을최적화하는것이매우중요하다. 차선검출을위하여주행중인차량에서스마트폰으로촬영한도로영상에서차선의위치는대부분영상의중앙과하단부분에위치하게된다. 본논문에서는스마트폰을차량에설치하고차선검출을위하여카메라가하 중단부분을촬영하도록고정시키고, 차선이영상의중앙과하단에위치한다는가정하에이부분을관심영역으로설정하여불필요한부분에대한연산을제거하였다. 따라서전체입력영상 640 480 크기의이미지에서 ROI(Region of Interest) 의크기를 426 240 픽셀로설정하여이영역에서차선을검출하였다. 2.3 차선검출 차선검출은많은영역에서사용이되는기초기술로자동주행, 차선이탈방지와같은다양한연구에사용되고있으며차선검출에관하여많은방법들이연구되고있다. 카메라기반야간차선인식률개선을위한영상처리알고리즘에대한연구 [4] 에서는에지검출기의에지검출결과를비교하고, 일반화히스토그램스트래칭을통하여영상의밝기를조절하여야간환경에서차선인식률을개선하였다. 해당연구의야간차선인식률및인식거리개선을위한알고리즘은관심영역을 10 단계로설정하고각각의관심영역에독립된각도별마스크를적용하여차선검출을최대화하고실험을통해검증하였다. 아래의그림 2 는일반화히스토그램스트래칭의예 [5] 를나타낸것이다. 노면상태변화에강인한에지검출을통한차선인식에대한연구 [6] 에서는차선인식률을향상시키기위해 Canny edge 검출기를사용할때빛의양, 촬영환경등의환경변화에맞도록변수를조절하여차선을정확하게추출하는방법을제안하였고, 도로의노면상태와차선사이의명암값에따라에지검출시파라미터를적절하게조절해차선인식률을향상시켰다. 도로환경변화에강인한차선검출방법 [7] 에서는도로의노후로인한페인트손상, 기상환경등의환경변화에강인한차선검출알고리즘을제안하였다. 영상에서차선의폭을이용하여후보영역을추출하고추출된영역을모델링기법을적용하여차선을판단하였다. 차선정보를기준으로차선후보영역에가중치를부여하여흐린차선도검출가능하게하였다. 제안한알고리즘을실험을통해검증하였으며평균 92% 의정확도를나타내었다. 2.4 색모델카메라로부터입력받은영상은정의된색모델을기반으로영상의정보를처리하는데, 관련연구들은다양한색모델들을사용하여왔다 [8][9][10]. 본논문에서는카메라로받은입력영상과스마트폰에출력되는화면은 RGB 색공간 [11] 을사용하였고, 도로의밝기를측정하기위한색공간은 YCbCr 색공간 [12][13] 을사용하였다. 다음의그림 3과같이 RGB 색공간은빨강, 녹색, 파랑색을기본색으로표현하며 3가지색을혼합하면밝아지는가산혼합방식이다. ( 그림 3) RGB 와 YCbCr 색모델 (Figure 3) RGB and YCbCr color model ( 그림 2) 일반화히스토그램스트래칭의예 (Figure 2) An example of a generalization of histogram stretching 본논문에서는도로의밝기를측정하기위해서 RGB 색공간을 YCbCr 색공간으로아래의식 1을사용하여변환하여밝기를계산한다. YCbCr 의 Y는휘도를, Cb과 Cr는색차성분을의미한다. 본논문에서는도로의밝기를 Y의값으로사용하였다. 한국인터넷정보학회 (16 권 2 호 ) 51
(1) 3. 도로밝기측정알고리즘본논문에서구현한어플리케이션은카메라의이미지처리연산을효율적으로할수있도록 OpenCV 라이브러리를사용하였다. 그림 4는본논문에서구현한도로밝기측정알고리즘이다. 먼저카메라로촬영된차량의주행영상을입력받는다. 입력된영상은 640 480 픽셀의크기를가지며행렬로 C/C++ 코드영역으로복사되어전달되며복사된행렬을윤곽선검출을위하여 grayscale 영상으로변환한다. 변환된영상에 Gaussian 필터를적용해영상의잡음을제거한다. 잡음이제거된영상에연산속도를향상시키기위해관심영역을설정한다. 설정된관심영역에서차선의에지를검출하기위해서 Canny 에지검출기를이용하였다. 고차선에지를검출한화면이다. 검출된에지후보군들에서직선으로된에지를추출하기위해서 Hough Line Transform을적용했다. Hough Line Transform은 2차원평면에있는점들중에직선을찾는연산이다. 차선은영상내에서직선형태로존재하므로 Hough Line Transform을통해차선을검출한다. 이직선들중에서차선이포함되어있기때문에실제차선을선별해야한다. 그림 6과같이다양한차선의후보군으로부터차선을검출하기위해검출된직선의기울기값이 0.5보다크고 1.1보다작으면왼쪽차선으로선별하고, 2보다크고 3보다작으면오른쪽차선으로선별하였다. 또한 ROI 영역에서검출된차선을확장시켜그림 7, 9와같이전체이미지영상에차선으로표시하였다. ( 그림 5) ROI 설정후외곽선추출화면 (Figure 5) Extracted edges in image of ROI ( 그림 4) 도로밝기측정알고리즘 (Figure 10) Algorithm of road luminance measurement Canny 에지검출기는더블임계값기법을사용하는데, 이기법은잡음을제거와차선검출의정확도를향상시킬수있다. 본논문에서는두임계값을각각 70과 150으로지정하였다. 영상의값이 70보다작고 150보다크면잡음으로처리되고 70부터 150사이에있다면에지로판단한다. 다음그림 5는카메라영상에관심영역을설정하 ( 그림 6) 차선의후보군 (Figure 6) Candidate lanes in image 52 2015. 4
본논문은차량의전조등에의해상대적으로밝은도로밝기를제공하는부분을제외하고차량의제동거리를고려하여전방 60m 부분의도로밝기를검출하여차량운전자들에게도로밝기정보를제공하도록설계하였다. 카메라를통해입력되는이미지의두차선이교차하는부분은주행하는차량으로부터약 60m 전방지역이므로이부분의도로의밝기를측정하였다. 다음그림 7 은도로밝기측정화면으로검출된차선의교차점의좌표를계산하고이좌표부터 20픽셀아래까지차선안의빗금으로표현된삼각형부분에대한밝기를측정하였다. 밝기측정은왼쪽에서오른쪽방향으로이동하면서위에서아래로삼각형내의모든픽셀의 R, G, B 값을각각추출하여 YCbCr 색공간으로변환후밝기를의미하는 Y를앞의식 1로계산하였다. 앞서차선검출알고리즘을통해검출된양차선이이상없이검출되었을때, 매 1초마다삼각형의측정범위의모든위치의밝기값을계산하고스마트폰에내장된 GPS 센서를통해위도, 경도, 주행각, 주행속도를계산하고해당월, 시간을데이터베이스서버에저장하였다. 본논문에서는 SQLite[14] 를데이터베이스로사용하였으며 SQLite는대규모의작업보다는모바일디바이스환경처럼중 소규모에적합하고 SQLite API는라이브러리호출만허용하여프로그램의구동속도를향상시킨다. 다음그림 8은도로밝기측정어플리케이션의데이터베이스스키마이다. 5. 측정결과양쪽차선이정상적으로검출되면차선을빨강색직선으로출력하고도로의밝기를측정하였다. 측정범위의평균밝기값을식 2를이용하여 0과 100사이의값으로바꾸어출력하고검은색부터초록색까지 100단계를그림 7의아래와같이삼각형으로시각화하였다. 는도로의밝기, 는삼각형을구성하는각픽셀을의미한다. 결과화면의좌측상단에는초당연산되는프레임수, 위치정보, 주행정보를출력하며그림 9는본논문에서구현한도로밝기측정어플리케이션의모습이다. ( 그림 7) 도로밝기측정화면 (Figure 7) Measuring road luminance in image (2) 4. 도로정보및주행정보저장 ( 그림 8) 데이터베이스스키마 (Figure 8) Database Scheme ( 그림 9) 도로밝기측정어플리케이션 (Figure 9) An image of road luminance measurement application 한국인터넷정보학회 (16 권 2 호 ) 53
6. 활용방안 참고문헌 (Reference) 다음의그림 10은최종시스템의활용가능구성도이다. 본어플리케이션은수집된도로정보들을데이터베이스서버에매10분단위로무선통신을통해매초마다동기화되어저장된도로정보들을전송한다. 서버는사용자들로부터전송받은데이터베이스를저장하며데이터는위치, 월, 시간순으로정렬한다. 특정위치의정보에대한월, 시간에해당하는데이터가중복이발생하면해당데이터의밝기의평균값으로업데이트하여더욱정확한정보들이저장되도록할수있다. ( 그림 10) 예상시스템구성도 (Figure 10) A block diagram of expected system 이렇게수집된정보들은차량내비게이션이나도로밝기정보안내스마트폰어플리케이션을통해해당위치에대한각시간별도로밝기정보를제공하여운전자에게위험구간에대한경고메시지를음성으로제공해주는시스템으로구현될수있어사용자의야간차량운전에대한안전에큰도움이있을것으로기대한다. 7. 결론본논문에서는영상처리기술을이용하여스마트폰기반의도로밝기측정어플리케이션을구현하였다. 본어플리케이션은안드로이드 NDK를사용하여영상처리연산속도를향상시키고간단한연산을통해도로의밝기를빠르게측정하였다. 본논문의도로밝기측정어플리케이션을활용하면다른특수한전문장비의설치없이스마트폰으로도로의밝기에대한정보들을수집할수있어수집된도로정보를통해운전자들에게조심운전을경고하거나효율적인도로조명관리를위한개보수계획에반영될수있을것으로기대된다. [1] The road traffic authority traffic accident analysis system, http://taas.koroad.or.kr/service/accidentinfo/accidentmain.jsp?link=accident3 [2] Structure of Android NDK, http://blog.xieles.com/wp-content/uploads/2014/03/jni.png [3] J. Lee, G. Lee, C. Jung, Performance comparison of implementation technologies for image quality enhancement operations on android platforms, Journal of Digital Contents Society, Vol.14, no.1, pp. 7-14, Mar. 2013. http://dx.doi.org/10.9728/dcs.2013.14.1.7 [4] H. Kim, S. Lee, A study on image processing algorithms for improving lane detectability at night based on camera, Transactions of the Korean Society of Automotive Engineers, Vol.21, no.1, pp. 51-60, 2013. http://dx.doi.org/10.7467/ksae.2013.21.1.051 [5] An example of a generalization of histogram stretch ing, http://kimhj8574.egloos.com/viewer/5728390 [6] B. Gwon, D. Shin, K, Park, A study on a lane detection using robust edge detection for the road condition changes, Institute of Control, Robotics and Systems, ICROS annual conference, Vol.26, pp. 366-370, May. 2011. https://dbpia.co.kr/journal/articledetail/3018453 [7] B. Kim, W. Kim, Robust lane detection method in varying road conditions, The Institute of Electronics Engineers of Korea, Vol.49, no.1, pp. 88-93, Jan. 2012. http://www.dbpia.co.kr/journal/articledetail/1618148 [8] J. Chun, Vision-based motion control for the immersive interaction with a mobile augmented reality object, Journal of Internet Computing and Services, Vol.12, no.3, pp. 119-129, June. 2011. https://dbpia.co.kr/journal/articledetail/1482931 [9] W. Kim, J. Chun, A Hybrid Approach of Efficient Facial Feature Detection and Tracking for Real-time Face Direction Estimation, Journal of Internet Computing and Service, Vol.14, no.6, pp. 117-12, Dec. 2013. http://dx.doi.org/10.7472/jksii.2013.14.6.117 [10] J. Yoo, S. Ohm, M. Chung, Maximum-Entropy Image Enhancement Using Brightness Mean and Variance, 54 2015. 4
Journal of Korean Society Internet Information, Vol.13, no.3, pp. 61-73, Apr. 2012. http://dx.doi.org/10.7472/jksii.2012.13.3.61 [11] RGB color space, http://ko.wikipedia.org/wiki/ RGB_%EA%B0%80%EC%82%B0%ED%98%BC%ED %95%A9 [12] YCbCr color space, http://ko.wikipedia.org/wi ki/ycbcr [13] YCbCr color model, http://en.wikipedia.org/wiki /Talk%3AYCbCr [14] SQLite, http://ko.wikipedia.org/wiki/sqlite 저자소개 최영환 (Young-Hwan Choi) 2015 년순천향대학교컴퓨터소프트웨어공학과졸업 ( 학사 ) 2015~ 현재순천향대학교대학원 학과졸업 ( 석사 ) 관심분야 : 다이나믹시뮬레이션, 영상처리 etc. E-mail : compust@sch.ac.kr 김홍래 (Hongrae Kim) 1986 년연세대학교전기공학과졸업 ( 학사 ) 1989 년연세대학교대학원전기공학과졸업 ( 석사 ) 1995 년 Texas A&M University 전기공학과졸업 ( 박사 ) 1995~ 현재순천향대학교전자정보공학과교수관심분야 : 시스템모델링, 대형시스템의컴퓨터응용해석 E-mail : hongkim@sch.ac.kr 홍민 (Min Hong) 1995 년순천향대학교전산학과 ( 공학사 ) 2001 년 University of Colorado at Boulder( 공학석사 ) 2005 년 University of Colorado at Denver( 이학박사 ) 2006 년 ~ 현재순천향대학교컴퓨터소프트웨어공학과교수관심분야 : 컴퓨터그래픽스, 다이나믹시뮬레이션, 바이오인포매틱스, 영상처리 E-mail : mhong@sch.ac.kr 한국인터넷정보학회 (16 권 2 호 ) 55