point-cloud processing using hdl coder - mathworks · a point cloud is a set of discrete points in...

20
POINT-CLOUD PROCESSING USING HDL CODER April 17th 2018

Upload: others

Post on 31-May-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

POINT-CLOUD PROCESSING USING HDL CODER

April 17th 2018

Page 2: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

AGENDA

Introduction

LiDAR Sensors in Automotive Industry

Point Cloud Processing

Classic processing pipeline

HDL-Coder Workflow

Hardware structure

Examples on the usage

April 17th 2018

2

Page 3: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

LIDAR SENSORS IN AUTOMOTIVE

Time of flight measurement for emmitted Laser Beam

April 17th 2018

3

Additional sensor technology offering

High distance measurement

Accurate point distance

Working under bad circumstances (fog, night)

Enhancing redundancy

Page 4: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

LIDAR SENSORS IN AUTOMOTIVE

Valeo SCALA first mass production LiDAR Sensor for

automotive (2017)

58.000 points per second

Next generation ~200.000 points per second

Research Utilities

Velodyne LiDAR Ultra Puck ~600,000 points per second

Velodyne HDL-64E 2.2 million points per second

April 17th 2018

4

Number of points to be processed will increase

Possibility of getting more information out of the data

Page 5: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

LIDAR SENSORS IN AUTOMOTIVE

Possible future resolution

April 17th 2018 5

State of the art

Page 6: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

WHAT IS A POINT CLOUD

April 17th 2018

6

XYZ coordinates

RGB (Texture)

Intensity

Normals

Curvature

A point cloud is a set of discrete points in 3D space. Each point is represented by its cartesian coordiantes and may hold additional information

360° view

surface Normals

curvature

Page 7: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

POINT CLOUD PROCESSING PIPELINE

April 17th 2018

7

Sensor Data Transformation Feature Extraction

Segmentation Classification Objects

Page 8: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

POINT CLOUD - TRANSFORMATION

April 17th 2018

8

Transfor-

mation

Sensor Data distance measurement

Known column and row index (n,m)

Transformation to cartesian coordinates necessary

pitch and yaw depend on resolution, mounting position

Page 9: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

POINT CLOUD – FEATURE EXTRACTION

April 17th 2018

9

Feature

Extraction

Normal estimation

Nearest Neighbours for unorganized point cloud

Brute force

Kd-tree

Approximate nearest neighbours

Nearest Neighbours for organized point cloud

Pixel like structure

Define a search mask

Normal estimation using PCA

Surface normal corresponds to eigenvector of smallest eigenvalue

Curvature

Estimated from Eigenvalues

Page 10: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

POINT CLOUD – SEGMENTATION

April 17th 2018 10

Segmen-

tation

Evaluate features to detect

Depth changes

Edges

Cluster connected points

Region growing algorithm

Page 11: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

WHAT IS AN FPGA AND WHY DO WE USE IT?

April 17th 2018

11

Field Progammable Gate Array

Reconfigurable Integrated Circuit

Suitable for new projects

Implementation of bug fixes

Parallel processing of

Algorithms for Hardware control

Each step in the data processing pipeline

FPGA

Hardware control Data processing

Transformation

Feature Extraction

Segmentation

Emmiter

Receier

Motor Control

Page 12: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

POINT CLOUD PROCESSING ON FPGA

Possible data flow using Embedded-Coder and HDL-Coder

April 17th 2018

12

System on a Chip

PC

Data generation

UDP CPU AXI

FPGA

Point Cloud Processing

AXI CPU UDP

PC

Evaluation Visualization

Page 13: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

POINT CLOUD PROCESSING ON FPGA

Possible data flow using Embedded-Coder and HDL-Coder

April 17th 2018

13

System on a Chip

PC

Data generation

UDP CPU AXI

FPGA

Point Cloud Processing

AXI CPU UDP

PC

Evaluation Visualization

Page 14: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

POINT TRANSFORMATION

Date 14

Example:

Column Wise data received from Sensor (64 scan points)

Transformation multipliers from lookup table available

Page 15: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

POINT TRANSFORMATION

Date 15

Streaming inserted

Page 16: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

POINT TRANSFORMATION

Date 16

Streaming and Sharing inserted

Page 17: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

NORMAL ESTIMATION

April 17th 2018

17

Example: Simple normal estimation

Assumptions

Organized Point Cloud

Data processed point wise in increasing manner (column and row wise)

P(n-2, m-2) P(n-2, m-1) P(n-2,m)

P(n-1, m-2) P(n-1, m-1) P(n-1, m)

P(n, m-2) P(n, m-1) P(n, m)

P(n+1, m-2) P(n+1, m-1)

New point

Point to calculate

surface normal

Page 18: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

NORMAL ESTIMATION

April 17th 2018

18

UsingVector-Ram Blocks (Matlab System object)

Store currently not needed data in Ram

Read 3 Values from Ram at once

Page 19: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation

SUMMARY

April 17th 2018

19

HDL Coder

Algorithm development for FPGA without VHDL coding

Run as HiL-Setup directly

Comparable to Simulink implementation

Challenges

Algorithm selection

What can be implemented?

How to adopt algorithms?

Page 20: Point-Cloud Processing Using HDL Coder - MathWorks · A point cloud is a set of discrete points in 3D space. Each point is represented ... Point Cloud AXI Processing CPU UDP PC Evaluation