KR20220072852A - 애프터마켓 차량 코파일럿 디바이스 - Google Patents

애프터마켓 차량 코파일럿 디바이스 Download PDF

Info

Publication number
KR20220072852A
KR20220072852A KR1020227013518A KR20227013518A KR20220072852A KR 20220072852 A KR20220072852 A KR 20220072852A KR 1020227013518 A KR1020227013518 A KR 1020227013518A KR 20227013518 A KR20227013518 A KR 20227013518A KR 20220072852 A KR20220072852 A KR 20220072852A
Authority
KR
South Korea
Prior art keywords
copilot
data
vehicle
video
pilot
Prior art date
Application number
KR1020227013518A
Other languages
English (en)
Inventor
민수 이
레비 비손
용찬 조
Original Assignee
블루박스 랩스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 블루박스 랩스, 인크. filed Critical 블루박스 랩스, 인크.
Publication of KR20220072852A publication Critical patent/KR20220072852A/ko

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/08Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
    • G07C5/0841Registering performance data
    • G07C5/085Registering performance data using electronic data carriers
    • G07C5/0866Registering performance data using electronic data carriers the electronic data carrier being a digital video recorder in combination with video camera
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/08Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to drivers or passengers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/12Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to parameters of the vehicle itself, e.g. tyre models
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/005Handover processes
    • B60W60/0051Handover processes from occupants to vehicle
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3697Output of additional, non-guidance related information, e.g. low fuel level
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C22/00Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/008Registering or indicating the working of vehicles communicating information to a remotely located station
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/08Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
    • G07C5/0808Diagnosing performance data
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/08Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
    • G07C5/0816Indicating performance data, e.g. occurrence of a malfunction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/036Insert-editing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/188Capturing isolated or intermittent images triggered by the occurrence of a predetermined event, e.g. an object reaching a predetermined position
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2520/00Input parameters relating to overall vehicle dynamics
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2530/00Input parameters relating to vehicle conditions or values, not covered by groups B60W2510/00 or B60W2520/00
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/006Indicating maintenance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/183Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Multimedia (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Traffic Control Systems (AREA)
  • Time Recorders, Dirve Recorders, Access Control (AREA)

Abstract

본원에서 차량에 대해 통상적으로 가용하지 않을 다양한 기능을 가능하게 하기 위해 차량 내에 "애프터마켓(aftermarket)"으로서 설치될 수 있는 코파일럿 디바이스를 포함하는 시스템이 설명된다. 일부 실시예들에서, 코파일럿 디바이스는 코파일럿 디바이스가 설치되는 차량에 관한 정보를 수집하는 다수의 카메라들 및 센서들을 포함한다. 코파일럿 디바이스는 또한, 차량 자체에 통신가능하게 결합되고, 차량으로부터 직접 데이터를 수신한다. 코파일럿 디바이스는 시간에 기초하여 동기화되는 다수의 데이터 타입들을 포함하는 데이터 파일을 생성할 수 있다.

Description

애프터마켓 차량 코파일럿 디바이스
우선권 출원
본 출원은 2019년 9월 27일자로 출원된 미국 가출원 제62/907,533호 및 2020년 9월 22일자로 출원된 미국 출원 제17/028,751호의 이익을 주장하며, 양자의 전체 내용은 본원에 원용된다.
대시캠(dashcam) 시스템들은 통상적으로 다른 기능이 거의 없거나 전혀 없는 비디오를 레코딩한다. 대시캠 시스템들은 통상적으로 설치가 어렵다. 일단 설치되면, 대시캠 시스템들은 통상적으로 이식성(portability)이 부족하다. 대시캠들에 의해 수집되는 정보는 통상적으로 엔터테인먼트 목적들을 위해 또는 민사 또는 범죄 수사에서의 증거로서 사용될 수 있는 때때로 사운드를 갖는 비디오 영상으로 제한된다.
자율 주행 차량용 카메라 시스템들은 통상적으로 기존 차량들에의 애프터마켓 설치에 가용하지 않다. 자율 차량 카메라 시스템들은 대시캠 시스템들의 정보 이외에 차량 소유주에 유용한 정보를 거의 또는 전혀 제공하지 않는다.
본원에서 차량 내에 설치된 코파일럿 디바이스(copilot device)의 사용을 통해 차량과 연관된 다양한 기능들의 자동화를 가능하게 하기 위한 기술들이 제공된다. 본원에서 방법들, 시스템들, 하나 이상의 프로세서에 의해 실행가능한 프로그램들, 코드, 또는 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체들 등을 포함하는 다양한 실시예들이 설명된다.
일 실시예에서, 방법이 코파일럿 디바이스에 의해 수행되는 것으로서 개시되며, 본 방법은 코파일럿 디바이스에 포함된 카메라에 의해 획득된 비디오 데이터를 수신하는 단계, 차량과 코파일럿 디바이스 간의 커넥션을 통해 차량 데이터를 수신하는 단계, 코파일럿 디바이스와 통신하는 하나 이상의 센서로부터 센서 데이터를 수신하는 단계, 비디오 데이터, 차량 데이터의 적어도 일부, 및 센서 데이터의 적어도 일부를 포함하는 수정된 비디오 파일을 생성하는 단계, 및 수정된 비디오 파일을 코파일럿 디바이스의 원격에 있는 코파일럿 관리 컴퓨터로 송신하는 단계를 포함한다.
일 실시예는 하나 이상의 카메라; 차량과 코파일럿 컴퓨팅 디바이스 간의 커넥션; 하나 이상의 센서; 프로세서; 및 프로세서를 이용하여 실행될 때, 코파일럿 컴퓨팅 디바이스로 하여금, 적어도: 코파일럿 디바이스에 포함된 하나 이상의 카메라에 의해 획득된 비디오 데이터를 수신하고, 차량과 코파일럿 컴퓨팅 디바이스 간의 커넥션을 통해 차량 데이터를 수신하고, 코파일럿 디바이스와 통신하는 하나 이상의 센서로부터 센서 데이터를 수신하고, 비디오 데이터, 차량 데이터의 적어도 일부, 및 센서 데이터의 적어도 일부를 포함하는 수정된 비디오 파일을 생성하며, 수정된 비디오 파일을 코파일럿 디바이스의 원격에 있는 코파일럿 관리 컴퓨터로 송신하게 하는 명령어들을 포함하는 메모리를 포함하는 코파일럿 컴퓨팅 디바이스에 관한 것이다.
본 개시의 일 실시예는 코파일럿 디바이스 및 코파일럿 관리 컴퓨터를 포함하는 시스템에 관한 것이다. 코파일럿 디바이스는 코파일럿 디바이스로 하여금 차량과의 커넥션을 통해 수신되는 적어도 비디오 데이터, 센서 데이터, 및 차량 데이터를 포함하는 이종의 차량 관련 데이터를 획득하고, 이종의 차량 관련 데이터를 단일 데이터 파일로 조합하며, 단일 데이터 파일을 코파일럿 관리 컴퓨터에 제공하게 하는 명령어들을 포함하는 메모리를 갖는다. 코파일럿 관리 컴퓨터는 코파일럿 디바이스와 통신가능하게 결합되고, 코파일럿 디바이스로부터 수신되는 단일 데이터 파일을 처리하도록 구성된다. 시스템은, 모바일 애플리케이션이 설치된 클라이언트 디바이스를 더 포함할 수 있으며, 모바일 애플리케이션은 클라이언트 디바이스와 코파일럿 디바이스 간의 상호작용을 가능하게 한다.
전술한 내용은 다른 특징들 및 실시예들과 함께, 다음의 명세서, 청구항들, 및 첨부 도면들을 참조하여 더 명백해질 것이다.
상세한 설명은 첨부 도면들을 참조하여 설명되며, 도면들에서, 참조 부호의 가장 좌측의 숫자(들)는 해당 참조 부호가 처음 나타나는 도면을 식별한다. 상이한 도면들에서의 동일한 참조 부호들의 사용은 유사하거나 또는 동일한 항목들을 나타낸다.
도 1은 적어도 일부 실시예들에 따른 애프터마켓 차량 코파일럿 디바이스를 포함하는 예시적인 아키텍처를 도시한다;
도 2는 다양한 실시예들에 따른 코파일럿 디바이스를 포함하도록 구현될 수 있는 예시적인 시스템 아키텍처의 다양한 구성요소들을 나타내는 블록도를 도시한다;
도 3은 적어도 일부 실시예들에 따른 코파일럿 디바이스 내에 포함될 수 있는 다수의 예시적인 하드웨어 구성요소들의 블록도를 도시한다;
도 4a는 예시적인 코파일럿 디바이스의 등각 상면도를 도시한다;
도 4b는 예시적인 코파일럿 디바이스의 등각 측면도를 도시한다;
도 4c는 예시적인 코파일럿 디바이스의 등각 저면도를 도시한다;
도 4d는 예시적인 코파일럿 디바이스의 등각 사시도를 도시한다;
도 5는 예시적인 코파일럿 디바이스의 등각 분해조립 사시도를 도시한다;
도 6은 실시예들에 따라 구현될 수 있는 분리 가능한 베이스를 갖는 예시적인 코파일럿 디바이스의 다수의 도면들을 도시한다;
도 7은 실시예들에 따른 예시적인 코파일럿 디바이스를 통해 데이터를 처리하기 위한 예시적인 프로세스를 나타내는 흐름도를 도시한다;
도 8은 실시예들에 따른 수정된 비디오 파일을 생성하고 제공하기 위한 예시적인 프로세스를 도시한다;
도 9는 실시예들에 따른 차량 기능을 자동화하기 위한 예시적인 프로세스를 도시한다;
도 10은 적어도 일부 실시예들에 따른 코파일럿 디바이스와 클라이언트 디바이스 간의 상호작용을 가능하게 하기 위해 클라이언트 디바이스 상에 인스턴스화될 수 있는 예시적인 그래픽 사용자 인터페이스를 도시한다;
도 11은 적어도 일부 실시예들에 따른 코파일럿 디바이스로부터 차량의 운전자에게 차량 상태 정보를 전달하기 위해 클라이언트 디바이스 상에 인스턴스화될 수 있는 예시적인 그래픽 사용자 인터페이스를 도시한다;
도 12은 적어도 일부 실시예들에 따른 코파일럿 디바이스로부터 차량의 운전자에게 마일리지 정보를 전달하기 위해 클라이언트 디바이스 상에 인스턴스화될 수 있는 예시적인 그래픽 사용자 인터페이스를 도시한다;
도 13은 적어도 일부 실시예들에 따른 코파일럿 디바이스로부터 차량의 운전자에게 안전 이벤트 정보를 전달하기 위해 클라이언트 디바이스 상에 인스턴스화될 수 있는 예시적인 그래픽 사용자 인터페이스를 도시한다; 그리고
도 14는 적어도 일부 실시예들에 따른 수정된 비디오 파일을 생성하고 서버로 송신하기 위한 예시적인 프로세스를 도시하는 흐름도를 도시한다.
이하의 설명에서, 설명의 목적을 위해, 특정 실시예들의 완전한 이해를 제공하기 위해 특정 상세들이 설명된다. 그러나, 다양한 실시예들이 이러한 특정 상세들 없이도 실시될 수 있다는 것이 분명할 것이다. 도면들 및 설명은 제한적인 것으로 의도되지 않는다. "예시적인"이라는 단어는 본원에서 "예, 사례, 또는 예시로서의 역할을 하는"을 의미하기 위해 사용된다. "예시적인" 것으로서 본원에서 설명되는 임의의 실시예 또는 설계는 반드시 다른 실시예들 또는 설계들에 비해 바람직하다거나 또는 유리하다는 것으로서 해석되어야 하는 것은 아니다.
본 개시는 차량에 대해 통상적으로 가용하지 않을 다양한 기능을 가능하게 하기 위해 차량 내에 "애프터마켓"으로서 설치될 수 있는 코파일럿 디바이스를 포함하는 시스템에 관한 것이다. 보다 구체적으로, 코파일럿 디바이스는 코파일럿 디바이스가 설치되는 차량에 관한 정보를 수집하는 다수의 카메라들 및 센서들을 포함한다. 코파일럿 디바이스는 온보드 진단(onboard diagnostic; OBD) 커넥션을 통해 차량의 제어기 영역 네트워크(Controller Area Network, CAN) 버스와 통신가능하게 결합된다.
일부 실시예들에서, 코파일럿 디바이스는 센서들에 의해 수집되는 상이한 센서 데이터, (차량 내부 및 외부 양자의) 비디오 데이터, 및 OBD 커넥션을 통해 수신되는 차량 데이터를 포함하는 다양한 이종의 데이터 유형들을 수신한다. 그 후, 코파일럿 디바이스는 센서 데이터 및 차량 데이터를 비디오 데이터에 첨부함으로써 이종의 데이터 타입들의 적어도 일부를 데이터 파일로 조합한다. 이러한 데이터 파일에서, 이종의 데이터 타입들은 각 데이터 각각이 수신되는 시간에 기초하여 동기화된다. 그 후, 데이터 파일은 해당 데이터 파일을 처리하도록 구성된 백엔드 서버에 제공된다.
일부 실시예들에서, 백엔드 서버(예를 들어, 코파일럿 관리 컴퓨터)는 데이터 파일(및 다른 코파일럿 디바이스들로부터 수신되는 다른 데이터 파일들)을 사용하여 머신 러닝 모델을 트레이닝한다. 이러한 방식으로 생성된 트레이닝된 모델은 다시 코파일럿 디바이스에 제공될 수 있다. 이러한 트레이닝된 모델은 코파일럿 디바이스 상에서 구현될 때, 특정 조건들이 센서 및/또는 비디오 데이터를 통해 검출될 때 취해질 적절한 조치들을 결정하기 위해 사용될 수 있다. 그 후, 이러한 조치들은 사용자 관여와 관계 없이 취해져, 특정 차량 기능들이 자동화되게 할 수 있다.
일부 실시예들에서, 본 시스템은 사용자를 대신하여 업무 이벤트들의 시작 및 종료를 자동으로 검출한다. 그 후, 본 시스템은 정확하고 효율적인 방식으로 이들의 업무 이벤트들에 기초하여 마일리지 로그들을 생성할 수 있다.
도 1은 적어도 일부 실시예들에 따른 애프터마켓 차량 코파일럿 디바이스를 포함하는 예시적인 아키텍처를 도시한다. 도 1의 차량 코파일럿 디바이스는 적어도 코파일럿 디바이스(106) 및 온보드 진단(OBD) 커넥션(107)을 포함한다. 코파일럿 디바이스(106)는 윈드쉴드의 내부 표면 또는 대시보드 또는 오토바이 가스 탱크의 상부 표면과 같은 차량의 표면 또는 구성요소에 결합(예를 들어, 클램핑, 접착, 흡착, 또는 다른 수단)함으로써 1995년 후에 제조된 임의의 기존의 차량에서의 설치를 가능하게 한다. 예를 들어, 마운트 하우징의 상면 상의 접착 스트립은 차량의 윈드실드에 코파일럿 디바이스(106)를 장착하는 것을 가능하게 할 수 있다. 코파일럿 디바이스(106)는 업무 관련 마일리지의 추적 및/또는 차량 기능들의 활성화와 같은 운전자의 매일의 작업들의 도움 또는 증강을 가능하게 하는 하나 이상의 소프트웨어 모듈을 갖는 메모리를 포함하는 하드웨어로 구성된다.
코파일럿 디바이스(106)는 OBD 커넥션(107), 하나 이상의 클라이언트 디바이스(102-105), 애플리케이션 서버(116), 및/또는 코파일럿 관리 컴퓨터(118) 중 하나 이상과 통신한다. 일부 실시예들에서, 코파일럿 디바이스(107)는 BLUETOOTH®또는 WI-FI®와 같은 표준 하에서 동작하는 통신 수단들을 포함할 수 있는 단거리 무선 네트워크(108)를 통해 클라이언트 디바이스들(102-105) 중 하나 및/또는 OBD 커넥션(107)과 통신한다. 일부 실시예들에서, 코파일럿 디바이스(106)는 유선을 통해 클라이언트 디바이스들(102-105) 중 하나 및/또는 OBD 커넥션(107)과 통신가능하게 결합된다. 일부 실시예들에서, 코파일럿 디바이스(106)는 LTE(4G 모바일 통신 표준)와 같은 표준 하에서 동작하는 것들과 같은 장거리 무선 통신 수단을 포함하는 광역 네트워크(110)를 통해 애플리케이션 서버(116) 및/또는 코파일럿 관리 컴퓨터(118)와 같은 엔티티들과 통신한다.
코파일럿 디바이스(106)는 OBD 커넥션(107)에 통신가능하게 결합된다. OBD 커넥션(107)은 자동차 기술자 협회(Society of Automotive Engineers, SAE) J1962와 같은 OBD II 표준에 따르는 온보드 진단 버스와 인터페이싱하도록 구성된다. 예를 들어, OBD 커넥션(107)은 차량에서의 차량 진단을 위해 OBD-II 커넥터 포트에 결합된다. 일부 실시예들에서, OBD 커넥션(107)은 OBD 또는 OBD-II 커넥터 포트들과 연관된 다양한 가능한 핀 레이아웃들의 테이블을 저장할 수 있고, 가장 바람직하게는, 저장된 레이아웃과 연관된 핀들의 대부분 또는 전부의 성공적인 사용에 기초하여 차량에 대응하는 것으로 간주될 때까지 저장된 핀 레이아웃들을 채용하려고 반복적으로 시도하여, 그 후, 차량과 연관되는 성공적인 저장된 레이아웃의 표시자를 저장한다. 일부 버전들에서, 사용자가 핀 레이아웃을 선택할 수 있거나, 또는 OBD 커넥션(107)이 사용자로부터의 차량 연식, 제조사, 또는 모델의 입력에 기초하여(사용자 입력들은 코파일럿 디바이스(106)에 통신가능하게 결합되거나 또는 OBD 커넥션(107)에 직접 결합되는 클라이언트 디바이스들(102-105) 중 하나 상에서 실행되는 애플리케이션으로 제공될 수 있음) 핀 레이아웃을 선택될 수 있다. OBD 커넥션(107)은 OBD 또는 OBD-II 버스를 통해 차량 내에 설치된 컴퓨터로부터 데이터를 획득하고, 그 (원시 또는 수정된) 데이터를 코파일럿 디바이스(106)로 송신한다. 일부 실시예들에서, 코파일럿 디바이스(106)는 차량과 연관된 하나 이상의 플래그, 코드, 또는 상태를 리셋하거나 그 외 수정하기 위한 또는 차량의 다양한 기능들을 구현하기 위한 (원시 또는 수정된) 명령어들을 차량 컴퓨터들로 송신하기 위한 명령어들을 OBD 커넥션(107)에 제공한다.
코파일럿 디바이스(106)는 코파일럿 디바이스(106)의 하드웨어(예를 들어, 프로세서들)에 의해 실행가능한 컴퓨터 실행가능 명령어들(예를 들어, 코드)을 포함한다. 코파일럿 디바이스(106)는 전력이 공급되는 한 루프에서 내부(후방) 및 외부(전방) 비디오들 양자를 레코딩한다. 파일 카운트 제한 및 비디오 지속기간 설정들(예를 들어, 디폴트로 300개의 파일들 및 3분 길이의 비디오)에 기초하여, 가장 오래된 비디오들은 파일 카운트 제한이 충족될 때 로컬 메모리에서 더 새로운 비디오들로 대체된다. 또한, 비디오는 비디오가 캡처될 때 애플리케이션 서버 컴퓨터(116) 또는 코파일럿 관리 컴퓨터(118)에 업로드될 수 있다. 클라이언트 디바이스들(102-105) 중 하나가 코파일럿 디바이스(106)의 통신 인터페이스(유선 또는 무선)를 통해 코파일럿 디바이스(106)와 연결하기 위해 사용될 때, 다양한 기능이 클라이언트 디바이스들(102-105) 중 하나의 클라이언트 디바이스의 그래픽 사용자 인터페이스(GUI)를 통해 인에이블될 수 있다. 예를 들어, 사용자는 다운로드에 가용한 코파일럿 디바이스(106)에서 레코딩된 영상의 썸네일들을 브라우징할 수 있다. 사용자는 영상을 브라우징하고, 클라이언트 디바이스들(102-105) 중 하나의 클라이언트 디바이스의 내부 스토리지에 다운로드하기 위한 영상을 선택하기 위해 스크롤할 수 있다. 클라이언트 디바이스들(102-105) 중 하나에 다운로드되면, 사용자는 다운로드된 영상을 브라우징하거나 보거나, 또는 다운로드된 영상을 사용자, 클라이언트 디바이스들(102-105) 중 하나, 또는 코파일럿 디바이스(106)와 연관된 클라우드 계정에 업로드하기 위해 상이한 탭을 선택할 수 있다. 클라우드에 업로드될 때, 사용자는 이메일 또는 소셜 네트워크를 통해 영상을 공유할 수 있다. 또 다른 예에서, 사용자는 클라이언트 디바이스들(102-105) 중 하나 상에서 실행되는 소프트웨어를 통해 카메라에 대한 나이트 비전을 켜거나 끌 수 있다.
코파일럿 관리 컴퓨터(118)는 본원에서 설명되는 시스템에 대한 백엔드 지원을 제공한다. 예를 들어, 코파일럿 관리 컴퓨터(118)는 클라이언트 디바이스들(102-105) 및 코파일럿 디바이스(106)의 로직을 지원하기 위해 전체 데이터베이스 및 사용자 인증 서비스들을 제공할 수 있다. 코파일럿 관리 컴퓨터(118)는 비동기 처리 큐와 동시에 많은 사용자들로부터의 사용자 비디오 업로드를 핸들링하는 고도로 확장가능하고 견고한 서버리스 데이터 업로드 시스템을 제공한다. 코파일럿 관리 컴퓨터(118)는 데이터베이스와 사용자 인증 서비스들 간의 동기화에 의해 가능하게 되는 푸시 알림들을 클라이언트 디바이스들(102-105) 중 하나에 제공할 수 있다. 푸시 알림들은 전체 시스템에서의 비동기 프로세스들 및 상태 변경들의 시작 및 완료 시에 클라이언트 디바이스들(102-105) 중 하나를 통해 사용자에게 통지한다.
일부 실시예들에서, 코파일럿 관리 컴퓨터(118)는 클라우드 가상 머신(예를 들어, Ubuntu 서버를 실행하는 가상 머신)이다. 코파일럿 관리 컴퓨터(118)는 가상 머신의 IP 어드레스로 코파일럿 관리 컴퓨터(118)와 연관된 도메인에 대한 요청들을 라우팅하는 도메인 네임 시스템(Domain Name System, DNS) 구성을 가능하게 할 수 있다. 일부 버전들에서, 서버에 백엔드 로직이 디플로이되고(예를 들어, git hook, 또는 ci/cd를 이용하여, 수동으로), 서비스가 리프레시된다. 코파일럿 관리 컴퓨터(118)는 배킹 데이터베이스에 대한 데이터베이스 커넥션을 유지할 수 있다. 코파일럿 관리 컴퓨터(118)는 애플리케이션 프로그래밍 인터페이스(API) 요청들 및 응답들을 서비스하기 위한 데이터를 판독/기록한다. 일부 실시예들에서, API 호출들은 사용자 비디오 업로드들을 제외하고는, 동기적이다. 비디오 업로드는 가상 머신 상에서 실행되는 비동기 워커 큐에 의해 핸들링될 수 있다.
일부 실시예들에서, 애플리케이션 서버 컴퓨터(116)는 코파일럿 디바이스 및/또는 코파일럿 관리 컴퓨터(118)에 의해 생성되는 데이터의 소비자이다. 애플리케이션 서버 컴퓨터(116)는 사용자에게 기능을 제공하기 위해 코파일럿 디바이스(106)가 설치된 차량에 대한 정보를 소비할 수 있다. 예를 들어, 애플리케이션 서버 컴퓨터(118)는 코파일럿 디바이스(106)로부터 마일리지 정보를 획득할 수 있고, 해당 마일리지 정보를 사용하여 세금 문서들을 생성할 수 있다. 일부 실시예들에서, 애플리케이션 서버 컴퓨터(116)는 코파일럿 관리 컴퓨터(118)와 관계가 없는 서드파티 엔티티에 의해 동작될 수 있다.
다양한 상호작용들이 시스템(100)의 설명된 구성요소들 사이에서 발생할 수 있다. 시스템(100)에서, 코파일럿 디바이스(106)는 OBD 커넥션(107)으로부터 차량 데이터를 획득한다. 일부 실시예들에서, 차량 데이터는 미리 결정된 간격들로(예를 들어, 2초마다) 획득될 수 있다. 코파일럿 디바이스(106)는 획득된 데이터를 로컬 메모리에 저장한다. 코파일럿 디바이스(106)는 또한, 전방(외부) 카메라뿐만 아니라 후방(내부) 카메라 양자로부터 비디오 데이터를 획득한다. 코파일럿 디바이스(106)는 또한, 코파일럿 디바이스의 하나 이상의 센서로부터 데이터를 획득한다. 예를 들어, 코파일럿 디바이스는 차량 내부 또는 외부 중 어느 하나의 온도, 위치(예를 들어, GPS(Global Positioning System) 또는 GNSS(Global Navigation Satellite System)를 통해), 가속도 데이터, 실시간 데이터, 또는 임의의 다른 적합한 정보를 획득할 수 있다. 코파일럿 디바이스(106)는 클라이언트 디바이스들(102-105) 중 하나로부터 정보를 추가적으로 수신할 수 있다. 그 후, 코파일럿 디바이스는 데이터를 단일 데이터 스트림으로 조합할 수 있다. 예를 들어, 코파일럿 디바이스는 센서들 및/또는 차량으로부터 획득된 정보를 메타데이터로서 비디오에 첨부할 수 있다. 이는 정보가 분석될 때 정렬될 필요가 없다는 점에서, 보다 용이한 검색 및 분석을 위해 정보를 동기화한다.
그 후, 코파일럿 디바이스(106)는 데이터를 코파일럿 관리 컴퓨터(118) 및/또는 애플리케이션 서버 컴퓨터(116)로 송신한다. 그 후, 다양한 애플리케이션들이 데이터를 소비할 수 있다. 예시로서, 차량의 운전자가 승차 호출(ride-hailing) 서비스(예를 들어, Uber, Lyft 등)에 의해 채용되는 예를 고려한다. 이러한 예시에서, 운전자는 하루 내내 다양한 시간에 일적인 및 개인적인 운전 양자를 위해 자신의 차량을 사용할 수 있다. 사용자의 클라이언트 디바이스(103-105)는 사용자에게 승차 서비스 정보를 제공하도록 동작하는 모바일 애플리케이션을 포함할 수 있다. 코파일럿 디바이스(106)는 모바일 애플리케이션과의 상호작용을 통해 클라이언트 디바이스들(103-105) 중 하나로부터 승차 서비스의 표시를 수신할 수 있다. 이는 다른 데이터의 조각들 중에서, 차량으로부터 획득된 주행거리계 데이터와 조합될 수 있다. 조합된 정보가 코파일럿 관리 컴퓨터(118)에 제공될 때, 코파일럿 관리 컴퓨터(118)는 비디오 전체에 포함된 주행거리계 데이터뿐만 아니라 (예를 들어, 클라이언트 디바이스(103-105)로부터 수신되는 데이터에 기초하여) 비디오의 어떤 부분들이 업무 목적에 관련되는지의 표시를 식별할 수 있다. 이러한 방식으로, 코파일럿 관리 컴퓨터(118)는 개인 및 업무 목적들을 위해 마일리지를 자동으로 추적 및 묘사할 수 있고, (예를 들어, 세금 목적을 위해) 요구 시 내역을 제공할 수 있다. GPS 위치 데이터가 또한 마일리지를 추적하기 위해 사용될 수 있지만, 이러한 위치 데이터는 보통 부정확할 수 있다는 점에 유의해야 한다. 예를 들어, 거리는 GPS 애플리케이션들에서의 주기적인 위치 보고로 인해, 통상적으로 검출된 두 위치들 간의 직선으로서 측정된다. 이는 보통 GPS 애플리케이션이 코너들을 참작함에 따라, 차량이 다수의 선회들을 행하고 있을 때 부정확성을 초래할 수 있다. 그 결과, 설명된 방식의 주행거리계 데이터의 사용은 마일리지를 추적할 때 GPS 위치 데이터의 사용보다 더 큰 정확도를 제공할 수 있다.
일부 실시예들에서, 제공된 데이터는 머신 러닝 모델(예를 들어, 딥 러닝/인지 네트워크를 사용하는 머신 러닝 알고리즘)을 트레이닝하는 데 사용될 수 있다. 예를 들어, 머신 러닝 모델은 차량 데이터로부터의 사용자 입력들(예를 들어, 윈드실드 와이퍼를 켜고, 라이트를 켜는 등)을 하나 이상의 비디오 조건에 대응하도록 트레이닝될 수 있다. 이러한 방식으로, 다양한 조건들에 적절한 차량 데이터를 복제할 수 있는 트레이닝된 머신 러닝 모델이 생성될 수 있다. 그 후, 이러한 트레이닝된 머신 러닝 모델은 코파일럿 디바이스(106)에 다시 제공될 수 있다. 그 후, 코파일럿 디바이스(106)는 현재 비디오 피드를 통해 다양한 조건들을 검출 시, OBD 커넥션(107)을 통해 사용자 입력들을 복제할 수 있다. 이는 코파일럿 디바이스(106)가 차량의 특정 기능들을 "러닝" 및 자동화할 수 있게 한다. 예시로서, 코파일럿 디바이스(106)는 트레이닝된 머신 러닝 모델을 사용하여, 전방 카메라로부터 캡처된 비디오에서 검출되는 비에 기초하여 윈드쉴드 와이퍼 활동의 어떤 레벨이 활성화되어야 하는지를 결정할 수 있다. 제2 예시에서, 코파일럿 디바이스(106)는 트레이닝된 머신 러닝 모델을 사용하여, 차량 헤드라이트가 어떤 임계 광 레벨에서 활성화되어야 하는지를 결정할 수 있다.
도 2는 본 개시의 실시예들에 따른 코파일럿 디바이스를 포함하도록 구현될 수 있는 예시적인 시스템 아키텍처의 다양한 구성요소들을 나타내는 블록도를 도시한다. 시스템 아키텍처(200)에는 코파일럿 디바이스(106), 코파일럿 관리 컴퓨터(118), 및 클라이언트 디바이스(202)가 포함된다. 코파일럿 디바이스(106) 및 코파일럿 관리 컴퓨터(118)는 도 1과 관련하여 설명된 각 코파일럿 디바이스(106) 및 코파일럿 관리 컴퓨터(118)의 예들일 수 있다. 클라이언트 디바이스(202)는 도 1과 관련하여 설명된 바와 같은 클라이언트 디바이스들(102-105) 중 하나의 예일 수 있다.
코파일럿 디바이스(106)는 프로세서(204) 및 컴퓨터 판독가능 메모리(206)를 포함할 수 있다. 프로세서(204)는 중앙 처리 유닛, 및/또는 전용 제어기, 이를테면, 마이크로제어기일 수 있다. 코파일럿 디바이스(106)는 하나 이상의 카메라(208), 하나 이상의 센서(210), OBD 커넥션(212), 및 통신 인터페이스(214)를 더 포함할 수 있다.
하나 이상의 카메라(208)는 후방 (내부) 카메라뿐만 아니라 전방 (외부) 카메라를 포함할 수 있다. 후방 카메라는 차량 내의 운전자 및 탑승자들뿐만 아니라 (예를 들어, 차량의 뒷 창문을 통해) 차량 외부 및 후부의 영역의 비디오 및/또는 이미지들을 캡처할 수 있다. 전방 카메라는 차량 앞 영역의 비디오 및/또는 이미지들을 캡처할 수 있다. 일부 실시예들에서, 카메라들 중 하나 이상에 의해 획득된 비디오는 신경망 프로세서를 통해 처리될 수 있다.
센서들(210)은 코파일럿 디바이스(106)가 위치되는 환경에 대한 정보를 획득할 수 있는 임의의 센서들을 포함할 수 있다. 비제한적인 예들로서, 센서들(210)은 나침반, 가속도계, 생체 인식 센서들, 실시간 클록, 온도 센서, 자이로스코프, 자력계, 및/또는 GPS(global positioning system 센서를 포함할 수 있다.
OBD 커넥션(212)은 마이크로제어기(예를 들어, 블루투스 저에너지 시스템 온 모듈을 갖는 PIC18F2480 마이크로제어기)와 결합되는 무선 OBD 또는 OBD-II 또는 유선 커넥터를 포함한다. OBD 커넥션(212)은 표준 OBD-II PID 프로토콜 및 CAN 송수신기들(예를 들어, SN65HVD233-HT)를 포함하는 PCB를 이용한 CAN 메시지들의 직접 판독/기록 양자를 가능하게 한다. 일부 버전들에서, 마이크로제어기는 데이터 스트림들 및 무선 통신을 관리한다. OBD 커넥션(212)은 사용자들이 동시에 다수의 OBD 커넥션 모듈들을 사용하는 것을 가능하게 만들도록 차량 내로 플러깅되는 수형 커넥터의 대향 단부에 표준 암형 OBD 커넥터를 포함할 수 있다. OBD 커넥션은 차량의 제어기 영역 네트워크(CAN) 버스와 결합될 수 있다.
통신 인터페이스(214)는 코파일럿 디바이스(106)가 장거리 및 단거리 통신을 수행할 수 있게 하는 무선 및/또는 유선 통신 송수신기 구성요소들을 포함할 수 있다. 이에 따라, 통신 인터페이스(212)는 무선 반송파 네트워크, 근거리 네트워크, 피어 투 피어 네트워크 등을 통해 데이터를 송신 또는 수신하기 위해 사용될 수 있다. 일부 실시예들에서, 통신 인터페이스(212)는 코파일럿 디바이스(106)가 네트워크와의 텔레통신 및 데이터 통신을 수행할 수 있게 하는 셀룰러 모뎀뿐만 아니라, 디바이스가 단거리 무선 통신 링크들을 통해 다른 디바이스들에 연결될 수 있게 하는 단거리 송수신기를 포함할 수 있다. 코파일럿 디바이스(106)는 신호 변환기들, 안테나들, 하드웨어 디코더들 및 인코더들, 그래픽 프로세서들, 범용 집적 회로 카드(universal integrated circuit card, UICC), eUICC, 및/또는 코파일럿 디바이스(106)가 애플리케이션들을 실행하고 텔레통신 및 데이터 통신 기능들을 제공할 수 있게 하는 기타 등등을 더 포함할 수 있다.
메모리(206)는 컴퓨터 저장 매체와 같은 컴퓨터 판독가능 매체들을 사용하여 구현될 수 있다. 컴퓨터 판독가능 매체들은 적어도 두 가지 유형들의 컴퓨터 판독가능 매체들, 즉, 컴퓨터 스토리지 매체들 및 통신 매체들을 포함한다. 컴퓨터 스토리지 매체들은 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체들을 포함한다. 컴퓨터 저장 매체는, 비제한적인 예시로서, RAM, DRAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 광학적 저장장치, 자기적 카세트, 자기적 테이프, 자기적 디스크 저장장치 또는 다른 자기적 저장 디바이스들, 또는 컴퓨팅 디바이스에 의한 액세스를 위해 정보를 저장하는 데에 이용될 수 있는 임의의 다른 비송신 매체를 포함한다. 그에 반해서, 통신 매체는 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터를 반송파와 같은 변조 데이터 신호 또는 다른 송신 메커니즘들 내에 포함시킬 수 있다.
코파일럿 디바이스(106)의 하나 이상의 프로세서(204) 및 메모리(206)는 하나 이상의 소프트웨어 모듈로부터 기능을 구현할 수 있다. 이러한 소프트웨어 모듈들은 특정 작업들을 수행하거나 특정 데이터 유형들을 구현하기 위해 프로세서들(204)에 의해 실행되는 루틴들, 프로그램 명령어들, 객체들, 및/또는 데이터 구조들을 포함할 수 있다. 하나 이상의 소프트웨어 모듈은 이동을 개인 또는 업무 중 어느 하나와 관련된 것으로서 자동으로 추적 및 분류하는 마일세이버 모듈(214), 잠재적인 안전 위협들에 관한 정보를 캡처 및 로깅하는 안전 모듈(216), 하나 이상의 잠재적인 차량 문제를 결정하는 메커닉 모듈(mechanic module)(218), 및 차량의 기능들의 적어도 일부를 자동화하는 코파일럿 모듈을 포함할 수 있다.
마일세이버 모듈(214)은 이동을 개인 또는 업무 중 어느 하나와 관련된 것으로서 추적 및 분류하도록 구성될 수 있다. 일부 실시예들에서, 마일세이버 모듈(214)은 업무 또는 개인 추적 이벤트의 표시를 수신한다. 예를 들어, 코파일럿 디바이스(106)는 클라이언트 디바이스(202)와 통신할 수 있다. 이러한 예에서, 사용자는 승차 호출 서비스(예를 들어, Uber, Lyft 등)를 위해 일할 수 있고, 클라이언트 디바이스(202)는 그 승차 호출 서비스를 위해 모바일 애플리케이션과 상호작용하기 위해 사용자에 의해 독립적으로 사용될 수 있다. 이러한 예에서, 승차 요청이 수락되었다고 결정 시, 승차 호출 서비스(또는 위젯 또는 확장)와 연관된 모바일 애플리케이션은 클라이언트 디바이스(202)가 업무 이벤트가 시작하였음을 코파일럿 디바이스(106)에 나타내게 할 수 있다. 그 후, 코파일럿 디바이스(106)는 (예를 들어, 데이터 파일에 첨부된 타임스탬프 또는 마커를 통해) 업무 이벤트의 시작을 나타낼 수 있다. 유사하게, 코파일럿 디바이스는 또한, 업무 이벤트의 종료의 표시를 수신할 수 있다. 또한, 마일세이버 모듈(214)은 OBD 커넥션(107)을 통해 규칙적인 간격들로 차량으로부터 주행거리계 데이터를 획득한다. 주행거리계 정보는 업무 이벤트의 시작과 종료 양자에서 결정될 수 있다. 업무 이벤트의 시작과 종료에서의 주행거리계 정보 간의 차이는 업무 이벤트와 연관된 마일의 양인 것으로 결정된다. 그 후, 업무 이벤트들 간의 주행거리계 정보 간의 차이는 개인 이동과 연관된 마일의 양인 것으로 결정된다. 이러한 방식으로, 마일세이버 모듈(214)은 사용자 개입 없이 정확한 방식으로 업무 및 개인 마일리지 양자를 추적한다. 일부 실시예들에서, 마일세이버 모듈(214)은 업무 및/또는 개인 이동 세부사항들의 로그를 클라이언트 디바이스(202)에 또는 또 다른 디바이스에 제공할 수 있다.
안전 모듈(216)은 잠재적 안전 위협들에 관한 정보를 캡처하고 로깅하도록 구성될 수 있다. 일부 실시예들에서, 안전 모듈(216)은 하나 이상의 이벤트를 검출 시 카메라들(208)로부터 비디오를 캡처할 수 있다. 이러한 이벤트들은 차량과의 충돌 또는 충격, 차량 도어의 개방, 모션 검출기의 활성화, 또는 (예를 들어, OBD 커넥션(107)을 통한) 임의의 다른 적합한 이벤트를 포함할 수 있다. 이벤트의 검출 시, 안전 모듈(216)은 카메라(208)로부터 코파일럿 관리 컴퓨터(118)로 비디오 또는 이미지들을 캡처하고 송신할 수 있다. 비디오 또는 이미지들은 타임스탬프와 연관될 수 있다.
메커닉 모듈(218)은 하나 이상의 잠재적인 차량 문제를 결정하도록 구성될 수 있다. 일부 실시예들에서, 메커닉 모듈(218)은 차량에 대한 상태 정보를 포함하는 차량 정보를 OBD 커넥션(107)을 통해 수신한다. 일부 실시예들에서, OBD 커넥션(107)을 통해 수신된 신호들은 신호가 수신되는 차량의 결정된 유형에 기초하여 해석될 수 있다. 예를 들어, 코파일럿 디바이스는 코파일럿 디바이스(106)가 설치된 차량의 유형의 표시를 저장할 수 있다. 차량으로부터 신호를 수신 시, 메커닉 모듈(218)은 차량 유형에 기초하여 상태 맵핑 내의 특정 상태들에 수신된 신호의 부분들을 맵핑할 수 있다. 메커닉 모듈(218)은 상태 정보를 클라이언트 디바이스(202)로 송신할 수 있다.
코파일럿 모듈(220)은 차량의 기능들의 적어도 일부를 자동화하도록 구성될 수 있다. 일부 실시예들에서, 코파일럿 모듈(220)은 카메라(208)로부터의 비디오 및/또는 이미지, 센서(210)로부터 수집된 데이터, 및 OBD 커넥션(107)으로부터 수집된 차량 데이터, 또는 다른 적합한 데이터를 포함하는 다양한 데이터를 획득할 수 있다. 그 후, 수집된 데이터는 데이터가 수집된 시간에 기초하여 데이터가 정렬되는 단일 데이터 파일로 조합된다. 일련의 이들 데이터 파일들이 생성될 수 있다. 코파일럿 모듈(220)은 이들 데이터 파일들을 추가 처리를 위해 코파일럿 관리 컴퓨터(118)에 제공할 수 있다. 일부 실시예들에서, 코파일럿 모듈(220)은 제공된 데이터에 대해 트레이닝되었던 머신 러닝 모델을 수신할 수 있다. 이들 실시예들의 적어도 일부에서, 트레이닝된 머신 러닝 모델은 다양한 차량 기능들을 자동화하기 위해 저장되고 사용될 수 있다. 예를 들어, 머신 러닝 모델은 대응하는 센서 데이터뿐만 아니라 취해진(OBD 커넥션(107)을 통해 수집된 차량 데이터를 통해 검출된) 다양한 사용자 액션들에 대해 트레이닝될 수 있다. 예시로서, 본 시스템은 사용자가 특정 광 레벨 임계치에서 차량 헤드라이트를 활성화시킴을 검출할 수 있다. 이러한 예에서, 대응하는 센서 데이터를 수신 시, 코파일럿 디바이스는 사용자가 정상적으로 취할 조치를 자동으로 취할 수 있다. 이는 코파일럿 디바이스(106)에 의해 통상적으로 검출되는 OBD 커넥션에 신호를 복제하는 것을 수반할 수 있다.
클라이언트 디바이스(202)는 본원에서 설명된 바와 같은 코파일럿 디바이스(106) 또는 코파일럿 관리 컴퓨터(118) 중 적어도 하나와 상호작용할 수 있는 임의의 개인용 디바이스일 수 있다. 클라이언트 디바이스(202)는 프로세서 및 컴퓨터 판독가능 메모리뿐만 아니라 통신 인터페이스(216)를 포함할 수 있다. 클라이언트 디바이스(202)의 컴퓨터 판독가능 메모리는 클라이언트 디바이스(202)와 코파일럿 디바이스(106) 및/또는 코파일럿 관리 컴퓨터(118) 간의 상호작용을가능하게 하는 모바일 애플리케이션(218)을 포함할 수 있다. 클라이언트 디바이스(202) 상에서의 모바일 애플리케이션(218)의 실행은 클라이언트 디바이스(202)로 하여금 모바일 애플리케이션들(218)과 연관된 그래픽 사용자 인터페이스(GUI)를 인스턴스화하게 할 수 있다.
모바일 애플리케이션(224)은 클라이언트 디바이스(202)의 사용자가 코파일럿 디바이스(106)와 상호작용할 수 있게 할 수 있다. 예를 들어, 각 통신 인터페이스들(222 및 216)을 통해 코파일럿 디바이스(106)와 클라이언트 디바이스(202) 간에 통신 세션이 확립될 수 있다. 일부 실시예들에서, 모바일 애플리케이션(224)은 코파일럿 관리 컴퓨터(118) 상에서 구현되는 하나 이상의 모듈을 통해 제공되는 기능에 대한 액세스를 사용자에게 제공할 수 있다.
코파일럿 관리 컴퓨터(118)는 클라이언트 디바이스(202) 상에 설치된 모바일 애플리케이션(224) 및 코파일럿 디바이스(106)에 대한 백엔드 지원을 제공하는 컴퓨터 또는 컴퓨터들의 집합일 수 있다. 코파일럿 관리 컴퓨터(118)는 코파일럿 디바이스(106)로부터 데이터를 수신하고, 그 데이터의 적어도 일부를 백엔드 데이터 저장소(226)에 저장한다. 수신되는 데이터는 비디오 데이터, 차량 정보, 및 센서 데이터를 포함할 수 있다. 백엔드 데이터 저장소(226)에 저장된 데이터는 코파일럿 관리 컴퓨터(118) 또는 서드파티 엔티티에 의해 소비될 수 있다. 일부 실시예들에서, 코파일럿 디바이스(106)로부터 코파일럿 관리 컴퓨터(118)에서 수신된 데이터의 적어도 일부는 적어도 일부 기능을 자동화하기 위해 그 후 코파일럿 디바이스(106) 상에서 구현될 수 있는 머신 러닝 모델을 트레이닝하기 위해 사용된다.
모듈들(214-220) 각각이 코파일럿 디바이스(106) 상에서 구현되는 것으로 도시되어 있지만, 대신에 그러한 모듈들과 관련하여 설명된 기능의 적어도 일부, 또는 모듈들 자체가 코파일럿 관리 컴퓨터(118) 상에서 구현될 수 있다는 점에 유의한다.
도 3은 적어도 일부 실시예들에 따른 코파일럿 디바이스 내에 포함될 수 있는 다수의 예시적인 하드웨어 구성요소들의 블록도를 도시한다. 도시된 바와 같이, 하드웨어 구성요소들은 시스템 온 칩(SOC)(302)를 포함할 수 있다. 적합한 SOC(302)의 일부 비제한적인 예들은 BCM2837B0 시스템 온 칩에 기초한 Raspberry Pi 3A+ 기판을 포함할 수 있다. 하드웨어 구성요소들은 SOC(302)에 통신가능하게 결합된 다수의 구성요소들을 포함할 수 있다.
SOC(302)는 클라이언트 디바이스 또는 코파일럿 관리 컴퓨터와의 통신을 가능하게 하기 위해 무선 인터페이스(304)와 통신가능하게 결합된다. 무선 인터페이스(304)는 단거리 통신을 구현하기 위한 모듈들(예를 들어, 마크 WI-FI®또는 BLUETOOTH®하에서 무선 표준들을 준수하는 모듈들) 및 장거리 통신을 구현하기 위한 모듈들을 포함할 수 있다.
SOC(302)는 차량 운전자에게 정보를 제공할 뿐만 아니라 운전자 오디오 입력을 수신하기 위해 오디오 인터페이스(306)와 통신가능하게 결합된다. 오디오 인터페이스(306)는 증폭기들(Amp) 및 스피커들과 같은 오디오 출력 구성요소들뿐만 아니라 스테레오 마이크로폰과 같은 오디오 입력 구성요소들을 포함할 수 있다.
SOC(302)는 다수의 카메라 디바이스들을 포함하는 카메라 인터페이스(308)와 통신가능하게 결합된다. 특히, 카메라 인터페이스(308)는 적어도 차량 내부의 비디오 또는 영상을 캡처하는 내부 카메라(도 3의 내부 캠) 및 차량 앞 외부의 비디오 또는 영상을 캡처하는 외부 카메라(도 3의 외부 캠)을 포함한다. 일부 실시예들에서, 카메라 인터페이스는 다수의 외부 카메라들을 포함할 수 있다. 예를 들어, 카메라 인터페이스(308)는 편심 스테레오 카메라들을 포함할 수 있다. 이 예에서, 카메라 인터페이스(308)는 외부 카메라의 각도와 상이한 각도로부터 비디오 이미지를 캡처할 수 있는 좌측 및 우측 스테레오 카메라들을 포함할 수 있다. 일부 실시예들에서, 스테레오 카메라들을 통해 캡처된 비디오 또는 이미지들은 신경망 프로세서(예를 들어, Mydriad X)를 사용하여 처리될 수 있다. 신경망 프로세서는 인간의 뇌에 맞춰 모델링되는 컴퓨팅 프로세서 유닛(CPU)이다. 이러한 실시예들은 처리되는 비디오 및 이미지들에 대해 인공 지능 기능들(예를 들어, 객체 인식)을 수행하는 데 필요한 자원들을 상당히 감소시킨다. 일부 실시예들에서, 카메라 인터페이스(308)의 다수의 카메라들은 상이한 수단들을 사용하여 SOC(302)에 결합될 수 있다. 예를 들어, 하나 이상의 내부 카메라는 USB를 통해 SoC에 결합될 수 있는 반면, 하나 이상의 외부 카메라들은 MIIPI CSI를 통해 SoC에 결합될 수 있다.
SOC(302)는 추가 메모리(310)와 통신가능하게 결합된다. 메모리(310)는 휘발성 및 비휘발성 메모리 양자를 포함하여, 임의의 적합한 컴퓨터 판독가능 매체를 포함할 수 있다. 비제한적인 예로서, 추가 메모리(310)는 플래시 메모리 또는 동적 랜덤 액세스 메모리(DRAM)를 포함할 수 있다. 일부 실시예들에서, 추가 메모리는 SD(secure digital) 카드와 같은 착탈식 메모리 스토리지를 포함할 수 있다.
SOC(302)는 다수의 센서들(312)과 통신가능하게 결합된다. 예를 들어, 다수의 센서들(312)은 온도 센서, 실시간 클록(real-time clock, RTC), 관성 측정 유닛(inertial measurement unit, IMU), 또는 임의의 다른 적합한 센서를 포함할 수 있다. IMU는 가속도계들, 자이로스코프들, 및 때때로 자력계들의 조합을 사용하여, 신체의 특정 힘, 각속도, 및 때때로 신체의 배향을 측정 및 보고하는 임의의 전자 디바이스일 수 있다.
SOC(302)는 전력을 코파일럿 디바이스(106)에 제공하는 전력 모듈(314)과 통신가능하게 결합된다. 전력 모듈(314)은 코파일럿 디바이스(106)에 제공되는 전력을 관리하는 전력 관리 집적 회로(power management integrated circuit, PMIC)를 포함할 수 있다. 일부 실시예들에서, 도 1과 관련하여 설명된 OBD 커넥션(107)과 같은 OBD 커넥션으로부터 코파일럿 디바이스(106)에 전력이 공급될 수 있다. PMIC는 전력 USB 코드를 통해 OBD 커넥션에 연결될 수 있다. 일부 실시예들에서, 전력 모듈(314)은 배터리 또는 다른 백업 전원을 포함할 수 있다. 일부 경우들에서, 배터리는 OBD 커넥션으로부터의 전력으로 충전될 수 있고, 코파일럿 디바이스(106)가 OBD 커넥션으로부터 연결 해제될 때, 코파일럿 디바이스(106)에 전력을 제공할 수 있다.
SOC(302)는 상태 표시자들을 출력하는 광 출력 모듈(316)과 통신가능하게 결합된다. 광 출력 모듈(316)은 발광 다이오드(light-emitting diode, LED) 드라이버를 포함할 수 있다. 일부 실시예들에서, 광 출력 모듈(316)은 다수의 상이한 종류의 LED들을 포함할 수 있다. 예를 들어, 광 출력 모듈(316)은 IR 광으로 탑승자들을 조명할 수 있는 적외선(IR) LED들을 포함할 수 있다. 또 다른 예에서, 광 출력 모듈(316)은 사용자에게 상태 표시를 제공하는 적녹청(RGB) 광 LED들을 포함할 수 있다. 일부 실시예들에서, LED 구성요소들은 SOC(302)의 핀들(예를 들어, GPIO 핀들)에 의해 제어된다.
SOC(302)는 GNSS(Global Navigation Satellite System) 모듈(318)과 통신가능하게 결합된다. GNSS 모듈은 SOC(302)에 위치 데이터를 제공한다.
하나의 비제한적인 예에서, 코파일럿 디바이스(106)의 SOC(302)는 Raspberry Pi(예를 들어, 임베드된 Linux 기판)에 대해 구축된 Raspbian이라고 불리는 Debian 기반 Linux distro를 실행한다. 다른 버전들에서, Distro는 Yocto 프로젝트를 사용하여 구성될 수 있다. 일부 버전들에서, 로딩된 스크립트들(예를 들어, 파이썬 스크립트들)은 카메라, 썸네일, 가비지 콜렉터, 또는 서버 스크립트들 중 하나 이상을 포함할 수 있다. 일부 버전들에서, 스크립들은 다양한 것을 가능하게 하는 시스템화된 서비스들로서 실행되거나 관리된다. 이러한 스크립트들이 실행하는 다양한 APT 및 pip 패키지들 외에, 코드 디플로이먼트 프로세스는 다양한 Linux 데몬 소프트웨어 및 툴들을 구성하는 것을 포함한다. Hostapd 구성은 코파일럿 디바이스(106)가 클라이언트 디바이스가 연결할 수 있는 자신의 무선 네트워크를 브로드캐스팅하는 것을 가능하게 한다. 일부 버전들에서, bluez.service 또는 rfcomm 규칙들은 OBD 커넥션과 코파일럿 디바이스(106) 간의 커넥션을 구성하도록 설정된다.
도 4는 실시예들에 따라 구현될 수 있는 예시적인 코파일럿 디바이스의 여러 다양한 도면들을 도시한다. 특히 더, 도 4a는 예시적인 코파일럿 디바이스의 등각 상면도를 도시한다. 도 4b는 예시적인 코파일럿 디바이스의 등각 측면도를 도시한다. 도 4c는 예시적인 코파일럿 디바이스의 등각 저면도를 도시한다. 도 4d는 예시적인 코파일럿 디바이스의 등각 사시도를 도시한다. 도 4에 도시된 예시적인 코파일럿 디바이스(106)는 도 1과 관련하여 설명된 코파일럿 디바이스(106)의 예이다.
예시적인 코파일럿 디바이스(106)는 메인 하우징(402)을 포함한다. 메인 하우징(402)은 기존 차량(예를 들어, wndrh 차량, 또는 구매되어 대리점으로부터 주행된 차량)에 결합된다. 메인 하우징(402)은 내부 카메라 어셈블리(404) 및 외부 카메라 어셈블리(406)에 결합된다. 내부 카메라 어셈블리(404)는 적어도 하나의 카메라를 포함한다. 외부 카메라 어셈블리(406)는 나이트 비전을 가능하게 하는 하나 이상의 추가 카메라(예를 들어, 2개, 3개 또는 그 이상의 카메라들) 및 하나 이상의 적외선 발광 다이오드(LED)들을 포함한다.
도 5는 예시적인 코파일럿 디바이스의 등각 분해조립 사시도를 도시한다. 특히 더, 도 5는 메인 하우징(402), 내부 카메라 어셈블리(404), 및 외부 카메라 어셈블리(406) 각각의 분해조립도들을 도시한다. 도 5에 도시된 바와 같이, 메인 하우징(402), 내부 카메라 어셈블리(404), 및 외부 카메라 어셈블리(406) 각각은 힌지(502)를 통해 연결될 수 있다.
메인 하우징(402) 및 카메라 어셈블리들(404 및 406)은 메인 하우징(402)이 차량에 결합된 후에 메인 하우징에 관한 카메라 어셈블리들(404 및 406)의 각도 조정을 가능하게 하기 위해 서로 힌지식으로 결합된다. 일부 버전들에서, 카메라 어셈블리들(404 및 406)은 각 메인 하우징(402)이 내부에 장착된 다수의 상이한 차량들에 카메라 어셈블리들(404 및 406)을 장착하는 것을 가능하게 하기 위해 메인 하우징(402)에 분리가능하게 그리고 힌지식으로 결합된다. 예를 들어, 힌지(502)는 메인 하우징(402)의 제1 구성요소 및 카메라 어셈블리(404 또는 406)의 제2 구성요소 중 하나 이상에 의해 정의될 수 있으며, 제1 및 제2 구성요소들은 서로 분리가능하게 결합된다(예를 들어, 스냅들, 자석들, 핀들 등). 제1 및 제2 구성요소들은 사용자가 임의의 와이어들 또는 와이어 단자들을 연결 또는 연결 해제할 필요 없이 카메라어셈블리들(404 또는 406)과 메인 하우징(404 및 406) 사이에서 데이터 및 전력을 전송하는 것을 가능하게 하는 대응하는 전기 콘택트들을 갖는다. 일부 실시예들에서, 코파일럿 디바이스(106)는 외부 와이어들이 없을 수 있다는 점에 유의한다.
일부 실시예들에서, 메인 하우징(402), 내부 카메라 어셈블리(404), 및 외부 카메라 어셈블리(406) 각각은 내부 카메라 어셈블리(404)가 외부 카메라 어셈블리(406)와 독립적으로 회전되거나 그 외 조정될 수 있도록 하는 방식으로 힌지(502)를 통해 연결될 수 있다. 힌지(502)에 대한 회전 마찰은 힌지 내의 마찰력을 증가 또는 감소시키는 힌지의 구성요소(예를 들어, 힌지의 중심을 통해 축방향으로 이어지고 6-32 나이록(Nylock) 너트로 제 위치에 홀딩되는 6-32 소켓 헤드 캡 나사(socket head cap screw, SHCS))의 조작을 통해 조정가능하게 된다. 일부 버전들에서, 외부 카메라 어셈블리(406) 내의 하나 이상의 외향 카메라의 배향에 관련된 회전 마찰은 베어링 표면으로서 짝을 이루는 스틸 및 실리콘 와셔들을 통해 증가되고 조절된다. 일부 실시예들에서, 스틸 와셔들은 힌지의 메인 하우징 측에 부착되고, 실리콘 와셔들은 힌지의 외부 카메라 어셈블리 측에 부착된다. 내부 카메라 어셈블리(404) 내의 하나 이상의 내향 카메라의 배향과 관련된 회전 마찰은 나일론 와셔를 끼워맞춤된 플라스틱(예를 들어, 멀티젯 퓨전 나일론 또는 폴리에틸렌 테레프탈레이트 글리콜(PETG)을 사용하여 3D 인쇄된 플라스틱)과 정합시킴으로써 감소되고 조절된다. 나일론 와셔들은 내부 카메라 어셈블리(404) 봉입체의 외부에 압입된다. 일부 버전들에서, 힌지(502)는 핀 힌지이다.
코파일럿 디바이스(106)의 메인 하우징(402) 또는 카메라 어셈블리들(404 및 406) 중 하나 이상은 로직 실행 회로부(예를 들어, 도 3과 관련하여 설명된 하드웨어 구성요소들)를 포함한다. 메인 하우징(402) 또는 카메라 어셈블리들(404 및 406) 중 하나 이상은 전원(예를 들어, 외부 전원으로부터 배터리를 충전하기 위한 배터리 충전기, 또는 차량 내의 전원에 결합되는 전력 변환기)을 포함한다. 일부 실시예들에서, OBD 커넥션은 또한, 코파일럿 디바이스에 대한 전력이 온보드 진단 버스를 통해 차량으로부터 인출된다는 점에서 전력원으로서 작용할 수 있다. 일부 실시예들에서, RGB LED들은 사용자에게 디바이스 상태 또는 다른 정보(예를 들어, 비디오 데이터의 평가에 기초한 레인 드리프트 알림들, 도난 방지, 또는 침입 알림)를 통신하는 것을 가능하게 하기 위해 메인 하우징 내에 배치될 수 있다. 일부 실시예들에서, 코파일럿 디바이스(106)는 운전자 주의 산만의 감소를 가능하게 하기 위해 임의의 디스플레이 또는 사용자 인터페이스 제어(예를 들어, 촉각 버튼 또는 다른 제어)가 없다.
메인 하우징 리드는 메인 하우징 본체에 결합된다(예를 들어, 2 M2.5 x 10mm SHCS 및 클립들을 사용하여 결합된다). 메인 하우징의 리드는 코파일럿 디바이스(106)를 차량에 결합하는 것을 가능하게 하는 하나 이상의 마운트(예를 들어, 차량의 윈드실드에 코파일럿 디바이스(106)를 장착하는 폼 테이프(foam tape)와 같은 레이저 컷 피스 3M VHB(Very High Bond) 접착제)를 포함할 수 있다. 접착제의 양은 차량으로부터의 장착 및 제거를 용이하게 하고 윈드실드에 장착될 때 공기 기포를 감소시키고 로고를 윈드실드를 통해 가시적이게 남기도록 최소화된다.
내부 카메라 어셈블리(404)는 전방으로(예를 들어, 차량의 뒷 창문 밖으로) 이동할 때 차량의 이동 방향과 반대로 차량 내부 그리고 또한 차량 외부 활동의 비디오를 레코딩하는 것을 가능하게 하는 하나 이상의 후방 내부 카메라를 하우징한다. 후방 카메라는 광각 카메라일 수 있다. 일부 버전들에서, 내부 카메라, 열 패드, 및 히트 싱크는 카메라 어셈블리(404) 내부에 장착되고, 축 6-32 SHCS와 같은 힌지(502)의 구성요소에 의해 고정된다. 와셔들은 내부 카메라 어셈블리(404)의 봉입체의 측면들 상에 장착된다.
외부 카메라 어셈블리(406)는 전방으로 이동할 때 차량의 이동 방향으로 차량 외부 활동의 비디오를 레코딩하는 것을 가능하게 하는 하나 이상의 전방 외부 카메라를 하우징한다. 일부 실시예들에서, 외부 카메라 어셈블리(406)의 외부 카메라 하우징은 카메라 하우징의 전면을 정의하는 앞벽(예를 들어, 아크릴 벽)을 포함한다. 앞벽은 전방 외부 카메라들에 반투명하거나 투명하다. 앞벽은 그 둘레 주위에 기계가공된 립을 가질 수 있으며, 립은 앞벽을 카메라 하우징의 본체에 결합하는 것을 가능하게 하기 위해 카메라 하우징의 본체와 인터페이싱한다. 카메라 하우징의 내부는 광 간섭을 제한하기 위해 어두운 색(예를 들어, 흑색)으로 페인팅되거나 그 외 컬러링될 수 있다. 각 카메라에 대한 마운트는 앞벽의 내부 표면과 같은 카메라 하우징의 내부에 결합(예를 들어, 접착)된다. 일부 버전들에서, 카메라 하우징의 하나 이상의 후면은 모든 탑승자들의 얼굴들에 걸친 적외선 광의 확산을 최대화하기 위해 각 각도들로 배향된 각 적외선 LED에 대한 홀(예를 들어, 850 nm 적외선 LED들에 맞는 4개의 홀들)을 규정한다. 카메라 하우징에 의해 규정된 홀들은 외부 카메라 어셈블리(406)로부터 메인 하우징(402)으로 와이어들을 통과시키는 것을 가능하게 하기 위해 카메라 하우징 근처의 상부에 위치될 수 있다.
일부 실시예들에서, 카메라 하우징 또는 메인 하우징 중 하나 이상은 하나 이상의 하우징이 히트 싱크로서 작용하도록 하는 것을 가능하게 하는 재료들을 포함한다. 예를 들어, 하나 이상의 하우징은 하나 이상의 하우징이 수동 히트 싱크로서 작용하는 것을 가능하게 하기 위해 양극산화 처리된 알루미늄으로 형성될 수 있다.
도 6은 실시예들에 따라 구현될 수 있는 분리 가능한 베이스를 갖는 예시적인 코파일럿 디바이스의 다수의 도면들을 도시한다. 일부 실시예들에서, 코파일럿 디바이스는 차량에 장착되는 베이스 구성요소(604)뿐만 아니라 하드웨어 구성요소들의 적어도 일부를 포함하는 메인 하우징(602)으로 구성될 수 있다.
적어도 일부 실시예들에서, 메인 하우징(602)은 베이스 구성요소(604)에 착탈가능하게 연결될 수 있다. 예를 들어, 메인 하우징(602) 및 베이스 구성요소(604)는 수형 데이터 포트 커넥터(606), 및 대응하는 암형 데이터 포트 커넥터(610) 및 래치 임프레션들(612)에 연결되는 고정 래치들(608)을 통해 연결가능할 수 있다. 이는 베이스 구성요소(604)가 차량 내에 반영구적으로 장착될 수 있고 메인 하우징이 차량으로부터 마음대로 제거될 수 있도록 메인 하우징(602)이 베이스 구성요소(604)에 착탈가능하게 연결될 수 있게 한다. 이는 바람직하게는 코파일럿 디바이스의 사용자가 차량의 도난을 방지하기 위해 차량으로부터 메인 하우징을 제거할 수 있게 할 뿐만 아니라, 설치된 베이스 구성요소(604)를 각각 포함하는 다수의 차량들과 함께 단일 메인 하우징(602)을 사용할 수 있게 한다.
도 6에 도시된 바와 같이, 메인 하우징(602)은 상기한 도 3과 관련하여 설명된 다수의 하드웨어 구성요소들을 포함할 수 있다. 예를 들어, 메인 하우징(602)의 전방 측(예를 들어, 차량의 앞을 향하는 측)은 차량 앞 외부로부터 비디오 또는 이미지들을 캡처하도록 구성된 다수의 외부 카메라들(614)(a-c)을 포함할 수 있다. 외부 카메라들(614)(a-c)은 상기한 도 3과 관련하여 설명된 외부 카메라 및 스테레오 카메라들(L 및 R)에 대응할 수 있다. 다수의 전방 카메라들(614)(a-c)의 사용은 코파일럿 디바이스가 단일 카메라의 사용을 통해 그 외 가용하지 않을 수 있는 다양한 깊이 감지 기술들을 사용할 수 있게 한다는 점에 유의해야 한다.
또 다른 예에서, 메인 하우징(602)의 후방 측(예를 들어, 차량의 내부를 향하는 측)은 차량 내의 한 명 이상의 사람(예를 들어, 운전자 및/또는 탑승자들)을 포함하도록, 차량의 내부의 비디오 또는 이미지들을 캡처하도록 구성된 내부 카메라(616)를 포함할 수 있다. 내부 카메라(616)는 상기한 도 3과 관련하여 설명된 내부 카메라에 대응할 수 있다. 일부 실시예들에서, 메인 하우징(602)의 후방 측은 또한, 차량의 내부 내로 적외선 광을 방출하도록 구성된 IR LED 이미터들(618)(a-b)을 포함할 수 있다. 이러한 실시예들에서, 내부 카메라(616)는 이러한 적외선 광을 사용하여 비디오 또는 이미지들을 캡처할 수 있어, 이러한 영상이 자연광이 거의 없는 상황들에서(예를 들어, 밤에) 캡처될 수 있게 한다.
일부 실시예들에서, 메인 하우징(602)은 포트들(620(a-b)) 또는 추가 전자 디바이스들, 모듈들, 및/또는 센서들이 코파일럿 디바이스에 연결될 수 있게 하는 다른 커넥션 수단들을 포함할 수 있다. 이들 포트들(620)(a-b)을 통해 수신되는 데이터는 코파일럿 디바이스에 포함된 센서들로부터 수신되는 데이터와 유사한 방식으로 처리될 수 있다. 코파일럿 디바이스는 또한, 코파일럿 디바이스가 파워 온 또는 파워 오프되게 하는 파워 버튼(622)을 포함할 수 있다.
도 7은 실시예들에 따른 예시적인 코파일럿 디바이스를 통해 데이터를 처리하기 위한 예시적인 프로세스를 나타내는 흐름도를 도시한다. 프로세스(700)는 논리 흐름도로서 도시되며, 이의 각 동작은 하드웨어, 컴퓨터 명령어들, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 나타낸다. 컴퓨터 명령어들의 맥락에서, 동작들은 하나 이상의 프로세서에 의해 실행될 때, 열거된 동작들을 수행하는 하나 이상의 컴퓨터 판독가능 저장 매체 상에 저장된 컴퓨터 실행가능 명령어들을 나타낸다. 일반적으로, 컴퓨터 실행가능 명령어들은 특정 기능들을 수행하거나 특정 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 구성요소들, 데이터 구조들 등을 포함한다. 동작들이 설명되는 순서는 제한으로서 해석되는 것으로 의도되지 않고, 임의의 수의 설명된 동작들은 이러한 프로세스 및 본원에서 설명되는 임의의 다른 프로세스들을 구현하기 위해 임의의 순서로 그리고/또는 병렬로 조합되거나 생략될 수 있다.
프로세스(700)의 일부 또는 전부(또는 본원에서 설명되는 임의의 다른 프로세스들, 또는 변형들, 및/또는 이들의 조합들)은 실행 가능한 명령들로 구성된 하나 이상의 컴퓨터 시스템의 제어 하에 수행될 수 있고, 코드(예를 들어, 실행 가능한 명령들, 하나 이상의 컴퓨터 프로그램 또는 하나 이상의 어플리케이션)로서 구현될 수 있다. 적어도 하나의 실시예에 따르면, 도 7의 프로세스(700)는 도 1에 도시된 코파일럿 시스템의 하나 이상의 요소에 의해 수행될 수 있다. 예를 들어, 프로세스(700)는 도 1과 관련하여 설명된 바와 같은 코파일럿 디바이스(106)에 의해 수행될 수 있다. 코드는 예를 들어, 하나 이상의 프로세서에 의해 실행가능한 복수의 명령을 포함하는 컴퓨터 프로그램의 형태로, 컴퓨터 판독가능한 저장 매체 상에 저장될 수 있다. 컴퓨터 판독가능 저장 매체는 비일시적일 수 있다.
블록(702)에서, 프로세스(700)는 데이터가 코파일럿 디바이스에 의해 수신되는 것을 포함한다. 일부 실시예들에서, 데이터는 (예를 들어, OBD 커넥션을 통해) 코파일럿 디바이스가 설치되는 차량으로부터 수신된 정보, 코파일럿 디바이스 내에 포함된 센서들, 및 코파일럿 디바이스 내에 포함된 카메라들을 포함할 수 있다. 일부 실시예들에서, 데이터는 일정하게 수신될 수 있다. 예를 들어, 코파일럿 디바이스는 디바이스가 전원에 연결되는 한(그것이 설치된 차량이 셧 오프될 때에도) 그것의 카메라들 중 하나 이상으로부터 비디오 데이터를 계속해서 수신할 수 있다. 데이터는 특정 이벤트들을 식별하기 위해 수신됨에 따라 처리될 수 있다. 일부 실시예들에서, 이는 특정 유형의 이벤트를 검출하기 위해 데이터로부터 식별된 하나 이상의 조건을 특정 유형의 이벤트를 나타내는 조건들과 비교하는 것을 수반한다.
결정 블록(704)에서, 프로세스(700)는 수신된 데이터로부터 식별된 하나 이상의 조건이 이러한 안전 이벤트를 나타내는 조건들과 매칭하는지 여부를 결정함으로써 안전 이벤트를 검출하는 것을 포함한다. 예를 들어, 코파일럿 디바이스는 잠재적인 안전 이벤트를 나타내는 하나 이상의 조건의 표시를 저장할 수 있다. 이러한 이벤트들은 비제한적인 예로서, 어떠한 키도 존재하지 않을 때 차량의 하나 이상의 도어의 개방(OBD 커넥션을 통해 수신되는 도어 개방 표시기 신호를 통해 검출됨), 차량이 전력을 공급받지 않을 때 차량의 움직임(충돌 또는 충격을 나타낼 수 있음), 유리 파손 사운드와 고도의 유사성을 공유하는 수신된 사운드 신호, 모션 검출기의 활성화, 또는 차량의 잠재적인 안전 위반의 임의의 다른 적합한 표시를 포함할 수 있다. 차량이 현재 꺼져 있는 경우에도 코파일럿 디바이스는 안전 이벤트들을 검출할 수 있다는 점에 유의한다.
블록(706)에서, 잠재적인 안전 이벤트를 검출 시(결정 블록(704)으로부터 "예"), 프로세스(700)는 잠재적인 안전 이벤트를 레코딩하는 단계를 포함한다. 이는 내부 카메라 및/또는 외부 카메라로부터 비디오를 캡처하는 것 및 현재 시간뿐만 아니라 다른 정보(예를 들어, 안전 이슈 유형)를 포함하도록 비디오를 수정하는 것을 수반할 수 있다. 그 후, 안전 이벤트(예를 들어, 수정된 비디오)의 레코드는 코파일럿 디바이스에 저장되고/되거나, 클라이언트 디바이스에 송신되고/되거나, 코파일럿 관리 컴퓨터에 송신된다. 안전 이벤트의 레코드는 곧바로 또는 나중 시점에 또 다른 전자 디바이스에 송신될 수 있다. 예를 들어, 안전 이벤트의 레코드는 이것이 다운로드될 때까지 코파일럿 디바이스 상에 저장될 수 있거나, 또는 이는 (예를 들어 안전 이벤트가 발생하고 있을 때) 실시간으로 또 다른 전자 디바이스에 송신될 수 있다. 어떠한 잠재적인 안전 이벤트도 검출되지 않는 경우, 프로세스는 안전 이벤트를 레코딩하지 않고 블록(708)으로 계속될 수 있다(결정 블록(704)으로부터 "아니오").
결정 블록(708)에서, 프로세스(700)는 수신된 데이터로부터 식별된 하나 이상의 조건이 이러한 업무 이벤트를 나타내는 조건들과 매칭하는지 여부를 결정함으로써 업무 이벤트를 검출하는 것을 포함한다. 예를 들어, 코파일럿 디바이스는 업무 이벤트를 나타내는 하나 이상의 조건의 표시를 저장할 수 있다. 이러한 이벤트들은 비제한적인 예로서, 클라이언트 디바이스 상에서 실행되는 모바일 애플리케이션으로부터 수신되는 업무 이벤트의 표시, 사용자에 의해 코파일럿 디바이스에 입력되는 수동 표시(예를 들어, 코파일럿 디바이스 상의 버튼 누름), 차량이 현재 업무 이벤트에 공통으로 결부된 루트를 취하고 있다는 결정(예를 들어, 택시 운전자가 현재 공항으로 운전 중인 것), 또는 운전자가 업무 이벤트에 관여한다는 임의의 다른 적합한 표시를 포함할 수 있다. 일부 실시예들에서, 업무 이벤트는 업무 이벤트 시작 및 업무 이벤트 종료 양자를 포함할 수 있다. 업무 이벤트를 검출하는 것은 업무 이벤트의 시작과 종료 - 이는 각각 상이한 조건들과 연관될 수 있음 - 양자를 검출하는 것을 수반할 수 있다.
블록(710)에서, 업무 이벤트를 검출 시(결정 블록(708)으로부터 "예"), 프로세스(700)는 업무 이벤트를 레코딩하는 단계를 포함한다. 이는 업무 이벤트 시작과 연관된 시간에 현재 주행거리계 판독치를 획득하고 레코딩하는 것뿐만 아니라 업무 이벤트 종료와 연관된 시간에 현재 주행거리계를 레코딩하는 것을 수반할 수 있다. 업무 이벤트는 타임스탬프, (예를 들어, GPS를 통한) 위치, 비디오, 또는 다른 데이터의 표시를 더 포함할 수 있다. 그 후, 레코딩된 업무 이벤트는 코파일럿 디바이스에 저장되고/되거나, 클라이언트 디바이스에 송신되고/되거나, 코파일럿 관리 컴퓨터에 송신된다. 일부 실시예들에서, 업무 이벤트의 레코드는 요청될 때 또는 실시간으로 또 다른 전자 디바이스에 송신된다. 어떠한 업무 이벤트도 검출되지 않는 경우, 프로세스는 업무를 레코딩하지 않고 블록(712)으로 계속될 수 있다(결정 블록(708)으로부터 "아니오").
결정 블록(712)에서, 프로세스(700)는 수신된 데이터로부터 식별된 하나 이상의 조건이 이러한 상태 업데이트 이벤트를 나타내는 조건들과 매칭하는지 여부를 결정함으로써 상태 업데이트 이벤트를 검출하는 것을 포함한다. 이러한 상황에서, 코파일럿 디바이스는 수신된 데이터에 기초하여 운전자 또는 차량의 상태를 결정할 수 있다. 각 상태는 특정 조건들과 연관될 수 있다. 다수의 유형의 상태들이 차량 및/또는 사용자와 연관될 수 있다.
예를 들어, 코파일럿 디바이스는 현재 차량이 위치된 펼쳐져 있는 도로와 연관된 속도 제한의 표시를 수신할 수 있다. 이러한 예에서, 코파일럿 디바이스는 또한, (예를 들어, OBD 커넥션을 통해) 차량이 이동하고 있는 현재 속도의 표시를 수신할 수 있다. 이러한 정보에 기초하여, 코파일럿 디바이스는 차량의 현재 속도가 도로의 현재 펼쳐져 있는 도로에 대한 속도 제한보다 크다고 코파일럿 디바이스가 결정하는 경우, 차량에 대한 속도 상태를 식별할 수 있다. 대안적으로, 코파일럿 디바이스는 차량의 현재 속도가 도로의 현재 펼쳐져 있는 도로에 대한 속도 제한보다 충분히 낮다고 결정 시, 차량에 대한 교통 정체 상태를 식별할 수 있다. 일부 경우들에서, 교통 정체 상태 결정은 차량의 현재 속도가 속도 제한보다 충분히 낮다는 결정뿐만 아니라 획득된 비디오 데이터에서의 하나 이상의 차량의 식별 정보를 필요로 할 수 있다.
제2 예에서, 코파일럿 디바이스는 차량과 연관된 하나 이상의 이슈의 표시를 수신할 수 있다. 예를 들어, 코파일럿 디바이스는 OBD 커넥션을 통해 코파일럿 디바이스에 송신되는 에러 코드를 수신할 수 있다. 이러한 예에서, 코파일럿 디바이스는 코파일럿 디바이스가 설치되는 차량의 특정 유형 또는 브랜드와 관련하여 저장된 맵핑에 기초하여 에러 코드를 발행 상태로 변환할 수 있다.
블록(714)에서, 상태 업데이트를 검출 시(결정 블록(712)으로부터 "예"), 프로세스(700)는 검출된 상태를 클라이언트 디바이스에 제공하는 단계를 포함한다. 예를 들어, 코파일럿 디바이스는 상태를 운전자의 모바일 디바이스로 송신할 수 있다. 그 후, 상태는 모바일 디바이스 상에서 실행되는 GUI를 통해 사용자에 제시될 수 있다. 어떠한 상태 업데이트 이벤트도 검출되지 않는 경우, 프로세스는 상태 업데이트를 레코딩하지 않고 블록(716)으로 계속될 수 있다(결정 블록(712)으로부터 "아니오").
블록(716)에서, 프로세스(700)는 수정된 비디오 파일을 생성하는 것을 포함한다. 이는 수신된 데이터를 코파일럿 디바이스에 포함된 하나 이상의 카메라에 의해 캡처된 비디오 파일에 첨부하는 것을 수반할 수 있다. 일부 경우들에서, 이는 수신된 데이터의 적어도 일부를 메타데이터로서 비디오의 영상에 첨부하는 것을 포함한다. 수신된 데이터는 데이터가 수신된 시간을 나타내는 타임스탬프와 연관될 수 있다. 이러한 방식으로, 다양한 유형의 데이터가 타임스탬프를 통해 정렬될 수 있다.
블록(718)에서, 프로세스(700)는 수정된 비디오 파일을 서버에 전달하는 것을 포함한다. 일부 실시예들에서, 서버는 도 1과 관련하여 설명된 바와 같은 코파일럿 관리 서버일 수 있다. 수정된 비디오 파일은 다양한 상이한 애플리케이션들에 의해 소비될 수 있다. 일부 실시예들에서, 서버는 수정된 비디오 파일을 머신 러닝 모델을 트레이닝하는 데 사용될 머신 러닝 모듈에 제공할 수 있다.
도 8은 실시예들에 따른 수정된 비디오 파일을 생성하고 제공하기 위한 예시적인 프로세스를 도시한다. 예시된 프로세스(800)에서, 정보(802)는 코파일럿 디바이스(106)에 통신가능하게 결합된 다수의 상이한 소스들로부터 코파일럿 디바이스(106)에 의해 수신될 수 있다. 정보(802) 는 다양한 정보 유형들을 포함할 수 있다.
일부 실시예들에서, 정보(802) 는 하나 이상의 센서(804)로부터 수신된 센서 데이터를 포함할 수 있다. 예를 들어, 정보(802)는 온도 센서(예를 들어, 온도계), 실시간 클록, 가속도계들, 자이로스코프들, 자력계들, 또는 임의의 다른 적합한 유형의 센서들로부터 획득되는 데이터를 포함할 수 있다. 이 정보는 OBD 커넥션(808)을 통해 수신될 수 있는 차량 데이터(806)를 포함한다. 차량 정보(806)는 주행거리계 정보, 속도계 정보, 에러 코드 정보, 또는 임의의 다른 적합한 차량 데이터를 포함할 수 있다.
일부 실시예들에서, 정보(802) 는 GNSS 또는 GPS 디바이스(812)로부터 획득되는 위치 정보(810)를 포함할 수 있다. 위치 정보(810) 는 주기적으로(예를 들어, 매 5 분마다) 획득될 수 있다.
일부 실시예들에서, 정보(802) 는 비디오 데이터를 포함할 수 있다. 비디오 데이터는 차량 앞으로부터 지향되는 외부 카메라(816)에 의해 캡처되는 외부 비디오(814)를 포함할 수 있다. 비디오 데이터는 또한, 차량 내부를 향해 지향되는 내부 카메라(820)에 의해 캡처되는 내부 비디오(818)를 포함할 수 있다.
다양한 소스들로부터 정보(802)를 수신 시, 코파일럿 디바이스(106)는 수신된 정보(802)를, 각 데이터가 수신되었던 시간에 기초하여 정렬되는 단일 데이터 파일로 컴파일할 수 있다. 일부 실시예들에서, 하나 이상의 데이터 조각이 비디오 파일에 첨부될 수 있다. 예를 들어, 데이터는 비디오의 영상에 메타데이터로서 추가될 수 있다. 데이터의 각 조각은 비디오 내의 특정 시간과 연관될 수 있어, 데이터는 비디오에서의 시간을 사용하여 동기화되게 된다. 이는 데이터 파일의 소비자가 이의 처리 동안 데이터를 정렬할 필요가 없다는 점에서 데이터가 훨씬 더 효율적인 방식으로 처리될 수 있게 한다.
그 후, 생성된 데이터 파일은 코파일럿 관리 컴퓨터(118)로 전달된다. 일부 실시예들에서, 데이터 파일은 코파일럿 디바이스(106)에 포함된 장거리 통신 수단을 통해 직접 네트워크(822)를 통해 코파일럿 관리 컴퓨터(118)에 제공된다. 일부 실시예들에서, 데이터 파일은 클라이언트 디바이스(824)를 프록시로서 사용하여 코파일럿 디바이스(106)에 포함된 단거리 통신 수단을 통해 코파일럿 관리 컴퓨터(118)에 제공된다. 이러한 실시예에서, 데이터 파일은 클라이언트 디바이스(824)로 송신되며, 그 후 이는 데이터 파일을 네트워크(822)를 통해 코파일럿 관리 컴퓨터(118)로 포워딩한다.
그 후, 코파일럿 관리 컴퓨터(118)는 하나 이상의 기능을 수행하기 위해 데이터 파일을 처리할 수 있다. 일부 실시예들에서, 코파일럿 관리 컴퓨터(118)는 특정 차량 기능들을 자동화하기 위해 데이터 파일을 (다른 코파일럿 디바이스들에 의해 제공되는 데이터 파일들과 함께) 사용한다. 이 프로세스는 도 9와 관련하여 아래에서 더 상세히 설명된다. 일부 실시예들에서, 하나 이상의 서비스가 수신된 데이터 파일에 기초하여 제공될 수 있다. 데이터 파일에 기초하여 제공될 수 있는 서비스들의 일부 비제한적인 예들이 아래에서 제공된다.
제1 예에서, 코파일럿 관리 컴퓨터(118)는 다수의 코파일럿 디바이스들로부터 수신되는 데이터 파일들로부터 교통 패턴들을 결정할 수 있다. 이러한 예에서, 코파일럿 관리 컴퓨터는 차량의 속도가 (예를 들어, 코파일럿 디바이스의 위치 및 게시된 속도 제한들의 맵핑에 기초하여) 코파일럿 디바이스가 현재 이동하고 있는 도로에 대한 게시된 속도 제한보다 상당히 더 낮다는 것을 나타내는 최근 데이터 파일을 코파일럿 디바이스로부터 수신할 수 있다. 이 예에서, 코파일럿 관리 컴퓨터(118)는 데이터 파일에서의 비디오에 대한 객체 인식을 수행하여 코파일럿 디바이스 주위의 다수의 차량들의 존재를 결정할 수 있다. 여러 차량들의 결정된 존재, 및 코파일럿 디바이스가 이동하고 있는 속도에 기초하여, 코파일럿 관리 컴퓨터(118)는 교통 정체 상태를 코파일럿 디바이스의 현재 위치와 연관시킬 수 있다. 코파일럿 관리 컴퓨터(118)는 다수의 코파일럿 디바이스들에 대한 교통 정체 위치들의 표시를 제공하여 이들 코파일럿 디바이스들과 연관된 운전자들이 교통 정체 위치들을 회피할 수 있게 한다. 일부 실시예들에서, 교통 정체 위치의 표시는 그 교통 정체 위치를 향해 이동하고 있는 것으로 결정된 코파일럿 디바이스에 제공될 수 있다.
또 다른 예에서, 코파일럿 관리 컴퓨터(118)는 다양한 차량들에 적절한 다수의 주차 공간 위치들을 식별할 수 있다. 이러한 예에서, 코파일럿 관리 컴퓨터(118)는 데이터 파일로 수신되는 비디오를 가용한 주차 공간을 식별하도록 처리할 수 있다. 이러한 주차 공간들은 (차량들을 식별하기 위한) 객체 인식뿐만 아니라 (차량들 간의 공간의 크기를 결정하기 위한) 깊이 감지 기법들을 사용하여 식별될 수 있다. 깊이 감지 기법들은 깊이 센서로부터 획득된 데이터를 사용할 수 있는 것으로 구상된다. 그러나, 이러한 깊이가 계산되어야 하는 거리가 주어지면, 종래의 구조화된 광 깊이 감지는 비효율적일 수 있다. 대신에, 코파일럿 디바이스는 다양한 주차된 차량들 간의 깊이(거리)를 결정하기 위해 상이한 각도들로부터 캡처된 비디오(예를 들어, 도 6의 스테레오 카메라들(614)(a-c)로부터 캡처된 비디오)를 비교할 수 있다. 이를 위해, 코파일럿 관리 컴퓨터(118)는 비디오 내의 특정 시간에 코파일럿 디바이스와 제1 주차 차량 뒤의 제1 지점 간의 거리뿐만 아니라 코파일럿 디바이스와 제2 주차 차량 앞의 제2 지점 간의 거리를 결정한다. 두 대의 주차 차량들 간의 거리는 두 계산된 거리들 및 코파일럿 디바이스에 대한 두 지점들 각각에 대한 각도(이는 비디오 이미지 내의 두 지점들의 위치에 기초하여 결정될 수 있음)를 사용하여 결정될 수 있다. 이러한 방식으로, 코파일럿 관리 컴퓨터(118)는 코파일럿 디바이스가 도로를 따라 주행함에 따라 주차 차량들 간의 공간들의 크기 및 위치에 기초하여 잠재적인 주차 공간들을 식별할 수 있다. 그 후, 코파일럿 관리 컴퓨터(118)는 장애물 위치들뿐만 아니라 임계 크기 미만인 잠재적인 주차 공간들의 저장된 맵핑에 기초하여 장애물들(예를 들어, 도로, 소화전, 주차 구역 없음 등)과 병치되는 임의의 잠재적인 주차 공간을 제거함으로써 유효한 주차 공간들을 식별한다. 유효한 주차 공간이 식별되면, 코파일럿 관리 컴퓨터(118)는 주차 공간 데이터를 (데이터 파일이 수신되었던 코파일럿 디바이스와 상이할 수 있는) 적어도 하나의 코파일럿 디바이스로 송신할 수 있다. 일부 실시예들에서, 코파일럿 관리 컴퓨터(118)는 주차 공간 데이터만을 주차 공간 내에 맞을 수 있는 차량에 설치된 코파일럿 디바이스에 제공한다. 예를 들어, 대형 차량 내에 설치된 코파일럿 디바이스에는 소형 차량 내에 설치된 코파일럿 디바이스보다 더 작은 주차 공간들의 리스트가 제공될 수 있다.
도 9는 실시예들에 따른 차량 기능을 자동화하기 위한 예시적인 프로세스를.도시한다. 예를 들어, 프로세스(900)는 코파일럿 디바이스(106), 코파일럿 관리 컴퓨터(118), 및 차량(902) 간의 상호작용들을 수반할 수 있다. 코파일럿 컴퓨터(106)와 코파일럿 관리 컴퓨터(118) 간의 상호작용들은 네트워크 커넥션을 통해 가능하게 될 수 있는 반면, 코파일럿 디바이스(106)와 차량 간의 상호작용은 OBD 커넥션(904)을 통해 가능하게 될 수 있다. 코파일럿 디바이스(106)는 통신가능하게 결합된 센서들 및 카메라들(906)을 사용하여 차량(902)에 대한 정보를 수집할 수 있다.
예시적인 프로세스(900)에 있어서, 950에서, 데이터가 코파일럿 디바이스(106)로부터 코파일럿 관리 컴퓨터(118)로 송신된다. 이러한 데이터를 생성하기 위한 예시적인 프로세스는 도 8과 관련하여 위에서 제공되었다. 일부 실시예들에서, 데이터는 다수의 상이한 사용자들 및/또는 차량들(902)과 연관된 다수의 상이한 코파일럿 디바이스들(106)로부터 수신될 수 있다. 코파일럿 관리 컴퓨터(118)에 의해 수신된 데이터는 머신 러닝 알고리즘(908)을 트레이닝하기 위해 사용될 수 있다. 예를 들어, 데이터의 제1 부분이 입력들로서 머신 러닝 알고리즘에 제공될 수 있고, 데이터의 제2 부분에 입력들로서 머신 러닝 알고리즘에 제공될 수 있다. 예시로서, 머신 러닝 알고리즘이 신경망이면, 다양한 비디오 특징들(예를 들어, 식별된 객체들, 광 레벨 등) 및 데이터로부터의 센서 데이터가 입력 계층으로서 신경망에 제공될 수 있는 반면, 사용자 액션들(예를 들어, 라이트 턴 온, 윈드실드 와이퍼들의 속도 설정 등)을 나타내는 데이터는 출력 계층으로서 제공될 수 있다. 이러한 방식으로, 952에서, 머신 러닝 알고리즘(908)이 트레이닝된 모델(910)을 생성하기 위해 다양한 입력들에 대한 적절한 사용자 응답들에 대해 트레이닝될 수 있다. 트레이닝된 모델(910)이 코파일럿 관리 컴퓨터(118)에 의해 생성되었으면, 954에서, 코파일럿 관리 컴퓨터(118)가 해당 트레이닝된 모델(910)을 코파일럿 디바이스(106)에 제공할 수 있으며, 이는 트레이닝된 모델(910)을 메모리에 저장한다.
코파일럿 디바이스(106)가 트레이닝된 모델(910)을 수신했으면, 코파일럿 디바이스(106)는 해당 트레이닝된 모델(910)을 사용하여 차량(902)의 기능을 자동화할 수 있다. 예를 들어, 956에서 코파일럿 디바이스는 차량(902)의 동작에 관한 데이터를 하나 이상의 센서 및 카메라(906)로부터 수신할 수 있다. 이러한 데이터를 수신 시, 데이터는 트레이닝된 모델(910)에 제공될 수 있으며, 그 후, 이는 수신된 데이터에 기초하여 차량(902)에 제공될 명령어들을 생성하도록 구성된다. 일부 실시예들에서, 생성된 명령어들은 코파일럿 디바이스(106)가 설치되는 것으로 결정되는 차량(902)의 특정 유형에 특정될 수 있다.
트레이닝된 모델(910)을 사용하여 생성된 명령어들은 차량이 어떤 액션을 취하게 하기 위해 차량에 제공된다. 보다 구체적으로, 생성된 명령어들은 958에서 OBD 커넥션(904)에 제공된다. 그 후, OBD(904)는 차량에 의해 특정 액션들이 취해지게 하기 위해 960에서 이러한 명령어들을 차량으로 송신될 신호들로 변환한다. 예를 들어, 958에서 제공된 명령어들은 차량의 헤드라이트를 켜는 명령어들을 포함할 수 있다. 이러한 예에서, OBD 커넥션(904)은 960에서 차량 라이트를 제어하는 커넥션 버스 상의 적절한 핀을 결정할 수 있고, 그 핀을 통해 차량에 신호를 제공할 수 있다.
상술한 기법들을 사용하여, 코파일럿 디바이스(106)는 특정 차량 기능들의 활성화를 자동화하도록 만들어질 수 있다. 위의 도 8 및 도 9에 대한 설명에 기초하여 당업자에 의해 인식될 바와 같이, 코파일럿 디바이스(106)는 (예를 들어, 센서들 및 카메라(906)를 통해) 차량의 환경에 대한 정보뿐만 아니라 사용자가 취한 액션들에 관한 정보(예를 들어, OBD 커넥션으로부터 수집된 차량 정보)를 수집하고, 데이터가 시간에 기초하여 동기화되는 단일 데이터 파일을 생성한다. 이는 머신 러닝 모델이 머신 러닝 알고리즘을 사용하여 환경 데이터에서 검출된 다양한 상태들에 대응하는 사용자에 의해 취해진 액션들을 식별할 수 있게 한다. 이러한 데이터에 대해 트레이닝되는 모델(910)은 특정 조건들이 환경에 존재할 때 적절한 사용자 액션들을 인식하도록 만들어질 수 있다. 코파일럿 디바이스(106)는 이러한 트레이닝된 모델(910)이 제공될 때, 그러한 환경 요인들을 검출 시 사용자 액션들에 의해 통상적으로 생성될 신호들을 자동으로 시뮬레이션할 수 있다. 예를 들어, 주변 광 레벨이 특정 광 레벨 임계치 아래로 떨어질 때 사용자가 통상적으로 헤드라이트를 켜는 경우, 트레이닝된 모델은 헤드라이트를 켜는 것에 있어서 해당 광 레벨 임계치와 사용자의 액션을 식별할 수 있다. 이러한 예에서, 트레이닝된 모델을 제공받은 코파일럿 디바이스는 현재의 주변 광 레벨이 광 레벨 임계치 아래로 떨어졌다는 것을 검출 시, OBD 커넥션에 명령어를 제공할 수 있고, 그 후 이는 사용자가 차량 헤드라이트를 활성화시킬 때 통상적으로 생성될 신호를 생성하여, 차량 헤드라이트가 자동으로(예를 들어, 사용자 상호작용 없이) 활성화되게 한다.
도 10은 적어도 일부 실시예들에 따른 코파일럿 디바이스와 클라이언트 디바이스 간의 상호작용을 가능하게 하기 위해 클라이언트 디바이스 상에 인스턴스화될 수 있는 예시적인 그래픽 사용자 인터페이스를 도시한다. 보다 구체적으로, 도 10은 모바일 애플리케이션에 대한 사용자 인터페이스가 인스턴스화되는 클라이언트 디바이스(1002)를 도시한다
일부 실시예들에서, 사용자는 (예를 들어, 로그인 및 패스워드를 통해) 모바일 애플리케이션과 연관된 계정에 액세스할 수 있다. 계정은 사용자에게 고유할 수 있고, 고유 식별자(1004)와 연관될 수 있다. 일부 실시예들에서, 계정은 하나 이상의 특정 코파일럿 디바이스와 연관(예를 들어, 페어링)될 수 있다. 모바일 애플리케이션에 제공되는 데이터는 연관된 코파일럿 디바이스로부터 클라이언트 디바이스(1002)에 직접 제공될 수 있거나, 또는 코파일럿 디바이스로부터 백엔드 서버(예를 들어, 코파일럿 관리 컴퓨터(118))에 제공될 수 있고, 그 후 계정 정보에 기초하여 백엔드 서버에 의해 클라이언트 디바이스(1002)로 라우팅될 수 있다.
일부 실시예들에서, 모바일 애플리케이션은 클라이언트 디바이스(1002)가 단거리 무선 커넥션을 통해 코파일럿 디바이스로부터 데이터를 수신하게 할 수 있다. 그래픽 사용자 인터페이스는 수신된 데이터(1006)의 일부를 클라이언트 디바이스(1002)의 사용자에게 제공할 수 있다. 일부 실시예들에서, 데이터(1006)는 클라이언트 디바이스(1002)의 사용자가 이용가능한 기능의 메뉴를 포함할 수 있다.
도 11은 적어도 일부 실시예들에 따른 코파일럿 디바이스로부터 차량의 운전자에게 차량 상태 정보를 전달하기 위해 클라이언트 디바이스 상에 인스턴스화될 수 있는 예시적인 그래픽 사용자 인터페이스를 도시한다. 일부 실시예들에서, 클라이언트 디바이스 상에 설치된 모바일 애플리케이션은 수신된 차량 상태 정보를 제시하는 메커닉 보조 모듈을 포함할 수 있다. 메커닉 보조 모듈이 클라이언트 디바이스 상에서 실행될 때, OBD 커넥션으로부터 획득된 데이터는 자동으로 또는 코파일럿 디바이스가 데이터를 획득하게 하는 사용자 인터페이스 제어를 사용자가 선택하는 것에 응답하여, 코파일럿 디바이스(106)로부터 클라이언트 디바이스로 송신된다. 일부 버전들에서, HTTP 요청은 데이터를 획득하기 위한 요청을 코파일럿 디바이스(106)가 OBD 커넥션에 개시하고 획득된 데이터를 코파일럿 디바이스(106)에 송신하게 하기 위해 코파일럿 디바이스(106)에 송신될 수 있으며, 그 후, 이는 데이터를 클라이언트 디바이스에 제공한다.
일부 실시예들에서, 메커닉 보조 모듈은 획득된 데이터에 기초하여, 차량 부품 상태(예를 들어, 오일 교환 지체, 오일 온도 과열 등)를 나타내는 메트릭들과 같은 메트릭들을 제공하고, 사용자가 차량에 적절한 유지 보수 또는 수리를 제공하는 것을 돕는 것을 가능하게 하기 위해 메트릭들에 기초하여 선택되는 지시들, 팁들, 또는 지침들을 제공한다. 예를 들어, 하나 이상의 메트릭은 하나 이상의 임계치와 비교될 수 있고, 하나 이상의 메트릭이 하나 이상의 임계치를 충족하는 경우, 초과하는 경우, 또는 충족하거나 초과하지 못하는 경우, 차량 부품은 규격 내에 있거나 규격을 벗어나는 것으로 결정될 수 있다. 차량 부품이 규격을 벗어난다고(또는 미리 결정된 수의 최신 메트릭들에 기초하여, 규격을 벗어나는 추세에 있다고) 결정하는 것에 응답하여, 클라이언트 디바이스는 사용자에게 경보 및 이슈를 처리하는 방법에 대한 지시를 제공할 수 있다. 예를 들어, 클라이언트 디바이스는 백엔드 서버에 의해 제공되는 비디오를 로딩할 수 있다.
일부 실시예들에서, 케머닉 보조 모듈은 에러 코드들(예를 들어, 고장 진단 코드(Diagnostic Trouble Code, DTC))들 및/또는 에러 코드들로부터 결정된 차량 이슈들(1106)을 제공한다. 예를 들어, 코파일럿 디바이스는 OBD 커넥션을 통해 하나 이상의 에러 코드를 획득할 수 있고, 차량 유형에 대한 다양한 이슈들에 대한 에러 코드들의 맵핑에 기초하여 에러 코드와 특정 이슈를 연관시킬 수 있다.
도 12는 적어도 일부 실시예들에 따른 코파일럿 디바이스로부터 차량의 운전자에게 마일리지 정보를 전달하기 위해 클라이언트 디바이스 상에 인스턴스화될 수 있는 예시적인 그래픽 사용자 인터페이스를 도시한다. 일부 실시예들에서, 클라이언트 디바이스(1202) 상에 설치된 모바일 애플리케이션은 수신된 마일리지 정보를 제시하는 마일세이버 모듈을 포함할 수 있다.
일부 실시예들에서, 코파일럿 디바이스는 미리 결정된 간격들로(예를 들어, 2초마다) OBD 커넥션으로부터 주행거리계 데이터를 획득하고, 획득된 데이터를 데이터베이스(예를 들어, SQLite 데이터베이스)에 저장한다. 클라이언트 디바이스가 마일세이버 모듈을 실행하고 마일리지 요청(예를 들어, HTTP 요청)을 코파일럿 디바이스에 제공하는 것에 응답하여, 코파일럿 디바이스는 마일리지 로그(예를 들어, 날짜, 시간, 위치, 시작/정지 주행거리계 판독치)를 마일이지 로그 데이터 객체(예를 들어, JSON 파일)로 파싱하고. 데이터 객체를 클라이언트 디바이스에 제공한다. 각 요청은 특정 시구간(1204)에 관련될 수 있다. 예를 들어, 사용자는 특정 일, 월, 또는 연도에 대한 마일리지 로그를 요청할 수 있다.
마일리지 로그 데이터 객체를 획득하는 것에 응답하여, 클라이언트 디바이스는 마일리지 로그 데이터와 연관된 메트릭들을 생성하고 제공한다. 마일리지 로그 데이터에서의 데이터의 적어도 일부는 개별 마일리지 로그 이벤트들로서 제시될 수 있다. 일부 실시예들에서, 클라이언트 디바이스는 사용자가 현재, 과거, 또는 미래의 운전 세션이 개인 사용과 관련되는지 업무 사용과 관련되는지 표시하는 것을 가능하게 하고, 그 선택에 기초하여, 사용자가 차량 사용(예를 들어, 로그를 포함하는 생성된 PDF 파일)에 기초하여 세금 환급 또는 감면을 편리하게 획득하는 것을 가능하게 하기 위해 국세청(Internal Revenue Service, IRS) 요건들에 따르는 마일리지 로그들을 생성한다.
클라이언트 디바이스(1202)는 또한, 마일리지 로그를 또 다른 전자 디바이스에 제공할 수 있다. 예를 들어, 클라이언트 디바이스(1202)의 사용자는 선택된 통신 수단(예를 들어, 텍스트 메시지, 이메일 등)을 통해 마일리지 로그를 포워딩할 수 있다.
도 13은 적어도 일부 실시예들에 따른 코파일럿 디바이스로부터 차량의 운전자에게 안전 이벤트 정보를 전달하기 위해 클라이언트 디바이스 상에 인스턴스화될 수 있는 예시적인 그래픽 사용자 인터페이스를 도시한다. 일부 실시예들에서, 클라이언트 디바이스(1302) 상에 설치된 모바일 애플리케이션은 수신된 안전 이벤트 정보를 제시하는 안전 모듈을 포함할 수 있다.
다른 곳에서 언급된 바와 같이, 코파일럿 디바이스는 안전 이벤트를 검출 시 특정 데이터를 생성하는 안전 모듈을 포함할 수 있다. 안전 이벤트는 어떠한 키도 존재하지 않을 때 차량의 하나 이상의 도어의 개방(OBD 커넥션을 통해 수신되는 도어 개방 표시기 신호를 통해 검출됨), 차량이 전력을 공급받지 않을 때 차량의 움직임(충돌 또는 충격을 나타낼 수 있음), 유리 파손 사운드와 고도의 유사성을 공유하는 수신된 사운드 신호, 모션 검출기의 활성화, 또는 차량의 잠재적인 안전 위반의 임의의 다른 적합한 표시를 포함할 수 있다. 이벤트의 검출 시, 안전 모듈(216)은 카메라(208)로부터 코파일럿 관리 컴퓨터(118)로 비디오 또는 이미지들을 캡처할 수 있다. 비디오 또는 이미지들은 타임스탬프와 연관될 수 있고, 잠재적인 안전 이벤트에 관련된 다른 적합한 데이터를 포함하도록 수정될 수 있다. 예를 들어, 어떠한 키도 존재하지 않는 동안 차량 도어가 개방되었다는 것을 검출 시, 코파일럿 디바이스는 비디오를 캡처하기 시작할 수 있고, 어느 정도 미리 결정된 시구간 동안 비디오를 계속 캡처할 수 있다. 이러한 예에서, 안전 이벤트의 유형의 표시(예를 들어, "도어 오픈")는 비디오 파일을 생성하기 위해 타임스탬프, 위치, 및/또는 임의의 다른 적합한 데이터와 함께 메타데이터로서 비디오에 첨부될 수 있다. 생성된 비디오 파일은 클라이언트 디바이스(1302)에 제공될 수 있다. 일부 실시예들에서, 생성된 비디오 파일은 무선 통신 수단을 통해 직접 클라이언트 디바이스(1302)에 제공된다. 일부 실시예들에서, 생성된 비디오 파일은 백엔드 서버(예를 들어, 코파일럿 관리 컴퓨터(118))에 제공되고, 그 후 네트워크 커넥션을 통해 클라이언트 디바이스로 라우팅된다.
클라이언트 디바이스(130)는 안전 이벤트에 관련된 정보(예를 들어, 비디오 파일로부터 생성된 썸네일 이미지)를 타임라인(1304)에 첨부할 수 있다. 타임라인(1304)은 날짜/시간에 대해 안전 이벤트들(1306)의 추적을 가능하게 할 수 있다. 일부 실시예들에서, 타임라인(1304) 상에 제시되는 안전 이벤트들(1306) 중의 특정 안전 이벤트의 선택은 클라이언트 디바이스(1302)가 선택된 안전 이벤트에 관련된 추가적인 세부사항들을 제시하게 할 수 있다. 예를 들어, 사용자에게 비디오를 보고, 지도 상의 안전 이벤트의 위치를 보고, 또는 그 외 안전 이벤트와 관련된 정보와 상호작용하는 능력이 제공될 수 있다.
도 14는 적어도 일부 실시예들에 따른 수정된 비디오 파일을 생성하고 서버로 송신하기 위한 예시적인 프로세스를 도시하는 흐름도를 도시한다. 프로세스(1400)는 코파일럿 디바이스(예를 들어, 도 1에 대해 설명된 바와 같은 코파일럿 디바이스(106))에 의해 수행될 수 있다.
1402에서, 프로세스(1400)는 코파일럿 디바이스에서 비디오 데이터를 수신하는 단계를 포함한다. 비디오 데이터는 내부(예를 들어, 후방) 카메라를 사용하여 캡처된 차량 내부 및 한 명 이상의 탑승자의 비디오를 포함한다. 일부 경우들에서, 차량 내부의 비디오는 (예를 들어, 적외선 광을 캡처할 수 있는 카메라를 사용하여) 나이트 비전 모드에서 캡처될 수 있다. 비디오 데이터는 또한, 하나 이상의 외부(예를 들어, 전방) 카메라를 사용하여 캡처된 차량 앞 차량 외부의 비디오를 포함한다. 일부 실시예들에서, 하나 이상의 외부 카메라는 다양한 각도들로부터 장면을 캡처할 수 있는 다수의 스테레오 카메라들을 포함할 수 있다.
1404에서, 프로세스(1400)는 차량과 코파일럿 디바이스 간의 커넥션을 통해 차량 데이터를 수신하는 단계를 포함한다. 일부 경우들에서, 차량과 코파일럿 디바이스 간의 연결은 온보드 진단(OBD) 커넥션이다. 다른 곳에서 언급된 바와 같이, 코파일럿 디바이스는 OBD 커넥션을 통해 다양한 유형들의 차량 데이터를 수집할 수 있다. 예를 들어, 차량 데이터는 주행 거리계 정보, 속도계 정보, 연료 게이지 정보, 또는 에러 코드 정보를 포함할 수 있다.
1406에서, 프로세스(1400)는 코파일럿 디바이스와 통신하는 하나 이상의 센서로부터 센서 데이터를 수신하는 단계를 포함한다. 다른 곳에서 언급된 바와 같이, 코파일럿 디바이스는 다양한 유형들의 센서 데이터를 수집하는 다수의 상이한 센서 유형들을 포함할 수 있다. 예를 들어, 센서 데이터는 온도 데이터, 가속도 데이터, 시간 데이터, 위치 데이터, 광 레벨 데이터, 또는 습도 레벨 데이터를 포함할 수 있다.
1408에서, 프로세스(1400)는 비디오 데이터, 차량 데이터의 적어도 일부, 및 센서 데이터의 적어도 일부를 포함하는 수정된 비디오 파일을 생성하는 단계를 포함한다. 이는 차량 데이터의 일부 및 센서 데이터의 일부를 비디오 데이터의 영상에 첨부하는 것을 수반할 수 있다. 보다 구체적으로, 차량 데이터의 일부 및 센서 데이터의 일부는 비디오 데이터의 영상에 메타데이터로서 첨부될 수 있다. 수정된 비디오 파일 내에서, 차량 데이터의 일부, 센서 데이터의 일부, 및 비디오 데이터는 데이터가 수정된 비디오 파일에 수신된 시간에 기초하여 동기화된다.
1410에서, 프로세스(1400)는 수정된 비디오 파일을 서버에 송신하는 단계를 포함한다. 보다 구체적으로, 수정된 비디오 파일은 코파일럿 디바이스의 원격에 있는 코파일럿 관리 컴퓨터로 송신된다.
일부 실시예들에서, 프로세스(1400)는 업무 이벤트의 시작 및 업무 이벤트의 종료의 표시를 수신하는 단계 및 업무 이벤트와 연관된 마일리지를 결정하는 단계를 더 포함할 수 있다. 이들 실시예들에서, 업무 이벤트와 연관된 마일리지를 결정하는 것은 업무 이벤트의 시작에서 제1 마일리지를 결정하는 것, 업무 이벤트의 종료에서 제2 마일리지를 결정하는 것 및 제1 마일리지를 제2 마일리지에서 감산하는 것을 수반할 수 있다. 제1 마일리지 및 제2 마일리지 각각은 업무 이벤트의 각 시작 및 종료 각각에 대응하는 시간에 차량 데이터 내의 주행거리계 정보로부터 결정된다.
본 개시의 실시예들은 종래의 시스템들에 비해 몇몇 이점들을 제공한다. 예를 들어, 개시된 코파일럿 디바이스는 데이터가 시간에 기초하여 동기화되는 방식으로 다수의 이종 유형들의 데이터가 조합되는 단일 데이터 파일을 생성한다. 이는 다운스트림 시스템(예를 들어, 코파일럿 관리 컴퓨터)이 이종 데이터를 매칭하거나 정렬할 필요 없이 이종 데이터 간의 상관관계들을 끌어내어 처리 효율을 상당히 증가시킨다.
또한, 개시된 시스템의 실시예들은 그렇지 않으면 애프터마켓 솔루션을 통해 자동화될 수 없을 방식으로 다양한 기능이 자동화될 수 있게 한다. 예를 들어, 시스템은 매우 정확한 방식으로 세금 목적을 위해 업무 이벤트를 자동으로 검출하고 레코딩하는 수단을 제공한다. 이는 사용자로 하여금 최소의 노력으로 매우 정확한 마일리지 레코드들을 획득할 수 있게 하면서, 그러한 마일리지 레코드들의 오차들을 제거 또는 감소시킨다. 일부 실시예들에서, 시스템은 통상적으로 이러한 기능들을 자동화할 수 없을 차량들에서의 다양한 차량 기능들의 자동화를 가능하게 한다. 예를 들어, 본 시스템은 코파일럿 디바이스에 의해 수집된 비디오 및/또는 센서 데이터에 기초한 윈드실드 와이퍼 또는 헤드라이트의 자동 활성화를 가능하게 한다.
결론
본원에서 사용될 때, 다음의 용어들은 문맥이 명확하게 달리 지시하지 않는 한, 본원에서 명시적으로 연관된 의미를 취한다. 용어 "또는"은 연결된 용어들 중 하나 이상이 채용될 수 있음을 나타내기 위한 포괄적인 문법적 접속사이다. 예를 들어, "하나 이상의 A, B, 또는 C"라는 어구 또는 "하나 이상의 As, Bs, 또는Cs"라는 어는 다음 중 각각을 개별적으로 개시하기 위해 채용된다: i) 하나 이상의 A; ii) 하나 이상의 B; iii) 하나 이상의 C; iv) 하나 이상의 A 및 하나 이상의 B; v) 하나 이상의 A 및 하나 이상의 C; vi) 하나 이상의 B 및 하나 이상의 C, 및 vii) 하나 이상의 A, 하나 이상의 B, 및 하나 이상의 C. 본원에서 사용될 때, "~에 기초하여"라는 용어는 배타적이지 않고, 설명되지 않은 추가적인 인자들에 기초하는 것을 허용한다. 단수 표현은 복수의 대상들을 포함한다. 복수의 대상들 또한 단수를 개시하는 것으로 의도된다.
"앞", "전방", "후", 및 "뒤"라는 용어들은 차량에 설치될 때 차량 또는 코파일럿 디바이스(106)의 종축에 관해 정의된다. 차량의 종축은 차량의 가장 뒷부분으로부터 차량의 가장 앞 끝까지 차량의 횡측 중간을 따라 연장된다. "앞" 및 "전방"이라는 용어는 (도 1의 우측으로) 코파일럿 디바이스(106)가 설치될 때 차량의 헤드라이트에 더 가깝거나 헤드라이트의 방향으로 있는 단부를 나타낸다. "뒤" 및 "후방"이라는 용어는 (도 6의 좌측으로) 보관 패널 시스템이 설치될 때 트럭의 테일게이트에 더 가깝거나 헤드라이트의 방향으로 있는 단부를 나타낸다. "높이", "수직", “상부”, "하부”, “위”,“아래”,” “상단(top), “하단,“최상단” 및 “최하단”은 차량 또는 코파일럿 디바이스(106)(차량에 설치될 때)의 수직축에 관해 정의된다. 수직축은 종축을 가로지르고, 차량이 수평 지면에 있을 때 차량 또는 코파일럿 디바이스(106) 상의 지구 중력의 방향에 평행한 것으로 정의된다. "횡측"이라는 용어는 차량에 설치될 때 차량 또는 코파일럿 디바이스(106)의 횡축에 관해 정의된다. 횡축은 종축 및 수직축을 가로지른다.
"애프터마켓" 또는 "기존 차량"이라는 용어는 차량의 제조사 및 대리점이 더 이상 차량을 제어하지 않도록 완전히 조립되고 업무의 통상적인 과정에서 대리점으로부터 판매된 차량들을 지칭한다.
특히, 차량들은 다양한 형상들 및 크기들을 갖는다. 따라서, 일부 특징들 또는 특성들은 차량들, 대시보드, 가스 탱크들, 핸들바들, 윈드쉴드들, 윈드스크린들, 또는 다른 것들의 하나 이상의 특징 또는 특성과 같은, 실시예들에 관련되지만 이에 포함되지 않는 하나 이상의 요소들에 관해 정의될 때 당업자에 의해 가장 잘 이해된다. 또한, 따라서, 실시예들의 특징들 또는 특성들이 본원에서 실시예들에 관련되지만 이에 포함되지 않은 하나 이상의 요소들에 관해 정의되는 경우, 이러한 정의들은 주제가 허용하는 만큼 정확하다. 당업자는 본 개시로부터 실시예들의 그러한 특징들 또는 특성들이 실시예들에 포함되지 않은 소정의 차량 구성요소에 대한 실시예들의 원리들에 따라 용이하게 획득될 수 있다는 것을 인식한다는 점에 또한 유의해야 한다.
많은 실시예들이 도시되고 설명되었지만, 상술한 바와 같이, 설명된 특징들 또는 특성들의 사상 및 범위로부터 벗어나지 않고 많은 변경이 이루어질 수 있다. 예를 들어, 특징 또는 특성을 갖는 구성요소의 각 개시는 실시예들의 원리들이 명확하게 달리 지시하지 않는 한, 그 특징 또는 특성이 없는 것으로서 구성요소를 또한 개시하는 것으로 의도된다. 따라서, 실시예들의 범위는 설명된 특정 특징들 또는 특징들에 의해 제한되지 않는다.

Claims (20)

  1. 방법으로서,
    코파일럿 디바이스(copilot device)에 의해, 상기 코파일럿 디바이스에 포함된 카메라에 의해 획득된 비디오 데이터를 수신하는 단계;
    상기 코파일럿 디바이스에 의해, 차량과 상기 코파일럿 디바이스 간의 커넥션을 통해 차량 데이터를 수신하는 단계;
    상기 코파일럿 디바이스에 의해, 상기 코파일럿 디바이스와 통신하는 하나 이상의 센서로부터 센서 데이터를 수신하는 단계;
    상기 코파일럿 디바이스에 의해, 상기 비디오 데이터, 상기 차량 데이터의 적어도 일부, 및 상기 센서 데이터의 적어도 일부를 포함하는 수정된 비디오 파일을 생성하는 단계; 및
    상기 코파일럿 디바이스에 의해, 상기 수정된 비디오 파일을 상기 코파일럿 디바이스의 원격에 있는 코파일럿 관리 컴퓨터로 송신하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 차량과 상기 코파일럿 디바이스 간의 커넥션은 온보드 진단(on-board diagnostic, OBD) 커넥션을 포함하는 것인, 방법.
  3. 제1항에 있어서,
    상기 코파일럿 디바이스에 의해, 업무 이벤트의 시작 및 상기 업무 이벤트의 종료의 표시를 수신하는 단계; 및
    상기 업무 이벤트와 연관된 마일리지를 결정하는 단계를 더 포함하는, 방법.
  4. 제3항에 있어서, 상기 업무 이벤트와 연관된 마일리지를 결정하는 단계는:
    상기 업무 이벤트의 시작 시의 제1 마일리지 및 상기 업무 이벤트의 종료 시의 제2 마일리지를 결정하는 단계; 및
    상기 제1 마일리지를 상기 제2 마일리지에서 감산하는 단계를 포함하는 것인, 방법.
  5. 제4항에 있어서, 상기 제1 마일리지는 상기 업무 이벤트의 시작 시에 상기 차량과 상기 코파일럿 디바이스 간의 커넥션으로부터 수신된 주행거리계 정보로부터 결정되는 것인, 방법.
  6. 제1항에 있어서, 상기 수정된 비디오 파일을 생성하는 단계는 상기 차량 데이터의 일부 및 상기 센서 데이터의 일부를 상기 비디오 데이터에 첨부하는 단계를 포함하는 것인, 방법.
  7. 제6항에 있어서, 상기 차량 데이터의 일부 및 상기 센서 데이터의 일부는 상기 비디오 데이터의 영상에 첨부되는 것인, 방법.
  8. 제6항에 있어서, 상기 차량 데이터의 일부, 상기 센서 데이터의 일부, 및 상기 비디오 데이터는 상기 데이터가 상기 수정된 비디오 파일에 수신된 시간에 기초하여 동기화되는 것인, 방법.
  9. 코파일럿 컴퓨팅 디바이스로서,
    하나 이상의 카메라;
    차량과 상기 코파일럿 컴퓨팅 디바이스 간의 커넥션;
    하나 이상의 센서;
    프로세서; 및
    명령어들을 포함하는 메모리를 포함하며, 상기 명령어들은 상기 프로세서를 이용하여 실행될 때, 상기 코파일럿 컴퓨팅 디바이스로 하여금, 적어도:
    상기 코파일럿 디바이스에 포함된 상기 하나 이상의 카메라에 의해 획득된 비디오 데이터를 수신하고;
    차량과 상기 코파일럿 컴퓨팅 디바이스 간의 커넥션을 통해 차량 데이터를 수신하고;
    상기 코파일럿 디바이스와 통신하는 상기 하나 이상의 센서로부터 센서 데이터를 수신하고;
    상기 비디오 데이터, 상기 차량 데이터의 적어도 일부, 및 상기 센서 데이터의 적어도 일부를 포함하는 수정된 비디오 파일을 생성하며;
    상기 수정된 비디오 파일을 상기 코파일럿 디바이스의 원격에 있는 코파일럿 관리 컴퓨터로 송신하게 하는 것인, 코파일럿 컴퓨팅 디바이스.
  10. 제9항에 있어서, 상기 센서 데이터는 온도 데이터, 가속도 데이터, 시간 데이터, 위치 데이터, 광 레벨 데이터, 또는 배향 데이터를 포함하는 것인, 코파일럿 컴퓨팅 디바이스.
  11. 제9항에 있어서, 상기 비디오 데이터는 내부 비디오 데이터 및 외부 비디오 데이터를 포함하는 것인, 코파일럿 컴퓨팅 디바이스.
  12. 제11항에 있어서, 상기 내부 비디오 데이터는 상기 차량의 내부 내의 한 명 이상의 탑승자의 캡처된 비디오를 포함하는 것인, 코파일럿 컴퓨팅 디바이스.
  13. 제12항에 있어서, 상기 한 명 이상의 탑승자의 캡처된 상기 비디오는 적외선 광을 사용하여 캡처된 비디오를 포함하는 것인, 코파일럿 컴퓨팅 디바이스.
  14. 제11항에 있어서, 상기 외부 비디오 데이터는 복수의 스테레오 카메라들로부터 상기 차량의 외부의 캡처된 다수의 비디오들을 포함하는 것인, 코파일럿 컴퓨팅 디바이스.
  15. 제9항에 있어서, 상기 차량 데이터는 상기 차량의 제어기 영역 네트워크 버스로부터 수신되는 주행거리계 정보, 속도계 정보, 연료 게이지 정보, 에러 코드 정보, 또는 다른 정보 중 적어도 하나를 포함하는 것인, 코파일럿 컴퓨팅 디바이스.
  16. 시스템으로서,
    명령어들을 포함하는 메모리를 포함하는 코파일럿 디바이스 - 상기 명령어들은 상기 코파일럿 디바이스로 하여금:
    차량과의 커넥션을 통해 수신되는 적어도 비디오 데이터, 센서 데이터, 및 차량 데이터를 포함하는 이종의 차량 관련 데이터를 획득하고;
    상기 이종의 차량 관련 데이터를 단일 데이터 파일로 조합하며;
    상기 단일 데이터 파일을 코파일럿 관리 컴퓨터에 제공하게 함 -; 및
    상기 코파일럿 디바이스와 통신가능하게 결합되고, 상기 코파일럿 디바이스로부터 수신되는 상기 단일 데이터 파일을 처리하도록 구성된 코파일럿 관리 컴퓨터를 포함하는, 시스템.
  17. 제16항에 있어서, 모바일 애플리케이션이 설치된 클라이언트 디바이스를 더 포함하며, 상기 모바일 애플리케이션은 상기 클라이언트 디바이스와 상기 코파일럿 디바이스 간의 상호작용을 가능하게 하는 것인, 시스템.
  18. 제16항에 있어서, 상기 코파일럿 관리 컴퓨터는 상기 수신된 데이터 파일을 사용하여 머신 러닝 알고리즘을 트레이닝하여 트레이닝된 모델을 생성하고, 상기 코파일럿 관리 컴퓨터는 또한, 상기 트레이닝된 모델을 상기 코파일럿 디바이스에 제공하도록 구성되는 것인, 시스템.
  19. 제18항에 있어서, 상기 트레이닝된 모델은 상기 코파일럿 디바이스로 하여금 조건들의 세트를 검출 시 하나 이상의 차량 기능을 자동화하게 하는 것인, 시스템.
  20. 제19항에 있어서, 상기 조건들의 세트는 상기 코파일럿 디바이스에 의해 수집된 비디오 데이터 또는 센서 데이터 내에서 검출되는 것인, 시스템.
KR1020227013518A 2019-09-27 2020-09-25 애프터마켓 차량 코파일럿 디바이스 KR20220072852A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962907533P 2019-09-27 2019-09-27
US62/907,533 2019-09-27
US17/028,751 2020-09-22
US17/028,751 US20210094582A1 (en) 2019-09-27 2020-09-22 After-market vehicle copilot device
PCT/US2020/052810 WO2021062216A1 (en) 2019-09-27 2020-09-25 After-market vehicle copilot device

Publications (1)

Publication Number Publication Date
KR20220072852A true KR20220072852A (ko) 2022-06-02

Family

ID=75163577

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227013518A KR20220072852A (ko) 2019-09-27 2020-09-25 애프터마켓 차량 코파일럿 디바이스

Country Status (9)

Country Link
US (1) US20210094582A1 (ko)
EP (1) EP4042384A4 (ko)
JP (1) JP2022549507A (ko)
KR (1) KR20220072852A (ko)
AU (1) AU2020353153A1 (ko)
CA (1) CA3152568A1 (ko)
MX (1) MX2022003721A (ko)
TW (1) TW202127384A (ko)
WO (1) WO2021062216A1 (ko)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868288B2 (en) * 2006-11-09 2014-10-21 Smartdrive Systems, Inc. Vehicle exception event management systems
KR100936014B1 (ko) * 2008-04-02 2010-01-11 (주)에이직뱅크 카메라 일체형 차량용 영상기록 장치
KR20130030583A (ko) * 2011-09-19 2013-03-27 주식회사 유비샘 차량용 운행정보 확인장치 및 영상 저장장치의 원격 감시제어 시스템
US9594725B1 (en) * 2013-08-28 2017-03-14 Lytx, Inc. Safety score using video data but without video
US9501878B2 (en) * 2013-10-16 2016-11-22 Smartdrive Systems, Inc. Vehicle event playback apparatus and methods
US10358142B2 (en) * 2017-03-16 2019-07-23 Qualcomm Incorporated Safe driving support via automotive hub
US10922556B2 (en) * 2017-04-28 2021-02-16 Intel Corporation Storage system of DNN outputs for black box
WO2018195671A1 (en) * 2017-04-28 2018-11-01 Klashwerks Inc. In-vehicle monitoring system and devices

Also Published As

Publication number Publication date
EP4042384A4 (en) 2023-10-11
TW202127384A (zh) 2021-07-16
JP2022549507A (ja) 2022-11-25
EP4042384A1 (en) 2022-08-17
AU2020353153A1 (en) 2022-05-12
CA3152568A1 (en) 2021-04-01
MX2022003721A (es) 2022-05-10
US20210094582A1 (en) 2021-04-01
WO2021062216A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
US11244570B2 (en) Tracking and analysis of drivers within a fleet of vehicles
US11704947B2 (en) In-vehicle sensing module for monitoring a vehicle
KR102315335B1 (ko) 자율 차량들에 대해 할당된 승객들의 인식
US10311658B2 (en) Unexpected impulse change collision detector
US8421864B2 (en) Operation management device to be mounted to a moving object, portable information terminal, operation management server, and computer program
US11699207B2 (en) Camera assessment techniques for autonomous vehicles
GB2522728A (en) Monitoring device
Liu et al. Bigroad: Scaling road data acquisition for dependable self-driving
CN111433097B (zh) 车辆及用于控制该车辆的方法
US20160093121A1 (en) Driving event notification
JPWO2020100922A1 (ja) データ配信システム、センサデバイス及びサーバ
JP6603506B2 (ja) 駐車位置案内システム
US10598863B2 (en) Optical connector, optical cable, and electronic device
JP2015207270A (ja) 車両運行管理システム
CN201497510U (zh) 一种多功能车载式gps导航仪
CN105701880A (zh) 一种汽车行驶状态实时记录装置
US20210094582A1 (en) After-market vehicle copilot device
CN203520470U (zh) 影像记录装置、挂载于交通工具的支撑装置及服务系统
CN110969996A (zh) 移动终端及调节其显示屏亮度的方法、装置及存储介质
US20230202431A1 (en) Device for vehicle monitoring and system including same
Bogard et al. Connected commercial vehicles-integrated truck project: data acquisition system (DAS) documentation.
Welsh et al. Data collection, analysis methods and equipment for naturalistic studies and requirements for the different application areas. PROLOGUE Deliverable D2. 1

Legal Events

Date Code Title Description
A201 Request for examination