发明内容
有鉴于此,本发明提供一种图像特征处理模块、增强现实设备和角点检测方法,用于解决目前的AR设备在图像处理时的延迟问题。
为解决上述技术问题,第一方面,本发明提供一种图像特征处理模块,应用于增强现实设备,所述增强现实设备包括摄像头和中央处理器,所述图像特征处理模块包括:
图像读取接口,用于与所述摄像头连接,读取所述摄像头输出的待处理图像;
处理子模块,与所述图像读取接口连接,用于将所述待处理图像分割为n个分区,并行对所述n个分区进行处理,提取所述n个分区中的角点,n为正整数;根据提取的角点,生成所述待处理图像的角点特征图;
输出接口,与所述处理子模块连接,用于将所述角点特征图输出至所述中央处理器。
优选的,所述图像特征处理模块还包括:
缓存;
其中,所述图像读取接口,与所述缓存连接,还用于根据所述摄像头输出的连续的视频流中的同步信号,判断获取到的图像是否为新的图像,如果是,将所述新的图像作为待处理图像存储至所述缓存中;
所述处理子模块,与所述缓存连接,用于读取所述缓存中存储的所述待处理图像。
优选的,所述处理子模块包括n个图像特征检测单元,每一所述图像特征检测单元用于对所述n个分区中的一个分区进行处理,提取所述一个分区中的角点;
所述n个图像特征检测单元并行运行。
优选的,所述图像特征检测单元包括:
位置子单元,用于获取所述一个分区的中心点的位置;
特征提取控制器,与所述位置子单元连接,用于根据所述一个分区的中心点的位置,确定第二预设个数像素点的位置;
计算子单元,与所述特征提取控制器连接,用于根据所述中心点的位置和所述像素点的位置,获取所述中心点的像素值和所述像素点的像素值;根据所述中心点的像素值和所述像素点的像素值,判断所述中心点是否为所述角点。
优选的,所述计算子单元,用于对所述第二预设个数像素点进行顺次编号;获取所述中心点的像素值和所述第二预设个数像素点中的第三预设个数像素点的像素值,所述第三预设个数像素点中相邻两个所述像素点间的编号之差相等,所述第三预设个数小于或等于所述第二预设个数;计算所述第三预设个数像素点中每一所述像素点的像素值与所述中心点的像素值的差值;
所述图像特征检测单元还包括:特征比较器,与所述计算子单元连接,用于比较所述第三预设个数像素点中每一所述像素点的像素值与所述中心点的像素值的差值是否大于或等于预设差值阈值;若在所述第三预设个数像素点中,存在连续的第四预设个数所述像素点与所述中心点的像素值的差值大于或等于所述预设差值阈值,判定所述中心点为所述角点,所述第四预设个数与所述第三预设个数的比值大于或等于预设比值阈值。
优选的,所述位置子单元,还用于获取所述一个分区在所述图像中的位置;
所述处理子模块,用于根据提取的所述n个分区中的角点和所述n个分区在所述图像中的位置,生成所述待处理图像的角点特征图。
优选的,所述图像特征处理模块还包括:
时钟控制器,分别与所述图像读取接口和所述处理子模块连接,用于控制每一所述图像特征检测单元处理一个分区的速度大于或等于所述摄像头输出待处理图像的速度。
优选的,每一所述分区的形状和尺寸均相同,包括第一预设个数的像素点。
优选的,所述处理子模块,还用于对上一帧图像的角点特征图和当前帧图像的角点特征图进行特征匹配,获取所述角点的位移偏差;根据所述角点的位移偏差,分析所述增强现实设备的运动轨迹。
第二方面,本发明还提供一种增强现实设备,其特征在于,包括上述的图像特征处理模块。
第三方面,本发明还提供一种角点检测方法,应用于增强现实设备,所述增强现实设备包括摄像头和中央处理器,所述角点检测方法包括:
读取所述摄像头输出的待处理图像;
将所述待处理图像分割为n个分区,并行对所述n个分区进行处理,提取所述n个分区中的角点,n为正整数;根据提取的角点,生成所述待处理图像的角点特征图;
将所述角点特征图输出至所述中央处理器。
优选的,所述增强现实设备还包括缓存,所述读取所述摄像头输出的待处理图像的步骤包括:
根据所述摄像头输出的连续的视频流中的同步信号,判断获取到的图像是否为新的图像,如果是,将所述新的图像作为待处理图像存储至所述缓存中。
优选的,所述并行对所述n个分区进行处理,提取所述n个分区中的角点的步骤包括:
获取一个分区的中心点的位置;
根据所述一个分区的中心点的位置,确定第二预设个数像素点的位置;
根据所述中心点的位置和所述像素点的位置,获取所述中心点的像素值和所述像素点的像素值;
根据所述中心点的像素值和所述像素点的像素值,判断所述中心点是否为所述角点。
优选的,所述根据所述中心点的像素值和所述像素点的像素值,判断所述中心点是否为所述角点的步骤包括:
对所述第二预设个数像素点进行顺次编号;
获取所述中心点的像素值和所述第二预设个数像素点中的第三预设个数像素点的像素值,所述第三预设个数像素点中相邻两个所述像素点间的编号之差相等,所述第三预设个数小于或等于所述第二预设个数;
计算所述第三预设个数像素点中每一所述像素点的像素值与所述中心点的像素值的差值;
比较所述第三预设个数像素点中每一所述像素点的像素值与所述中心点的像素值的差值是否大于或等于预设差值阈值;若在所述第三预设个数像素点中,存在连续的第四预设个数所述像素点与所述中心点的像素值的差值大于或等于所述预设差值阈值,判定所述中心点为所述角点,所述第四预设个数与所述第三预设个数的比值大于或等于预设比值阈值。
优选的,所述角点检测方法还包括:
获取所述一个分区在所述图像中的位置;
所述根据提取的角点,生成所述待处理图像的角点特征图的步骤包括:
根据提取的所述n个分区中的角点和所述n个分区在所述图像中的位置,生成所述待处理图像的角点特征图。
优选的,所述角点检测方法还包括:
控制处理每一分区的速度大于或等于所述摄像头输出待处理图像的速度。
优选的,每一所述分区的形状和尺寸均相同,包括第一预设个数的像素点。
优选的,所述角点检测方法还包括:
对上一帧图像的角点特征图和当前帧图像的角点特征图进行特征匹配,获取所述角点的位移偏差;
根据所述角点的位移偏差,分析所述增强现实设备的运动轨迹。
第四方面,本发明还提供一种图像特征处理模块,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述计算机程序时实现上述的角点检测方法。
第五方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的角点检测方法中的步骤。
本发明的上述技术方案的有益效果如下:
本发明实施例中,图像特征处理模块能够自主读取每一帧图像,自动进行图像分割,并完成特征点的计算和比较,最终将角点特征图输出至处理器,角点特征的提取过程无需处理器参与,且实现了对增强现实设备需要的图像特征做并行化加速处理,能够快速完成图像的角点提取,大大提高图像特征处理效率,有效降低处理器的负荷。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图2,图2为本发明实施例一的图像特征处理模块的结构示意图,该图像特征处理模块20应用于增强现实设备,所述增强现实设备包括摄像头和中央处理器,该图像特征处理模块20包括:
图像读取接口21,用于与所述摄像头连接,读取所述摄像头输出的待处理图像;
处理子模块22,与所述图像读取接口21连接,用于将所述待处理图像分割为n个分区,并行对所述n个分区进行处理,提取所述n个分区中的角点,n为正整数;根据提取的角点,生成所述待处理图像的角点特征图;
输出接口23,与所述处理子模块22连接,用于将所述角点特征图输出至所述中央处理器。
本发明实施例提供的图像特征处理模块,角点特征的提取过程无需处理器参与,且采用并行架构的处理子模块,实现了对增强现实设备需要的图像特征做并行化加速处理,能够快速完成图像的角点提取,大大提高图像特征处理效率,有效降低处理器的负荷。
上述实施例中,增强现实设备可以为AR眼镜、AR眼罩或AR头盔。
优选的,每一所述分区的形状和尺寸均相同,包括第一预设个数的像素点。
具体而言,请参阅图3,图3是本发明实施例的待处理图像的示意图。处理子模块获取到新的一帧图像30后,将图像30分割成形状和尺寸均相同的多个分区31。
优选的,所述第一预设个数为49(7*7)-65536(256*256)个。
举例来说,可以以49(7*7)个像素点为一个分区,来分割图像,例如:一幅1024*768分辨率的图像,可以分割为146*109个图像子单元。
在本发明的一些优选实施例中,所述图像特征处理模块还包括:
缓存;
其中,所述图像读取接口,与所述缓存连接,还用于根据所述摄像头输出的连续的视频流中的同步信号,判断获取到的图像是否为新的图像,如果是,将所述新的图像作为待处理图像存储至所述缓存中;
所述处理子模块,与所述缓存连接,用于读取所述缓存中存储的所述待处理图像。
具体而言,图像读取接口用于从摄像头输出的连续的视频流中获取一帧图像,可以根据摄像头的相机串行接口(CMOS Sensor Interface,简称CSI)输出的场同步(VSYNC)信号,判断是否是一帧新的、完整的图像输出到图像读取接口。例如:VSYNC=1表示是一帧新的、完整的图像,若图像读取接口接收到VSYNC的信号为1,则将这帧新的图像存储至缓存中,处理子模块从缓存中读取这一帧新的图像,进行图像处理。
在本发明的一些优选实施例中,所述处理子模块包括n个图像特征检测单元,每一所述图像特征检测单元用于对所述n个分区中的一个分区进行处理,提取所述一个分区中的角点;
所述n个图像特征检测单元并行运行。
具体请参阅图4,图4是本发明实施例的处理子单元的结构示意图,该处理子模块40采用并行架构,包括n个图像特征检测单元41,每一个图像特征检测单元41处理一个分区,n个图像特征检测单元41同时进行处理,进行角点提取。
优选的,所述图像特征检测单元包括:
位置子单元,用于获取所述一个分区的中心点的位置;
特征提取控制器,与所述位置子单元连接,用于根据所述一个分区的中心点的位置,确定第二预设个数像素点的位置;
计算子单元,与所述特征提取控制器连接,用于根据所述中心点的位置和所述像素点的位置,获取所述中心点的像素值和所述像素点的像素值;根据所述中心点的像素值和所述像素点的像素值,判断所述中心点是否为所述角点。
以图5为示例,图5是本发明实施例的图像特征检测单元对一个分区进行处理的示意图。可以在该分区50上,获取中心点51的位置,以该中心点51为圆心、预设长度为半径作圆52。确定圆52的边上的第二预设个数(例如:16个)像素点53的位置,获取中心点51和像素点53的像素值,根据中心点51和像素点53的像素值,判断中心点51是否为角点。
所述预设长度、所述第二预设个数可以根据需求进行设定,更为灵活方便。
本发明实施例中,判断角点的方式有多种,作为其中一种可选的具体实施方式:所述计算子单元,用于对所述第二预设个数像素点进行顺次编号;获取所述中心点的像素值和所述第二预设个数像素点中的第三预设个数像素点的像素值,所述第三预设个数像素点中相邻两个所述像素点间的编号之差相等,所述第三预设个数小于或等于所述第二预设个数;计算所述第三预设个数像素点中每一所述像素点的像素值与所述中心点的像素值的差值;
所述图像特征检测单元还包括:特征比较器,与所述计算子单元连接,用于比较所述第三预设个数像素点中每一所述像素点的像素值与所述中心点的像素值的差值是否大于或等于预设差值阈值;若在所述第三预设个数像素点中,存在连续的第四预设个数所述像素点与所述中心点的像素值的差值大于或等于所述预设差值阈值,判定所述中心点为所述角点,所述第四预设个数与所述第三预设个数的比值大于或等于预设比值阈值。
在一具体应用场景中,具体请参阅图6,图6是本发明实施例的图像特征检测单元的结构示意图,该图像特征检测单元60包括:位置子单元61、特征提取控制器62、计算子单元63和特征比较器64。
结合图5,位置子单元61用于获取该分区50上的中心点51的位置;特征提取控制器62用于以该中心点51为圆心、预设长度为半径作圆52,确定圆52的边上的第二预设个数(16个)像素点53的位置;计算子单元63可以获取中心点51和16个像素点53的像素值(即第三预设个数像素点即为确定的第二预设个数像素点),计算这16个像素点53和中心点51的像素值的差值;特征比较器64统计这16个像素点53中,有多少个连续的像素点与中心点51的像素值的差值大于或等于预设差值阈值,即采用以下公式计算:
其中:
N为与中心点的像素值的差值大于或等于预设差值阈值的像素点的个数;
p为圆心,即分区的中心点;
circle(p)为以中心点为圆心、预设长度为半径的圆;
x为圆的边上的第三预设个数像素点;
I(x)为圆的边上的第三预设个数像素点的像素值;
I(p)为圆心的像素值;
εd为预设差值阈值。
若预设比值阈值为75%,则在这16个像素点53中,存在连续的12个以上的像素点53的像素值与中心点51的像素值的差值大于或等于预设差值阈值,则将中心点51作为一个角点。
为了进一步加速计算,计算子单元63也可以只获取中心点51和16个像素点53中的4个像素点(如:编号为1、5、9、13)的像素值(即第三预设个数像素点为第二预设个数像素点中的部分像素点),计算这4个像素点53和中心点51的像素值的差值;特征比较器64统计这4个像素点53中,有多少个像素点与中心点51的像素值的差值大于或等于预设差值阈值,具体计算公式同上述公式。若预设比值阈值为75%,则在这4个像素点53中,存在连续的3个以上的像素点53的像素值与中心点51的像素值的差值大于或等于预设差值阈值,则将中心点51作为一个角点。
优选的,所述预设比值阈值大于50%,且小于或等于100%,进一步优选的,所述预设比值阈值大于或等于75%,且小于或等于100%。
例如:预设比值阈值为75%,第三预设个数像素点即为确定的第二预设个数像素点,个数为12个,则在这12个像素点中,存在连续的9个以上的像素点的像素值与中心点的像素值的差值大于或等于预设差值阈值,则将中心点作为一个角点。
在本发明的一些优选实施例中,所述位置子单元,还用于获取所述一个分区在所述图像中的位置;
所述处理子模块,用于根据提取的所述n个分区中的角点和所述n个分区在所述图像中的位置,生成所述待处理图像的角点特征图。
也就是说,对n个分区进行并行处理后,再根据提取的每个分区中的角点和每个分区的位置,合成角点特征图。
在本发明的一些优选实施例中,图像特征处理模块还包括:
时钟控制器,分别与所述图像读取接口和所述处理子模块连接,用于控制每一所述图像特征检测单元处理一个分区的速度大于或等于所述摄像头输出待处理图像的速度。
举例来说,请参阅图7,图7是本发明实施例的图像特征处理模块的结构示意图,该图像特征处理模块70包括图像读取接口71、处理子模块72、缓存73、时钟控制器74和输出接口(图未示)。其中,处理子模块72中包括n个图像特征检测单元721。
若图像读取接口71每秒读取到60帧摄像头输出的图像,即摄像头输出一帧图像所需的时间为
秒,时钟控制器74控制每个图像特征检测单元721处理一个分区的时间小于或等于
秒,即处理一个分区的速度大于或等于摄像头输出图像的速度。
本发明实施例中,对待处理图像进行角点检测,得到角点特征图,具体如图8-9所示。图8是本发明实施例的待处理图像的示意图,图9是根据图8生成的角点特征图。
在本发明的一些优选实施例中,所述处理子模块,还用于对上一帧图像的角点特征图和当前帧图像的角点特征图进行特征匹配,获取所述角点的位移偏差;根据所述角点的位移偏差,分析所述增强现实设备的运动轨迹。
也就是说,通过对前后帧的图像的角点特征做匹配,能够分析出增强现实设备的运动轨迹,能进一步提升增强现实设备实时定位的能力,为增强现实设备在实时定位和地图重建(simultaneous localization and mapping,简称SLAM)的使用场景下提供强有力的支持,提升增强现实设备的SLAM计算效率。
本发明实施例二还提供一种增强现实设备,包括本发明实施例一的图像特征处理模块。
本发明实施例提供的增强现实设备包括上述实施例一中的图像特征处理模块,因此,本发明实施例提供的增强现实设备也能够自主读取每一帧图像,自动进行图像分割,并完成特征点的计算和比较,角点特征的提取过程无需处理器参与,且实现了对增强现实设备需要的图像特征做并行化加速处理,能够快速完成图像的角点提取,大大提高图像特征处理效率,提升增强现实设备实时定位的能力,有效降低处理器的负荷。
请参阅图10,图10是本发明实施例三的角点检测方法的流程示意图,该方法应用于增强现实设备,所述增强现实设备包括摄像头和中央处理器,所述角点检测方法包括:
步骤101:读取所述摄像头输出的待处理图像;
步骤102:将所述待处理图像分割为n个分区,并行对所述n个分区进行处理,提取所述n个分区中的角点,n为正整数;根据提取的角点,生成所述待处理图像的角点特征图;
步骤103:将所述角点特征图输出至所述中央处理器。
本发明实施例提供的角点检测方法,角点特征的提取过程无需处理器参与,且采用并行架构的处理子模块,实现了对增强现实设备需要的图像特征做并行化加速处理,能够快速完成图像的角点提取,大大提高图像特征处理效率,有效降低处理器的负荷。
优选的,所述增强现实设备还包括缓存,所述读取所述摄像头输出的待处理图像的步骤包括:
根据所述摄像头输出的连续的视频流中的同步信号,判断获取到的图像是否为新的图像,如果是,将所述新的图像作为待处理图像存储至所述缓存中。
优选的,所述并行对所述n个分区进行处理,提取所述n个分区中的角点的步骤包括:
获取一个分区的中心点的位置;
根据所述一个分区的中心点的位置,确定第二预设个数像素点的位置;
根据所述中心点的位置和所述像素点的位置,获取所述中心点的像素值和所述像素点的像素值;
根据所述中心点的像素值和所述像素点的像素值,判断所述中心点是否为所述角点。
优选的,所述根据所述中心点的像素值和所述像素点的像素值,判断所述中心点是否为所述角点的步骤包括:
对所述第二预设个数像素点进行顺次编号;
获取所述中心点的像素值和所述第二预设个数像素点中的第三预设个数像素点的像素值,所述第三预设个数像素点中相邻两个所述像素点间的编号之差相等,所述第三预设个数小于或等于所述第二预设个数;
计算所述第三预设个数像素点中每一所述像素点的像素值与所述中心点的像素值的差值;
比较所述第三预设个数像素点中每一所述像素点的像素值与所述中心点的像素值的差值是否大于或等于预设差值阈值;若在所述第三预设个数像素点中,存在连续的第四预设个数所述像素点与所述中心点的像素值的差值大于或等于所述预设差值阈值,判定所述中心点为所述角点,所述第四预设个数与所述第三预设个数的比值大于或等于预设比值阈值。
优选的,所述角点检测方法还包括:
获取所述一个分区在所述图像中的位置;
所述根据提取的角点,生成所述待处理图像的角点特征图的步骤包括:
根据提取的所述n个分区中的角点和所述n个分区在所述图像中的位置,生成所述待处理图像的角点特征图。
优选的,所述角点检测方法还包括:
控制处理每一分区的速度大于或等于所述摄像头输出待处理图像的速度。
优选的,每一所述分区的形状和尺寸均相同,包括第一预设个数的像素点。
优选的,所述角点检测方法还包括:
对上一帧图像的角点特征图和当前帧图像的角点特征图进行特征匹配,获取所述角点的位移偏差;
根据所述角点的位移偏差,分析所述增强现实设备的运动轨迹。
本发明实施例二的具体工作过程与上述实施例一中的一致,故在此不再赘述,详细请参阅以上对应实施例中的说明。
请参阅图11,图11是本发明实施例四的图像特征处理模块的结构示意图,该图像特征处理模块110包括处理器111、存储器112及存储在所述存储器112上并可在所述处理器111上运行的计算机程序;所述处理器111执行所述计算机程序时实现如下步骤:
读取所述摄像头输出的待处理图像;
将所述待处理图像分割为n个分区,并行对所述n个分区进行处理,提取所述n个分区中的角点,n为正整数;根据提取的角点,生成所述待处理图像的角点特征图;
将所述角点特征图输出至所述中央处理器。
本发明实施例提供的图像特征处理模块,角点特征的提取过程无需处理器参与,且采用并行架构的处理子模块,实现了对增强现实设备需要的图像特征做并行化加速处理,能够快速完成图像的角点提取,大大提高图像特征处理效率,有效降低处理器的负荷。
优选的,所述增强现实设备还包括缓存,所述处理器111执行所述计算机程序时实现如下步骤:
所述读取所述摄像头输出的待处理图像的步骤包括:
根据所述摄像头输出的连续的视频流中的同步信号,判断获取到的图像是否为新的图像,如果是,将所述新的图像作为待处理图像存储至所述缓存中。
优选的,所述处理器111执行所述计算机程序时实现如下步骤:
所述并行对所述n个分区进行处理,提取所述n个分区中的角点的步骤包括:
获取一个分区的中心点的位置;
根据所述一个分区的中心点的位置,确定第二预设个数像素点的位置;
根据所述中心点的位置和所述像素点的位置,获取所述中心点的像素值和所述像素点的像素值;
根据所述中心点的像素值和所述像素点的像素值,判断所述中心点是否为所述角点。
优选的,所述处理器111执行所述计算机程序时实现如下步骤:
所述根据所述中心点的像素值和所述像素点的像素值,判断所述中心点是否为所述角点的步骤包括:
对所述第二预设个数像素点进行顺次编号;
获取所述中心点的像素值和所述第二预设个数像素点中的第三预设个数像素点的像素值,所述第三预设个数像素点中相邻两个所述像素点间的编号之差相等,所述第三预设个数小于或等于所述第二预设个数;
计算所述第三预设个数像素点中每一所述像素点的像素值与所述中心点的像素值的差值;
比较所述第三预设个数像素点中每一所述像素点的像素值与所述中心点的像素值的差值是否大于或等于预设差值阈值;若在所述第三预设个数像素点中,存在连续的第四预设个数所述像素点与所述中心点的像素值的差值大于或等于所述预设差值阈值,判定所述中心点为所述角点,所述第四预设个数与所述第三预设个数的比值大于或等于预设比值阈值。
优选的,所述处理器111执行所述计算机程序时实现如下步骤:
获取所述一个分区在所述图像中的位置;
所述根据提取的角点,生成所述待处理图像的角点特征图的步骤包括:
根据提取的所述n个分区中的角点和所述n个分区在所述图像中的位置,生成所述待处理图像的角点特征图。
优选的,所述处理器111执行所述计算机程序时实现如下步骤:
控制处理每一分区的速度大于或等于所述摄像头输出待处理图像的速度。
优选的,每一所述分区的形状和尺寸均相同,包括第一预设个数的像素点。
优选的,所述处理器111执行所述计算机程序时实现如下步骤:
对上一帧图像的角点特征图和当前帧图像的角点特征图进行特征匹配,获取所述角点的位移偏差;
根据所述角点的位移偏差,分析所述增强现实设备的运动轨迹。
本发明实施例四的具体工作过程与上述实施例一中的一致,故在此不再赘述,详细请参阅以上对应实施例中的说明。
本发明实施例五提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例二中的角点检测方法中的步骤。具体工作过程与上述对应实施例二中的一致,故在此不再赘述,详细请参阅以上对应实施例中方法步骤的说明。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。