Computer vision is a fast growing field in computer science, going hand in hand with AI. For a computer a
picture speaks a thousand words, or literally millions of bits. The range of applications for CV include:
interactive art, mines inspection, stitching maps on the web or through advanced robotics.
An image is a matrix of values. A black and white image is a matrix of gray-scale values (0-255, with 0 =
black, and 255 = white). Each value represents a 'pixel', which is also the name chosen by Google to lead
it's new range of iconic handphones in a push to tackle the iPhone's market share. Resolution is the number
of pixels in a screen, this can be specified in length x width.
An image can be described as an array, or a list of lists. It can be defined by a function of x and y
coordinates f(x,y). A video is a list containing a list of lists. It can be defined as a function with a
time dimension f(x,y,t).
With an understanding of the fundamental concepts of pixels, images, and videos you can appreciate the world
of digital image processing, and how computer's see, 'computer vision'.
OpenCV is great library of programming functions mainly aimed at
real-time computer vision. You can find the Python Documentation here.
Other useful tools/references I have been exploring relating to digital image process or computer vision projects
include:
-
A book recommended to me by a smart guy, 'Digital
Image Processing, by Gonzalez and Woods' provides a great introduction into the field. You only
need to read the introductory chapter 1, to get a good sense and feel for it.
-
Convert an old Android phone into a IP Webcam. check
out this link. Here
is a more detailed link explaining static IP addresses.
-
Google Tango an augmented reality computing platform,
developed and authored by Google. Tango is different from other emerging 3D-sensing computer vision
products, in that it's designed to run on a standalone mobile phone or tablet and is chiefly
concerned with determining the device's position and orientation within the environment.
-
Buy understand some of the fundamentals of OpenCV and CV you find simple ways to re-use existing bits
and pieces out here, old webcams, mobile phones, single board computers (C.H.I.P., raspberry PI etc.)
into useful home automation tools for today. It's a great alternative to stay minimalist and avoid
buying more dedicated hardware, given you have an interest an a few spare hours up your sleeve (some
requisite beginner coding skills goes without saying). This may also give you the option for full
customisability. When purchasing new home automation tools be mindful of the fact where they offer
open source platforms, this will give you the flexibility but may be a tradeoff with security. Here
is a link to my first computer vision project I worked on, creating a motion detector for my Wemo
smart LED lights, through re-using an old android phone.
-
Create a custom Video recording app using tKinter to create an executable GUI. For example press 's'
to start recording, 'p' to pause recording.
-
YOLO, Real-Time Object Detection. You only look once
(YOLO) is a state-of-the-art, real-time object detection system. It applies a single neural network
to an entire image, different to classifier-based systems.