《Arduino计算机视觉编程》一导读

前 言  Preface

特别是对于现代机器而言,计算机视觉是环境感知发展的下一个阶段。许多现代设备尝试使用有限的资源来模仿人类的感知能力。此外,大多数此类仿制品其实是存在不足的,因为通常情况下它们不能直接模拟人类的感知能力,尤其是在视觉方面。
即使传统传感器的种类有很多,它们仍然无法表现出人类视觉系统的强大,这是人类最复杂的感知功能之一。因此,我们需要一定的视觉信息,使我们的电子系统更加智能化。这就是计算机视觉出现的原因。
相机可以被视为终极视觉传感器,它非常接近于人类的视觉感知系统。但是问题在于,如果使用相机作为视觉传感器,那么操作会非常复杂和困难。本书的目的是通过把一个复杂的问题划分为基本的、可实现的子步骤从而让计算机视觉的任务变得简单。这种方法最好的地方在于我们能把实际生活中的应用也变得很容易!
当我们处理现实生活中的应用时,毫无疑问应该有一种方法来与现实生活进行交互。嵌入式系统正好用来表示这些物理交互。Arduino是最流行的嵌入式系统平台之一,它通过海量的社区支持和学习材料为原型开发提供了一种便捷的方法。同时Arduino的关键属性也很棒,稍后将进行更详细的讨论,这些使得Arduino成为视觉系统与现实生活进行交互的最完美的候选。
Arduino在计算机视觉系统中扮演的角色是非常清楚的。在大多数情况下,视觉信息会与来自各种传统的传感器的数据相结合,这些传统的传感器包括温度传感器、压力传感器和加速器等。此外,我们需要一个很好的工具来在视觉处理过程之后采取物理行动,比如驱动电动机和开灯。因此,Arduino在从环境中收集数据并采取行动的过程中非常有用,特别是因为它有大量开发好的库以及社区共享,使得原型开发非常迅速。
开源计算机视觉库(OpenCV)是一个包含大量优化算法的优秀开源库。OpenCV最重要的优势之一是它可以支持多个平台,它能够在Windows、Linux、Mac OS甚至是Android和iOS平台上工作。更重要的是它是一个成熟的库,在写作本书时最新版本为3.0(和2.4.11)。出于这些原因,本书中所有的计算机视觉任务都将采用OpenCV来实现!
本书将通过一种通用的、明确的、可应用的方式来融合Arduino和计算机视觉的能力。书中的实践和方法可用于任何相关的问题和平台。本书想实现的最终目标是让你可以通过一种通用方法使用各种组件来解决现实生活中任意类型的视觉问题。
在每一章中,你将会找到有关主题在现实生活中实际应用的例子。为了学以致用,我们会一步一步地建立一个视觉机器人。你会发现尽管问题的背景有很大的不同,解决问题的方法都是一样的并且很简单!
本书的主要内容
第1章通过介绍一种对现实生活视觉问题有效的解决办法来解释设计模块和体系。
第2章讲述OpenCV库的基本原理以及如何在不同的操作系统平台安装和测试OpenCV库。
第3章通过实用的技巧和现实生活的例子来展示从环境中收集数据的有效方法。
第4章介绍OpenCV库中的内置滤波器以及如何根据应用程序的上下文来选择和实现这些滤波器。
第5章探索如何从视觉数据中提取有意义的信息以及如何让这些提取出来的数据为识别系统做好准备。
第6章通过实践的方式探索人工智能的方法,讨论在一个给定场景中检测和识别物体的方法。
第7章揭示Arduino的通信能力以及在OpenCV的环境中连接Arduino的综合性最佳实践。
第8章演示如何通过物理行为优雅地与现实世界进行交互。
第9章综合前面所学的所有知识来设计和开发一个全功能一体化的机器人。该章还将介绍所提出的方法如何在问题独立的情况下取得成功。

Contents  目 录

译者序
作者简介
前言
第1章 计算机视觉系统综述
1.1 计算机视觉系统介绍
1.2 解决计算机视觉问题
1.2.1 数据采集
1.2.2 预处理
1.2.3 图像处理的特征提取 5
1.2.4 后处理和后置滤波
1.2.5 识别或检测
1.2.6 在现实世界中行动
1.2.7 连接子模块
1.3 总结
第2章 OpenCV的基础与安装
2.1 OpenCV的基础
2.2 OpenCV的安装
2.2.1 在Linux上安装OpenCV
2.2.2 在Mac OS上安装OpenCV
2.2.3 在Windows上安装OpenCV
2.2.4 在iOS上安装OpenCV
2.2.5 在Android上安装OpenCV
2.3 总结
第3章 用OpenCV和Arduino进行数据采集
3.1 图像和视频采集
3.1.1 相机选择
3.1.2 图像采集
3.2 传感器数据采集
3.2.1 设置Arduino环境
3.2.2 传感器基础
3.2.3 从温度传感器中读取数据
3.3 总结
第4章 用OpenCV进行数据过滤
4.1 开始过滤
4.2 空间域滤波
4.2.1 平滑
4.2.2 锐化
4.3 颜色空间转换
4.3.1 灰度化
4.3.2 二值化
4.4 形态学滤波器
4.4.1 腐蚀和膨胀
4.4.2 开运算和闭运算
4.5 梯度和边缘检测
4.5.1 Canny边缘检测器
4.5.2 LoG滤波器
4.5.3 Sobel
4.6 自定义滤波器
4.7 直方图均衡化
4.8 本章的实践项目
4.9 总结
第5章 用OpenCV进行视觉数据处理
5.1 提取特征
5.1.1 使用基本的统计信息
5.1.2 使用颜色特征
5.1.3 使用模板进行特征匹配
5.1.4 使用轮廓特征
5.1.5 使用凸包
5.1.6 使用矩
5.1.7 使用Hough变换
5.1.8 使用角点
5.1.9 使用尺度不变特征变换
5.1.10 使用加速鲁棒特征
5.1.11 使用ORB
5.1.12 使用blob分析
5.2 总结
第6章 用OpenCV进行识别
6.1 构建一个可以思考的应用程序
6.1.1 模板匹配
6.1.2 特征匹配
6.1.3 基于快速近似最近邻搜索库的匹配
6.1.4 使用级联分类器
6.1.5 使用支持向量机
6.2 总结
第7章 用OpenCV与Arduino进行通信
7.1 与Arduino进行通信
7.1.1 有线通信
7.1.2 无线通信
7.2 用Java进行通信
7.3 用C++进行通信
7.4 总结
第8章 将Arduino用于真实世界
8.1 与电动机的连接
8.1.1 驱动直流电动机
8.1.2 驱动步进电动机
8.1.3 驱动伺服电动机
8.2 使用显示器
8.2.1 使用液晶显示器
8.2.2 使用薄膜晶体管显示器
8.3 总结
第9章 建造一个点击行走机器人
9.1 系统总览
9.2 建造一个机器人
9.2.1 构建力学部分
9.2.2 构建电子电路部分
9.2.3 构建机器人控制器和通信系统
9.3 构建视觉应用程序
9.4 总结

时间: 2024-09-16 02:15:09

《Arduino计算机视觉编程》一导读的相关文章

《TCP/IP路由技术(第二卷)》一导读

前 言 TCP/IP路由技术(第二卷)自从出版了<TCP/IP路由技术(第一卷)>之后,虽然Cisco Press"CCIE职业发展系列"中增加了大量新书,而且CCIE计划本身也被扩展到多个专业领域,但IP路由协议仍然是所有准CCIE们的核心基础.因此,必须透彻地对其加以理解和掌握,否则基础不牢,大厦将倾. 我在<TCP/IP路由技术(第一卷)>的前言中曾经说过,"--随着互联网络规模和复杂性的不断增大,路由问题也随即变得庞大且错综复杂".由

《TCP/IP路由技术(第二卷)》一1.4 配置EGP

1.4 配置EGP TCP/IP路由技术(第二卷) 通过以下4个基本步骤即可完成路由器上的EGP配置. 第1步:利用命令autonomous-system指定路由器的AS. 第2步:利用命令router egp启动EGP进程并指定邻居的AS. 第3步:利用命令neighbor指定EGP邻居. 第4步:指定由EGP宣告的网络. 下面的第一个案例研究将详细解释前3个配置步骤,同时也给出了步骤4的多种实现方法. 1.4.1 案例研究:EGP末梢网关 图1-10给出了一台位于AS 65502的EGP末梢

《TCP/IP路由技术(第二卷)》一1.9 配置练习题

1.9 配置练习题 TCP/IP路由技术(第二卷) 本书附录E中提供了以下配置练习题的答案. (1)图1-14中的自治系统65531是一个核心AS,请在RTA和RTB上配置EGP,要求如下: 不要将AS内的数据链路宣告给任何外部邻居. RTA将连接在其S1接口上的网络宣告给RTB:另外,要求RTA和RTB之间不能宣告其他AS间链路. RTA和RTB向其外部邻居(除了从其他自治系统学习到的网络)宣告默认路由,而且这两个网关都不得将默认路由宣告给其内部邻居. (2)例1-26给出了图1-15中RTC

《TCP/IP路由技术(第二卷)》一1.1 EGP的起源

1.1 EGP的起源 TCP/IP路由技术(第二卷)在20世纪80年代早期,构成ARPANET(现代互联网的前身)的路由器(网关)设备上都运行了一种距离向量路由协议--GGP(Gateway-to-Gateway Protocol,网关到网关协议).但是随着ARPANET的不断发展,与当今许多负责管理日益增长的互联网络的网管员一样,ARPANET的架构师们也预见到了相同的问题:现在运行的路由协议没有很好的扩展性. Eric Rosen在RFC 827中阐述了以下扩展性问题. 由于所有的网关都要知

《TCP/IP路由技术(第二卷)》一1.6 附 注

1.6 附 注 TCP/IP路由技术(第二卷)1Eric Rosen,"RFC 827:外部网关协议(EGP)". 2Linda J. Seamonson和Eric C. Rosen"RFC 888:'末梢'外部网关协议". 3D.L. Mills,"RFC 904:外部网关协议正式规范". 4J. Rekhter,"RFC 1092:EGP和新NSFNET骨干网的策略路由".

《TCP/IP路由技术(第二卷)》一1.5 检测与排除EGP故障

1.5 检测与排除EGP故障 TCP/IP路由技术(第二卷)在1.3节中已经解释了EGP为何无法应用于复杂的AS间拓扑结构,而强制性的简单拓扑结构带来了一个意外的好处,那就是EGP的故障检测和排除变得非常简单. 与其他路由协议一样,检测与排除EGP故障的第一步工作就是查看路由表.如果所请求的路由缺失或路由表中存在一条非期望路由,通过查看路由表就可以检测到问题的根源.由于EGP的度量值几乎没有任何意义,因而与其他路由协议相比,利用路由表进行EGP故障的检测和排除工作可以得到大大简化. 需要注意的是

《TCP/IP路由技术(第二卷)》一第1章 外部网关协议

第1章 外部网关协议 TCP/IP路由技术(第二卷)本章将主要讨论以下主题. • EGP的起源:本节将讨论在RFC 827(1982)中定义的外部网关协议的发展历史. • EGP的操作:本节将讨论EGP的基本操作机制,重点是EGP拓扑结构.EGP功能及EGP消息格式. • EGP的不足:本节将探讨为什么EGP不再是一种可行的外部网关协议解决方案. • 配置EGP:本节将通过4个独立的案例研究--EGP末梢网关.EGP核心网关.间接邻居和默认路由,来说明不同类型的EGP配置方法. • 检测和排除E

《TCP/IP路由技术(第二卷)》一1.7 展 望

1.7 展 望 TCP/IP路由技术(第二卷)本章不但说明了AS间路由协议的发明驱动力,也解释了EGP难以胜任该角色的原因.第2章将简要描述EGP的替代协议--边界网关协议及其操作.表1-10汇总了本章用到的所有命令.

《TCP/IP路由技术(第一卷)(第二版)》一导读

前 言 TCP/IP路由技术(第一卷)(第二版)路由技术即使在最小的数据通信网络中也是基本的要素.在某种程度上,路由技术和路由器的配置是相当简单的.但是,当网络的规模越来越大,并且越来越复杂的时候,路由选择问题就变得比较突出和难以控制了.或许,有点不恰当地说,作为一名网络系统顾问,我应该感谢当前出现的大规模路由技术难题,这些问题给了我谋生的手段.假设没有它们,"你何以为生?"这句习语可能就会不幸地成为我每天生活词汇的一部分了. Cisco认证互联网专家(CCIE)在大型网络的设计.故障

《TCP/IP路由技术(第一卷)(第二版)》一第1章 TCP/IP回顾1.1 TCP/IP协议层

第1章 TCP/IP回顾 TCP/IP路由技术(第一卷)(第二版)本章包括以下主题: TCP/IP协议层: IP包头(IP Packet Header): IPv4地址: 地址解析协议(ARP): Internet控制消息协议(ICMP): 主机到主机层. 考虑到这本书的书名是<TCP/IP路由技术>,有必要从回顾TCP/IP的基本知识开始讲起,然后再讲述如何进行TCP/IP路由选择.如果读者正在准备Cisco认证互连网专家(Cisco Certified Internetwork Exper