Computer Vision is a field of Artificial Intelligence and Computer Science that aims at giving computers a visual understanding of the world, and is the heart of Hayo’s powerful algorithms. It is one of the main components of machine understanding :
The goal of Computer Vision is to emulate human vision using digital images through three main processing components, executed one after the other:
1. Image acquisition
2. Image processing
3. Image analysis and understanding
As our human visual understanding of world is reflected in our ability to make decisions through what we see, providing such a visual understanding to computers would allow them the same power :
Image acquisition is the process of translating the analog world around us into binary data composed of zeros and ones, interpreted as digital images.
Different tools have been created to build such datasets:
1. Webcams & embedded cameras
2. Digital compact cameras & DSLR
3. Consumer 3D cameras & laser range finders
From left to right and from top to bottom: webcam, digital SLR, laser range finder, 3D camera and embedded camera.
Most of the time, the raw data acquired by these devices needs to be post-processed in order to be more efficiently exploited in the next steps.
The second component of Computer Vision is the low-level processing of images. Algorithms are applied to the binary data acquired in the first step to infer low-level information on parts of the image. This type of information is characterized by image edges, point features or segments, for example. They are all the basic geometric elements that build objects in images.
This second step usually involves advanced applied mathematics algorithms and techniques.
Low-level image processing algorithms include:
1. Edge detection
4. Feature detection and matching
Edge detection in a color image.
Segmentation of apples in a basket.
Classification of parts of images.
Image analysis and understanding
The last step of the Computer Vision pipeline if the actual analysis of the data, which will allow the decision making.
High-level algorithms are applied, using both the image data and the low-level information computed in previous steps.
Examples of high-level image analysis are:
1. 3D scene mapping
2. Object recognition
3. Object tracking
3D mapping of a living room.
Recognition of objects in images.
Tracking people in a train station.
Applications of computer vision
Techniques developed for Computer Vision have many applications in the fields of robotics, human-computer interaction and visualization, to name a few:
1. Motion recognition
2. Augmented reality
3. Autonomous cars
4. Domestic/service robots
5. Image restoration such as denoising
Motion tracking using a skeleton.
Augmenting a living room before buying a new sofa.
An autonomous car.
A domestic robot.
Challenges in computer vision
When developing Computer Vision algorithms, one has to face different issues and challenges, related to the very nature of the data or event the application to be created and its context:
1. Noisy or incomplete data
2. Real-time processing
3. Limited resources: power, memory
Current research is focused on addressing these challenges to make the algorithms more robust and efficient in difficult conditions.
Computer Vision inside Hayo
Hayo is built upon state-of-the-art computer vision algorithms that allow detecting whenever a button is activated.
We use data extracted from its sensor to map the room in 3D and continuously analyze what is in front of it to detect the presence of a hand inside any of the buttons.
Thanks to this technology, Hayo is able to instantly recognize interactions in any part of the room, to provide its users with the power of connecting the world around them.
Richard Szeliski, “Computer Vision: Algorithms and Applications”, Springer Science & Business Media, 2010