logo资料库

Arduino.Computer.Vision.Programming.pdf

第1页 / 共219页
第2页 / 共219页
第3页 / 共219页
第4页 / 共219页
第5页 / 共219页
第6页 / 共219页
第7页 / 共219页
第8页 / 共219页
资料共219页,剩余部分请下载后查看
Cover
Copyright
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Table of Contents
Preface
Chapter 1: General Overview of Computer Vision Systems
Introducing computer vision systems
Approaching computer vision problems
Data acquisition
Preprocessing
Feature extraction by image processing
Post-processing and post-filtering
Recognition or detection
Acting in the real world
Connecting the pieces
Summary
Chapter 2: Fundamentals and Installation of OpenCV
Fundamentals of OpenCV
The installation of OpenCV
Installing OpenCV on Linux
Installing and configuring packages
Using OpenCV with Eclipse CDT
Installing OpenCV on Mac OS
Getting command-line tools
Installing HomeBrew
Using OpenCV in Xcode
Installing OpenCV on Windows
Installing MS Visual Studio 2013
OpenCV on iOS
OpenCV on Android
Installing OpenCV4Android
Eclipse integration
Running samples
Summary
Chapter 3: Data Acquisition with OpenCV and Arduino
Image and video acquisition
Camera selection
Resolution
Color capabilities
Frame rate
2D or 3D
Communication interface
Image acquisition
Reading a static image
Taking a snapshot from a webcam
Getting a video stream from the webcam
Interaction with Kinect
Integration of Kinect with OpenCV
Sensor data acquisition
Setting up an Arduino environment
Fundamentals of sensors
Sensor types
Sampling theorem
Dealing with noise
Reading data from the temperature sensor
Summary
Chapter 4: Filtering Data with OpenCV
Getting started with filtering
2D convolution
Spatial domain filtering
Smoothing
Sharpening
Color conversions
Grayscale
Binary
Constant thresholding
Adaptive thresholding
Morphological filters
Erosion and dilation
Erosion
Dilation
Opening and closing
Closing
Opening
Gradients and edge detection
The Canny edge detector
Laplacian of Gaussian filter
Sobel
Custom filtering
Histogram equalization
Chapter project
Summary
Chapter 5: Processing Vision Data with OpenCV
Extracting features
Using basic statistics
Using color features
Using template matching features
Using contours
Using the convex hull
Using moments
Using the Hough transform
Using corners
Using SIFT
Using SURF
Using ORB
Using blob analysis
Summary
Chapter 6: Recognition with OpenCV
Building applications which can think
Template matching
Feature matching
FLANN-based matching
Using cascade classifiers
Using support vector machines
Summary
Chapter 7: Communicating with Arduino Using OpenCV
Communicating with Arduino
Wired communications
Communicating via USB
Communicating via the serial port
Communicating via Ethernet
Wireless communications
Communicating via Bluetooth Low Energy
Communicating via ZigBee
Communicating via Wi-Fi
Communicating via radio frequency
Communicating with Java
Communicating with C++
Summary
Chapter 8: Acting in the Real World with Arduino
Interfacing electric motors
Driving DC motors
Driving stepper motors
Driving servo motors
Using display screens
Using LCD screens
Using TFT screens
Summary
Chapter 9: Building a "Click-to-Go" Robot
System overview
Building a robot
Building mechanics
Building the electronics
Robot/receiver and transmitter drawings
Building the robot controller and communications
Building the vision application
Building a vision controller and communications
Summary
Index
Arduino Computer Vision Programming Design and develop real-world computer vision applications with the powerful combination of OpenCV and Arduino Özen Özkaya Giray Yıllıkçı BIRMINGHAM - MUMBAI [ FM-1 ]
Arduino Computer Vision Programming Copyright © 2015 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: August 2015 Production reference: 1250815 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78355-262-7 www.packtpub.com [ FM-2 ]
Credits Authors Özen Özkaya Giray Yıllıkçı Reviewers Avirup Basu Roberto Gallea Seyed Mohsen Mousavi Surya Penmetsa Randy Schur Commissioning Editor Priya Singh Acquisition Editor Neha Nagwekar Content Development Editor Shweta Pant Technical Editor Narsimha Pai Copy Editors Dipti Mankame Kevin McGowan Project Coordinator Sanjeet Rao Proofreader Safis Editing Indexer Priya Sane Graphics Sheetal Aute Production Coordinator Shantanu N. Zagade Cover Work Shantanu N. Zagade [ FM-3 ]
About the Authors Özen Özkaya is an embedded systems engineer who has been involved in the design, development, and verification of various applications of computer vision and embedded systems for more than 6 years. He strongly believes in the power of sharing knowledge and continuously extending the computer vision. After earning 6 years of experience in the profession, he is now working for Siemens as a senior development engineer, where he is involved in the research and development of industrial control devices and industrial communication processors. He also contributes to software quality assurance projects in Siemens. He has a total of eight patent applications up to now, and all of his applications are still in progress. He completed a bachelor's program in electronics engineering from İstanbul Technical University (ITU) in 3 years with high honor certificates. He holds a master's degree in electronics engineering from ITU and is currently pursuing a PhD in electronics engineering there. During his academic studies, he worked in various laboratories, such as the medical system design lab, control and avionics lab, robotics lab, pattern recognition and signal processing lab, industrial automation lab, and finally, the embedded systems lab. In addition to his academic studies, he is now a mentor in the embedded systems laboratory at ITU. [ FM-4 ]
Özen can be reached directly via e-mail at ozenozkaya@gmail.com or contact@ozenozkaya.com. If you want to learn more about him, visit his website at http://www.ozenozkaya.com. First of all, I would like to thank my parents, Kıyas and Ferah, for their endless effort and perseverance in bringing me up to this level. My academic advisor, Assoc. Prof. Dr. S. Berna Örs Yalcin, always supported me and helped me achieve many things, so I would like to thank her. I would also like to thank all my friends; the list is too long to mention here. Above all, a huge special thanks to Nilay Tüfek, who supported me a lot in the writing of this book. She also sincerely encouraged me to accept this challenge and overcome it. Giray Yıllıkçı is focuses on embedded systems, computer vision, and robotics. He has been contributing to these areas in both the industrial and academic fields. He enjoys sharing his knowledge and experiences of the field with juniors. He believes that sharing information is the true way of proceeding in life. Giray is currently working as a senior research engineer at Design Lab, Koç University, where he is coordinating the technical process of projects. He is responsible for designing industrial-level proof of concepts for studies at Design Lab. In addition, he manages technical research engineers. His six patent applications are in progress. He has a bachelor's degree in physics from Koç University. Now, he is currently working on his MS thesis for a graduation program in satellite communication and remote sensing at Istanbul Technical University. [ FM-5 ]
More about him can be found at his website http://www.girayyillikci.com. He can be contacted via gyillikci@gmail.com or gyillikci@ku.edu.tr. First, I would like to express my gratitude to Özen Özkaya for enabling me to be a part of this book. I would like to thank the Packt crew who provided support, and offered comments and assistance. At this point, I would like to thank Seyed Mousavi for his valuable reviews and Shweta Pant for successful content development management. Thank you to Cetin Seren for his guidance in my career. His wise advice and fruitful discussions have led me to achieve the best in my field. I would like to thank Süreyya Ciliv for providing us with an intellectual and inspiring work environment at Turkcell Technology Applied Research Center, where we received a lot of inspiring know-how. Thanks to Tugce Pakakar and her friends for helping me enjoy the process of writing this book. Above all, I am thankful to my mother, father, and brother, who supported, encouraged, and inspired me throughout my life. I would like to express my most sincere gratitude to them with these lines. [ FM-6 ]
About the Reviewers Avirup Basu is currently a student pursuing a BTech in electronics and communication engineering from the Siliguri Institute of Technology. Besides academics, he is actively involved in the fields of robotics, IoT, and mobile application development. Since college, he has been involved with Microsoft as a Microsoft Student Partner and has organized 3-4 seminars and workshops on various Microsoft technologies, mainly on Windows Phone and Windows app development. Being enthusiastic about robotics and Microsoft technologies, he has developed several robots, both autonomous and manual, and has developed a couple of manual robot controllers; some of these are the "Universal robot controller" for Windows PC and "Mark 1 Pilot" for Windows Phone. He is also into computer vision and has worked on detection of wild animals. A publication of his is Automated Elephant Tracker in the journal known as the International journal of Electronics and Communication Engineering and Technology (IJECET) under International Association for Engineering and Management Education, which includes his work on robotics and computer vision. His website at http://www.avirupbasu.com holds some of his work, and you may get in touch with him there. Being a part-time blogger, he blogs about the topics he is interested in. Currently, he is working on autonomous robot control using SONAR and GPS. He dreams of carrying out research and development in his areas of interest. [ FM-7 ]
分享到:
收藏