Computer Vision

Training computers to interpret and understand the visual world using digital images and videos

About Computer Vision

Computer vision’s goal is not only to see but also process and provide useful results based on the observation. For example, a computer can create a 3D image from a 2D image such as those in cars and provide important data to the car and/or driver. Cars could be fitted with computer vision (CV) which will be able to identify and distinguish objects on and around the road such as traffic lights, pedestrians, traffic signs etc. and act accordingly.

The intelligent device can provide inputs to the driver or even make the car stop if there is a sudden obstacle on the road. When a human who is driving a car sees someone suddenly move into the path of the car, the driver must react instantly. In a split second, human vision has completed a complex task i.e. identifying the object, processing data and deciding what to do. Computer vision’s aim is to enable computers to perform the same kind of tasks as humans with the same efficiency.

Common Tools and Libraries

Open CV

OpenCV has C++, Python, Java and MATLAB interfaces and supports Windows. Written natively in C++ and has templates to work with STL containers.

Developer's Resource:
https://opencv.org/releases.html ​​

BoofCV

BoofCV is organized into several packages: image processing, features, geometric vision, calibration, recognition, visualize, and IO. Common alternatives to OpenCV.

Developer's Resource: http://boofcv.org/index.php?title=Download​

SimpleCV

SimpleCV is an open source framework, lets you work with the images or video streams that come from webcams, Kinects, FireWire and IP cameras, or mobile phones.

Developer's Resouce: https://simplecv.readthedocs.io/en/latest/​

Tesseract

Tesseract is an optical character recognition engine for various operating systems. It is mostly written in C, and then some more was written in C++.

Developer's Resource: https://github.com/tesseract-ocr/tesseract​

TensorFlow

TensorFlow gives you the flexibility and control with features like the Keras Functional API and Model Subclassing API for creation of complex topologies. For easy prototyping and fast debugging, use eager execution.

Developer's Resource: http://boofcv.org/index.php?title=Download​

Microsoft Azure Computer Vision API

Microsoft Azure Computer Vision API is a out-of-the-box api that returns information about visual content found in an image, extract recognized words from an image to a machine readable text, and analyze video in near real-time.

Developer's Resource:
https://simplecv.readthedocs.io/en/latest/​

100E Use Cases

  1. A med-tech company uses computer vision to assess chronic wounds from images from smartphone camera
    Technologies used: TensorFlow/MobileNets
  2. A healthcare company uses computer vision to perform medical fraud detection
    Technologies Used: TensorFlow/MobileNets
  3. A semiconductor company uses computer vision to optimize the locations of circuit components on a semiconductor chip placement
    Technologies Used: TensorFlow/MobileNets, OpenCV

Open Datasets

ImageNet

Image database organized according to the WordNet hierarchy.

MNIST

Database of handwritten digits with training set of 60,000 examples, and test set of 10,000 examples.

CIFAR-10

Database of labeled subsets of the 80 million tiny images dataset.

Google Open Images

Dataset of labelled ~9M images with image-level labels, object bounding boxes and visual relationships.

Caltech 101

Database of pictures of objects belonging to 101 categories. There is about 40 to 800 images per category.

MS-COCO

Large-scale object detection, segmentation, and captioning dataset with over 330K images and 1.5M object instances.

Related Articles

  1. Counting Road Traffic Capacity with OpenCV
    Link to article: https://medium.com/machine-learning-world/tutorial-counting-road-traffic-capacity-with-opencv-998580f1fbde
  2. Face Recognition with Python (OpenCV)
    Link to article: https://realpython.com/face-recognition-with-python/
  3. Image Segmentation Using Color Spaces in OpenCV
    Link to article: https://realpython.com/python-opencv-color-spaces/