您好,欢迎光临有路网!
图像识别技术与实战(OpenCV+dlib+Keras+Sklearn+TensorFlow)
QQ咨询:
有路璐璐:

图像识别技术与实战(OpenCV+dlib+Keras+Sklearn+TensorFlow)

  • 作者:扶松柏
  • 出版社:清华大学出版社
  • ISBN:9787302594086
  • 出版日期:2022年01月01日
  • 页数:0
  • 定价:¥89.00
  • 猜你也喜欢

    分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    《图像识别技术与实战(OpenCV dlib Keras Sklearn TensorFlow)》循序渐进地讲解了使用Python语言实现图像视觉识别的核心知识,并通过具体实例的实现过程演练了图像视觉识别的方法和流程。全书共12章,分别讲解了图像识别技术基础,scikit-image数字图像处理,OpenCV图像视觉处理,dlib机器学习和图像处理算法,face_recognition人脸识别,Scikit-Learn机器学习和人脸识别,TensorFlow机器学习和图像识别,国内常用的第三方人脸识别ping台,AI人脸识别签到打卡系统(PyQt5 百度AI OpenCV-Python SQLite3实现),基于深度学习的AI人脸识别系统(Flask OpenCV-Python Keras Sklearn实现),AI考勤管理系统(face-recognition Matplotlib Django Scikit-Learn dlib实现),AI小区停车计费管理系统。全书讲解简洁而不失技术深度,内容丰富全面,并且易于阅读,以极简的文字介绍了复杂的案例,是学习Python图像视觉识别的实用
    文章节选
    OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常**地实现了计算机视觉算法(基本的滤波到**的物体检测皆有涵盖)。在本章的内容中,将详细讲解在Python程序中使用OpenCV实现图像视觉处理的知识,为读者步入本书后面知识的学习打下基础。

    3.1 OpenCV基础
    OpenCV是计算机视觉中经典的专用库,它支持多语言和跨平台,功能强大。为了让Python***使用OpenCV的强大功能,OpenCV提供了Python接口库OpenCV-Python,***通过调用OpenCV-Python中的成员模块和方法,从而可以在Python程序中使用OpenCV的强大功能。
    3.1.1 OpenCV介绍
    OpenCV由Gary Bradsky(加里·布拉德斯基)于1999年在英特尔创立。Gary Bradsky当时在英特尔任职,怀着为计算机视觉和人工智能的从业者提供稳定的基础架构并以此来推动产业发展的美好愿景,启动了OpenCV项目。
    OpenCV支持多种编程语言,例如C 、Python、Java等,并且可在Windows、Linux、OS X、Android和iOS等不同平台上使用。OpenCV 的应用领域非常广泛,包括图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。
    OpenCV 的一个目标是提供易于使用的计算机视觉接口,从而帮助人们快速建立精巧的视觉应用。OpenCV 库包含从计算机视觉各个领域衍生出来的 500 多个函数,包括工业产品质量检验、医学图像处理、安保领域、交互操作、相机校正、双目视觉以及机器人学。
    因为计算机视觉和机器学习经常在一起使用,所以 OpenCV 也包含一个完备的、具有通用性的机器学习库(ML模块)。这个子库聚焦于统计模式识别以及聚类。ML 模块对 OpenCV 的核心任务(计算机视觉)相当有用,但是这个库也足够通用,可以用于任意机器学习问题。
    3.1.2 OpenCV-Python介绍
    OpenCV-Python是指解决计算机视觉问题的Python专用库。与C/C 之类的语言相比,Python语言的速度较慢。也就是说,可以使用C/C 轻松扩展Python,这使我们能够用C/C 编写计算密集型代码并创建可用作Python模块的Python包装器。这会带来以下两个好处。
    (1) 运行效率相差无几,因为实际上在后台运行的是通过OpenCV-Python调用的C 代码。
    (2) 在Python中比在C/C 中更加容易地编写代码,OpenCV-Python是原始OpenCV C 实现的Python包装器。
    OpenCV-Python利用了NumPy,这是一个高度优化的库,用于使用MATLAB样式的语法进行数值运算。所有OpenCV数组结构都与NumPy数组相互转换。这也使与使用NumPy的其他库(例如SciPy和Matplotlib)的集成变得更加容易。
    3.1.3 安装OpenCV-Python
    在Windows系统中安装Python后,可以使用��下pip命令安装OpenCV-Python: pip install opencv-python 本书中的内容只涉及了OpenCV-Python,它只包含OpenCV的主要模块,这是完全免费的。其实还有一个库:opencv-contrib-python,这个库包含了OpenCV的主要模块以及扩展模块,扩展模块主要包含了一些带专利的收费算法(如shift特征检测)以及一些在测试的新的算法(稳定后会合并到主要模块)。在Windows系统中安装Python后,可以使用如下pip命令安装opencv-contrib-python: pip install opencv-contrib-python 3.2 OpenCV-Python图像操作
    在本节的内容中,首先学习读取图像、显示图像以及保存图像的知识,然后讲解绘图、图像算法和几何变换的知识。
    3.2.1 读取并显示图像
    1. 读取图像
    在OpenCV-Python中,使用内置函数cv.imread()读取图像,被读取的图像应该在工作目录中,或使用图像的完整路径。函数cv.imread()的语法格式如下: cv.imread(filepath,flags) 参数说明如下。
    ? filepath:表示要读入图片的完整路径。
    ? flags:读入图片的标志,用于设置读取图像的方式,主要方式如下。
    ? cv.IMREAD_COLOR:加载彩色图像,用整数1表示。任何图像的透明度都会被忽视,这是默认标志值。
    ? cv.IMREAD_GRAYSCALE:以灰度模式加载图像,用整数0表示。
    ? cv.IMREAD_UNCHANGED:加载图像,包括alpha通道,用-1表示。
    2. 显示图像
    在OpenCV-Python中,使用内置函数cv.imshow()可在窗口中显示图像,窗口会自动适合图像的尺寸大小。函数cv.imshow()的语法格式如下: cv.imshow(winname, mat) 参数说明如下。
    ? winname:表示窗口名称,它是一个字符串。
    ? mat:表示要显示的图像对象,我们可以根据需要创建任意多个窗口,也可以使用不同的窗口名称。
    在下面的实例文件cv01.py中,演示了使用OpenCV-Python读取并显示指定图像的过程。
    源码路径:daima\3\cv01.py
    import cv2 as cv
    print( cv.__version__ )
    #加载彩色灰度图像
    img = cv.imread('111.jpg',0)
    cv.imshow('image',img)
    cv.waitKey(0)
    cv.destroyAllWindows() 代码说明如下。
    ? cv.__version__的功能是显示当前安装的OpenCV-Python版本。
    ? cv.imread('111.jpg',0)的功能是用灰度模式加载图片111.jpg,后通过函数imshow('image',img)显示图片111.jpg。
    ? cv.waitKey()是一个键盘绑定函数,其参数表示的时间以毫秒为单位。该函数等待任何键盘事件指定的毫秒。如果在这段时间内按下任何键,程序都将继续运行。如果**0**被传递,它将无限期地等待一次敲击键。它也可以设置为检测特定的按键,例如按下键A等。
    ? cv.destroyAllWindows()会销毁创建的所有窗口,如果要销毁任何特定的窗口,可使用函数 cv.destroyWindow()在其中传递确切的窗口名称作为参数。
    执行效果如图3-1所示。

    图3-1 执行效果
    注意:在特殊情况下,可以创建一个空窗口,然后再将图像加载到该窗口。在这种情况下,可以指定窗口是否可调整大小,这是通过功能函数cv.namedWindow()实现的。在默认情况下,该标志为cv.WINDOW_AUTOSIZE。但是,如果将标志指定为cv.WINDOW_NORMAL,则可以调整窗口大小。当图像尺寸过大以及向窗口添加跟踪栏时,这将很有帮助。例如下面的代码:
    cv.namedWindow('image',cv.WINDOW_NORMAL)
    cv.imshow('image',img)
    cv.waitKey(0)
    cv.destroyAllWindows()
    目录
    第1章 图像识别技术基础 1 1.1 图像识别概述 2 1.1.1 什么是图像识别 2 1.1.2 图像识别的应用 2 1.2 图像识别原理 3 1.3 图像识别技术 4 1.3.1 AI(人工智能) 5 1.3.2 机器学习 5 1.3.3 深度学习 6 1.3.4 基于神经网络的图像识别 6 1.3.5 基于非线性降维的图像识别 7 第2章 scikit-image数字图像处理 9 2.1 scikit-image基础 10 2.1.1 安装scikit-image 10 2.1.2 scikit-image中的模块 10 2.2 显示图像 11 2.2.1 使用skimage读入并显示外部图像 11 2.2.2 读取并显示外部灰度图像 12 2.2.3 显示内置星空图片 13 2.2.4 读取并保存内置星空图片 14 2.2.5 显示内置星空图片的基本信息 15 2.2.6 实现内置猫图片的红色通道的效果 16 2.3 常见的图像操作 17 2.3.1 对内置猫图片进行二值化操作 17 2.3.2 对内置猫图片进行裁剪处理 18 2.3.3 将RGB图转换为灰度图 19 2.3.4 使用skimage实现绘制图片功能 20 2.3.5 使用subplot()函数绘制多视图窗口 20 2.3.6 使用subplots()函数绘制多视图窗口 22 2.3.7 改变指定图片的大小 24 2.3.8 使用函数rescale()缩放图片 25 2.3.9 使用函数rotate()旋转图片 25 第3章 OpenCV图像视觉处理 27 3.1 OpenCV基础 28 3.1.1 OpenCV介绍 28 3.1.2 OpenCV-Python介绍 28 3.1.3 安装OpenCV-Python 29 3.2 OpenCV-Python图像操作 29 3.2.1 读取并显示图像 29 3.2.2 保存图像 31 3.2.3 在Matplotlib中显示图像 32 3.2.4 绘图 33 3.2.5 将鼠标作为画笔 37 3.2.6 调色板程序 38 3.2.7 基本的属性操作 40 3.2.8 图像的几何变换 42 3.2.9 图像直方图 45 3.2.10 特征识别:Harris(哈里斯)角检测 49 3.3 OpenCV-Python视频操作 51 3.3.1 读取视频 51 3.3.2 播放视频 53 3.3.3 保存视频 54 3.3.4 改变颜色空间 55 3.3.5 视频的背景分离 56 3.4 简易车牌识别系统 59 3.4.1 系统介绍 59 3.4.2 通用程序 59 3.4.3 主程序 64 第4章 dlib机器学习和图像处理算法 67 4.1 dlib介绍 68 4.2 dlib基本的人脸检测 68 4.2.1 人脸检测 68 4.2.2 使用命令行的人脸识别 70 4.2.3 检测人脸关键点 72 4.2.4 基于CNN的人脸检测器 74 4.2.5 在摄像头中识别人脸 76 4.2.6 人脸识别验证 77 4.2.7 全局优化 79 4.2.8 人脸聚类 81 4.2.9 抖动采样和增强 82 4.2.10 人脸和姿势采集 84 4.2.11 物体追踪 86 4.3 SVM分类算法 87 4.3.1 二进制SVM分类器 87 4.3.2 Ranking SVM算法 89 4.3.3 Struct SVM多分类器 92 4.4 自训练模型 95 4.4.1 训练自己的模型 95 4.4.2 自制对象检测器 98 第5章 face_recognition人脸识别 103 5.1 安装face_recognition 104 5.2 实现基本的人脸检测 104 5.2.1 输出显示指定人像人脸特征 104 5.2.2 在指定照片中识别标记出人脸 107 5.2.3 识别出照片中的所有人脸 108 5.2.4 判断在照片中是否包含某个人脸 111 5.2.5 识别出在照片中的人到底是谁 113 5.2.6 摄像头实时识别 114 5.3 深入face_recognition人脸检测 120 5.3.1 检测人脸眼睛的状态 120 5.3.2 模糊处理人脸 122 5.3.3 检测两个人脸是否匹配 123 5.3.4 识别视频中的人脸 125 5.3.5 网页版人脸识别器 127 第6章 Scikit-Learn机器学习和人脸识别 131 6.1 Scikit-Learn基础 132 6.1.1 Scikit-Learn介绍 132 6.1.2 安装Scikit-Learn 132 6.2 基于Scikit-Learn的常用算法 132 6.2.1 Scikit-Learn机器学习的基本流程 133 6.2.2 分类算法 134 6.2.3 聚类算法 137 6.2.4 分解算法 139 6.3 Scikit-Learn和人脸识别 144 6.3.1 SVM算法人脸识别 144 6.3.2 KNN算法人脸识别 145 6.3.3 KNN算法实时识别 151 第7章 TensorFlow机器学习和图像识别 155 7.1 TensorFlow基础 156 7.1.1 TensorFlow介绍 156 7.1.2 TensorFlow的优势 156 7.1.3 安装TensorFlow 157 7.2 创建个机器学习程序 160 7.2.1 在PyCharm环境实现 160 7.2.2 在Colaboratory环境实现 162 7.3 使用内置方法进行训练和评估 164 7.3.1 个端到端训练和评估示例 164 7.3.2 使用compile()训练模型 167 7.3.3 自定义损失 169 7.3.4 自定义指标 171 7.3.5 处理不适合标准签名的损失和指标 173 7.3.6 自动分离验证预留集 176 7.3.7 通过tf.data数据集进行训练和评估 177 7.3.8 使用样本加权和类加权 181 7.4 TensorFlow图像视觉处理 183 7.4.1 导入需要的库 183 7.4.2 导入 Fashion MNIST 数据集 184 7.4.3 浏览数据 186 7.4.4 预处理数据 186 7.4.5 构建模型 188 7.4.6 编译模型 189 7.4.7 训练模型 189 7.4.8 使用训练好的模型 195 第8章 国内常用的第三方人脸识别平台 197 8.1 百度AI开放平台 198 8.1.1 百度AI开放平台介绍 198 8.1.2 使用百度AI之前的准备工作 198 8.1.3 基于百度AI平台的人脸识别 203 8.2 科大讯飞AI开放平台 207 8.2.1 科大讯飞AI开放平台介绍 207 8.2.2 申请** 208 8.2.3 基于科大讯飞AI的人脸识别 209 第9章 AI人脸识别签到打卡系统(PyQt5 百度AI OpenCV-Python SQLite3实现) 217 9.1 需求分析 218 9.1.1 背景介绍 218 9.1.2 任务目标 218 9.2 模块架构 219 9.3 使用Qt Designer实现主窗口界面 220 9.3.1 设计系统UI主界面 220 9.3.2 将Qt Designer文件转换为Python文件 221 9.4 签到打卡、用户操作和用户组操作 225 9.4.1 设计UI界面 226 9.4.2 创建摄像头类 228 9.4.3 UI界面的操作处理 230 9.4.4 多线程操作和人脸识别 241 9.4.5 导出打卡签到信息 245 9.5 调试运行 247 第10章 基于深度学习的AI人脸识别系统(Flask OpenCV-Python Keras Sklearn实现) 251 10.1 系统需求分析 252 10.1.1 系统功能分析 252 10.1.2 实现流程分析 252 10.1.3 技术分析 253 10.2 照片样本采集 254 10.3 深度学习和训练 256 10.3.1 原始图像预处理 256 10.3.2 构建人脸识别模块 258 10.4 人脸识别 263 10.5 Flask Web人脸识别接口 264 10.5.1 导入库文件 264 10.5.2 识别上传照片 265 10.5.3 在线识别 267 第11章 AI考勤管理系统(face-recognition Matplotlib Django Scikit-Learn dlib实现) 269 11.1 背景介绍 270 11.2 系统需求分析 270 11.2.1 可行性分析 270 11.2.2 系统操作流程分析 270 11.2.3 系统模块设计 271 11.3 系统配置 272 11.3.1 Django配置文件 272 11.3.2 路径导航文件 272 11.4 用户注册和登录验证 273 11.4.1 登录验证 273 11.4.2 添加新用户 275 11.4.3 设计数据模型 276 11.5 采集照片和机器学习 277 11.5.1 设置采集对象 277 11.5.2 采集照片 279 11.5.3 训练照片模型 281 11.6 考勤打卡 283 11.6.1 上班打卡签到 283 11.6.2 下班打卡 285 11.7 可视化考勤数据 287 11.7.1 统计近两周的考勤数据 288 11.7.2 查看本人指定时间范围内的考勤统计图 292 11.7.3 查看某员工在指定时间范围内的考勤统计图 298 第12章 AI小区停车计费管理系统 303 12.1 背景介绍 304 12.2 系统功能分析和模块设计 304 12.2.1 功能分析 304 12.2.2 系统模块设计 305 12.3 系统GUI 305 12.3.1 设置基本信息 305 12.3.2 绘制操作按钮 306 12.3.3 绘制背景和文字 307 12.4 车牌识别和收费 308 12.4.1 登记业主的车辆信息 308 12.4.2 识别车牌 308 12.4.3 计算停车时间 309 12.4.4 识别车牌并计费 310 12.5 主程序 314

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外