KR102586899B1 - Sliding window correction method and device for platooning lane detection - Google Patents
Sliding window correction method and device for platooning lane detection Download PDFInfo
- Publication number
- KR102586899B1 KR102586899B1 KR1020210190666A KR20210190666A KR102586899B1 KR 102586899 B1 KR102586899 B1 KR 102586899B1 KR 1020210190666 A KR1020210190666 A KR 1020210190666A KR 20210190666 A KR20210190666 A KR 20210190666A KR 102586899 B1 KR102586899 B1 KR 102586899B1
- Authority
- KR
- South Korea
- Prior art keywords
- sliding window
- lane
- sliding
- image
- correction
- Prior art date
Links
- 238000012937 correction Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000001514 detection method Methods 0.000 title description 4
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 claims description 9
- 238000009825 accumulation Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 27
- 230000009977 dual effect Effects 0.000 description 13
- 238000002474 experimental method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- CURLTUGMZLYLDI-UHFFFAOYSA-N Carbon dioxide Chemical compound O=C=O CURLTUGMZLYLDI-UHFFFAOYSA-N 0.000 description 2
- 230000019771 cognition Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 229910002092 carbon dioxide Inorganic materials 0.000 description 1
- 239000001569 carbon dioxide Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W40/00—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
- B60W40/02—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
- B60W40/06—Road conditions
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60J—WINDOWS, WINDSCREENS, NON-FIXED ROOFS, DOORS, OR SIMILAR DEVICES FOR VEHICLES; REMOVABLE EXTERNAL PROTECTIVE COVERINGS SPECIALLY ADAPTED FOR VEHICLES
- B60J1/00—Windows; Windscreens; Accessories therefor
- B60J1/08—Windows; Windscreens; Accessories therefor arranged at vehicle sides
- B60J1/12—Windows; Windscreens; Accessories therefor arranged at vehicle sides adjustable
- B60J1/16—Windows; Windscreens; Accessories therefor arranged at vehicle sides adjustable slidable
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/14—Adaptive cruise control
- B60W30/16—Control of distance between vehicles, e.g. keeping a distance to preceding vehicle
- B60W30/165—Automatically following the path of a preceding lead vehicle, e.g. "electronic tow-bar"
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/588—Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0001—Details of the control system
- B60W2050/0043—Signal treatments, identification of variables or parameters, parameter estimation or state estimation
- B60W2050/0057—Frequency analysis, spectral techniques or transforms
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2300/00—Indexing codes relating to the type of vehicle
- B60W2300/12—Trucks; Load vehicles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2420/00—Indexing codes relating to the type of sensors based on the principle of their operation
- B60W2420/40—Photo, light or radio wave sensitive means, e.g. infrared sensors
- B60W2420/403—Image sensing, e.g. optical camera
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2420/00—Indexing codes relating to the type of sensors based on the principle of their operation
- B60W2420/40—Photo, light or radio wave sensitive means, e.g. infrared sensors
- B60W2420/408—Radar; Laser, e.g. lidar
-
- B60W2420/42—
-
- B60W2420/52—
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2556/00—Input parameters relating to data
- B60W2556/45—External transmission of data to or from the vehicle
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Y—INDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
- B60Y2200/00—Type of vehicle
- B60Y2200/10—Road Vehicles
- B60Y2200/14—Trucks; Load vehicles, Busses
- B60Y2200/145—Haulage vehicles, trailing trucks
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Transportation (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
본 발명은 슬라이딩 윈도우 이중 보정 방법 및 장치에 관한 것으로, 상기 방법은 적어도 차선을 포함하는 주행 영상의 현재 프레임에 대한 원본 이미지를 기초로 이진 이미지를 생성하는 단계; 상기 이진 이미지 상에서 x축을 기준으로 베이스 포인트를 결정하는 단계; 상기 베이스 포인트를 중심으로 기 설정된 크기의 제1 슬라이딩 윈도우를 생성하는 단계; 및 상기 제1 슬라이딩 윈도우를 기초로 상기 제1 슬라이딩 윈도우에 인접되면서 상기 이진 이미지 상의 y축 방향으로 누적되는 제2 슬라이딩 윈도우를 생성하는 단계;를 포함한다.The present invention relates to a sliding window double correction method and device, the method comprising: generating a binary image based on an original image for a current frame of a driving image including at least a lane; determining a base point based on the x-axis on the binary image; generating a first sliding window of a preset size centered on the base point; and generating, based on the first sliding window, a second sliding window adjacent to the first sliding window and accumulating in the y-axis direction on the binary image.
Description
본 발명은 슬라이딩 윈도우 이중 보정 기술에 관한 것으로, 보다 상세하게는 빈 슬라이딩 윈도우에 의한 위치 설정 오류를 해당 프레임의 이전 슬라이딩 윈도우 또는 이전 프레임의 정상 슬라이딩 윈도우를 통해 보정하는 슬라이딩 윈도우 이중 보정 기술에 관한 것이다.The present invention relates to a sliding window double correction technology, and more specifically, to a sliding window double correction technology that corrects positioning errors caused by an empty sliding window through the previous sliding window of the corresponding frame or the normal sliding window of the previous frame. .
자율주행 자동차의 한 분야인 군집주행(Truck platooning system)에 관한 연구가 꾸준히 진행되고 있다. 군집주행은 연비 절감 및 이산화탄소 배출 감소 그리고 안전성 향상 등의 이유로 많은 관심을 받고 있으며, 트럭 산업 분야에서 제기되고 있는 인력 부족 문제를 해결할 수 있는 대안으로 주목받고 있다.Research on truck platooning systems, a field of self-driving cars, is steadily progressing. Platoon driving is receiving a lot of attention for reasons such as reduced fuel efficiency, reduced carbon dioxide emissions, and improved safety, and is attracting attention as an alternative to solving the problem of manpower shortage in the truck industry.
트럭 군집주행은 여러 대의 트럭이 V2X 통신을 바탕으로 좁은 거리를 유지하면서 주행할 수 있으며, 고속도로 화물차 최고 속도 90km/h 기준 0.5초 Time-gap 적용 시 차간거리 12.5m를 유지하며 주행할 수 있다. 이때, FV(Following Vehicle)는 LV(Leading Vehicle)에 의해 많은 시야 가림 현상이 발생할 수 있다. 이는 자율주행 인지 과정을 더욱 어렵게 만들 수 있으며, 특히 횡방향 제어에 필요한 차선인지 과정에 많은 영향을 줄 수 있다. 일반적인 차선인지는 카메라 센서를 통해 들어온 이미지에서 소실점까지의 데이터를 기반으로 차선을 검출할 수 있다. 그러나, 군집주행의 경우 대부분의 차선이 LV에 의해 가려지게 되고, 그로 인해 제한된 데이터만을 이용하여 차선을 검출하는 동작이 수행될 수 있다.Truck platooning allows multiple trucks to drive while maintaining a narrow distance based on V2X communication, and when a 0.5-second time-gap is applied based on the maximum speed of highway trucks at 90 km/h, the inter-vehicle distance can be maintained at 12.5 m. At this time, the FV (Following Vehicle) may have a lot of visibility blocked by the LV (Leading Vehicle). This can make the autonomous driving cognitive process more difficult, and can especially have a significant impact on the lane cognitive process required for lateral control. General lane recognition can be done based on data from the image received through the camera sensor to the vanishing point. However, in the case of platooning, most lanes are obscured by the LV, and as a result, lane detection can be performed using only limited data.
군집주행이 이루어지는 고속도로의 차선은 많은 부분이 점선으로 되어 있으며, 점선 구간은 점선 길이 8m, 점선간 간격 12m로 이루어질 수 있다. 차간 거리가 12.5m까지 줄어드는 군집주행 상황에서는 얻어지는 데이터에서 차선이 없는 부분이 대부분을 차지하는 상황이 계속해서 발생할 수 있다. 이와 같이 제한된 데이터만을 이용하는 차선인지는 결국 정확도 저하로 이어질 수 있다. 군집주행의 차선인지 과정도 일반적인 차선인지와 같은 과정을 통해 이루어질 수 있으며, 위치 설정 오류는 차선인지의 여러 과정 중 슬라이딩 윈도우 과정에서 발생할 수 있다.Many of the lanes on highways where platooning occurs are dotted lines, and the dotted line section can have a length of 8m and an interval between dotted lines of 12m. In a platooning situation where the distance between vehicles is reduced to 12.5m, situations where no lanes occupy most of the obtained data may continue to occur. Suboptimal recognition using only limited data like this can ultimately lead to a decrease in accuracy. The lane recognition process for platooning can be accomplished through the same process as general lane recognition, and positioning errors can occur during the sliding window process among the various lane recognition processes.
본 발명의 일 실시예는 빈 슬라이딩 윈도우에 의한 위치 설정 오류를 해당 프레임의 이전 슬라이딩 윈도우 또는 이전 프레임의 정상 슬라이딩 윈도우를 통해 보정하는 슬라이딩 윈도우 이중 보정 기술을 제공하고자 한다.One embodiment of the present invention seeks to provide a sliding window double correction technology that corrects positioning errors caused by an empty sliding window through the previous sliding window of the corresponding frame or the normal sliding window of the previous frame.
실시예들 중에서, 슬라이딩 윈도우 이중 보정 방법은 적어도 차선을 포함하는 주행 영상의 현재 프레임에 대한 원본 이미지를 기초로 이진 이미지를 생성하는 단계; 상기 이진 이미지 상에서 x축을 기준으로 베이스 포인트를 결정하는 단계; 상기 베이스 포인트를 중심으로 기 설정된 크기의 제1 슬라이딩 윈도우를 생성하는 단계; 및 상기 제1 슬라이딩 윈도우를 기초로 상기 제1 슬라이딩 윈도우에 인접되면서 상기 이진 이미지 상의 y축 방향으로 누적되는 제2 슬라이딩 윈도우를 생성하는 단계;를 포함한다.Among embodiments, the sliding window dual correction method includes generating a binary image based on an original image for a current frame of a driving image including at least a lane; determining a base point based on the x-axis on the binary image; generating a first sliding window of a preset size centered on the base point; and generating, based on the first sliding window, a second sliding window adjacent to the first sliding window and accumulating in the y-axis direction on the binary image.
상기 이진 이미지를 생성하는 단계는 상기 원본 이미지 상에서 노이즈를 제거하는 단계; 상기 원본 이미지 상에서 상기 차선에 관한 관심 영역을 설정하는 단계; 상기 관심 영역의 이미지를 조감도 이미지(bird's eye view image)로 변환하는 단계; 및 상기 조감도 이미지를 상기 이진 이미지로 변환하는 단계를 포함할 수 있다.Generating the binary image includes removing noise from the original image; setting a region of interest regarding the lane on the original image; converting the image of the region of interest into a bird's eye view image; and converting the bird's eye view image into the binary image.
상기 베이스 포인트를 결정하는 단계는 상기 이진 이미지 상에서 각 좌표의 차선 픽셀 수를 나타내는 히스토그램(histogram)을 통해 각 차선의 기준으로서 상기 베이스 포인트를 결정하는 단계를 포함할 수 있다.Determining the base point may include determining the base point as a reference for each lane through a histogram representing the number of lane pixels at each coordinate on the binary image.
상기 제2 슬라이딩 윈도우를 생성하는 단계는 상기 제1 슬라이딩 윈도우 내에 존재하는 차선 데이터의 x축 좌표들의 평균값을 중심으로 상기 기 설정된 크기의 제2 슬라이딩 윈도우를 생성하는 단계를 포함할 수 있다.The step of generating the second sliding window may include generating a second sliding window of the preset size centered on the average value of x-axis coordinates of lane data existing in the first sliding window.
상기 제2 슬라이딩 윈도우를 생성하는 단계는 상기 제1 슬라이딩 윈도우 내에 상기 차선 데이터가 존재하지 않는 경우 제1 슬라이딩 윈도우 보정을 통해 상기 제2 슬라이딩 윈도우의 중심을 결정하는 단계를 포함할 수 있다.Generating the second sliding window may include determining the center of the second sliding window through first sliding window correction when the lane data does not exist in the first sliding window.
상기 제2 슬라이딩 윈도우를 생성하는 단계는 상기 제1 슬라이딩 윈도우 내에 존재하는 상기 차선 데이터가 기 설정된 임계값 미만인 경우 제1 슬라이딩 윈도우 보정을 수행하는 단계를 포함할 수 있다.Generating the second sliding window may include performing first sliding window correction when the lane data existing within the first sliding window is less than a preset threshold.
상기 제2 슬라이딩 윈도우를 생성하는 단계는 이전 단계에서 생성된 제1 슬라이딩 윈도우들마다 상기 차선 데이터의 x축 좌표들의 평균값을 산출하는 단계; 상기 평균값의 변화에 따른 기울기를 산출하는 단계; 및 가장 최근의 제1 슬라이딩 윈도우의 중심에 상기 기울기를 적용하여 상기 제2 슬라이딩 윈도우의 중심을 결정하는 단계를 포함할 수 있다.The step of generating the second sliding window includes calculating an average value of x-axis coordinates of the lane data for each of the first sliding windows created in the previous step; calculating a slope according to a change in the average value; and determining the center of the second sliding window by applying the tilt to the center of the most recent first sliding window.
상기 제2 슬라이딩 윈도우를 생성하는 단계는 상기 이전 단계에서 생성된 제1 슬라이딩 윈도우들의 개수가 2 미만인 경우 제2 슬라이딩 윈도우 보정을 통해 상기 제2 슬라이딩 윈도우의 중심을 결정하는 단계를 포함할 수 있다.The step of generating the second sliding window may include determining the center of the second sliding window through second sliding window correction when the number of first sliding windows created in the previous step is less than 2.
상기 제2 슬라이딩 윈도우를 생성하는 단계는 상기 이전 단계에서 생성된 제1 슬라이딩 윈도우들의 개수가 2 이고 해당 제1 슬라이딩 윈도우들 중 어느 하나에 대해 상기 차선 데이터가 존재하지 않거나 또는 상기 차선 데이터가 기 설정된 임계값 미만인 경우 제2 슬라이딩 윈도우 보정을 수행하는 단계를 포함할 수 있다.The step of generating the second sliding window is performed when the number of first sliding windows created in the previous step is 2 and the lane data does not exist for one of the first sliding windows or the lane data is preset. If it is less than the threshold, it may include performing a second sliding window correction.
상기 제2 슬라이딩 윈도우를 생성하는 단계는 상기 현재 프레임의 이전 프레임에서 저장된 데이터값을 기초로 상기 제1 슬라이딩 윈도우의 중심 및 상기 기울기를 재설정하는 단계; 및 상기 재설정된 제1 슬라이딩 윈도우의 중심에 상기 재설정된 기울기를 적용하여 상기 제2 슬라이딩 윈도우의 중심을 결정하는 단계를 포함할 수 있다.Generating the second sliding window may include resetting the center and the slope of the first sliding window based on data values stored in a previous frame of the current frame; and determining the center of the second sliding window by applying the reset slope to the center of the reset first sliding window.
실시예들 중에서, 슬라이딩 윈도우 이중 보정 장치는 적어도 차선을 포함하는 주행 영상의 현재 프레임에 대한 원본 이미지를 기초로 이진 이미지를 생성하는 프레임 이미지 추출부; 상기 이진 이미지 상에서 x축을 기준으로 베이스 포인트를 결정하는 베이스 포인트 결정부; 상기 베이스 포인트를 중심으로 기 설정된 크기의 제1 슬라이딩 윈도우를 생성하는 슬라이딩 윈도우 생성부; 및 상기 제1 슬라이딩 윈도우를 기초로 상기 제1 슬라이딩 윈도우에 인접되면서 상기 이진 이미지 상의 y축 방향으로 누적되는 제2 슬라이딩 윈도우를 생성하는 슬라이딩 윈도우 누적부;를 포함한다.Among embodiments, a sliding window dual correction device includes a frame image extractor that generates a binary image based on an original image for a current frame of a driving image including at least a lane; a base point determination unit that determines a base point based on the x-axis in the binary image; a sliding window generator that generates a first sliding window of a preset size centered on the base point; and a sliding window accumulator that generates, based on the first sliding window, a second sliding window adjacent to the first sliding window and accumulating in the y-axis direction on the binary image.
상기 슬라이딩 윈도우 누적부는 상기 제1 슬라이딩 윈도우 내에 존재하는 차선 데이터의 x축 좌표들의 평균값을 중심으로 상기 기 설정된 크기의 제2 슬라이딩 윈도우를 생성할 수 있다.The sliding window accumulator may generate a second sliding window of the preset size centered on an average value of x-axis coordinates of lane data existing in the first sliding window.
상기 슬라이딩 윈도우 누적부는 상기 제1 슬라이딩 윈도우 내에 상기 차선 데이터가 존재하지 않는 경우 제1 슬라이딩 윈도우 보정을 통해 상기 제2 슬라이딩 윈도우의 중심을 결정할 수 있다.When the lane data does not exist within the first sliding window, the sliding window accumulator may determine the center of the second sliding window through first sliding window correction.
상기 슬라이딩 윈도우 누적부는 이전 단계에서 생성된 제1 슬라이딩 윈도우들의 개수가 2 미만인 경우 제2 슬라이딩 윈도우 보정을 통해 상기 제2 슬라이딩 윈도우의 중심을 결정할 수 있다.If the number of first sliding windows created in the previous step is less than 2, the sliding window accumulator may determine the center of the second sliding window through second sliding window correction.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology can have the following effects. However, since it does not mean that a specific embodiment must include all of the following effects or only the following effects, the scope of rights of the disclosed technology should not be understood as being limited thereby.
본 발명의 일 실시예에 따른 슬라이딩 윈도우 이중 보정 방법 및 장치는 빈 슬라이딩 윈도우에 의한 위치 설정 오류를 해당 프레임의 이전 슬라이딩 윈도우 또는 이전 프레임의 정상 슬라이딩 윈도우를 통해 보정할 수 있다.The sliding window double correction method and device according to an embodiment of the present invention can correct positioning errors caused by an empty sliding window through the previous sliding window of the corresponding frame or the normal sliding window of the previous frame.
본 발명의 일 실시예에 따른 슬라이딩 윈도우 이중 보정 방법 및 장치는 곡선 구간에서 발생할 수 있는 차선인지의 문제점을 해결하여 차선인지 정확도를 향상시킬 수 있다.The sliding window double correction method and device according to an embodiment of the present invention can improve lane recognition accuracy by solving lane recognition problems that may occur in curved sections.
도 1은 본 발명에 따른 슬라이딩 윈도우 이중 보정 시스템을 설명하는 도면이다.
도 2는 도 1의 이중 보정 장치의 시스템 구성을 설명하는 도면이다.
도 3은 도 1의 이중 보정 장치의 기능적 구성을 설명하는 도면이다.
도 4는 본 발명에 따른 슬라이딩 윈도우 이중 보정 방법을 설명하는 순서도이다.
도 5는 슬라이딩 윈도우에 관한 위치 설정 오류의 일 실시예를 설명하는 도면이다.
도 6은 본 발명에 따른 슬라이딩 윈도우 이중 보정 과정을 설명하는 도면이다.
도 7은 본 발명에 관한 실험예를 설명하는 도면이다.1 is a diagram illustrating a sliding window double correction system according to the present invention.
FIG. 2 is a diagram explaining the system configuration of the dual correction device of FIG. 1.
FIG. 3 is a diagram explaining the functional configuration of the dual correction device of FIG. 1.
Figure 4 is a flowchart explaining the sliding window double correction method according to the present invention.
FIG. 5 is a diagram illustrating an example of a position setting error related to a sliding window.
Figure 6 is a diagram explaining the sliding window double correction process according to the present invention.
Figure 7 is a diagram explaining an experimental example related to the present invention.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Since the description of the present invention is only an example for structural or functional explanation, the scope of the present invention should not be construed as limited by the examples described in the text. In other words, since the embodiments can be modified in various ways and can have various forms, the scope of rights of the present invention should be understood to include equivalents that can realize the technical idea. In addition, the purpose or effect presented in the present invention does not mean that a specific embodiment must include all or only such effects, so the scope of the present invention should not be understood as limited thereby.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in this application should be understood as follows.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as “first” and “second” are used to distinguish one component from another component, and the scope of rights should not be limited by these terms. For example, a first component may be named a second component, and similarly, the second component may also be named a first component.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being “connected” to another component, it should be understood that it may be directly connected to the other component, but that other components may also exist in between. On the other hand, when a component is referred to as being “directly connected” to another component, it should be understood that there are no other components in between. Meanwhile, other expressions that describe the relationship between components, such as "between" and "immediately between" or "neighboring" and "directly neighboring" should be interpreted similarly.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions should be understood to include plural expressions unless the context clearly indicates otherwise, and terms such as “comprise” or “have” refer to implemented features, numbers, steps, operations, components, parts, or them. It is intended to specify the existence of a combination, and should be understood as not excluding in advance the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.For each step, identification codes (e.g., a, b, c, etc.) are used for convenience of explanation. The identification codes do not explain the order of each step, and each step clearly follows a specific order in context. Unless specified, events may occur differently from the specified order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the opposite order.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be implemented as computer-readable code on a computer-readable recording medium, and the computer-readable recording medium includes all types of recording devices that store data that can be read by a computer system. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. Additionally, the computer-readable recording medium can be distributed across computer systems connected to a network, so that computer-readable code can be stored and executed in a distributed manner.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein, unless otherwise defined, have the same meaning as commonly understood by a person of ordinary skill in the field to which the present invention pertains. Terms defined in commonly used dictionaries should be interpreted as consistent with the meaning they have in the context of the related technology, and cannot be interpreted as having an ideal or excessively formal meaning unless clearly defined in the present application.
도 1은 본 발명에 따른 슬라이딩 윈도우 이중 보정 시스템을 설명하는 도면이다.1 is a diagram illustrating a sliding window double correction system according to the present invention.
도 1을 참조하면, 슬라이딩 윈도우 이중 보정 시스템(100)은 사용자 단말(110), 이중 보정 장치(130)) 및 데이터베이스(150)를 포함할 수 있다.Referring to FIG. 1, the sliding window double correction system 100 may include a user terminal 110, a double correction device 130, and a database 150.
사용자 단말(110)은 사용자가 운용하는 컴퓨팅 장치에 해당할 수 있고, 특히 주행 중인 차량에 설치되어 도로 상의 차선을 포함한 전방 영역의 영상을 수집하는 단말로 구현될 수 있으며, 반드시 이에 한정되지 않고, 스마트폰, 노트북, 컴퓨터 또는 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 영상 촬영을 위한 카메라 센서를 포함하여 구현될 수 있으며, 차량에 설치된 다양한 카메라 모듈들과 연동하여 동작하도록 구현될 수도 있다.The user terminal 110 may correspond to a computing device operated by a user, and may be implemented as a terminal installed in a running vehicle to collect images of the front area including lanes on the road, but is not necessarily limited thereto. It can also be implemented with various devices such as smartphones, laptops, computers, or tablet PCs. The user terminal 110 may be implemented to include a camera sensor for image capture, and may be implemented to operate in conjunction with various camera modules installed in a vehicle.
또한, 사용자 단말(110)은 이중 보정 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 이중 보정 장치(130)와 동시에 연결될 수 있다. 또한, 사용자 단말(110)은 이중 보정 장치(130)와 연동하기 위한 전용 프로그램 또는 애플리케이션을 설치하여 실행시킬 수 있다.Additionally, the user terminal 110 may be connected to the double correction device 130 through a network, and a plurality of user terminals 110 may be connected to the double correction device 130 at the same time. Additionally, the user terminal 110 may install and execute a dedicated program or application for linking with the double correction device 130.
이중 보정 장치(130)는 본 발명에 따른 슬라이딩 윈도우 이중 보정 방법을 실행하는 시스템, 또는 이에 해당하는 서버로 구현될 수 있다. 이중 보정 장치(130)는 사용자 단말(110)과 네트워크를 통해 연결될 수 있고 관련 데이터를 주고받을 수 있다. 또한, 이중 보정 장치(130)는 적어도 하나의 외부 시스템과 연동하여 동작할 수 있다. 예를 들어, 외부 시스템은 클라우드 서비스를 위한 클라우드 서버, 딥러닝 학습을 위한 인공지능 서버, 사용자 인증을 위한 인증 서버 등과 연동하여 다양한 기능 및 서비스를 구현할 수 있다.The double correction device 130 may be implemented as a system that executes the sliding window double correction method according to the present invention, or as a server corresponding thereto. The double correction device 130 can be connected to the user terminal 110 through a network and exchange related data. Additionally, the dual correction device 130 may operate in conjunction with at least one external system. For example, external systems can implement various functions and services by linking with a cloud server for cloud services, an artificial intelligence server for deep learning learning, and an authentication server for user authentication.
일 실시예에서, 이중 보정 장치(130)는 데이터베이스(150)와 연동하여 사용자 단말(110)로부터 수집된 차량의 주행 영상으로부터 차선을 인지하는 과정에서 필요한 다양한 데이터들을 저장하고 관리할 수 있다. 또한, 이중 보정 장치(130)는 프로세서, 메모리, 사용자 입출력부 및 네트워크 입출력부를 포함하여 구현될 수 있으며, 이에 대해서는 도 2에서 보다 자세히 설명한다.In one embodiment, the dual correction device 130 may store and manage various data necessary in the process of recognizing a lane from a vehicle driving image collected from the user terminal 110 in conjunction with the database 150. Additionally, the double correction device 130 may be implemented including a processor, memory, user input/output unit, and network input/output unit, which will be described in more detail in FIG. 2.
데이터베이스(150)는 이중 보정 장치(130)의 동작 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 예를 들어, 데이터베이스(150)는 사용자 단말(110)을 통해 차량 주행 중에 촬영된 주행 영상에 관한 정보를 저장할 수 있고, 차선인지를 위한 알고리즘과 차선인지 과정에서 수행되는 다양한 연산들에 관한 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 군집주행 차선인지를 위한 슬라이딩 윈도우 이중 보정 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.The database 150 may correspond to a storage device that stores various information required during the operation of the double correction device 130. For example, the database 150 can store information about driving images captured while driving a vehicle through the user terminal 110, and contains information about the algorithm for lane recognition and various operations performed in the lane recognition process. It is not necessarily limited to this, and information collected or processed in various forms during the sliding window double correction process for platooning lane recognition can be stored.
도 2는 도 1의 이중 보정 장치의 시스템 구성을 설명하는 도면이다.FIG. 2 is a diagram explaining the system configuration of the dual correction device of FIG. 1.
도 2를 참조하면, 이중 보정 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함하여 구현될 수 있다.Referring to FIG. 2, the double correction device 130 may be implemented including a processor 210, a memory 230, a user input/output unit 250, and a network input/output unit 270.
프로세서(210)는 이중 보정 장치(130)가 동작하는 과정에서의 각 단계들을 처리하는 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(210)는 이중 보정 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 이중 보정 장치(130)의 CPU(Central Processing Unit)로 구현될 수 있다.The processor 210 may execute a procedure that processes each step in the process of operating the double correction device 130, and manage the memory 230 that is read or written throughout the process. ) can schedule the synchronization time between volatile and non-volatile memory. The processor 210 can control the overall operation of the double correction device 130 and is electrically connected to the memory 230, the user input/output unit 250, and the network input/output unit 270 to control the data flow between them. You can. The processor 210 may be implemented as a central processing unit (CPU) of the dual correction device 130.
메모리(230)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 이중 보정 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.The memory 230 may be implemented as a non-volatile memory such as a solid state drive (SSD) or a hard disk drive (HDD) and may include an auxiliary memory used to store all data required for the dual correction device 130, It may include a main memory implemented as volatile memory such as RAM (Random Access Memory).
사용자 입출력부(250)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(250)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 이중 보정 장치(130)는 서버로서 수행될 수 있다.The user input/output unit 250 may include an environment for receiving user input and an environment for outputting specific information to the user. For example, the user input/output unit 250 may include an input device including an adapter such as a touch pad, touch screen, on-screen keyboard, or pointing device, and an output device including an adapter such as a monitor or touch screen. In one embodiment, the user input/output unit 250 may correspond to a computing device connected through a remote connection, in which case the dual correction device 130 may be performed as a server.
네트워크 입출력부(270)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.The network input/output unit 270 includes an environment for connecting with external devices or systems through a network, for example, Local Area Network (LAN), Metropolitan Area Network (MAN), Wide Area Network (WAN), and VAN ( It may include an adapter for communication such as a Value Added Network).
도 3은 도 1의 이중 보정 장치의 기능적 구성을 설명하는 도면이다.FIG. 3 is a diagram explaining the functional configuration of the dual correction device of FIG. 1.
도 3을 참조하면, 이중 보정 장치(130)는 프레임 이미지 추출부(310), 베이스 포인트 결정부(330), 슬라이딩 윈도우 생성부(350), 슬라이딩 윈도우 누적부(370) 및 제어부(390)를 포함할 수 있다.Referring to FIG. 3, the double correction device 130 includes a frame image extraction unit 310, a base point determination unit 330, a sliding window creation unit 350, a sliding window accumulation unit 370, and a control unit 390. It can be included.
프레임 이미지 추출부(310)는 적어도 차선을 포함하는 주행 영상의 현재 프레임에 대한 원본 이미지를 기초로 이진 이미지를 생성할 수 있다. 프레임 이미지 추출부(310)는 차량에 설치되어 동작하는 사용자 단말(110)과 연결될 수 있으며, 사용자 단말(110)에 의해 촬영된 주행 영상을 수신하여 데이터베이스(150)에 저장할 수 있다. 이때, 주행 영상은 차량의 전방 영상에 해당할 수 있으며, 특히 도로 상에 표시된 차선을 포함하도록 촬영된 주행 영상에 해당할 수 있다.The frame image extractor 310 may generate a binary image based on the original image for the current frame of the driving image including at least a lane. The frame image extractor 310 may be connected to the user terminal 110 installed and operating in the vehicle, and may receive driving images captured by the user terminal 110 and store them in the database 150. At this time, the driving image may correspond to a front image of the vehicle, and in particular, may correspond to a driving image captured to include lanes marked on the road.
또한, 프레임 이미지 추출부(310)는 주행 영상을 분석하여 차선이 포함된 주행 영상을 선별적으로 추출할 수 있으며, 추출된 주행 영상을 프레임 단위로 분해하여 복수의 이미지 프레임들을 생성할 수 있다. 프레임 이미지 추출부(310)는 하나의 이미지 프레임에 대해 연산 성능을 높이기 위하여 차선이 포함된 영역을 특정하여 추출할 수 있다. 즉, 프레임 이미지 추출부(310)는 차선인지를 위한 전 단계에서 차선이 포함된 이미지 영역을 추출하고 이를 기초로 이진 이미지를 생성하여 차선인지 단계로 전달할 수 있다.Additionally, the frame image extractor 310 can analyze the driving image to selectively extract a driving image including a lane, and generate a plurality of image frames by decomposing the extracted driving image into frames. The frame image extractor 310 may specify and extract an area containing a lane in order to increase computational performance for one image frame. That is, the frame image extractor 310 may extract the image area containing the lane in the previous step for lane recognition, generate a binary image based on this, and transmit it to the lane recognition step.
일 실시예에서, 프레임 이미지 추출부(310)는 원본 이미지 상에서 노이즈를 제거하고, 원본 이미지 상에서 차선에 관한 관심 영역을 설정하며, 관심 영역의 이미지를 조감도 이미지(bird's eye view image)로 변환하고, 조감도 이미지를 이진 이미지로 변환할 수 있다. 즉, 프레임 이미지 추출부(310)는 보다 정확도 높은 인지 결과를 도출하기 위하여 원본 이미지에 대한 전처리 동작을 수행할 수 있다.In one embodiment, the frame image extractor 310 removes noise from the original image, sets a region of interest regarding the lane on the original image, and converts the image of the region of interest into a bird's eye view image, A bird's eye view image can be converted to a binary image. That is, the frame image extractor 310 may perform a preprocessing operation on the original image to derive recognition results with higher accuracy.
보다 구체적으로, 프레임 이미지 추출부(310)는 전체 이미지에 대해 노이즈 제거와 처리 속도 향상을 위한 관심 영역(ROI, Region of Interest)를 설정할 수 있다. 이후, 프레임 이미지 추출부(310)는 효과적인 차선 검출을 위해 ROI를 통해 선택된 이미지를 조감도 이미지(Bird's eye view)로 변환할 수 있다. 또한, 프레임 이미지 추출부(310)는 변환된 이미지에서 차선을 특정하기 위해 에지 검출(Edge detection) 및 색의 채도 차이를 비교하는 방법을 통해 조감도 이미지를 이진(Binary) 이미지로 변환할 수 있다.More specifically, the frame image extractor 310 can set a region of interest (ROI) for the entire image to remove noise and improve processing speed. Thereafter, the frame image extractor 310 may convert the image selected through ROI into a bird's eye view image for effective lane detection. Additionally, the frame image extractor 310 can convert a bird's eye view image into a binary image through edge detection and comparing color saturation differences to specify a lane in the converted image.
베이스 포인트 결정부(330)는 이진 이미지 상에서 x축을 기준으로 베이스 포인트를 결정할 수 있다. 여기에서, 베이스 포인트(base point)는 슬라이딩 윈도우를 생성하기 위한 기준점에 해당할 수 있다. 예를 들어, 베이스 포인트 결정부(330)는 슬라이딩 윈도우 기법과 히스토그램(Histogram)을 통해 베이스 포인트를 결정할 수 있다. The base point determination unit 330 may determine the base point based on the x-axis in the binary image. Here, the base point may correspond to a reference point for creating a sliding window. For example, the base point determination unit 330 may determine the base point through a sliding window technique and a histogram.
일 실시예에서, 베이스 포인트 결정부(330)는 이진 이미지 상에서 각 좌표의 차선 픽셀 수를 나타내는 히스토그램(histogram)을 통해 각 차선의 기준으로서 베이스 포인트를 결정할 수 있다. 슬라이딩 윈도우 생성부(350)는 베이스 포인트를 중심으로 기 설정된 크기의 제1 슬라이딩 윈도우를 생성할 수 있다. 즉, 슬라이딩 윈도우 생성부(350)는 베이스 포인트를 중심으로 좌우 방향으로 소정의 간격만큼 이격되어 형성되는 제1 슬라이딩 윈도우를 생성할 수 있다.In one embodiment, the base point determination unit 330 may determine the base point as a reference for each lane through a histogram representing the number of lane pixels at each coordinate in the binary image. The sliding window generator 350 may generate a first sliding window of a preset size centered on the base point. That is, the sliding window generator 350 may generate a first sliding window that is spaced apart from a base point by a predetermined distance in the left and right directions.
이때, 제1 슬라이딩 윈도우는 제2 슬라이딩 윈도우보다 먼저 생성된 슬라이딩 윈도우에 해당할 수 있다. 즉, 제1 슬라이딩 윈도우보다 더 먼저 생성된 제3 슬라이딩 윈도우가 있는 경우 해당 제3 슬라이딩 윈도우를 기준으로 제1 슬라이딩 윈도우는 제2 슬라이딩 윈도우에 대응될 수 있다. 즉, 여기에서 제1 및 제2 슬라이딩 윈도우의 구분은 생성 시점의 시간적 순서에 따라 상대적으로 정의될 수 있다.At this time, the first sliding window may correspond to a sliding window created before the second sliding window. That is, if there is a third sliding window created earlier than the first sliding window, the first sliding window may correspond to the second sliding window based on the third sliding window. That is, here, the distinction between the first and second sliding windows can be relatively defined according to the temporal order of creation time.
슬라이딩 윈도우 누적부(370)는 제1 슬라이딩 윈도우를 기초로 제1 슬라이딩 윈도우에 인접되면서 이진 이미지 상의 y축 방향으로 누적되는 제2 슬라이딩 윈도우를 생성할 수 있다. 여기에서, 제2 슬라이딩 윈도우의 누적 방향은 차량의 주행 방향에 대응될 수 있다. 슬라이딩 윈도우 누적부(370)는 첫 번째 슬라이딩 윈도우를 설정한 다음 첫 번째 슬라이딩 윈도우와 같은 크기의 두 번째 슬라이딩 윈도우를 y축 방향으로 쌓는 과정을 반복적으로 수행하여 하나의 이진 이미지에 있는 전체 차선을 검출할 수 있다.The sliding window accumulator 370 may generate a second sliding window adjacent to the first sliding window based on the first sliding window and accumulated in the y-axis direction on the binary image. Here, the accumulation direction of the second sliding window may correspond to the driving direction of the vehicle. The sliding window accumulator 370 sets the first sliding window and then repeatedly performs the process of stacking a second sliding window of the same size as the first sliding window in the y-axis direction to detect all lanes in one binary image. can do.
일 실시예에서, 슬라이딩 윈도우 누적부(370)는 제1 슬라이딩 윈도우 내에 존재하는 차선 데이터의 x축 좌표들의 평균값을 중심으로 기 설정된 크기의 제2 슬라이딩 윈도우를 생성할 수 있다. 여기에서, 차선 데이터는 이미지 내에서 차선에 해당하는 영역의 픽셀 데이터에 해당할 수 있으며, 이미지 좌표 상에서 정의되는 x축 좌표와 y축 좌표를 포함할 수 있다. 슬라이딩 윈도우 누적부(370)는 기본적으로 제2 슬라이딩 윈도우를 생성하기 위하여 이전 단계에서 생성된 제1 슬라이딩 윈도우의 정보를 활용할 수 있다. 즉, 제1 슬라이딩 윈도우 내에 존재하는 차선의 x축 중심이 결정되면 x축 중심에서 y축 방향으로 소정의 간격만큼 이동한 지점의 좌표가 제2 슬라이딩 윈도우를 생성하기 위한 중심 좌표로 결정될 수 있다. 결과적으로, 제2 슬라이딩 윈도우는 해당 중심 좌표를 기준으로 기 설정된 크기로 정의된 결과 생성되는 슬라이딩 윈도우에 해당할 수 있다.In one embodiment, the sliding window accumulator 370 may generate a second sliding window of a preset size centered on the average value of x-axis coordinates of lane data existing in the first sliding window. Here, the lane data may correspond to pixel data of an area corresponding to the lane within the image and may include x-axis coordinates and y-axis coordinates defined on image coordinates. Basically, the sliding window accumulator 370 can utilize information about the first sliding window created in the previous step to create the second sliding window. That is, when the x-axis center of the lane existing within the first sliding window is determined, the coordinates of a point moved by a predetermined distance from the x-axis center in the y-axis direction may be determined as the center coordinates for creating the second sliding window. As a result, the second sliding window may correspond to a sliding window created as a result of defining a preset size based on the corresponding center coordinate.
일 실시예에서, 슬라이딩 윈도우 누적부(370)는 제1 슬라이딩 윈도우 내에 차선 데이터가 존재하지 않는 경우 제1 슬라이딩 윈도우 보정을 통해 제2 슬라이딩 윈도우의 중심을 결정할 수 있다. 여기에서, 제1 슬라이딩 윈도우 보정은 본 발명에 따른 보정 방법 중 하나에 해당할 수 있다. 즉, 슬라이딩 윈도우의 위치 보정은 이전에 생성된 슬라이딩 윈도우 내에 존재하는 차선 정보를 활용하여 이루어질 수 있으며, 만약 이전 단계의 슬라이딩 윈도우 내에 차선 정보가 존재하지 않는 경우 그 이전에 생성된 슬라이딩 윈도우들로 확장되어 해당 슬라이딩 윈도우들의 차선 정보를 기초로 이루어질 수 있다.In one embodiment, the sliding window accumulator 370 may determine the center of the second sliding window through first sliding window correction when no lane data exists in the first sliding window. Here, the first sliding window correction may correspond to one of the correction methods according to the present invention. In other words, position correction of the sliding window can be done by utilizing lane information existing in the previously created sliding window, and if lane information does not exist in the sliding window of the previous step, it is extended to the previously created sliding windows. This can be done based on lane information of the corresponding sliding windows.
일 실시예에서, 슬라이딩 윈도우 누적부(370)는 제1 슬라이딩 윈도우 내에 존재하는 차선 데이터가 기 설정된 임계값 미만인 경우 제1 슬라이딩 윈도우 보정을 수행할 수 있다. 또한, 제1 슬라이딩 윈도우 보정은 슬라이딩 윈도우 내에 차선 정보가 없는 경우뿐만 아니라 올바른 차선 위치를 판단하기에는 충분하지 않은 소량의 차선 데이터만 존재하는 경우에도 수행될 수 있다. 예를 들어, 슬라이딩 윈도우 누적부(370)는 제1 슬라이딩 윈도우 내에 차선 데이터, 즉 차선 픽셀들의 개수가 기 설정된 임계값 미만인 경우 제1 슬라이딩 윈도우 보정을 수행할 수 있다. 이때, 임계값의 경우 사전에 반복적인 실험을 통해 결정될 수 있다.In one embodiment, the sliding window accumulator 370 may perform first sliding window correction when lane data existing within the first sliding window is less than a preset threshold. Additionally, the first sliding window correction can be performed not only when there is no lane information within the sliding window, but also when there is only a small amount of lane data that is not sufficient to determine the correct lane position. For example, the sliding window accumulator 370 may perform first sliding window correction when the number of lane data, that is, lane pixels, within the first sliding window is less than a preset threshold. At this time, the threshold may be determined in advance through repeated experiments.
일 실시예에서, 슬라이딩 윈도우 누적부(370)는 이전 단계에서 생성된 제1 슬라이딩 윈도우들마다 차선 데이터의 x축 좌표들의 평균값을 산출하고, 평균값의 변화에 따른 기울기를 산출하며, 가장 최근의 제1 슬라이딩 윈도우의 중심에 기울기를 적용하여 제2 슬라이딩 윈도우의 중심을 결정할 수 있다. 즉, 제1 슬라이딩 윈도우 보정 과정은 차선 데이터가 있는 이전 슬라이딩 윈도우를 활용하여 빈 슬라이딩 윈도우가 검출된 경우 다음에 쌓는 슬라이딩 윈도우의 위치를 올바른 위치로 보정하는 과정에 해당할 수 있다. 슬라이딩 윈도우 누적부(370)는 빈 슬라이딩 윈도우라고 판단되면 이전의 유효한 차선 데이터 픽셀의 x좌표 평균을 각 슬라이딩 윈도우 별로 산출하고 그 평균값을 통해 기울기를 산출할 수 있다. 즉, 기울기는 x좌표들의 평균값의 변화를 나타낼 수 있다.In one embodiment, the sliding window accumulator 370 calculates the average value of the x-axis coordinates of the lane data for each of the first sliding windows created in the previous step, calculates the slope according to the change in the average value, and calculates the most recent 1 The center of the second sliding window can be determined by applying a tilt to the center of the sliding window. That is, the first sliding window correction process may correspond to a process of correcting the position of the next sliding window to the correct position when an empty sliding window is detected by using the previous sliding window with lane data. If the sliding window accumulator 370 determines that the sliding window is empty, it can calculate the average x-coordinate of the previously valid lane data pixels for each sliding window and calculate the slope through the average value. In other words, the slope can represent the change in the average value of x-coordinates.
또한, 슬라이딩 윈도우 누적부(370)는 기울기의 적용에 따라 제2 슬라이딩 윈도우의 중심 위치가 결정되면 해당 중심 위치를 기준으로 기 설정된 크기를 형성하는 제2 슬라이딩 윈도우를 생성할 수 있다. 이때, 슬라이딩 윈도우 누적부(370)는 빈 슬라이딩 윈도우가 연속해서 검출되는 경우 앞서 획득한 기울기를 기준으로 반복적으로 슬라이딩 윈도우를 생성하여 누적시킬 수 있으며, 해당 과정은 슬라이딩 윈도우에 차선 데이터가 나타날 때까지 계속될 수 있다.Additionally, when the center position of the second sliding window is determined according to the application of the tilt, the sliding window accumulator 370 may generate a second sliding window that has a preset size based on the center position. At this time, when empty sliding windows are continuously detected, the sliding window accumulator 370 can repeatedly create and accumulate sliding windows based on the previously obtained slope, and this process continues until lane data appears in the sliding window. It can continue.
일 실시예에서, 슬라이딩 윈도우 누적부(370)는 이전 단계에서 생성된 제1 슬라이딩 윈도우들의 개수가 2 미만인 경우 제2 슬라이딩 윈도우 보정을 통해 제2 슬라이딩 윈도우의 중심을 결정할 수 있다. 여기에서, 제2 슬라이딩 윈도우 보정은 본 발명에 따른 보정 방법 중 다른 하나에 해당할 수 있다. 즉, 슬라이딩 윈도우의 위치 보정은 동일 프레임 내의 이전에 생성된 슬라이딩 윈도우 또는 이전 프레임에서 생성된 슬라이딩 윈도우 내에 존재하는 차선 정보를 활용하여 이루어질 수 있으며, 만약 이전 단계에서 생성된 슬라이딩 윈도우의 개수가 충분하지 않아 제1 슬라이딩 윈도우 보정을 위한 기울기 산출이 어려운 경우 그 이전 프레임으로 확장하여 연관된 차선 정보를 활용하는 제2 슬라이딩 윈도우 보정이 수행될 수 있다.In one embodiment, the sliding window accumulation unit 370 may determine the center of the second sliding window through second sliding window correction when the number of first sliding windows created in the previous step is less than 2. Here, the second sliding window correction may correspond to another one of the correction methods according to the present invention. In other words, position correction of the sliding window can be done by utilizing the previously created sliding window within the same frame or lane information existing within the sliding window created in the previous frame. If the number of sliding windows created in the previous step is not sufficient, Therefore, if it is difficult to calculate the slope for the first sliding window correction, the second sliding window correction may be performed by extending to the previous frame and using the associated lane information.
일 실시예에서, 슬라이딩 윈도우 누적부(370)는 이전 단계에서 생성된 제1 슬라이딩 윈도우들의 개수가 2이고 해당 제1 슬라이딩 윈도우들 중 어느 하나에 대해 차선 데이터가 존재하지 않거나 또는 차선 데이터가 기 설정된 임계값 미만인 경우 제2 슬라이딩 윈도우 보정을 수행할 수 있다. 즉, 이전 단계에서 생성된 슬라이딩 윈도우가 2개인 경우라 하더라도 하나 이상의 슬라이딩 윈도우 내에 정상적인 차선 데이터가 존재하지 않는 경우에는 제2 슬라이딩 윈도우 보정이 수행될 수 있다.In one embodiment, the sliding window accumulator 370 is configured to operate when the number of first sliding windows generated in the previous step is 2 and no lane data exists for one of the first sliding windows or lane data is preset. If it is less than the threshold, a second sliding window correction may be performed. That is, even if there are two sliding windows created in the previous step, if normal lane data does not exist in one or more sliding windows, the second sliding window correction can be performed.
예를 들어, 차선이 없는 부분이 첫 슬라이딩 윈도우부터 위치하는 경우 제1 슬라이딩 윈도우 보정을 적용하는 것이 어려울 수 있다. 그리고, 첫 슬라이딩 윈도우의 기준은 y축 전체 히스토그램(Histogram)을 통해 산출될 수 있으며, 왼쪽이나 오른쪽으로 기울어진 차선에서 아래쪽 차선이 많이 비어 있는 경우 치우쳐진 위쪽 차선 데이터만 들어오게 되면 그때 기준이 해당 방향으로 옮겨져서 첫 슬라이딩 윈도우부터 잘못된 위치에 설정이 되는 오류가 발생할 수 있다.For example, if a portion without a lane is located from the first sliding window, it may be difficult to apply the first sliding window correction. In addition, the standard for the first sliding window can be calculated through the entire y-axis histogram, and if the lower lane is very empty in a lane slanted to the left or right, only the biased upper lane data comes in, and then the standard is applicable. An error may occur where the window is moved in the wrong direction and is set to the wrong position from the first sliding window.
또한, 차선인지는 카메라 센서를 통해 들어온 이미지를 기반으로 이루어질 수 있으며, 카메라 센서의 경우 30fps 주기로 이미지가 들어온다고 가정하면 해당 이미지에서 차선을 검출하는 알고리즘은 10fps로 동작할 수 있다. 즉, 연속해서 처리되는 프레임의 시간 간격은 0.1초일 수 있으며, 각 프레임 간의 이미지 차이가 크지 않음을 나타낼 수 있다. 따라서, 이전 프레임에서의 차선 위치와 다음 프레임에서의 차선의 위치 사이에 큰 차이가 없을 수 있다. 따라서, 슬라이딩 윈도우 누적부(370)는 처음 슬라이딩 윈도우가 쌓이는 부분의 차선 데이터가 부족하다고 판단이 되면, 이전 프레임의 슬라이딩 윈도우 데이터를 활용하는 제2 슬라이딩 윈도우 보정 과정을 수행할 수 있다.Additionally, lane recognition can be made based on images received through a camera sensor. Assuming that images come in at a 30fps cycle in the case of a camera sensor, the algorithm that detects lanes in the image can operate at 10fps. In other words, the time interval between successively processed frames may be 0.1 seconds, indicating that the image difference between each frame is not large. Therefore, there may not be a significant difference between the lane position in the previous frame and the lane position in the next frame. Accordingly, when the sliding window accumulation unit 370 determines that the lane data in the portion where the sliding window is first accumulated is insufficient, it can perform a second sliding window correction process using the sliding window data of the previous frame.
일 실시예에서, 슬라이딩 윈도우 누적부(370)는 현재 프레임의 이전 프레임에서 저장된 데이터값을 기초로 제1 슬라이딩 윈도우의 중심 및 기울기를 재설정하고, 재설정된 제1 슬라이딩 윈도우의 중심에 재설정된 기울기를 적용하여 제2 슬라이딩 윈도우의 중심을 결정할 수 있다. 즉, 슬라이딩 윈도우 누적부(370)는 이전 프레임에서 첫 슬라이딩 윈도우의 기준점과 기울기를 획득하여 위치 보정에 활용할 수 있으며, 이를 위해 프레임이 넘어갈 때마다 해당 데이터를 함께 전달할 수 있다. In one embodiment, the sliding window accumulator 370 resets the center and slope of the first sliding window based on the data values stored in the previous frame of the current frame, and places the reset slope at the center of the reset first sliding window. By applying this, the center of the second sliding window can be determined. That is, the sliding window accumulator 370 can obtain the reference point and slope of the first sliding window from the previous frame and use it for position correction, and for this purpose, the corresponding data can be transmitted together every time a frame is passed.
구체적으로, 슬라이딩 윈도우 누적부(370)는 첫 번째 및 두 번째 슬라이딩 윈도우 중 하나라도 차선 데이터가 없는 슬라이딩 윈도우가 있으면 제2 슬라이딩 윈도우 보정을 적용할 수 있으며, 이전 프레임의 데이터 기본값으로 슬라이딩 윈도우의 위치와 기울기를 재설정할 수 있다. 그리고, 슬라이딩 윈도우 누적부(370)는 재설정된 기울기를 바탕으로 차선 데이터가 포함된 슬라이딩 윈도우가 나올 때까지 슬라이딩 윈도우를 쌓는 과정을 반복할 수 있다. 이후, 슬라이딩 윈도우 누적부(370)는 슬라이딩 윈도우 내의 차선이 검출된 경우 반복 과정을 초기화하고 해당 차선 데이터를 기준으로 다시 슬라이딩 윈도우의 위치를 설정할 수 있다.Specifically, the sliding window accumulator 370 can apply the second sliding window correction if any of the first and second sliding windows has a sliding window without suboptimal data, and sets the position of the sliding window as the default data of the previous frame. and tilt can be reset. Additionally, the sliding window accumulation unit 370 may repeat the process of stacking sliding windows until a sliding window containing lane data appears based on the reset slope. Afterwards, the sliding window accumulator 370 may initialize the repetition process when a lane within the sliding window is detected and set the position of the sliding window again based on the corresponding lane data.
제어부(390)는 이중 보정 장치(130)의 전체적인 동작을 제어하고, 프레임 이미지 추출부(310), 베이스 포인트 결정부(330), 슬라이딩 윈도우 생성부(350) 및 슬라이딩 윈도우 누적부(370) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.The control unit 390 controls the overall operation of the double correction device 130, and controls the operation between the frame image extractor 310, the base point determination unit 330, the sliding window creation unit 350, and the sliding window accumulation unit 370. It can manage control flow or data flow.
도 4는 본 발명에 따른 슬라이딩 윈도우 이중 보정 방법을 설명하는 순서도이다.Figure 4 is a flowchart explaining the sliding window double correction method according to the present invention.
도 4를 참조하면, 이중 보정 장치(130)는 프레임 이미지 추출부(310)를 통해 적어도 차선을 포함하는 주행 영상의 현재 프레임에 대한 원본 이미지를 기초로 이진 이미지를 생성할 수 있다(단계 S410). 이중 보정 장치(130)는 베이스 포인트 결정부(330)를 통해 이진 이미지 상에서 x축을 기준으로 베이스 포인트를 결정할 수 있다(단계 S430).Referring to FIG. 4, the dual correction device 130 may generate a binary image based on the original image for the current frame of the driving image including at least a lane through the frame image extractor 310 (step S410). . The double correction device 130 may determine the base point based on the x-axis on the binary image through the base point determination unit 330 (step S430).
또한, 이중 보정 장치(130)는 슬라이딩 윈도우 생성부(350)를 통해 베이스 포인트를 중심으로 기 설정된 크기의 제1 슬라이딩 윈도우를 생성할 수 있다(단계 S450). 이중 보정 장치(130)는 슬라이딩 윈도우 누적부(370)를 통해 제1 슬라이딩 윈도우를 기초로 상기 제1 슬라이딩 윈도우에 인접되면서 상기 이진 이미지 상의 y축 방향으로 누적되는 제2 슬라이딩 윈도우를 생성할 수 있다(단계 S470).Additionally, the double correction device 130 may generate a first sliding window of a preset size centered on the base point through the sliding window generator 350 (step S450). The double correction device 130 may generate a second sliding window that is adjacent to the first sliding window and accumulated in the y-axis direction on the binary image based on the first sliding window through the sliding window accumulator 370. (Step S470).
도 5는 슬라이딩 윈도우에 관한 위치 설정 오류의 일 실시예를 설명하는 도면이다.FIG. 5 is a diagram illustrating an example of a position setting error related to a sliding window.
도 5를 참조하면, 군집주행 차량은 좁은 거리를 유지하며 주행하기 때문에 센서를 통해 들어오는 차선 이미지에 차선이 없는 부분이 상당 부분을 차지할 수 있다. 각각의 슬라이딩 윈도우(530)는 이전 슬라이딩 윈도우(530) 내의 차선 데이터(510)의 x축 평균값을 기준으로 다음 슬라이딩 윈도우(530)를 쌓는 방식으로 진행될 수 있으며, 이때 이전 슬라이딩 윈도우(530)이 차선이 없는 부분에 위치한 경우 해당 슬라이딩 윈도우(530) 내에 평균 산출에 필요한 차선 데이터(510) 자체가 없을 수 있다. 이 경우, 일반적인 방법은 다음 슬라이딩 윈도우(530)를 기존 슬라이딩 윈도우(530)와 같은 위치에 그대로 쌓도록 동작할 수 있으며, 도 5와 같이 빈 구간만큼의 슬라이딩 윈도우(530)가 y축 방향으로 일직선으로 쌓일 수 있다.Referring to FIG. 5, because platooning vehicles drive while maintaining a narrow distance, a significant portion of the lane image received through the sensor may be without a lane. Each sliding window 530 may be performed by stacking the next sliding window 530 based on the x-axis average value of the lane data 510 within the previous sliding window 530, where the previous sliding window 530 is the lane data 510. If it is located in a part where there is no line, the lane data 510 required for calculating the average may not be present within the corresponding sliding window 530. In this case, the general method is to stack the next sliding window 530 in the same position as the existing sliding window 530, and as shown in Figure 5, the sliding window 530 as long as the empty section is straight in the y-axis direction. can be accumulated.
일직선으로 슬라이딩 윈도우(530)를 쌓는 방법은 도로의 곡선 구간에서 점선은 도 5와 같은 차선 검출 오류를 발생시킬 수 있다. 즉, 차선이 없는 구간 후에 차선이 다시 생기는 부분에서 슬라이딩 윈도우(530)가 잘못된 위치를 설정하는 문제가 발생할 수 있으며, 결과적으로 차선인지의 정확도가 저하될 수 있다.The method of stacking the sliding windows 530 in a straight line may cause a lane detection error as shown in FIG. 5 with a dotted line in a curved section of the road. In other words, a problem may occur where the sliding window 530 sets an incorrect position in a section where a lane appears again after a section where there is no lane, and as a result, the accuracy of lane recognition may decrease.
도 6은 본 발명에 따른 슬라이딩 윈도우 이중 보정 과정을 설명하는 도면이다.Figure 6 is a diagram explaining the sliding window double correction process according to the present invention.
도 6을 참조하면, 이중 보정 장치(130)는 제1 및 제2 슬라이딩 윈도우 보정 과정들을 통해 차선 데이터가 존재하지 않는 빈 슬라이딩 윈도우에 의한 위치 설정 오류를 해결할 수 있다.Referring to FIG. 6, the dual correction device 130 can resolve positioning errors caused by an empty sliding window in which no lane data exists through first and second sliding window correction processes.
슬라이딩 윈도우의 위치 설정 오류는 빈 슬라이딩 윈도우에 의해 다음 슬라이딩 윈도우가 그대로 쌓이는 현상에 의해 발생할 수 있으며, 첫 번째 보정(제1 슬라이딩 윈도우 보정)에서는 차선 데이터가 있는 이전 슬라이딩 윈도우를 활용하여 빈 슬라이딩 윈도우가 나왔을 때 다음에 쌓이는 슬라이딩 윈도우의 위치를 보정하는 과정에 해당할 수 있다.Error in positioning of the sliding window may occur due to the phenomenon of the next sliding window being piled up by the empty sliding window. In the first correction (first sliding window correction), the empty sliding window is created by utilizing the previous sliding window with suboptimal data. This may correspond to the process of correcting the position of the next stacked sliding window when it comes out.
첫 번째 슬라이딩 윈도우 보정 과정은 다음과 같이 수행될 수 있다. 먼저 도 6의 단계 S610과 같이 보정이 필요한 슬라이딩 윈도우인지 여부를 결정할 수 있다. 차선 데이터가 있는 정상 슬라이딩 윈도우로 결정되면 도 6의 단계 S620과 같은 일반적인 슬라이딩 윈도우 과정이 수행될 수 있다. 아무런 차선 데이터가 없는 슬라이딩 윈도우뿐만 아니라, 올바른 차선 위치를 판단하기에 소량의 차선 데이터만 들어왔을 경우에도 빈 슬라이딩 윈도우로 분류되어 이전의 유효한 차선 데이터를 기초로 한 보정 과정이 수행될 수 있다. 즉, 이전의 유효한 차선 데이터 픽셀의 x 좌표 평균을 각 슬라이딩 윈도우 별로 산출한 다음 그 평균값으로 기울기를 산출할 수 있다. 도 6의 단계 S640과 같이 산출된 기울기를 통해 같은 위치 x 좌표가 아닌 알맞은 위치의 다음 슬라이딩 윈도우의 기준점이 결정될 수 있고, 해당 기준점을 중심으로 슬라이딩 윈도우가 설정될 수 있다.The first sliding window correction process can be performed as follows. First, as in step S610 of FIG. 6, it can be determined whether it is a sliding window that requires correction. If it is determined to be a normal sliding window with suboptimal data, a general sliding window process such as step S620 of FIG. 6 may be performed. In addition to a sliding window without any lane data, even when only a small amount of lane data is input to determine the correct lane position, it is classified as an empty sliding window and a correction process based on previous valid lane data can be performed. That is, the x-coordinate average of the previously valid lane data pixels can be calculated for each sliding window, and then the slope can be calculated using the average value. Through the slope calculated as in step S640 of FIG. 6, the reference point of the next sliding window at an appropriate location rather than the same x coordinate can be determined, and the sliding window can be set around the reference point.
두 번째 슬라이딩 윈도우 보정 과정은 도 6의 단계 S630과 같이 기울기를 산출할 때 최소로 필요한 2개의 슬라이딩 윈도우를 기준으로 적용 여부가 결정될 수 있다. 즉, 두 번째 슬라이딩 윈도우 보정 과정은 첫 번째 및 두 번째 슬라이딩 윈도우 중 하나라도 차선 데이터가 없는 슬라이딩 윈도우가 존재하는 경우 적용될 수 있으며, 도 6의 단계 S650과 같이 이전 프레임의 데이터 기본값으로 슬라이딩 윈도우의 위치와 기울기가 재설정될 수 있다. 이후, 재설정된 기울기를 기초로 차선 데이터가 포함된 슬라이딩 윈도우가 나타날 때까지 슬라이딩 윈도우를 쌓는 과정이 반복적으로 수행될 수 있다.Whether or not to apply the second sliding window correction process may be determined based on the minimum two sliding windows required when calculating the slope, as in step S630 of FIG. 6. That is, the second sliding window correction process can be applied if any of the first and second sliding windows exist a sliding window without suboptimal data, and the position of the sliding window is set to the data default value of the previous frame as in step S650 of FIG. 6. and the slope can be reset. Thereafter, the process of stacking sliding windows may be repeatedly performed until a sliding window containing lane data appears based on the reset slope.
도 7은 본 발명에 관한 실험예를 설명하는 도면이다.Figure 7 is a diagram explaining an experimental example related to the present invention.
도 7을 참조하면, 스케일 트럭 환경의 실험 결과에 해당할 수 있다. 여기에서, 스케일 트럭 환경은 스케일 트럭과 테스트 트랙으로 구성될 수 있다. 스케일 트럭은 실험을 위한 1/14 스케일의 실험용 트럭에 해당할 수 있다. 트럭은 148도 와이드 앵글 카메라와 RPLidar A3 등의 센서와 Nvidia Jetson Xavier, OpenCR 보드 등으로 구성될 수 있다. 또한, 테스트 트랙은 전체 크기가 가로 40m, 세로 12m이며, 차선의 폭은 33cm으로 구현될 수 있다. 실험은 곡선 반지름 5m인 고속도로 환경과 반지름 3 및 4m 트랙에서 실행될 수 있고, 이에 따라 곡률에 따른 성능 차이가 분석될 수 있다.Referring to FIG. 7, this may correspond to an experiment result in a scale truck environment. Here, the scale truck environment may consist of a scale truck and a test track. The scale truck may correspond to a 1/14 scale experimental truck for experiments. The truck can be configured with a 148-degree wide-angle camera, sensors such as RPLidar A3, Nvidia Jetson Xavier, and OpenCR boards. In addition, the test track has a total size of 40 m wide and 12 m long, and the lane width can be 33 cm. The experiment can be run in a highway environment with a curve radius of 5 m and on a track with radii of 3 and 4 m, and thus the performance differences depending on curvature can be analyzed.
또한, 전체 주행 영상 중에서 결과가 잘 비교될 수 있도록 곡선 주행 영상이 사용될 수 있고, 각각 200장씩 총 800장의 이미지를 기초로 실험이 수행될 수 있다. Labelme를 기반으로 직접 만든 GT(Ground Truth) 이미지와 알고리즘 적용 전후의 결과 이미지를 비교하여 정확도 변화가 도출될 수 있다. 정확도 변화는 GT 이미지와 결과 이미지를 각각 Bird's eye view 이미지로 변환 후, 해당 이미지를 겹쳐 분포도 차이를 비교하는 방법을 통해 도출될 수 있다. 분포도 차이를 통해 도출되는 수치는 절대적인 정확도 수치와는 다소 차이가 있을 수 있지만, 이미지 간 분포도 차이의 변화를 통해 정확한 수치의 정확도 향상 정도를 확인할 수 있다. 실험은 알고리즘 적용 전과 1차 보정 적용 그리고 1 및 2차 보정 적용으로 총 3단계로 나눠서 진행될 수 있다.In addition, curved driving images can be used so that results can be easily compared among all driving images, and experiments can be performed based on a total of 800 images, 200 of each. Changes in accuracy can be derived by comparing GT (Ground Truth) images created based on Labelme and the resulting images before and after applying the algorithm. Changes in accuracy can be derived by converting the GT image and the resulting image into a bird's eye view image, then overlapping the images and comparing the differences in distribution. Although the value derived from the distribution difference may be somewhat different from the absolute accuracy value, the degree of improvement in the accuracy of the exact value can be confirmed through the change in the distribution difference between images. The experiment can be divided into three stages: before applying the algorithm, applying the first correction, and applying the first and second corrections.
스케일 트럭 환경의 실험에서는 도 7과 같은 결과가 도출될 수 있다. 먼저 반지름 5m 트랙에서의 1차 실험 결과에서는 알고리즘 적용 전 실험 결과와 GT와의 분포도 차이가 200장 평균 90.24%로 나타날 수 있고, 첫 번째 보정 알고리즘만 적용했을 때의 분포도 차이는 94.94%로 나타날 수 있다. 그리고 두 번째 보정 알고리즘까지 모두 적용했을 때는 97.75%로 나타날 수 있다. 반지름 4m에서 진행한 2차 실험에서는 알고리즘 적용 전이 87.28%, 첫 번째 보정 알고리즘 적용 후 92.96% 그리고 두 번째 보정 알고리즘까지 적용했을 때 94.28%의 분포도 차이를 나타낼 수 있다. 마지막으로 반지름 3m에서 진행한 3차 실험에서는 알고리즘 적용 전 73.44%, 첫 번째 보정 알고리즘 적용 후 78.96% 그리고 두 번째 보정 알고리즘까지 적용했을 때 84.08%의 결과를 나타낼 수 있다.In experiments in a scale truck environment, results such as those shown in FIG. 7 can be derived. First, in the first experiment results on a track with a radius of 5 m, the difference in distribution between the experimental results before applying the algorithm and GT may be 90.24% on average for 200 sheets, and the difference in distribution when only the first correction algorithm is applied can be 94.94%. . And when all of the second correction algorithms are applied, the result can be 97.75%. In the second experiment conducted at a radius of 4 m, the distribution difference was 87.28% before applying the algorithm, 92.96% after applying the first correction algorithm, and 94.28% when applying the second correction algorithm. Lastly, in the third experiment conducted at a radius of 3 m, the results were 73.44% before applying the algorithm, 78.96% after applying the first correction algorithm, and 84.08% when applying the second correction algorithm.
이로 인해, 스케일 트럭 환경의 실험에서는 알고리즘 적용으로 평균 약 8%의 정확도가 향상되는 것을 확인할 수 있다. 그리고, 곡률 변화에 따른 정확도 비교를 통해 곡률이 작은 1차 실험에 비하여 곡률이 큰 3차 실험으로 갈수록 평균 정확도가 감소한 것을 확인할 수 있고, 곡률이 커질수록 평균 정확도는 떨어지지만 알고리즘 적용을 통한 정확도 향상 폭은 더 크게 나오는 것을 확인할 수 있다.As a result, in experiments in a scale truck environment, it can be seen that the accuracy is improved by about 8% on average by applying the algorithm. And, by comparing the accuracy according to the change in curvature, it can be seen that the average accuracy decreases in the 3rd experiment with a large curvature compared to the 1st experiment with a small curvature. As the curvature increases, the average accuracy decreases, but the accuracy is improved through the application of the algorithm. You can see that the width is larger.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the present invention has been described above with reference to preferred embodiments, those skilled in the art may make various modifications and changes to the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. You will understand that you can do it.
100: 슬라이딩 윈도우 이중 보정 시스템
110: 사용자 단말 130: 이중 보정 장치
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 프레임 이미지 추출부 330: 베이스 포인트 결정부
350: 슬라이딩 윈도우 생성부 370: 슬라이딩 윈도우 누적부
390: 제어부100: Sliding window double compensation system
110: User terminal 130: Double correction device
150: database
210: Processor 230: Memory
250: user input/output unit 270: network input/output unit
310: frame image extraction unit 330: base point determination unit
350: sliding window creation unit 370: sliding window accumulation unit
390: Control unit
Claims (14)
상기 이진 이미지 상에서 x축을 기준으로 베이스 포인트를 결정하는 단계;
상기 베이스 포인트를 중심으로 기 설정된 크기의 제1 슬라이딩 윈도우를 생성하는 단계; 및
상기 제1 슬라이딩 윈도우를 기초로 상기 제1 슬라이딩 윈도우에 인접되면서 상기 이진 이미지 상의 y축 방향으로 누적되는 제2 슬라이딩 윈도우를 생성하는 단계;를 포함하되,
상기 제2 슬라이딩 윈도우를 생성하는 단계는
상기 제1 슬라이딩 윈도우 내에 차선 데이터가 존재하지 않는 경우 이전 단계에서 생성된 제1 슬라이딩 윈도우들 내의 차선 데이터를 이용하는 제1 슬라이딩 윈도우 보정을 통해 상기 제2 슬라이딩 윈도우의 중심을 결정하는 단계를 포함하고,
상기 이전 단계에서 생성된 제1 슬라이딩 윈도우들의 개수가 2 미만인 경우 상기 현재 프레임의 이전 프레임에서 저장된 데이터값을 이용하는 제2 슬라이딩 윈도우 보정을 통해 상기 제2 슬라이딩 윈도우의 중심을 결정하는 단계를 포함하는 것을 특징으로 하는 슬라이딩 윈도우 이중 보정 방법.
generating a binary image based on an original image for a current frame of a driving image including at least a lane;
determining a base point based on the x-axis on the binary image;
generating a first sliding window of a preset size centered on the base point; and
Generating a second sliding window adjacent to the first sliding window based on the first sliding window and accumulating in the y-axis direction on the binary image;
The step of creating the second sliding window is
When no lane data exists in the first sliding window, determining the center of the second sliding window through first sliding window correction using lane data in the first sliding windows generated in the previous step,
If the number of first sliding windows generated in the previous step is less than 2, determining the center of the second sliding window through second sliding window correction using data values stored in the previous frame of the current frame. Features a sliding window double correction method.
상기 원본 이미지 상에서 노이즈를 제거하는 단계;
상기 원본 이미지 상에서 상기 차선에 관한 관심 영역을 설정하는 단계;
상기 관심 영역의 이미지를 조감도 이미지(bird's eye view image)로 변환하는 단계; 및
상기 조감도 이미지를 상기 이진 이미지로 변환하는 단계를 포함하는 것을 특징으로 하는 슬라이딩 윈도우 이중 보정 방법.
The method of claim 1, wherein generating the binary image comprises:
removing noise from the original image;
setting a region of interest regarding the lane on the original image;
converting the image of the region of interest into a bird's eye view image; and
A sliding window double correction method comprising converting the bird's eye view image to the binary image.
상기 이진 이미지 상에서 각 좌표의 차선 픽셀 수를 나타내는 히스토그램(histogram)을 통해 각 차선의 기준으로서 상기 베이스 포인트를 결정하는 단계를 포함하는 것을 특징으로 하는 슬라이딩 윈도우 이중 보정 방법.
The method of claim 1, wherein determining the base point comprises
A sliding window double correction method comprising determining the base point as a reference for each lane through a histogram representing the number of lane pixels at each coordinate on the binary image.
상기 제1 슬라이딩 윈도우 내에 존재하는 차선 데이터의 x축 좌표들의 평균값을 중심으로 상기 기 설정된 크기의 제2 슬라이딩 윈도우를 생성하는 단계를 포함하는 것을 특징으로 하는 슬라이딩 윈도우 이중 보정 방법.
The method of claim 1, wherein generating the second sliding window comprises:
A sliding window double correction method comprising the step of generating a second sliding window of the preset size centered on an average value of x-axis coordinates of lane data existing within the first sliding window.
상기 제1 슬라이딩 윈도우 내에 존재하는 상기 차선 데이터가 기 설정된 임계값 미만인 경우 제1 슬라이딩 윈도우 보정을 수행하는 단계를 포함하는 것을 특징으로 하는 슬라이딩 윈도우 이중 보정 방법.
The method of claim 4, wherein generating the second sliding window comprises:
A sliding window double correction method comprising performing first sliding window correction when the lane data existing within the first sliding window is less than a preset threshold.
이전 단계에서 생성된 제1 슬라이딩 윈도우들마다 상기 차선 데이터의 x축 좌표들의 평균값을 산출하는 단계;
상기 평균값의 변화에 따른 기울기를 산출하는 단계; 및
가장 최근의 제1 슬라이딩 윈도우의 중심에 상기 기울기를 적용하여 상기 제2 슬라이딩 윈도우의 중심을 결정하는 단계를 포함하는 것을 특징으로 하는 슬라이딩 윈도우 이중 보정 방법.
The method of claim 1, wherein generating the second sliding window comprises:
calculating an average value of x-axis coordinates of the lane data for each first sliding window created in the previous step;
calculating a slope according to a change in the average value; and
A sliding window double correction method comprising determining the center of the second sliding window by applying the tilt to the center of the most recent first sliding window.
상기 이전 단계에서 생성된 제1 슬라이딩 윈도우들의 개수가 2 이고 해당 제1 슬라이딩 윈도우들 중 어느 하나에 대해 상기 차선 데이터가 존재하지 않거나 또는 상기 차선 데이터가 기 설정된 임계값 미만인 경우 제2 슬라이딩 윈도우 보정을 수행하는 단계를 포함하는 것을 특징으로 하는 슬라이딩 윈도우 이중 보정 방법.
The method of claim 7, wherein generating the second sliding window comprises:
If the number of first sliding windows generated in the previous step is 2 and the lane data does not exist for one of the first sliding windows or the lane data is less than a preset threshold, second sliding window correction is performed. A sliding window double correction method comprising the steps of:
상기 현재 프레임의 이전 프레임에서 저장된 데이터값을 기초로 상기 제1 슬라이딩 윈도우의 중심 및 상기 기울기를 재설정하는 단계; 및
상기 재설정된 제1 슬라이딩 윈도우의 중심에 상기 재설정된 기울기를 적용하여 상기 제2 슬라이딩 윈도우의 중심을 결정하는 단계를 포함하는 것을 특징으로 하는 슬라이딩 윈도우 이중 보정 방법.
The method of claim 7, wherein generating the second sliding window comprises:
resetting the center and the slope of the first sliding window based on data values stored in a frame previous to the current frame; and
A sliding window double correction method comprising the step of applying the reset slope to the center of the reset first sliding window to determine the center of the second sliding window.
상기 이진 이미지 상에서 x축을 기준으로 베이스 포인트를 결정하는 베이스 포인트 결정부;
상기 베이스 포인트를 중심으로 기 설정된 크기의 제1 슬라이딩 윈도우를 생성하는 슬라이딩 윈도우 생성부; 및
상기 제1 슬라이딩 윈도우를 기초로 상기 제1 슬라이딩 윈도우에 인접되면서 상기 이진 이미지 상의 y축 방향으로 누적되는 제2 슬라이딩 윈도우를 생성하는 슬라이딩 윈도우 누적부;를 포함하되,
상기 슬라이딩 윈도우 누적부는
상기 제1 슬라이딩 윈도우 내에 차선 데이터가 존재하지 않는 경우 이전 단계에서 생성된 제1 슬라이딩 윈도우들 내의 차선 데이터를 이용하는 제1 슬라이딩 윈도우 보정을 통해 상기 제2 슬라이딩 윈도우의 중심을 결정하고,
상기 이전 단계에서 생성된 제1 슬라이딩 윈도우들의 개수가 2 미만인 경우 상기 현재 프레임의 이전 프레임에서 저장된 데이터값을 이용하는 제2 슬라이딩 윈도우 보정을 통해 상기 제2 슬라이딩 윈도우의 중심을 결정하는 것을 특징으로 하는 슬라이딩 윈도우 이중 보정 장치.
a frame image extraction unit that generates a binary image based on the original image of the current frame of the driving image including at least the lane;
a base point determination unit that determines a base point based on the x-axis in the binary image;
a sliding window generator that generates a first sliding window of a preset size centered on the base point; and
A sliding window accumulator for generating a second sliding window adjacent to the first sliding window based on the first sliding window and accumulating in the y-axis direction on the binary image,
The sliding window accumulator is
If no lane data exists in the first sliding window, determine the center of the second sliding window through first sliding window correction using lane data in the first sliding windows generated in the previous step,
When the number of first sliding windows created in the previous step is less than 2, the center of the second sliding window is determined through second sliding window correction using data values stored in the previous frame of the current frame. Windows double compensator.
상기 제1 슬라이딩 윈도우 내에 존재하는 차선 데이터의 x축 좌표들의 평균값을 중심으로 상기 기 설정된 크기의 제2 슬라이딩 윈도우를 생성하는 것을 특징으로 하는 슬라이딩 윈도우 이중 보정 장치.
The method of claim 11, wherein the sliding window accumulation unit
A sliding window double correction device, characterized in that it generates a second sliding window of the preset size centered on the average value of x-axis coordinates of lane data existing in the first sliding window.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210172645 | 2021-12-06 | ||
KR20210172645 | 2021-12-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230085787A KR20230085787A (en) | 2023-06-14 |
KR102586899B1 true KR102586899B1 (en) | 2023-10-11 |
Family
ID=86744883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210190666A KR102586899B1 (en) | 2021-12-06 | 2021-12-29 | Sliding window correction method and device for platooning lane detection |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102586899B1 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101621370B1 (en) * | 2014-08-13 | 2016-05-17 | 고려대학교 산학협력단 | Method and Apparatus for detecting lane of road |
KR101673716B1 (en) | 2014-12-15 | 2016-11-07 | 현대자동차주식회사 | Apparatus and Method for Recognition of Drive Lane of Vehicle |
KR102628654B1 (en) * | 2016-11-07 | 2024-01-24 | 삼성전자주식회사 | Method and apparatus of indicating lane |
-
2021
- 2021-12-29 KR KR1020210190666A patent/KR102586899B1/en active IP Right Grant
Non-Patent Citations (2)
Title |
---|
CPU-FPGA 구조를 이용한 실시간 FCWS 구현(2017.12.31.)* |
트럭 군집주행을 위한 동적 ROI 기반 차선인지(2019.06.30.)* |
Also Published As
Publication number | Publication date |
---|---|
KR20230085787A (en) | 2023-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9818301B2 (en) | Lane correction system, lane correction apparatus and method of correcting lane | |
KR101609303B1 (en) | Method to calibrate camera and apparatus therefor | |
KR102054061B1 (en) | Recognition method of Vehicle Licence Plate | |
US9292750B2 (en) | Method and apparatus for detecting traffic monitoring video | |
US10943131B2 (en) | Image based lane marking classification | |
KR101877570B1 (en) | Apparatus for setting parking position based on around view image and method thereof | |
US8903133B2 (en) | Periodic stationary object detection system and periodic stationary object detection method | |
US8184859B2 (en) | Road marking recognition apparatus and method | |
KR101621370B1 (en) | Method and Apparatus for detecting lane of road | |
KR101281260B1 (en) | Method and Apparatus for Recognizing Vehicle | |
US11482016B2 (en) | Division line recognition apparatus | |
CN107976688A (en) | Obstacle detection method and related device | |
KR101677875B1 (en) | Apparatus and method for line segment detection | |
US8867845B2 (en) | Path recognition device, vehicle, path recognition method, and path recognition program | |
JP6226368B2 (en) | Vehicle monitoring apparatus and vehicle monitoring method | |
US11281930B2 (en) | System and method for object detection | |
CN114245912A (en) | System and method for perceptual error evaluation and correction by solving optimization problems under constraints based on probabilistic signal temporal logic | |
KR101366871B1 (en) | Apparatus and method for detecting curve traffic lane using RIO division | |
CN112434657A (en) | Drift carrier detection method, device, program, and computer-readable medium | |
JP6795224B2 (en) | Mobile detection device, mobile detection method, and program | |
JP4128837B2 (en) | Road lane detection device | |
KR102586899B1 (en) | Sliding window correction method and device for platooning lane detection | |
Espino et al. | Rail and turnout detection using gradient information and template matching | |
KR20120116204A (en) | Apparatus and method for recognizing lane using preceding vehicle | |
KR20180071552A (en) | Lane Detection Method and System for Camera-based Road Curvature Estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |