可见光通信的编码识别方法、电子设备和计算机可读介质与流程

文档序号:32351291发布日期:2022-11-26 13:16阅读:334来源:国知局
可见光通信的编码识别方法、电子设备和计算机可读介质与流程

1.本技术实施例涉及计算机技术领域,具体涉及可见光通信的编码识别方法、电子设备和计算机可读介质。


背景技术:

2.可见光通信(visible light communication,vlc)是指利用可见光波段的光作为信息载体,在空气中传输光信号的通信方式。在可见光通信过程中,发射端可通过发光二极管(light emitting diode,led)等原件输出编码图案,接收端可接收并识别该编码图案。
3.现有技术中,终端设备可利用图像采集单元的微距特性,实现可见光通信,但对于二维码等需要精准对准才能识别成功的编码图案,由于屏下图像传感器的分辨率低、视野较小,通常需要对此对准才能识别成功,故编码图案识别的成功率较低且识别效率较低。


技术实现要素:

4.本技术实施例提出了可见光通信的编码识别方法、电子设备和计算机可读介质,以解决现有技术中编码图案识别的成功率较低以及识别效率较低的技术问题。
5.第一方面,本技术实施例提供了一种可见光通信的编码识别方法,应用于第一电子设备,所述第一电子设备设置有图像采集单元,所述方法包括:获取待测图像,所述待测图像为由所述图像采集单元针对第二电子设备的显示屏的目标区域采集的图像,所述目标区域显示有周期性排布的编码图案;检测所述待测图像中的黑点和白点,得到黑白点阵;从所述黑白点阵中选取目标尺寸的子点阵,对所述子点阵进行校验;基于校验通过的子点阵,确定所述编码图案对应的编码信息。
6.第二方面,本技术实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中所描述的方法。
7.第三方面,本技术实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所描述的方法。
8.第四方面,本技术实施例提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面中所描述的方法。
9.本技术实施例提供的可见光通信的编码识别方法、电子设备和计算机可读介质,可通过设置于第一电子设备的图像采集单元对第二电子设备的显示屏的目标区域进行图像采集,获取到上述目标区域中所显示的呈周期性排布的编码图案的待测图像,以实现可见光通信;第一电子设备在获取到待测图像后,可检测其中的黑点和白点以得到黑白点阵,并从黑白点阵中选取目标尺寸的子点阵以进行校验,进而在校验通过的情况下基于子点阵识别出编码图案对应的编码信息。由于编码图案呈周期性排布,因此无需使采集区域和目标区域精确对准,提高了对编码图案识别的成功率;进一步地,由于编码图案呈周期性排布,因此仅需对黑白点阵中的局部的子点检进行校验,无需对全局进行校验,从而提高了编
码识别效率。
附图说明
10.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:
11.图1是本技术的可见光通信的编码识别方法的一个实施例的流程图;
12.图2是本技术第二电子设备的显示屏的示意图;
13.图3是本技术的可见光通信的编码识别方法的应用场景的示意图;
14.图4是本技术的检测黑白点和生成黑白点阵的过程的流程图;
15.图5是本技术的预处理前后的效果对比图;
16.图6是本技术的黑点过滤前后的对比图;
17.图7是本技术的黑白点阵生成过程的示意图;
18.图8是本技术的子点阵校验过程的流程图;
19.图9是本技术的子点阵转换为初始矩阵的示意图;
20.图10是本技术的待处理矩阵行偏移前后的对比图;
21.图11是本技术的待处理矩阵列偏移前后的对比图;
22.图12是本技术的初始矩阵与满足编码规则的偏移矩阵的对比图;
23.图13是本技术的符合编码规则的子点阵的示意图;
24.图14是本技术的可见光通信的编码识别装置的一个实施例的流程图;
25.图15是用于实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
26.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
27.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
28.需要指出的是,本技术中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
29.近年来,生物识别技术已广泛地应用到各种终端设备或电子装置上。生物特征识别技术包括但不限于指纹识别、掌纹识别、静脉识别、虹膜识别、人脸识别、活体识别、防伪识别等技术。其中,指纹识别通常包括光学指纹识别、电容式指纹识别和超声波指纹识别。随着全面屏技术的兴起,可以将指纹识别模组设置在显示屏下方的局部区域或者全部区域,从而形成屏下(under-display)光学指纹识别;或者,也可以将光学指纹识别模组的部分或者全部集成至电子设备的显示屏内部,从而形成屏内(in-display)光学指纹识别。上述显示屏可以是有机发光二极管(organic light emitting diode,oled)显示屏或液晶显示屏(liquidcrystal display,lcd)等。指纹识别方法通常包括指纹图像的获取、预处理、特征提取、特征匹配等步骤。上述步骤中的部分或者全部可以通过传统计算机视觉
(computer vision,cv)算法实现,也可以通过基于人工智能(artificial intelligence,ai)的深度学习算法实现。指纹识别技术可以应用在智能手机、平板电脑、游戏设备等便携式或移动终端,以及智能门锁、汽车、银行自动柜员机等其他电子设备,以用于指纹解锁、指纹支付、指纹考勤、身份认证等。
30.目前,终端设备中的生物特征识别模组在应用于可见光通信场景时,由于生物特征识别模组中图像传感器的分辨率低、视野较小,通常需要对此对准才能识别成功,故编码图案识别的成功率较低且识别效率较低。本技术提供了一种可见光通信的编码识别方法,能够提高对编码图案识别的成功率以及识别效率。
31.请参考图1,其示出了根据本技术的可见光通信的编码识别方法的一个实施例的流程图。该可见光通信的编码识别方法可应用于第一电子设备。第一电子设备可以是具有显示屏的各种电子设备。例如,可包括但不限于智能手机、平板电脑、电子书阅读器、mp3(动态影像专家压缩标准音频层面3,moving picture experts group audio layer iii)播放器、mp4(动态影像专家压缩标准音频层面4,moving picture experts group audio layer iv)播放器、膝上型便携计算机、车载电脑、掌上电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等。上述显示屏可以是有机发光二极管显示屏、液晶显示屏等各种类型的显示屏。该可见光通信的编码识别方法的执行主体可以是上述第一电子设备中的处理器,例如图15中的处理装置1501。
32.该可见光通信的编码识别方法,包括以下步骤:
33.步骤101,获取待测图像。
34.在本实施例中,第一电子设备可设置有图像采集单元。图像采集单元可用于进行图像采集。待测图像可以为由上述图像采集单元针对第二电子设备的显示屏的目标区域采集的图像。第二电子设备可以是具有显示屏的各种电子设备。上述目标区域可以是第二电子设备的显示屏的局部区域或者全部区域,此处不作限定。
35.在一些场景中,上述图像采集单元可以是摄像头。上述摄像头可包括但不限于以下至少一项:前置摄像头、后置摄像头。当上述图像采集单元为前置摄像头时,上述待测图像可以是当第二电子设备的显示屏的目标区域靠近第一电子设备时,由上述前置摄像头针对上述目标区域所采集的图像。实践中,前置摄像头附近可设置有距离传感器,以检测是否有其他电子设备靠近。
36.在另一些场景中,上述图像采集单元可以是生物信息识别模组。第一电子设备的显示屏中可包括采集区域。上述采集区域可以是第一电子设备的显示屏的局部区域或者全部区域,此处不作限定。上述生物信息识别模组可设置于采集区域下方,其可进行屏下图像的采集。当第二电子设备的显示屏的目标区域靠近上述采集区域时,上述执行主体可获取生物信息识别模组所采集的屏下图像,并将其作为待测图像。实践中,上述生物信息识别模组中可包括图像传感器,可通过该图像传感器进行屏下图像的采集。生物信息识别模组可包括但不限于指纹模组、掌纹模组等。该生物信息识别模组可以仅用于图像采集,或者,既可用于图像采集又可以用于图像识别。
37.作为示例,参见图2,其示出了本技术的可见光通信的编码识别方法的一个应用场景的示意图。如图2所示,第一电子设备的显示屏的采集区域可设置有“生物信息识别模组1”。第二电子设备的显示屏的目标区域可显示有“编码图案1”。当第一电子设备的显示屏的
采集区域靠近第二电子设备的显示屏的目标区域时,“生物信息识别模组1”可采集“编码图案1”的图像。需要说明的是,第二电子设备的显示屏也可以包括采集区域,其下方可设置有“生物信息识别模组2”,第一电子设备的显示屏也可以设置有目标区域,其可显示“编码图案2”。当第一电子设备的显示屏的采集区域靠近第二电子设备的目标区域靠近时,“生物信息识别模组2”也可同时采集“编码图案2”的图像。由此,针对第一电子设备和第二电子设备的显示屏下方的生物信息识别模组,可同时进行可见光通信。同理,针对第一电子设备和第二电子设备的前置摄像头,也可以同时进行可见光通信,此处不再赘述。
38.在本实施例中,目标区域可以显示有周期性排布的编码图案。作为示例,参见图3所示的第二电子设备的显示屏的示意图。呈周期性排布的编码图案可参见标号301所示。编码图案可在用户执行目标操作(例如,启动目标应用)时,通过显示屏的发光二极管等元件显示。编码图案可通过预设的编码规则对原始的编码信息编码后得到。编码信息可以用于建立第一电子设备和第二电子设备之间的通信,其可以包括但不限于字符串形式的信息,例如,图2中的“ali4977153”。
39.步骤102,检测待测图像中的黑点和白点,得到黑白点阵。
40.在本实施例中,待测图像可以是灰度图。上述执行主体可以首先根据待测图像中的各像素点的像素值,确定其中的黑点和白点。作为示例,可将像素值大于第一阈值的像素点作为白点,将像素值小于第二阈值的像素点作为黑点。作为又一示例,可采用滑动窗口对待测图像进行滑动检测,确定滑动窗口中的最大像素值点和最小像素值点。将大于第一阈值的最大像素值点作为白点,将小于第二阈值的最大像素值点作为黑点。作为再一示例,可首先对待测图像进行预处理,以提升图像质量。而后,可采用滑动窗口对预处理图像进行滑动检测,确定滑动窗口中的最大像素值点和最小像素值点。将大于第一阈值的最大像素值点作为白点,将小于第二阈值的最大像素值点作为黑点。
41.在检测出待测图像中的黑点和白点后,上述执行主体可以基于待测图像中的黑点和白点的位置,生成黑白点阵。黑白点阵可以采用灰度图的形式进行可视化展示。例如,可将黑点的像素值设置为第一值(例如,0),将白点的像素值设置为第二值(例如,255),将其余点的值设置为大于第一值且小于第二值的中间值(例如,128),于图像的形式展示该黑白点阵,以便于观测。
42.步骤103,从黑白点阵中选取目标尺寸的子点阵,对子点阵进行校验。
43.在本实施例中,由于编码图案呈周期性变化,故黑白点阵也呈周期性变化。可预先基于校验编码图案的单周期区域的大小设定目标尺寸,在进行校验时,上述执行主体可以从黑白点阵中选取上述目标尺寸的局部点阵作为子点阵,仅对子点阵进行校验,从而降低校验的数据量,提高了校验效率。实践中,目标尺寸可设定为n
×
n或者n
×
m。n为正整数,例如,n=12。m为不同于n的正整数。
44.在本实施例中,上述执行主体可以基于预设规则对子点阵进行校验。若校验通过,可以执行如下步骤104。若校验未通过,则可以从黑白点阵中重新选取目标尺寸的另一子点阵,对重新选取的子点阵进行校验,以避免因子点阵内存在误识别的黑白点导致校验结果错误,从而提高了校验结果的准确性。此外,由于黑白点阵呈周期性变化,在用户未将编码图案和采集区域对准时,通过至少一次子点阵的选取和校验,也可得到准确的校验结果,提高了编码识别的成功率。
45.在一些可选的实现方式中,上述执行主体可以首先按照预先设定的第一目标顺序从上述黑白点阵中选取目标点。第一目标顺序可根据需要进行设定。例如,可设定为从左到右、从上到下的顺序。再例如,由于图像中心相较于边缘更清晰,故可以设定为从中心到边缘的顺序等,此处不做限定。在选取目标点后,可以执行子点阵处理步骤:以目标点为起点,从目标点阵中提取目标尺寸的子点阵,对子点阵进行校验。若校验通过,可以执行如下步骤104。若校验未通过,则可以按照上述第一目标顺序,选取黑白点阵中的下一点作为目标点,继续执行上述子点阵处理步骤。由此,可以遍历子点阵,避免选取子点阵遗漏或重复。若遍历到的子点阵均未检验通过,可以显示提示信息,例如“请重新靠近电子设备以进行可见光通信”等,此处不作具体限定。
46.步骤104,基于校验通过的子点阵,确定编码图案对应的编码信息。
47.在本实施例中,上述执行主体可以基于校验通过的子点阵对应的二值矩阵,提取二进制数据流。之后,可将该二进制数据流转换为字符串,从而得到编码图案对应的编码信息。
48.在一些可选的实现方式中,在确定上述编码图案对应的编码信息之后,上述执行主体还可以基于上述编码信息,与第二电子设备进行通信。其中,与第二电子设备进行通信可以包括以下至少一项:传输文件(例如,图像、视频、文本、名片、密文、账号、密码等)、建立连接(例如,蓝牙连接,socket连接)、加密认证、字符串认证等。由此,无需用户执行复杂的操作,即可使第一电子设备与第二电子设备建立通信,提高了通信连接的便捷性。
49.本技术的上述实施例提供的方法,可通过设置于第一电子设备的图像采集单元对第二电子设备的显示屏的目标区域进行图像采集,获取到上述目标区域中所显示的呈周期性排布的编码图案的待测图像,以实现可见光通信;第一电子设备在获取到待测图像后,可检测其中的黑点和白点以得到黑白点阵,并从黑白点阵中选取目标尺寸的子点阵以进行校验,进而在校验通过的情况下基于子点阵识别出编码图案对应的编码信息。由于编码图案呈周期性排布,因此无需使采集区域和目标区域精确对准,提高了对编码图案识别的成功率;进一步地,由于编码图案呈周期性排布,因此仅需对黑白点阵中的局部的子点检进行校验,无需对全局进行校验,从而提高了编码识别效率。
50.在一些可选的实施例中,参见图4,上述步骤102(即检测待测图像中的黑点和白点,得到黑白点阵的步骤)具体可按照如下步骤401至步骤403执行:
51.步骤401,对待测图像进行预处理,得到用于检测白点的第一预处理图像和用于检测黑点的第二预处理图像。此处,预处理可以包括但不限于以下至少一项:高斯模糊处理、图像相减处理、腐蚀处理等。
52.在一些可选的实现方式中,具体过程包括:
53.子步骤4011,分别采用第一模糊半径和第二模糊半径对待测图像进行高斯模糊处理,得到第一模糊图像和第二模糊图像。其中,高斯模糊也称为高斯平滑,可用于减少图像噪声以及降低细节层次。对于图像而言,高斯模糊的处理过程可视为使用低通滤波器进行滤波处理的过程。此处,第一模糊半径可以小于上述第二模糊。采用较小的第一模糊半径处理后所得到的第一模糊图像可被去除部分局部噪声。采用较大的第二模糊半径处理后所得到的第二模糊图像可作为背景图像,以用于去除图像中的暗角。
54.子步骤4012,分别以第一模糊图像(可记为blured)和第二模糊图像(可记为
background)作为被减图像,对第一模糊图像和第二模糊图像进行图像相减处理,得到第一差值图像(可记为blured-background)和第二差值图像(可记为background-blured)。其中,图像相减处理可用于将两图像按像素点进行像素值相减,所得到的差值图像中各像素点的像素值为两图像中对应像素点的像素差值。需要说明的是,在进行图像相减处理后,由于差值图像中存在负值,故可进行归一化处理。例如,可以将差值图像中的各像素点的像素值与一常数相加,使各像素点的像素值范围位于目标区间(例如,[0,255])。
[0055]
子步骤4013,分别对第一差值图像和第二差值图像进行图像腐蚀处理,得到用于检测白点的第一预处理图像(对第一差值图像进行腐蚀处理后得到)和用于检测黑点的第二预处理图像(对第二差值图像进行腐蚀处理后得到)。其中,腐蚀处理可用于缩小图像中的白点的范围,便于后续检测。参见图5所示的预处理前后的效果对比图。待测图像如标号501所示。对其进行预处理后,可得到如标号502所示的第一预处理图像以及如标号503所示的第二预处理图像。
[0056]
步骤402,基于第一预处理图像,检测待测图像中的白点,并基于第二预处理图像,检测待测图像中的黑点。此处,可以分别遍历第一预处理图像和第二预处理图像,以遍历到的像素点为中心,在局部区域内选取像素值最大的像素点。而后,将该最大的像素值与阈值的进行数值比较,以基于数值比较结果确定是否作为白点或黑点。
[0057]
在一些可选的实现方式中,可采用滑动窗口方式进行局部范围内最大像素值的检测。具体地,可首先采用滑动窗口对第一预处理图像进行滑动检测,若滑动窗口中的最大像素值大于目标阈值,则可将最大像素值对应的像素点确定为白点。而后,可采用相同滑动窗口对第二预处理图像进行滑动检测,若滑动窗口中的最大像素值大于上述目标阈值,则可将最大像素值对应的像素点确定为黑点。其中,滑动窗口的大小可设定为小于黑白点间距的数值,以避免在同一个窗口中选取到两个像素值最大的点。可以理解的是,由于第二预处理图像基于第二差值图像得到,第二差值图像可视为对第一差值图像进行了像素值反转,故采用滑动窗口对第二预处理图像进行局部范围内最大像素值的检测时,检测出的点在待测图像中的对应点即为黑点。
[0058]
进一步地,由于白点的特征较强,黑点的特征较弱,因此,黑点相较于白点更易被误判。鉴于此,在一些可选的实现方式中,上述执行主体在确定出黑点和白点后,还可以根据白点的坐标对黑点进行过滤,以滤除位置关系不满足条件的黑点,实现误判点的去除。例如,由于黑白点之间存在一定间距,若某一黑点与白点间距过小,则通常为误判点。由此,可以滤除与白点间距小于一定阈值的黑点,以去除该误判点。作为示例,参见图6所示的黑点过滤前后的黑白点阵对比图,通过对黑点进行过滤,可滤除误判点,从而使得黑白点阵更为准确。
[0059]
步骤403,基于白点的坐标和黑点的坐标,生成黑白点阵。
[0060]
在一些可选的实现方式中,可按照如下子步骤4031至4034执行:
[0061]
子步骤4031,将白点的坐标、黑点的坐标和各坐标对应的点的类型标识存储至目标数组。上述类型标识可以用于指示点的类型。点的类型可包括白点和黑点。例如,可以用0表示黑点,用1表示白点。再例如,类型标识可以是像素值,可以用0表示黑点,用255表示白点。
[0062]
子步骤4032,基于待测图像的中点的坐标和目标数组,确定黑白点阵的中心点。此
处,可以基于待测图像的中点的坐标,从目标数组中选取第一坐标,将第一坐标对应的点作为黑白点阵的中心点。此处,第一坐标可以是目标数组中距离待测图像的中点最近的坐标。在确定黑白点阵的中心点后,上述执行主体可对该中心点进行标记,例如,可标记为[0,0]。
[0063]
子步骤4033,基于中心点和目标数组,确定黑白点阵的中心列以及中心列中各点的同行点。具体地,上述执行主体可以基于上述中心点的第一坐标,从目标数组中选取横坐标接近的第二坐标,基于中心点和第二坐标对应的点,生成黑白点阵的中心列。作为示例,若从目标数组中的某一坐标中的横坐标与第一坐标中的横坐标的差值位于预设误差范围内,则可以将该坐标作为第二坐标,从而基于所筛选出的各个第二坐标对应的点,生成黑白点阵的中心列。而后,对于中心列中的每一个点,基于该点的坐标,从目标数组中选取纵坐标接近的第三坐标,将第三坐标对应的点作为与该点同行的同行点。作为示例,对于中心列中的每一个点,若目标数组中的某一坐标中的纵坐标与该点的纵坐标的差值位于预设误差范围内,则可以将该坐标作为第三坐标,将该坐标对应的点作为与该点同行的同行点。
[0064]
实践中,上述执行主体可以首先针对中心点,从目标数组中查询满足一定条件(例如,与中心点的距离或与中心点的纵坐标的差值位于预设的第一范围内,且与中心点的横坐标的差值位于预设的第二范围内)的临近点,并标记为[1,0]和[-1,0];而后,针对查询到的每个临近点,从目标数组中的其余坐标中,继续查询满足条件(例如,与该临近点的距离或与中心点的纵坐标的差值位于预设的第一范围内,且与该临近点的横坐标的差值位于预设的第二范围内)的临近点,得到[2,0]和[-2,0];以此类推,直至不存在新的临近点,从而得到黑白点阵的中心列(可表示为[
±
n,0],n为非负整数)。此处,上述第一范围可用于查找临近点,上述第二范围可用于使所查找到的各临近点与中心点的横坐标接近,以使得各临近点与中心点位于相同列。黑白点阵的中心列可进行可视化展示,可视化展示结果可参见图7中的标号701所示。
[0065]
接着,对于中心列中的每一个点,上述执行主体可以首先针对该点,从目标数组中查询满足一定条件(例如,与该点的距离或与该点的横坐标的差值位于预设的第一范围内,且与该点的纵坐标的差值位于预设的第二范围内)的临近点,并进行标记;而后,针对查询到的每个临近点,从目标数组中的其余坐标中,继续查询满足条件(例如,与该临近点的距离或与该点的横坐标的差值位于预设的第一范围内,且与该临近点的纵坐标的差值位于预设的第二范围内)的临近点,并进行标记;以此类推,直至不存在新的临近点。其中,上述第一范围可用于查找临近点,上述第二范围可用于使所查找到的各临近点与中心列中的点的纵坐标接近,以使得中心列中的点与依次查找到的临近点位于相同行。上述执行主体可将针对该点查询到的各个临近点作为与该点同行的同行点。在针对中心列中的每一个点执行上述操作后,可得到中心列中各点的同行点(可表示为[
±
n,
±
m],m、n均为非负整数)。
[0066]
子步骤4034,基于中心列和上述中心列中各点的同行点,生成黑白点阵。此处,上述执行主体可基于中心列中各点以及与中心列中各点同行的同行点的标记,确定行列关系,从而生成黑白点阵。
[0067]
需要说明的时,上述执行主体还可以根据需要采用其他方式生成黑白点阵,不限于采用上述方式。例如,在子步骤4033中,可基于中心点和目标数组,确定黑白点阵的中心行以及中心行中各点的同列点;在子步骤4034中,可基于中心行和中心行中各点的同列点,生成黑白点阵。再例如,可首先确定左上顶点,而后确定首列点,最后确定与各首列点同行
的同行点。此处不再一一赘述。
[0068]
进一步地,为提高黑白点阵的准确性,在一些可选的实现方式中,上述执行主体还可以在生成黑白点阵的过程中进行补点操作。具体地,可以首先基于中心列和中心列中各点的同行点,或者,基于中心行和中心行中各点的同列点,生成初始点阵,并确定初始点阵中的空缺点。其中,初始点阵参见图7中的标号702所示。空缺点可以基于已有点与其邻近点的位置关系复制得到。在确定初始点阵中的空缺点后,可以检测目标数组中是否存在与空缺点的坐标满足目标补点条件的坐标(可记为第四坐标)。目标补点条件可以包括:对应的点为该空缺点的邻近点。其中,临近点可通过与该空缺点的距离确定。例如,若某坐标对应的点与该空缺点之间的距离小于预设值,则该坐标对应的点即可视为该空缺点的临近点。在目标数组中存在与空缺点的坐标满足目标补点条件的第四坐标时,意味着初始点阵中存在该空缺点的临近点,可认为该空缺点有效,并将其添加至黑白点阵中。由于白点信号较强而黑点信号较弱,故黑点易被漏检。鉴于此,若目标数组中存在与空缺点的坐标满足目标补点条件的坐标,则可将该空缺点设置为黑点。对初始点阵补点后所得到的点阵即为黑白点阵。补点后所得到的黑白点阵可参见图7中的标号703所示。通过补点,可提高黑白点阵的准确性,进而提高编码识别的准确性。
[0069]
在一些可选的实施例中,上述步骤103中的子点阵校验过程可以按照如下步骤:将子点阵对应的二值矩阵作为初始矩阵,确定初始矩阵是否符合编码图案的编码规则。若上述初始矩阵符合上述编码规则,则确定校验通过,并将初始矩阵对应的子点阵作为校验通过的子点阵。若上述初始矩阵不符合上述编码规则,则遍历上述初始矩阵的偏移矩阵,在遍历到的任一偏移矩阵符合上述编码规则时,确定校验通过,并将符合编码规则的偏移矩阵对应的子点阵作为校验通过的子点阵。其中,上述偏移矩阵通过对上述初始矩阵进行行偏移和/或列偏移得到。
[0070]
具体地,参见图8,具体可以按照如下步骤801至810执行:
[0071]
步骤801,将子点阵对应的二值矩阵作为初始矩阵。作为示例,参见图9所示的子点阵转换为初始矩阵的示意图,初始矩阵可以是由0和1构成的矩阵,0可表示黑点,1可以表示白点。
[0072]
步骤802,确定初始矩阵是否符合编码图案的编码规则。
[0073]
步骤803,若初始矩阵符合编码规则,则确定校验通过。
[0074]
步骤804,若初始矩阵不符合编码规则,将初始矩阵作为待处理矩阵,执行偏移处理步骤(包括步骤805至809)。
[0075]
步骤805,按照偏移规则,对待处理矩阵进行行偏移或列偏移,得到偏移矩阵。此处,偏移规则可以规定每次偏移的方式。例如,采用行偏移方式或者列偏移方式、偏移的行数或者列数、偏移方向等。其中,行偏移、列偏移可对待处理矩阵进行整体性偏移。
[0076]
在一些示例中,每进行一次行偏移,可以使待处理矩阵的非尾行下移一行,并使尾行上移至首行。例如,待处理矩阵共有4行,分别以a、b、c、d表示,在进行第一次行偏移后,行序为d、a、b、c。在进行第二次行偏移后,行序为c、d、a、b。在进行第三次行偏移后,行序为b、c、d、a。具体地,参见图10所示的待处理矩阵行偏移前后的对比图。待处理矩阵如标号1001所示。进行一次行偏移后,所得到的偏移矩阵如标号1002所示。
[0077]
同理,每进行一次列偏移,可以使待处理矩阵的非尾列右移一列,并使尾列左移至
首列。例如,待处理矩阵共有4列,分别以a、b、c、d表示,在进行第一次列偏移后,列序为d、a、b、c。在进行第二次列偏移后,列序为c、d、a、b。在进行第三次列偏移后,列序为b、c、d、a。具体地,参见图11所示的待处理矩阵列偏移前后的对比图。待处理矩阵如标号1101所示。进行一次列偏移后,所得到的偏移矩阵如标号1102所示。
[0078]
需要说明的是,上述执行主体还可以根据需要设定其他偏移方式。例如,每进行一次行偏移,也可以使待处理矩阵的非首行均上移一行,并使首行下移至尾行。每进行一次列偏移,可以使待处理矩阵的非首列左移一列,并使首列右移至尾列。此处不再赘述。
[0079]
步骤806,确定偏移矩阵是否符合编码规则。此步骤可采用上述子步骤802的方式判定,此处不再赘述。
[0080]
步骤807,若偏移矩阵符合编码规则,则确定校验通过。作为示例,图12示出了子点阵对应的初始矩阵与满足编码规则的偏移矩阵的对比图。如图12所示,满足编码规则的偏移矩阵通过对初始矩阵进行了6次行偏移、3次列偏移后得到。
[0081]
步骤808,若偏移矩阵不符合编码规则,则确定偏移矩阵是否遍历完成。
[0082]
步骤809,若偏移矩阵未遍历完成,则将偏移矩阵作为待处理矩阵,继续执行偏移处理步骤。
[0083]
步骤810,若偏移矩阵遍历完成,则确定校验未通过。
[0084]
由于黑白点阵呈周期性变化,因此所选取的子点阵对应的二维数组可能因为存在整体性偏移而不符合编码规则。本可选的实施例在子点阵对应的二维矩阵不符合编码规则时,通过遍历其偏移矩阵并进行编码规则符合性的检测,在任一偏移矩阵符合编码规则时确定校验通过,可以降低子矩阵的提取次数,从而降低了对全图可识别的黑白点数量要求,同时提高了校验效率。
[0085]
在一些可选的实施例中,编码图案的编码规则可以包括:首行满足奇校验、其余行满足偶校验、尾列满足奇校验、除首列和尾列之外的其余列满足偶校验。基于上述编码规则,上述执行主体可以通过如下步骤确定初始矩阵或上述偏移矩阵是否符合编码图案的编码规则:对目标矩阵(包括上述初始矩阵或偏移矩阵)的首行和尾列进行奇校验,对目标矩阵的非首行和除首列和尾列之外的其余列进行偶校验。若奇校验和偶校验均通过,则确定目标矩阵符合编码规则;若奇校验或者偶校验未通过,则确定目标矩阵不符合编码规则。此处,若确定初始矩阵是否符合编码规则,则目标矩阵为该初始矩阵。若确定偏移矩阵是否符合编码规则,则目标矩阵为偏移矩阵。
[0086]
实践中,奇校验和偶校验是数据传送时采用的检测数据错误的一种方式,根据被传输的数据中“1”的个数是奇数或偶数来进行校验。在进行编码时,通常需要设置一个奇偶校验位,用以使“1”的个数为奇数或偶数。例如,若采用奇校验,当实际数据中“1”的个数为偶数的时候,则将校验位设置为“1”,以满足奇校验要求。当接收端收到一组数据时,校验“1”的个数是否为奇数。若为奇数,则可以确定该数据传送正确;反之,则确定传送不正确。
[0087]
如此设置编码规则,一方面,需要存在至少4个误识别的点且这4个误识别的点需构成4
×
4矩形,才会导致校验误通过。由于这种误识别情况出现概率较低,因此可降低误识别概率,提高校验的准确性。另一方面,由于仅有一行一列满足奇校验,因此可以根据校验结果唯一确定矩阵的方向,即使黑白点阵发生旋转,仍可以唯一确定其编码排列,具备抗旋转的性能。
[0088]
需要说明的是,编码图案的编码规则还可以根据需要进行其他设定。例如,可以设定为:首行满足偶校验、其余行满足奇校验、尾列满足偶校验、除首列和尾列之外的其余列满足奇校验。再例如,可以设定为:首两行满足奇校验、其余行满足偶校验、尾列满足奇校验、除首列和尾列之外的其余列满足偶校验等。编码图案的编码规则可设定为任一能够唯一确定矩阵的方向的校验方式,不限于上述列举。
[0089]
进一步地,在一些可选的实施例中,编码图案的编码规则除上述列举的内容以外,还可以包括但不限于:首行和首列为校验位、非首行且非首列为数据位,数据位中的值由二进制数据流按照第二目标顺序写入。例如,按照从左到右,从上到下的次序逐行写入。作为示例,图13示出了符合编码规则的子点阵的示意图。其中,黑框内为符合编码规则的子点阵,其尺寸可以是12
×
12。位于白框内的点对应数据位,尺寸为11
×
11,位于白框外且位于黑框内的点对应校验位。在转换为初始矩阵后,白点对应的值为1,黑点对应的值为0。在子点阵首行中,白点共计3个,因此首行满足奇校验。在子点阵第二行中,白点共计4个,因此第二行满足偶校验。在子点阵第三行中,数据位中的白点共计5个,校验位中设置为白点,使得该行白点共计6个,满足偶检验。子点阵的其他行、各列均满足上述编码规则,此处不再一一赘述。
[0090]
在此编码规则的基础上,上述步骤104可按照如下步骤执行:首先,去除校验通过的子点阵对应的二值矩阵的首行和首列,得到数据位矩阵。之后,按照第二目标顺序,提取数据位矩阵中的值,得到二进制数据流。最后,基于所得到的二进制数据流,确定编码图案对应的编码信息。编码信息可以包括但不限于字符串形式的信息。例如,图3中的编码图案对应的编码信息为字符串“ali4977153”。如此设置编码规则,可方便快捷且准确地识别出编码信息。
[0091]
进一步参考图14,作为对上述各图所示方法的实现,本技术提供了一种可见光通信的编码识别装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。例如,可应用于第一电子设备,第一电子设备设置有图像采集单元。
[0092]
如图14所示,本实施例的可见光通信的编码识别装置1400包括:获取单元1401,用于获取待测图像,上述待测图像为由上述图像采集单元针对第二电子设备的显示屏的目标区域采集的图像,上述目标区域显示有周期性排布的编码图案;检测单元1402,用于检测上述待测图像中的黑点和白点,得到黑白点阵;校验单元1403,用于从上述黑白点阵中选取目标尺寸的子点阵,对上述子点阵进行校验;确定单元1404,用于基于校验通过的子点阵,确定上述编码图案对应的编码信息。
[0093]
在本实施例的一些可选的实现方式中,上述检测单元1402,进一步用于对上述待测图像进行预处理,得到用于检测白点的第一预处理图像和用于检测黑点的第二预处理图像;基于上述第一预处理图像,检测上述待测图像中的白点,并基于上述第二预处理图像,检测上述待测图像中的黑点;基于上述白点的坐标和上述黑点的坐标,生成黑白点阵。
[0094]
在本实施例的一些可选的实现方式中,上述检测单元1402,进一步用于分别采用第一模糊半径和第二模糊半径对上述待测图像进行高斯模糊处理,得到第一模糊图像和第二模糊图像,上述第一模糊半径小于上述第二模糊半径;分别以上述第一模糊图像和上述第二模糊图像作为被减图像,对上述第一模糊图像和上述第二模糊图像进行图像相减处
理,得到第一差值图像和第二差值图像;分别对上述第一差值图像和上述第二差值图像进行图像腐蚀处理,得到用于检测白点的第一预处理图像和用于检测黑点的第二预处理图像。
[0095]
在本实施例的一些可选的实现方式中,上述检测单元1402,进一步用于采用滑动窗口对上述第一预处理图像进行滑动检测,若上述滑动窗口中的最大像素值大于目标阈值,则将上述最大像素值对应的像素点确定为白点;采用上述滑动窗口对上述第二预处理图像进行滑动检测,若上述滑动窗口中的最大像素值大于上述目标阈值,则将上述最大像素值对应的像素点确定为黑点。
[0096]
在本实施例的一些可选的实现方式中,上述检测单元1402,进一步用于基于上述白点的坐标,对上述黑点进行过滤。
[0097]
在本实施例的一些可选的实现方式中,上述检测单元1402,进一步用于将上述白点的坐标、上述黑点的坐标和各坐标对应的点的类型标识存储至目标数组,上述类型标识用于指示黑点或白点;基于上述待测图像的中点的坐标和上述目标数组,确定黑白点阵的中心点;基于上述中心点和上述目标数组,确定上述黑白点阵的中心列以及上述中心列中各点的同行点,或者,确定上述黑白点阵的中心行以及上述中心行中各点的同列点;并基于上述中心列和上述中心列中各点的同行点,或者,基于上述中心行和上述中心行中各点的同列点,生成黑白点阵。
[0098]
在本实施例的一些可选的实现方式中,上述检测单元1402,进一步用于基于上述中心列和上述中心列中各点的同行点,或者,基于上述中心行和上述中心行中各点的同列点,生成初始点阵,并确定上述初始点阵中的空缺点;若上述目标数组中存在与上述空缺点的坐标满足目标补点条件的坐标,则将上述空缺点设置为黑点,得到黑白点阵。
[0099]
在本实施例的一些可选的实现方式中,上述校验单元1403,进一步用于按照第一目标顺序,选取上述黑白点阵中的目标点;执行如下子点阵处理步骤:以上述目标点为起点,从上述目标点阵中提取目标尺寸的子点阵;对上述子点阵进行校验;若校验未通过,则按照上述第一目标顺序,选取上述黑白点阵中的下一点作为目标点,并继续执行上述子点阵处理步骤。
[0100]
在本实施例的一些可选的实现方式中,上述校验单元1403,进一步用于将上述子点阵对应的二值矩阵作为初始矩阵,确定上述初始矩阵是否符合上述编码图案的编码规则;若上述初始矩阵符合上述编码规则,则确定校验通过,并将上述初始矩阵对应的子点阵作为校验通过的子点阵;若上述初始矩阵不符合上述编码规则,则遍历上述初始矩阵的偏移矩阵,在遍历到的任一偏移矩阵符合上述编码规则时,确定校验通过,并将符合上述编码规则的偏移矩阵对应的子点阵作为校验通过的子点阵,上述偏移矩阵通过对上述初始矩阵进行行偏移和/或列偏移得到。
[0101]
在本实施例的一些可选的实现方式中,上述编码规则包括:首行满足奇校验、其余行满足偶校验、尾列满足奇校验、除首列和尾列之外的其余列满足偶校验;上述校验单元1403,进一步用于通过如下步骤确定上述初始矩阵或上述偏移矩阵是否符合上述编码规则:对目标矩阵的首行和尾列进行奇校验,对上述目标矩阵的非首行和除首列和尾列之外的其余列进行偶校验,上述目标矩阵为上述初始矩阵或上述偏移矩阵;若上述奇校验和上述偶校验通过,则确定上述目标矩阵符合编码规则;若上述奇校验或者上述偶校验未通过,
则确定上述目标矩阵不符合编码规则。
[0102]
在本实施例的一些可选的实现方式中,上述编码规则还包括:首行和首列为校验位、非首行且非首列为数据位,上述数据位中的值由二进制数据流按照第二目标顺序写入;上述确定单元1404,进一步用于去除校验通过的子点阵对应的二值矩阵的首行和首列,得到数据位矩阵;按照上述第二目标顺序,提取上述数据位矩阵中的值,得到二进制数据流;基于所得到的二进制数据流,确定上述编码图案对应的编码信息。
[0103]
在本实施例的一些可选的实现方式中,上述装置还包括通信单元,用于基于上述编码信息,与上述第二电子设备进行通信;上述与上述第二电子设备进行通信包括以下至少一项:传输文件、建立连接、加密认证、字符串认证。
[0104]
在本实施例的一些可选的实现方式中,上述图像采集单元包括以下至少一项:生物信息识别模组、摄像头;上述生物信息识别模组设置于上述第一电子设备的显示屏的采集区域下方,上述生物信息识别模组包括指纹模组;当上述图像采集单元为上述生物信息识别模组时,上述待测图像为在第二电子设备的显示屏的目标区域靠近上述采集区域时,由上述生物信息识别模组采集的屏下图像。
[0105]
本技术的上述实施例提供的装置,可通过设置于第一电子设备的图像采集单元对第二电子设备的显示屏的目标区域进行图像采集,获取到上述目标区域中所显示的呈周期性排布的编码图案的待测图像,以实现可见光通信;第一电子设备在获取到待测图像后,可检测其中的黑点和白点以得到黑白点阵,并从黑白点阵中选取目标尺寸的子点阵以进行校验,进而在校验通过的情况下基于子点阵识别出编码图案对应的编码信息。由于编码图案呈周期性排布,因此无需使采集区域和目标区域精确对准,提高了对编码图案识别的成功率;进一步地,由于编码图案呈周期性排布,因此仅需对黑白点阵中的局部的子点检进行校验,无需对全局进行校验,从而提高了编码识别效率。
[0106]
本技术实施例还提供了一种电子设备,包括一个或多个处理器,存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述可见光通信的编码识别方法。
[0107]
下面参考图15,其示出了用于实现本技术的一些实施例的电子设备的结构示意图。图15示出的电子设备仅仅是一个示例,不应对本技术的实施例的功能和使用范围带来任何限制。
[0108]
如图15所示,电子设备1500可以包括处理装置(例如中央处理器、图形处理器等)1501,其可以根据存储在只读存储器(rom)1502中的程序或者从存储装置1508加载到随机访问存储器(ram)1503中的程序而执行各种适当的动作和处理。在ram 1503中,还存储有电子设备1500操作所需的各种程序和数据。处理装置1501、rom 1502以及ram1503通过总线1504彼此相连。输入/输出(i/o)接口1505也连接至总线1504。
[0109]
通常,以下装置可以连接至i/o接口1505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置1507;包括例如磁盘、硬盘等的存储装置1508;以及通信装置1509。通信装置1509可以允许电子设备1500与其他设备进行无线或有线通信以交换数据。虽然图15示出了具有各种装置的电子设备1500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图15中示出的每个方框可以代表一个装置,
也可以根据需要代表多个装置。
[0110]
本技术实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述可见光通信的编码识别方法。
[0111]
特别地,根据本技术的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置1509从网络上被下载和安装,或者从存储装置1508被安装,或者从rom 1502被安装。在该计算机程序被处理装置1501执行时,执行本技术的一些实施例的方法中限定的上述功能。
[0112]
本技术实施例还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现上述可见光通信的编码识别方法。
[0113]
需要说明的是,本技术的一些实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0114]
在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transferprotocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
[0115]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取待测图像,待测图像为在第二电子设备的显示屏的目标区域靠近图像采集单元时,由图像采集单元采集的图像,目标区域显示有周期性排布的编码图案;检测待测图像中的黑点和白点,得到黑白点阵;从黑白点阵中选取目标尺寸的子点阵,对子点阵进行校验;基于校验通过的子点阵,确定编码图案对应的编码信息。
[0116]
可以以一种或多种程序设计语言或其组合来编写用于执行本技术的一些实施例
的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++;还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接),上述网络包括局域网(lan)或广域网(wan)。
[0117]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0118]
描述于本技术的一些实施例中的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一确定单元、第二确定单元、选取单元和第三确定单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
[0119]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
[0120]
以上描述仅为本技术的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1