精华内容
下载资源
问答
  • 通过Python实现手势识别及目标检测的一些感想
    千次阅读
    2021-11-29 23:28:46

    ※说明:文章中出现的代码均非原创,仅作引用说明使用。

    第一次写粗制滥造的屑博客,后续还会进行修改(如果能改的话)。

     关于手势识别

    概要

            手势识别,即为向程序输入图形(图片、视频、实时录像等),通过程序识别人体皮肤颜色的方式,勾画出轮廓,从而实现手势识别的目的。

            所以手势识别本质上是识别人体皮肤的颜色,将其与图像上其他事物区分开来。

             以上截图是一段手势识别程序运行时的效果。

    运行原理

            这里利用Python、OpenCV进行处理。

            首先是常规的操作,将图像(视频)输入至程序,之后方可进行处理。

    import cv2
    import numpy as np
    cap = cv2.VideoCapture(XXX)#XXX为0时读取摄像头,为"YYY.mp4"等文件名时读取文件

            接着是皮肤检测,借物的代码没有做太多的分析,主要是将图形拆分出Y、Cr、Cb值,在整张图像中进行判断。判断皮肤范围后绘制轮廓。

    def A(img):
    
        YCrCb = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB) #转换至YCrCb空间
        (y,cr,cb) = cv2.split(YCrCb) #拆分出Y,Cr,Cb值
        cr1 = cv2.GaussianBlur(cr, (5,5), 0)
        _, skin = cv2.threshold(cr1, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) #Ostu处理
        res = cv2.bitwise_and(img,img, mask = skin)
        return res
    
    def B(img):
    
        #binaryimg = cv2.Canny(Laplacian, 50, 200) #二值化,canny检测
        h = cv2.findContours(img,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) #寻找轮廓
        contour = h[0]
        contour = sorted(contour, key = cv2.contourArea, reverse=True)#已轮廓区域面积进行排序
        #contourmax = contour[0][:, 0, :]#保留区域面积最大的轮廓点坐标
        bg = np.ones(dst.shape, np.uint8) *255#创建白色幕布
        ret = cv2.drawContours(bg,contour[0],-1,(0,0,0),3) #绘制黑色轮廓
        return ret

            然后需要对输入的图形进行一定的处理,除了确定处理的范围之外,根据具体图像环境不同,需要对肤色进行判断。接着才能进行检测。

            最后分析之后需要输出给人看,白色的底图和绘制的轮廓,可以体现出手势的样式。

     >这么长串别人的代码,就不继续贴出来了吧(悲)

    缺点

            由于这串代码并未对“手的形状”进行识别,而只是单纯的识别肤色进行绘图,因此露脸的人脸等或会被绘入轮廓中。但若要对手本身进行识别,难度较大对新手不友好。通过识别肤色的方式可以较为简单地实现手势的识别,只要人体皮肤其他部位没有出镜即可。

    关于目标检测

    运行的图丢一个出来,坑先挖着(

     

    更多相关内容
  • 主要介绍了python实现手势识别的示例(入门),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • python实现手势识别

    2020-12-21 11:53:33
    python实现手势识别(入门) 使用open-cv实现简单的手势识别。刚刚接触python不久,看到了很多有意思的项目,尤其时关于计算机视觉的。网上搜到了一些关于手势处理的实验,我在这儿简单的实现一下(PS:和那些大佬比...
  • Python实现手势识别

    2020-12-16 18:02:42
     自己在这个基础上做了一点修改补充后,可以实现手指指尖的检测,并且可以在windows系统下通过判断手指数目,来模拟键盘操作。下面直接上源程序,并做了详细注释,方便理解。  环境:python3.6+opencv3.4.0 代码...
  • python实现手势识别环境准备①百度获取SDK②所需的库流程步骤①开启摄像头功能②手势识别③语音播报成果展示源码效果视频![在这里插入图片描述](https://img-blog.csdnimg.cn/20200417160508650.gif) 环境准备 ①...
  • python实现现手手势势识识别别的的示示例例 入入门门 这篇文章主要介绍了python实现手势识别的示例 入门文中通过示例代码介绍的非常详细对大家的学习或 者工作具有一定的 考学习价值需要的朋友们下面随着小编来...
  • 主要使用了OpenCV的视频采集, 图像色域转换, 颜色通道分割, 高斯滤波, OSTU自动阈值, 凸点检测, 边缘检测, 余弦定理计算手势等功能,实现手势识别与控制
  • Python之调用百度API实现手势识别

    千次阅读 热门讨论 2021-05-27 19:36:19
    目录作者介绍一、注册登录百度智能云二、创建应用获取SDK2.1 进入百度智能云---人体分析2.2 创建手势识别应用2.3 获取SDK三、手势识别附源码 作者介绍 周新龙,男,西安工程大学电子信息学院,2019级研究生,张宏伟...

    1.作者介绍

    周新龙,男,西安工程大学电子信息学院,2019级研究生,张宏伟人工智能课题组
    研究方向:机器视觉与人工智能
    电子邮件:402850713@qq.com

    2.实现过程

    2.1注册登录百度智能云

    在这里插入图片描述
    百度智能云与百度旗下各款APP账号通用,大家无需另行注册!

    2.2进入百度智能云—人体分析

    点击左侧产品服务→人工智能→人体分析。
    在这里插入图片描述

    2.3创建手势识别应用

    进入人体分析概览后,点击创建应用。
    在这里插入图片描述
    应用名称进行填写,例如:手势识别
    接口选择:人体分析
    应用归属:个人
    应用描述:例如个人学习使用
    在这里插入图片描述
    填写完毕后,点击立即创建。
    就会跳转至创建完毕。
    在这里插入图片描述
    点击查看应用详情。

    2.4 获取SDK

    在这里插入图片描述
    查看应用详情就可以获取AppID、API Key、Secret Key等信息。

    3.结果及代码

    3.1手势识别结果

    支持的24类手势列表:拳头、OK、祈祷、作揖、作别、单手比心、点赞、Diss、我爱你、掌心向上、双手比心(3种)、数字(9种)、Rock、竖中指。

    主要适用于3米以内的自拍、他人拍摄,1米内识别效果最佳,拍摄距离太远时,手部目标太小,无法准确定位和识别。

    图片中有多个手势时,也能识别,但该情况下,单个手势的目标可能较小,且角度可能不好(例如存在倾斜、遮挡等),识别效果可能受影响。建议针对单个手势进行识别,效果最佳。

    注:

    1)上述24类以外的其他手势会划分到other类。

    2)除识别手势外,若图像中检测到人脸,会同时返回人脸框位置。
    在这里插入图片描述
    在这里插入图片描述

    3.2代码

    pip install baidu-aip
    
    
    pip install opencv-python
    
    import cv2
    from aip import AipBodyAnalysis
    from aip import AipSpeech
    from threading import Thread
    
    
    """ 你的 APPID AK SK """
    APP_ID = 'xxxxx'
    API_KEY = 'xxxx'
    SECRET_KEY = 'xxxx'
    ''' 调用'''
    
    hand = {'One': '数字1', 'Five': '数字5', 'Fist': '拳头', 'Ok': 'OK',
            'Prayer': '祈祷', 'Congratulation': '作揖', 'Honour': '作别',
            'Heart_single': '比心心', 'Thumb_up': '点赞', 'Thumb_down': 'Diss',
            'ILY': '我爱你', 'Palm_up': '掌心向上', 'Heart_1': '双手比心1',
            'Heart_2': '双手比心2', 'Heart_3': '双手比心3', 'Two': '数字2',
            'Three': '数字3', 'Four': '数字4', 'Six': '数字6', 'Seven': '数字7',
            'Eight': '数字8', 'Nine': '数字9', 'Rock': 'Rock', 'Insult': '竖中指', 'Face': '脸'}
    
    
    # 手势识别
    gesture_client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)
    
    capture = cv2.VideoCapture(0)  # 0为默认摄像头
    
    def camera():
        while True:
            # 获得图片
            ret, frame = capture.read()
            # cv2.imshow(窗口名称, 窗口显示的图像)
            # 显示图片
            cv2.imshow('frame', frame)
            if cv2.waitKey(1) == ord('q'):
                break
    
    
    Thread(target=camera).start()  # 引入线程防止在识别的时候卡死
    
    
    def gesture_recognition():
        # 第一个参数ret 为True 或者False,代表有没有读取到图片
    
        # 第二个参数frame表示截取到一帧的图片
    
        while True:
            try:
                ret, frame = capture.read()
    
                # 图片格式转换
                image = cv2.imencode('.jpg', frame)[1]
    
                gesture = gesture_client.gesture(image)  # AipBodyAnalysis内部函数
                words = gesture['result'][0]['classname']
    
                print(hand[words])
    
            except:
                print('识别失败')
            if cv2.waitKey(1) == ord('q'):
                break
    
    gesture_recognition()
    
    
    
    展开全文
  • 项目环境:opencv==...2、获取上、下、左、右的手势,进行皮肤检测,将背景二值化 3、皮肤检测参考文章(https://blog.csdn.net/weixin_40893939/article/details/84527037) dataset.py # -*- coding: utf8 -*- #
  • OpenCV+python手势识别框架和简单例子 基于 静默虚空 大神文章的原码修改调通的。https://blog.csdn.net/linsk/article/details/76457955 
  • 手势识别使用在TensorFlow中卷积神经网络实现
  • 今天小编就为大家分享一篇OpenCV+python手势识别框架和实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 其中,手势识别是人机交互领域的一项关键技术,自此手势识别也迎来了一波高潮,近几年无论是在消费领域、电子领域、数码领域、家电领域甚至汽车领域上,都能或多或少的见到手势识别的身影。 手势识别在设计智能高效...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,724
精华内容 2,289
关键字:

python实现手势识别