vehicle surround view in libxcam - linux foundation events...open source technology center | 01.org...

20
Open Source Technology Center | 01.org Open Source Technology Center | 01.org Vehicle surround view in Libxcam Junkai Wu, Intel Feng Yuan, Intel 1

Upload: others

Post on 30-May-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.orgOpen Source Technology Center | 01.org

Vehicle surround view in Libxcam

Junkai Wu, Intel

Feng Yuan, Intel

1

Page 2: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

• Libxcam Introduction

• Vehicle Surround View Introduction

• Surround View in Libxcam

• Quality and Performance

Page 3: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

libxcam Introduction

libxcam is an opensource project and focus on image quality improvement

and video analysis. It makes GPU/CPU working together to improve quality

and performance. OpenCL is used for video acceleration and easy to run

on different platforms. All features are tested in Baytrail, Braswell

Apollolake and SkyLake.

Project repo on github: https://github.com/intel/libxcam

3

Page 4: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

libxcam Features

Noise Reduction

HDR/WDR

Digital Video Stabilization

Surround View

.etc

4

Page 5: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Vehicle Surround View Introduction

Vehicle surround view, view of scenes surround the vehicle, is one of the

key features in Advanced Driver Assistance Systems (ADAS).

Several cameras (usually four, maybe more) are equipped around the car

to capture the scenes outside.

5

Page 6: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Vehicle Surround View Introduction

The key algorithm is to generate a scene contains all the surrounded

information by utilizing the scenes captured by all the cameras.

6

Page 7: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Vehicle Surround View Introduction

Similar as panorama generation, but much more complex and difficult.

Due to distant locations of adjacent cameras, the content of overlap area of

adjacent images may be quite different.

7

Page 8: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Traditional solutions

Point Selection: For each pixel in final generated surround view image,

calculate its corresponding position on particular image and select the pixel

in that position as the result.

Blend directly: Apply image blending algorithm directly on overlap area of

adjacent images.

8

Page 9: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Traditional solutions

Drawback: Both methods can easily generate ghost or double vision effect.

9

Page 10: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Surround View in Libxcam

Apply image stitching algorithm on overlap area of adjacent images before

the blending process to reduce ghost or double vision effect as much as

possible.

An optimized auto-scaling stitching algorithm based on feature match

results of the overlap area of adjacent images is designed.

Use bowl-view model as the projection plane for the final stitched image.

10

Page 11: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Bowl View Model

Normal 2D image is generated by projecting scenes captured by the

camera on a 2D image plane.

Surround view image is generated by projecting scenes surround the

vehicle on a 3D plane with its shape like a “bowl”.

The vehicle is on the center of the “bowl”.

11

Page 12: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Bowl View in Libxcam

A 3D ellipsoid curve plane is used in Libxcam to simulate the bowl model.

Each image captured by each camera is projected on the 3D ellipsoid

curve plane we defined.

Image stitching algorithm is applied on the projected images.

12

Page 13: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Image stitching process in Libxcam

13

Scale two images by factors

calculated in last frame.

Detect and match feature

points in overlap area of

these two images.

Calculating scaling factors of

two images for next frame

based on the feature match

results.

Two neighbor projected

images in current frame.

We applied this

process as a patent

and it is still under

committee reviewing

Page 14: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Quality Comparison

We choose two sets of data (both indoor and outdoor) to compare the

results of our solution with traditional method.

For better visual effect, we only extract the overlap area of input images

and show the results comparison.

14

Page 15: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Quality Comparison (indoor 1)

Input: Output:

15

Front Cam Right Cam Traditional solution Our solution

Page 16: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Quality Comparison (indoor 2)

Input: Output:

16

Rear Cam Left Cam Traditional solution Our solution

Page 17: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Quality Comparison (outdoor 1)

Input: Output:

17

Front Cam Left Cam Traditional solution Our solution

Page 18: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Quality Comparison (outdoor 2)

Input: Output:

18

Rear Cam Left Cam Traditional solution Our solution

Page 19: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Performance

Machine: Intel(R) Core(TM) i7-6770HQ CPU @ 2.60GHz

CPU cores : 4

Processors : 8

Input resolution: 1280x720x4 (number of cameras)

Output resolution: 1920x1080

Surround view performance: 81.9fps

19

Page 20: Vehicle surround view in Libxcam - Linux Foundation Events...Open Source Technology Center | 01.org Surround View in Libxcam Apply image stitching algorithm on overlap area of adjacent

Open Source Technology Center | 01.org

Project Info & Contact

Project wiki page: https://github.com/intel/libxcam/wiki

Project Maintainer: Yuan Feng

Contact email: Yuan, Feng [email protected]

Wu, Junkai [email protected]

20