• 计算机视觉40例之案例08石头剪刀布手势识别


    导读】本文是专栏《计算机视觉40例简介》的第8个案例《石头剪刀布手势识别》。该专栏简要介绍李立宗主编《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书的40个案例。

    目前,该书已经在电子工业出版社出版,大家可以在京东、淘宝、当当等平台购买。

    大家可以在公众号“计算机视觉之光”回复关键字【案例08】获取本文案例的源代码及使用的测试图片等资料。

    针对本书40个案例的每一个案例,分别录制了介绍视频。如果嫌看文字版麻烦,可以关注公众号“计算机视觉之光”直接观看视频介绍版。

    手势识别演示如图1所示,针对图像内的手势给出对应的提示文字。

    图1 石头剪刀布识别

    本案例中,根据形状匹配完成“石头剪刀布”的识别。如图2所示,识别手势时,将与已知形状的相似度匹配值作为判断依据,与哪个已知模型最相似,就将结果识别为哪个模型所对应的手势。

    图2 形状匹配

    具体实现时,引入了形状匹配的概念。形状匹配用来计算两个形状之间的匹配值,通常情况下,两个对象越相似,其匹配值越小。OpenCV提供了函数cv2.matchShapes(),对两个对象的Hu矩进行比较。

    针对图3,具有如下的匹配值:

    1. 相同图像(A,A)的matchShape= 0.0
    2. 相似图像(A,B)的matchShape= 0.0029017627247301114
    3. 不相似图像(A,C)的matchShape= 0.8283119580686752

    图3 不同形状

    从以上结果可以看出:

    1. 同一幅图像的Hu矩是不变的,二者差值为0。因此,图像A中的对象(手)和自身距离计算的结果为0;
    2. 图像在发生了平移、旋转和缩放前后,二者的距离较近。例如,图像A和图像B中的对象,B中的对象是对A中的对象进行缩放、旋转和平移后得到的,因此二者的差值较小,约为0.003。
    3. 不相似图像的差值较大。例如,图像A中的对象和图像C中的对象的差别较大,约为0.83。

    根据上述距离来判定手势到底是属于石头剪刀布的哪一种。

    在《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书中,从算法原理、实现流程等角度系统深入地介绍了该案例的理论基础和实现过程,并对具体的代码实现进行了细致的介绍与解释。欢迎大家阅读第8章《手势识别》获取详细内容。

    《计算机视觉40例——从入门到深度学习(OpenCV-Python)》在介绍Python基础、OpenCV基础、计算机视觉理论基础、深度学习理论的基础上,介绍了计算机视觉领域内具有代表性的40个典型案例。这些案例中,既有传统的案例(数字识别、答题卡识别、物体计数、缺陷检测、手势识别、隐身术、以图搜图、车牌识别、图像加密、指纹识别等),也有深度学习案例(图像分类、风格迁移、姿势识别、实例分割等),还有人脸识别方面的案例(表情识别、驾驶员疲劳监测、识别性别与年龄等)。

  • 相关阅读:
    第26章_瑞萨MCU零基础入门系列教程之独立看门狗定时器-IWDT
    MySQL中的COMPACT行格式
    领域驱动模型DDD(二)——领域事件的订阅/发布实践
    数组专题总结
    经典模型——NiN&GoogLeNet
    流辰信息助力企业数字化转型
    照明灯具哪个品牌好?照明灯具十大排行榜
    MySQL概念
    ​「Python大数据」词频数据渲染词云图导出HTML
    【附源码】Python计算机毕业设计天气预报APP
  • 原文地址:https://blog.csdn.net/superdont/article/details/126216813