KR102711127B1 - 카메라 보정 없는 속도 추정 시스템들 및 방법들 - Google Patents
카메라 보정 없는 속도 추정 시스템들 및 방법들 Download PDFInfo
- Publication number
- KR102711127B1 KR102711127B1 KR1020220010239A KR20220010239A KR102711127B1 KR 102711127 B1 KR102711127 B1 KR 102711127B1 KR 1020220010239 A KR1020220010239 A KR 1020220010239A KR 20220010239 A KR20220010239 A KR 20220010239A KR 102711127 B1 KR102711127 B1 KR 102711127B1
- Authority
- KR
- South Korea
- Prior art keywords
- images
- series
- velocity
- module
- estimation system
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 11
- 238000001514 detection method Methods 0.000 claims abstract description 56
- 238000013507 mapping Methods 0.000 claims abstract description 29
- 238000013528 artificial neural network Methods 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims abstract description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 238000012549 training Methods 0.000 claims description 14
- 238000012935 Averaging Methods 0.000 claims description 8
- 238000013527 convolutional neural network Methods 0.000 claims description 7
- 230000011664 signaling Effects 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 5
- 238000011176 pooling Methods 0.000 claims description 5
- 230000033001 locomotion Effects 0.000 claims description 3
- 238000012937 correction Methods 0.000 claims 2
- 230000015654 memory Effects 0.000 description 12
- 238000006073 displacement reaction Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 3
- 230000001939 inductive effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01P—MEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
- G01P3/00—Measuring linear or angular speed; Measuring differences of linear or angular speeds
- G01P3/36—Devices characterised by the use of optical means, e.g. using infrared, visible, or ultraviolet light
- G01P3/38—Devices characterised by the use of optical means, e.g. using infrared, visible, or ultraviolet light using photographic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01P—MEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
- G01P3/00—Measuring linear or angular speed; Measuring differences of linear or angular speeds
- G01P3/64—Devices characterised by the determination of the time taken to traverse a fixed distance
- G01P3/68—Devices characterised by the determination of the time taken to traverse a fixed distance using optical means, i.e. using infrared, visible, or ultraviolet light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
- G06V20/54—Surveillance or monitoring of activities, e.g. for recognising suspicious objects of traffic, e.g. cars on the road, trains or boats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30236—Traffic on road, railway or crossing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30248—Vehicle exterior or interior
- G06T2207/30252—Vehicle exterior; Vicinity of vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Geometry (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Power Engineering (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Electromagnetism (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Image Analysis (AREA)
- Traffic Control Systems (AREA)
Abstract
속도 추정 시스템은, 신경망을 갖는 검출 모듈 - 신경망은: 일련의 이미지들을 수신하고 - 이미지들은 로컬 기하학적 형상을 갖는 표면을 포함함 -; 표면 상의 일련의 이미지들에 포함된 객체를 검출하고; 일련의 이미지들에 포함된 객체의 픽셀 좌표를 각각 결정하고; 일련의 이미지들에 포함된 객체 주위의 경계 상자들을 각각 결정하고; 일련의 이미지들에 포함된 객체 주위의 경계 상자들에 기초하여 일련의 이미지들에 대한 픽셀 좌표와 거리 좌표 사이의, 표면의 로컬 기하학적 형상을 기술하는 전역 매개변수들의 함수가 아닌 로컬 매핑들을 각각 결정하고, 일련의 이미지들에 대해 결정된 거리 좌표에 기초하여 표면에 대해 이동하는 객체의 속도를 결정하도록 구성된 속도 모듈을 포함한다.
Description
본 개시내용은 속도 추정 시스템들에 관한 것으로, 특히 비디오로부터, 예컨대 폐쇄 회로 텔레비전(CCTV) 카메라로부터 차량들의 속도를 추정하기 위한 시스템들 및 방법들에 관한 것이다.
본 명세서에 제공된 발명의 배경이 되는 기술 설명은 본 개시내용의 맥락을 일반적으로 제시하기 위한 것이다. 본 기술 배경 섹션에 기술된 범위에서, 본 발명의 발명가들의 연구뿐만 아니라 출원 당시의 종래 기술로서 달리 자격이 되지 않을 것인 본 설명의 양태들은, 본 개시내용에 반한 선행 기술로서 명시적으로도 또는 암시적으로도 인정되지 않는다.
CCTV 카메라들과 같은 카메라들은 감시 및 교통 모니터링과 같은 다양한 환경에서 사용될 수 있다. 다른 하드웨어도 교통 모니터링에 사용될 수 있다. 예를 들어, 레이더 센서들이 도로 근처에 설치되고 교통을 모니터링하는 데 사용될 수 있다. 다른 예로, 유도 루프들이 도로(예컨대, 교차로 근처)에 설치되고 교통을 모니터링하는 데 사용될 수 있다. 그러나 그러한 하드웨어는 고가일 수 있고 신속하게 그리고/또는 큰 규모로 설치될 수 없다. 예를 들어, 유도 루프들은 일반적으로 도로 표면 내부 또는 그 아래에 설치된다.
교통 속도 모니터링을 위해 카메라들을 사용하는 시스템들은 정확한 보정을 필요로 한다. 그러나 이러한 카메라 시스템들은 이동 중인 경우 보정되지 않을 수 있거나 지속적인 재보정을 필요로 할 수 있으므로 이러한 상황들에서 도로의 호모그래피(homography)를 알 수 없다. 시야에 있는 도로의 기하학적 형상(예컨대, 3D 형상)도 고려되지 않을 수 있으며, 이는 잠재적으로 평평하고 직선인 도로에 대한 유용성을 제한할 수 있다.
일 특징에서, 속도 추정 시스템은, 신경망을 갖는 검출 모듈 - 신경망은: 일련의 이미지들을 수신하고 - 이미지들은 로컬 기하학적 형상을 갖는 표면을 포함함 -; 표면 상의 일련의 이미지들에 포함된 객체를 검출하고; 일련의 이미지들에 포함된 객체의 픽셀 좌표를 각각 결정하고; 일련의 이미지들에 포함된 객체 주위의 경계 상자들을 각각 결정하고; 일련의 이미지들에 포함된 객체 주위의 경계 상자들에 기초하여 일련의 이미지들에 대한 픽셀 좌표와 거리 좌표 사이의, 표면의 로컬 기하학적 형상을 기술하는 전역 매개변수들의 함수가 아닌 로컬 매핑들을 각각 결정하도록 구성됨 -; 및 일련의 이미지들에 대해 결정된 거리 좌표에 기초하여 표면에 대해 이동하는 객체의 속도를 결정하도록 구성된 속도 모듈을 포함한다.
추가 특징들에서, 평균화 모듈은 일련의 이미지들에 포함된 객체의 속도에 대한 다중 인스턴스들의 평균에 기초하여 객체의 평균 속도를 결정하도록 구성된다.
추가 특징들에서, 평균화 모듈은 평균 속도를 결정하기 전에 일련의 이미지들에 포함된 객체의 속도들에 대해 중간값 필터링을 수행한다.
추가 특징들에서, 표면 위의 객체는 도로 위의 차량이다.
추가 특징들에서, 트랙킹 모듈은 이미지들의 픽셀 좌표에 기초하여 객체의 이동에 대한 트랙을 각각 생성하도록 구성된다.
추가 특징들에서, 트랙킹 모듈은 SORT(simple online and realtime tracking) 트랙킹 알고리즘을 사용하여 이미지들 내의 객체를 트랙킹하도록 구성된다.
추가 특징들에서, 트랙킹 모듈은, 이미지들 내의 객체의 검출 수가 미리 결정된 수 미만인 경우 객체의 속도의 결정을 디스에이블 하도록 구성된다.
추가 특징들에서, 트랙킹 모듈은 객체가 이동하지 않는 경우, 객체의 속도의 결정을 디스에이블 하도록 구성된다.
추가 특징들에서, 검출 모듈은, 일련의 이미지들 중 하나에서 피처(feature)들을 검출하도록 구성된 피처 검출 모듈; 일련의 이미지들 중 하나에서의 피처들에 기초하여 객체가 존재하는 이미지들 중 하나의 이미지에 대한 영역을 제안하도록 구성된 영역 제안 모듈; 영역 내 피처들을 풀링(pool)하여 풀링된 피처들을 생성하도록 구성된 영역 풀링 모듈; 풀링된 피처들에 기초하여 객체의 분류를 결정하도록 구성된 분류기 모듈; 및 풀링된 피처들에 기초하여 이미지들 중 하나의 이미지에 대한 경계 상자를 결정하도록 구성된 경계 모듈을 포함한다.
추가 특징들에서, 검출 모듈은 컨볼루션 신경망을 포함한다.
추가 특징들에서, 검출 모듈의 컨볼루션 신경망은 Faster-RCNN(Faster-regions with convolutional neural network) 객체 검출 알고리즘을 실행한다.
추가 특징들에서, 검출 모듈의 신경망은, 표면 상의 일련의 이미지들에서 제2 객체를 검출하고; 일련의 이미지들에서 제2 객체의 제2 픽셀 좌표를 각각 결정하고; 일련의 이미지들에서 제2 객체 주위의 제2 경계 상자들을 각각 결정하고; 일련의 이미지들에서 제2 객체 주위의 제2 경계 상자들에 기초하여 일련의 이미지들에 대한 픽셀 좌표와 거리 좌표 사이의, 표면의 로컬 기하학적 형상을 기술하는 전역 매개변수들의 함수가 아닌 제2 로컬 매핑들을 각각 결정하도록 더 구성되고; 속도 모듈은 일련의 이미지들에 대해 결정된 제2 거리 좌표에 기초하여 표면에 대해 이동하는 제2 객체의 제2 속도를 결정하도록 구성된다.
추가 특징들에서, 평균 속도 모듈은 속도와 제2 속도의 평균에 기초하여 평균 속도를 결정하도록 구성된다.
추가 특징들에서, 검출 모듈은 단안 카메라로부터 일련의 이미지들을 수신하도록 구성된다.
추가 특징들에서, 단안 카메라는 팬, 틸트, 줌(pan, tilt, zoom, PTZ) 카메라이다.
추가 특징들에서, 속도 모듈은 이미지들 중 제1 이미지들로부터 이미지들 중 제2 이미지로의 픽셀 좌표의 변화에 추가로 기초하여 객체의 속도를 결정하도록 구성된다.
추가 특징들에서, 신경망은 자코비안(Jacobian)들을 사용하여 픽셀 좌표와 거리 좌표 간의 로컬 매핑들을 결정하도록 훈련된다.
추가 특징들에서, 로컬 매핑들은 자코비안들을 사용하여 결정된다.
추가 특징들에서, 경계 상자들은 3차원(3D) 경계 상자들을 포함하며, 검출 모듈의 신경망은 3D 경계 상자들의 4개의 하부 모서리들의 4개의 픽셀 좌표에 기초하여 자코비안들을 결정하도록 구성된다.
추가 특징들에서, 검출 모듈은 객체의 길이 및 객체의 폭에 추가로 기초하여 자코비안들을 결정하도록 구성된다.
추가 특징들에서, 검출 모듈은 네트워크를 통해 비디오 소스로부터 일련의 이미지들을 수신하도록 구성된다.
추가 특징들에서, 속도 모듈은 카메라의 저장된 보정 매개변수들 없이 객체의 속도를 결정하도록 구성된다.
일 특징에서, 라우팅 시스템은 속도 추정 시스템 및 경로 모듈을 포함하며, 경로 모듈은: 객체의 속도에 기초하여 모바일 장치 및 차량 중 하나에 대한 경로를 결정하고, 상기 경로를 모바일 장치와 차량 중 하나로 전송하도록 구성된다.
일 특징에서, 신호 시스템은 속도 추정 시스템 및 신호 제어 모듈을 포함하며, 신호 제어 모듈은 객체의 속도에 기초하여 교통 신호에 대한 타이밍을 결정하고, 타이밍에 기초하여 교통 신호의 타이밍을 제어하도록 구성된다.
일 특징에서, 신경망을 사용하여 일련의 이미지들에 포함된 객체의 속도를 추정하는 방법은, 일련의 이미지들을 수신하는 단계 - 이미지들은 로컬 기하학적 형상을 갖는 표면을 포함함 -; 신경망에 의해: 표면 상의 일련의 이미지들에 포함된 객체를 검출하는 단계; 일련의 이미지들에 포함된 객체의 픽셀 좌표를 각각 결정하는 단계; 일련의 이미지들에 포함된 객체 주위의 경계 상자들을 각각 결정하는 단계; 일련의 이미지들에 포함된 객체 주위의 경계 상자들에 기초하여 일련의 이미지들에 대한 픽셀 좌표와 거리 좌표 사이에서, 표면의 로컬 기하학적 형상을 기술하는 전역 매개변수들의 함수가 아닌 로컬 매핑들을 각각 결정하는 단계; 및 일련의 이미지들에 대해 결정된 거리 좌표에 기초하여 표면에 대해 이동하는 객체의 속도를 결정하는 단계를 포함한다.
일 특징에서, 속도 추정 시스템은, 일련의 이미지들을 수신하고 - 이미지들은 로컬 기하학적 형상을 갖는 표면을 포함함 -; 표면 상의 일련의 이미지들에 포함된 객체를 검출하고; 일련의 이미지들에 포함된 객체의 픽셀 좌표를 각각 결정하고; 일련의 이미지들에 포함된 객체 주위의 경계 상자들을 각각 결정하고; 일련의 이미지들에 포함된 객체 주위의 경계 상자들에 기초하여 일련의 이미지들에 대한 픽셀 좌표와 거리 좌표 사이에서, 표면의 로컬 기하학적 형상을 기술하는 전역 매개변수들의 함수가 아닌 로컬 매핑들을 각각 결정하기 위한 제1 수단; 및 일련의 이미지들에 대해 결정된 거리 좌표에 기초하여 표면에 대해 이동하는 객체의 속도를 결정하기 위한 제2 수단을 포함한다.
본 개시내용의 추가의 적용 분야들은 발명을 실시하기 위한 구체적인 내용, 청구 범위 및 도면으로부터 명백해질 것이다. 발명을 실시하기 위한 구체적인 내용 및 특정 예들은 단지 예시를 위한 것이며, 본 개시내용의 범위를 제한하려는 것이 아니다.
특허 또는 출원 파일은 컬러로 실행된 적어도 하나의 도면을 포함한다. 컬러 도면(들)을 갖는 본 특허 또는 특허 출원 공개 공보의 사본들은 요청 및 필요 수수료의 납부 시 특허청에서 제공할 것이다.
본 개시 내용은 발명을 실시하기 위한 구체적인 내용 및 하기의 첨부 도면들로부터 보다 완전히 이해될 것이다.
도 1은 예시적인 차량 속도 추정 시스템의 기능 블록도이다.
도 2는 예시적인 차량 속도 추정 시스템의 기능 블록도이다.
도 3은 카메라들을 사용하여 촬영된 도로의 부분들의 예시적인 이미지들을 그 도로 위를 이동하는 차량들과 함께 포함한다.
도 4는 차량 교통을 라우팅하기 위한 라우팅 시스템의 예시적인 구현예를 포함한다.
도 5는 교통 시그널링을 위한 시그널링 시스템의 예시적인 구현예를 포함한다.
도 6은 속도 추정 모듈의 예시적인 구현예의 기능 블록도이다.
도 7은 예시적인 도로 표면을 포함한다.
도 8은 도 6에 도시된 예시적인 속도 추정 시스템에 의해 이용될 수 있는 예시적인 차량 검출 시스템의 기능 블록도를 포함한다.
도 9는 훈련 데이터세트로부터의 예시적인 차량 이미지들을 경계 상자들과 함께 포함한다.
도 10은 예시적인 차량의 평면도 및 측면도를 연관된 역 자코비안(inverse Jacobian)과 함께 포함한다.
도 11은 예시적인 훈련 시스템의 기능 블록도이다.
도 12a 및 도 12b는 트랙들을 포함하는 예시적인 이미지 및 이미지로부터 트랙들의 필터링을 예시한다.
도 13은 카메라로부터의 입력을 사용하여 차량 속도를 결정하는 예시적인 방법에 대한 의사코드를 포함한다.
도 14 및 도 15는 2개의 상이한 데이터 세트들 및 데이터 세트들 내의 차량들의 실제(정답(ground-truth)) 속도들에 기초하여 결정된 예시적인 추정 차량 속도들을 포함한다.
도면들에서, 참조 번호들은 유사하고/하거나 동일한 요소들을 식별하기 위해 재사용될 수 있다.
본 개시 내용은 발명을 실시하기 위한 구체적인 내용 및 하기의 첨부 도면들로부터 보다 완전히 이해될 것이다.
도 1은 예시적인 차량 속도 추정 시스템의 기능 블록도이다.
도 2는 예시적인 차량 속도 추정 시스템의 기능 블록도이다.
도 3은 카메라들을 사용하여 촬영된 도로의 부분들의 예시적인 이미지들을 그 도로 위를 이동하는 차량들과 함께 포함한다.
도 4는 차량 교통을 라우팅하기 위한 라우팅 시스템의 예시적인 구현예를 포함한다.
도 5는 교통 시그널링을 위한 시그널링 시스템의 예시적인 구현예를 포함한다.
도 6은 속도 추정 모듈의 예시적인 구현예의 기능 블록도이다.
도 7은 예시적인 도로 표면을 포함한다.
도 8은 도 6에 도시된 예시적인 속도 추정 시스템에 의해 이용될 수 있는 예시적인 차량 검출 시스템의 기능 블록도를 포함한다.
도 9는 훈련 데이터세트로부터의 예시적인 차량 이미지들을 경계 상자들과 함께 포함한다.
도 10은 예시적인 차량의 평면도 및 측면도를 연관된 역 자코비안(inverse Jacobian)과 함께 포함한다.
도 11은 예시적인 훈련 시스템의 기능 블록도이다.
도 12a 및 도 12b는 트랙들을 포함하는 예시적인 이미지 및 이미지로부터 트랙들의 필터링을 예시한다.
도 13은 카메라로부터의 입력을 사용하여 차량 속도를 결정하는 예시적인 방법에 대한 의사코드를 포함한다.
도 14 및 도 15는 2개의 상이한 데이터 세트들 및 데이터 세트들 내의 차량들의 실제(정답(ground-truth)) 속도들에 기초하여 결정된 예시적인 추정 차량 속도들을 포함한다.
도면들에서, 참조 번호들은 유사하고/하거나 동일한 요소들을 식별하기 위해 재사용될 수 있다.
본 출원은 보정되지 않은(uncalibrated)(즉, 알려진 전역 카메라들 매개변수들 없이) 카메라들(예컨대, CCTV 카메라들)로부터의 비디오를 사용하여 객체들(예컨대, 차량들)의 속도들을 결정하기 위한 데이터 기반 접근 방식을 포함한다. 이 접근 방식은 객체의 시각적 외관에 기초하여 도로의 로컬 기하학적 형상(예컨대, 3D 형상)이 정확하게 추정될 수 있다는 관찰에 기초한다. 결과적으로, 본 명세서에 기술된 접근 방식은 보정이 없으며 도로 기하학적 형상에 대해 가정하지 않는다.
본 출원은 로컬 기하학적 형상을 기술하는 전역 매개변수들 없이 픽셀 좌표와 거리 좌표 간의 로컬 매핑들을 결정하기 위해 네트워크를 훈련하는 것을 포함한다. 일 실시예에서, 로컬 매핑들은 각각의 차량의 위치에서의 픽셀과 실제 세계(예컨대, 거리) 좌표 간의 매핑 함수의 자코비안을 회귀함으로써 결정된다. 이를 통해 네트워크는 프레임당 차량 변위들을 픽셀로부터 거리(예컨대, 미터)로 직접 변환하여 차량 속도들을 계산할 수 있다. 일반적으로 자코비안은 좌표계를 변경할 때 왜곡들을 설명하는 편미분(여기서, 미분은 선의 근사(approximation of a line)의 기울기)을 포함하는 수학적 변환이다.
도 1은 예시적인 차량 속도 추정 시스템의 기능 블록도이다. 차량 속도 추정의 예가 기술될 것이지만, 본 출원은 또한 표면들(예컨대, 지면 및/또는 다른 유형의 길(path), 물, 눈(snow), 등) 상에서 다른 유형의 객체들(예컨대, 보행자, 자전거 타는 사람들, 달리기 하는 사람들, 트래킹하는 사람들, 산악 자전거 타는 사람들, 보트 타는 사람들, 수영하는 사람들, 스키 타는 사람들, 스노모빌 타는 사람들, 등)의 속도들을 추정하는 데에도 적용 가능하다.
도시된 실시예에서, 카메라(104)는 차량들이 이동하는 도로 부분의 비디오를 촬영한다. 도로는 평면(오르막길들 및/또는 내리막길들 없음) 및 직선일 수 있고, 도로는 평면일 수 있고 하나 이상의 커브들을 포함할 수 있으며, 도로는 비평면(하나 이상의 오르막길들 및/또는 내리막길들 포함함) 및 직선일 수 있거나, 도로는 비평면일 수 있고 하나 이상의 커브들을 포함할 수 있다. 카메라(104)는 60 Hz, 120 Hz 등과 같은 미리 결정된 속도로 이미지들을 촬영한다. 일련의 이미지들(또는 이미지들의 시계열(time series))이 비디오를 형성한다.
속도 추정 모듈(108)은 아래에서 더 논의되는 바와 같이 카메라(104)로부터의 이미지들을 사용하여 도로 상의 차량의 속도를 추정한다. 다양한 구현예들에서, 속도 추정 모듈(108)은 카메라(104)로부터의 이미지들을 사용하여 도로 상의 각각의 차량의 속도를 추정할 수 있다. 카메라(104)를 사용하여 촬영되는 비디오의 예가 제공되지만, 본 출원은 또한 하나 이상의 비디오 소스들(예컨대, YouTube, 비디오 게임들) 및/또는 데이터베이스들로부터와 같은 인터넷과 같은 네트워크를 통해 획득된 비디오를 사용하여 차량의 속도를 추정하는 데 적용 가능하다. 본 출원은 또한 가상 표면들(예컨대, 길 또는 지면) 상의 가상 차량들을 포함하도록 생성된 애니메이션화된 비디오와 같이, 하나 이상의 카메라들에 의해 생성되지 않은 비디오에 적용 가능하다.
속도 추정 모듈(108)은 카메라(104)로부터의 이미지들을 사용하여 도로 상의 각각의 차량의 속도를 추정할 수 있다. 속도 추정 모듈(108)은 도로 상의 모든 차량들의 속도들을 각각 평균화하여 평균 차량 속도를 결정할 수 있다.
도 2은 예시적인 차량 속도 추정 시스템의 기능 블록도이다. 도시된 바와 같이, 속도 추정 모듈(108)은 카메라들(204)과 같은 하나 이상의 추가 카메라들로부터 비디오를 수신할 수 있다. 카메라들(204)은 카메라(104)와는 상이한 도로들의 상이한 부분들 및/또는 카메라(104)와 동일한 도로의 상이한 부분들의 비디오를 촬영할 수 있다. 속도 추정 모듈(108)은 카메라들(104, 204)의 각각에 의해 촬영된 차량들의 속도들을 추정할 수 있다.
카메라들은 고정된 시야(field of view)를 가질 수 있거나, 카메라들은 시야를 선택적으로 상향 및 하향으로 틸팅(tilt)하고/틸팅하거나 시야를 선택적으로 우향 및 좌향으로 패닝(pan)하도록 구성될 수 있다. 다양한 구현예들에서, 카메라들은 차량들과 함께 이동하는 차량들의 카메라들일 수 있다. 도 3은 카메라들을 사용하여 촬영된 도로의 부분들의 예시적인 이미지들을 그 도로 위를 이동하는 차량들과 함께 포함한다. 카메라들의 위치들은 카메라들에 의해 전송되거나, 예를 들어, 그의 비디오와 함께 전송된 카메라의 고유 식별자에 기초하여 결정될 수 있다.
속도 추정 모듈(108)에 의해 추정된 차량 속도들은 하나 이상의 목적들을 위해 사용될 수 있다. 예를 들어, 도 4는 차량 교통을 라우팅하기 위한 라우팅 시스템의 예시적인 구현예를 포함한다. 속도 추정 모듈(108)은 다양한 위치들에서의 차량들의 속도들을 경로 모듈(404)에 전송할 수 있다.
경로 모듈(404)은 출발 위치, 목적지 위치, 및 출발 위치와 목적지 위치 사이의 하나 이상의 위치들에서의 차량 속도들에 기초하여 차량이 출발 위치로부터 목적지 위치로 이동하는 경로를 결정할 수 있다. 예를 들어, 경로 모듈(404)은 다양한 상이한 위치들에서의 차량 속도들 중 하나 이상에 기초하여 출발 위치로부터 목적지 위치까지의 가장 빠른 가능한 경로를 결정할 수 있고 차량에 대한 경로를 가장 빠른 가능한 경로로 설정할 수 있다.
예시적인 차량들(408-1, 408-2, 408-N)("차량들(408)")이 도시되며, 여기서 N은 1 이상의 정수이다. 다양한 구현예들에서, 차량들(408)은 한 무리(fleet)의 자율 차량들, 반자율 차량들, 또는 비자율(운전자 구동) 차량일 수 있다. 차량들(408)은 경로 모듈(404)에 의해 설정된 각각의 경로들에 따라 그의 각각의 목적지 위치들로 내비게이팅하거나 그곳들로 내비게이팅하기 위한 방향들을 (예컨대, 청각적으로 그리고/또는 시각적으로) 제공할 수 있다.
경로 모듈(404)은 또한 차량이 그의 목적지 위치로 이동하는 동안 차량의 경로를 선택적으로 업데이트할 수 있다. 차량들(408)의 각각은 그의 위치를 경로 모듈(404)에 무선으로 전송할 수 있다. 현재 경로를 따라 하나 이상의 위치들에서 차량 속도들이 감소하거나 미리 결정된 속도 아래로 떨어질 때, 경로 모듈(404)은 그러한 하나 이상의 위치들을 회피하고 차량이 목적지 위치에 가장 빨리 도달할 수 있게 하는 경로를 따르도록 경로를 업데이트할 수 있다. 차량들(408)의 예가 제공되었지만, 본 출원은 스마트폰, 태블릿 등과 같은 모바일 장치들에도 적용 가능하다. 또한, 라우팅의 예들이 제공되었지만, 경로 모듈(404)은 하나 이상의 다른 이유들로 차량 속도들 중 하나 이상에 기초하여 차량들의 경로를 결정하거나 조정할 수 있다.
도 5는 교통 시그널링을 위한 시그널링 시스템의 예시적인 구현예를 포함한다. 속도 추정 모듈(108)은 다양한 위치들에서의 차량들의 속도들을 신호 제어 모듈(504)에 전송할 수 있다. 신호 제어 모듈(504)은 각각의 위치들에서 또는 그 근처에서의 차량 속도들 중 하나 이상에 기초하여 교통 신호들(508-1, 508-2, 508-M)의 타이밍을 제어할 수 있으며, 여기서 M은 1 이상의 정수이다. 예를 들어, 신호 제어 모듈(504)은, 교차로 또는 그 근처 방향의 차량 속도들이 미리 결정된 속도 미만이거나 미리 정해진 기간 동안 미리 정해진 속도 미만이었던 경우, 차량들이 교차로를 통해 그 방향으로 주행하도록 허용되는 기간을 증가시키기 위해 교차로에서 교통 신호를 제어할 수 있다. 신호 제어 모듈(504)은 또한 차량들이 교차로를 통해 다른 방향으로 주행하도록 허용되는 기간을 감소시키기 위해 교통 신호를 제어할 수 있다. 시그널링을 제어하는 예들이 제공되었지만, 신호 제어 모듈(504)은 하나 이상의 다른 이유들로 차량 속도들 중 하나 이상에 기초하여 하나 이상의 교통 신호들의 타이밍을 결정하거나 조정할 수 있다.
속도 추정 모듈(108)에 의해 추정된 차량 속도의 예시적인 용도들이 제공되었지만, 본 출원은 또한 차량 속도들 중 하나 이상의 다른 용도들에도 적용 가능하다.
도 6은 속도 추정 모듈(108)의 예시적인 구현예의 기능 블록도이다. 차량 검출 모듈(604)(또는 보다 일반적으로 검출 모듈)은 카메라로부터의 비디오의 각각의 프레임 내의 하나 이상의 차량들의 위치들(예컨대, 픽셀 좌표)을 검출 및 결정한다. 트랙킹 모듈(608)은 프레임에서 프레임으로 각각의 차량을 트랙킹하여 차량들에 대한 트랙들을 각각 생성한다. 차량에 대한 트랙에는 그 차량에 대한 일련(time series)의 픽셀 좌표가 포함된다.
속도 모듈(612)은 아래에서 더 논의되는 바와 같이 이미지에서 이미지로와 같이, 시간에 따른 차량의 픽셀 좌표의 변화에 기초하여 차량의 속도를 결정한다. 속도 모듈(612)은 주어진 시간에 다수의 차량들 또는 모든 차량들의 속도들을 평균화함으로써 평균 차량 속도를 결정할 수 있다. 평균화는 각각의 차량의 속도들을 합산하고 합계를 합산된 속도들의 총 개수로 나누는 것을 포함할 수 있다.
요약하면, 속도 추정 모듈(108)은 각각의 차량을 검출 및 트랙킹하고 이어서 그의 속도를 추정하는 3단계 파이프라인을 포함한다. 보다 구체적으로, 속도 추정 모듈(108)은 차량 속도를 결정하기 위해 (1) 차량 검출, (2) 차량 트랙킹 및 (3) 픽셀 변위-대-속도 변환을 수행한다. 차량 속도는, 카메라 보정을 필요로 하지 않고, 그리고 도로의 편평도 또는 직진도에 대한 가정 없이, 차량 속도 추정을 위해 특별히 훈련된 심층 네트워크를 사용하여 추정된다. 차량 속도 추정에는 전용 차량 속도 센서들이 사용되지 않는다.
일 실시예에서, 차량 검출은 차량의 픽셀 좌표를 결정하기 위해, Faster-RCNN과 같은 심층 네트워크에 기반한 객체 검출기(객체 검출 알고리즘)를 사용하는 차량 검출 모듈(604)에 의해 수행된다. Faster-RCNN에 대한 추가 정보는 “Faster R-CNN: Towards Real-Time Object Detection with Regional proposal Networks”(Shaoqing Ren et al., IEEE Transactions on pattern Analysis and Machine Intelligence, 39(6):1137-1149, June 2017)에서 찾을 수 있으며, 그 전체 내용이 본 명세서에 포함된다. 트랙킹은 차량 트랙들을 형성하기 위해 시간 경과에 따른 시간적 차량 검출들(예컨대, 2D 경계 상자들)을 연결하는 것을 포함한다. 트래커(tracker)는 휴리스틱(heuristic)(예컨대, 칼만 필터 포함)이거나 훈련될 수 있다. 차량 속도 추정은 각각의 트랙(예컨대, 시간 경과에 따른 차량의 픽셀 좌표)을 도로 상에 정렬된 좌표계의 변위(예컨대, 미터)로 변환하는 것을 포함한다. 이는 이미지 픽셀을 도로 표면과 매핑하는 호모그래피를 사용하는 것을 포함할 수 있다. 호모그래피가 결정되면, 차량 트랙들은 차량 속도 추정을 위해 실제 좌표에 투영될 수 있다.
속도 추정 모듈(108)은 카메라 뷰를 카메라의 시야 내의 도로 평면과 관련시키는 변환(호모그래피)을 추정한다. 이는 카메라를 보정하는 것과 유사하지만 상이하다. 호모그래피를 정확하게 추정하는 것은 정확한 차량 속도 추정치들을 제공한다.
카메라 매개변수들은 카메라 광학을 기술하는 고유 매개변수들(예컨대, 주점(principal point), 초점 거리 및 왜곡 계수들) 및 3D 세계에서 카메라의 위치를 기술하는 외부 매개변수들(예컨대, 병진운동 및 회전)을 포함한다. 본 명세서에서 논의된 개념들은, 보정 매개변수들이 사용자에 의해 수동으로 입력되거나 프레임으로부터 추정되는 카메라 보정과 상이하다. 수동 입력은 사용자가 치수들로 도로의 여러 지점들에 주석을 다는 것(annotating)을 포함할 수 있다. 추정은 직선 도로를 가정할 수 있으며, 소실점(vanishing point)들을 도로 표시들(예컨대, 선 표시들)의 교차 지점으로서 검출하는 것에 의존하거나 차량 움직임에 의존할 수 있다. 일단 카메라 매개변수들이 알려지면, 그리고 평면 도로를 가정하여, 이들은 알려지지 않은 스케일링 인자(scaling factor)까지 도로 호모그래피를 직접 산출한다. 이 인자는 또한 정확하게 추정해야 되는데, 모든 추정 속도들이 이에 비례할 것이기 때문이다.
여러 개의 거리들이 도로 평면 상에서 정확하게 측정되는 경우 카메라 매개변수들을 보정하는 데 수동 주석들이 사용될 수 있다. 카메라 매개변수들을 보정하는 완전 자동 접근 방식은 차량들을 3D 포즈와 함께 인식하고, 3D 모델을 검색하고, 3D 모델을 CCTV 프레임 상의 경계 상자와 정렬함으로써 장면 스케일을 추정하는 것을 포함할 수 있다. 그러나, 이러한 카메라 매개변수 보정 접근 방식들은 다음과 같이 부정확한 가정들을 하는 경향이 있다: (1) 카메라가 고정되어 있다; (2) 도로가 평면이다; 그리고 (3) 도로가 직선이다. 본 명세서에 기술된 시스템들 및 방법들은 팬 틸트 줌(PTZ) 카메라들을 사용하는 경우에도 정확도를 제공하며 도로 기하학적 형상에 관한 임의의 가정을 포함하지 않는다.
속도 모듈(612)은 픽셀 좌표-대-속도 변환을 수행한다. 전술된 바와 같이, 본 출원은 단안 카메라와 같은 카메라를 사용하여 촬영된 차량들의 평균 속도를 추정하는 것을 포함한다. 먼저, 속도 모듈(612)은 각각의 시간(비디오의 프레임)에서 각각의 차량에 대한 순시 속도(instantaneous speed)를 결정한다. 둘째, 평균화 모듈(616)은 주어진 시간에 모든 차량들에 대한 순시 속도들을 평균화하여 그 시간에서의 평균 속도들을 결정한다.
세계 3D(3차원) 좌표계에서 도로 상에서 이동하는 점()으로 정의된 주어진 차량(V)을 고려한다. 차량 궤적(TV)은 시간 경과에 따라 차량에 의해 연속적으로(successively)/연속적으로(consecutively) 점유되는 위치들의 시퀀스로 표시될 수 있다:
여기서, 시간(t)은 [0, T] 범위에서 변한다. 차량의 평균 속도(Sv)는 2개의 시간들 사이의 차량 궤적 길이를 2개의 시간들 사이의 기간으로 나눈 값으로 정의될 수 있으며 다음 방정식에 의해 표현될 수 있다:
여기서 dv는 차량의 극소 변위를 나타내고, ||dv||는 그것의 유클리드 노름(Euclidean norm), 즉 변위의 길이를 나타낸다. 차량(v)의 실제 3D 위치는 알려지지 않을 수 있으므로, 카메라 평면(픽셀 좌표)에서 차량(v)의 2D(2차원) 투영이 사용된다. 보다 구체적으로, 2D 트랙이 사용되며, 여기서 2D 트랙은 다음과 같이 정의된다.
여기서, t는 시간(0)과 시간(T) 사이의 이미지/프레임에 대응하고, pt는 시간(t)에서 차량의 2D x 및 y 픽셀 좌표(xt, yt)를 포함한다.
가 픽셀 좌표와 실제 좌표 간의 매핑을 나타내게 하여 F(p) = v가 되게 한다. 매핑은 일반적으로 도로가 스스로를 막을 수 없기 때문에 일대일이다. 예시적인 도로 표면이 도 7의 좌측에 3D 현실 세계 공간에 임베딩된 2D 연속 매니폴드로 도시되어 있다. 차량의 속도는 다음과 같이 표현될 수 있다:
도 7의 좌측은 연속적인 프레임들(t-2, ..., t+2)에서 도로 상의 차량(v)의 궤적(Tv)을 예시한다. 2D 도로 매니폴드의 3D 형상은 각각의 사각형이 1 m x 1 m 면적에 대응하는 회색 격자로 하이라이트된다. 이 예에서 도로는 직선도 아니고 평평하지도 않다. 는 이미지 픽셀과 3D 세계 좌표 사이의 매핑을 나타낸다.
도 7의 우측은 시간 에서의 궤적 상의 도 7의 좌측의 일부분의 확대도이다. pt에서 F의 자코비안과 픽셀에서의 변위(=pt+1-pt) 사이의 곱()은 단위(예컨대, 미터법) 체계에서 3D 현실 세계의 변위에 대한 1차 근사치를 생성한다.
속도 모듈(612)은 작은 프레임당 변위들에 기초하거나 그들의 합으로서 차량의 순간 속도를 결정한다:
매핑 함수(F(p))(호모그래피)는 도로 매니폴드의 3D 기하학적 형상과 카메라의 매개변수들에 따라 달라진다. 매핑 함수(F)는 도로의 모든 곳에서 연속적이고 미분 가능하기 때문에, 본 출원은 자코비안(J)으로 표현되는 선형 변환의 사용을 포함하며
이는 p에 가까운 F의 정확한 1차 근사값으로서, 즉
이때
||pt+1 - pt||는 설계상 작기 때문에, x = pt+1 및 p = pt는 위의 방정식들에서 다음을 생성하도록 사용될 수 있다:
여기서, =pt+1-pt는 시간들(프레임들)(t와 t+1) 사이의 차량(V)의 픽셀 변위이다. 다시 말해서, 속도 모듈(612)은 차량의 위치(p)에서의 자코비안과 2개의 이미지들/프레임들 사이의 기간에 걸친 픽셀 좌표의 변화에 기초하여 차량의 속도를 추정한다.
도 8은 도 6에 도시된 속도 추정 모듈(108)에 의해 이용될 수 있는 예시적인 차량 검출 모듈(604)의 기능 블록도를 포함한다. 피처(feature) 검출 모듈(804)은 예를 들어, 카메라에 의해 생성된 비디오를 수신한다. 피처 검출 모듈(804)은 피처 검출 알고리즘을 사용하여 한 번에 비디오의 프레임/이미지에서 피처들을 식별한다. 영역 제안 모듈(808)은 영역 제안 알고리즘을 사용하여 피처들에 기초하여 프레임에서 관심 영역들을 제안한다. 영역 풀링 모듈(region pooling module)(812)은 제안된 영역들에 기초하여 피처들을 풀링하여 풀링된 피처들을 생성한다.
분류기 모듈(816)은 객체 분류 알고리즘을 사용하여 풀링된 피처들에 의해 형성된 객체들을 분류한다. 객체들의 하나의 가능한 분류는 차량들을 포함한다. 분류기 모듈(816)은 또한 각각의 분류된 객체에 대한 점수들을 결정할 수 있으며, 여기서 객체의 점수는 객체에 대해 결정된 분류의 상대적 신뢰도를 나타낸다.
경계 모듈(820)은 식별된 객체들의 외부 에지들의 경계를 이루는 2D 경계 상자들을 결정한다. 경계 모듈(820)은 또한 경계 상자들의 중심들의 좌표와 같은 객체들의 좌표(p)를 결정할 수 있다. 자코비안 모듈(824)은 전술한 바와 같이 각각의 객체에 대한 자코비안(JF)을 결정한다.
도 8에 도시된 실시예에서. Faster-RCNN은, 전술한 바와 같이, 공동으로 (1) 비디오 프레임들에서 차량들을 검출하고, (2) 자코비안(JF)을 사용하여 픽셀 좌표와 거리 좌표 간의 로컬 매핑(전역 매개변수들의 함수가 아님)을 추정하도록 수정된다. 수정된 Faster-RCNN은 각각의 비디오 프레임에 적용되어, 각각 연관된 경계 상자 및 자코비안을 사용하여 결정된 픽셀 좌표와 거리 좌표 간의 로컬 매핑들을 갖는 차량 검출들의 세트를 획득할 수 있다.
도 8에 도시된 실시예에서, 수정된 Faster-RCNN은, (예를 들어, 영역 풀링 모듈(812) 및 영역 제안 모듈(808)에서의) 하나 이상의 영역 제안 층들이 뒤따르는 (피처 검출 모듈(804)에서의) ResNet-50 백본을 포함하는 심층 신경망이다. 영역 풀링 모듈(812)에 의해 출력된 각각의 비디오 프레임의 풀링된 피처들에 대해, 영역 제안(즉, 이미지 내의 2D 경계 상자)이 경계 모듈(820)에 의해 출력되고, 분류(예컨대, 자동차, 트럭, 버스, 오토바이) 및 신뢰도 점수가 분류기 모듈(816)에 의해 출력된다. 낮은 신뢰도 점수들을 갖는 영역 제안들은 차량 검출 모듈(604)에 의해 폐기된다. 미리 결정된 분류(예컨대, 차량들)가 없는 객체들도 폐기될 수 있다.
또한, 도 8에 예시된 수정된 Faster-RCNN은 각각의 비디오 프레임에 대해 픽셀 좌표와 거리 좌표 간의 로컬 매핑들을 결정하기 위한 자코비안 모듈(824)을 포함하며, 그와 같이 함에 있어서 유리하게는 이미지 프레임의 로컬 기하학적 형상을 기술하는 전역 매개변수들 없이 한다. 일 실시예에서, 자코비안 모듈(824)은, 각각의 영역 제안에 대해 자코비안의 역에 대응하는 3x2 행렬(JF-1(p))을 예측하는 다른 회귀 분기를 포함한다. 자코비안의 역은 차량의 크기에 비례하여 스케일링될 수 있다. 다양한 구현예들에서, 자코비안 모듈(824)은 수정된 Faster-RCNN과 별도로 구현될 수 있다. 그러나, 도 8에 도시된 바와 같은 구현예는 자코비안들의 회귀에 대한 독립적인 구현예에 비해 향상된 계산 효율성을 제공할 수 있다.
일반적으로 자코비안은 배향 및 스케일 측면에서 카메라에 대한 도로 매니폴드의 로컬 기하학적 형상을 기술하는 데 사용된다. 차량이 도로와 접촉하고 있기 때문에, 자코비안 모듈(824)은 차량의 시각적 외관에 기초하여 자코비안을 추정한다.
도 9는 훈련 데이터세트로부터의 예시 차량 이미지들을 2D 및 3D 경계 상자들과 함께 포함한다. 도 10은 예시적인 차량의 평면도 및 측면도를 연관된 역 자코비안()과 함께 포함한다. 역 자코비안은, 차량이 도로 평면 상에서 전방으로 한 단위(예컨대, 미터) 이동할 때(), 또는 도로 평면 상에서 측방으로 한 단위(예컨대, 미터) 이동할 때() 픽셀에서의 변위에 대응한다.
도 11는 예시적인 훈련 시스템의 기능 블록도이다. 훈련 모듈(1104)은 지도(supervised) 방식으로 훈련 데이터세트(1108)를 사용하여 차량 검출 모듈(604)(더 구체적으로 자코비안 모듈(824))을 훈련시킨다. 훈련 데이터세트(1108)는 각각 차량 제안들의 이미지들 및 그들의 역 자코비안들을 포함한다. 수정된 Faster-RCNN에서 이미 사용된 손실 함수들에 추가하여, 훈련 모듈(1104)은 다음과 같이 기술될 수 있는 요소별(element-wise) 평활 회귀 손실을 최소화하도록 차량 검출 모듈(604)을 훈련시킨다:
여기서, 는 제안()에 대한 네트워크에 의해 회귀된 역 자코비안이고, 는 대응하는 정답 역 자코비안이다.
차량 검출 모듈(604)을 훈련시키고, 정답()을 결정하기 위해, 훈련 데이터세트(1108)가 사용되며 그들의 2D 및 3D 경계 상자들로 주석이 달린 차량들의 이미지들을 포함한다. 단지 예를 들기 위한 것으로, 훈련 데이터세트(1108)는 BoxCars116k 데이터세트 또는 다른 적절한 훈련 데이터세트를 포함할 수 있다. 2D 및 3D 경계 상자들을 포함하는 차량들의 예시적인 이미지들이 도 9에 도시된다. 훈련 데이터세트(1108)는 다양한 상이한 크기들의 차량들의 이미지들을 다양한 상이한 관점들로부터, 다양한 상이한 스케일들로 포함한다.
자코비안 모듈(824)은 차량의 3D 경계 상자로부터 자코비안 및 역 자코비안을 결정하도록 훈련된다. 차량의 3D 경계 상자는 3D 경계 상자의 8개의 모서리들의 세트/목록(B = [ci]i=1…8)을 포함하며, 여기서 각각의 모서리(ci = (cxi, cyi))는 이미지의 해당 모서리의 픽셀 좌표를 포함한다.
가 F의 역 매핑을 나타내게 하며, 즉, 는 도로 매니폴드의 3D 점(v)을 픽셀 좌표(p)의 이미지에 투영한다. 도 9에 예시된 바와 같이, 세계 좌표계이 차량(V)을 중심으로 하여 그와 정렬되어 있다고 가정한다.
자코비안은 와 같이 정의되며, 여기서,
및
차량이 실제 세계에서 전방으로 한 단위(예컨대, 1미터) 만큼 이동할 때(v=(X,Y,Z)→vx+1=(X+1,Y,Z), 그리고 측방으로 한 단위(예컨대, 1미터) 만큼 이동할 때(v=(X,Y,Z)→vy+1=(X,Y+1,Z) 카메라 뷰에서 차량(V)의 변위를 각각 픽셀 단위로 나타낸다.
경계 상자의 좌표가 주어지면, 자코비안 모듈(824)은 역 자코비안()을 다음으로 근사화할 수 있다.
여기서, A, B, C 및 D는 3D 경계 상자의 하부 모서리들의 좌표이고(예컨대, 도 9 참조), L, W > 0은 차량(V)의 예컨대 미터 단위의 각각의 길이(L) 및 너비(W)이다.
프레임/이미지당 차량 검출 정보가 획득되면, 트랙킹 모듈(608)은 비디오에서 각각의 차량(v)의 변위(TV)(위의 방정식들 참조)를 트랙킹한다. 트랙킹 모듈(608)은 SORT 트랙킹 알고리즘 또는 다른 적절한 트랙킹 알고리즘과 같은 트랙킹 알고리즘을 사용할 수 있다. SORT 트랙킹 알고리즘이 간단하고 빠를 수 있으며 이는 칼만 필터에 기초한다. SORT 알고리즘에 관한 추가 정보는 “Simple Online and Realtime Tracking”(Alex Bewley, et al., ICIP pages 3646-3468, IEEE, 2016)에서 찾을 수 있으며, 그 전체 내용이 본 명세서에 포함된다. 본 출원은 다른 트랙킹 알고리즘들에도 적용 가능하다.
트랙킹 알고리즘은 연속 프레임들에서 검출된 상자들을 매칭할 수 있다. 매칭은 이미 미리 결정된 수보다 많은 검출들을 포함하는 긴 트랙들과 같은 신뢰도 있는 트랙들과 새로운 검출들의 매칭을 우선순위화할 수 있다. 미리 결정된 수는 1 이상의 정수이며, 예를 들어 5 이상일 수 있다. 트랙킹 알고리즘은 또한 미리 결정된 수보다 적은 수의 검출들을 포함하고/하거나 이동하지 않는 차량들에 대한 트랙들과 같은 오류 검출(false detection)들을 제거할 수 있다. 도 12a 및 도 12b는 필터링의 예들을 예시한다. 도 12a는 모든 검출들을 포함한다. 도 12b는 적어도 미리 결정된 수의 검출들을 갖는 필터링된 트랙들을 포함한다.
도 13은 카메라로부터의 입력을 사용하여 차량 속도를 결정하기 위한 예시적인 방법(알고리즘)에 대한 의사코드를 포함한다. 카메라로부터의 입력 비디오가 주어지면, (#1) 제1 차량 검출 모듈(604)은 각각의 프레임(It)에 Faster-RCNN을 독립적으로 실행하여 Nt 차량 검출들의 세트를 얻을 수 있다
여기서, 는 차량(vj)의 2D 위치를 나타내고, 는 신뢰도 점수이고, 는 자코비안 모듈(824)에 의해 결정(회귀)된 그의 역 자코비안이다. 트랙킹 모듈(608)은 미리 결정된 값보다 작은 신뢰도 점수들과 같은 낮은 점수들을 가진 검출들을 제거한다.
다음으로(#2), 트랙킹 모듈(608)은 예컨대 SORT 알고리즘을 사용하여 검출들을 차량 트랙들의 세트({Tv})로 일시적으로 집계한다. 다음으로(#3), 속도 모듈(612)은 위의 방정식을 사용하여 각각의 트랙에 대한 평균 차량 속도를 결정한다. 다양한 구현예들에서, 속도 모듈(612)은 차량 속도 추정을 더 강건하게 만들기 위해 중간값 필터링을 사용할 수 있다. 다음으로(#4), 속도 모듈(612)은 각각의 차량의 속도들을 합산하고 그 합계를 결정하기 위해 사용된 차량들의 총 개수로 나눔으로써 차량들 각각의 차량 속도들을 평균화한다.
도 13의 #2는 너무 짧은(예컨대, 검출들의 길이 또는 횟수가 미리 결정된 값 미만임) 트랙들 및 이동하지 않는(정지된) 차량들의 트랙들을 제거하는 것을 포함한다. #1은 미리 결정된 값보다 낮은 신뢰도 점수를 갖는 검출들과 같은 약한 검출들을 제거하는 것을 포함한다.
도 14 및 도 15는 2개의 상이한 데이터 세트들 및 데이터 세트들 내의 차량들의 실제(정답) 속도들에 기초하여 결정된 예시적인 추정 차량 속도들을 포함한다. 곡선들 및/또는 하나 이상의 오르막길들 및/또는 내리막길들이 있는 도로들이 데이터 세트들에 존재했다. 예시된 바와 같이, 본 명세서에서 추정된 바와 같은 차량 속도들은 정확하다. 위에서 논의한 바와 같이, 본 명세서에 기술된 시스템들 및 방법들은 카메라의 보정을 필요로 하지 않는다.
전술한 설명은 본질적으로 단지 예시적인 것이며, 본 개시내용, 그의 응용, 또는 사용들을 제한하려는 것이 아니다. 본 개시내용의 광범위한 교시들은 다양한 형태들로 구현될 수 있다. 따라서, 본 개시내용은 특정 예들을 포함하지만, 본 개시내용의 진정한 범위는 그들에 제한되지 않아야 하는데, 이는 도면들, 명세서 및 하기 청구 범위의 연구에 따라 다른 변형들이 명백해질 것이기 때문이다. 방법 내의 하나 이상의 단계들은 본 개시내용의 원리들을 변경하지 않고 상이한 순서로(또는 동시에) 실행될 수 있음을 이해해야 한다. 또한, 각각의 실시예들은 소정의 피처들을 갖는 것으로 전술되었지만, 본 개시내용의 임의의 실시예와 관련하여 기술된 이들 피처들 중 임의의 하나 이상은 임의의 다른 실시예들의 피처들로 구현되고/되거나 결합될 수 있는데, 그 조합은 명시적으로 기술되지는 않는다 다시 말해서, 기술된 실시예들은 상호 배타적이지 않으며, 하나 이상의 실시예들의 서로의 순열은 본 개시내용의 범위 내에 있다.
요소들(예를 들어, 모듈들, 회로 소자들, 반도체 층들 등) 사이의 공간 및 기능적 관계들은 "연결된", "연계된", "결합된", "인접한", "근접한", “상부에”, “위에”, “아래에”, 및 “배치된”을 포함하는 다양한 용어들을 사용하여 설명된다. 제1 및 제2 요소들 사이의 관계가 상기 개시내용에서 설명될 때, "직접적인"것으로 명시적으로 언급되지 않는 한, 그 관계는 다른 중간 요소들이 제1 및 제2 요소들 사이에 존재하지 않는 직접적인 관계일 수 있지만, 또한 하나 이상의 개재 요소들이 제1 요소와 제2 요소 사이에 (공간적으로 또는 기능적으로) 존재하는 간접적인 관계일 수도 있다. 본 명세서에 사용된 바와 같이, 어구 A, B, 및 C중의 적어도 하나는 비-배타적 논리 OR을 사용하여 논리 (A OR B OR C)를 의미하는 것으로 해석되어야 하며, "A중 적어도 하나, B중 적어도 하나 및 C중 적어도 하나"를 의미하는 것으로 해석되어서는 안된다.
도면들에서, 화살표로 나타낸 화살표의 방향은 일반적으로 예시에서 관련성이 있는(of interest) 정보(예컨대, 데이터 또는 명령어들)의 흐름을 나타낸다. 예를 들어, 요소 A와 요소 B가 다양한 정보를 교환하지만, 요소 A로부터 요소 B로 송신되는 정보가 예시와 관련이 있는 경우, 화살표는 요소 A에서 요소 B를 향해 가리킬 수 있다. 이러한 단방향 화살표는 어떤 다른 정보도 요소 B로부터 요소 A로 송신되지 않는다고 암시하는 것이 아니다. 또한, 요소 A로부터 요소 B로 전송된 정보에 대해, 요소 B는 요소 A에 대한 정보의 요청들 또는 수신 응답 확인들을 전송할 수 있다.
아래의 정의들을 포함하여 본 출원에서 용어 "모듈" 또는 용어 "제어기"는 용어, "회로"로 대체될 수 있다. 용어 "모듈"은 ASIC(Application Specific Integrated Circuit); 디지털, 아날로그 또는 혼합 아날로그 / 디지털 이산 회로; 디지털, 아날로그 또는 혼합 아날로그/디지털 집적 회로; 조합 논리 회로; FPGA(Field Programmable Gate Array); 코드를 실행하는 프로세서 회로(공유, 전용 또는 그룹); 프로세서 회로에 의해 실행되는 코드를 저장하는 메모리 회로(공유, 전용 또는 그룹); 설명된 기능을 제공하는 다른 적합한 하드웨어 컴포넌트들; 또는 시스템-온-칩에서와 같이 상기의 일부 또는 전부의 조합을 지칭하거나, 그 일부이거나, 또는 그를 포함할 수 있다.
모듈은 하나 이상의 인터페이스 회로들을 포함할 수 있다. 일부 예들에서, 인터페이스 회로들은 근거리 통신망(LAN), 인터넷, 광역 통신망(WAN) 또는 이들의 조합에 연결된 유선 또는 무선 인터페이스들을 포함할 수 있다. 본 개시내용의 임의의 주어진 모듈의 기능은 인터페이스 회로들을 통해 결합된 다수의 모듈들에 분산될 수 있다. 예를 들어, 다수의 모듈들이 부하 분산(load balancing)을 허용할 수 있다. 다른 예에서, 서버(원격 또는 클라우드라고도 또한 알려짐) 모듈은 클라이언트 모듈 대신 일부 기능을 달성할 수 있다.
상기 사용된 용어, 코드는 소프트웨어, 펌웨어 및/또는 마이크로 코드를 포함할 수 있으며, 프로그램들, 루틴들, 기능들, 클래스들, 데이터 구조들 및/또는 객체들을 지칭할 수 있다. 용어, 공유 프로세서 회로는 다수의 모듈들로부터 일부 또는 모든 코드를 실행하는 단일 프로세서 회로를 포함한다. 용어, 그룹 프로세서 회로는 추가 프로세서 회로들과 결합하여 하나 이상의 모듈로부터 일부 또는 모든 코드를 실행하는 프로세서 회로를 포함한다. 다중 프로세서 회로에 대한 언급은 개별 다이들 상의 다중 프로세서 회로, 단일 다이 상의 다중 프로세서 회로, 단일 프로세서 회로의 다중 코어들, 단일 프로세서 회로의 다중 스레드들, 또는 이들의 조합을 포함한다. 용어, 공유 메모리 회로는 다수의 모듈들의 일부 또는 모든 코드를 저장하는 단일 메모리 회로를 포함한다. 용어, 그룹 메모리 회로는 추가 메모리들과 결합하여, 하나 이상의 모듈로부터의 일부 또는 모든 코드를 저장하는 메모리 회로를 포함한다.
용어, 메모리 회로는 용어, 컴퓨터 판독가능 매체의 서브셋이다. 본 명세서에서 사용되는 용어, 컴퓨터 판독가능 매체는 (예를 들어, 반송파 상에서) 매체를 통해 전파되는 일시적인 전기 또는 전자기 신호들을 포함하지 않으며; 따라서 용어, 컴퓨터 판독가능 매체는 유형(tangible)이고 비일시적인 것으로 간주될 수 있다. 비일시적, 유형의 컴퓨터 판독가능 매체의 제한적이지 않은 예들은 비휘발성 메모리 회로들(예컨대, 플래시 메모리 회로, 소거 가능 프로그램가능 판독 전용 메모리 회로 또는 마스크 판독 전용 메모리 회로), 휘발성 메모리 회로들(예컨대, 정적 랜덤 액세스 메모리 회로 또는 동적 랜덤 액세스 메모리 회로), 자기 저장 매체(예컨대, 아날로그 또는 디지털 자기 테이프 또는 하드 디스크 드라이브), 및 광학 저장 매체(예컨대, CD, DVD 또는 Blu-ray 디스크)이다.
본 출원에 설명된 장치들 및 방법들은 컴퓨터 프로그램들로 구현된 하나 이상의 특정 기능들을 실행하도록 범용 컴퓨터를 구성함으로써 생성된 특수 목적 컴퓨터에 의해 부분적으로 또는 완전히 구현될 수 있다. 전술한 기능 블록들, 흐름도 구성요소들 및 기타 요소들은 숙련된 기술자 또는 프로그래머의 일상적인 작업에 의해 컴퓨터 프로그램들로 변환될 수 있는 소프트웨어 사양들로서 역할을 한다.
컴퓨터 프로그램들은 적어도 하나의 비-일시적, 유형의 컴퓨터 독해가능 매체에 저장된 프로세서 실행가능 명령어들을 포함한다. 컴퓨터 프로그램들은 또한 저장된 데이터를 포함하거나 그에 의존할 수 있다. 컴퓨터 프로그램은 특수 목적 컴퓨터의 하드웨어와 상호작용하는 기본 입/출력 시스템(BIOS), 특수 목적 컴퓨터의 특정 디바이스들과 상호작용하는 디바이스 드라이버들, 하나 이상의 운영 체제들, 사용자 애플리케이션들, 배경 서비스들, 배경 애플리케이션들 등을 포함할 수 있다.
컴퓨터 프로그램들은 다음을 포함할 수 있다: (i) 하이퍼 텍스트 마크업 언어(HTML), 확장성 생성 언어(XML) 또는 자바 스크립트 객체 표기법(JSON)과 같은 파싱될(parsed) 설명 텍스트, (ii) 어셈블리 코드, (iii) 컴파일러에 의해 소스 코드로부터 생성된 객체 코드, (iv) 인터프리터에 의한 실행을 위한 소스 코드, (v) JIT(just-in-time) 컴파일러에 의한 컴파일링 및 실행을 위한 소스 코드 등. 예를 들어, 소스 코드는 C, C ++, C #, Objective-C, Swift, Haskell, Go, SQL, R, Lisp, Java®, Fortran, Perl, Pascal, Curl, OCaml, Javascript®, HTML5(하이퍼 텍스트 마크업 언어 5차 개정), Ada, ASP(Active Server Pages), PHP (PHP: Hypertext Preprocessor), Scala, Eiffel, Smalltalk, Erlang, Ruby, Flash®, Visual Basic®, Lua, MATLAB, SIMULINK 및 Python®을 포함한 언어들의 구문을 사용하여 작성될 수 있다.
Claims (26)
- 속도 추정 시스템으로서,
신경망을 갖는 검출 모듈 - 상기 신경망은:
일련(time series)의 이미지들을 수신하고 - 상기 이미지들은 로컬 기하학적 형상을 갖는 표면을 포함함 -;
상기 일련의 이미지들에 포함된 표면 위의 객체를 검출하고;
상기 일련의 이미지들에 포함된 상기 객체의 픽셀 좌표를 각각 결정하고;
상기 일련의 이미지들에 포함된 객체 주위의 경계 상자(bounding box)들을 각각 결정하고;
상기 일련의 이미지들 각각에 포함된 상기 객체 주위의 상기 경계 상자들에 기초하여 상기 일련의 이미지들에 대한 픽셀 좌표와 거리 좌표 사이의, 상기 표면의 상기 로컬 기하학적 형상을 기술하는 전역 매개변수들의 함수가 아닌 로컬 매핑들을 각각 결정하도록 구성됨 -; 및
상기 일련의 이미지들에 대해 결정된 상기 거리 좌표에 기초하여 상기 표면에 대해 이동하는 상기 객체의 속도를 결정하도록 구성된 속도 모듈을 포함하고,
상기 신경망은 자코비안(Jacobian)들을 사용하여 상기 픽셀 좌표와 거리 좌표 간의 로컬 매핑들을 결정하도록 훈련되고,
상기 로컬 매핑들은 상기 자코비안들을 사용하여 결졍되며,
상기 경계 상자들은 3차원(3D) 경계 상자들을 포함하고,
상기 신경망은 상기 3차원 경계 상자들의 4개의 하부 모서리들의 4개의 픽셀 좌표에 기초하여 상기 자코비안들을 결정하도록 구성되며,
상기 속도 모듈은 카메라의 저장된 보정 매개변수들 없이 상기 객체의 상기 속도를 결정하도록 구성되는,
속도 추정 시스템. - 제1항에 있어서, 상기 일련의 이미지들에 포함된 상기 객체의 속도에 대한 다중 인스턴스들의 평균에 기초하여 상기 객체의 평균 속도를 결정하도록 구성된 평균화 모듈을 더 포함하는, 속도 추정 시스템.
- 제2항에 있어서, 상기 평균화 모듈은 상기 평균 속도를 결정하기 전에 상기 일련의 이미지들에 포함된 상기 객체의 상기 속도들에 대해 중간값 필터링을 수행하는, 속도 추정 시스템.
- 제1항에 있어서, 상기 표면 위의 상기 객체는 도로 위의 차량인, 속도 추정 시스템.
- 제1항에 있어서, 상기 이미지들의 상기 픽셀 좌표에 기초하여 상기 객체의 이동에 대한 트랙을 각각 생성하도록 구성된 트랙킹 모듈을 더 포함하는, 속도 추정 시스템.
- 제5항에 있어서, 상기 트랙킹 모듈은 SORT(simple online and realtime tracking) 트랙킹 알고리즘을 사용하여 상기 이미지들 내의 상기 객체를 트랙킹 하도록 구성되는, 속도 추정 시스템.
- 제5항에 있어서, 상기 트랙킹 모듈은, 상기 이미지들 내의 상기 객체의 검출 수가 미리 결정된 수 미만인 경우 상기 객체의 상기 속도의 결정을 디스에이블(disable)하도록 구성되는, 속도 추정 시스템.
- 제5항에 있어서, 상기 트랙킹 모듈은 상기 객체가 이동하지 않는 경우, 상기 객체의 상기 속도의 결정을 디스에이블 하도록 구성되는, 속도 추정 시스템.
- 제1항에 있어서, 상기 검출 모듈은,
상기 일련의 이미지들 중 하나에서 피처(feature)들을 검출하도록 구성된 피처 검출 모듈;
상기 일련의 이미지들 중 하나에서의 상기 피처들에 기초하여 상기 객체가 존재하는 상기 이미지들 중 하나의 이미지에 대한 영역을 제안하도록 구성된 영역 제안 모듈;
상기 영역 내 피처들을 풀링(pool)하여 풀링된 피처들을 생성하도록 구성된 영역 풀링 모듈;
상기 풀링된 피처들에 기초하여 상기 객체의 분류를 결정하도록 구성된 분류기 모듈; 및
상기 풀링된 피처들에 기초하여 상기 이미지들 중 하나의 이미지에 대한 상기 경계 상자를 결정하도록 구성된 경계 모듈을 포함하는, 속도 추정 시스템. - 제1항에 있어서, 상기 검출 모듈은 컨볼루션 신경망을 포함하는, 속도 추정 시스템.
- 제10항에 있어서, 상기 검출 모듈의 상기 컨볼루션 신경망은 Faster-RCNN(Faster-regions with convolutional neural network) 객체 검출 알고리즘을 실행하는, 속도 추정 시스템.
- 제1항에 있어서, 상기 검출 모듈의 상기 신경망은,
상기 표면 상의 상기 일련의 이미지들에서 제2 객체를 검출하고;
상기 일련의 이미지들에서 상기 제2 객체의 제2 픽셀 좌표를 각각 결정하고;
상기 일련의 이미지들에서 상기 제2 객체 주위의 제2 경계 상자들을 각각 결정하고;
상기 일련의 이미지들에서 상기 제2 객체 주위의 상기 제2 경계 상자들에 기초하여 상기 일련의 이미지들에 대한 픽셀 좌표와 거리 좌표 사이의 상기 표면의 상기 로컬 기하학적 형상을 기술하는 전역 매개변수들의 함수가 아닌 제2 로컬 매핑들을 각각 결정하도록 더 구성되고;
상기 속도 모듈은 상기 일련의 이미지들에 대해 결정된 상기 제2 거리 좌표에 기초하여 상기 표면에 대해 이동하는 상기 제2 객체의 제2 속도를 결정하도록 구성되는, 속도 추정 시스템. - 제12항에 있어서, 상기 속도와 상기 제2 속도의 평균에 기초하여 평균 속도를 결정하도록 구성된 평균 속도 모듈을 더 포함하는, 속도 추정 시스템.
- 제1항에 있어서, 상기 검출 모듈은 단안 카메라로부터 상기 일련의 이미지들을 수신하도록 구성되는, 속도 추정 시스템.
- 제14항에 있어서, 상기 단안 카메라는 팬, 틸트, 줌(pan, tilt, zoom, PTZ) 카메라인, 속도 추정 시스템.
- 제1항에 있어서, 상기 속도 모듈은 상기 이미지들 중 제1 이미지로부터 상기 이미지들 중 제2 이미지로의 상기 픽셀 좌표의 변화에 추가로 기초하여 상기 객체의 상기 속도를 결정하도록 구성되는, 속도 추정 시스템.
- 삭제
- 삭제
- 삭제
- 제1항에 있어서, 상기 검출 모듈은 상기 객체의 길이 및 상기 객체의 폭에 추가로 기초하여 상기 자코비안들을 결정하도록 구성되는, 속도 추정 시스템.
- 제1항에 있어서, 상기 검출 모듈은 네트워크를 통해 비디오 소스로부터 상기 일련의 이미지들을 수신하도록 구성되는, 속도 추정 시스템.
- 삭제
- 라우팅 시스템으로서,
제1항의 상기 속도 추정 시스템; 및
경로 모듈을 포함하며, 상기 경로 모듈은:
상기 객체의 상기 속도에 기초하여 모바일 장치 및 차량 중 하나에 대한 경로를 결정하고;
상기 경로를 상기 모바일 장치와 상기 차량 중 하나로 전송하도록 구성되는, 라우팅 시스템. - 시그널링 시스템으로서,
제1항의 상기 속도 추정 시스템; 및
신호 제어 모듈을 포함하며, 상기 신호 제어 모듈은:
상기 객체의 상기 속도에 기초하여 교통 신호의 타이밍을 결정하고;
상기 타이밍에 기초하여 상기 교통 신호의 타이밍을 제어하도록 구성되는, 시그널링 시스템. - 신경망을 사용하여 일련의 이미지들에 포함된 객체의 속도를 추정하기 위한 방법으로서,
상기 일련의 이미지들을 수신하는 단계 - 상기 이미지들은 로컬 기하학적 형상을 갖는 표면을 포함함 -;
상기 신경망에 의해:
상기 표면 상의 상기 일련의 이미지들에 포함된 객체를 검출하는 단계;
상기 일련의 이미지들에서 상기 객체의 픽셀 좌표를 각각 결정하는 단계;
상기 일련의 이미지들에 포함된 객체 주위의 경계 상자들을 각각 결정하는 단계;
상기 일련의 이미지들에서 상기 객체 주위의 상기 경계 상자들에 기초하여 상기 일련의 이미지들에 대한 픽셀 좌표와 거리 좌표 사이에서, 상기 표면의 상기 로컬 기하학적 형상을 기술하는 전역 매개변수들의 함수가 아닌 로컬 매핑들을 각각 결정하는 단계; 및
상기 일련의 이미지들에 대해 결정된 상기 거리 좌표에 기초하여 상기 표면에 대해 이동하는 상기 객체의 속도를 결정하는 단계를 포함하고,
상기 신경망은 자코비안(Jacobian)들을 사용하여 상기 픽셀 좌표와 상기 거리 좌표 간의 로컬 매핑들을 결정하도록 훈련하는 단계;
상기 로컬 매핑들은 자코비안들을 사용하여 결정되는 단계;
상기 경계 상자들은 3차원(3D) 경계 상자들을 포함하고
상기 신경망은 상기 3차원 경계 상자들의 4개의 하부 모서리들의 3개의 픽셀 좌표에 기초하여 상기 자코비안들을 결정하는 단계; 및
상기 객체의 속도를 결정하는 단계는, 카메라의 저장된 보정 매개변수들 없이 상기 객체의 상기 속도를 결정하는 단계를 더 포함하는,
방법. - 속도 추정 시스템으로서,
일련의 이미지들을 수신하고 - 상기 이미지들은 로컬 기하학적 형상을 갖는 표면을 포함함 -;
상기 표면 상의 상기 일련의 이미지들에 포함된 객체를 검출하고;
상기 일련의 이미지들에서 상기 객체의 픽셀 좌표를 각각 결정하고;
상기 일련의 이미지들에 포함된 객체 주위의 경계 상자들을 각각 결정하고;
상기 일련의 이미지들에서 상기 객체 주위의 상기 경계 상자들에 기초하여 상기 일련의 이미지들에 대한 픽셀 좌표와 거리 좌표 사이의, 상기 표면의 상기 로컬 기하학적 형상을 기술하는 전역 매개변수들의 함수가 아닌 로컬 매핑들을 각각 결정하기 위한 제1 수단; 및
상기 일련의 이미지들에 대해 결정된 상기 거리 좌표에 기초하여 상기 표면에 대해 이동하는 상기 객체의 속도를 결정하기 위한 제2 수단을 포함하고,
상기 제1 수단의 상기 로컬 매핑들은 자코비안들을 사용하여 결정되고,
상기 제1 수단의 상기 경계 상자들은 3차원(3D) 경계 상자들을 포함하고,
상기 자코비안들은 상기 3차원 경계 상자들의 4개의 하부 모서리들의 4개의 픽셀 좌표에 기초하여 결정되도록 구성되고,
상기 제2 수단의 상기 객체의 상기 속도는 카메라의 저장된 보정 매개 변수들 없이 결정되도록 구성하는,
속도 추정 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/162,353 | 2021-01-29 | ||
US17/162,353 US20220245831A1 (en) | 2021-01-29 | 2021-01-29 | Speed estimation systems and methods without camera calibration |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220110100A KR20220110100A (ko) | 2022-08-05 |
KR102711127B1 true KR102711127B1 (ko) | 2024-09-26 |
Family
ID=82612591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220010239A KR102711127B1 (ko) | 2021-01-29 | 2022-01-24 | 카메라 보정 없는 속도 추정 시스템들 및 방법들 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220245831A1 (ko) |
KR (1) | KR102711127B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7217577B2 (ja) * | 2019-03-20 | 2023-02-03 | フォルシアクラリオン・エレクトロニクス株式会社 | キャリブレーション装置、キャリブレーション方法 |
US20230019731A1 (en) * | 2021-07-01 | 2023-01-19 | Naver Corporation | Vehicle speed estimation systems and methods |
CN117197193B (zh) * | 2023-11-07 | 2024-05-28 | 杭州巨岩欣成科技有限公司 | 游泳速度估计方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190311494A1 (en) * | 2018-04-05 | 2019-10-10 | Microsoft Technology Licensing, Llc | Automatic camera calibration |
KR102052833B1 (ko) * | 2018-07-17 | 2019-12-09 | 김항섭 | 영상 추적을 이용한 차량 속도 검출 장치 및 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101759657B1 (ko) * | 2015-09-22 | 2017-07-19 | 송석훈 | 실시간 경로 안내 서비스 제공 방법 |
KR20160092958A (ko) * | 2016-04-30 | 2016-08-05 | 윤종식 | 교차로 신호위반 교통사고 예방 방법 및 그 시스템 |
US11636686B2 (en) * | 2018-09-26 | 2023-04-25 | Five AI Limited | Structure annotation |
KR102604821B1 (ko) * | 2018-11-09 | 2023-11-20 | 에스케이텔레콤 주식회사 | 차량의 위치 추정 장치 및 방법 |
US11373332B2 (en) * | 2020-01-06 | 2022-06-28 | Qualcomm Incorporated | Point-based object localization from images |
EP3869392A1 (en) * | 2020-02-20 | 2021-08-25 | Toyota Jidosha Kabushiki Kaisha | Object pose estimation from an rgb image by a neural network outputting a parameter map |
US11912310B2 (en) * | 2020-06-26 | 2024-02-27 | Tusimple, Inc. | Autonomous driving crash prevention |
CA3193871A1 (en) * | 2020-07-03 | 2022-01-06 | Invision Ai, Inc. | Video-based tracking systems and methods |
-
2021
- 2021-01-29 US US17/162,353 patent/US20220245831A1/en active Pending
-
2022
- 2022-01-24 KR KR1020220010239A patent/KR102711127B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190311494A1 (en) * | 2018-04-05 | 2019-10-10 | Microsoft Technology Licensing, Llc | Automatic camera calibration |
KR102052833B1 (ko) * | 2018-07-17 | 2019-12-09 | 김항섭 | 영상 추적을 이용한 차량 속도 검출 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20220110100A (ko) | 2022-08-05 |
US20220245831A1 (en) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112714913B (zh) | 结构注释 | |
JP7052663B2 (ja) | 物体検出装置、物体検出方法及び物体検出用コンピュータプログラム | |
KR102711127B1 (ko) | 카메라 보정 없는 속도 추정 시스템들 및 방법들 | |
JP7349792B2 (ja) | 車両走行のための情報を提供する方法 | |
CN111024040B (zh) | 距离估计方法和设备 | |
US11670087B2 (en) | Training data generating method for image processing, image processing method, and devices thereof | |
JP7147420B2 (ja) | 物体検出装置、物体検出方法及び物体検出用コンピュータプログラム | |
US7027615B2 (en) | Vision-based highway overhead structure detection system | |
JP2023523243A (ja) | 障害物検出方法及び装置、コンピュータデバイス、並びにコンピュータプログラム | |
JP7078021B2 (ja) | 物体検出装置、物体検出方法及び物体検出用コンピュータプログラム | |
JP5023186B2 (ja) | 3dワーピング手法と固有対象物運動(pom)の検出の組み合わせに基づく対象物の動き検出システム | |
KR20160123668A (ko) | 무인자동주차 기능 지원을 위한 장애물 및 주차구획 인식 장치 및 그 방법 | |
JP2012185011A (ja) | 移動体位置測定装置 | |
US20210312199A1 (en) | Apparatus, method, and computer program for identifying state of object, and controller | |
JP4940177B2 (ja) | 交通流計測装置 | |
KR101030317B1 (ko) | 스테레오 비전을 이용하여 장애물을 추적하는 장치 및 방법 | |
CN103686083A (zh) | 一种基于车载传感器视频流匹配的实时测速方法 | |
KR20110060315A (ko) | 도로주행 로봇의 자기 위치 인식방법 | |
JP2022036726A (ja) | 物体検出装置、物体検出方法及び物体検出用コンピュータプログラム | |
Jain et al. | Relative vehicle velocity estimation using monocular video stream | |
US20220284623A1 (en) | Framework For 3D Object Detection And Depth Prediction From 2D Images | |
KR20230036243A (ko) | 영상과 라이다를 이용한 실시간 3차원 물체 인식 및 추적 시스템 | |
Kanhere | Vision-based detection, tracking and classification of vehicles using stable features with automatic camera calibration | |
KR20230005741A (ko) | 차량 속도 추정을 위한 훈련되지 않은 시스템들 및 방법들 | |
JP7532569B2 (ja) | 歩行者の位置を決定する方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |