본 발명의 다양한 실시예는 인공지능 기반 자율주행 차량의 주행 경로 보정방법, 장치 및 컴퓨터프로그램에 관한 것이다.Various embodiments of the present invention relate to a driving path correction method, device, and computer program for an artificial intelligence-based autonomous vehicle.
차량을 운전하는 사용자들의 편의를 위하여, 각종 센서와 전자 장치 등(예: 차량 운전자 보조 시스템(Advanced Driver Assistance System, ADAS)이 구비되고 있는 추세이며, 특히, 차량의 자율 주행 시스템(Autonomous driving System)에 대한 기술 개발이 활발하게 이루어지고 있다.For the convenience of users driving vehicles, various sensors and electronic devices (e.g., Advanced Driver Assistance System (ADAS)) are being installed, especially the autonomous driving system (Autonomous driving System) of vehicles. Technology development is actively taking place.
여기서, 자율 주행 시스템이란 운전자의 개입 없이 주변 환경을 인식하고, 인식된 주변 환경에 따라 스스로 주어진 목적지까지 자동으로 주행하는 차량을 말한다.Here, an autonomous driving system refers to a vehicle that recognizes the surrounding environment without driver intervention and automatically drives to a given destination based on the recognized surrounding environment.
종래의 자율주행 시스템은 자율주행 차량의 주행 안전성 향상을 위해 주행 환경에 대한 다양한 정보(예컨대, 도로 및 차선의 형상 정보, 제한 속도 정보 등)를 정밀지도 데이터 상에 사전에 저장해두고, 차량에 대한 자율주행 제어 시, 정밀지도 데이터 상에 기 저장된 정보를 로드하여 주행 계획을 수립하는 형태로 구현된다. 예컨대, 정밀지도 데이터 상에는 각 도로에서 자율주행 제어를 위한 기준 주행 경로가 저장될 수 있는데, 종래의 자율주행 시스템은 정밀지도 데이터 상에 저장된 기준 주행 경로를 로드하여 해당 도로에서의 주행 경로를 계획하고, 계획된 주행 경로를 따라 주행하도록 차량을 제어할 수 있다.In order to improve the driving safety of autonomous vehicles, the conventional autonomous driving system stores various information about the driving environment (e.g., road and lane shape information, speed limit information, etc.) in advance on precise map data, and provides information about the vehicle. When controlling autonomous driving, it is implemented in the form of establishing a driving plan by loading information previously stored on precision map data. For example, a reference driving route for autonomous driving control on each road may be stored in the precision map data. The conventional autonomous driving system loads the reference driving route stored in the precision map data to plan the driving route on the corresponding road. , the vehicle can be controlled to drive along the planned driving path.
한편, 통상적으로 특정 도로에 대응하는 기준 주행 경로는 특정 도로의 중앙을 지나도록 형성되는데, 직선 도로에서 곡선 도로로 변경되거나 곡선 도로에서 다시 직선 도로로 변경되는 형태를 가지는 도로에 대하여 기준 주행 경로를 도로의 중앙에 맞춰 생성할 경우, 도로의 형태에 따른 곡률 변화로 인해 곡률이 불연속한 구간이 발생할 수 있다.Meanwhile, the standard driving route corresponding to a specific road is usually formed to pass through the center of the specific road. For roads that change from a straight road to a curved road or from a curved road back to a straight road, the standard driving route is set to the road. When created centered, sections with discontinuous curvature may occur due to changes in curvature depending on the shape of the road.
이와 같이, 곡률이 불연속한 구간의 경우, 핸들이 급격하게 돌아감에 따라 차량의 자율주행 제어의 안정성과 승차감에 악영향을 끼칠 가능성이 있다는 문제가 있고, 전체 기준 주행 경로 구간에 대하여 미분 가능하도록 모델링하더라도 일부 구간에서는 승차감 저하 또는 핸들 제어 안정성 저하 가능성 발생될 수 있다는 문제가 있다.As such, in the case of sections where the curvature is discontinuous, there is a problem that the stability of the vehicle's autonomous driving control and ride comfort may be adversely affected as the steering wheel turns rapidly, and modeling is performed so that it can be differentiated for the entire reference driving path section. However, there is a problem that in some sections, there may be a possibility of deterioration of ride comfort or deterioration of steering control stability.
본 발명이 해결하고자 하는 과제는 상술된 종래의 자율주행 시스템의 문제점을 해소하기 위한 목적으로, 차량의 자율주행 제어를 위한 기준 주행 경로를 생성하되, 인공지능 모델을 기반으로 보정이 필요한 구간(예컨대, 제어 안정성과 승차감에 악영향을 끼칠 가능성이 있는 구간)에 대한 주행 경로를 보정함으로써, 자율주행 차량의 주행 제어 안정성과 승차감을 향상시킬 수 있는 인공지능 기반 자율주행 차량의 주행 경로 보정방법, 장치 및 컴퓨터프로그램을 제공하는 것이다.The problem to be solved by the present invention is to solve the problems of the conventional autonomous driving system described above. In order to generate a reference driving path for autonomous driving control of a vehicle, the section requiring correction based on an artificial intelligence model (e.g. A driving path correction method, device, and device for an artificial intelligence-based autonomous vehicle that can improve the driving control stability and riding comfort of an autonomous vehicle by correcting the driving path for sections (sections that are likely to have a negative impact on control stability and riding comfort) It provides computer programs.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned can be clearly understood by those skilled in the art from the description below.
상술한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 인공지능 기반 자율주행 차량의 주행 경로 보정방법은 컴퓨팅 장치에 의해 수행되는 인공지능 기반 자율주행 차량의 주행 경로 보정방법에 있어서, 소정의 지역 내에 위치하는 차량의 자율주행 제어를 위한 기준 주행 경로를 생성하는 단계, 상기 생성된 기준 주행 경로 상에 보정이 필요한 구간을 식별하는 단계 및 상기 식별된 구간을 보정함에 따라 보정된 주행 경로를 생성하는 단계를 포함할 수 있다.The driving path correction method of an artificial intelligence-based autonomous vehicle according to an embodiment of the present invention to solve the above-described problem is a method of correcting the driving path of an artificial intelligence-based autonomous vehicle performed by a computing device, Generating a reference driving path for autonomous driving control of a vehicle located within, identifying a section requiring correction on the generated reference driving path, and generating a corrected driving path by correcting the identified section. May include steps.
다양한 실시예에서, 상기 기준 주행 경로를 생성하는 단계는, 상기 차량의 출발 지점과 도착 지점을 연결하는 기준 주행 경로를 생성하되, 상기 생성된 기준 주행 경로는 상기 차량의 종방향 변위에 따른 곡률 정보를 포함하는 변위-곡률 함수이며, 상기 보정이 필요한 구간을 식별하는 단계는, 상기 변위-곡률 함수를 분석하여, 상기 생성된 기준 주행 경로 상에 보정이 필요한 구간으로서, 미분이 불가능한 지점을 포함하는 구간을 식별하는 단계를 포함할 수 있다.In various embodiments, the step of generating the reference driving path includes generating a reference driving path connecting a starting point and an ending point of the vehicle, wherein the generated reference driving path includes curvature information according to the longitudinal displacement of the vehicle. A displacement-curvature function including a, and the step of identifying a section requiring correction includes analyzing the displacement-curvature function, which is a section requiring correction on the generated reference driving path, including a point where differentiation is not possible. It may include the step of identifying a section.
다양한 실시예에서, 상기 기준 주행 경로를 생성하는 단계는, 상기 차량의 출발 지점과 도착 지점을 연결하는 기준 주행 경로를 생성하되, 상기 생성된 기준 주행 경로는 상기 차량의 종방향 변위에 따른 곡률 정보를 포함하는 변위-곡률 함수이며, 상기 보정이 필요한 구간을 식별하는 단계는, 상기 변위-곡률 함수를 분석하여, 상기 생성된 기준 주행 경로 상에 보정이 필요한 구간으로서, 곡률 변화량이 기준 곡률 변화량 이상인 구간을 식별하는 단계를 포함할 수 있다.In various embodiments, the step of generating the reference driving path includes generating a reference driving path connecting a starting point and an ending point of the vehicle, wherein the generated reference driving path includes curvature information according to the longitudinal displacement of the vehicle. A displacement-curvature function including, and the step of identifying a section requiring correction includes analyzing the displacement-curvature function to determine a section requiring correction on the generated reference driving path, where the curvature change amount is greater than or equal to the reference curvature change amount. It may include the step of identifying a section.
다양한 실시예에서, 상기 보정이 필요한 구간을 식별하는 단계는, 상기 생성된 기준 주행 경로 상에 보정이 필요한 구간으로서, 좌회전 구간, 우회전 구간 및 교차로 구간 중 적어도 하나를 식별하는 단계를 포함할 수 있다.In various embodiments, the step of identifying the section requiring correction may include identifying at least one of a left turn section, a right turn section, and an intersection section as a section requiring correction on the generated reference driving route. .
다양한 실시예에서, 상기 보정된 주행 경로를 생성하는 단계는, 복수의 사용자 각각이 상기 식별된 구간을 수동 주행함에 따라 생성되는 복수의 수동 주행 데이터를 획득하는 단계, 상기 획득된 복수의 수동 주행 데이터를 학습 데이터로 하여 인공지능 모델을 학습시키는 단계 및 상기 학습된 인공지능 모델에 상기 식별된 구간에 관한 정보를 입력함에 따라 상기 식별된 구간에 대응하는 보정된 주행 경로를 출력하는 단계를 포함할 수 있다.In various embodiments, the step of generating the corrected driving path includes acquiring a plurality of manual driving data generated as each of the plurality of users manually drives the identified section, and the acquired plurality of manual driving data It may include training an artificial intelligence model using as learning data and inputting information about the identified section into the learned artificial intelligence model and outputting a corrected driving path corresponding to the identified section. there is.
다양한 실시예에서, 상기 획득된 복수의 수동 주행 데이터 각각은, 상기 식별된 구간에 대한 실제 주행 경로를 포함하며, 상기 인공지능 모델을 학습시키는 단계는, 상기 식별된 구간에 대응하는 기준 주행 경로와 상기 획득된 복수의 수동 주행 데이터 각각에 포함된 실제 주행 경로 간의 곡률 차이를 산출하는 단계, 상기 산출된 곡률 차이의 적분 값을 정규분포화 하는 단계 및 상기 획득된 복수의 수동 주행 데이터 중 상기 정규분포화된 적분 값의 평균 값을 기준으로 소정의 범위 내에 포함되는 수동 주행 데이터를 학습 데이터로 하여 인공지능 모델을 학습시키는 단계를 포함할 수 있다.In various embodiments, each of the acquired plurality of manual driving data includes an actual driving path for the identified section, and the step of training the artificial intelligence model includes a reference driving path corresponding to the identified section and Calculating a curvature difference between actual driving paths included in each of the acquired plurality of manual driving data, normalizing the integral value of the calculated curvature difference, and calculating the normal distribution among the acquired plurality of manual driving data. It may include training an artificial intelligence model using manual driving data within a predetermined range based on the average value of the converted integral value as learning data.
다양한 실시예에서, 상기 획득된 복수의 수동 주행 데이터 각각은, 상기 식별된 구간에 대한 실제 주행 속도를 포함하며, 상기 인공지능 모델을 학습시키는 단계는, 상기 식별된 구간에 대응하여 기 설정된 타겟 속도와 상기 획득된 복수의 수동 주행 데이터 각각에 포함된 실제 주행 속도 간의 속도 차이를 산출하는 단계 및 상기 획득된 복수의 수동 주행 데이터 중 상기 산출된 속도 차이가 기준 속도 차이 이하인 수동 주행 데이터를 학습 데이터로 하여 인공지능 모델을 학습시키는 단계를 포함할 수 있다.In various embodiments, each of the acquired plurality of manual driving data includes an actual driving speed for the identified section, and the step of training the artificial intelligence model includes setting a preset target speed corresponding to the identified section. calculating a speed difference between the actual driving speed included in each of the plurality of acquired manual driving data, and using manual driving data in which the calculated speed difference is less than or equal to the reference speed difference among the plurality of acquired manual driving data as learning data. This may include the step of learning an artificial intelligence model.
다양한 실시예에서, 상기 획득된 복수의 수동 주행 데이터 각각은, 상기 복수의 사용자가 상기 식별된 구간을 수동 주행하는 과정에서 인식된 객체에 관한 정보를 포함하며, 상기 인공지능 모델을 학습시키는 단계는, 상기 획득된 복수의 수동 주행 데이터 각각에 포함된 객체에 관한 정보에 기초하여, 상기 획득된 복수의 수동 주행 데이터 중 인식된 객체의 수가 기준 객체 수 이하인 수동 주행 데이터를 학습 데이터로 하여 인공지능 모델을 학습시키는 단계를 포함할 수 있다.In various embodiments, each of the acquired plurality of manual driving data includes information about objects recognized in the process of the plurality of users manually driving the identified section, and the step of training the artificial intelligence model includes: , Based on the information about the objects included in each of the acquired plurality of manual driving data, an artificial intelligence model using manual driving data in which the number of recognized objects among the acquired plurality of manual driving data is less than or equal to the reference number of objects as learning data. It may include a learning step.
다양한 실시예에서, 상기 획득된 복수의 수동 주행 데이터 각각은, 상기 식별된 구간에 대한 실제 주행 경로를 포함하며, 상기 인공지능 모델을 학습시키는 단계는, 상기 식별된 구간에 대응하는 차로의 중앙과 상기 획득된 복수의 수동 주행 데이터 각각에 포함된 실제 주행 경로 간의 이격 거리를 산출하는 단계 및 상기 획득된 복수의 수동 주행 데이터 중 상기 산출된 이격 거리가 기준 이격 거리 이하인 수동 주행 데이터를 학습 데이터로 하여 인공지능 모델을 학습시키는 단계를 포함할 수 있다.In various embodiments, each of the acquired plurality of manual driving data includes an actual driving path for the identified section, and the step of training the artificial intelligence model includes the center of the lane corresponding to the identified section and Calculating a separation distance between actual driving paths included in each of the plurality of acquired manual driving data, and using manual driving data whose calculated separation distance is less than or equal to a reference separation distance among the plurality of acquired manual driving data as learning data. It may include the step of learning an artificial intelligence model.
다양한 실시예에서, 상기 인공지능 모델을 학습시키는 단계는, 상기 획득된 복수의 수동 주행 데이터를 분석하여 상기 복수의 사용자 각각의 주행 성향을 판단하고, 상기 판단된 주행 성향에 따라 상기 획득된 복수의 수동 주행 데이터를 분류하는 단계 및 상기 분류된 복수의 수동 주행 데이터를 학습 데이터로 하여 인공지능 모델을 학습시키는 단계를 포함할 수 있다.In various embodiments, the step of training the artificial intelligence model includes analyzing the obtained plurality of manual driving data to determine the driving tendency of each of the plurality of users, and determining the driving tendency of each of the plurality of users according to the determined driving tendency. It may include classifying manual driving data and training an artificial intelligence model using the plurality of classified manual driving data as learning data.
다양한 실시예에서, 상기 인공지능 모델을 학습시키는 단계는, 상기 복수의 사용자 각각의 차량의 속성에 기초하여 상기 획득된 복수의 수동 주행 데이터를 분류하는 단계 및 상기 분류된 복수의 수동 주행 데이터를 학습 데이터로 하여 인공지능 모델을 학습시키는 단계를 포함할 수 있다.In various embodiments, the step of training the artificial intelligence model includes classifying the obtained plurality of manual driving data based on attributes of each vehicle of the plurality of users and learning the plurality of classified manual driving data. It may include the step of learning an artificial intelligence model using data.
다양한 실시예에서, 상기 소정의 지역에 대응하는 정밀지도 데이터 상에 상기 보정된 주행 경로를 저장하는 단계 및 상기 소정의 지역 내에 위치하는 제1 차량에 대한 자율주행 제어를 수행하고자 하는 경우, 상기 정밀지도 데이터 상에 저장된 주행 경로를 로드하고, 상기 로드된 주행 경로에 따라 상기 제1 차량에 대한 자율주행 제어를 수행하는 단계를 더 포함할 수 있다.In various embodiments, when it is desired to store the corrected driving path on precision map data corresponding to the predetermined area and perform autonomous driving control for a first vehicle located within the predetermined area, the precision The method may further include loading a driving path stored on map data and performing autonomous driving control for the first vehicle according to the loaded driving path.
다양한 실시예에서, 상기 보정이 필요한 구간을 식별하는 단계는, 제1 주행 경로에 따라 자율주행 중인 제1 차량으로부터 센서 데이터를 획득하는 단계 및 상기 획득된 센서 데이터를 이용하여, 상기 제1 주행 경로 상에 보정이 필요한 구간을 실시간으로 식별하는 단계를 포함하며, 상기 보정된 주행 경로를 생성하는 단계는, 상기 실시간으로 식별된 구간을 보정함에 따라 보정된 주행 경로로서 제2 주행 경로를 생성하는 단계 및 상기 제1 차량의 자율주행 제어를 위한 주행 경로를 상기 제1 주행 경로에서 상기 생성된 제2 주행 경로로 변경하는 단계를 포함할 수 있다.In various embodiments, the identifying the section requiring correction includes obtaining sensor data from a first vehicle that is autonomously driving along a first driving path and using the obtained sensor data to determine the first driving path. A step of identifying in real time a section requiring correction, wherein the step of generating the corrected driving path includes generating a second driving path as a corrected driving path by correcting the section identified in real time. And it may include changing a driving path for autonomous driving control of the first vehicle from the first driving path to the generated second driving path.
상술한 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 인공지능 기반 자율주행 차량의 주행 경로 보정방법을 수행하는 컴퓨팅 장치는 프로세서, 네트워크 인터페이스, 메모리 및 상기 메모리에 로드(load) 되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되, 상기 컴퓨터 프로그램은, 소정의 지역 내에 위치하는 차량의 자율주행 제어를 위한 기준 주행 경로를 생성하는 인스트럭션(instruction) 및 상기 생성된 기준 주행 경로 상에 보정이 필요한 구간을 식별하는 인스트럭션 및 상기 식별된 구간을 보정함에 따라 보정된 주행 경로를 생성하는 인스트럭션을 포함할 수 있다.A computing device that performs a method of correcting the driving path of an artificial intelligence-based autonomous vehicle according to another embodiment of the present invention to solve the above-described problem includes a processor, a network interface, a memory, and the memory, and the processor. Includes a computer program executed by, wherein the computer program includes instructions for generating a reference driving path for autonomous driving control of a vehicle located within a predetermined area and corrections required on the generated reference driving path. It may include an instruction for identifying a section and an instruction for generating a corrected driving path by correcting the identified section.
상술한 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨터프로그램은 컴퓨팅 장치와 결합되어, 소정의 지역 내에 위치하는 차량의 자율주행 제어를 위한 기준 주행 경로를 생성하는 단계, 상기 생성된 기준 주행 경로 상에 보정이 필요한 구간을 식별하는 단계 및 상기 식별된 구간을 보정함에 따라 보정된 주행 경로를 생성하는 단계를 포함하는 인공지능 기반 자율주행 차량의 주행 경로 보정방법을 실행시키기 위하여 컴퓨팅 장치로 판독 가능한 기록매체에 저장될 수 있다.A computer program according to another embodiment of the present invention for solving the above-described problem is combined with a computing device to generate a reference driving path for autonomous driving control of a vehicle located in a predetermined area, the generated reference A computing device is used to execute a driving path correction method for an artificial intelligence-based autonomous vehicle, which includes identifying a section in the driving path that requires correction and generating a corrected driving path by correcting the identified section. It may be stored on a readable recording medium.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.
본 발명의 다양한 실시예에 따르면, 차량의 자율주행 제어를 위한 기준 주행 경로를 생성하되, 인공지능 모델을 기반으로 보정이 필요한 구간(예컨대, 제어 안정성과 승차감에 악영향을 끼칠 가능성이 있는 구간)에 대한 주행 경로를 보정함으로써, 자율주행 차량의 주행 제어 안정성과 승차감을 향상시킬 수 있다는 이점이 있다.According to various embodiments of the present invention, a reference driving path for autonomous driving control of a vehicle is generated, but in a section that requires correction based on an artificial intelligence model (e.g., a section that is likely to adversely affect control stability and ride comfort) There is an advantage in that the driving control stability and riding comfort of autonomous vehicles can be improved by correcting the driving path.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.
도 1은 본 발명의 일 실시예에 따른 자율주행 시스템을 도시한 도면이다.
도 2는 본 발명의 다른 실시예에 따른 인공지능 기반 자율주행 차량의 주행 경로 보정방법을 수행하는 컴퓨팅 장치의 하드웨어 구성도이다.
도 3은 본 발명의 또 다른 실시예에 따른 인공지능 기반 자율주행 차량의 주행 경로 보정방법의 순서도이다.
도 4 및 도 5는 다양한 실시예에서, 특정 도로에 대응하는 기준 주행 경로인 변위-곡률 함수를 예시적으로 도시한 도면이다.
도 6은 다양한 실시예에서, 인공지능 모델을 통해 보정된 주행 경로를 생성하는 과정을 도시한 도면이다.
도 7은 다양한 실시예에서, 인공지능 모델을 생성하는 방법을 설명하기 위한 순서도이다.
도 8은 다양한 실시예에서, 센서 데이터를 기반으로 주행 경로를 실시간 보정하는 방법을 설명하기 위한 순서도이다.
도 9는 다양한 실시예에서, 기준 주행 경로에 대응하는 변위-곡률 함수와 보정된 주행 경로에 대응하는 변위-곡률 함수를 예시적으로 도시한 도면이다.1 is a diagram illustrating an autonomous driving system according to an embodiment of the present invention.
 Figure 2 is a hardware configuration diagram of a computing device that performs a driving path correction method for an artificial intelligence-based autonomous vehicle according to another embodiment of the present invention.
 Figure 3 is a flowchart of a driving path correction method for an artificial intelligence-based autonomous vehicle according to another embodiment of the present invention.
 4 and 5 are diagrams illustrating a displacement-curvature function, which is a reference driving path corresponding to a specific road, in various embodiments.
 Figure 6 is a diagram illustrating a process for generating a corrected driving path through an artificial intelligence model in various embodiments.
 Figure 7 is a flowchart illustrating a method for generating an artificial intelligence model in various embodiments.
 FIG. 8 is a flowchart illustrating a method for real-time correction of a driving path based on sensor data in various embodiments.
 FIG. 9 is a diagram illustrating a displacement-curvature function corresponding to a reference driving path and a displacement-curvature function corresponding to a corrected driving path in various embodiments.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.The advantages and features of the present invention and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms. The present embodiments are merely provided to ensure that the disclosure of the present invention is complete and to provide a general understanding of the technical field to which the present invention pertains. It is provided to fully inform the skilled person of the scope of the present invention, and the present invention is only defined by the scope of the claims.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for describing embodiments and is not intended to limit the invention. As used herein, singular forms also include plural forms, unless specifically stated otherwise in the context. As used in the specification, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other elements in addition to the mentioned elements. Like reference numerals refer to like elements throughout the specification, and “and/or” includes each and every combination of one or more of the referenced elements. Although “first”, “second”, etc. are used to describe various components, these components are of course not limited by these terms. These terms are merely used to distinguish one component from another. Therefore, it goes without saying that the first component mentioned below may also be a second component within the technical spirit of the present invention.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly specifically defined.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.As used in the specification, the term “unit” or “module” refers to a hardware component such as software, FPGA, or ASIC, and the “unit” or “module” performs certain roles. However, “part” or “module” is not limited to software or hardware. A “unit” or “module” may be configured to reside on an addressable storage medium and may be configured to run on one or more processors. Thus, as an example, a “part” or “module” refers to components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, Includes procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functionality provided within components and “parts” or “modules” can be combined into smaller components and “parts” or “modules” or into additional components and “parts” or “modules”. Could be further separated.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.Spatially relative terms such as “below”, “beneath”, “lower”, “above”, “upper”, etc. are used as a single term as shown in the drawing. It can be used to easily describe the correlation between a component and other components. Spatially relative terms should be understood as terms that include different directions of components during use or operation in addition to the directions shown in the drawings. For example, if a component shown in a drawing is flipped over, a component described as “below” or “beneath” another component will be placed “above” the other component. You can. Accordingly, the illustrative term “down” may include both downward and upward directions. Components can also be oriented in other directions, so spatially relative terms can be interpreted according to orientation.
본 명세서에서, 컴퓨터는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨터는 스마트폰, 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.In this specification, a computer refers to all types of hardware devices including at least one processor, and depending on the embodiment, it may be understood as encompassing software configurations that operate on the hardware device. For example, a computer can be understood to include, but is not limited to, a smartphone, tablet PC, desktop, laptop, and user clients and applications running on each device.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.
본 명세서에서 설명되는 각 단계들은 컴퓨터에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.Each step described in this specification is described as being performed by a computer, but the subject of each step is not limited thereto, and depending on the embodiment, at least part of each step may be performed in a different device.
도 1은 본 발명의 일 실시예에 따른 자율주행 시스템을 도시한 도면이다.1 is a diagram illustrating an autonomous driving system according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일 실시예에 따른 자율주행 시스템은 컴퓨팅 장치(100), 사용자 단말(200), 외부 서버(300) 및 네트워크(400)를 포함할 수 있다.Referring to FIG. 1, an autonomous driving system according to an embodiment of the present invention may include a computing device 100, a user terminal 200, an external server 300, and a network 400.
여기서, 도 1에 도시된 자율주행 시스템은 일 실시예에 따른 것이고, 그 구성 요소가 도 1에 도시된 실시예에 한정되는 것은 아니며, 필요에 따라 부가, 변경 또는 삭제될 수 있다.Here, the autonomous driving system shown in FIG. 1 is according to one embodiment, and its components are not limited to the embodiment shown in FIG. 1, and may be added, changed, or deleted as necessary.
일 실시예에서, 컴퓨팅 장치(100)는 차량(10)(예: 자율주행 차량 또는 자율주행 기능이 활성화된 차량)의 위치 및 자세를 측정하고, 차량(10)의 주변 환경을 인식할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 차량(10) 내부에 구비되는 센서(예: 라이다 센서, 레이더 센서, 카메라 센서 등)로부터 센서 데이터를 수집할 수 있고, 수집된 센서 데이터를 활용하여 차량(10)의 위치 및 자세를 측정하고/하거나 수집된 센서 데이터를 분석하여 차량(10)의 주변 환경을 인식할 수 있다.In one embodiment, the computing device 100 may measure the position and posture of the vehicle 10 (e.g., an autonomous vehicle or a vehicle with an activated autonomous driving function) and recognize the surrounding environment of the vehicle 10. . For example, the computing device 100 may collect sensor data from sensors (e.g., lidar sensor, radar sensor, camera sensor, etc.) provided inside the vehicle 10, and use the collected sensor data to The surrounding environment of the vehicle 10 may be recognized by measuring the position and posture of the vehicle 10 and/or analyzing the collected sensor data.
또한, 컴퓨팅 장치(100)는 상기의 방법에 따라 인식된 차량(10)의 주변 환경에 기초하여 차량(10)의 자율주행 제어를 수행할 수 있다.Additionally, the computing device 100 may perform autonomous driving control of the vehicle 10 based on the surrounding environment of the vehicle 10 recognized according to the above method.
다양한 실시예에서, 컴퓨팅 장치(100)는 특정 지역 내에 위치하는 차량(10)에 대한 자율주행 제어를 위하여, 특정 지역에 대응하는 기준 주행 경로를 생성할 수 있고, 생성된 기준 주행 경로를 정밀지도 데이터 상에 저장할 수 있다. 이후, 컴퓨팅 장치(100)는 특정 지역에 위치하는 차량(10)에 대한 자율주행 제어를 수행하고자 하는 경우, 정밀지도 데이터 상에 기 저장된 특정 지역의 기준 주행 경로를 로드하고, 로드된 기준 주행 경로에 따라 차량(10)에 대한 자율주행 제어를 수행할 수 있다.In various embodiments, the computing device 100 may generate a reference driving path corresponding to a specific area in order to control autonomous driving of the vehicle 10 located within a specific area, and may use the generated reference driving path as a precision map. It can be saved on data. Thereafter, when the computing device 100 wishes to perform autonomous driving control for the vehicle 10 located in a specific area, the computing device 100 loads the reference driving route of the specific area previously stored on the precision map data, and loads the loaded reference driving route. Accordingly, autonomous driving control for the vehicle 10 can be performed.
이때, 컴퓨팅 장치(100)는 차량(10)에 대한 주행 제어 안정성 및 승차감 향상을 위하여, 기준 주행 경로 상에 보정이 필요한 구간을 식별하고, 식별된 구간에 대한 주행 경로를 보정하여 보정된 주행 경로를 생성할 수 있다.At this time, in order to improve driving control stability and riding comfort for the vehicle 10, the computing device 100 identifies a section requiring correction on the standard driving path, corrects the driving path for the identified section, and provides a corrected driving path. can be created.
다양한 실시예에서, 컴퓨팅 장치(100)는 네트워크(400)를 통해 사용자 단말(200)과 연결될 수 있으며, 차량(10)의 자율주행 제어와 관련된 각종 정보(예컨대, 기준 주행 경로 등)를 사용자 단말(200)로 제공할 수 있다.In various embodiments, the computing device 100 may be connected to the user terminal 200 through the network 400, and may transmit various information (e.g., reference driving path, etc.) related to autonomous driving control of the vehicle 10 to the user terminal. It can be provided as (200).
여기서, 사용자 단말(200)은 차량(10) 내부에 구비되는 인포테인먼트 시스템일 수 있으나, 이에 한정되지 않고, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 차량(10) 내부에 탑승하는 탑승자가 소지할 수 있는 휴대용 단말일 수 있다. 예를 들어, 사용자 단말(200)은 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(Smartphone), 스마트 패드(Smartpad), 태블릿 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있으나, 이에 한정되지 않는다.Here, the user terminal 200 may be an infotainment system installed inside the vehicle 10, but is not limited to this, and is a wireless communication device that guarantees portability and mobility, and can be carried by a passenger inside the vehicle 10. It may be a portable terminal capable of For example, the user terminal 200 has navigation, personal communication system (PCS), global system for mobile communications (GSM), personal digital cellular (PDC), personal handyphone system (PHS), personal digital assistant (PDA), and IMT. (International Mobile Telecommunication)-2000, CDMA (Code Division Multiple Access)-2000, W-CDMA (W-Code Division Multiple Access), Wibro (Wireless Broadband Internet) terminal, smartphone, smartpad, It may include, but is not limited to, all types of handheld-based wireless communication devices such as tablet PCs, etc.
또한, 여기서, 네트워크(400)는 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미할 수 있다. 예를 들어, 네트워크(400)는 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷(WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함할 수 있다.Also, here, the network 400 may mean a connection structure that allows information exchange between nodes, such as a plurality of terminals and servers. For example, the network 400 includes a local area network (LAN), a wide area network (WAN), the World Wide Web (WWW), a wired and wireless data communication network, a telephone network, and a wired and wireless television communication network. can do.
또한, 여기서, 무선 데이터 통신망은 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), 5GPP(5th Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), RF(Radio Frequency), 블루투스(Bluetooth) 네트워크, NFC(Near-Field Communication) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등을 포함할 수 있으나, 이에 한정되지는 않는다.In addition, here, the wireless data communication network includes 3G, 4G, 5G, 3GPP (3rd Generation Partnership Project), 5GPP (5th Generation Partnership Project), LTE (Long Term Evolution), WIMAX (World Interoperability for Microwave Access), and Wi-Fi (Wi-Fi). Fi), Internet, LAN (Local Area Network), Wireless LAN (Wireless Local Area Network), WAN (Wide Area Network), PAN (Personal Area Network), RF (Radio Frequency), Bluetooth network, It may include, but is not limited to, a Near-Field Communication (NFC) network, a satellite broadcasting network, an analog broadcasting network, and a Digital Multimedia Broadcasting (DMB) network.
일 실시예에서, 외부 서버(300)는 네트워크(400)를 통해 컴퓨팅 장치(100)와 연결될 수 있으며, 컴퓨팅 장치(100)가 인공지능 기반 자율주행 차량의 주행 경로 보정방법을 수행하기 위해 필요한 각종 정보 및 데이터를 저장 및 관리하거나, 인공지능 기반 자율주행 차량의 주행 경로 보정방법을 수행함에 따라 생성되는 각종 정보 및 데이터를 저장 및 관리할 수 있다. 예를 들어, 외부 서버(300)는 컴퓨팅 장치(100)의 외부에 별도로 구비되는 저장 서버일 수 있으나, 이에 한정되지 않는다. 이하, 도 2를 참조하여 인공지능 기반 자율주행 차량의 주행 경로 보정방법을 수행하는 컴퓨팅 장치(100)의 하드웨어 구성에 대해 설명하도록 한다.In one embodiment, the external server 300 may be connected to the computing device 100 through the network 400, and the computing device 100 may perform various driving path correction methods for an artificial intelligence-based autonomous vehicle. It is possible to store and manage information and data, or various information and data generated by performing a method of correcting the driving path of an artificial intelligence-based autonomous vehicle. For example, the external server 300 may be a storage server separately provided outside the computing device 100, but is not limited thereto. Hereinafter, the hardware configuration of the computing device 100 that performs a driving path correction method for an artificial intelligence-based autonomous vehicle will be described with reference to FIG. 2.
도 2는 본 발명의 다른 실시예에 따른 인공지능 기반 자율주행 차량의 주행 경로 보정방법을 수행하는 컴퓨팅 장치의 하드웨어 구성도이다.Figure 2 is a hardware configuration diagram of a computing device that performs a driving path correction method for an artificial intelligence-based autonomous vehicle according to another embodiment of the present invention.
도 2를 참조하면, 본 발명의 다른 실시예에 따른 컴퓨팅 장치(100)는 하나 이상의 프로세서(110), 프로세서(110)에 의하여 수행되는 컴퓨터 프로그램(151)을 로드(Load)하는 메모리(120), 버스(130), 통신 인터페이스(140) 및 컴퓨터 프로그램(151)을 저장하는 스토리지(150)를 포함할 수 있다. 여기서, 도 2에는 본 발명의 실시예와 관련 있는 구성요소들만 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 2에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.Referring to FIG. 2, a computing device 100 according to another embodiment of the present invention includes one or more processors 110 and a memory 120 that loads a computer program 151 executed by the processor 110. , it may include a bus 130, a communication interface 140, and a storage 150 that stores a computer program 151. Here, only components related to the embodiment of the present invention are shown in Figure 2. Accordingly, anyone skilled in the art to which the present invention pertains will know that other general-purpose components may be included in addition to the components shown in FIG. 2.
프로세서(110)는 컴퓨팅 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(110)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다.The processor 110 controls the overall operation of each component of the computing device 100. The processor 110 includes a Central Processing Unit (CPU), Micro Processor Unit (MPU), Micro Controller Unit (MCU), Graphic Processing Unit (GPU), or any other type of processor well known in the art of the present invention. It can be.
또한, 프로세서(110)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있으며, 컴퓨팅 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.Additionally, the processor 110 may perform operations on at least one application or program for executing methods according to embodiments of the present invention, and the computing device 100 may include one or more processors.
다양한 실시예에서, 프로세서(110)는 프로세서(110) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(110)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다.In various embodiments, the processor 110 includes random access memory (RAM) (not shown) and read memory (ROM) that temporarily and/or permanently store signals (or data) processed within the processor 110. -Only Memory, not shown) may be further included. Additionally, the processor 110 may be implemented in the form of a system on chip (SoC) that includes at least one of a graphics processing unit, RAM, and ROM.
메모리(120)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(120)는 본 발명의 다양한 실시예에 따른 방법/동작을 실행하기 위하여 스토리지(150)로부터 컴퓨터 프로그램(151)을 로드할 수 있다. 메모리(120)에 컴퓨터 프로그램(151)이 로드되면, 프로세서(110)는 컴퓨터 프로그램(151)을 구성하는 하나 이상의 인스트럭션들을 실행함으로써 상기 방법/동작을 수행할 수 있다. 메모리(120)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.Memory 120 stores various data, commands and/or information. Memory 120 may load a computer program 151 from storage 150 to execute methods/operations according to various embodiments of the present invention. When the computer program 151 is loaded into the memory 120, the processor 110 can perform the method/operation by executing one or more instructions constituting the computer program 151. The memory 120 may be implemented as a volatile memory such as RAM, but the technical scope of the present disclosure is not limited thereto.
버스(130)는 컴퓨팅 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(130)는 주소 버스(address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.Bus 130 provides communication functionality between components of computing device 100. The bus 130 may be implemented as various types of buses, such as an address bus, a data bus, and a control bus.
통신 인터페이스(140)는 컴퓨팅 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(140)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(140)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 몇몇 실시예에서, 통신 인터페이스(140)는 생략될 수도 있다.The communication interface 140 supports wired and wireless Internet communication of the computing device 100. Additionally, the communication interface 140 may support various communication methods other than Internet communication. To this end, the communication interface 140 may be configured to include a communication module well known in the technical field of the present invention. In some embodiments, communication interface 140 may be omitted.
스토리지(150)는 컴퓨터 프로그램(151)을 비 임시적으로 저장할 수 있다. 컴퓨팅 장치(100)를 통해 인공지능 기반 자율주행 차량의 주행 경로 보정 프로세스를 수행하는 경우, 스토리지(150)는 인공지능 기반 자율주행 차량의 주행 경로 보정 프로세스를 제공하기 위하여 필요한 각종 정보를 저장할 수 있다.Storage 150 may store the computer program 151 non-temporarily. When performing a driving path correction process of an artificial intelligence-based autonomous vehicle through the computing device 100, the storage 150 can store various information necessary to provide a driving path correction process of an artificial intelligence-based autonomous vehicle. .
스토리지(150)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.The storage 150 is a non-volatile memory such as Read Only Memory (ROM), Erasable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), flash memory, a hard disk, a removable disk, or a device well known in the technical field to which the present invention pertains. It may be configured to include any known type of computer-readable recording medium.
컴퓨터 프로그램(151)은 메모리(120)에 로드될 때 프로세서(110)로 하여금 본 발명의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(110)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 발명의 다양한 실시예에 따른 상기 방법/동작을 수행할 수 있다.The computer program 151, when loaded into the memory 120, may include one or more instructions that cause the processor 110 to perform methods/operations according to various embodiments of the present invention. That is, the processor 110 can perform the method/operation according to various embodiments of the present invention by executing the one or more instructions.
일 실시예에서, 컴퓨터 프로그램(151)은 소정의 지역 내에 위치하는 차량의 자율주행 제어를 위한 기준 주행 경로를 생성하는 단계, 생성된 기준 주행 경로 상에 보정이 필요한 구간을 식별하는 단계 및 식별된 구간을 보정함에 따라 보정된 주행 경로를 생성하는 단계를 포함하는 인공지능 기반 자율주행 차량의 주행 경로 보정방법을 수행하도록 하는 하나 이상의 인스트럭션을 포함할 수 있다.In one embodiment, the computer program 151 includes steps of generating a reference driving path for autonomous driving control of a vehicle located within a predetermined area, identifying a section requiring correction on the generated reference driving path, and identifying a section requiring correction on the generated reference driving path. It may include one or more instructions for performing a driving path correction method for an artificial intelligence-based autonomous vehicle, including the step of generating a corrected driving path by correcting the section.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of the method or algorithm described in connection with embodiments of the present invention may be implemented directly in hardware, implemented as a software module executed by hardware, or a combination thereof. The software module may be RAM (Random Access Memory), ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), Flash Memory, hard disk, removable disk, CD-ROM, or It may reside on any type of computer-readable recording medium well known in the art to which the present invention pertains.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 이하, 도 3 내지 도 9를 참조하여, 컴퓨팅 장치(100)에 의해 수행되는 인공지능 기반 자율주행 차량의 주행 경로 보정방법에 대해 보다 구체적으로 설명하도록 한다.The components of the present invention may be implemented as a program (or application) and stored in a medium in order to be executed in conjunction with a hardware computer. Components of the invention may be implemented as software programming or software elements, and similarly, embodiments may include various algorithms implemented as combinations of data structures, processes, routines or other programming constructs, such as C, C++, , may be implemented in a programming or scripting language such as Java, assembler, etc. Functional aspects may be implemented as algorithms running on one or more processors. Hereinafter, with reference to FIGS. 3 to 9, the method of correcting the driving path of an artificial intelligence-based autonomous vehicle performed by the computing device 100 will be described in more detail.
도 3은 본 발명의 또 다른 실시예에 따른 인공지능 기반 자율주행 차량의 주행 경로 보정방법의 순서도이다.Figure 3 is a flowchart of a driving path correction method for an artificial intelligence-based autonomous vehicle according to another embodiment of the present invention.
도 3을 참조하면, S110 단계에서, 컴퓨팅 장치(100)는 기준 주행 경로를 생성할 수 있다. 예컨대, 컴퓨팅 장치(100)는 소정의 지역 내에 위치하는 차량(10)의 자율주행 제어를 위한 목적으로, 소정의 지역에 대응하는 기준 주행 경로를 생성할 수 있다.Referring to FIG. 3, in step S110, the computing device 100 may generate a reference driving path. For example, the computing device 100 may generate a reference driving path corresponding to a predetermined area for the purpose of controlling autonomous driving of the vehicle 10 located within the predetermined area.
다양한 실시예에서, 컴퓨팅 장치(100)는 소정의 지역에 대한 센서 데이터를 이용하여 소정의 지역에 대한 기준 주행 경로를 생성할 수 있다.In various embodiments, the computing device 100 may generate a reference driving route for a certain area using sensor data for a certain area.
보다 구체적으로, 먼저, 컴퓨팅 장치(100)는 소정의 지역에 대한 센서 데이터를 수집할 수 있다. 예컨대, 컴퓨팅 장치(100)는 소정의 지역을 주행하는 차량(예를 들어, 정보 수집을 위한 차량)으로부터 GPS 데이터, 레이저 스캔 데이터, 라이다 스캔 데이터를 포함하는 센서 데이터를 수집할 수 있다.More specifically, first, the computing device 100 may collect sensor data for a predetermined area. For example, the computing device 100 may collect sensor data including GPS data, laser scan data, and LiDAR scan data from a vehicle (eg, a vehicle for information collection) driving in a predetermined area.
이후, 컴퓨팅 장치(100)는 소정의 지역에 대한 센서 데이터를 이용하여 소정의 지역에 대한 스캔 데이터를 생성할 수 있다. 예컨대, 컴퓨팅 장치(100)는 GPS 데이터, 레이저 스캔 데이터, 라이다 스캔 데이터를 통합하여 3D 스캔 데이터를 생성할 수 있다.Thereafter, the computing device 100 may generate scan data for a predetermined area using sensor data for the predetermined area. For example, the computing device 100 may generate 3D scan data by integrating GPS data, laser scan data, and LIDAR scan data.
이후, 컴퓨팅 장치(100)는 소정의 지역에 대한 스캔 데이터를 분석하여 차선을 추출할 수 있고, 추출된 차선에 기초하여 도로의 차선과 차로를 설정할 수 있으며, 설정된 차선 및 차로에 관한 정보를 이용하여 복수의 기준 주행 경로를 생성할 수 있다. 예컨대, 컴퓨팅 장치(100)는 소정의 지역에 대한 스캔 데이터 상에 두 개의 포인트를 선택할 수 있고, 도로의 차선 및 차로에 따라 두 개의 포인트를 연결함으로써, 도로에 대한 기준 주행 경로를 생성할 수 있다.Afterwards, the computing device 100 can extract lanes by analyzing scan data for a predetermined area, set lanes and lanes of the road based on the extracted lanes, and use information about the set lanes and lanes. Thus, multiple reference driving paths can be created. For example, the computing device 100 may select two points on scan data for a predetermined area and connect the two points according to the lanes and lanes of the road, thereby creating a reference driving path for the road. .
이때, 컴퓨팅 장치(100)는 CPCP 모델(Cubic Polynomial Curvature Path Model)을 이용하여 둘 이상의 포인트를 연결함으로써, 기준 주행 경로를 생성할 수 있으나, 이에 한정되지 않는다.At this time, the computing device 100 may generate a reference driving path by connecting two or more points using a CPCP model (Cubic Polynomial Curvature Path Model), but is not limited to this.
다양한 실시예에서, 컴퓨팅 장치(100)는 복수의 포인트가 선택된 경우, 복수의 포인트 중 상호 인접한 두 개의 포인트 각각을 연결함으로써, 복수의 단위 기준 주행 경로를 생성할 수 있고, 복수의 단위 기준 경로 간 연결 정보를 생성할 수 있으며, 복수의 단위 기준 경로 및 연결 정보를 이용하여 기준 주행 경로를 생성할 수 있다.In various embodiments, when a plurality of points are selected, the computing device 100 may generate a plurality of unit reference driving paths by connecting each of two adjacent points among the plurality of points, and may generate a plurality of unit reference driving paths between the plurality of unit reference paths. Connection information can be created, and a reference driving path can be created using a plurality of unit reference paths and connection information.
다양한 실시예에서, 컴퓨팅 장치(100)는 소정의 지역에 대하여, 시작 지점, 하나 이상의 중간 지점 및 종료 지점을 연결하는 기준 주행 경로를 생성할 수 있다.In various embodiments, the computing device 100 may generate a reference driving route connecting a starting point, one or more intermediate points, and an ending point for a predetermined area.
보다 구체적으로, 먼저, 컴퓨팅 장치(100)는 주행 경로 생성을 위한 시작 지점과 종료 지점에 대한 정보를 획득할 수 있고, 시작 지점과 종료 지점 사이의 하나 이상의 중간 지점을 설정할 수 있다.More specifically, first, the computing device 100 may obtain information about the start point and end point for creating a driving route, and may set one or more intermediate points between the start point and the end point.
이후, 컴퓨팅 장치(100)는 시작 지점, 하나 이상의 중간 지점 및 종료 지점을 연결하는 기준 주행 경로를 생성할 수 있다. 예컨대, 컴퓨팅 장치(100)는 시작 지점과 하나 이상의 중간 지점을 연결하는 곡선, 하나 이상의 중간 지점을 연결하는 곡선(예: 하나 이상의 중간 지점이 둘 이상일 경우 두 개의 중간 지점 사이를 연결하는 곡선) 및 하나 이상의 중간 지점과 종료 지점을 연결하는 곡선을 각각 생성하고, 생성된 복수의 곡선을 연결함으로써, 곡선의 집합 형태의 주행 경로를 생성할 수 있다.Thereafter, the computing device 100 may generate a reference driving path connecting a starting point, one or more intermediate points, and an ending point. For example, computing device 100 may include a curve connecting a starting point and one or more intermediate points, a curve connecting one or more intermediate points (e.g., a curve connecting two intermediate points if there is more than one intermediate point), and By creating a curve connecting one or more intermediate points and an end point and connecting the plurality of created curves, a driving path in the form of a set of curves can be created.
다양한 실시예에서, 컴퓨팅 장치(100)는 시작 지점, 하나의 중간 지점 및 종료 지점이 설정된 경우, 시작 지점과 하나의 중간 지점을 연결하는 단위 기준 주행 경로에 대응하는 다항식 함수와 하나 이상의 중간 지점과 종료 지점을 연결하는 단위 기준 주행 경로에 대응하는 다항식 함수를 추정할 수 있고, 시작 지점, 하나의 중간 지점 및 종료 지점에 대한 정보(예컨대, 각 지점의 위치 좌표, 진행 각도, 연속성 조건 등)에 따라 추정된 다항식 함수를 확정함으로써 기준 주행 경로를 생성할 수 있다.In various embodiments, when a starting point, one intermediate point, and an ending point are set, the computing device 100 may provide a polynomial function corresponding to a unit-based driving path connecting the starting point and one intermediate point and one or more intermediate points. A polynomial function corresponding to a unit-based driving path connecting the end points can be estimated, and information about the start point, one intermediate point, and end point (e.g., position coordinates of each point, progress angle, continuity conditions, etc.) can be estimated. A reference driving path can be created by confirming the polynomial function estimated accordingly.
다양한 실시예에서, 컴퓨팅 장치(100)는 기준 주행 경로 생성을 위한 복수의 기준점을 설정할 수 있고, 설정된 복수의 기준점의 위치에 기반하여 기준 주행 경로를 생성하되, 직선 구간, 곡선 구간 및 직선 구간과 곡선 구간을 연결하는 클로소이드(Clothoid) 구간 각각에 대응하는 곡선의 집합이며, 변위에 따른 곡률 함수(변위-곡률 함수)로 표현되는 기준 주행 경로를 생성할 수 있다.In various embodiments, the computing device 100 may set a plurality of reference points for generating a reference driving path, and generate a reference driving path based on the positions of the plurality of set reference points, including a straight section, a curved section, and a straight section. It is a set of curves corresponding to each Clothoid section connecting curved sections, and can generate a reference driving path expressed as a curvature function (displacement-curvature function) according to displacement.
일례로, 컴퓨팅 장치(100)는 복수의 파라미터를 설정하고, 복수의 파라미터를 이용하여 직선 구간, 곡선 구간 및 클로소이드 구간에 대응하는 주행 경로 함수를 모델링하되, 복수의 기준점 각각의 위치와 기준 주행 경로 함수 간의 오차를 산출하고, 회귀 분석(Regression analysis)을 통해 오차가 최소 값을 가지도록 복수의 파라미터를 보정하고, 보정된 복수의 파라미터를 이용하여 기준 주행 경로 함수를 생성할 수 있다.For example, the computing device 100 sets a plurality of parameters and uses the plurality of parameters to model a driving path function corresponding to a straight section, a curved section, and a clothoid section, and the location and reference of each of the plurality of reference points. The error between driving path functions can be calculated, a plurality of parameters can be corrected so that the error has a minimum value through regression analysis, and a reference driving path function can be generated using the corrected plurality of parameters.
다른 예로, 컴퓨팅 장치(100)는 복수의 파라미터를 설정하고, 복수의 파라미터를 이용하여 직선 구간, 곡선 구간 및 클로소이드 구간에 대응하는 주행 경로 함수를 모델링하되, 복수의 기준점을 이용하여 모델링된 주행 경로와 복수의 파라미터를 이용하여 모델링된 주행 경로 간의 오차를 산출하고, 회귀 분석을 통해 오차가 최소 값을 가지도록 복수의 파라미터를 보정하고, 보정된 복수의 파라미터를 이용하여 기준 주행 경로 함수를 생성할 수 있다.As another example, the computing device 100 sets a plurality of parameters, models a driving path function corresponding to a straight section, curved section, and clothoid section using a plurality of parameters, and models a driving path function using a plurality of reference points. Calculate the error between the driving path and the driving path modeled using a plurality of parameters, correct the plurality of parameters so that the error has the minimum value through regression analysis, and calculate the reference driving path function using the corrected plurality of parameters. can be created.
또 다른 예로, 컴퓨팅 장치(100)는 복수의 파라미터를 설정하고, 복수의 파라미터를 이용하여 직선 구간, 곡선 구간 및 클로소이드 구간에 대응하는 주행 경로 함수를 모델링하되, 차량(10)이 복수의 기준점을 이용하여 모델링된 주행 경로에 따라 소정의 거리만큼 주행했을 때의 위치와 복수의 파라미터를 이용하여 모델링된 주행 경로에 따라 소정의 거리만큼 주행했을 때의 위치의 오차를 산출하고, 회귀 분석을 통해 오차가 최소 값을 가지도록 복수의 파라미터를 보정하고, 보정된 복수의 파라미터를 이용하여 기준 주행 경로 함수를 생성할 수 있다.As another example, the computing device 100 sets a plurality of parameters and models a driving path function corresponding to a straight section, a curved section, and a clothoid section using the plurality of parameters, but the vehicle 10 uses a plurality of parameters. Calculate the position when driving a predetermined distance along a driving path modeled using a reference point and the error of the position when driving a predetermined distance according to a driving path modeled using a plurality of parameters, and perform regression analysis. Through this, a plurality of parameters can be corrected so that the error has a minimum value, and a reference driving path function can be generated using the corrected plurality of parameters.
S120 단계에서, 컴퓨팅 장치(100)는 S110 단계를 거쳐 생성된 기준 주행 경로 상에 보정이 필요한 구간을 식별할 수 있다.In step S120, the computing device 100 may identify a section requiring correction on the reference driving path generated through step S110.
다양한 실시예에서, 컴퓨팅 장치(100)는 소정의 지역에 대한 기준 주행 경로로서, 차량(10)의 종방향 변위에 따른 곡률 정보를 포함하는 변위-곡률 함수가 생성된 경우, 변위-곡률 함수를 분석하여 미분이 불가능한 지점을 포함하는 구간을 기준 주행 경로 상에 보정이 필요한 구간으로 식별할 수 있다.In various embodiments, the computing device 100 generates a displacement-curvature function that includes curvature information according to the longitudinal displacement of the vehicle 10 as a reference driving path for a predetermined area. Through analysis, sections containing points where differentiation is not possible can be identified as sections requiring correction on the standard driving path.
예컨대, 도 4에 도시된 바와 같이, 소정의 지역 내의 도로가 직선 도로에서 곡률이 일정한 곡선 도로들을 거쳐 다시 직선 도로가 되는 형태일 때, 도로의 중앙을 지나도록 기준 주행 경로를 모델링(Ideal curvature)할 경우, 도 5에 도시된 바와 같이 곡률이 불연속한 구간이 발생하게 된다.For example, as shown in FIG. 4, when the road in a certain area changes from a straight road to a curved road with a constant curvature and then back to a straight road, the reference driving path is modeled to pass through the center of the road (Ideal curvature). In this case, a section with discontinuous curvature occurs as shown in FIG. 5.
승차감 향상 및 핸들 제어 안정성을 위해 곡률이 연속되도록 기준 주행 경로를 모델링하는 방법들이 제안(RHCP)되고 있으나, 모델링 방법에 따라 변위(s)에 따른 곡률(k)이 미분 불가능한 지점이 생길 수 있고, 미분이 불가능한 부분에서는 핸들이 급격히 돌아갈 수 있는 바, 제어 안정성 및 승차감에 악영향을 끼칠 수 있다는 문제가 있다.In order to improve ride comfort and stabilize steering wheel control, methods have been proposed (RHCP) to model the reference driving path so that the curvature is continuous. However, depending on the modeling method, there may be a point where the curvature (k) according to the displacement (s) is not differentiable, There is a problem that the steering wheel may turn rapidly in areas where differentiation is not possible, which may have a negative effect on control stability and riding comfort.
이러한 점을 고려하여, 컴퓨팅 장치(100)는 기준 주행 경로인 변위-곡률 함수를 분석하여, 변위-곡률 함수에서 미분이 불가능한 지점을 포함하는 구간을 보정이 필요한 구간으로 식별할 수 있다.In consideration of this, the computing device 100 may analyze the displacement-curvature function, which is the reference driving path, and identify a section including a point where differentiation is not possible in the displacement-curvature function as a section requiring correction.
한편, 기준 주행 경로에 대한 변위-곡률 함수가 전 구간에서 미분이 가능하도록 모델링 되더라도 일부 구간에서 승차감 저하 또는 핸들 제어 안정성 저하가 발생될 수 있는 바, 이러한 점을 고려하여 컴퓨팅 장치(100)는 기준 주행 경로 상에 승차감 저하 또는 핸들 제어 안정성 저하를 유발하는 구간을 보정이 필요한 구간으로 설정할 수 있다.Meanwhile, even if the displacement-curvature function for the reference driving path is modeled to be differentiable in all sections, a decrease in ride comfort or a decrease in steering control stability may occur in some sections. In consideration of this, the computing device 100 Sections on the driving route that cause deterioration of ride comfort or deterioration of steering control stability can be set as sections requiring correction.
일례로, 컴퓨팅 장치(100)는 소정의 지역에 대한 기준 주행 경로로서, 차량(10)의 종방향 변위에 따른 곡률 정보를 포함하는 변위-곡률 함수가 생성된 경우, 변위-곡률 함수를 분석하여 곡률 변화량이 기준 곡률 변화량 이상인 구간(예컨대, 직선 도로에서 급격한 곡선 도로로 진입하는 구간 등)을 기준 주행 경로 상에 보정이 필요한 구간으로 식별할 수 있다.For example, when a displacement-curvature function containing curvature information according to the longitudinal displacement of the vehicle 10 is generated as a reference driving path for a predetermined area, the computing device 100 analyzes the displacement-curvature function and A section in which the curvature change amount is greater than the standard curvature change amount (for example, a section entering a sharply curved road from a straight road, etc.) may be identified as a section requiring correction on the standard driving path.
다른 예로, 컴퓨팅 장치(100)는 소정의 지역에 대한 기준 주행 경로를 분석하여 좌회전 구간, 우회전 구간 및 교차로 구간 중 적어도 하나를 기준 주행 경로 상에 보정이 필요한 구간으로 식별할 수 있다.As another example, the computing device 100 may analyze the standard driving path for a predetermined area and identify at least one of a left turn section, a right turn section, and an intersection section as a section requiring correction on the standard driving path.
S130 단계에서, 컴퓨팅 장치(100)는 S120 단계를 거쳐 식별된 구간 즉, 기준 주행 경로 상에 보정이 필요한 구간을 보정함에 따라 보정된 주행 경로를 생성할 수 있다.In step S130, the computing device 100 may generate a corrected driving path by correcting the section identified through step S120, that is, a section requiring correction on the reference driving path.
다양한 실시예에서, 컴퓨팅 장치(100)는 기 학습된 인공지능 모델을 통해, 기준 주행 경로 상의 보정이 필요한 구간을 보정함에 따라 보정된 주행 경로를 생성할 수 있다.In various embodiments, the computing device 100 may generate a corrected driving path by correcting a section requiring correction on a standard driving path through a previously learned artificial intelligence model.
여기서, 기 학습된 인공지능 모델은 도 6에 도시된 바와 같이 복수의 사용자가 차량을 수동 주행함에 따라 생성되는 복수의 수동 주행 데이터를 학습 데이터로 하여 학습된 모델이며, 특정 구간에 대한 변위-곡률 함수, 인지 정보(예컨대, 주변 차량, 보행자, 신호등 정보 등), 측위 정보(예컨대, 차량(10)의 위치, 자세, yaw rate, 조향각 등)을 입력받아 특정 구간에 대한 보정된 변위-곡률 함수를 출력하는 모델일 수 있다.Here, the previously learned artificial intelligence model is a model learned using as learning data a plurality of manual driving data generated as a plurality of users manually drive the vehicle, as shown in FIG. 6, and the displacement-curvature for a specific section A corrected displacement-curvature function for a specific section by receiving functions, cognitive information (e.g., surrounding vehicle, pedestrian, traffic light information, etc.), and positioning information (e.g., location, posture, yaw rate, steering angle, etc. of the vehicle 10). It may be a model that outputs.
인공지능 모델(예: 신경망)은 하나 이상의 네트워크 함수로 구성되며, 하나 이상의 네트워크 함수는 일반적으로 ‘노드’라 지칭될 수 있는 상호 연결된 계산 단위들의 집합으로 구성될 수 있다. 이러한 ‘노드’들은 ‘뉴런(neuron)’들로 지칭될 수도 있다. 하나 이상의 네트워크 함수는 적어도 하나 이상의 노드들을 포함하여 구성된다. 하나 이상의 네트워크 함수를 구성하는 노드(또는 뉴런)들은 하나 이상의 ‘링크’에 의해 상호 연결될 수 있다.An artificial intelligence model (e.g. a neural network) consists of one or more network functions, and one or more network functions may consist of a set of interconnected computational units, which can generally be referred to as ‘nodes’. These ‘nodes’ may also be referred to as ‘neurons’. One or more network functions are composed of at least one or more nodes. Nodes (or neurons) that make up one or more network functions may be interconnected by one or more ‘links’.
인공지능 모델 내에서, 링크를 통해 연결된 하나 이상의 노드들은 상대적으로 입력 노드 및 출력 노드의 관계를 형성할 수 있다. 입력 노드 및 출력 노드의 개념은 상대적인 것으로서, 하나의 노드에 대하여 출력 노드 관계에 있는 임의의 노드는 다른 노드와의 관계에서 입력 노드 관계에 있을 수 있으며, 그 역도 성립할 수 있다. 전술한 바와 같이, 입력 노드 대 출력 노드 관계는 링크를 중심으로 생성될 수 있다. 하나의 입력 노드에 하나 이상의 출력 노드가 링크를 통해 연결될 수 있으며, 그 역도 성립할 수 있다.Within an artificial intelligence model, one or more nodes connected through a link can form a relative input node and output node relationship. The concepts of input node and output node are relative, and any node in an output node relationship with one node may be in an input node relationship with another node, and vice versa. As described above, input node to output node relationships can be created around links. One or more output nodes can be connected to one input node through a link, and vice versa.
하나의 링크를 통해 연결된 입력 노드 및 출력 노드 관계에서, 출력 노드는 입력 노드에 입력된 데이터에 기초하여 그 값이 결정될 수 있다. 여기서 입력 노드와 출력 노드를 상호 연결하는 노드는 가중치(weight)를 가질 수 있다. 가중치는 가변적일 수 있으며, 인공지능 모델이 원하는 기능을 수행하기 위해, 사용자 또는 알고리즘에 의해 가변될 수 있다. 예를 들어, 하나의 출력 노드에 하나 이상의 입력 노드가 각각의 링크에 의해 상호 연결된 경우, 출력 노드는 상기 출력 노드와 연결된 입력 노드들에 입력된 값들 및 각각의 입력 노드들에 대응하는 링크에 설정된 가중치에 기초하여 출력 노드 값을 결정할 수 있다.In a relationship between an input node and an output node connected through one link, the value of the output node may be determined based on data input to the input node. Here, the nodes connecting the input node and the output node may have a weight. Weights may be variable and may be varied by the user or algorithm in order for the artificial intelligence model to perform the desired function. For example, when one or more input nodes are connected to one output node by respective links, the output node is set to the values input to the input nodes connected to the output node and the links corresponding to each input node. The output node value can be determined based on the weight.
전술한 바와 같이, 인공지능 모델은 하나 이상의 노드들이 하나 이상의 링크를 통해 상호연결 되어 인공지능 모델 내에서 입력 노드 및 출력 노드 관계를 형성한다. 인공지능 모델 내에서 노드들과 링크들의 개수 및 노드들과 링크들 사이의 연관관계, 링크들 각각에 부여된 가중치의 값에 따라, 인공지능 모델의 특성이 결정될 수 있다. 예를 들어, 동일한 개수의 노드 및 링크들이 존재하고, 링크들 사이의 가중치 값이 상이한 두 인공지능 모델이 존재하는 경우, 두 개의 인공지능 모델들은 서로 상이한 것으로 인식될 수 있다.As described above, in an artificial intelligence model, one or more nodes are interconnected through one or more links to form an input node and output node relationship within the artificial intelligence model. The characteristics of the artificial intelligence model can be determined according to the number of nodes and links within the artificial intelligence model, the correlation between nodes and links, and the weight value assigned to each link. For example, if there are two artificial intelligence models with the same number of nodes and links and different weight values between the links, the two artificial intelligence models may be recognized as different from each other.
인공지능 모델을 구성하는 노드들 중 일부는, 최초 입력 노드로부터의 거리들에 기초하여, 하나의 레이어(layer)를 구성할 수 있다. 예를 들어, 최초 입력 노드로부터 거리가 n인 노드들의 집합은, n 레이어를 구성할 수 있다. 최초 입력 노드로부터 거리는, 최초 입력 노드로부터 해당 노드까지 도달하기 위해 거쳐야 하는 링크들의 최소 개수에 의해 정의될 수 있다. 그러나, 이러한 레이어의 정의는 설명을 위한 임의적인 것으로서, 인공지능 모델 내에서 레이어의 차수는 전술한 것과 상이한 방법으로 정의될 수 있다. 예를 들어, 노드들의 레이어는 최종 출력 노드로부터 거리에 의해 정의될 수도 있다.Some of the nodes constituting the artificial intelligence model may form one layer based on the distances from the initial input node. For example, a set of nodes with a distance n from the initial input node may constitute n layers. The distance from the initial input node can be defined by the minimum number of links that must be passed to reach the node from the initial input node. However, this definition of the layer is arbitrary for explanation purposes, and the order of the layer within the artificial intelligence model may be defined in a different way than described above. For example, a layer of nodes may be defined by distance from the final output node.
최초 입력 노드는 인공지능 모델 내의 노드들 중 다른 노드들과의 관계에서 링크를 거치지 않고 데이터가 직접 입력되는 하나 이상의 노드들을 의미할 수 있다. 또는, 인공지능 모델 네트워크 내에서, 링크를 기준으로 한 노드 간의 관계에 있어서, 링크로 연결된 다른 입력 노드들 가지지 않는 노드들을 의미할 수 있다. 이와 유사하게, 최종 출력 노드는 인공지능 모델 내의 노드들 중 다른 노드들과의 관계에서, 출력 노드를 가지지 않는 하나 이상의 노드들을 의미할 수 있다. 또한, 히든 노드는 최초 입력 노드 및 최후 출력 노드가 아닌 인공지능 모델을 구성하는 노드들을 의미할 수 있다. 본 발명의 일 실시예에 따른 인공지능 모델은 입력 레이어의 노드가 출력 레이어에 가까운 히든 레이어의 노드보다 많을 수 있으며, 입력 레이어에서 히든 레이어로 진행됨에 따라 노드의 수가 감소하는 형태의 인공지능 모델일 수 있다.The initial input node may refer to one or more nodes in the artificial intelligence model into which data is directly input without going through links in relationships with other nodes. Alternatively, in an artificial intelligence model network, in the relationship between nodes based on links, it may mean nodes that do not have other input nodes connected by links. Similarly, the final output node may refer to one or more nodes that do not have an output node in their relationship with other nodes among the nodes in the artificial intelligence model. Additionally, hidden nodes may refer to nodes that constitute an artificial intelligence model rather than the first input node and the last output node. The artificial intelligence model according to an embodiment of the present invention may have more nodes in the input layer than the nodes in the hidden layer close to the output layer, and is an artificial intelligence model in which the number of nodes decreases as it progresses from the input layer to the hidden layer. You can.
인공지능 모델은 하나 이상의 히든 레이어를 포함할 수 있다. 히든 레이어의 히든 노드는 이전의 레이어의 출력과 주변 히든 노드의 출력을 입력으로 할 수 있다. 각 히든 레이어 별 히든 노드의 수는 동일할 수도 있고 상이할 수도 있다. 입력 레이어의 노드의 수는 입력 데이터의 데이터 필드의 수에 기초하여 결정될 수 있으며 히든 노드의 수와 동일할 수도 있고 상이할 수도 있다. 입력 레이어에 입력된 입력 데이터는 히든 레이어의 히든 노드에 의하여 연산될 수 있고 출력 레이어인 완전 연결 레이어(FCL: fully connected layer)에 의해 출력될 수 있다.An artificial intelligence model may include one or more hidden layers. The hidden node of the hidden layer can take the output of the previous layer and the output of surrounding hidden nodes as input. The number of hidden nodes for each hidden layer may be the same or different. The number of nodes in the input layer may be determined based on the number of data fields of the input data and may be the same as or different from the number of hidden nodes. Input data input to the input layer can be operated by the hidden node of the hidden layer and output by the fully connected layer (FCL), which is the output layer.
다양한 실시예에서, 기 학습된 인공지능 모델은 딥러닝(Deep learning)일 수 있다. 예컨대, 기 학습된 인공지능 모델은 시계열적 인공신경망을 이용하는 모델(예컨대, RNNs)일 수 있으나, 이에 한정되지 않는다.In various embodiments, the previously learned artificial intelligence model may be deep learning. For example, the previously learned artificial intelligence model may be a model using time-series artificial neural networks (e.g., RNNs), but is not limited to this.
딥러닝 모델(예: 딥 뉴럴 네트워크(DNN: deep neural network, 심층신경망)는 입력 레이어와 출력 레이어 외에 복수의 히든 레이어를 포함하는 인공지능 모델을 의미할 수 있다. 딥 뉴럴 네트워크를 이용하면 데이터의 잠재적인 구조(latent structures)를 파악할 수 있다. 즉, 사진, 글, 비디오, 음성, 음악의 잠재적인 구조(예를 들어, 어떤 물체가 사진에 있는지, 글의 내용과 감정이 무엇인지, 음성의 내용과 감정이 무엇인지 등)를 파악할 수 있다.A deep learning model (e.g., deep neural network (DNN)) may refer to an artificial intelligence model that includes multiple hidden layers in addition to the input layer and output layer. Using a deep neural network, data Latent structures can be identified, that is, the latent structures of photos, text, video, voice, and music (e.g., what objects are in the photo, what the content and emotion of the text are, and what the sound of the voice is like). content, emotions, etc.).
딥 뉴럴 네트워크는 컨벌루셔널 뉴럴 네트워크(CNN: convolutional neural network), 리커런트 뉴럴 네트워크(RNN: recurrent neural network), 오토 인코더(auto encoder), GAN(Generative Adversarial Networks), 제한 볼츠만 머신(RBM: restricted boltzmann machine), 심층 신뢰 네트워크(DBN: deep belief network), Q 네트워크, U 네트워크, 샴 네트워크 등을 포함할 수 있으나, 이에 한정되지 않는다.Deep neural networks include convolutional neural networks (CNN), recurrent neural networks (RNN), auto encoders, generative adversarial networks (GAN), and restricted Boltzmann machines (RBMs). Boltzmann machine), deep belief network (DBN), Q network, U network, Siamese network, etc., but are not limited to these.
다양한 실시예에서, 네트워크 함수는 오토 인코더를 포함할 수도 있다. 여기서, 오토 인코더는 입력 데이터와 유사한 출력 데이터를 출력하기 위한 인공 신경망의 일종일 수 있다.In various embodiments, a network function may include an autoencoder. Here, the autoencoder may be a type of artificial neural network for outputting output data similar to input data.
오토 인코더는 적어도 하나의 히든 레이어를 포함할 수 있으며, 홀수 개의 히든 레이어가 입출력 레이어 사이에 배치될 수 있다. 각각의 레이어의 노드의 수는 입력 레이어의 노드의 수에서 병목 레이어(인코딩)라는 중간 레이어로 축소되었다가, 병목 레이어에서 출력 레이어(입력 레이어와 대칭)로 축소와 대칭되어 확장될 수도 있다. 차원 감소 레이어와 차원 복원 레이어의 노드는 대칭일 수도 있고 아닐 수도 있다. 또한, 오토 인코더는 비선형 차원 감소를 수행할 수 있다. 입력 레이어 및 출력 레이어의 수는 입력 데이터의 전처리 이후에 남은 센서들의 수와 대응될 수 있다. 오토 인코더 구조에서 인코더에 포함된 히든 레이어의 노드의 수는 입력 레이어에서 멀어질수록 감소하는 구조를 가질 수 있다. 병목 레이어(인코더와 디코더 사이에 위치하는 가장 적은 노드를 가진 레이어)의 노드의 수는 너무 작은 경우 충분한 양의 정보가 전달되지 않을 수 있으므로, 특정 수 이상(예를 들어, 입력 레이어의 절반 이상 등)으로 유지될 수도 있다. 이하, 도 7을 참조하여, 보정된 주행 경로를 생성하는 인공지능 모델의 생성 방법에 대하여 보다 구체적으로 설명하도록 한다.The autoencoder may include at least one hidden layer, and an odd number of hidden layers may be placed between input and output layers. The number of nodes in each layer may be reduced from the number of nodes in the input layer to an intermediate layer called the bottleneck layer (encoding), and then expanded symmetrically and reduced from the bottleneck layer to the output layer (symmetrical to the input layer). The nodes of the dimensionality reduction layer and dimensionality restoration layer may or may not be symmetric. Additionally, autoencoders can perform non-linear dimensionality reduction. The number of input layers and output layers may correspond to the number of sensors remaining after preprocessing of the input data. In an auto-encoder structure, the number of nodes in the hidden layer included in the encoder may have a structure that decreases as the distance from the input layer increases. If the number of nodes in the bottleneck layer (the layer with the fewest nodes located between the encoder and decoder) is too small, not enough information may be conveyed, so if it is higher than a certain number (e.g., more than half of the input layers, etc.) ) may be maintained. Hereinafter, with reference to FIG. 7, the method of generating an artificial intelligence model that generates a corrected driving path will be described in more detail.
도 7은 다양한 실시예에서, 인공지능 모델을 생성하는 방법을 설명하기 위한 순서도이다.Figure 7 is a flowchart illustrating a method for generating an artificial intelligence model in various embodiments.
도 7을 참조하면, S210 단계에서, 컴퓨팅 장치(100)는 복수의 수동 주행 데이터를 획득할 수 있다.Referring to FIG. 7 , in step S210, the computing device 100 may acquire a plurality of manual driving data.
다양한 실시예에서, 컴퓨팅 장치(100)는 기준 주행 경로 상의 특정 구간에 대한 보정을 수행하고자 하는 경우, 복수의 사용자 각각이 특정 구간을 수동 주행함에 따라 생성되는 복수의 수동 주행 데이터를 획득할 수 있다.In various embodiments, when the computing device 100 wants to perform correction for a specific section on a reference driving route, it may acquire a plurality of manual driving data generated as each of a plurality of users manually drives a specific section. .
여기서, 특정 구간에 대한 복수의 수동 주행 데이터 각각은 특정 구간에 대한 실제 주행 경로(예컨대, 실제 주행 경로에 대응하는 변위-곡률 함수)를 포함할 수 있으나, 이에 한정되지 않고, 복수의 수동 주행 데이터 각각은 특정 구간에서의 실제 주행 속도, 인지 정보(예컨대, 복수의 사용자 각각이 특정 구간을 수동 주행하는 과정에서 인식된 객체들에 관한 정보 등)를 포함될 수 있다.Here, each of the plurality of manual driving data for a specific section may include an actual driving path (e.g., a displacement-curvature function corresponding to the actual driving path) for the specific section, but is not limited thereto, and is not limited to this, and is a plurality of manual driving data. Each may include actual driving speed in a specific section and cognitive information (e.g., information about objects recognized while each of a plurality of users manually drives a specific section, etc.).
S220 단계에서, 컴퓨팅 장치(100)는 S210 단계를 거쳐 획득된 복수의 수동 주행 데이터를 이용하여 학습 데이터를 생성할 수 있다. 예컨대, 컴퓨팅 장치(100)는 특정 구간에 대한 복수의 수동 주행 데이터 각각에 포함된 실제 주행 경로를 이용하여 인공지능 모델의 지도학습을 위한 정답 데이터를 생성할 수 있다.In step S220, the computing device 100 may generate learning data using a plurality of manual driving data obtained through step S210. For example, the computing device 100 may generate correct answer data for supervised learning of an artificial intelligence model using the actual driving path included in each of a plurality of manual driving data for a specific section.
다양한 실시예에서, 컴퓨팅 장치(100)는 특정 구간에 대응하는 기준 주행 경로와 복수의 수동 주행 데이터 각각에 포함된 실제 주행 경로 간의 곡률 차이(예: 변위에 따른 곡률 차이 값)를 산출하고, 산출된 곡률 차이의 적분 값을 정규분포화 할 수 있으며, 복수의 수동 주행 데이터 중 정규분포화된 적분 값의 평균 값을 기준으로 소정의 범위 내에 포함되는 수동 주행 데이터를 학습 데이터로 생성할 수 있다.In various embodiments, the computing device 100 calculates a curvature difference (e.g., a curvature difference value according to displacement) between a reference driving path corresponding to a specific section and an actual driving path included in each of a plurality of manual driving data, and calculates The integral value of the curvature difference can be normally distributed, and manual driving data within a predetermined range can be generated as learning data based on the average value of the normally distributed integral values among a plurality of manual driving data.
다양한 실시예에서, 컴퓨팅 장치(100)는 특정 구간에 대응하는 복수의 수동 주행 데이터에 포함된 실제 주행 속도와 특정 구간에 대응하여 기 설정된 타겟 속도(예컨대, 제한 속도) 간의 속도 차이를 산출하고, 복수의 수동 주행 데이터 중 산출된 속도 차이가 기준 속도 차이 이하인 수동 주행 데이터를 학습 데이터로 생성할 수 있다. 즉, 컴퓨팅 장치(100)는 복수의 수동 주행 데이터 중 타겟 속도로부터 임계 값 이상 벗어난 속도로 주행한 수동 주행 데이터를 필터링할 수 있다.In various embodiments, the computing device 100 calculates a speed difference between the actual driving speed included in a plurality of manual driving data corresponding to a specific section and a preset target speed (e.g., speed limit) corresponding to the specific section, Among the plurality of manual driving data, manual driving data in which the calculated speed difference is less than or equal to the reference speed difference can be generated as learning data. That is, the computing device 100 may filter manual driving data that is driven at a speed that deviates from the target speed by more than a threshold value among the plurality of manual driving data.
다양한 실시예에서, 컴퓨팅 장치(100)는 특정 구간에 대응하는 복수의 수동 주행 데이터 각각에 포함된 인지 정보(예컨대, 특정 구간을 수동 주행하는 과정에서 인식된 객체들에 관한 정보)에 기초하여, 복수의 수동 주행 데이터 중 인식된 객체의 수가 기준 객체 수 이하인 수동 주행 데이터를 학습 데이터로 생성할 수 있다. 즉, 주행 중인 차량 주변에 다수의 객체(예컨대, 주변의 다른 차량들, 보행자, 장애물 등)이 존재할 경우, 다수의 객체들로 인해 왜곡이 발생하여 정상적인 주행을 하지 못할 가능성이 높은 바, 컴퓨팅 장치(100)는 수동 주행 데이터에 포함된 인지 정보에 기초하여 주변 객체의 개수가 임계 값 이상인 수동 주행 데이터 즉, 주변 객체들로 인해 왜곡된 주행 경로가 포함될 것으로 예측되는 수동 주행 데이터를 필터링할 수 있다.In various embodiments, the computing device 100 is based on cognitive information (e.g., information about objects recognized in the process of manually driving a specific section) included in each of a plurality of manual driving data corresponding to a specific section, Among the plurality of manual driving data, manual driving data in which the number of recognized objects is less than or equal to the reference number of objects can be generated as learning data. In other words, if there are multiple objects (e.g., other nearby vehicles, pedestrians, obstacles, etc.) around a driving vehicle, there is a high possibility that normal driving will not be possible due to distortion caused by the multiple objects, and the computing device (100) can filter manual driving data in which the number of surrounding objects is greater than a threshold, that is, manual driving data predicted to contain a distorted driving path due to surrounding objects, based on the cognitive information included in the manual driving data. .
다양한 실시예에서, 컴퓨팅 장치(100)는 특정 구간에 대응하는 복수의 수동 주행 데이터 각각에 포함된 실제 주행 경로와 특정 구간에 대응하는 차로를 비교하여 특정 구간에 대응하는 차로의 중앙과 실제 주행 경로 간의 이격 거리를 산출할 수 있고, 복수의 수동 주행 데이터 중 산출된 이격 거리가 기준 이격 거리 이하인 수동 주행 데이터를 학습 데이터로 생성할 수 있다. 즉, 컴퓨팅 장치(100)는 도로 중앙을 기준으로 임계 값 이상 벗어난 주행 경로를 포함하는 수동 주행 데이터(예컨대, 차선을 이탈하는 주행 경로를 포함하는 수동 주행 데이터)를 필터링할 수 있다.In various embodiments, the computing device 100 compares the actual driving path included in each of the plurality of manual driving data corresponding to the specific section with the lane corresponding to the specific section, and determines the center of the lane corresponding to the specific section and the actual driving path. The separation distance between the two can be calculated, and among a plurality of manual driving data, manual driving data whose calculated separation distance is less than or equal to the standard separation distance can be generated as learning data. That is, the computing device 100 may filter manual driving data including a driving path that deviates from the center of the road by more than a threshold value (eg, manual driving data including a driving path that deviates from the lane).
S230 단계에서, 컴퓨팅 장치(100)는 S220 단계에서 생성된 학습 데이터를 이용하여 인공지능 모델을 학습시킬 수 있다.In step S230, the computing device 100 may train an artificial intelligence model using the training data generated in step S220.
다양한 실시예에서, 컴퓨팅 장치(100)는 복수의 수동 주행 데이터 각각을 학습 데이터로 하여 지도학습(supervised learning) 방법에 따라 인공지능 모델을 학습시킬 수 있다.In various embodiments, the computing device 100 may learn an artificial intelligence model according to a supervised learning method using each of a plurality of manual driving data as learning data.
지도학습의 경우 각각의 학습 데이터에 정답이 레이블링 되어있는 학습 데이터를 사용(즉, 레이블링된 학습 데이터)할 수 있다. 예를 들어, 지도학습의 경우의 학습 데이터는 입력 데이터(예컨대, 특정 구간에 대응하는 기준 주행 경로인 변위-곡률 함수)에 정답 데이터(보정된 주행 경로인 변위- 곡률 함수)가 레이블링된 데이터일 수 있다. 레이블링된 학습 데이터가 인공지능 모델에 입력되고, 인공지능 모델의 출력(보정된 주행 경로)과 학습 데이터의 레이블을 비교함으로써 오류(error)가 계산될 수 있다.In the case of supervised learning, learning data in which the correct answer is labeled for each learning data can be used (i.e., labeled learning data). For example, in the case of supervised learning, learning data is data in which the input data (e.g., displacement-curvature function, which is a reference driving path corresponding to a specific section) is labeled with the correct answer data (displacement-curvature function, which is a corrected driving path). You can. Labeled learning data is input to the artificial intelligence model, and the error can be calculated by comparing the output of the artificial intelligence model (corrected driving path) with the label of the learning data.
학습률은 인공지능 모델의 학습 사이클의 반복 횟수에 따라 상이하게 적용될 수 있다. 예를 들어, 인공지능 모델의 학습 초기에는 높은 학습률을 사용하여 인공지능 모델이 빠르게 일정 수준의 성능을 확보하도록 하여 효율성을 높이고, 학습 후기에는 낮은 학습률을 사용하여 정확도를 높일 수 있다.The learning rate can be applied differently depending on the number of repetitions of the learning cycle of the artificial intelligence model. For example, in the early stages of training an artificial intelligence model, a high learning rate can be used to ensure that the artificial intelligence model quickly achieves a certain level of performance to increase efficiency, and in the later stages of training, a low learning rate can be used to increase accuracy.
다양한 실시예에서, 컴퓨팅 장치(100)는 복수의 수동 주행 데이터를 분석하여 복수의 사용자 각각의 주행 성향을 판단하고, 복수의 사용자 각각의 주행 성향에 따라 복수의 수동 주행 데이터를 분류할 수 있으며, 분류된 복수의 수동 주행 데이터를 학습 데이터로 하여 인공지능 모델을 학습시킬 수 있다.In various embodiments, the computing device 100 may analyze a plurality of manual driving data to determine the driving tendency of each of the plurality of users and classify the plurality of manual driving data according to the driving tendency of each of the plurality of users, An artificial intelligence model can be trained using multiple classified manual driving data as learning data.
예컨대, 컴퓨팅 장치(100)는 복수의 항목(예컨대, 과속 등 교통법규 위반 여부, 승차감 등)에 기초하여 복수의 수동 주행 데이터 각각에 점수를 부여함으로써, 복수의 운전자 각각의 주행 성향을 평가할 수 있고, 평가 결과에 따라 복수의 수동 주행 데이터를 분류할 수 있으며, 분류된 복수의 수동 주행 데이터를 학습 데이터로 하여 인공지능 모델을 학습시킴으로써, 특정 운전자의 주행 성향에 맞는 보정된 주행 경로를 출력할 수 있는 인공지능 모델을 구축할 수 있다.For example, the computing device 100 may evaluate the driving tendencies of each of a plurality of drivers by assigning a score to each of the plurality of manual driving data based on a plurality of items (e.g., violation of traffic laws such as speeding, riding comfort, etc.) , multiple manual driving data can be classified according to the evaluation results, and by learning an artificial intelligence model using the classified manual driving data as learning data, a corrected driving path tailored to the driving tendency of a specific driver can be output. You can build an artificial intelligence model.
다양한 실시예에서, 컴퓨팅 장치(100)는 복수의 사용자가 수동 주행을 수행함에 있어서 이용한 차량의 속성(예컨대, 차량의 종류)에 기초하여 복수의 수동 주행 데이터를 분류할 수 있으며, 분류된 복수의 수동 주행 데이터를 학습 데이터로 하여 인공지능 모델을 학습시킴으로써, 특정 운전자의 차량의 속성에 맞는 보정된 주행 경로를 출력할 수 있는 인공지능 모델을 구축할 수 있다.In various embodiments, the computing device 100 may classify a plurality of manual driving data based on attributes (e.g., type of vehicle) of the vehicle used by a plurality of users when performing manual driving, and may classify the plurality of classified manual driving data. By learning an artificial intelligence model using manual driving data as learning data, an artificial intelligence model can be built that can output a corrected driving path suitable for the characteristics of a specific driver's vehicle.
다시, 도 3을 참조하면, S140 단계에서, 컴퓨팅 장치(100)는 S130 단계에서 생성된 보정된 주행 경로에 기초하여, 차량(10)에 대한 자율주행 제어를 수행할 수 있다.Referring again to FIG. 3 , in step S140, the computing device 100 may perform autonomous driving control for the vehicle 10 based on the corrected driving path generated in step S130.
다양한 실시예에서, 컴퓨팅 장치(100)는 복수의 지역 각각에 대한 주행 경로(예컨대, 복수의 지역 각각에 대한 기준 주행 경로 및 보정된 주행 경로)를 복수의 지역에 대응하는 정밀지도 데이터 상에 저장할 수 있고, 정밀지도 데이터 상에 저장된 주행 경로를 이용하여 차량(10)의 자율주행 제어를 수행할 수 있다.In various embodiments, the computing device 100 may store a driving path for each of a plurality of regions (e.g., a reference driving path and a corrected driving path for each of the plurality of regions) on precision map data corresponding to the plurality of regions. and autonomous driving control of the vehicle 10 can be performed using the driving path stored on the precision map data.
예컨대, 컴퓨팅 장치(100)는 특정 지역 내에 위치하는 차량(10)에 대하여 자율주행 제어를 수행하고자 하는 경우, 특정 지역에 대응하는 정밀지도 데이터 상에 저장된 주행 경로를 로드할 수 있고, 로드된 주행 경로에 따라 차량(10)에 대한 자율주행 제어를 수행할 수 있다.For example, when the computing device 100 wants to perform autonomous driving control for the vehicle 10 located in a specific area, the computing device 100 may load the driving route stored on the precision map data corresponding to the specific area, and load the driving route. Autonomous driving control for the vehicle 10 can be performed according to the route.
상술된 바와 같이 인공지능 모델을 통해 보정이 필요한 구간에 대한 보정을 수행함에 따라 보정된 주행 경로를 생성할 경우, 도 9에 도시된 바와 같이 곡률 및 곡률 변화율이 모두 연속인 보정된 주행 경로를 생성할 수 있으며, 이에 따라 차량(10)의 주행 제어 안정성과 승차감을 향상시킬 수 있다는 이점이 있다.As described above, when a corrected driving path is created by performing correction on a section requiring correction through an artificial intelligence model, a corrected driving path in which both curvature and curvature change rate are continuous is generated as shown in FIG. 9 This has the advantage of improving driving control stability and riding comfort of the vehicle 10.
다양한 실시예에서, 컴퓨팅 장치(100)는 특정 주행 경로에 따라 자율주행 중인 차량에 대하여, 특정 주행 경로 상에 보정이 필요한 구간을 실시간으로 식별할 수 있고, 실시간으로 식별된 구간을 보정할 수 있다. 이하, 도 8을 참조하여 설명하도록 한다.In various embodiments, the computing device 100 may identify in real time a section requiring correction on a specific driving path for a vehicle that is autonomously driving along a specific driving path, and may correct the identified section in real time. . Hereinafter, it will be described with reference to FIG. 8.
도 8은 다양한 실시예에서, 센서 데이터를 기반으로 주행 경로를 실시간 보정하는 방법을 설명하기 위한 순서도이다.FIG. 8 is a flowchart illustrating a method for real-time correction of a driving path based on sensor data in various embodiments.
도 8을 참조하면, S310 단계에서, 컴퓨팅 장치(100)는 제1 주행 경로를 기반으로 제1 차량에 대한 자율주행 제어를 수행할 수 있다. 예컨대, 컴퓨팅 장치(100)는 특정 지역에 위치하는 제1 차량에 대한 자율주행 제어를 수행하고자 하는 경우, 특정 지역에 대응하는 정밀지도 데이터 상에 저장된 제1 주행 경로를 로드할 수 있고, 로드된 제1 주행 경로에 따라 제1 차량의 자율주행 제어를 수행함으로써, 제1 차량에 제1 주행 경로에 따라 주행하도록 할 수 있다.Referring to FIG. 8 , in step S310, the computing device 100 may perform autonomous driving control for the first vehicle based on the first driving path. For example, when the computing device 100 wants to perform autonomous driving control for a first vehicle located in a specific area, the computing device 100 may load the first driving route stored on the precision map data corresponding to the specific area, and By performing autonomous driving control of the first vehicle according to the first driving path, the first vehicle can be driven according to the first driving path.
S320 단계에서, 컴퓨팅 장치(100)는 S310 단계를 거쳐 자율주행 제어되는 제1 차량으로부터 센서 데이터를 획득할 수 있다.In step S320, the computing device 100 may obtain sensor data from the first vehicle that is controlled to drive autonomously through step S310.
여기서, 센서 데이터는 제1 차량 내에 구비되는 센서로부터 수집되는 데이터일 수 있다. 예컨대, 센서 데이터는 제1 주행 경로에 관한 정보(예컨대, 제1 주행 경로에 대응하는 변위-곡률 함수, 주행 중인 도로의 차선, 차로 및 형상 정보 등), 측위 정보(예컨대, GPS 센서 정보, 라이다 센서 정보 기반의 정밀지도 데이터 상의 위치 정보, 자세 정보 등), 카메라 및 라이다 센서 기반의 차선 매칭 정보 중 적어도 하나를 포함할 수 있으나, 이에 한정되지 않는다.Here, the sensor data may be data collected from a sensor provided in the first vehicle. For example, sensor data may include information about the first driving path (e.g., a displacement-curvature function corresponding to the first driving path, lanes, lanes, and shape information of the road being driven, etc.), positioning information (e.g., GPS sensor information, etc.) It may include at least one of (position information, posture information, etc.) on precision map data based on sensor information, and lane matching information based on cameras and LiDAR sensors, but is not limited thereto.
S330 단계에서, 컴퓨팅 장치(100)는 S320 단계를 거쳐 획득된 센서 데이터를 기반으로, 제1 주행 경로 상에 보정이 필요한 구간을 실시간으로 식별할 수 있다.In step S330, the computing device 100 may identify in real time a section requiring correction on the first driving path based on the sensor data acquired through step S320.
다양한 실시예에서, 제1 주행 경로 상에 보정이 필요한 구간을 실시간으로 식별하는 동작은 제1 차량으로부터 수집되는 센서 데이터를 기반으로 제1 주행 경로 상에 보정이 필요한 구간을 식별하는 것인 바, 제1 주행 경로의 전체 구간을 분석하여 전체 구간에 포함되는 보정이 필요한 구간을 식별하는 것이 아니라, 제1 주행 경로 상의 일부 구간만을 분석하여 일부 구간에 포함되는 보정이 필요한 구간을 식별할 수 있다.In various embodiments, the operation of identifying in real time a section requiring correction on the first driving path is identifying a section requiring correction on the first driving path based on sensor data collected from the first vehicle, Rather than analyzing the entire section of the first driving path to identify sections that require correction included in the entire section, it is possible to identify sections that need correction included in the partial section by analyzing only some sections of the first driving path.
예컨대, 컴퓨팅 장치(100)는 제1 주행 경로 상에서, 현재 시점(예: 보정이 필요한 구간을 식별하는 동작을 수행하는 시점)에서의 제1 차량의 위치부터 미래 소정의 시점(예: 현재 시점을 기준으로 5초 후)에 예측되는 제1 차량의 위치까지의 구간을 분석함으로써, 보정이 필요한 구간을 실시간으로 식별할 수 있다. 그러나, 이에 한정되지 않는다.For example, on the first driving path, the computing device 100 moves from the position of the first vehicle at the current point in time (e.g., the point in time when performing an operation to identify a section requiring correction) to a predetermined point in the future (e.g., the current point in time). By analyzing the section up to the position of the first vehicle, which is predicted to be 5 seconds later (based on 5 seconds), the section requiring correction can be identified in real time. However, it is not limited to this.
S340 단계에서, 컴퓨팅 장치(100)는 S330 단계를 거쳐 보정이 필요한 구간이 식별되는지를 판단할 수 있다.In step S340, the computing device 100 may determine whether a section requiring correction is identified through step S330.
S350 단계에서, 컴퓨팅 장치(100)는 S340 단계를 거쳐 제1 주행 경로 상에 보정이 필요한 구간이 식별된 것으로 판단되는 경우, 보정이 필요한 구간을 보정함에 따라 보정된 주행 경로로서, 제2 주행 경로를 생성할 수 있다. 여기서, 특정 구간에 대한 보정된 주행 경로를 생성하는 방법은 도 3의 S130 단계에서 수행되는 동작과 동일 또는 유사한 형태로 구현될 수 있으나, 이에 한정되지 않는다.In step S350, when it is determined that a section requiring correction is identified on the first driving path through step S340, the computing device 100 generates a corrected driving path by correcting the section requiring correction, and a second driving path. can be created. Here, the method of generating a corrected driving path for a specific section may be implemented in the same or similar form as the operation performed in step S130 of FIG. 3, but is not limited thereto.
다양한 실시예에서, 컴퓨팅 장치(100)는 제1 주행 경로 상에 보정이 필요한 둘 이상의 구간이 식별되는 경우, 둘 이상의 구간 각각을 보정함에 따라 둘 이상의 제2 주행 경로를 생성할 수 있다.In various embodiments, when two or more sections requiring correction are identified on the first driving path, the computing device 100 may generate two or more second driving paths by correcting each of the two or more sections.
한편, 컴퓨팅 장치(100)는 S340 단계를 거쳐 제1 주행 경로 상에 보정이 필요한 구간이 식별되지 않은 것으로 판단되는 경우, 별도의 주행 경로 보정 동작을 수행하지 않고, 제1 주행 경로에 따라 제1 차량을 자율주행 제어할 수 있다.Meanwhile, if it is determined through step S340 that the section requiring correction on the first driving path is not identified, the computing device 100 does not perform a separate driving path correction operation and performs the first driving path according to the first driving path. The vehicle can be controlled to drive autonomously.
S360 단계에서, 컴퓨팅 장치(100)는 S350 단계를 거쳐 제2 주행 경로가 생성되는 경우, 제2 주행 경로를 기반으로 제1 차량에 대한 자율주행 제어를 수행할 수 있다. 예컨대, 컴퓨팅 장치(100)는 제2 주행 경로에 따라 제1 차량의 자율주행 제어를 위한 속도 프로파일을 계획할 수 있고, 계획된 속도 프로파일에 따라 제1 차량의 주행을 제어할 수 있다.In step S360, when the second driving path is generated through step S350, the computing device 100 may perform autonomous driving control for the first vehicle based on the second driving path. For example, the computing device 100 may plan a speed profile for autonomous driving control of the first vehicle according to the second driving path, and may control driving of the first vehicle according to the planned speed profile.
전술한 인공지능 기반 자율주행 차량의 주행 경로 보정방법은 도면에 도시된 순서도를 참조하여 설명하였다. 간단한 설명을 위해 인공지능 기반 자율주행 차량의 주행 경로 보정방법은 일련의 블록들로 도시하여 설명하였으나, 본 발명은 상기 블록들의 순서에 한정되지 않고, 몇몇 블록들은 본 명세서에 도시되고 시술된 것과 상이한 순서로 수행되거나 또는 동시에 수행될 수 있다. 또한, 본 명세서 및 도면에 기재되지 않은 새로운 블록이 추가되거나, 일부 블록이 삭제 또는 변경된 상태로 수행될 수 있다.The driving path correction method of the aforementioned artificial intelligence-based autonomous vehicle was explained with reference to the flow chart shown in the drawing. For simple explanation, the driving path correction method of an artificial intelligence-based autonomous vehicle is illustrated as a series of blocks, but the present invention is not limited to the order of the blocks, and some blocks are different from those shown and performed in this specification. It may be performed sequentially or simultaneously. Additionally, new blocks not described in this specification and drawings may be added, or some blocks may be deleted or changed.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.Above, embodiments of the present invention have been described with reference to the attached drawings, but those skilled in the art will understand that the present invention can be implemented in other specific forms without changing its technical idea or essential features. You will be able to understand it. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive.
100 : 컴퓨팅 장치
200 : 사용자 단말
300 : 외부 서버
400 : 네트워크100: computing device
 200: user terminal
 300: external server
 400: Network
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| KR1020220148002AKR102606632B1 (en) | 2022-11-08 | 2022-11-08 | Method, apparatus and computer program for modifying driving route of autonomous vehicle based on artificial intelligence | 
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| KR1020220148002AKR102606632B1 (en) | 2022-11-08 | 2022-11-08 | Method, apparatus and computer program for modifying driving route of autonomous vehicle based on artificial intelligence | 
| Publication Number | Publication Date | 
|---|---|
| KR102606632B1true KR102606632B1 (en) | 2023-11-30 | 
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| KR1020220148002AActiveKR102606632B1 (en) | 2022-11-08 | 2022-11-08 | Method, apparatus and computer program for modifying driving route of autonomous vehicle based on artificial intelligence | 
| Country | Link | 
|---|---|
| KR (1) | KR102606632B1 (en) | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR102750384B1 (en)* | 2023-12-29 | 2025-01-09 | (주)토탈소프트뱅크 | Method for scheduling route of unmanned vehicle using route of manned vehicle | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| WO2017057528A1 (en)* | 2015-10-01 | 2017-04-06 | 株式会社発明屋 | Non-robot car, robot car, road traffic system, vehicle sharing system, robot car training system, and robot car training method | 
| KR20180040759A (en)* | 2016-10-12 | 2018-04-23 | 한국전자통신연구원 | Device for sharing and learning driving environment data for improving the intelligence judgments of autonomous vehicle and method thereof | 
| JP2018101400A (en)* | 2016-12-20 | 2018-06-28 | バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニーBaidu USA LLC | Method and system for recognizing individual driving preference of autonomous vehicle | 
| KR101957796B1 (en)* | 2017-09-05 | 2019-03-13 | 엘지전자 주식회사 | Vehicle control device mounted on vehicle and method for controlling the vehicle | 
| JP2020015417A (en)* | 2018-07-25 | 2020-01-30 | 日産自動車株式会社 | Driving support method and driving support device | 
| KR20200040349A (en)* | 2018-10-08 | 2020-04-20 | 주식회사 만도 | Apparatus and Method for Controlling Lane Changing using Vehicle-to-Vehicle Communication and Tendency Information Calculation Apparatus therefor | 
| JP2021169291A (en)* | 2020-04-17 | 2021-10-28 | 株式会社Subaru | Vehicle driving support device. | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| WO2017057528A1 (en)* | 2015-10-01 | 2017-04-06 | 株式会社発明屋 | Non-robot car, robot car, road traffic system, vehicle sharing system, robot car training system, and robot car training method | 
| KR20180040759A (en)* | 2016-10-12 | 2018-04-23 | 한국전자통신연구원 | Device for sharing and learning driving environment data for improving the intelligence judgments of autonomous vehicle and method thereof | 
| JP2018101400A (en)* | 2016-12-20 | 2018-06-28 | バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニーBaidu USA LLC | Method and system for recognizing individual driving preference of autonomous vehicle | 
| KR101957796B1 (en)* | 2017-09-05 | 2019-03-13 | 엘지전자 주식회사 | Vehicle control device mounted on vehicle and method for controlling the vehicle | 
| JP2020015417A (en)* | 2018-07-25 | 2020-01-30 | 日産自動車株式会社 | Driving support method and driving support device | 
| KR20200040349A (en)* | 2018-10-08 | 2020-04-20 | 주식회사 만도 | Apparatus and Method for Controlling Lane Changing using Vehicle-to-Vehicle Communication and Tendency Information Calculation Apparatus therefor | 
| JP2021169291A (en)* | 2020-04-17 | 2021-10-28 | 株式会社Subaru | Vehicle driving support device. | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR102750384B1 (en)* | 2023-12-29 | 2025-01-09 | (주)토탈소프트뱅크 | Method for scheduling route of unmanned vehicle using route of manned vehicle | 
| Publication | Publication Date | Title | 
|---|---|---|
| US20200216094A1 (en) | Personal driving style learning for autonomous driving | |
| JP7426744B2 (en) | Input feature map generation method, device and computer program for artificial intelligence model for lidar-based object detection | |
| KR102593827B1 (en) | Method, apparatus and computer program for providing work management solution in construction site using lidar sensor | |
| WO2022231519A1 (en) | Trajectory predicting methods and systems | |
| KR102606630B1 (en) | Method, apparatus and computer program for generating occupancy grid map using artificial intelligence model to predict obstacle near a vehicle and to design driving plan | |
| US12420845B2 (en) | Method of determining driving plan for autonomous vehicle based on road user prediction, computing device for performing the same, and recording medium on which program for performing the same is recorded | |
| KR102606632B1 (en) | Method, apparatus and computer program for modifying driving route of autonomous vehicle based on artificial intelligence | |
| US12208817B2 (en) | Method, server, and computer program for creating road network map to design driving plan for autonomous driving vehicle | |
| KR102672052B1 (en) | Method, computing device and computer program for generating classification model capable of detecting out of distribution data and establishing response strategy for out of distribution data | |
| CN114945961B (en) | Lane changing prediction regression model training method, lane changing prediction method and apparatus | |
| KR102857995B1 (en) | Self-supervised learning method, computing device and computer program using synchronized sensor data and unsynchronized sensor data | |
| KR102481367B1 (en) | Method, apparatus and computer program for training artificial intelligence model for generating surface data from point cloud data | |
| KR102521840B1 (en) | Method, apparatus and computer program for detecting the occurrence of danger of a moving object according to the water level of liquid for pest control | |
| KR102521839B1 (en) | Method, apparatus and computer program for detecting the occurrence of danger according to the motion of a moving object | |
| KR102513365B1 (en) | Method, apparatus and computer program for recognizing traffic signal information for automatic driving of vehicle | |
| CN116380095A (en) | Path planning method, device, equipment, vehicle and medium for autonomous driving vehicles | |
| KR20230095162A (en) | Method, server and computer program for tracking moving path of objects using image data and lidar point cloud data | |
| US20250200879A1 (en) | Method, device, and computer program for localizing autonomous driving vehicle using low-capacity ndt map | |
| KR102523146B1 (en) | Method, apparatus and computer program for modeling driving route for automatic driving of vehicle | |
| KR102671815B1 (en) | Method, computing device and computer program for setting object recognition area for automatic driving control | |
| KR102581969B1 (en) | Method, computing device and computer program for interpolating lidar point cloud to improve object recognition | |
| KR102826565B1 (en) | Method, computing device and computer program for estimating vehicle model representing vehicle dynamics characteristics based on vehicle logging data | |
| KR102777492B1 (en) | Method, server and computer program for tracking moving path of objects based on lidar point cloud data | |
| US20250136100A1 (en) | Method and computing device for preventing collision of autonomous vehicle and recording medium having program for the same recorded thereon | |
| KR102643539B1 (en) | Method, computing device and computer program for controlling autonomous vehicle speed capable of responding to uncomfortable region | 
| Date | Code | Title | Description | 
|---|---|---|---|
| PA0109 | Patent application | Patent event code:PA01091R01D Comment text:Patent Application Patent event date:20221108 | |
| PA0201 | Request for examination | ||
| PA0302 | Request for accelerated examination | Patent event date:20221110 Patent event code:PA03022R01D Comment text:Request for Accelerated Examination Patent event date:20221108 Patent event code:PA03021R01I Comment text:Patent Application | |
| PE0902 | Notice of grounds for rejection | Comment text:Notification of reason for refusal Patent event date:20230102 Patent event code:PE09021S01D | |
| AMND | Amendment | ||
| PE0902 | Notice of grounds for rejection | Comment text:Final Notice of Reason for Refusal Patent event date:20230426 Patent event code:PE09021S02D | |
| AMND | Amendment | ||
| PE0601 | Decision on rejection of patent | Patent event date:20230817 Comment text:Decision to Refuse Application Patent event code:PE06012S01D Patent event date:20230426 Comment text:Final Notice of Reason for Refusal Patent event code:PE06011S02I Patent event date:20230102 Comment text:Notification of reason for refusal Patent event code:PE06011S01I | |
| X091 | Application refused [patent] | ||
| AMND | Amendment | ||
| PX0901 | Re-examination | Patent event code:PX09011S01I Patent event date:20230817 Comment text:Decision to Refuse Application Patent event code:PX09012R01I Patent event date:20230619 Comment text:Amendment to Specification, etc. Patent event code:PX09012R01I Patent event date:20230228 Comment text:Amendment to Specification, etc. | |
| PX0701 | Decision of registration after re-examination | Patent event date:20231030 Comment text:Decision to Grant Registration Patent event code:PX07013S01D Patent event date:20231024 Comment text:Amendment to Specification, etc. Patent event code:PX07012R01I Patent event date:20230817 Comment text:Decision to Refuse Application Patent event code:PX07011S01I Patent event date:20230619 Comment text:Amendment to Specification, etc. Patent event code:PX07012R01I Patent event date:20230228 Comment text:Amendment to Specification, etc. Patent event code:PX07012R01I | |
| X701 | Decision to grant (after re-examination) | ||
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment | Comment text:Registration of Establishment Patent event date:20231122 Patent event code:PR07011E01D | |
| PR1002 | Payment of registration fee | Payment date:20231122 End annual number:3 Start annual number:1 | |
| PG1601 | Publication of registration |