OpenCV is de-facto standard framework for CV developers, with 16+ year-long history, ~1M lines of code, 1000s of algorithms and tens of 1000s unit tests. While OpenCV delivers decent performance out-of-the-box for classical algorithms on desktops, it does not provide sufficient performance for modern CV algorithms, such as a suite of deep learning algorithms, as well as lack on performance on embedded platforms. We offer a short-term solution for the performance problem using T-API (transparent API) – OpenCL-based acceleration layer in OpenCV. We’ll demonstrate how to use this technology using a popular CV problem – pedestrian detection. OpenCL is a standard tool to program modern parallel hardware, from CPU and GPU to specialized DSPs and even FPGA. In search of a long-term solution to performance problem we experiment with alternative approaches, such as Halide. We expect Halide to address existing OpenCL issues, namely the lack of performance-portability and complexity of use for non-experts because Halide provides higher abstraction level and convenience of use. We will demonstrate early experimental results of using Halide. Should this approach prove successful, we will include support for Halide into the next versions of OpenCV. Importantly, OpenCV now includes support for OpenVX, which we use to accelerate some image processing pipelines as well as deep nets execution.
Links: