23
Neuromorphic Engines - project Edge tracking using Silicon Retina sensor presented by Karol Hausman, Ross Kidson

Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Embed Size (px)

Citation preview

Page 1: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Neuromorphic Engines - project

Edge tracking using Silicon Retina sensor

presented byKarol Hausman, Ross Kidson

Page 2: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Motivation

Interactive perception Robot interacts with the surroundings Robot segments the objects like a child Tracking Clustering Applications(video 1)

Textureless objects Lack of features(video 2) Silicon Retina

Page 3: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Project Goal

Use Silicon Retina to track an edge of an object Result – one edge tracking Longterm result – clustering multiple edges

Page 4: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Project Preparation

Line tracking is a very complex problem Many algorithms can be used to solve it How to take advantage of Silicon Retina

sensor? How good are the results?

Page 5: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Dealing with Asynchronous Data Data is not actually asynchronous → USB

polling One event is not enough data for known

computer vision algorithms Small queue to process the data was

implemented The queue is still much smaller data to process

than one frame in a 'normal' camera

Page 6: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Algorithms

Different algorithms: The most obvious – calculate Hough transform for

cartesian coordinates The most popular – calculate Hough transform for

polar coordinates The most brutal – do the Ransac for polar

coordinates

Page 7: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Hough transform - cartesian

Transfer all possible lines into parameter space (for ax+b it is a,b)

One point in cartesian space results in one line in parameter space

Find intersections of the resulting lines in the parameter space

Page 8: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Hough transform - cartesian

Page 9: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Hough transform - cartesian

How to find the best intersection? Three implementations:

Brute force counting neighbors Average intersection Octree search

Page 10: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Hough transform - polar

Transfer to polar coordinates Do not look for intersections → too complex Use a table → lines are discretized

Page 11: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

RANSAC

RANdom SAmple Consensus

Page 12: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Results

Execution time comparison

IntersectionsHough

TransformRANSAC Conditions

1255μs35 events

712μs30 events

621μs150 events

Optimal queue size

884μs 711μs 112μsSame queue size

30 events

Page 13: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Results

How does the time influence the result? Videos

Hough transform - cartesian Hough transform - polar RANSAC

Page 14: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Hough transform - cartesian

Page 15: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Hough transform - cartesian

Cons: Slow → number of intersections increases not

linearly with the number of events Cannot deal with vertical lines Difficult to find intersections

Pros: :)

Page 16: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Hough Transform - polar

Page 17: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Hough Transform - polar

Cons: Accuracy depends on the resolution of the table Not capable of tracking multiple lines → averaging

Pros: Problem with vertical lines solved

Page 18: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

RANSAC

Page 19: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

RANSAC

Pros: The fastest Capable of multiple lines tracking We are still in polar coordinates → vertical lines Easily transferable for finding different shapes

Cons: The algorithm requires more events to work →

more frame based

Page 20: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

And the Winner is ...

RANSAC is clearly the winner Is it possible to track multiple edges at the

same time? RANSAC modification

Page 21: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Multiple edges

Page 22: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Conclusions

Dealing with the neuromorphic sensor and taking advantage of it is not easy

Known algorithms have to be re-implemented Results are still worse than on the 'normal'

camera Bright future?

Page 23: Neuromorphic Engines - project fileSilicon Retina. Project Goal ... Average intersection Octree search. Hough transform - polar Transfer to polar coordinates Do not look for intersections

Thank you

Questions?