[套装书]智能硬件与机器视觉:基于树莓派、Python和OpenCV+移动平台深度神经网络实战:原理、架构与优化(2册)

作者
陈佳林 等
丛书名
出版社
机械工业出版社
ISBN
9782110261865
简要
简介
内容简介书籍计算机书籍 ---------------------------8075663 - 智能硬件与机器视觉:基于树莓派、Python和OpenCV--------------------------- 内容简介 这是一部讲解如何利用树莓派、OpenCV、Python等软硬件构建智能硬件并在其上实现图像分析、文字识别、人脸识别与追踪、视频监控等机器视觉功能的实用性著作。 全书一共11章: 第1~4章首先讲解了机器视觉在智能硬件领域的应用场景以及智能硬件上4种常见的机器视觉技术方案;然后讲解了树莓派和OpenCV的安装、配置以及其他准备工作;最后通过一些简单的案例和代码手把手教读者如何使用OpenCV。 第5~11章是本书的核心内容,通过几个具体的综合案例讲解了如何使用树莓派低成本玩转如下机器视觉场景:拍摄照片和视频、处理相机的原始数据、道路和商场的人流统计、道路信息的文字识别、人脸识别与追踪、中央AI视频监控等。以上案例循序渐进,环环相扣,所有代码均可在树莓派上运行,可轻松移植到任何ARM开发板上。 ---------------------------8065155 - 移动平台深度神经网络实战:原理、架构与优化--------------------------- 整体思路是: 1、最初介绍深度学习必备的知识点,做好基础知识铺垫 2、讲解数据收集、清洗和预处理过程 3、讲解深度学习训练 . 4、移动端实践:性能优化、指令集优化、移动端预测框架开发(基于caffe2、mxnet或ncnn,还未定),开发App使用预测。
目录
[套装书具体书目]
8065155 - 移动平台深度神经网络实战:原理、架构与优化 - 9787111641001 - 机械工业出版社 - 定价 129
8075663 - 智能硬件与机器视觉:基于树莓派、Python和OpenCV - 9787111667698 - 机械工业出版社 - 定价 89



---------------------------8075663 - 智能硬件与机器视觉:基于树莓派、Python和OpenCV---------------------------


前言
第1章 智能硬件与机器视觉1
1.1 机器视觉在智能硬件领域的应用1
1.1.1 机器视觉在智慧城市的应用2
1.1.2 机器视觉与5G的协同效应4
1.2 智能硬件上的机器视觉技术方案选型5
1.2.1 方案A:树莓派5
1.2.2 方案B:BeagleBoard7
1.2.3 方案C:NVIDIA Jetson8
1.2.4 方案D:Google Coral Dev Board + Edge TPU9
1.3 本章小结10
第2章 树莓派软硬件准备11
2.1 刷写系统11
2.2 硬件连接14
2.3 Linux系统的基本操作17
2.3.1 Linux常用命令17
2.3.2 Vim编辑器的使用19
2.4 远程连接树莓派20
2.4.1 使用SSH连接树莓派21
2.4.2 使用VNC连接树莓派24
2.5 使用相机模块拍摄一张照片28
2.6 本章小结31
第3章 安装OpenCV32
3.1 使用pip安装OpenCV32
3.1.1 在Ubuntu上使用pip安装OpenCV33
3.1.2 在macOS上使用pip安装OpenCV35
3.1.3 在树莓派上使用pip安装OpenCV36
3.1.4 注意事项38
3.2 树莓派源码编译安装OpenCV 439
3.2.1 扩展TF卡并安装依赖39
3.2.2 下载OpenCV 442
3.2.3 为OpenCV 4搭建基于Python 3的虚拟环境42
3.2.4 构建和编译OpenCV 444
3.2.5 测试OpenCV 447
3.2.6 可能遇到的问题47
3.3 本章小结49
第4章 通过案例手把手入门OpenCV50
4.1 开始前的准备50
4.1.1 环境准备50
4.1.2 项目代码准备51
4.2 OpenCV图像简单处理51
4.2.1 加载和显示图像51
4.2.2 访问单个像素53
4.2.3 数组切片和裁剪54
4.2.4 调整图像大小55
4.2.5 旋转图像57
4.2.6 平滑图像60
4.2.7 在图像上绘图60
4.2.8 运行第一个OpenCV教程的Python脚本64
4.3 OpenCV图像对象计数64
4.3.1 目标对象计数64
4.3.2 将图像转换为灰阶65
4.3.3 边缘检测67
4.3.4 阈值处理68
4.3.5 检测和绘制轮廓68
4.3.6 腐蚀和膨胀70
4.3.7 蒙版和按位操作71
4.3.8 运行第二个OpenCV教程的Python脚本72
4.4 本章小结72
第5章 使用Python拍摄照片、视频73
5.1 安装picamera环境73
5.1.1 安装Raspbian系统73
5.1.2 安装其他系统74
5.1.3 升级相机固件74
5.1.4 安装树莓派摄像头模组75
5.1.5 控制V1版的LED灯78
5.2 使用摄像头拍摄照片78
5.2.1 捕获照片并存为文件79
5.2.2 捕获照片并存为流79
5.2.3 捕获照片并存为PIL图像80
5.2.4 捕获调整了大小的图像80
5.2.5 快拍和连拍的技巧81
5.2.6 捕获延时摄影序列82
5.2.7 弱光下拍照82
5.2.8 网络直播83
5.3 使用摄像头拍摄视频85
5.3.1 录制视频文件85
5.3.2 录制视频流86
5.3.3 录制拆分为多个文件86
5.3.4 录制循环视频流87
5.3.5 录制网络视频流88
5.3.6 视频预览叠加图像加水印90
5.3.7 视频输出叠加文本、时间戳92
5.4 本章小结93
第6章 使用Python处理相机原始数据94
6.1 捕获并直接编码94
6.1.1 捕获并编码为numpy数组94
6.1.2 捕获并编码为opencv对象95
6.1.3 捕获未编码图像(YUV)96
6.1.4 捕获编码图像(RGB)99
6.1.5 自定义编码器100
6.2 多种捕获方法102
6.2.1 录像时截屏102
6.2.2 多种分辨率下录制103
6.2.3 特殊文件输出103
6.2.4 Bayer-Raw数据获取104
6.3 树莓派相机的实际应用109
6.3.1 自定义输出:运动检测相机的代码实现109
6.3.2 循环视频流切割:行车记录仪碰撞预警功能111
6.3.3 快速捕获和处理:连拍算法实现112
6.3.4 录制未经编码的视频:颜色检测116
6.3.5 快速捕获和流传输:网络流直播117
6.3.6 网络流媒体:结合网页技术直播119
6.3.7 录制运动矢量数据:检测视频中的手势121
6.4 常见错误集锦125
6.5 本章小结128
第7章 道路、商场人流统计129
7.1 原理解析130
7.1.1 目标检测与目标追踪130
7.1.2 形心追踪算法原理131
7.1.3 人群计数器原理133
7.2 软件环境准备134
7.3 使用Python实现人群计数器135
7.3.1 结构135
7.3.2 形心追踪器类CentroidTracker的实现135
7.3.3 追踪目标类TrackableObject的实现141
7.3.4 人群计数器的实现141
7.3.5 树莓派人群计数器测试149
7.4 本章小结149
第8章 道路信息文字识别150
8.1 EAST深度学习模型151
8.1.1 EAST模型简介151
8.1.2 相关软件包的安装152
8.1.3 项目工程结构153
8.2 检测图片中的文字153
8.2.1 代码编写和解读153
8.2.2 效果测试157
8.3 检测视频中的文字159
8.3.1 代码编写和解读159
8.3.2 效果测试163
8.4 对文字内容进行识别164
8.4.1 Tesseract介绍和安装164
8.4.2 使用Tesseract实现文字识别的原理166
8.4.3 代码编写和解读168
8.4.4 效果测试173
8.5 本章小结175
第9章 简单人脸追踪176
9.1 核心原理和效果简介176
9.2 环境准备和代码编写177
9.2.1 使用Python实现形心追踪算法177
9.2.2 人脸追踪的实现182
9.3 测试人脸跟踪效果186
9.3.1 测试效果186
9.3.2 缺陷与不足187
9.4 本章小结187
第10章 人脸追踪安防摄像头188
10.1 总体设计思路188
10.1.1 硬件组装清单188
10.1.2 PID控制反馈算法189
10.1.3 人脸识别算法:基于Haar特征的级联分类器190
10.2 软件环境准备193
10.2.1 将smbus安装在py3cv3环境中193
10.2.2 打开树莓派的Camera接口并安装驱动193
10.2.3 安装gpiozero195
10.2.4 安装imutils195
10.3 编写代码195
10.3.1 项目结构196
10.3.2 实时调节反馈机制:PIDController196
10.3.3 在视频中检测到人脸198
10.3.4 使用GPIOZERO进行舵机控制200
10.4 使用PID调节二自由度云台206
10.4.1 PID参数调试206
10.4.2 运行二自由度人脸追踪摄像头208
10.5 本章小结208
第11章 多路摄像头中央AI监控209
11.1 网络传输OpenCV帧209
11.1.1 实现目标和方法209
11.1.2 消息传递的概念210
11.1.3 项目实现流程211
11.2 ImageZMQ消息传递系统211
11.2.1 什么是ZMQ212
11.2.2 基于ZMQ的图片消息传递库:ImageZMQ212
11.2.3 ImageZMQ依赖的软件包212
11.2.4 项目整体介绍213
11.3 多路树莓派摄像头配置214
11.3.1 配置树莓派客户端的主机名214
11.3.2 树莓派发送OpenCV视频流216
11.3.3 将代码放到树莓派中218
11.4 配置中央监控室服务器端和Caffe框架218
11.4.1 安装Caffe框架218
11.4.2 实现OpenCV视频监控接收器218
11.4.3 使用MobileNet SSD对帧进行推理220
11.5 使用OpenCV实现视频流网络传输225
11.6 本章小结226



---------------------------8065155 - 移动平台深度神经网络实战:原理、架构与优化---------------------------


序一
序二
前言
第一篇 深度学习基础
第1章 向未来问好 2
1.1 机器学习即正义 2
1.1.1 照本宣科 3
1.1.2 关键概念概述 4
1.1.3 数学之美 5
1.2 机器学习的场景和任务 6
1.3 机器学习算法 8
1.3.1 分类算法 8
1.3.2 回归算法 8
1.3.3 聚类算法 8
1.3.4 关联分析算法 9
1.3.5 集成算法 9
1.3.6 强化算法 10
1.4 如何掌握机器学习 10
1.4.1 学习曲线 10
1.4.2 技术栈 11
1.5 深度学习 12
1.5.1 深度学习的贡献 12
1.5.2 深度学习框架简介 13
1.5.3 安装使用深度学习框架 16
1.5.4 深度学习进展 22
1.6 走进移动世界的深度学习 25
1.6.1 移动平台机器学习概述 25
1.6.2 难度和挑战 26
1.7 本书框架 26
1.8 本章小结 27
第2章 机器学习基础 28
2.1 机器学习的主要任务 28
2.2 贝叶斯模型 29
2.3 Logistic回归 33
2.3.1 线性回归 33
2.3.2 几率与Logit 35
2.3.3 Logistic回归 38
2.3.4 背景溯源 39
2.3.5 实现Logistic回归 42
2.4 本章小结 44
第3章 人工神经网络 45
3.1 人工神经网络简介 45
3.2 基本结构与前向传播 46
3.2.1 神经元 46
3.2.2 连接与网络 47
3.2.3 神经网络向量化 48
3.2.4 前向传播 50
3.3 反向传播算法 50
3.4 实现前向神经网络 53
3.4.1 神经网络与前向传播实现 53
3.4.2 Softmax回归 60
3.5 稀疏自编码器 61
3.5.1 引子 61
3.5.2 自编码器简介 61
3.5.3 稀疏自编码算法 63
3.6 神经网络数据预处理 64
3.6.1 去均值 64
3.6.2 归一化 65
3.7 本章小结 65
第4章 深度网络与卷积神经网络 66
4.1 深度网络 66
4.1.1 自我学习 66
4.1.2 特征学习 67
4.1.3 深度神经网络 68
4.1.4 逐层贪婪训练方法 69
4.2 卷积神经网络 70
4.2.1 全连接与部分连接网络 70
4.2.2 卷积 70
4.2.3 池化 72
4.2.4 卷积神经网络 73
4.3 卷积神经网络实现 73
4.3.1 Layer实现 74
4.3.2 Net实现 79
4.3.3 InnerProduct实现 92
4.3.4 Convolution实现 95
4.3.5 Pooling实现 101
4.3.6 定义注册头文件 109
4.4 本章小结 110
第二篇 移动平台深度学习基础
第5章 移动平台深度学习框架设计与实现 112
5.1 移动平台深度学习系统开发简介 112
5.2 ARM Linux基础开发环境 113
5.2.1 通用ARM工具链安装 114
5.2.2 Android NDK安装 114
5.2.3 树莓派工具链安装 115
5.3 TensorFlow Lite介绍 115
5.3.1 TensorFlow Lite特性 115
5.3.2 TensorFlow Lite架构 116
5.3.3 TensorFlow Lite代码结构 117
5.4 移动平台性能优化基础 118
5.4.1 ARM v8体系结构 119
5.4.2 ARM v8数据类型与寄存器 120
5.4.3 Neon指令集介绍 122
5.4.4 ARM v8内存模型 124
5.4.5 Neon指令集加速实例 127
5.5 本章小结 140
第6章 移动平台轻量级网络实战 141
6.1 适用于移动平台的轻量级网络 141
6.2 SqueezeNet 142
6.2.1 微观结构 142
6.2.2 宏观结构 142
6.2.3 核心思路 143
6.2.4 实战:用PyTorch实现SqueezeNet 144
6.3 MobileNet 153
6.4 ShuffleNet 154
6.5 MobileNet V2 155
6.5.1 MobileNet的缺陷 155
6.5.2 MobileNet V2的改进 155
6.5.3 网络结构 156
6.5.4 实战:用PyTorch实现MobileNet V2 157
6.6 本章小结 161
第三篇 深入理解深度学习
第7章 高性能数据预处理实战 164
7.1 数据预处理任务 164
7.1.1 数据清理 165
7.1.2 数据集成 165
7.1.3 数据归约 165
7.1.4 数据变换 166
7.2 数据标准化 166
7.3 PCA 167
7.3.1 PCA的现实问题 167
7.3.2 PCA的计算方法 167
7.3.3 PCA的数学理论基础 169
7.4 在Hurricane之上实现PCA 170
7.4.1 Hurricane实时处理系统 171
7.4.2 实现Hurricane Topology 172
7.4.3 实现PCA 178
7.5 本章小结 192
第8章 基于深度神经网络的物体检测与识别 193
8.1 模式识别与物体识别 193
8.1.1 模式识别 193
8.1.2 模式识别系统 194
8.1.3 传统模式识别方法 194
8.1.4 深度学习模式识别方法 197
8.2 图像分类 197
8.2.1 LeNet 197
8.2.2 AlexNet 200
8.2.3 数据抓取整理 203
8.2.4 数据预处理 204
8.2.5 数据训练 206
8.3 目标识别与物体检测 207
8.3.1 目标识别简介 207
8.3.2 R-CNN 208
8.3.3 SPP-Net 209
8.3.4 Fast R-CNN 211
8.3.5 Faster R-CNN 211
8.3.6 RetinaNet 213
8.4 检测识别实战 213
8.4.1 Faster R-CNN 214
8.4.2 RetinaNet 230
8.5 移动平台检测识别实战 237
8.5.1 移动平台系统开发思路 237
8.5.2 基于RetinaNet的检测定位实现 237
8.5.3 基于AlexNet的识别分类实现 244
8.5.4 接口设计封装 247
8.6 本章小结 258
第四篇 深入理解移动平台深度学习
第9章 深入移动平台性能优化 260
9.1 模型压缩 260
9.2 权重稀疏化 262
9.2.1 Structured Sparsity Learning 262
9.2.2 Dynamic Network Surgery 262
9.2.3 Dynamic Network Surgery实现 264
9.3 模型加速 275
9.3.1 半精度与权重量化 275
9.3.2 深度压缩 276
9.3.3 二值化网络 278
9.3.4 三值化网络 280
9.3.5 DoReFa-Net 282
9.3.6 编程实战 283
9.4 嵌入式优化 287
9.4.1 算法局限与改进 287
9.4.2 理论改进 287
9.4.3 编程实战 288
9.5 嵌入式优化代码实现 290
9.5.1 量化分析实现 290
9.5.2 层实现 302
9.5.3 量化矩阵计算 309
9.6 本章小结 313
第10章 数据采集与模型训练实战 314
10.1 收集海量数据 314
10.1.1 搜索引擎工作原理 315
10.1.2 HTTP会话 316
10.1.3 解决JavaScript渲染问题 316
10.2 图片数据爬虫实现 317
10.2.1 获取任务 318
10.2.2 解析图片 320
10.2.3 图片存储 326
10.2.4 图片去重 327
10.2.5 完成Topology 328
10.3 训练与测试 330
10.3.1 模型定义 330
10.3.2 训练 334
10.3.3 测试 342
10.3.4 封装 344
10.4 本章小结 345
第11章 移动和嵌入式平台引擎与工具实战 346
11.1 TensorFlow Lite构建 346
11.2 集成TensorFlow Lite 357
11.3 核心实现分析 358
11.3.1 解释器代码分析 358
11.3.2 图代码分析 373
11.3.3 操作符注册 381
11.3.4 操作符扩展实现 384
11.3.5 计算与优化模块 399
11.4 模型处理工具 407
11.5 本章小结 425
第12章 移动平台框架与接口实战 426
12.1 Core ML 426
12.1.1 准备数据和生成模型 427
12.1.2 App实战:引入Core ML实现 430
12.2 Android Neural Networks API 437
12.2.1 等等,Google还有一个ML Kit 437
12.2.2 NNAPI编程模型 437
12.2.3 创建网络与计算 439
12.2.4 JNI封装与调用 451
12.2.5 App实战:集成NNAPI 454
12.3 实战:实现Android图像分类器App 459
12.3.1 JNI封装 459
12.3.2 Java调用 474
12.4 未来之路 479
12.5 本章小结 480

推荐

车牌查询
桂ICP备20004708号-3