A major chip vendor had developed a library of embedded vision building blocks and wanted to be able to show its customers how these can be used in products. BDTI developed a software application that can be configured for tripwire and similar object recognition applications.
A tripwire application brings numerous challenges, including:
- Detecting the relative motion of an object against a background
- Objects—or in our application, people—come in many shapes and sizes
- The motion is often erratic
- Objects may move in groups that form, break up, and form again
- The camera view may be obstructed
In designing its software, BDTI made several trade-offs in order to manage processing requirements. It carefully architected software to parse the data generated by the image recognition functions, classify it into objects of interest, track those objects, identify them, and display them on screen. The result was a successful demonstration of the capabilities of the chip vendor’s device and image processing IP. For more information, including a block diagram of the system, see slides 23 through 27 in the presentation, “Implementing Vision Capabilities in Embedded Systems” on the BDTI web site.
Vision-Based Control for Industrial Vision
A biological sciences equipment manufacturers had developed a device for biomaterial analysis. Throughput was limited by difficulties aligning physical samples with the imager’s sampling grid. The company had developed imaging control algorithms and needed to validate and implement them. BDTI leveraged its expertise with development tools and its knowledge of image processing algorithms to validate and implement the algorithm, then develop a fast simulation test-bed for testing.
BDTI created a MATLAB version of the customer’s imaging control algorithm, then used Simulink to create a model for implementation in an FPGA. The project enabled the customer to quickly validate improvements in its algorithms and implement them in an FPGA for deployment in its equipment. BDTI’s work enabled a significant increase in the accuracy of the image recognition, improving the throughput of the system and increasing the customer’s revenue-generation. The project highlights the importance of careful methodology—careful implementation of a reference model, use of standard IP components, and conscientious creation and use of a test bench.
In a second project, BDTI used a novel approach to design an algorithm to increase the detection capabilities of the equipment sensors. When implemented, this will improve the detection capabilities of the equipment, further improving the performance of the equipment and fattening the bottom line.
Implementation of Optical Flow for Motion Analysis
To evaluate the efficiency of high-level synthesis (HLS) tools in developing complex systems designs, BDTI implemented an optical flow algorithm for motion estimation and analysis. (“Optical flow”—or “optic flow”—refers to a class of video processing algorithms that analyze the motion of objects and object features, such as edges, within a scene.) Optical flow is a highly processing-intensive computational technique that has found practical use in applications including navigation, automotive driver assistance, and target tracking. BDTI selected optical flow to implement using HLS tools on the basis of its algorithmic complexity and demanding processing requirements.
BDTI engineers designed a novel, unique optical flow algorithm, inspired by cutting-edge academic research, and created an ANSI C implementation. The engineers then used HLS tools to create RTL which was used to generate a netlist for programming the FPGA. The resulting implementation is able to detect and analyze the apparent motion of objects in an HD (720p) stream at 60 frames per second.
This project demonstrates the usefulness of HLS tools to create implementations of complex, computationally demanding applications for an FPGA. Using HLS tools in implementing FPGA designs requires a unique combination of software and hardware design skills—which BDTI has. A key contributor to successfully using HLS tools with FPGAs is “hardware awareness”—the ability of the programmer to write C code that enables the efficient use of the hardware resources on the FPGA. It is important to include the right skill set on your team—as we have at BDTI—if you want to benefit from the use of HLS tools.
For more information
To learn more about BDTI engineering services for embedded vision applications, call us at +1 (925) 954-1411 or use the form under “Contact” at the right to contact us.