发明内容
本发明为了解决现有技术中缺乏一种使用简单、灵活、方便,并且不受资源限制、不受硬件寿命影响的根据用户指示读书的方法问题,提供一种根据用户指示读书的方法及装置。
为了解决上述问题,本发明采用的技术方案如下所述:
一种根据用户指示读书的方法,包括如下步骤:S1:获取用户的语音指令,采集图像信息;S2:在所述采集的图像信息中识别出用户用手指或笔作出指示的中心点;S3:根据所述中心点获取用户指示的待阅读的纸质书的指示区域;获取指示区域的待识别的图像信息;S4:获取所述待识别的图像信息的内容;S5:根据所述内容判断所述待识别的图像信息的完整性,若不完整,则调整所述待识别的图像信息的指示区域后再次识别调整后的指示区域的图像信息的内容至所述内容完整为止;S6:将所获得完整的图像信息的内容转换成音韵序列并生成语音波形;S7:播放所获得语音波形。
优选地,步骤S2中采用深度学习算法识别出用户用手指或笔作出的指示。
优选地,所述步骤S2包括如下步骤:S21:利用深度学习算法确定出所述采集的图像信息中用户的手指或笔的候选框;S22:确定一个概率阈值对所述候选框进行初步筛选;S23:将初步筛选以后的候选框按照概率由大到小的排序,并分别由概率最大的候选框依次与其他候选框计算IOU;S24:根据计算的IOU值对候选框进行再次筛选;S25:根据再次筛选后的候选框确定用户用手指或笔作出指示的中心点。
优选地,所述步骤S25包括如下步骤:S251:判断所述筛选后的矩形框中是否同时存在用户的人手的候选框、用户的手指的候选框和笔尖的候选框;S252:如有,则选择笔尖的候选框和用户的人手的候选框的交集确定用户用笔作出指示的中心点;如仅有用户的人手的候选框和用户的手指的候选框,则选择所述用户的人手的候选框和用户的手指的候选框的交集确定用户用手指作出指示的中心点;S253:将用户的人手的候选框与笔尖的候选框或手指的候选框的中心点建立连线,所述连线与笔尖的候选框或手指的候选框边界的最远离所述人手候选框的中心点的候选框的交点即为用户作出指示的中心点。
优选地,所述步骤S252中所述用户的人手的候选框和用户的手指的候选框的交集大于一个时,则选择所述用户的人手的候选框和用户的手指的候选框的IOU值最大的一个确定用户用手指作出的指示。
优选地,所述步骤S4中所述待识别的图像信息的内容包括中文字或词、英文单词或词组以及图片。
优选地,所述步骤S4中获取所述待识别的图像信息的内容不唯一时,根据当前用户的使用记录和/或所有用户的使用记录给出权重最高的内容。
优选地,所述步骤S5中包括:S51:根据所述待识别的图像信息的内容判断出图像信息不完整;S52:则利用此时指示区域的面积比上指示区域内的中文或英文的字数,得到此时指示区域中单个字所占的面积,设置指示区域的宽、高增加的阈值并调整指示区域,识别调整后的指示区域的图像信息的内容;S53:判断调整后的指示区域的图像信息的内容是否完整,如不完整,则再次调整指示区域的大小。
本发明还提供一种根据用户指示读书的装置,包括:马达控制模块、语音模块、图像识别模块和控制模块;所述马达控制模块分别与所述图像识别模块、控制模块电连接,用于控制图像识别模块的扫描方位并受控制模块的控制;所述语音模块与所述控制模块电连接,用于将用户的指示语音传给控制模块以及将控制模块分析得到图像信息内容成语音波形输出给用户;所述图像识别模块与所述控制模块电连接,用于获取图像并识别图像中的内容;所述控制模块,用于根据如上任一所述方法的步骤控制所述装置的运行。
本发明又提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。
本发明的有益效果为:提供一种根据用户指示读书的方法及装置,所述方法能够根据用户用笔或手指在书本上的指示确定指示区域并读出指示内容,不受书本资源的限制,使用简单、灵活、方便;同时对用户所需要了解的内容进行更加细化的识别;基于对儿童听说读写四维一体的学习习惯的思考,将语音交互和用笔操作进行了有效的结合。
具体实施方式
下面结合附图通过具体实施例对本发明进行详细的介绍,以使更好的理解本发明,但下述实施例并不限制本发明范围。另外,需要说明的是,下述实施例中所提供的图示仅以示意方式说明本发明的基本构思,附图中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的形状、数量及比例可为一种随意的改变,且其组件布局形态也可能更为复杂。
实施例1
如图1所示,本发明提供一种根据用户指示读书的方法,包括如下步骤:
1.获取用户的语音指令,采集图像信息。
2.在所述采集的图像信息中识别出用户用手指或笔作出指示的中心点;在本发明的一种变通实施例中,采用深度学习算法识别出用户用手指或笔作出的指示。
如图2所示,采用深度学习算法识别出用户用手指或笔作出的指示具体包括如下步骤:
21.利用深度学习算法确定出所述采集的图像信息中用户的手指或笔的候选框;
22.确定一个概率阈值对所述候选框进行初步筛选;
23.将初步筛选以后的候选框按照概率由大到小的排序,并分别由概率最大的候选框依次与其他候选框计算IOU;
24.根据计算的IOU值对候选框进行再次筛选;
25.根据再次筛选后的候选框确定用户用手指或笔作出指示的中心点。
如图3所示,根据再次筛选后的候选框确定用户用手指或笔作出指示的中心点的方法包括如下步骤:
251.判断所述筛选后的矩形框中是否同时存在用户的人手的候选框、用户的手指的候选框和笔尖的候选框;
252.如有,则选择笔尖的候选框和用户的人手的候选框的交集确定用户用笔作出指示的中心点;如仅有用户的人手的候选框和用户的手指的候选框,则选择所述用户的人手的候选框和用户的手指的候选框的交集确定用户用手指作出指示的中心点;在本发明的一种变通实施例中,用户的人手的候选框和用户的手指的候选框的交集大于一个时,则选择用户的人手的候选框和用户的手指的候选框的IOU值最大的一个确定用户用手指作出的指示。
253.将用户的人手的候选框与笔尖的候选框或手指的候选框的中心点建立连线,所述连线与笔尖的候选框或手指的候选框边界的最远离所述人手的候选框中心点的交点即为用户作出指示的中心点。
3.根据所述中心点获取用户指示的待阅读的纸质书的指示区域;获取指示区域的待识别的图像信息。
4.获取所述待识别的图像信息的内容;图像信息的内容包括中文字或词、英文单词或词组以及图片;在本发明的变通实施例中,获取所述待识别的图像信息的内容不唯一时,根据当前用户的使用记录和/或所有用户的使用记录给出权重最高的内容。
5.根据所述内容判断所述待识别的图像信息的完整性,若不完整,则调整所述待识别的图像信息的指示区域后再次识别调整后的指示区域的图像信息的内容至所述内容完整为止。
如图4所示,根据所述内容判断所述待识别的图像信息的完整性及调整指示区域的方法包括如下步骤:
51.根据所述待识别的图像信息的内容判断出图像信息不完整;
52.则利用此时指示区域的面积比上指示区域内的中文或英文的字数,得到此时指示区域中单个字所占的面积,设置指示区域的宽、高增加的阈值并调整指示区域,识别调整后的指示区域的图像信息的内容;
53.判断调整后的指示区域的图像信息的内容是否完整,如不完整,则再次调整指示区域的大小。
6.将所获得完整的图像信息的内容转换成音韵序列并生成语音波形;
7.播放所获得语音波形。
实施例2
在本发明的一种根据用户指示读书的方法中,应用到深度学习算法。在一种具体的实施例中,深度学习主要分为两部分:第一部分是通过深度学习算法,将图像输入到网络,通过深度学习框架提取到图像在不同层次上的特征,最终通过网络输出图像中手和手指或其他指示物体在图像中的位置以及类别(深度学习框架见图1-2)。第二部分是利用成熟的OCR算法对手指或者笔尖等指示工具指示的在书本位置上的中文词组、英文单词和图案进行识别。优选的,在本发明中可以将书本的限定为少儿读物,词组的行间距相对于成人读物较大,便于识别和区分词组和单词。
深度学习模块的一种具体实现如下所述:
利用爬虫算法在网上搜索出100万以上的图片(图片越多,训练的就越充分,得到的效果就越好)的人手指头伸出的图片和笔的图片,以及计划识别出的图案上的物体(比如想要在识别绘本上的老虎,就用老虎的图片进行训练),人工标注出人手的矩形框以及笔和笔的尖端的矩形框,以及需要识别的物体的矩形框。作为深度学习网络的训练集和测试集。建立CNN网络,对网络进行训练。在使用中,将摄像头采集到的图片输入到网络中,输出分类结果。
如图5所示,多目标检测过程包括如下步骤:
1.输入图像为:1920x1080大小,首先将图像惊醒尺度变换缩放到512x512的大小,图像的channel也即通道数为3:RGB,分别代表:红色、绿色、蓝色。
2.分别经过大小为5x5x32、5x5x64以及1x1x64的卷积层,再经过一个的2x2,步长为2的最大池化层,输出一个256x256x64的特征图。
3.以两个3x3x128的卷积层和一个2x2步长为2的最大池化层为一组,实施两组操作,输出一个64x64x128的特征图。
4.经过一个1x1x512的卷积层和两个3x3x256的卷积层以及一个2x2步长为2的最大池化层,输出一个32x32x128的特征图。
5.经过一个1x1x512的卷积层和两个3x3x1024的卷积层以及一个2x2步长为2的最大池化层,输出一个16x16x1024的特征图。
6.经过一个全连接层,输出一个1x1x1024的特征图。
7.经过一个全连接层输出为一个11x11x40的网络。
8.其中11x11的网格里,每一个网格对应有40个变量:(B*5+C),其中B表示每一个网格的预测的的矩形框的个数,其中5个变量分别为(x,y,w,h,p),其中p表示该矩形框的概率。C表示设定的类别的概率,在本专利选取类别为30类,则C表示设定的每一类的概率。
9.首先在两个矩形框中选择概率较大的一个框作为候选框,得到121个候选框,然后在121个候选框中以小于一定的阈值T,在本专利中优选T=0.5,剔除掉部分的候选框。
10.候选框合并:将剩下的候选框按照概率由大到小的排序,由概率最大的往后依次与其他候选框计算IOU,即两个候选框的交集比上候选框的并集,当IOU大于某个阈值,本专利优选阈值为0.2,剔除掉概率较小的候选框。
11.将识别到的物体的位置,按照原始图像和输入网络的图像的比例进行缩放。比如识别出来手指尖端的位置为(x,y)(其中x,y分别为手指尖端的像素点的x和y的坐标),则在原始图像中指尖中心的位置为(x*scale_w,y*scale_h),其中scale_w=w_src/w_d st,scale_h=h_src/h_dst。其中w_src为初始的图像的宽,在本专利中为1920,不作一般性限定,具体取决于采集图像的分辨率,w_dst为当前的图像宽度为11,scale_w为两者宽度的比值。h_src、h_dst、scale_h解释与前面类似。
确定手或者笔指示图像的位置:利用前面CNN检测出的人手伸出的指头的矩形框和人手的矩形框,将两个矩形框存在交集的作为一组,如果存在一个人手的矩形框与多个指尖的矩形框存在交集,选择IOU也即交集与并集的比最大的一个,若同时存在手指和笔的尖端,只选择笔的尖端矩形框和手的矩形框,这样即使出现在摄像机视野中存在干扰的笔或者手,或者有多个手指伸出的情形时,也能得到很好的识别效果,从而减少了操作人和环境的限制,使用起来更加方便。选取矩形框的中心点建立连线,与指头矩形框架边界的交点,取较远的交点所在的边中点设为指头所指示的图片的中心位置。
实施例3
如图6所示,本发明提供一种根据用户指示读书的装置,包括:马达控制模块、语音模块、图像识别模块和控制模块;马达控制模块分别与图像识别模块、控制模块电连接,用于控制图像识别模块的扫描方位并受控制模块的控制;语音模块与控制模块电连接,用于将用户的指示语音传给控制模块以及将控制模块分析得到图像信息内容成语音波形输出给用户;图像识别模块与控制模块电连接,用于获取图像并识别图像中的内容;控制模块,用于根据实施例1中所述方法的步骤控制所述装置的运行。
如图7所示,在本发明更具体的一种实施例中,一种根据用户指示读书的装置为桌面式服务型机器人。其中马达控制模块:即为机器人体内安装有多个纵向马达,马达驱动机器人可以在垂直方向上45°旋转,其中安装在机器人机身内的马达顺时针方向旋转25度实现机器人在在垂直方向上25度的俯视运动,在头部的马达顺时针20度旋转实现机器人头部20度的俯视运动。利用市面上流行的语音识别模块对语音进行识别,若识别到“读书”的指令,对马达发出顺时针旋转45度的命令,机器人头部旋转低下头扫描书本内容,对书本上的英文单词、中文词组和图案进行识别。当语音模块接受到“读书结束”的指令后,驱动马达逆时针旋转45度,机器人恢复到初始状态。
语音模块:采用现在市面上成熟的语音方案,负责语音信号的监听采集以及语音信号输出。用于接收用户的语音指令,识别结束后将识别结果发送给机器人控制模块,识别成功后,将文字或者图片转换成语音波形输出给用户。机器人进入“陪读模式”后,机器人会旋转两个纵向马达,使得机器人头部的摄像头可以拍摄到用户在读的书本,并进行识别。如果用户给出的语音指定为:识字,则根据摄像头采集到的图像信息,利用深度学习算法判断图片是否有手指或者笔等指示工具,如果有,则以指尖在图像的位置为中心点,建立一个初始的宽和高的区域,本专利中优选20x10的像素区域,利用OCR技术对识别区域进行识别,如果检测发现词组不完整,则在宽高上进行进行放大,放大的比例是以当前的矩形框的宽高以乘以0.01的比例放大,如果检测到的词组有多余的信息,则在宽高上进行缩放,缩小的比例也是以当前矩形框的宽高按0.01的比例缩小,词义完整性判断见流程部分,最终得到识别的内容:英文单词就进行翻译、中文词组则进行解释。如果用户给出的指令为:看图,则将整张图片通过深度神经网络,这种图片比较简单,一张图片上只有一类物体,检测输出物体的类别,再通过检测输出的物体类别,在本地或者网络上搜索和该类别有关的语音资源,输出到语音模块。
机器人控制模块:负责机器人整体的控制,包括使用深度学习算法识别用户的手指,笔或其他指示工具所指示的英文单词、中文词组或图案。若识别到是英文单词则进行翻译;若是中文词组则进行语义解析;若是图案则对图片内容进行解释。比如图片中是一只老虎,利用深度学习网络检测出图片中的老虎,将图片中老虎的类别输出。机器人首先在本地搜索,若无老虎的相关信息,继而在云端数据库进行进一步搜索老虎相关的信息,结果合成语音传输给语音模块,通过这种方式,可以提高搜索的速度,提高用户的体验感。
图像识别模块:通过摄像头采集到到的图片传给控制模块进行识别。
实施例4
如图8所示,一种根据用户指示读书的装置的工作流程如下所示:
S201.机器人启动完成后,自动进入工作状态,在工作状态下,机器人等待接收用户的语音指令。比如:陪我读书,我要看书,跟我一起看书吧,等等,进入到“陪读模式”。
S202.用户发出让机器人开始读书的指令,机器人进入“陪读模式”,马达逆时针旋转45度,机器人头部向下旋转,摄像头获取到图像信息存储在本地。机器人发出扫描完成的语音,等待用户的下一步操作。
S203.用户发出识别指令,机器人进入识别状态。
S204.机器人根据用户的语音指令,如果用户给出的语音指定为:识字,则根据摄像头采集到的图像信息,利用深度学习算法判断图片是否有手指或者笔等指示工具,如果有,则以指尖在图像的位置为中心点,建立一个初始的宽和高。本专利中优选为20x10的像素区域,在实际使用中,不作强制性要求。利用OCR技术对识别区域进行识别,如果检测发现词组不完整。判断词组的完整性方案:在区域通过OCR检测到单词或者词组时,利用此时区域的面积比上单词的个数,得到单个单词所占的面积,取宽高增加的阈值设定为:单个单词的面积的5倍。当面积增加为单个单词的五倍时,仍无新的单词出现,搜索结束,判定单词或者词组为完整。在宽高上进行进行放大,以当前的矩形框的宽高乘以0.01的比例放大,如果检测到的词组有多余的信息,即通过OCR检索发现存在多个词组时,则在宽高上进行缩放,缩小的比例也是以当前矩形框的宽高按0.01的比例缩小,直到不存在多余的信息,最终得到识别的内容:英文单词就进行翻译、中文词组则进行解释。将单词或者词组首先在本地搜索,若本地不存在该词汇,继而在网络上搜索,如果有该词组就将该词组的解析在本地合成语音输出,如果没有,则按搜索得到的顺序将第一个词组的解释合成语音输出,如果机器人在指示区域内未识别到中文词组或英文单词,通过语音模块给用户反馈:没有识别到,请重新指示的语音,如果用户给出的指令为:看图,则将整张图片通过深度神经网络,这种图片比较简单,一张图片上只有一类物体,检测输出物体的类别,再通过检测输出的物体类别,首先在本地搜索,若本地不存在关于该物体的相关信息,在网络上搜索和该类别有关的文字资料,结合现有的通用的语音合成技术合成语音输出到语音模块,无需联网,可以直接就在本地合成。
在本发明的一种变通实施例中,当识别出图像信息的内容为不止一个意思时,会综合根据当前用户的使用记录和/或所有用户的使用记录给出权重最高的内容。如果给出的不是用户需要的,用户可以重新指示,系统会再次给出另外一个内容及内容相关的解释。
S205.机器人根据S204步骤识别到的结果,通过语音模块将结果反馈给用户。
S206.重复上述步骤,直到用户发出语音指令退出“陪读模式”。在一种具体的实施例中,若识别到用户发出退出“陪读模式”的语音指令,比如:我不看了,休息一下吧,等等,则会退出“陪读模式”,机器人恢复到直立的正常状态。
实施例5
所述根据用户指示读书的装置如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。