EMBEDDED SYSTEMS FEATURE Embedding Vision in Next-Generation SoCs
Mike Thompson, Senior Product Marketing Manager at Synopsys evaluates the complexities involved with embeddedding vision into system design and the best options for overcoming the challenges
U
ntil recently computer vision was only possible on PCs and other high-
end machines, but advances in microprocessor technology are now enabling designers to integrate computer vision into SoCs. The resulting practical and widely deployable embedded vision functionality is showing up in emerging consumer applications such as home surveillance, gaming systems, automotive driver assist systems, smart glasses and augmented reality. This is giving rise to a whole new class of embedded processors, designed specifically for embedded vision and offering very high vision performance, but at the low power-consumption levels required for embedded applications. Embedded vision technology is being included in an increasing number of SoC designs and will have a profound impact on many aspects of our lives.
THE CHALLENGES OF EMBEDDING VISION Applications of embedded vision vary, but a typical vision system uses a similar sequence of distinct steps to process and analyse image data. These are referred to as a vision pipeline and there are vastly different requirements in each stage. Although technology has made very
powerful microprocessor architectures available, implementing a computer vision algorithm on embedded platforms remains a challenging task because the amount of performance required to process a vision pipeline is beyond what a typical resource-constrained embedded processor can deliver. Embedded vision systems require:
• Low power consumption in the range of hundreds of milliwatts or less.
• High computational requirements ranging from a few Giga Operations per Second (GOPS) to several hundred GOPS.
• A lot of on-chip memory to store image data.
• Programmability to address the rapidly changing requirements of the vision market. There are many algorithms used to
implement embedded vision, but implementations based on Convolution Neural Networks (CNNs) are delivering better results than other vision algorithms. CNN-based systems attempt to replicate
efficient execution of convolutions and the associated data movement. Such an engine is organised to optimise dataflow and performance, using a systolic array of cores called processing elements (PEs). One PE passes its results directly to another using a buffer, which effectively eliminates shared memory bottlenecks. The interconnection of the PEs is flexible, allowing the designer to easily create different application-specific processing chains by altering the number and interconnection of cores used to process each CNN stage or layer.
how biological systems see and they are designed to recognise visual patterns directly from pixel images with minimal pre-processing. They can recognise patterns with extreme variability, and have robustness to distortions and simple geometric transformations. Applications that use CNN are
computationally intensive, requiring 60-70 million multiply-and-accumulate (MAC) instructions per frame for a relatively simple application, or about two billion MACs for 30 frames per second processing. This number is too high even for the fastest embedded processors. For more complex applications, the number can be as high as 800 million to one billion MACs per frame. Currently, CNN-based architectures are
mapped primarily on CPUs and GPUs, which are not suitable for low-power and low-cost embedded products. But this is changing with new embedded vision processors like Synopsys’ DesignWare Embedded Vision (EV) Processors, which deliver more than 1000GOPS/Watt. These new vision processors implement CNN on a dedicated programmable multicore engine that is optimised for
/ ELECTRONICS Figure 1:
OpenCV and OpenVX provide a set of high- level tools and standard libraries that help accelerate vision system development
EMBEDDED VISION IMPLEMENTATION A real-world embedded vision processor must not only detect objects, but it must also talk to interfaces and sensors, synchronise tasks, and handle communications with a host processor. Such tasks cannot be efficiently run on the specialised CNN PE cores optimised for dataflow computation. An effective embedded vision processor must be heterogeneous and include one or more RISC cores in addition to CNN cores. All components of an embedded vision processor need to be easily programmable by the developer to provide sufficient flexibility in the system so that it can be adjusted and/or re- targeted as market requirements change. However, having a standard C/C++ compiler is not enough to easily program an embedded vision processor. A large quantity of complex software is needed and starting from scratch is not realistic. Developers need a set of high- level tools and standard libraries like OpenCV and OpenVX that work in conjunction with and complement the underlying C/C++ tool chain. OpenCV is an open source computer
vision software library that contains 2500 functions which, when used by the high-level application, can facilitate tasks like object detection and tracking. OpenVX is a low-level programming framework for computer vision. It is specifically targeted at embedded/real- time systems and enables performance- and power-optimised vision processing. Computer vision is being deployed in
embedded applications, giving rise to a new class of vision processors, like the Synopsys DesignWare EV Processor Family, that offer the specialized performance required for vision but at power consumption levels that are appropriate for embedded applications. Synopsys
www.synopsys.com +1 (650) 584-500
ELECTRONICS | JULY/AUGUST 2015 31
Page 1 |
Page 2 |
Page 3 |
Page 4 |
Page 5 |
Page 6 |
Page 7 |
Page 8 |
Page 9 |
Page 10 |
Page 11 |
Page 12 |
Page 13 |
Page 14 |
Page 15 |
Page 16 |
Page 17 |
Page 18 |
Page 19 |
Page 20 |
Page 21 |
Page 22 |
Page 23 |
Page 24 |
Page 25 |
Page 26 |
Page 27 |
Page 28 |
Page 29 |
Page 30 |
Page 31 |
Page 32 |
Page 33 |
Page 34 |
Page 35 |
Page 36 |
Page 37 |
Page 38 |
Page 39 |
Page 40 |
Page 41 |
Page 42 |
Page 43 |
Page 44 |
Page 45 |
Page 46 |
Page 47 |
Page 48 |
Page 49 |
Page 50 |
Page 51 |
Page 52 |
Page 53 |
Page 54 |
Page 55 |
Page 56 |
Page 57 |
Page 58 |
Page 59 |
Page 60 |
Page 61 |
Page 62 |
Page 63 |
Page 64 |
Page 65 |
Page 66 |
Page 67 |
Page 68 |
Page 69 |
Page 70 |
Page 71 |
Page 72 |
Page 73 |
Page 74 |
Page 75 |
Page 76 |
Page 77 |
Page 78 |
Page 79 |
Page 80 |
Page 81 |
Page 82 |
Page 83 |
Page 84 |
Page 85 |
Page 86 |
Page 87 |
Page 88 |
Page 89 |
Page 90 |
Page 91 |
Page 92 |
Page 93 |
Page 94 |
Page 95 |
Page 96 |
Page 97 |
Page 98 |
Page 99 |
Page 100 |
Page 101 |
Page 102 |
Page 103 |
Page 104 |
Page 105 |
Page 106 |
Page 107 |
Page 108 |
Page 109 |
Page 110 |
Page 111 |
Page 112