摘要:在人机交互领域,手势识别具有自然、简单、任意、易表达等特性,能使人机交互更加方便、简易。智能手机的不断升级使得人机交互技术可以在移动端实现。本系统基于手机摄像头对手势指令进行识别,实现了Android手机无线控制智能小车的功能。
本系统手势识别主要在手指识别,利用开源计算机视觉库(Open Source Computer Vision Library,OpenCV)中的HSV(Hue,Saturation,Value)颜色空间凸包算法来检测手指的信息和统计手指个数。为了减少近似肤色背景的影响,在提取手部区域时,使用HSV皮肤模型结合背景差分法提取手部区域,在获取手部轮廓和凸包模型之后,计算凸包缺陷深度和根据手指几何特征及曲率特性实现对手指的检测。
智能小车部分以Arduino开发板为控制模块,以ESP8266为核心通信模块,以L298n为电机驱动模块,满足了小车逻辑处理、WiFi服务、电源供给的需求整个系统的上位机部分是使用Android Studio开发的手机APP,能够实现WiFi连接、手势识别、手势指令传送的功能。
本系统拓宽了人类实践范围,并可以应用在AR游戏、远程控制、深海勘探等方面。
关键词:手势识别;Android;远程控制;OpenCV
目录
摘要
Abstract
1 绪论-1
1.1 课题背景和意义-1
1.2 国内的研究现状-1
1.3 研究内容-2
2 系统方案设计-3
2.1 主控开发板的选择-3
2.2 电源的选择-3
2.3驱动模块的选择-3
2.4 WiFi模块的选择-4
3 系统硬件电路说明-5
3.1 Arduino Uno R3-6
3.1.1 ATmega328简介-7
3.2 电机驱动电路-7
3.2.1 驱动原理及电路图-7
3.2.2 电机驱动的使用-8
3.4 WiFi模块-9
3.4.1 ESP8266说明及原理-9
3.4.2 ESP8266调试使用-10
4 软件设计-14
4.1 手势识别-14
4.1.1 颜色空间-14
4.1.2 手部轮廓识别-16
4.1.3 凸包算法-17
4.2 Android APP设计-18
4.2.1 Android系统介绍-18
4.2.2 Android客户端-20
4.3 小车端软件设计-22
4.3.1 开发平台简介-22
4.3.2 主程序流程-22
5 系统调试与分析-25
5.1 硬件设备调试及问题解决-25
5.2 软件调试-26
6 结论-30
参考文献-31
致谢-32