科技
类型
可以朗读
语音朗读
103千字
字数
2020-05-01
发行日期
展开全部
主编推荐语
创客教育书籍,用Pyhton编程和机器人实战体验人工智能概念。
内容简介
树莓派是一款基于ARM架构、Linux系统的极简计算机,既可以用于计算机编程教育,也可以作为机器人的控制核心。第一种运行于树莓派上的编程语言是Python,这是当前人工智能领域最为流行的编程语言。机器视觉是人工智能中重要的细分研究领域,OpenCV则是当前机器视觉领域主流的开源处理库,可以方便地用于计算机图像处理,并应用于面部识别、目标识别等具体问题。本书介绍在树莓派硬件上使用Python语言,借助OpenCV库编程,来实现具有机器视觉功能(识别和抓取特定颜色物体、识别人脸、识别特定人脸、进行面部跟踪)的智能机器人。本书力求通过一系列不同层次的软硬件任务,由浅入深地讲解人工智能的概念,同时覆盖Linux系统操作、Python编程、机器人系统搭建等多方面的综合知识。在本书案例中使用的主要硬件载体是可在桌面上固定运转的双轴云台和三轴机械臂等,它们可以代表一类智能机器人的形态。本书遵循开源、分享的创客精神,所有的硬件材料和软件内容均可以从公共平台获取,读者在充分理解的基础上,不必局限于本书所列硬件,可自行获取类似设备完成项目。本书可以作为中小学STEAM人工智能教育的一本基础读物,也可以作为中高职院校相关专业学生的参考书。
目录
- 内容提要
- 推荐序
- 前言
- 第1章 走近人工智能
- 1.1 初识人工智能
- 1.1.1 人工智能是什么
- 1.1.2 人工智能的发展历程
- 1.1.3 人工智能的应用现状
- 1.2 机器人世界
- 1.2.1 机器人的发展历史
- 1.2.2 什么是智能机器人
- 1.2.3 常见的智能机器人控制核心
- 第2章 认识树莓派
- 2.1 树莓派是什么
- 2.2 树莓派3B+主控板简介
- 2.3 树莓派的连接与开机
- 2.4 Linux操作系统简介
- 第3章 Python编程基础
- 3.1 什么是编程语言
- 3.2 认识Python语言
- 3.3 在树莓派中使用Python编程
- 3.3.1 交互式编程
- 3.3.2 使用算术运算符进行运算
- 3.3.3 用Geany编辑器编写Python程序
- 3.4 Python中的变量
- 3.4.1 变量的赋值
- 3.4.2 Python的数据类型
- 3.5 if条件结构
- 3.5.1 条件的真与假
- 3.5.2 比较运算符
- 3.5.3 if条件结构的格式与缩进
- 3.6 while循环结构
- 3.7 Python中的函数
- 3.7.1 自定义一个函数
- 3.7.2 给Python程序加上注释
- 第4章 Python编程与树莓派硬件控制
- 4.1 树莓派的GPIO接口
- 4.2 LED模块与按钮模块的连接
- 4.3 点亮一盏小灯
- 4.3.1 导入Python扩展包
- 4.3.2 LED显示彩色的原理
- 4.3.3 对输入/输出设备的设定
- 4.3.4 让小灯闪烁起来
- 4.4 用按钮控制灯的状态
- 4.4.1 按钮状态的读取与判断
- 4.4.2 两个按钮的控制与逻辑运算符
- 4.5 做一个抢答器吧
- 4.5.1 延时点亮小灯
- 4.5.2 判断获胜者与break关键词
- 4.5.3 Python中的随机数
- 第5章 机器视觉入门
- 5.1 机器视觉与图像识别
- 5.1.1 机器是怎样“看”的
- 5.1.2 机器视觉技术的常见应用
- 5.2 认识OpenCV
- 5.2.1 OpenCV简介
- 5.2.2 视频的帧与分辨率
- 5.2.3 用树莓派摄像头调取图像
- 5.3 用OpenCV识别颜色
- 5.3.1 HSV颜色空间
- 5.3.2 图像的二值化
- 5.3.3 找到轮廓的位置
- 5.4 做一个魔法棒吧
- 5.4.1 用OpenCV绘制小圆点
- 5.4.2 Python中的列表与元组
- 5.4.3 for循环遍历结构
- 5.4.4 按键值与键盘控制
- 第6章 机械臂智能分拣任务
- 6.1 认识机械臂
- 6.1.1 应用广泛的机械臂
- 6.1.2 三轴机械臂结构分析
- 6.2 程序控制机械臂的运动
- 6.2.1 认识舵机
- 6.2.2 舵机的线路连接
- 6.2.3 舵机控制程序
- 6.2.4 机械臂头部的执行装置——电控吸盘
- 6.2.5 用示教方式完成物料分拣
- 6.3 用树莓派控制机械臂
- 6.3.1 硬件连接
- 6.3.2 程序编写
- 6.4 用摄像头找到木块位置
- 6.4.1 安装摄像头
- 6.4.2 调用摄像头的图像并识别木块位置
- 6.5 使吸盘位于物体正上方
- 6.5.1 当物体位于吸盘正下方时,它的坐标是多少
- 6.5.2 控制1号舵机左右运动,使物体x坐标为320
- 6.5.3 控制机械臂等高运动,使物体y坐标为150
- 6.6 抓取和放置物体
- 6.7 扩展任务
- 第7章 制作人脸追踪机器人
- 7.1 人脸识别知多少
- 7.2 使用肤色检测找到人脸
- 7.3 使用哈尔特征检测找到人脸
- 7.4 人脸追踪机器人初制
- 7.5 什么是机器学习
- 7.5.2 机器学习的分类
- 7.6 认识人工神经网络
- 7.7 识别特定的人脸
- 7.8 扩展任务——属于你的机器人
- 7.8.1 让机器人认识你
- 7.8.2 让机器人发出声音
- 附录 “试一试”环节参考程序
- 3.4.2 仿照本节示例中的加法计算器,编写减法、乘法和除法的计算器。
- 3.5 将3.4节练习中的计算器改写为可以根据输入的运算符自主选择运算方式的四则运算计算器。
- 3.6 斐波那契数列指的是形如 1,1,2,3,5,8,13……的数列,其第一位和第二位均为 1,其后每一位等于前两位之和。试用 while 循环计算斐波那契数列中任一位置的数字。
- 3.7.1 将斐波那契数列的运算封装为一个函数,通过调用这个函数获取数列中指定位置的值。
- 4.3.3 利用 while 循环结构,建立一个控制 sleep 时间的变量,试着让小灯越闪越亮。
- 4.4 用至少两种方法实现两个按钮按下一个则点亮小灯,都不按则熄灭小灯。
- 4.5 制作一个随机时间亮灯、可以重复运行的抢答器。
- 4.5 抢答器游戏显然有作弊的方法:在灯亮前就按住按钮。试试通过改写程序来揪出作弊者。
- 5.2.3 连接树莓派摄像头,用 OpenCV 预览实时视频。
- 5.3.3 找一个颜色均匀的物体,用 OpenCV 输出这个物体在摄像头中的中心位置和大小。 请根据目标物体的颜色调整 inrange 函数的参数值,注意尽量排除背景中颜色相近的其他物体。
- 5.4.1 制作一个“魔法棒”,确定其对应的 HSV 颜色值区间并通过 OpenCV找到所在的位置,在屏幕上绘制出与其颜色类似的小圆点。
- 5.4.3 利用列表与 for 循环遍历,让屏幕上的图像显示魔法棒经过的所有点,实现基本的程序功能。
- 5.4.3 制作一个可以按键控制开始、停止、清除绘制图案的魔法棒。
- 6.3.2 试使用 Python 程序通过树莓派控制机械臂 M1~M3 舵机运动。
- 6.4.2 试选择一种颜色的物体,将它放置在机械臂摄像头下方,用颜色识别程序输出物体在摄像头中的坐标。
- 6.5.2 请参考本节中的示例程序,根据图像中物体的位置控制M1舵机运动。注意使物体在摄像头中的 x 坐标接近 320,并使物体离目标位置越远时机械臂运动越快,反之越慢。
- 5.4.3 参考本节中的示例程序,使你的机械臂能根据下方物体的位置自动调整至物体上方。
- 6.6 在机械臂调整到物体上方后,跳出循环并加入抓取与放置物体的程序,完成可抓取特定颜色物体放到指定位置的机械臂。
- 7.2 尝试编写程序,使用肤色检测找到实时图像中的人脸,并标注出来。如果识别不准确,请调整程序中的H值或改变摄像头前方的图像背景和光照强度。
- 7.3 尝试编写程序使用哈尔特征检测找到实时图像中的人脸并标注出来。如果识别不准确,请调整现场的光亮度或改变detectMultiScale函数的参数。
- 7.7 本节的示例程序中只采集了一张人脸作为已知数据,也只在实时图像中识别最大的一张人脸。试改写程序,收集更多照片组成更大的已知人脸数据库,并在实时图像中识别所有人脸并用不同颜色的框标识出来。
- 7.8.1 试结合追踪与识别人脸的程序,完成对特定人脸的识别与追踪程序。请在追踪程序的段落中加入上述重置到识别阶段的判断程序。
- 7.8.2 寻找一些机器人声音的音频文件,并改写追踪人脸的机器人程序,让它在识别到 特定人脸或丢失人脸目标等特殊时刻发出对应的声音。
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。