Book Image

Arduino Computer Vision Programming

By : Özen Özkaya, Giray Yıllıkçı
Book Image

Arduino Computer Vision Programming

By: Özen Özkaya, Giray Yıllıkçı

Overview of this book

<p>Most technologies are developed with an inspiration of human capabilities. Most of the time, the hardest to implement capability is vision. Development of highly capable computer vision applications in an easy way requires a generic approach. In this approach, Arduino is a perfect tool for interaction with the real world. Moreover, the combination of OpenCV and Arduino boosts the level and quality of practical computer vision applications.</p> <p>Computer vision is the next level of sensing the environment. The purpose of this book is to teach you how to develop Arduino-supported computer vision systems that can interact with real life by seeing it.</p> <p>This book will combine the powers of Arduino and computer vision in a generalized, well-defined, and applicable way. The practices and approaches in the book can be used for any related problems and on any platforms. At the end of the book, you should be able to solve any types of real life vision problems with all its components by using the presented approach. Each component will extend your vision with the best practices on the topic.</p> <p>In each chapter, you will find interesting real life practical application examples about the topics in the chapter. To make it grounded, we will build a vision-enabled robot step by step towards the end of the book. You will observe that, even though the contexts of the problems are very different, the approaches to solve them are the same and very easy!</p> <p>&nbsp;</p>
Table of Contents (16 chapters)
Arduino Computer Vision Programming
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
5
Processing Vision Data with OpenCV
Index

Introducing computer vision systems


We use our five senses to observe everything around us—touch, taste, smell, hearing, and vision. Although all of these five senses are crucial, there is a sense which creates the biggest impact on perception. It is the main topic of this book and, undoubtedly, it is vision.

When looking at a scene, we understand and interpret the details within a meaningful context. This seems easy but it is a very complex process which is really hard to model. What makes vision easy for human eyes and hard for devices? The answer is hidden in the difference between human and machine perception. Many researchers are trying to go even further.

One of the most important milestones on the journey is the invention of the camera. Even though a camera is a good tool to save vision-based memories of scenes, it can lead to much more than just saving scenes. Just as with the invention of the camera, man has always tried to build devices to make life better. As the current trend is to develop intelligent devices, being aware of the environment around us is surely a crucial step in this. It is more or less the same for us; vision makes the biggest difference to the game. Thanks to technology, it is possible to mimic the human visual system and implement it on various types of devices. In the process we are able to build vision-enabled devices.

Images and timed series of images can be called video, in other words the computed representations of the real world. Any vision-enabled device recreates real scenes via images. Because extracting interpretations and hidden knowledge from images via devices is complex, computers are generally used for this purpose. The term, computer vision, comes from the modern approach of enabling machines to understand the real world in a human-like way. Since computer vision is necessary to automate daily tasks with devices or machines, it is growing quickly, and lots of frameworks, tools and libraries have already been developed.

Open Source Computer Vision Library (OpenCV) changed the game in computer vision and lots of people contributed to it to make it even better. Now it is a mature library which provides state-of-the-art design blocks which are handled in subsequent sections of this book. Because it is an easy-to-use library, you don't need to know the complex calculations under-the-hood to achieve vision tasks. This simplicity makes sophisticated tasks easy, but even so you should know how to approach problems and how to use design tools in harmony.