请选择 进入手机版 | 继续访问电脑版
快捷导航
70 345

基于语音合成与机器视觉的手语翻译

HelloKitty 于 2017-12-23 15:55 发表在 [开源项目] [复制链接]
本帖最后由 HelloKitty 于 2018-1-16 17:35 编辑

基于语音合成与机器视觉的手语翻译

1、基本功能说明:基于单目摄像头,在光照、背景较为简单的环境条件下,能对距摄像头识别有效范围内的单人静态手势进行——整体图像采集、手部图像分割、手势特征提取建模;在基本的9种数字手势(0、1、2、3、4、5、6、8、9)识别成功的基础之上,再通过语音合成模块,将手势对应的意义播放出来,以此达到初步的手势翻译的效果;

2、项目成员:anymsg_renzong、汪鑫鑫 、watchdog、HelloKitty、罗杨杨

3、项目计划工期:2017.12.25-2018.1.15

4、项目基础预算:PC一台、cortex-M8一块、200W USB摄像头一个

5、项目资金来源:项目组成员自掏腰包及chinmel投资_________________________________________________________________________________________________________________________________________________________________________________________________技术框图


[size=14.0000pt]一、整体流程框架
先将PC端服务器打开,当客户端连接服务端成功后,表示手势识别开始,。启动手势识别,单人手势放在摄像头20-40cm有效范围内静止1s,PC端成功识别手势之后,根据手势特征码从语音文本中提取特定文本信息,即手势含义,将其通过WIFI发送给客户端A8。A8接收到消息并解析后,通过语音合成模块,将文本信息转化为语音,在通过外放模块播放出来。播放结束,通过WIFI发送信息给服务端,表示开始下个手势识别。

[size=14.0000pt]二、手势识别模块
1、USB摄像头采集图像
(1)通过200W摄像头每隔五秒采集一次图像
(2)将图像保存在Mat中以待处理
         
2、手部图像分割处理
(1)将图像1转化为灰度图像2
(2)对图像2进行直方化、归一化处理得到图像3
(3)对图像3进行颜色通道分割处理,实现肤色检测,输出肤色区域二值化图像4
(4)对图像4进行膨胀腐蚀等形态学处理,以扩大缩小图像像素,得到前景、背景表及图像5
(5)对图像5进行八近邻种子填充算法和分水岭算法处理,得到肤色区域标记,以此作为人手区域候选区域图像6
(6)将人手候选区域图像6与准备好的人手Cr通道图像进行模块比较(人手候选区域图像要缩放到和人手Cr通道图像大小相同时才能进行比较),比较采用平方差匹配法,得到通道匹配值;
(7)在模块比较进行的同时,统计人手候选区域肤色像素比例
(8)根据人手肤色像素比例小于0.65、通道匹配值小于0.02这个条件,排除人脸影响,输出图像中确定的人手区域的矩形标记图像8
(9)完成手势分割
   
3、手势特征提取
(1)确定手掌中心位置。通过ROI裁剪出手势区域,对此区域进行距离变换,完成去除手指的影响只留掌心。求重心,得掌心位置。
(2)通过找寻到的轮廓,得边界。边界与掌心位置,得距离的峰值,注意延续性,得模糊指尖,对模糊指尖进行位置检测,排除凸起影响。
  (3)反余弦公式,得指尖之间与掌心的夹角,比对模板与采集帧的弧度值。确定手势数据。
            

[size=14.0000pt]三、WIFI传输模块
1、服务端在windows下运行
2、客户端在linux下运行
3、客户端通过WIFI连接到服务端后,服务端、客户端就一直接收消息,服务端向客户端发送一条文本消息(真实数据信息为0-9的任意数字,消息协议自行设计)
4、客户端接收到消息后,对消息进行解析,根据真实消息内容播放出声音,播放完成后,再回发一条消息(此消息协议同上,真实数据可为一特殊字符,消息协议自行设计)给服务端
5、服务端接收消息并解析,确定符合规定消息,服务端再向客户端发送一条消息,以此循环。
        

[size=14.0000pt]四、语音合成模块
      [size=14.0000pt]1、eSpeak语音合成库成功移植到cortex-A8中
      [size=14.0000pt]2、espeak_Initialize(); //初始化eSpeak
      [size=14.0000pt]3、espeak_SetSynthCallback(synthCallback);//设置回调函数
      [size=14.0000pt]4、espeak_SetVoiceByName();//设置发音语音中文及发音人
      [size=14.0000pt]5、espeak_Synth();//发音
      [size=14.0000pt]6、espeak_Synchronize();//当所有数据被读出后函数返回
      7、espeak_Terminate();//所有操作结束返回          
     


项目成果图

[img]file:///E:/qq%E6%B6%88%E6%81%AF/1935579732/Image/Group/U%60T%7B]MJL9$T6KTVF@[0%60AK2.jpg[/img]
项目已结项 现已开源挂靠许可证:Apache许可证
许可证说明:http://www.apache.org/licenses/
联系方式:
邮箱:sxl1935579732@outlook.com
          zrwang5210@163.com





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

赞同: 5.0
anymsg 赞同: 5
  发表于 2018-1-11 09:13
Connecting & Messaging from Any.

共 70 个关于本帖的回复 最后回复于 2018-1-16 17:30

HelloKitty 中级会员 发表于 2018-1-16 17:30:36 | 显示全部楼层
项目已完结
Connecting & Messaging from Any.
举报 使用道具
HelloKitty 中级会员 发表于 2018-1-11 20:05:07 | 显示全部楼层
经验证 ‘f’音的不准确是由于我将音量调节到10以内的缘故 之前为解决音量大出现杂音的问题 决定将音量调低 但是在音量较大的情况下,‘f’音其实也是不太准的 另外 关于不停播报的问题 在和组员讨论后决定 保留不停播报(在没有采集到手部时是不播报的) 经测试 播报间隔不至于因为太短而影响到语音播放 考虑到实时性 不对其过程进行延迟  
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-11 20:04:57 | 显示全部楼层
测试效果,更改延迟。
准确性提高、误差减少后导致实时性有所降低。
更改裁剪后的手势特征提取方法的特征值,因两张图片大小不同。
Connecting & Messaging from Any.
举报 使用道具
HelloKitty 中级会员 发表于 2018-1-9 21:47:37 | 显示全部楼层
语音播报通过小音箱外放 效果良好 无杂音 但个别发音 比如‘f’音不太准  有待改进 发音延迟 避免不停播报

点评

赞同: 5.0
chinmel 赞同: 5
  发表于 2018-1-11 09:24
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-9 21:41:48 | 显示全部楼层
整合完成。
调节一些细节。
修改模板与采集的图象帧。
Connecting & Messaging from Any.
举报 使用道具
HelloKitty 中级会员 发表于 2018-1-8 21:37:44 | 显示全部楼层
图片去色块 计算轮廓面积 对小于阈值的轮廓区域进行以下操作
1、 找轮廓内一点
2、通过漫水算法填充与该点连同区域
结果 效果微弱 当遇到大的与手重合的背景色块,会填充手势,影响后续对手势的处理
Connecting & Messaging from Any.
举报 使用道具
汪鑫鑫 注册会员 发表于 2018-1-8 21:21:34 | 显示全部楼层
查找图像中怎么去除高光与平面反射,找到了几个描述此类问题的帖子。
出现最多的方法就是使用illuminationChange,将图像的高光部分选出来然后模糊那部分,处理后的效果是图片的高光部分类似被一块膜挡住了;看到的另一种方法是,统计图像被处理后生成的灰度图像的直方图,以此来检测高光区域,找到后就用周边的像素值替换。
链接:
http://bbs.csdn.net/topics/392183145?page=1
Connecting & Messaging from Any.
举报 使用道具
watchdog 注册会员 发表于 2018-1-8 20:34:18 | 显示全部楼层
图片去噪,轮廓树中删除面积小于某个阈值的轮廓,opencv 删除二值化图像中面积较小的连通域,但是,这有个问题,去噪会把所有的白色区域都消去,运行结果像雪花一样

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Connecting & Messaging from Any.
举报 使用道具
罗杨杨 注册会员 发表于 2018-1-8 20:32:51 | 显示全部楼层
通过连通域进行去燥点,遍历轮廓树,并从轮廓树中删除面积小于某个阈值的轮廓。
链接:http://www.cnblogs.com/mypsq/p/5337632.html
设置好阈值,但是运行结果像雪花一样,不知道什么原因。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-8 18:30:36 | 显示全部楼层
anymsg_renzong 发表于 2018-1-8 18:06
阈值 修改。
方式修改,剪切后不再存储。
高光影响,膨胀、腐蚀多次,可连续、可交叉。

修改 峰值检测
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-8 18:06:49 | 显示全部楼层
阈值 修改。
方式修改,剪切后不再存储。
高光影响,膨胀、腐蚀多次,可连续、可交叉。
想办法 消除关照的影响,补光与去光。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-7 23:06:13 | 显示全部楼层
anymsg_renzong 发表于 2018-1-7 22:57
图像高光影响。。。Mask 方式。illuminationChange。
有bug,链接中有修改方法。
http://answers.opencv.or ...

http://blog.csdn.net/hello_yxc/article/details/60776315
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-7 23:05:05 | 显示全部楼层
HelloKitty 发表于 2018-1-7 21:22
检测两区域重合 提取边缘横纵坐标 一区域x坐标最小值大于另一区域x坐标最大值 一区域x坐标最大值小于另一区 ...

边角检测,同样可以。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-7 22:57:26 | 显示全部楼层
Connecting & Messaging from Any.
举报 使用道具
HelloKitty 中级会员 发表于 2018-1-7 21:22:32 | 显示全部楼层
检测两区域重合 提取边缘横纵坐标 一区域x坐标最小值大于另一区域x坐标最大值 一区域x坐标最大值小于另一区域x坐标最小值 一区域y坐标最小值大于另一区域y坐标最大值 一区域y坐标最大值大于另一区域y坐标最小值 这四种情况即包括所有不重合情况 排除可得重合情况
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-7 19:08:13 | 显示全部楼层
修改 。。。人脸删除 条件。转为相反条件。由原先边角重合修改为不重合。完成。
阈值 修改。不可同用于模板与帧检测。完成。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-6 18:16:03 | 显示全部楼层
找到 惊天大BUG 。。。

指尖同步掌心,,,,剪切。。。操作。
Connecting & Messaging from Any.
举报 使用道具
watchdog 注册会员 发表于 2018-1-6 16:03:59 | 显示全部楼层
9这个手势如何被识别的,应为指尖被模糊识别出来,但9手势是弯的,不容易,图形手势识别

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-6 15:58:58 | 显示全部楼层
数字九 完成。因数字九的特殊性,采用单独检测、在采集到指尖数据后、直接判别连续性,减少算法繁琐。数字九  采用连续性识别 完成。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-6 15:52:08 | 显示全部楼层
汪鑫鑫 发表于 2018-1-5 21:20
改变手势识别的算法,识别一个手势需要连续的三个帧,三个帧识别出来的意义是一样才会输出。原先手势识别的 ...

有点问题,是 在不完全不匹配的情况下,进行反方向的扫描、比较。现在改为 通过第一的匹配情况确定扫描方向、比较。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-6 15:49:31 | 显示全部楼层
罗杨杨 发表于 2018-1-5 22:16
因为人脸和手肤色基本相同,所以想把脸和手区分开来可以通过    1:把脸部检测出来,予以剔除,方法2:检测 ...

错了 我给你的意思是  人脸已经检测出来了 但是  在同时出现人脸与手势时,标记了手势,却没有特征提取指尖。找一下这个问题,而不是区分,区分,已完成。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-6 15:47:02 | 显示全部楼层
本帖最后由 anymsg_renzong 于 2018-1-6 17:36 编辑

白平衡算法 减弱RGB受光影响,有点问题。
Connecting & Messaging from Any.
举报 使用道具
罗杨杨 注册会员 发表于 2018-1-5 22:16:19 | 显示全部楼层
因为人脸和手肤色基本相同,所以想把脸和手区分开来可以通过    1:把脸部检测出来,予以剔除,方法2:检测色块,设定阈值,予以剔除
今天试着通过灰度图像占整个边框的比例来区分,还在解决。。。
Connecting & Messaging from Any.
举报 使用道具
HelloKitty 中级会员 发表于 2018-1-5 21:30:49 | 显示全部楼层
服务端语音文本建立 espeak语音外放暂时无法解决 其音量与其他声音参数比例关系确定不了 未找到参考资料 找到以这种方法 在音量值较低时语音未失真
且无噪音 考虑添加一个小音箱扩大音量 不使用A8本身麦克风
Connecting & Messaging from Any.
举报 使用道具
汪鑫鑫 注册会员 发表于 2018-1-5 21:20:14 | 显示全部楼层
改变手势识别的算法,识别一个手势需要连续的三个帧,三个帧识别出来的意义是一样才会输出。原先手势识别的时候是先从左扫一遍,再从右扫一遍,现在改成先判断是左手还是右手,然后选择扫描的方向。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-5 16:20:54 | 显示全部楼层
图像优化,优化效果甚微,肤色二值化。
线程加入。
数字九开始,连续性。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-4 22:17:55 | 显示全部楼层
anymsg_renzong 发表于 2018-1-4 19:26
虹软库 人脸 检测 跟踪。
嵌入  逻辑修改 修改原模板比较。  
直接检测到人脸 去除候选区。 ...

出现问题  ,,,,,只候选,,,不在解析、提取特征。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-4 22:17:12 | 显示全部楼层
修改 二值化图像  增强对图像的处理。
Connecting & Messaging from Any.
举报 使用道具
HelloKitty 中级会员 发表于 2018-1-4 19:52:15 | 显示全部楼层
之前C++服务端加入线程后,总是报错,一开始以为是线程内的代码引起的错误,将线程内代码注释掉之后,添加了一句简单的打印代码,仍然报错,我意识到可能是线程出现了问题。只是不知道问题在哪,单步调试之后,定位到了下面这个位置
  1. ~thread() _NOEXCEPT
  2. {        // clean up
  3. if (joinable())
  4. _XSTD terminate();
  5. }
复制代码
看到joinable 突然想到linux多线程编程线程销毁的问题,涉及到了join和detach,当网上查了一下,一位网友的回答解决了问题,下面引用他的博客中的翻译文:

(来源:http://blog.csdn.net/xibeichengf/article/details/71173543
C++中的thread对象通常来说表达了执行的线程(thread of execution),这是一个OS或者平台的概念。
当thread::join()函数被调用后,调用它的线程会被block,直到线程的执行被完成。基本上,这是一种可以用来知道一个线程已结束的机制。当thread::join()返回时,OS的执行的线程已经完成,C++线程对象可以被销毁。
当thread::detach()函数被调用后,执行的线程从线程对象中被分离,已不再被一个线程对象所表达--这是两个独立的事情。C++线程对象可以被销毁,同时OS执行的线程可以继续。如果程序想要知道执行的线程何时结束,就需要一些其它的机制。join()函数在那个thread对象上不能再被调用,因为它已经不再和一个执行的线程相关联。
去销毁一个仍然可以“joinable”的C++线程对象会被认为是一种错误。为了销毁一个C++线程对象,约么join()函数需要被调用(并结束),要么detach()函数被调用。如果一个C++线程对象当销毁时仍然可以被join,异常会被抛出。
C++线程对象不被表达为执行的线程的其它的情况(也就是unjoinable):

  • 默认构造的线程对象不表达为执行的线程,所以是unjoinable。
  • 被移开的线程将不表达为执行的线程,所以是unjoinable。


在std::thread的析构函数中,std::terminate会被调用如果:
  • 线程没有被Joined(用t.join())
  • 线程也没有被detached(用t.detach())
因此,你应该在执行流程到析构函数前总是要么join,要么detach一个线程。

当一个程序终止时(比如main返回),剩下的在后台的detached线程执行不会再等待;相反它们的执行会被挂起并且它们的本地线程对象会被销毁。
关键地,这意味着这些线程的栈不是完好无损的,因此一些析构函数不会被执行。依赖于这些行为,一些析构函数假象会被承担,这可能是一种坏情形,好像程序已经Crash或者已经被kill。希望OS会释放加在这些文件上的锁。Depending on the actions those destructors were supposed to undertake, this might be as bad a situation as if the program had crashed or had been killed. Hopefully the OS will release the locks on files, etc... but you could have corrupted shared memory, half-written files, and the like.
所以,你应该使用join还是detached?
  • 使用join
  • 除非你需要更灵活并且想要独立地提供一种同步机制来等待线程完成,在这种情况下你应该使用detach


因为线程中有while(1)循环 故使用线程分离detach 解决


Connecting & Messaging from Any.
举报 使用道具
罗杨杨 注册会员 发表于 2018-1-4 19:31:17 | 显示全部楼层
项目逻辑流程:服务端通过摄像头获取到图像,将图像转化为灰度图像,然后进行一些算法处理(直方化、归一化、颜色通道分割处理、膨胀腐蚀等形态学处理
、八近邻种子填充算法和分水岭算法处理、模块比较)像素比例小于0.65、通道匹配值小于0.02这个条件,排除人脸影响把手势分割出来。通过ROI裁剪、距离
变换、求重心,利用延续性峰值得模糊指尖。最后,通过反余弦公式,得指尖之间与掌心的夹角,比对模板与采集帧的弧度值。确定手势数据。数据按照制定的
协议(消息协议自行设计)通过wifi模块构成客户端服务端的循环收发。客户端解析出数据,通过语音合成模块(espeak_Initialize();初始化eSpeak、espeak_SetSynthCallback(synthCallback);设置回调函数、
espeak_SetVoiceByName();设置发音语音中文及发音人、espeak_Synth();发音 、espeak_Synchronize();当所有数据被读出后函数返回、espeak_Terminate();所有操作结束返回 )读出来(如接收到1,读出“1”)。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-4 19:26:36 | 显示全部楼层
虹软库 人脸 检测 跟踪。
嵌入  逻辑修改 修改原模板比较。  
直接检测到人脸 去除候选区。
Connecting & Messaging from Any.
举报 使用道具
watchdog 注册会员 发表于 2018-1-4 16:23:32 | 显示全部楼层
本帖最后由 watchdog 于 2018-1-4 16:27 编辑

手势的检测分割:一是检测定位,指从图像中确定有没有手势出现,找到手势所在区域;二是手势分割,将手势区域从画面中提取出来,去除背景的干扰。作用:确定了手势所在区域
肤色区域标记:
八近邻种子填充算法:从多边形区域内部的某一像素点(称为种子)开始,由此出发找到区域内的其它所有像素。从(x,y)开始,先检测该点的颜色,若它与边界色和填充色均不相同,则用填充色填充该点。然后检测相邻位置,以确定它们是否是边界色和填充色,若不是,则填充该相邻点。直到检测完区域边界范围内的所有像素为止。
封装分水岭算法:是对图像中部分像素做标记,表明它的所属区域是已知的。分水岭算法主要的分割目的在于找到图像的连通区域。
手势特征提取:
掌心算法:掌心特征值提取,通过ROI裁剪出手势区域,对此区域进行通过表识空间点(目标点与背景点)距离的过程,最终将二值图像转换为灰度图像。完成去除手指的影响只留掌心。确定手掌中心位置
指尖算法:通过找寻到的轮廓,得边界。边界与掌心的位置,得距离的峰值,注意延续性,得模糊指尖。通过凸包检测,排除凸起影响。

Connecting & Messaging from Any.
举报 使用道具
汪鑫鑫 注册会员 发表于 2018-1-4 10:17:08 | 显示全部楼层
本帖最后由 汪鑫鑫 于 2018-1-4 16:51 编辑

项目框架:服务端在Windows下运行,包括手势识别模块和WIFI通信模块;客户端在Linux下运行,包括WiFi通信模块和语音合成模块。打开设备后,服务端将摄像头采集到的整体图像保存于MAT,然后手势识别模块对整体图像进行手势分割,得到手部图像。再经手势特征提取与模板比较后得到手势特征码(即手势意义 1、2等),根据特征码从语音文本中提取合适的文本信息,将获取的文本信息通过WiFi传输到客户端(服务端和客户端之间通信不间断,便于信息交流)。客户端通过espeak语音合成库将文本转化为语音并外放。播放结束后,返回信息给服务端,开始下一个手势的识别。



Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-4 09:01:19 | 显示全部楼层
HelloKitty 发表于 2018-1-3 22:37
服务端加入线程报错 停在accept 原因未知

应该是线程的问题,
Connecting & Messaging from Any.
举报 使用道具
HelloKitty 中级会员 发表于 2018-1-3 22:37:12 | 显示全部楼层
服务端加入线程报错 停在accept 原因未知
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-3 21:15:08 | 显示全部楼层
修改 wifi模块嵌入方式  。
整合框架 。
Connecting & Messaging from Any.
举报 使用道具
汪鑫鑫 注册会员 发表于 2018-1-2 22:09:06 | 显示全部楼层
在ubuntu测试开发板的WiFi模块的时候出现了错误,上网查询也没能解决问题,猜测可能是开发板的WiFi模块坏掉了
了解了“用C++实现多线程读写锁”:读写锁在多处理器系统中,它允许多个读者访问共享资源,但对写者具有排他性,一个读写锁只能有一个写者或者多个读者,写者和读者不能同时出现
参考链接:http://blog.csdn.net/chenzhjlf/article/details/78875846

C:\Users\wxx\Pictures\20180102213343.png

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2018-1-2 22:09:00 | 显示全部楼层
模糊比对 完成 。测试 完成。尝试 手势 9。修改wifi嵌入模块。丢弃多线程。
Connecting & Messaging from Any.
举报 使用道具
HelloKitty 中级会员 发表于 2018-1-2 21:27:24 | 显示全部楼层
提取eSpeak库中将字符串转换为语音合成的所需基本函数,并将其嵌入到客户端中.语音合成音量可调节,但范围过小。耳机听之尚可,然外放声音极低。调节音量值以使其可闻,却造成巨大噪音。初步估计,音量值调节过大,使其与其他参数比例失衡,超过语音合成严重失真。
Connecting & Messaging from Any.
举报 使用道具
watchdog 注册会员 发表于 2018-1-2 21:26:52 | 显示全部楼层
Connecting & Messaging from Any.
举报 使用道具
罗杨杨 注册会员 发表于 2018-1-2 21:04:52 | 显示全部楼层

了解C++下创建多线程
通过(HANDLE)_beginthreadex(NULL, 0, &StartThread, (void *)NULL, 0, &uiThreadId1); 函数创建。
在vs写服务端,实现基本的通信。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2017-12-31 13:36:11 | 显示全部楼层
本帖最后由 anymsg_renzong 于 2017-12-31 13:38 编辑
anymsg_renzong 发表于 2017-12-31 13:35
数据比对出问题 算法修改。修改连续比对为单个比对。

比对条件相应修改,且操作帧与查看帧分离。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2017-12-31 13:35:53 | 显示全部楼层
数据比对出问题 算法修改。修改连续比对为单个比对。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2017-12-31 12:46:14 | 显示全部楼层
HelloKitty 发表于 2017-12-29 20:54
已解决声卡滴滴声 通过cat 音频设备即可 不过不知缘由 语音合成库融入尝试进行中 还有个问题 语音合成外放 ...

祥龙暂时先完成整个框架,一些优化问题之后再说。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2017-12-31 12:44:58 | 显示全部楼层
模板的阈值与采集的帧不同  所 有所修改。尝试合并在一起。
尝试在摄像头程序中嵌入 wifi 服务器模块。启用 thread 多线程。
优化 手势识别数据比对准确性 ,消除误差,可能会采取限制采样距离。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2017-12-31 12:39:16 | 显示全部楼层
完成 比较数据特征提取 存储 。手动优化图片的不和谐部分。
对 0 进行特殊处理 。多重判断 与 特殊赋值 0
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2017-12-30 17:19:08 | 显示全部楼层
指尖模糊数据采集修改优化:延续性峰值修改  增 上坡检测。
Connecting & Messaging from Any.
举报 使用道具
anymsg_renzong 版主 发表于 2017-12-30 15:56:39 | 显示全部楼层
指尖模糊数据采集修改 : 以此模糊点的距离 替代之前的y边  去除具体掌心太近的点
Connecting & Messaging from Any.
举报 使用道具
罗杨杨 注册会员 发表于 2017-12-29 22:19:29 from Mobile | 显示全部楼层
今天:
    看了opencv的pdf资料,了解mat矩阵用法,还有看了通道的原理,种子算法的流程,分水岭算法画出手的边线。
   明天待定。。。
Connecting & Messaging from Any.
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

推荐板块

精彩推荐

热门排行

明星用户

手机版|小黑屋|AnyMSG ( ©AnyMSG 2009 - 2017 · ICP备16009991号 )

GMT+8, 2018-5-26 04:40