- Free resources from BDTI on the Embedded Vision Alliance website
- Processors for Vision Apps: "Choose Your Desert Island Companion Wisely" (InsideDSP)
- Will Neural Networks Become the Dominant Approach to Object Recognition? "Creating Machines That See: Show or Tell?" (InsideDSP)
- More about CNNs "Here Come The Learning Machines" (InsideDSP)
- A Commercial Approach to CNNs: Synopsys' Architecture for CNN-based CV Applications (InsideDSP)
- "Neural Networks--Has Their Time Come?" (InsideDSP)
- NVIDIA Tools for Acceleration of Deep Learning (InsideDSP)
- "A Test Drive of t he NVIDIA Jetson TX1 Developer Kit for Deep Learning and Computer Vision Applications" (A BDTI Report)
Computer Vision System Design Services
Want computer vision in your product? Wonder how to add vision capabilities?
Engage the experts at BDTI.
Advances in technology are making science fiction a reality—today. With the incredible power and low cost of new processors, programmable logic, and digital video cameras, it is now possible to add computer vision to nearly any product—scientific, medical, industrial, and consumer. Whether it’s a toy that can “see” and recognize objects, a video camera that can count the number and type of people in a scene, or an industrial system that visually inspects products for defects, computer vision can enable unheard-of new functionality in your product, letting you tackle new markets and seize new opportunities.
But like most new technologies, computer vision demands a special skill set. At the heart of computer vision is signal processing: signal processing is used at the pixel level to extract objects from pixels, and signal processing is used at the object level to track, evaluate, and “understand” the behavior of objects. For the specialized experience and expertise needed for computer vision, you can rely on BDTI.
- Implementation and optimization of 3D vision algorithms for Google's Project Tango
- Design of a vision-based detection and tracking system
- Design and implementation of a unique motion analysis algorithm for efficient execution on a low-power processor
- Design and implementation of a neural network pedestrian detection application for an embedded processor
Where we can help
Computer vision processor selection
- Broad knowledge of current processing platform options—to quickly identify viable candidates
- Hands-on experience with dozens of processors—chips, cores, programmable logic, and others—to provide insight into their true strengths and weaknesses
- Understanding of vendor strategies—to anticipate which processors are likely to remain viable for the long-term
Computer vision algorithm design
- Draw on its knowledge of digital signal processing and computer vision fundamentals to design and implement an algorithm that meets your requirements
- Ensure the algorithm can be efficiently implemented on your processor
Computer vision software implementation and optimization
- Designing a software architecture and data flow to take maximum advantage of processor resources
- Selecting appropriate data types to avoid wasting precious resources
- Modifying, substituting, or combining algorithms
- Mapping the chosen algorithms into processor instructions cleanly and efficiently, using the most appropriate languages and tools capabilities.
Design and implementation of deep learning
Deep learning techniques—often implemented via neural network processing frameworks such as convolutional neural networks or “CNNs” and deep neural networks or "DNNs"—are rapidly becoming a key technology for computer vision.
Need to understand how deep learning could be implemented through a neural network in your application? BDTI can help. BDTI has years of experience in creating and optimizing algorithms to run efficiently on a wide variety of processing platforms.
Where do you need help? Let us know.
Our team and track record
BDTI’s team of engineers has years of experience building complex, reliable, and low-cost signal processing systems, including computer vision applications. We will work with you to understand your application, identify your requirements, select the best technology—hardware and software—and then design and build your system. We can work closely with your existing engineering team, handling only the computer vision portion of the design, or we can execute a complete turn-key project, delivering a complete, finished system. We can use existing IP or develop custom algorithms for your application.
Examples of recent projects include:
- Implementation and optimization of vision algorithms for Google's Project Tango. BDTI obtained reference algorithms and heavily refactored them to support efficient implementation on the target hardware, then worked closely with the algorithm designer to understand and implement various speed, power, and accuracy tradeoffs. Next, BDTI implemented and optimized the software on the SoC's DSP and CPU, and supported integration and validation. BDTI’s unique combination of expertise in computer vision algorithms and understanding of processor architectures enabled Lenovo to ship the first smartphone with Tango 3D vision technology—on-time.
- Design of a vision-based detection and tracking system. BDTI performed a detailed analysis of the client's algorithms to assess performance requirements, then leveraged relationships with vendors to identify a platform that met size, power consumption, and performance requirements. Next, BDTI proposed algorithm changes and created highly optimized software utilizing an on-chip co-processor. BDTI's knowledge of processors, computer vision algorithms, and optimization techniques enabled the customer to win a government contract.
- Design and implementation of a unique motion analysis algorithm for efficient execution on a low-power processor. BDTI created a unique variant of optical flow that combines high accuracy with lower processing demands, then implemented and optimized the algorithm to run optimally on the customer's low-power vector processor. BDTI's expertise in algorithm design and understanding of processor architectures the customer to demonstrate that its low-power processor supports demanding applications. (In the image at right, the color and intensity indicate direction and speed of motion.)
- Design and implementation of a neural network pedestrian detection application for an embedded processor. BDTI engineers analyzed literature to select a suitable CNN architecture starting point, then with target hardware in mind, experimented with network designs in order to reduce computational demand while maintaining acceptable accuracy. Next, BDTI iterated the network design, re-train each to deliver a final network design and trained weights that met customer needs. BDTI's knowledge of cutting-edge algorithms enabled creation of a CNN-based pedestrian detection application that exceeds customer expectations.
Our track record also includes:
- Prototyping of computer-vision-based pedestrian detection and road sign recognition algorithms for automotive applications. Built for a major semiconductor company using a hybrid ARM/FPGA processing platform. (In the image at right, the software identifies a pedestrian in the “danger zone” and marks him with a red box. A pedestrian outside the “danger zone” is indicated by a green box.)
- A mathematical model for a vision-based feedback control system, developed for a scientific instrumentation company. BDTI's work shaved weeks off the company’s development time and enabling the company to improve throughput of its equipment.
- A complete demonstration system for a new processor targeting industrial machine vision applications, built for a global processor vendor. The demo shows the usefulness of a new, unique processor architecture that incorporates a configurable vision processing pipeline. (Read about the demo.)
- Highly efficient image processing algorithms that applied sophisticated visual effects to digital photographs, using an ultra-low-cost embedded processor. This sophisticated functionality enabled the customer to build a toy smart camera.
- A complex, demanding optical flow algorithm, used to detect apparent motion in an HD video stream. Designed and implemented for testing high-level synthesis tools.
See videos of BDTI demonstrating vision applications:
- At the 2013 Embedded Vision Summit, BDTI showed two vision applications: a “dice counting” application and a color-based object detection application. The “dice counting” application employs edge detection and other computer vision techniques to count dots on dice quicker than a human possibly could. This application was designed, implemented, and optimized on an Analog Devices ADSP-BF609, using its Pipeline Vision Processor that provides hardware support for high definition video analytics. The color-based object detection algorithm, designed by BDTI, was implemented and optimized to run on the Hexagon DSP embedded in the Qualcomm Snapdragon mobile processor.
- At the 2015 Embedded Vision Summit, BDTI showed two vision applications: one uses background subtraction techniques and the other uses motion-based object detection combined with augmented reality effects. The background subtraction algorithm was implemented and optimized to run on the Adreno GPU embedded in the Qualcomm Snapdragon mobile processor and demonstrates the capabilities of the GPU for computer vision tasks. The motion-based object detection algorithm was implemented in OpenCV on an x86-based processor, then optimized and accelerated using OpenCL.
- At the March 2016 Embedded Vision Alliance Member Meeting, BDTI showed dense optical flow algorithm running on a mobile processor. This computationally demanding algorithm was implemented and optimized to run at 20 frames per second on the Hexagon DSP in the Qualcomm Snapdragon 810 through use of the Hexagon Vector Extensions (HVX) library.
BDTI can design a computer vision-enabled product or add vision capabilities to your products faster and with less risk than you may have thought possible. And that translates to faster time to market and increased revenue! Contact us today to discuss how computer vision can enhance your products.
For a confidential consultation, call us at +1 925 954 1411 or contact us via the web.