이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The following description is intended to illustrate and describe specific embodiments in the drawings, since various changes may be made and the embodiments may have various embodiments. However, it should be understood that the following description does not limit the specific embodiments, but includes all changes, equivalents, and alternatives falling within the spirit and scope of the following description.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, A, B, etc., may be used to describe various components, but the components are not limited by the terms, but may be used to distinguish one component from another . For example, without departing from the scope of the following description, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.
본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.As used herein, the singular " include " should be understood to include a plurality of representations unless the context clearly dictates otherwise, and the terms " comprises & , Parts or combinations thereof, and does not preclude the presence or addition of one or more other features, integers, steps, components, components, or combinations thereof.
도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Before describing the drawings in detail, it is to be clarified that the division of constituent parts in this specification is merely a division by main functions of each constituent part. That is, two or more constituent parts to be described below may be combined into one constituent part, or one constituent part may be divided into two or more functions according to functions that are more subdivided. In addition, each of the constituent units described below may additionally perform some or all of the functions of other constituent units in addition to the main functions of the constituent units themselves, and that some of the main functions, And may be carried out in a dedicated manner.
또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.Also, in performing a method or an operation method, each of the processes constituting the method may take place differently from the stated order unless clearly specified in the context. That is, each process may occur in the same order as described, may be performed substantially concurrently, or may be performed in the opposite order.
이하 설명하는 기술은 자동차에 대한 관리 및 정비를 제공하기 위한 것이다. 먼저 이하 설명에 사용하는 용어에 대해 몇 가지 정의를 한다.The technique described below is for providing management and maintenance for an automobile. First, some definitions will be made for the terms used in the following description.
자동차 진단은 자동차의 이상 상태를 확인하는 프로세스이다. 사용자는 자동차에 대한 진단을 통하여 특정한 부품의 이상(고장) 여부, 특정한 부품의 교체 시기 등을 파악할 수 있다. 일반적으로 정비공은 차량에 별도의 진단 장비를 연결하여 차동차에서 보내는 고장 정보를 확인한다. 고장 정보는 DTC(Diagnostic Trouble Code)라고도 한다.Automobile diagnostics is a process to check the status of an automobile. The user can diagnose the abnormality (failure) of a specific part and the timing of replacement of a specific part through diagnosis of the automobile. In general, a mechanic connects a separate diagnostic device to the vehicle to check the fault information sent from the vehicle. The fault information is also referred to as a DTC (Diagnostic Trouble Code).
사전적 의미로 자동차는 원동기를 장치하여 그 동력으로 바퀴를 굴려서 철길이나 가설된 선에 의하지 아니하고 땅 위를 움직이도록 만든 장치이다. 자동차는 연료를 사용하여 엔진을 구동하는 방식 및 전기로 모터를 구동하는 방식을 포함한다. In the dictionary sense, the automobile is a device that drives the prime mover and rolls the wheel with its power so that it moves on the ground without depending on the railway or the installed line. The automobile includes a method of driving the engine using fuel and a method of driving the electric motor.
센싱 데이터는 자동차의 각종 부품의 상태 내지 각종 부품의 동작 상태를 측정한 정보를 의미한다. 여기서 부품은 자동차를 구성하는 기계적인 부품, 오일이나 냉각수와 같은 유체 등을 포함한다. 센싱 데이터는 별도의 장비를 이용하여 추출한다. 일반적으로 진단 장비를 자동차에 연결하여 센싱 데이터를 획득한다. 진단 장비는 유선 또는 무선으로 자동차로부터 센싱 데이터를 확인할 수 있다. 센싱 데이터는 자동차에 있는 각종 센서 장치가 생성한다. 자동차는 특정 부품이나, 특정 부위에 다수의 센서를 갖고 필요한 데이터를 생성한다. 진단 장비는 센서가 센싱한 데이터를 보여준다. 진단 장비를 OBD(On Board Diagnostics) 장치라고도 한다. OBD 장치가 자동차로부터 획득하는 데이터를 OBD 데이터라고 한다. 통상적으로 OBD 데이터는 복수의 센싱 데이터를 포함한다. 자동차에서 OBD 데이터를 읽는 장치는 OBD 리더(reader)라고도 한다. Sensing data refers to information obtained by measuring the state of various parts of an automobile or the operation state of various parts of an automobile. Here, the parts include mechanical parts constituting the automobile, fluids such as oil and cooling water, and the like. Sensing data is extracted using a separate device. Generally, the diagnostic equipment is connected to the car to acquire the sensing data. The diagnostic equipment can confirm the sensing data from the car by wire or wirelessly. The sensing data is generated by various sensor devices in the vehicle. An automobile generates necessary data with a specific part or a plurality of sensors in a specific area. The diagnostic equipment shows the data the sensor has sensed. Diagnostic equipment is also referred to as OBD (On Board Diagnostics) device. The data that the OBD device acquires from the vehicle is called OBD data. Normally, the OBD data includes a plurality of sensing data. A device that reads OBD data from a car is also called an OBD reader.
센싱 데이터는 다양한 항목을 갖는다. 예컨대, 센싱 데이터는 배터리 전압, 점화 코일의 전압, 엔진회전수, 목표공회전수, 흡기 온도, 흡기압, 흡기양 및 냉각수 온도 등에 대한 값 중 적어도 하나로 구성될 수 있다. 물론 센싱 데이터는 자동차가 측정 가능한 모든 데이터를 포함한다. 향후 측정 가능한 항목이 늘어날 수도 있다.The sensing data has various items. For example, the sensing data may include at least one of a battery voltage, a voltage of an ignition coil, an engine speed, a target idle speed, an intake temperature, an intake pressure, an intake amount, and a cooling water temperature. Of course, the sensing data includes all data measurable by the vehicle. In the future, more measurable items may arise.
이하 설명하는 기술은 인공 지능을 사용하여 자동차를 진단한다. 이하 설명하는 기술은 딥 러닝(deep learning) 기법을 사용한다. 딥 러닝은 기계 학습을 위한 알고리즘 모델인 인공 신경망을 이용한다. 인공 신경망은 다양한 방식이 연구되었다. 예컨대, 인공 신경망은 DNN (Deep Neural Network), CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network) 등이 있다. The techniques described below use artificial intelligence to diagnose automobiles. The techniques described below use deep learning techniques. Deep learning uses artificial neural network, which is an algorithm model for machine learning. Artificial neural networks have been studied in various ways. For example, artificial neural networks include DNN (Deep Neural Network), CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine) and DBN (Deep Belief Network).
이하에서는 도면을 참조하면서 자동차 진단 기법에 관하여 구체적으로 설명하겠다.Hereinafter, a car diagnostic method will be described in detail with reference to the drawings.
도 1은 자동차 진단을 위한 장치에 대한 예이다. 도 1은 3가지 진단 장치를 도시한다. 공통적으로 진단 장치는 자동차로부터 OBD 데이터를 수신한다. 전술한 바와 같이 OBD 리더(10)가 자동차의 센서가 생성한 센싱 데이터를 획득한다. 센싱 데이터는 자동차에 있는 어느 센서가 수집한 데이터를 의미한다. OBD 데이터는 OBD 리더가 읽은 데이터를 의미하는데, OBD 데이터는 센싱 데이터를 포함한다. 또 OBD 데이터는 통상적으로 복수의 센싱 데이터를 포함한다. 복수의 센싱 데이터는 서로 종류가 다른 센서가 수집한 데이터를 의미한다. OBD 리더(10)는 센싱 데이터를 획득하는 과정은 일반적인 절차이므로 자세한 설명을 생략한다. 도 1에서 자동차(Vehicle)의 검은색 점(point)은 센서 위치를 예로 도시한 것이다. 1 is an example of a device for car diagnosis. Figure 1 shows three diagnostic devices. Commonly, the diagnostic device receives OBD data from the vehicle. The OBD reader 10 acquires the sensing data generated by the sensor of the vehicle as described above. Sensing data refers to data collected by sensors in a car. OBD data refers to data read by an OBD reader, and OBD data includes sensing data. The OBD data typically includes a plurality of sensing data. The plurality of sensing data means data collected by sensors of different kinds. Since the process of acquiring the sensing data of the OBD reader 10 is a general procedure, a detailed description will be omitted. In FIG. 1, the black point of the vehicle is an example of the sensor position.
컴퓨터 장치(100, 200, 300)가 센싱 데이터를 기반으로 자동차를 진단한다. 컴퓨터 장치(100, 200, 300)는 유선 또는 무선 통신을 통해 OBD 데이터를 획득할 수 있다. 컴퓨터 장치(100, 200, 300)는 OBD 리더(10)로부터 OBD 데이터를 획득할 수 있다. 또는 컴퓨터 장치(100, 200, 300)는 자동차로부터 직접 OBD 데이터를 획득할 수 있다.The computer devices 100, 200, and 300 diagnose the vehicle based on the sensing data. The computer devices 100, 200, and 300 may obtain OBD data via wired or wireless communication. The computer devices 100, 200, and 300 may obtain OBD data from the OBD reader 10. Or computer device 100, 200, 300 may obtain OBD data directly from the vehicle.
컴퓨터 장치(100, 200, 300)는 다양한 통신 방식을 사용하여 OBD 데이터를 획득할 수 있다. 예컨대, 무선 통신은 이동통신(3G, 4G 등), 근거리 통신(Zigbee 등), Wi-Fi, NFC 등과 같은 다양한 방식 중 어느 하나일 수 있다. 또는 컴퓨터 장치(100, 200, 300)는 OBD 데이터를 저장한 저장 장치(USB, SD 카드 등)를 통해 OBD 데이터에 접근할 수도 있다. The computer devices 100, 200, and 300 can acquire OBD data using various communication methods. For example, the wireless communication may be any one of various methods such as mobile communication (3G, 4G, etc.), short-range communication (Zigbee, etc.), Wi-Fi, NFC, Alternatively, the computer devices 100, 200, and 300 may access the OBD data through a storage device (USB, SD card, or the like) storing the OBD data.
도 1(A)는 휴대용 컴퓨터 장치(100)를 사용하여 자동차를 진단하는 예이다. 컴퓨터 장치(100)는 스마트폰, 태블릿 PC 또는 진단을 위한 전용 단말일 수 있다. 컴퓨터 장치(100)는 입력장치(110), 저장장치(120), 연산장치(130) 및 출력장치(140)를 포함한다. 입력장치(100)는 OBD 데이터를 입력받는 구성이다. 입력장치(100)는 텍스트 형태의 OBD 데이터를 입력하는 입력장치일 수 있다. 나아가 입력장치(100)는 일정한 통신 프로토콜을 통해 OBD 데이터를 수신하는 통신 인터페이스 장치일 수도 있다. 저장장치(120)는 필요한 데이터를 저장하는 구성이다. 저장장치(120)는 수신한 OBD 데이터를 임시로 저장할 수 있다. 저장장치(120)는 자동차 진단을 위한 프로그램을 저장할 수 있다. 저장장치(120)는 자동차 진단에 사용하는 딥러닝 모델을 저장할 수 있다. 연산장치(130)는 입력된 OBD 데이터를 딥러닝 모델에 입력하여 진단 결과를 도출할 수 있다. 연산장치(130)는 OBD 데이터를 딥러닝 모델에 입력하기 전에 일정한 전처리를 할 수 있다. 출력장치(140)는 진단 결과를 출력한다. 출력장치(140)는 디스플레이 장치, 프린터 장치 등과 같은 장치일 수 있다. 나아가 출력장치(140)는 통신을 통해 진단 결과를 외부로 전달하는 장치일 수도 있다. 자동차를 진단하는 자세한 과정은 후술한다.FIG. 1 (A) is an example of diagnosing a car using the portable computer apparatus 100. FIG. The computer device 100 may be a smart phone, a tablet PC, or a dedicated terminal for diagnosis. The computer device 100 includes an input device 110, a storage device 120, a computing device 130, and an output device 140. The input device 100 is configured to receive OBD data. The input device 100 may be an input device for inputting text-type OBD data. Furthermore, the input device 100 may be a communication interface device that receives OBD data through a certain communication protocol. The storage device 120 is a configuration for storing necessary data. The storage device 120 may temporarily store the received OBD data. The storage device 120 may store a program for vehicle diagnosis. The storage device 120 may store a deep learning model used for automobile diagnosis. The computing device 130 can input the input OBD data to the deep learning model to derive the diagnosis result. The computing device 130 can perform a certain preprocessing before inputting the OBD data to the deep learning model. The output device 140 outputs the diagnosis result. The output device 140 may be a device such as a display device, a printer device, or the like. Furthermore, the output device 140 may be a device for communicating the diagnosis result to the outside through communication. The detailed procedure for diagnosing the vehicle will be described later.
도 1(B)는 PC와 같은 컴퓨터 장치(200)를 사용하여 자동차를 진단하는 예이다. 컴퓨터 장치(200)는 OBD 리더(10)가 측정한 OBD 데이터를 수신한다. 컴퓨터 장치(200)는 OBD 데이터를 딥러닝 모델에 입력하여 자동차 진단 결과를 도출한다. 컴퓨터 장치(200)는 OBD 데이터를 딥러닝 모델에 입력하기 전에 일정한 전처리를 할 수 있다. 컴퓨터 장치(200)는 자동차 진단 결과를 사용자 단말(50)로 전달할 수 있다. 사용자 단말(50)은 스마트폰 등과 같은 장치를 의미한다. 컴퓨터 장치(200)는 전술한 컴퓨터 장치(100)와 동일하거나 유사한 구성을 포함한다.1 (B) is an example of diagnosing a car using a computer device 200 such as a PC. The computer device 200 receives the OBD data measured by the OBD reader 10. The computer device 200 inputs the OBD data to the deep learning model to derive the vehicle diagnosis result. The computer device 200 can perform a certain preprocessing before inputting the OBD data to the deep learning model. The computer device 200 may transmit the result of the vehicle diagnosis to the user terminal 50. [ The user terminal 50 means a device such as a smart phone or the like. The computer device 200 comprises the same or similar configuration as the computer device 100 described above.
도 1(C)는 자동차 진단을 수행하는 온라인 시스템에 대한 예이다. 컴퓨터 장치(300)는 네트워크 상에 존재하는 서버와 같은 장치이다. 컴퓨터 장치(300)는 인터넷과 같은 네트워크를 통해 OBD 리더(10)가 측정한 OBD 데이터를 수신한다. OBD 리더(10)가 측정한 OBD 데이터는 이동통신망이나 전용망을 경유하여 인터넷으로 전달될 수도 있다. 컴퓨터 장치(300)는 OBD 데이터를 딥러닝 모델에 입력하여 자동차 진단 결과를 도출한다. 도시하지 않았지만 컴퓨터 장치(300)는 딥러닝 모델을 보유한 별도의 데이터베이스를 이용할 수도 있다. 컴퓨터 장치(300)는 OBD 데이터를 딥러닝 모델에 입력하기 전에 일정한 전처리를 할 수 있다. 컴퓨터 장치(300)는 자동차 진단 결과를 인터넷을 경유하여 사용자 단말(50)로 전달할 수 있다.1 (C) is an example of an online system for performing a car diagnosis. The computer device 300 is a device such as a server that exists on a network. The computer device 300 receives the OBD data measured by the OBD reader 10 via a network such as the Internet. The OBD data measured by the OBD reader 10 may be transmitted to the Internet via a mobile communication network or a private network. The computer device 300 inputs the OBD data to the deep learning model to derive the vehicle diagnosis result. Although not shown, the computer device 300 may use a separate database having a deep learning model. The computer device 300 can perform a certain preprocessing before inputting the OBD data to the deep learning model. The computer device 300 may transmit the result of the vehicle diagnosis to the user terminal 50 via the Internet.
먼저 센싱 데이터를 전처리하는 과정을 설명한다. 신경망 훈련에도 전처리된 센싱 데이터를 이용한다. 또 자동차 진단을 위해서도 컴퓨터 장치가 센싱 데이터를 일정하게 전처리하고, 전처리한 센싱 데이터를 신경망에 입력한다. 센싱 데이터의 전처리는 별도의 장치가 수행할 수도 있지만, 설명의 편의를 위해 컴퓨터 장치가 수행한다고 가정한다. 전처리한 데이터는 신경망에 입력되는 입력 데이터라고 할 수 있다.First, a process of preprocessing the sensing data will be described. We also use pre-processed sensing data for neural network training. In addition, for the purpose of automobile diagnosis, the computer device pre-processes the sensing data constantly and inputs the preprocessed sensing data into the neural network. The preprocessing of the sensing data may be performed by a separate device, but it is assumed that the computer device carries out the preprocessing of the sensing data for convenience of explanation. The preprocessed data is input data that is input to the neural network.
도 2는 자동차의 센싱 데이터를 전처리하는 과정에 대한 예이다. OBD 리더(10)가 OBD 데이터를 수집한다. OBD 데이터는 전술한 바와 같이 다양한 센서가 수집한 복수의 센싱 데이터를 포함할 수 있다. 예컨대, OBD 데이터는 배터리 전압, 엔진회전수, 흡기압, 냉각수 온도 등과 같은 항목을 포함한다. 2 is an example of a process of preprocessing sensed data of an automobile. The OBD reader 10 collects the OBD data. The OBD data may include a plurality of sensing data collected by various sensors as described above. For example, the OBD data includes items such as battery voltage, engine speed, intake pressure, coolant temperature, and the like.
OBD 데이터는 자동차의 다양한 부품에서 센싱되는 데이터를 포함한다. 예컨대, OBD 데이터는 엔진에 대한 데이터, 변속기에 대한 데이터, 동력전달장치에 대한 데이터, 제동 장치에 대한 데이터, 조향 장치에 대한 데이터, 현가 장치에 대한 데이터, 냉각 장치에 대한 데이터 및 전장 장치에 대한 데이터 중 적어도 하나를 포함할 수 있다. 엔진에 대한 데이터는 엔진 회전수, 목표 공회전수, 흡기양, 흡기압, 흡기온도, 배기압, 배기양, 점화플러그 전압, 엔진 오일 온도 등에 대한 데이터 중 적어도 하나를 포함한다. 동력 전달 장치는 엔진에서 발생한 동력을 구동바퀴에 전달하는 장치를 의미한다. 동력 전달 장치는 일반적으로 변속기를 포함하는 장치로 이해된다. 동력 전달 장치에 대한 데이터는 기어의 회전수, 구동 축 회전 수, 변속기 등에 대한 데이터 중 적어도 하나를 포함한다. 변속기에 대한 데이터는 변속기 오일 온도, 기어비 등에 대한 데이터 중 적어도 하나를 포함한다. 제동 장치에 대한 데이터는 드럼이나 디스크의 온도, 브레이크에 가해지는 압력, 브레이크 오일의 온도, ABS 장치에 가해지는 압력, ABS 모터의 전압 등에 대한 데이터 중 적어도 하나를 포함한다. 조향 장치에 대한 데이터는 조향력을 생성하는 구동(ESP) 모터의 전압, 기어의 회전수 등에 대한 데이터 중 적어도 하나를 포함한다. 현가 장치는 노면의 진동이나 충격을 흡수하는 장치를 의미한다. 현가 장치에 대한 데이터는 각 바퀴에 연결된 서스펜션(suspension)이 받는 압력 내지 하중 등을 포함한다. 냉각 장치에 대한 데이터는 냉각수 온도, 냉각팬 회전수, 워터펌프 전압 등에 대한 데이터 중 적어도 하나를 포함한다. 전장 장치는 자동차에서 사용되는 각종 전자 장치를 의미한다. 사실 전장 장치는 전술한 다양한 장치(엔진 등)에 사용되기도 한다. 전자 장치에 대한 데이터는 ECU(Electronic Control Unit)의 데이터, 텔레메틱스 관련한 데이터, 차량 디스플레이(계기판, 센터 디스플레이, HUD 등)에 대한 데이터, 배터리에 대한 데이터(온도, 전압, 배터리 잔량 등), ABS 모터의 전압, 각종 차량의 조명에 대한 데이터, 전압 조절 장치(PCU)에 대한 데이터, ASV(Advanced Safety Vehicle) 관련한 데이터(레이더 데이터, 카메라 데이터, 초음파 데이터 등) 중 적어도 하나를 포함할 수 있다.OBD data includes data that is sensed in various parts of an automobile. For example, the OBD data may include data for an engine, data for a transmission, data for a power train, data for a braking device, data for a steering device, data for a suspension, data for a cooling device, And data. The data on the engine includes at least one of data on the engine speed, the target idling speed, the intake air amount, the intake air pressure, the intake air temperature, the exhaust pressure, the exhaust amount, the ignition plug voltage, and the engine oil temperature. The power transmission device refers to a device that transmits the power generated by the engine to the driving wheels. A power transmission device is generally understood to be a device including a transmission. The data on the power transmission apparatus include at least one of the number of revolutions of the gear, the number of revolutions of the drive shaft, and the data of the transmission. The data for the transmission includes at least one of data on the transmission oil temperature, gear ratio, and the like. The data on the brake device includes at least one of the temperature of the drum or the disk, the pressure applied to the brake, the temperature of the brake oil, the pressure applied to the ABS device, and the data of the ABS motor. The data on the steering apparatus includes at least one of data on the voltage of a driving (ESP) motor, the number of revolutions of the gear, and the like, which generates a steering force. Suspension means a device that absorbs vibrations or shocks from the road surface. The data for the suspension includes pressure, load, etc., which the suspension connected to each wheel receives. The data on the cooling device includes at least one of data on cooling water temperature, number of cooling fan revolutions, water pump voltage, and the like. The electric device refers to various electronic devices used in automobiles. In fact, electrical devices are often used in the above-described various devices (such as engines). The data for the electronic device includes data of ECU (Electronic Control Unit), data related to telematics, data of vehicle display (instrument panel, center display, HUD, etc.), data (temperature, Data on illumination of various vehicles, data on a voltage regulator (PCU), data on an Advanced Safety Vehicle (ASV) (radar data, camera data, ultrasonic data, etc.).
OBD 리더(10)가 수집한 OBD 데이터는 일단 저장 장치(400)에 저장된다. 컴퓨터 장치는 저장된 OBD 데이터(센싱 데이터)를 일정하게 전처리한다. 센싱 데이터를 전처리하는 컴퓨터 장치는 도 1에서 설명한 컴퓨터 장치(100, 200 또는 300)이거나, 별도의 전처리 전용 장치일 수 있다. The OBD data collected by the OBD reader 10 is once stored in the storage device 400. [ The computer device constantly preprocesses the stored OBD data (sensing data). The computer apparatus for preprocessing the sensing data may be the computer apparatus 100, 200 or 300 described in FIG. 1, or may be a separate preprocessing dedicated apparatus.
도 2의 우측에 전처리 과정에 대한 예를 도시하였다. OBD 데이터에 포함된 복수의 센싱 데이터 중 엔진 회전수를 예로 들어 설명한다. 컴퓨터 장치는 복수의 센싱 데이터에 대하여 각각 전처리를 수행할 수있다.An example of the preprocessing process is shown on the right side of FIG. Among the plurality of sensing data included in the OBD data, the engine speed is described as an example. The computer device can perform preprocessing on each of a plurality of sensing data.
일정한 시간 동안 연속하여 수집한 엔진 회전수는 시간에 따라 그 값에 차이를 가질 수 있다. 센싱 데이터는 특정한 값을 갖는 디지털 정보이다. 시간에 따라 수집한 데이터를 막대 그래프로 표현하면 일정한 값을 갖는 연속된 변량으로 표현할 수 있다((a)). 연속된 변량은 시간축에서 파형과 같은 형태를 나타낼 수 있다((b)). 이와 같이 시간축에 따라 파형과 같은 형태를 나타내는 센싱 데이터를 시계열 센싱 데이터라고 명명한다. 컴퓨터 장치는 시계열 센싱 데이터를 일정한 시간 단위(예컨대, 수 초 내지 수 십초)로 구분한다((c)). 도 2는 시간 단위로 구분(분할)한 데이터를 S1 내지 S7로 표시하였다. S는 세그먼트를 의미한다. 각 세그먼트는 시간의 흐름에 따른 센싱 데이터의 변화량을 나타낸다. 세그먼트는 센싱 데이터의 값이 구성하는 파형, 파형의 형태, 파형의 사이클, 파형의 높이, 파형의 진폭 등을 나타낼 수 있다.The number of engine revolutions collected consecutively for a certain period of time may have a difference in the value with time. The sensing data is digital information having a specific value. The data collected over time can be expressed as a bar graph, which can be expressed as a continuous variable with a constant value ((a)). Continuous variables can exhibit waveform-like shapes on the time axis ((b)). In this manner, the sensing data representing the waveform-like shape along the time axis is referred to as time series sensing data. The computer device classifies the time series sensing data into predetermined time units (e.g., several seconds to several tens seconds) ((c)). FIG. 2 shows data obtained by dividing (dividing) into time units by S 1 to S 7 . S stands for segment. Each segment represents a change amount of the sensing data with the passage of time. The segment can indicate the waveform constituted by the value of the sensing data, the waveform type, the cycle of the waveform, the height of the waveform, the amplitude of the waveform, and the like.
도 3은 컴퓨터 장치가 자동차에서 수진한 센싱 데이터(OBD 데이터)를 전처리하는 과정에 대한 다른 예이다. 전술한 바와 같이 센싱 데이터는 복수의 항목으로 구성될 수 있다. OBD 데이터는 서로 다른 종류의 복수의 센싱 데이터를 포함할 수 있다. 센싱 데이터의 종류는 n개라고 가정한다.3 is another example of a process in which a computer apparatus preprocesses sensed data (OBD data) acquired from an automobile. As described above, the sensing data may be composed of a plurality of items. The OBD data may include a plurality of sensing data of different kinds. It is assumed that the number of types of sensing data is n.
도 3(A)는 복수의 센싱 데이터(S1 내지 S16)를 2차원에 배열한 예를 도시한다. 도 3(A)는 16개의 센싱 데이터를 예로 도시한다. 도 3(A)는 특정 시간에 수집한 센싱 데이터라고 할 수 있다. 특정 시간에서의 복수의 센싱 데이터는 하나의 매트릭스(matrix)로 표현할 수 있다.FIG. 3A shows an example in which a plurality of pieces of sensing data S1 to S16 are arranged in two dimensions. 3 (A) shows sixteen pieces of sensing data as an example. 3 (A) can be regarded as sensing data collected at a specific time. A plurality of sensing data at a specific time can be represented by a single matrix.
도 3(B)는 일정한 시간 구간에서 연속된 센싱 데이터를 도시한다. 도 3(B)에서 하나의 사각형은 도 3(A)에 도시한 특정 시간의 매트릭스라고 할 수 있다. 도 3(B)는 시간 t ~ t+α에서 수집한 센싱 데이터들이다. 도 3(B)의 시계열적인 매트릭스는 복수의 센싱 데이터의 값들을 포함한다. 도 3(B)의 시계열적인 매트릭스는 복수의 센싱 데이터 각각에 대하여 시간의 흐름에 따른 변화정도를 나타낸다. 도 3(B)는 k개의 매트릭스를 도시한다. 컴퓨터 장치가 전처리한 센싱 데이터는 도 3(B)와 같은 형태를 가질 수 있다. 이때 전처리한 데이터는 시간을 포함한 복수의 차원의 벡터 형태를 가질 수 있다. 도 3(B)의 시계열적인 데이터는 도 2에서 설명한 파형과 같은 형태로 이해할 수도 있다.3 (B) shows continuous sensing data in a constant time interval. In Fig. 3 (B), one square may be referred to as a matrix of a specific time shown in Fig. 3 (A). Fig. 3 (B) is the sensing data collected at time t to t + alpha. The time-series matrix of FIG. 3 (B) includes values of a plurality of sensing data. The time-series matrix of FIG. 3 (B) shows the degree of change with time in each of a plurality of sensing data. FIG. 3 (B) shows k matrices. The sensing data preprocessed by the computer device may have a form as shown in FIG. 3 (B). At this time, the preprocessed data may have a vector form of plural dimensions including time. The time-series data of FIG. 3 (B) may be understood to have the same waveform as that shown in FIG.
도 3(C)는 시간 구간(세그먼트)에서 변화되는 값을 갖는 데이터의 특성값을 추가로 반영한 경우이다. 도 3(C)는 도 3(B)의 매트릭스에 추가적인 값이 반영된 데이터이다. 도 3(C)는 시간 t ~ t+α에서 수집한 센싱 데이터들에 대한 k개의 매트릭스를 도시한다. 도 3(C)는 추가적으로 시간 t ~ t+α에서 수집한 센싱 데이터들에 대한 추가 데이터를 도시한다. 추가 데이터는 시간 구간에서 센싱 데이터가 변화될 때 의미가 있는 값이다. 도 3(C)는 이를 구간값이라고 표시하였다. 구간값은 시간 흐름에 따른 변화량 내지 변화값을 포함하는 의미이다. 구간값은 각 센싱 데이터에 대하여 최대값, 최소값, 평균값, 파형, 파형의 사이클, 평균 사이클 등을 포함하는 집합에서 적어도 하나의 값으로 구성될 수 있다. 구간값은 도 3(C)와 같이 별도의 매트릭스 형태로 생성될 수 있다. 도 3(C)에서 구간값은 검은색 사각형으로 도시하였다.3C is a case in which the characteristic value of the data having a value changed in the time period (segment) is additionally reflected. Fig. 3C is data in which additional values are reflected in the matrix of Fig. 3B. FIG. 3 (C) shows k matrices for the sensing data collected at time t to t + alpha. Figure 3 (C) additionally shows additional data for the sensing data collected at time t ~ t + a. The additional data is a meaningful value when the sensing data is changed in the time interval. In FIG. 3 (C), this is indicated as the interval value. The interval value includes a change amount or a change value according to a time flow. The interval value may be composed of at least one value in a set including a maximum value, a minimum value, an average value, a waveform, a cycle of a waveform, an average cycle, and the like for each sensing data. The interval value may be generated in a separate matrix form as shown in FIG. 3 (C). In Fig. 3 (C), the interval values are shown as black squares.
전술한 시계열 센싱 데이터는 도 3(B) 또는 도 3(C)와 같은 형태를 가질 수 있다. 도 3은 복수의 센싱 데이터에 대한 항목을 각각 이용하는 예를 도시하였다. 경우에 따라서 복수의 센싱 데이터 중 특정 그룹에 속한 데이터가 구성하는 조합된 데이터를 이용할 수도 있다. 여기서 특정 그룹은 센서가 위치한 부품의 위치(예컨대, 엔진에 배치된 복수의 서로 다른 센서) 또는 자동차 동작에 따라 관련된 특정 센서를 포함할 수 있다. 이 경우 도 3(A)에서 표시한 S1과 같은 데이터는 복수의 센싱 데이터를 조합한 값일 수 있다. 조합한 값은 복수의 센싱 데이터를 합산한 값, 평균한값 또는 특정 함수에 입력한 결과값일 수 있다.The above-described time series sensing data may have the form as shown in FIG. 3 (B) or FIG. 3 (C). 3 shows an example of using items for a plurality of sensed data, respectively. In some cases, combined data constituted by data belonging to a specific group among a plurality of sensing data may be used. Where a particular group may include the location of the part where the sensor is located (e.g., a plurality of different sensors disposed in the engine) or a specific sensor associated with the vehicle operation. In this case, the same data as S1 shown in Fig. 3 (A) may be a value obtained by combining a plurality of sensing data. The combined value may be a sum of a plurality of sensing data, an average value, or a result value input to a specific function.
도 4는 신경망을 학습하는 과정에 대한 예이다. 컴퓨터 장치가 신경망 학습을 수행한다고 가정한다. 4 is an example of a process of learning a neural network. It is assumed that the computer device performs neural network learning.
신경망은 자동차의 종류에 따라 서로 다른 모델로 사전에 구축할 수 있다. 즉, 제조사, 자동차 연식, 엔진의 종류 등을 고려하여 서로 다른 모델을 마련할 수도 있다. 경우에 따라서는 다양한 훈련 데이터를 사용하여 하나의 신경망을 구축할 수도 있다. 센싱 데이터는 자동차 제조사 내지 자동차의 종류에 따라 서로 다를 수 있다. 다양한 모델을 하나의 신경망으로 처리하기 위해서는 센싱 데이터를 통일된 포맷을 사전에 처리해야 한다. 즉, 컴퓨터 장치가 범용적으로 자동차 진단을 수행하기 위하여 일정한 포맷으로 센싱 데이터를 전처리할 수 있다. Neural networks can be built in advance with different models depending on the type of vehicle. That is, different models may be prepared in consideration of manufacturers, automobile type, engine types, and the like. In some cases, one neural network may be constructed using various training data. The sensing data may be different depending on the type of the automobile or the automobile. In order to process various models with one neural network, a uniform format of sensing data must be processed in advance. That is, the computer device can preprocess the sensing data in a predetermined format in order to perform automobile diagnosis in a general manner.
신경망은 훈련 데이터를 사용하여 구축된다. 훈련 데이터는 특정한 자동차로부터 획득한다. 훈련 데이터를 생성하는 자동차를 훈련용 자동차라고 명명한다. 훈련용 자동차에서 OBD 데이터와 DTC를 획득한다. 훈련용 자동차는 특정한 DTC를 출력한다고 전제한다. 다양한 종류의 고장을 진단하기 위하여, 서로 다른 DTC를 출력하는 복수의 훈련용 자동차로부터 훈련 데이터를 획득할 수 있다. 또 복수의 DTC를 출력하는 훈련용 자동차로부터 훈련 데이터를 획득할 수도 있다.The neural network is constructed using training data. Training data is obtained from a specific car. The automobile that generates the training data is called the training car. Obtain OBD data and DTC on the training vehicle. The training vehicle is assumed to output a specific DTC. To diagnose various types of failures, training data can be obtained from a plurality of training vehicles that output different DTCs. Training data may also be obtained from a training vehicle that outputs a plurality of DTCs.
컴퓨터 장치는 OBD 데이터로부터 복수의 센싱 데이터에 대한 센싱 데이터를 추출한다. 컴퓨터 장치는 시계열 센싱 데이터와 DTC를 이용하여 신경망을 훈련한다. The computer device extracts sensing data for a plurality of sensing data from the OBD data. The computer device trains the neural network using time series sensing data and DTC.
컴퓨터 장치는 신경망 훈련을 위하여 훈련용 자동차로부터 자동차 식별 정보, 시계열 센싱 데이터, 시계열 센싱 데이터 생성 시간, DTC 및 DTC 생성 시간을 획득한다. 자동차 식별 정보는 자동차(또는 엔진과 같은 자동차 핵심 부품)의 종류를 구분하는 정보이다. 시계열 센싱 데이터는 전술한 바와 같이 엔진에 대한 데이터, 변속기에 대한 데이터, 동력전달장치에 대한 데이터, 제동 장치에 대한 데이터, 조향 장치에 대한 데이터, 현가 장치에 대한 데이터, 냉각 장치에 대한 데이터, 배기 장치에 대한 데이터 및 전장 장치에 대한 데이터 중 적어도 하나를 포함할 수 있다.The computer device obtains vehicle identification information, time series sensing data, time series sensing data generation time, DTC and DTC generation time from the training vehicle for neural network training. The vehicle identification information is information that distinguishes the type of a car (or an automobile core part such as an engine). The time series sensing data includes data for the engine, data for the transmission, data for the power transmission device, data for the braking device, data for the steering device, data for the suspension device, data for the cooling device, Data on the device, and data on the electric device.
자동차 식별 정보, 시계열 센싱 데이터 생성 시간, DTC 및 DTC 생성 시간을 훈련 데이터라고 명명한다. 일정한 시간 동안 계속하여 훈련 데이터를 획득한다. 컴퓨터 장치는 시계열 센싱 데이터 생성 시간을 기준으로 시계열 시계열 센싱 데이터를 일정한 시간 단위로 구분한다. 최종적인 훈련 데이터는 전처리된 시계열 시계열 센싱 데이터 및 DTC라고 할 수 있다. 도 4는 훈련 데이터로 시계열 시계열 센싱 데이터를 일정한 시간 단위로 구분한 데이터(전처리 OBD 데이터) 및 DTC를 도시한다. Vehicle identification information, time series sensing data generation time, DTC and DTC generation time are called training data. Continuously acquire training data for a certain period of time. The computer device divides the time series time series sensing data by a predetermined time unit based on the time series sensing data generation time. The final training data can be called preprocessed time series time series sensing data and DTC. FIG. 4 shows data (preprocessing OBD data) and DTC obtained by dividing time series time series sensing data by a predetermined time unit with training data.
컴퓨터 장치는 최종적인 훈련 데이터를 이용하여 신경망을 훈련한다. 도 3은 CNN은 신경망의 예로 도시하였다. 컴퓨터 장치는 전처리된 시계열 시계열 센싱 데이터(입력 데이터) 및 DTC(출력 데이터)를 이용하여 신경망을 학습시킨다. The computer device trains the neural network using the final training data. 3 shows CNN as an example of a neural network. The computer device learns the neural network using preprocessed time series time series sensing data (input data) and DTC (output data).
도 5는 자동차 진단을 수행하는 과정에 대한 예이다. 도 5의 상단에는 자동차 진단을 위한 개략적인 과정을 도시한다. 컴퓨터 장치는 센싱 데이터인 OBD 데이터를 입력받는다. 컴퓨터 장치는 전술한 바와 같이 OBD 데이터에 포함된 시계열 센싱 데이터를 일정하게 전처리한다. 즉, 컴퓨터 장치는 전처리된 시계열 시계열 센싱 데이터를 생성한다. 5 is an example of a process of performing a car diagnosis. At the top of FIG. 5, a schematic process for car diagnosis is shown. The computer device receives OBD data which is sensing data. The computer device constantly preprocesses the time series sensing data included in the OBD data as described above. That is, the computer device generates preprocessed time series time series sensing data.
컴퓨터 장치는 전처리한 데이터를 딥 러닝 모델에 입력한다. 딥러닝 모델은 입력 데이터에 대하여 일정한 결과를 출력한다. 예컨대, 딥러닝 모델은 특정한 부품이나 부위에 대한 고장 여부를 출력할 수 있다. 또 딥러닝 모델은 특정한 부품이나 부위에 대한 잔여 수명을 출력할 수도 있다. 딥러닝 모델은 한 번에 복수의 부품에 대한 고장 여부 내지 잔여 수명을 출력할 수도 있다. 딥러닝 모델은 사전에 학습되어야 한다. 학습에 이용한 훈련 데이터에 따라 딥러닝 모델의 기능 및 딥러닝 모델이 출력하는 값이 달라진다. The computer device inputs the preprocessed data to the deep learning model. The deep learning model outputs a constant result for the input data. For example, the deep running model can output a failure to a specific part or part. The deep-running model can also output the remaining life for a specific part or part. The deep-running model may also output failure or remaining life for a plurality of parts at a time. Deep learning models should be learned in advance. Depending on the training data used for learning, the function of the deep learning model and the value output by the deep learning model are different.
도 5는 신경망으로 CNN의 예를 도시하였다. 컨볼루션 레이어와 풀링 레이어의 개수는 모델에 따라 달라질 수 있다. 예컨대, N은 3일 수 있다. 컨볼루션 레이어는 입력 데이터에서 특성을 추출한다. 예컨대, 활성화 함수로 ReLU 함수를 적용할 수 있다. 풀링 레이어는 정의된 범위의 데이터 중 가장 큰 값을 선택한다. 컨볼루션 레이어와 풀링 레이어를 3회 반복하여 입력 데이터로부터 특성(feature)을 추출한다. 컨볼루션 레이어와 풀링 레이어 다음에 전결합 레이어(fully connected layer)를 위치시킨다. 전결합 레이어에 활성함수는 softmax 함수를 적용할 수 있다. 출력 레이블에서 고장여부를 0과 1사이 값으로 출력할 수 있다. 예컨대, 출력값이 0.5 이상인 경우 자동차 또는 특정 부품에 대한 고장으로 판단할 수 있다.Figure 5 shows an example of CNN as a neural network. The number of convolution and pulling layers may vary depending on the model. For example, N may be 3. The convolution layer extracts characteristics from the input data. For example, the ReLU function can be applied as an activation function. The pooling layer selects the largest value of the defined range of data. The convolution layer and the pulling layer are repeated three times to extract features from the input data. Place the fully connected layer after the convolution layer and the pooling layer. The activation function can be applied softmax function to the whole binding layer. In the output label, a fault can be output as a value between 0 and 1. For example, if the output value is 0.5 or more, it can be determined that the vehicle or a specific part has a failure.
도 6은 자동차 진단을 수행하는 방법(500)에 대한 순서도의 예이다. 컴퓨터 장치는 먼저 자동차 진단을 위한 신경망을 구축한다. 도 6은 CNN을 예로 설명한다. 컴퓨터는 CNN을 훈련한다(510). FIG. 6 is an example of a flowchart for a method 500 for performing automotive diagnostics. The computer device first constructs a neural network for vehicle diagnosis. 6 illustrates CNN as an example. The computer trains CNN (510).
컴퓨터 장치는 일정 기간동안 자동차에서 OBD 데이터를 수집한다(520). 컴퓨터 장치는 OBD 리더와 같은 진단 장비로부터 진단 데이터를 수집한다. 컴퓨터 장치는 전술한 바와 같이 수집한 OBD 데이터에 포함된 센싱 데이터를 전처리한다(530). 컴퓨터 장치는 복수의 센싱 데이터를 각각 또는 복수의 센싱 데이터가 구성하는 조합된 데이터를 전처리한다.The computer device collects OBD data from the vehicle for a period of time (520). The computer device collects diagnostic data from diagnostic equipment such as an OBD reader. The computer device preprocesses the sensing data included in the collected OBD data as described above (530). The computer device pre-processes the plurality of sensing data and the combined data constituted by each or a plurality of sensing data.
컴퓨터 장치는 전처리한 데이터를 CNN에 입력하고, 일정한 결과를 도출한다(540). 전처리 과정은 도 2 내지 도 3에서 설명한 바와 같다. 컴퓨터 장치는 출력된 결과(진단 결과)에 따른 서비스를 수행한다(550). 컴퓨터 장치는 진단 결과를 화면에 표시할 수 있다. 또는 컴퓨터 장치는 진단 결과를 다른 장치에 전달할 수 있다. 예컨대, 컴퓨터 장치는 진단 결과를 스마트폰과 같은 사용자 단말에 전달할 수 있다. 컴퓨터 장치는 진단 결과를 서비스 서버에 전달할 수 있다. 사용자는 스마트폰에서 애플리케이션을 통해 서비스 서버에 접속하여 진단 결과를 확인할 수 있다. The computer device inputs the preprocessed data to CNN and derives a constant result (540). The preprocessing process is as described in FIGS. The computer device performs the service according to the output result (diagnosis result) (550). The computer device can display the diagnostic result on the screen. Or the computer device may deliver the diagnostic result to another device. For example, the computer device may deliver diagnostic results to a user terminal, such as a smart phone. The computer device can deliver the diagnostic results to the service server. The user can access the service server through the application on the smartphone to check the diagnosis result.
자동차에 대한 진단이 종료되지 않았다면(560의 No) 컴퓨터 장치는 다시 OBD 데이터를 수집하여 전술한 과정을 반복한다. 한편 컴퓨터 장치는 딥러닝 모델을 업데이트(고도화)할 수 있다(570). 예컨대, 딥러닝 모델로 고장 여부를 진단한 자동차(또는 특정 부품)에서 DTC 코드가 검출되면, 컴퓨터 장치는 현재 수집한 ODB 데이터 및 DTC 코드를 현재의 딥러닝 모델에 반영할 수 있다. 즉, 진단 장비를 이용하여 DTC 코드를 확인한 경우, 컴퓨터 장치는 수집한 ODB 데이터 및 DTC 코드를 이용하여 현재의 딥러닝 모델을 더 학습시킬 수 있다. If the diagnosis for the vehicle has not ended (No at 560), the computer device collects OBD data again and repeats the above-described process. While the computer device may update (enhance) the deep learning model (570). For example, if a DTC code is detected in an automobile (or a specific part) diagnosed as a failure by a deep learning model, the computer device can reflect the ODB data and the DTC code currently collected in the current deep learning model. That is, when the DTC code is confirmed by using the diagnostic equipment, the computer device can further learn the current deep learning model using the collected ODB data and the DTC code.
나아가, 컴퓨터 장치가 자동차 또는 별도의 서버로부터 해당 자동차에 대한 수리 기록을 확인할 수 있다. 수리 기록은 특정 부품에 대한 고장 여부에 대한 정보를 포함한다. 이 경우 컴퓨터 장치는 수집한 OBD 데이터와 자동차에 대한 수리 기록을 이용하여 딥러닝 모델을 더 학습시킬 수도 있다. Further, the computer device can check the repair record for the vehicle from the car or a separate server. The repair record contains information on whether a specific part is faulty. In this case, the computer device may further learn the deep learning model by using the collected OBD data and the automobile repair record.
본 실시례 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.The present embodiment and drawings attached hereto are only a part of the technical idea included in the above-described technology, and it is easy for a person skilled in the art to easily understand the technical idea included in the description of the above- It will be appreciated that variations that may be deduced and specific embodiments are included within the scope of the foregoing description.