Computer Vision for Raspberry Pi with the New Khronos OpenVX API

Computer Vision for Raspberry Pi with the New Khronos OpenVX API

 

On July 1st, 2020 the Raspberry Pi Foundationannounced its new implementation of theKhronos Group’sOpenVX 1.3 standard for cross-platform acceleration of computer vision applications. 

Khronos is a consortium of over 150 leading software and hardware companies who’ve come together to create royalty-free, open industry standards of acceleration for 3D graphics, AR and VR, computer vision, and machine learning.  Raspberry Pi already uses otherKhronos standards, including the Vulkan graphics acceleration API.

TheKhronos Group describesOpenVX as:

“an open, royalty-free standard for cross-platform acceleration of computer vision applications [that] enables performance and power-optimized computer vision processing, especially important in embedded and real-time use cases such as face, body and gesture tracking, smart video surveillance, advanced driver assistance systems (ADAS), object and scene reconstruction, augmented reality, visual inspection, robotics and more.”

What this means for Raspberry Pi developers and makers is enhanced performance for computer vision applications, such as those mentioned above.

Vilros

Raspberry Pi andOpenVX 1.3

Since the release ofOpenVX 1.3 in October, Raspberry Pi has worked with theKhronos Group on an open-source implementation which passes Raspberry Pi’s conformance profiles for Vision, Enhanced Vision, and Neural Nets. 

Khronos standards are always freely available for developers to use on their platform when they meet conformance standards on the target system.  To facilitate adoption,Khronos has created a set of Adopters Programs, one for each standard (e.g., Vulkan,OpenVX, etc.), established in order to enable companies to test their systems and products for conformance.

With the new API,OpenVX 1.3 now passes those conformance standards for Vision, Enhanced Vision, and Neural Nets on Raspberry Pi.  This means Raspberry Pi developers and makers can now useOpenVX 1.3 to optimize their computer vision apps for performance and processing power, which is particularly important for real-time and embedded applications including core computer vision use cases such as body, gesture, and face tracking, smart surveillance, object and scene reconstruction, and advanced driver assistance systems (ADAS), as well as for visual inspection, robotics, augmented reality, and more.

Significantly, this also means developers can make use of this powerful API while knowing that their work will be portable across allconformant hardware

(Note, however, that thus for only Raspberry Pi versions 3 and 4 have been tested against these conformance standards...if you have an earlier model Pi, while each successive generation of Pi is designed to be backward compatible as much as possible, there is no guarantee thatOpenVX 1.3 will work as intended on them.  But open-source collaborators are in the process of running tests on RPi 2 to see if it can be added to the list of verified hardware.)

 

ImplementingOpenVX 1.3 onYour Raspberry Pi

To get started, get theOpenVX 1.3 implementation on GitHub and follow the sample build instructions for “Sample 2 - BuildOpenVX 1.3 on Raspberry Pi.”  Once you’ve followed the instructions and used the sample code there to build and run the conformance, you can also test the installation usingopen-source sample applications, such as the VX Bubble Pop, VX Canny Edge Detector, and VX Skin Tone Detector.

Hopefully, this new API will help you kick your computer vision projects for Raspberry Pi into overdrive! 

And make sure to check back here regularly on theVilrosblog for more news and updates about your Raspberry Pi and Arduino devices! 


GET IN TOUCH

MAKE:INSPIRE TEAM

Liquid error: include usage is not allowed in this context