autocalib: automatic calibration of traffic cameras at...

38
AutoCalib: Automatic Calibration of Traffic Cameras at Scale Romil Bhardwaj โ€  , Gopi Krishna Tummala*, Ganesan Ramalingam โ€  , Ramachandran Ramjee โ€  , Prasun Sinha* โ€  Microsoft Research, *The Ohio State University

Upload: others

Post on 16-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

AutoCalib: Automatic Calibration of Traffic Cameras at Scale

Romil Bhardwajโ€ , Gopi Krishna Tummala*, Ganesan Ramalingamโ€ , Ramachandran Ramjeeโ€ , Prasun Sinha*

โ€ Microsoft Research, *The Ohio State University

Page 2: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

50

150

250

350

450

2012 2013 2014 2015 2016

Nu

mb

er

of

Cam

era

s (M

illio

n)

Number of Security Cameras Worldwide

Source: IHS

Page 3: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Conventional Traffic Camera Uses

Post-facto Incident ReviewManual Surveillance

Page 4: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Emerging Traffic Camera Use Cases

Vehicle Speed Measurement(without dedicated sensors)

Traffic Analytics Near Miss Stats

All require distance measurements in the scene

Page 5: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Measuring Distances in an Image

220 px = 8 m

220 px = 34 m

Camera CalibrationReal-world Coordinates (m) <-> Image Coordinates (px)

Page 6: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Camera Calibration

๐‘ฆ =๐‘“๐‘ฅ 0 ๐‘๐‘ฅ0 ๐‘“๐‘ฆ ๐‘๐‘ฆ0 0 1

๐‘Ÿ11 ๐‘Ÿ12 ๐‘Ÿ13 ๐‘ก1๐‘Ÿ21 ๐‘Ÿ22 ๐‘Ÿ23 ๐‘ก2๐‘Ÿ31 ๐‘Ÿ32 ๐‘Ÿ33 ๐‘ก3

๐‘ฅ

Intrinsic Matrix(Focal length, camera center)

Extrinsic Matrix(Rotation, Translation)

ImageCoordinates

Real WorldCoordinates

๐‘‡

๐‘…

Page 7: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

โ€œHardโ€ Calibration

๐‘ฆ =๐‘“๐‘ฅ 0 ๐‘๐‘ฅ0 ๐‘“๐‘ฆ ๐‘๐‘ฆ0 0 1

๐‘Ÿ11 ๐‘Ÿ12 ๐‘Ÿ13 ๐‘ก1๐‘Ÿ21 ๐‘Ÿ22 ๐‘Ÿ23 ๐‘ก2๐‘Ÿ31 ๐‘Ÿ32 ๐‘Ÿ33 ๐‘ก3

๐‘ฅ

Intrinsic Matrix(Focal length, camera center)

Extrinsic Matrix(Rotation, Translation)

ImageCoordinates

Real WorldCoordinates

Not Scalable!

Page 8: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

โ€œSoftโ€ Calibration

๐‘ฆ =๐‘“๐‘ฅ 0 ๐‘๐‘ฅ0 ๐‘“๐‘ฆ ๐‘๐‘ฆ0 0 1

๐‘Ÿ11 ๐‘Ÿ12 ๐‘Ÿ13 ๐‘ก1๐‘Ÿ21 ๐‘Ÿ22 ๐‘Ÿ23 ๐‘ก2๐‘Ÿ31 ๐‘Ÿ32 ๐‘Ÿ33 ๐‘ก3

๐‘ฅ

Intrinsic Matrix(Focal length, camera center)

Extrinsic Matrix(Rotation, Translation)

ImageCoordinates

Real WorldCoordinates

โ‰ˆEPnP Solver

Page 9: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

โ€œSoftโ€ Calibration - Prior Art

Chessboard Calibration

Vanishing Points

Geometric Landmarks

No Chessboard Patternsin Traffic Views

Assumption ofStraight Line Motion

Assumption ofLandmarks

Page 10: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

AutoCalib Overview

AutoCalib๐‘‡

๐‘…

Traffic Video Calibration Estimate

AutoCalib: no humans-in-the-loop, robust calibration

Page 11: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Video FramesVehicle

DetectionKeypoint

Extraction

Calibrations Set

Vehicle Geometric Dimensions

Calibration

Geometry based filters

Calibration Values

Cropped Image Vehicle Keypoints

๐‘Œ๐ถ

๐‘‹๐ถ๐‘๐ถ

๐‘‹๐บ

๐‘Œ๐บ

๐‘๐บ

๐‘…, ๐‘‡๐‘น๐Ÿ, ๐‘ป๐Ÿ๐‘น๐Ÿ, ๐‘ป๐Ÿ

:

AutoCalib - Pipeline

Page 12: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Vehicle Detection

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Page 13: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Vehicle Detection

โ€ข Off-the-shelf DNNs (Fast-RCNN, YOLO) promise state of the art accuracyโ€ข Expensive, scene often empty

โ€ข Background Subtraction is fastโ€ข Inaccurate

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Solution - Trigger the DNN with Background Subtraction

Page 14: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Key-point Extraction

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Page 15: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Key-point Selection

Desired Properties

1. Visually Distinct

โ€ข Ease of detection

2. Non-planar

โ€ข Robust Calibrations

vs

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Page 16: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Key-point Extraction

โ€ข Statistical vision based techniques arenโ€™t robust to lighting variations

โ€ข DNNs require a lot of labelled dataโ€ข No datasets available

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Transfer learn a DNN on a smaller dataset

Page 17: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Transfer Learning - Primer

Convolution and Pooling Layers(Generic Features)

Fully Connected Layers(Car Model Classification)

Output:BMW 3 Series

Page 18: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Transfer Learning - Primer

Convolution and Pooling Layers(Generic Features)

Fully Connected Layers(now detecting key-points)

Output:Key-points (x,y)

Transfer Learning - Less Data, Faster Training

Page 19: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Key-point DNN Dataset

โ€ข Manually labelled key-points on 486 car images

โ€ข Image Augmentation

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Original Img Horz Mirror Horz Mirror Rotate

Horz Mirror Crop

Original Crop

Original Rotate

Total of 10,344 images post augmentation

Page 20: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Key-point DNN Trainingโ€ข GoogLeNet architecture trained on CUHK CompCars dataset (CVPR โ€˜15)

for Car make/model classification

โ€ข Replaced last two fully connected layers with keypoint regression outputs

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Page 21: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Key-point DNN Performance

~80% of Key-points < 10% error

Page 22: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Calibration Estimation

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

๐‘ฆ =๐‘“๐‘ฅ 0 ๐‘๐‘ฅ0 ๐‘“๐‘ฆ ๐‘๐‘ฆ0 0 1

๐‘Ÿ11 ๐‘Ÿ12 ๐‘Ÿ13 ๐‘ก1๐‘Ÿ21 ๐‘Ÿ22 ๐‘Ÿ23 ๐‘ก2๐‘Ÿ31 ๐‘Ÿ32 ๐‘Ÿ33 ๐‘ก3

๐‘ฅ

Intrinsic Matrix(Focal length, camera center)

Extrinsic Matrix(Rotation, Translation)

ImageCoordinates

Real WorldCoordinates

Page 23: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Vehicle Identification at low resolutionโ€ฆ

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

โ€ฆ is hard!(for both, humans and machines)

Page 24: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Canโ€™t identifyโ€ฆ so, approximate!

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

R1, T1

R3, T3

R2, T2

Calibrate

n Modelsn Calibrations

(Toyota Prius, Toyota Corolla, Honda Civic, Volkswagen Jetta, BMW 320i, Audi A4, etc.)

Calibrate with most popular cars

Page 25: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Errors in Calibration

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Key-point Prediction ErrorsModel Approximation Errors

Statistical filters to remove outliers and average

Page 26: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Key Insight 1

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Ground plane should be consistent across all Calibrations

Page 27: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

The Orientation Filter

1. For calibration ๐‘…๐‘– , ๐‘‡๐‘– , its Z-axis orientation ิฆ๐‘ง

is defined by vector ๐‘…โˆ—,3๐‘–

2. Let ิฆ๐‘ง๐‘Ž๐‘ฃ๐‘” = ๐ด๐‘ฃ๐‘’๐‘Ÿ๐‘Ž๐‘”๐‘’(๐‘…โˆ—,3๐‘– )

3. Pick ๐‘›% calibrations with the least deviation

between ิฆ๐‘ง and ิฆ๐‘ง๐‘Ž๐‘ฃ๐‘”

๐‘…1, ๐‘‡1

๐‘…2, ๐‘‡2

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Page 28: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Key Insight 2

Distance to a fixed point must be consistent across Calibrations

๐‘‘

๐‘

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Page 29: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

The Displacement Filter

โ€ข Focus region: Region where cars are detected

โ€ข For each Calibration:

1. Point ๐‘๐‘– = projection of center of focus region on the ground plane

using (๐‘…๐‘– , ๐‘‡๐‘–)

2. ๐‘‘๐‘– = Distance of ๐‘๐‘– to camera

โ€ข Pick middle ๐‘›% and filter the rest

๐‘‘๐‘–

๐‘๐‘–

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Page 30: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Filtering Overview

Orientation Filter (75%)

Displacement Filter (50%)

Average Rotation Matrix

Orientation Filter (75%)

(๐‘…๐‘“๐‘–๐‘›๐‘Ž๐‘™ , ๐‘‡๐‘“๐‘–๐‘›๐‘Ž๐‘™)

(๐‘…1, ๐‘‡1) (๐‘…2, ๐‘‡2) (๐‘…3, ๐‘‡3)

โ€ฆ . .

Displacement Filter (Pick median)

(๐‘…๐‘Ž๐‘ฃ๐‘”, ๐‘‡1) (๐‘…๐‘Ž๐‘ฃ๐‘”, ๐‘‡

2) โ€ฆ . .

Video Frames Vehicle DetectionKeypoint

ExtractionCalibrations SetCalibration

Geometry based filters

Calibration Values

Page 31: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Implementation

Azure Service โ€“ 4 Tesla K80s, 224 GB RAM

< 12% error with ~8 minutes of video

Page 32: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Evaluation - Dataset

โ€ข 350+ hours from 10 traffic cameras in

Seattle

โ€ข Resolution - 640x360 to 1280x720

โ€ข Ground truth distances and calibration

estimated using Google Earth

A

B D

EF G

Camera Image

A

B D

EF G

8m

8m

12m9m

Google Earth View

Page 33: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Evaluation

Page 34: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

AutoCalib vs Manual Calibration

4.8 5.3 5.1 5.5

8.2

1.83.0

5.1

1.5

5.9

9.8

12.3

7.9

10.6 11.1

6.7

10.211.1

5.1 5.1

0

4

8

12

16

20

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10

RM

S E

rror

(%)

Ground Distance Measurement, RMS Error (%)

Manual Calibration AutoCalib EstimateAutoCalib achieves <12% RMS error in measuring distances

Page 35: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

AutoCalib vs Prior Art

9.812.3

7.910.6 11.1

6.7 10.2 11.1

5.15.1

16.8 14.920.3

28.8

15.8

5.4

23.019.4

14.7

56.8

0

10

20

30

40

50

60

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10

RM

S E

rro

r (%

)

Ground Distance Measurement, RMS Error (%)

AutoCalib Calibration VP Approach [1]

[1] Dubskรก et al., Fully automatic Roadside Camera Calibration for Traffic Surveillance. IEEE ITS 2015

AutoCalib outperforms prior state of the art approaches

Page 36: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Does more video data help?

AutoCalib converges with increasing vehicle detections

Page 37: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

Application โ€“ Speed Measurement

Page 38: AutoCalib: Automatic Calibration of Traffic Cameras at Scaleromilbhardwaj.github.io/static/BuildSys_v1.pdfย ยท The Orientation Filter 1. For calibration ๐‘…๐‘–,๐‘‡๐‘–, its Z-axis

AutoCalib Summary

โ€ข Camera Calibration

โ€ข Enables distance measurements

โ€ข Highly manual today

โ€ข AutoCalib

โ€ข Scalable automatic calibration

โ€ข Uses DNNs to analyze vehicle geometry

โ€ข Experiments

โ€ข < 12% error in measuring distances

โ€ข Calibrates with few hundred detections