Over the past year I’ve spent a fair amount of time working on projects in the computer vision domain. I recently became aware of a couple of announcements about OpenCV and TensorFlow that are pretty exciting and I wanted to share.
Computer vision covers a lot of topics, but generally it’s about extracting information from digital images. For example, things like detecting edges, shapes and objects, tracking and classification of objects, and deriving geometry and projections in 2-D and 3-D space. OpenCV is an open source library with implementations for many of the algorithms and techniques for accomplishing these tasks.
OpenCV has been around since 2000, and major releases have generally been spaced far apart. It’s only been 3 years since the release of OpenCV 3, but given the relatively recent rise in applying deep learning techniques in computer vision, the developers decided it was time to rework and expand on some of the features and modules. In addition, and perhaps just as important, it will migrate to the more recent C++ 11 standard, which will break some backwards-compatibility, at the expense of modernizing the underlying implementation.
TensorFlow is an open source machine learning library and framework. It’s a general use library with many domain applications, but is especially relevant to computer vision for building neural networks capable of object classification.
Google first open sourced TensorFlow in 2015, with the library not achieving 1.0 status until 2017. However the pace of development has continued rapidly, with the current version now standing at 1.10, and the recent announcement of development for TensorFlow 2. One of the core features for this new version will be enhancements in eager-execution, which is a mode which provides a more interactive, imperative environment for developers to build and test. The new version will also feature support for more platforms and languages, and removal of some deprecated APIs and features.