Bringing 3D Vision to the Edge

6 0
  • 0 Collaborators

Amidst the numerical renaissance and the rise of AI, 3D object recognition is a rapidly developing field that offers huge potential. Edge technologies are the next evolution for tangible robotics and smart systems, but current algorithms and machine learning techniques throttle the capabilities of this emerging field. To train an AI, nothing short of a desktop GPU is required. Energy consumption is often through the roof, and relying on remote cloud technologies for data processing invites a multitude of security risks and legal issues, particularly in fields like medicine. To bring the power of 3D Computer Vision to remote technology, I propose the Fluid Flow Vector. By describing a cluster of points as a mesh, and describing this mesh's movement through water, we can assign a unique and succinct descriptor to each neighbourhood. This vector is simple to compute, light on resources, and as richly informative as modern alternatives. This is the beginning of development for a family of lightweight feature descriptors that could accelerate edge devices into the advanced AI era. ...learn more

Project status: Under Development

Virtual Reality, Robotics, HPC, Artificial Intelligence

Groups
Student Developers for AI

Intel Technologies
AI DevCloud / Xeon, Intel CPU

Code Samples [1]Links [1]

Overview / Usage

From medical research (particularly the recognition of malignant tumours within the body) to finance (most notably interest and risk management), 3D analysis has huge application. The ability to analyse datasets by hand has fresh data science graduates receiving offers of up to $40,000/year (RBS, two year pilot scheme).

In the advent of AI, computer vision in three dimensions is still lacking, especially in lower power hardware. Massive memory requirements often throttle devices like CPUs, and the complex calculus required to compute base descriptors means industrial-scale projects are not feasible outside of a small datacenter.

To accelerate 3D Computer Vision beyond the development of hardware, I propose the Fluid Flow Vector data descriptor. This efficient data descriptor captures a shape's geometry without massive computational boundaries. Avoiding calculus in computing this descriptor helps also reduce the power usage of its processor.

This could allow AI to move from the datacenter to the edge. Hospitals could utilise 3D AI to target radiotherapy treatments for particularly aggressive cancers. Aeronautics firms could detect minute cracks in current systems whilst also predicting possible weaknesses in new designs. VR could be moved into a more immersive, remote-free experience. Even driverless cars could be empowered by allowing the machine to predict the geometry of roads and plan ahead, as opposed to using 2D imaging and spontaneously reacting to every event.

The Fluid Flow Vector is certainly not a means to an end: however, it does show the need and reward of searching for efficient 3D data descriptors to power edge technology.

Methodology / Approach

Traditional data descriptors analyse meshes on a per-face, per-edge, or a per-point (vertex) basis. 3D inputs often come in the form of raw point clouds which do not readily contain edges or faces. To make the feature expandable to real-world work, I decided to analyse each point on a per-point basis whilst also taking its point neighbourhood into consideration.

My academic work in resolving vectors inspired me to form a vector set from the central point to all other points, and attempt to resolve this set into a single radial vector. A future task for development is developing vector math (cross product, dot product, etc) for radial vectors without converting to cartesian form.

As C++ executes at a higher speed than more popular languages like Python, I selected to use it to develop my code. The simple extendability to GPU CUDA and OpenGL makes the language a flexible choice. I have not proofed my software from possible memory leakage, but the efficiency of the algorithms mean that this is unlikely to cause problems for personal use.

Intel kindly granted me access to their AI DevCloud, allowing me to run software on advanced processing systems. I found that the Intel Xeon 18 core processor produced the best results: it appears to be an ideal mix of raw processing power per core with a distributed core count. The Xeon 24 core was however the most consistant and the chip used in previous research, so I used that for my comparisons.

The Fluid Flow Vector is up to 23 times faster than the Scale Invariant Heat Kernel Signature, a popular data descriptor with an excellent track record. Its heavy use of calculus prevents it from being an efficient descriptor. Similarly, the Fluid Flow Vector outperforms popular descriptors like 3D Shape Context by up to 25 times. I hope the efficiency of this descriptor combined with its descriptive power will encourage the scientific community to endeavour to streamline 3D vision into an effective tool for AI to wield.

Technologies Used

Google Compute Cloud (Nvidia Tesla V100)
Google Drive (Documentation)

JetBrains CLion (C++ Development)

Intel DevCloud & AICloud (Intel Xeon 24-core)
Intel Software Development Kit

Apple Mac OSX (Development Environment)

Repository

https://github.com/mcrobusta/vision

Comments (0)