一种扫码引擎扫描方法、系统、扫码设备及存储介质与流程

文档序号:31876384发布日期:2022-10-21 21:49阅读:28来源:国知局
一种扫码引擎扫描方法、系统、扫码设备及存储介质与流程

1.本发明涉及扫码技术领域,尤指一种扫码引擎扫描方法、系统、扫码设备及存储介质。


背景技术:

2.市面上大多扫码引擎的补光灯控制均与cam模组的曝光信号相关联,补光时长及亮度与曝光信号长短有关。一般来讲,cam模组拍照曝光时,会输出其曝光指示信号led_out,扫码引擎会利用cam模组的led_out信号来控制其补光的时长或亮度。在正常扫码时,补光灯的照明很好的辅助了扫码效果和效率,但是遇到一些条码背景反射率较高的场景时,比如手机屏幕、金属、胶带等条码背景,会因为扫码引擎拍照取图时拍到补光灯的反射光斑覆盖住条码而造成扫码失败。
3.目前比较常用的解决方案是设定一种特殊的扫描模式,在用户扫描手机屏幕这类高反射率背景上的条码时,主动关闭补光灯进行扫码应用。但该方式不够智能,容易造成扫码失败,用户体验不佳。


技术实现要素:

4.本发明的目的是提供一种扫码引擎扫描方法、系统、扫码设备及存储介质,解决现有技术中扫描手机屏幕等高反射率背景上的条码时,不够智能,容易造成扫码失败的问题。
5.本发明提供的技术方案如下:
6.本发明提供一种扫码引擎扫描方法,包括步骤:
7.接收cam模组发送的曝光信号;
8.向补光灯驱动模块输出与所述曝光信号相比时序滞后的strobe信号,使所述补光灯驱动模块根据所述strobe信号控制补光灯亮灭。
9.现有技术中,一般是直接通过cam模组的曝光信号led_out输出作为补光灯驱动模块的strobe信号控制补光灯亮灭,此时补光灯的亮灭与cam输出的led_out完全同步。但是该方式在遇到一些条码背景反射率较高的场景时,比如手机屏幕、金属、胶带等条码背景,会因为扫码引擎拍照取图时拍到补光灯的反射光斑覆盖住条码而造成扫码失败。
10.本方案通过设置mcu接收cam模组发送的曝光信号,并根据曝光信号的时序向补光灯驱动模块输出与曝光信号相比时序滞后的strobe信号,使得补光灯驱动模块能够根据优化后的strobe信号控制补光灯亮灭,实现补光照明的亮灭时序可根据实际需求自由调整,避免扫码引擎拍照取图时拍到补光灯的反射光斑覆盖住条码而造成扫码失败。
11.在一些实施方式中,所述的向补光灯驱动模块输出与所述曝光信号相比时序滞后的strobe信号,具体包括:
12.延迟预设时长后,向所述补光灯驱动模块输出与所述曝光信号相比时序滞后的strobe信号。
13.所述的延迟预设时长后,向所述补光灯驱动模块输出与所述曝光信号相比时序滞
后的strobe信号,具体包括:
14.预设调整上升沿;
15.在到达所述调整上升沿之前,向所述补光灯驱动模块输出与所述曝光信号时序相同的所述strobe信号;
16.在到达所述调整上升沿时,向所述补光灯驱动模块输出与所述曝光信号相比时序滞后预设时长的所述strobe信号。
17.所述预设调整上升沿,具体包括:
18.获取所述曝光信号的帧图像;
19.根据所述曝光信号的帧图像,获取与所述曝光信号的帧图像对应的所述strobe信号;
20.预设所述strobe信号的第n个脉冲为调整脉冲,所述调整脉冲的上升沿为所述调整上升沿,所述调整上升沿相比于所述曝光信号的对应脉冲的上升沿时序滞后预设时长。
21.一般来讲,根据扫码头里的图像传感器的自身性能以及软件的设置,可以设置不同的帧率,帧率越高取图和传输越快,对系统要求越高;而帧率低就可能意味着同样条件下取图和传输变慢,扫码速度也就变慢。以帧率为60hz来举例,意味着1s钟内会有60个曝光周期和60次取图,每一次曝光就意味着一个led_out信号拉高,一个周期内led_out拉高的持续时间就是传感器曝光持续的时间。而完成一次扫码会有多少个脉冲则不一定,因为扫码成功与否与抓取图片质量以及解码算法、运算速度等条件有关,理想状态下扫码时可能第一帧就直接抓取图片ok,然后考虑解码等处理时间,三四帧左右的话解码结果就出来了,这时候一次扫码可能就三四个脉冲。而如果条码较难识别或其他因素导致扫码解码时间延长,则这个脉冲数量就会大大增多(比如在较高反射率的表面条码,因为扫码头自身补光光斑的反射光线导致取图无法准确识别解码,就会需要反复取图,反复解码);之所以不是从第一帧就开始调整是为了兼顾正常的扫码,因为本方案的调整实际上是迟滞了曝光信号,也就是延迟了补光灯的打开,使得取图时没有补光光斑,而这种调整是会影响大多正常背景条码的取图的(因为没有补光而取图会比较暗,影响解码速度)。所以们从后面的某一帧开始进行调整,这样可以确保前面几帧的扫码取图是有补光照明的,而一般情况下,通过前面几帧的取图基本可以正常解码成功,而如果遇到条码非反射导致的其他异常问题无法解码的话,一般即使再增加扫码时间可能也不一定能解出,而如果是因为反射导致的话,在调整mcu输出给补光灯驱动的strobe信号,通过迟滞补光灯的输出避免取图传感器抓取到补光光斑的反射光线,则可以很好的避免反射导致的取图无法解码问题。具体的时序滞后预设时长可以根据经验、设备性能等决定。
22.具体实施时,先根据经验、设备性能等预设调整上升沿,在到达调整上升沿之前,向补光灯驱动模块输出与曝光信号时序相同的strobe信号,即不经调整的strobe信号;在到达调整上升沿时,向补光灯驱动模块输出与曝光信号相比时序滞后预设时长的strobe信号,实现补光灯的延迟曝光。
23.在一些实施方式中,所述strobe信号各个脉冲的下降沿的时序与所述曝光信号各个脉冲的下降沿的时序均相同。
24.具体的,为了保证扫码效率以及补光亮度变化不至于太明显,调整后的strobe信号与没有调整的strobe信号应该保证各个脉冲的下降沿的时序相同,从而整体变化不大,
只是某一时刻补光灯延迟曝光。
25.在一些实施方式中,所述调整脉冲沿的个数为多个;
26.在相邻的所述调整脉冲之间,向所述补光灯驱动模块输出与所述曝光信号时序相同的所述strobe信号。
27.为了避免一次延迟曝光扫描不成功,可以设置多个调整脉冲和调整上升沿,而相邻的调整脉冲之间,mcu向补光灯驱动模块输出正常的、不经调整的strobe信号。
28.另外,本发明还提供一种扫码引擎扫描系统,包括:
29.接收模块,用于接收cam模组发送的曝光信号;
30.输出模块,用于向补光灯驱动模块输出与所述曝光信号相比时序滞后的strobe信号,使所述补光灯驱动模块根据所述strobe信号控制补光灯亮灭。
31.在一些实施方式中,所述输出模块包括:
32.预设单元,用于获取所述曝光信号的帧图像,根据所述曝光信号的帧图像,获取与所述曝光信号的帧图像对应的所述strobe信号,并预设所述strobe信号的第n个脉冲为调整脉冲,所述调整脉冲的上升沿为所述调整上升沿,所述调整上升沿相比于所述曝光信号的对应脉冲的上升沿时序滞后预设时长;
33.第一输出单元,用于在到达所述调整上升沿之前,向所述补光灯驱动模块输出与所述曝光信号时序相同的所述strobe信号;
34.第二输出单元,用于在到达所述调整上升沿时,向所述补光灯驱动模块输出与所述曝光信号相比时序滞后预设时长的所述strobe信号;
35.所述strobe信号各个脉冲的下降沿的时序与所述曝光信号各个脉冲的下降沿的时序均相同;
36.所述调整脉冲的个数为多个;
37.所述输出模块还包括:
38.第三输出单元,用于在相邻的所述调整脉冲之间,向所述补光灯驱动模块输出与所述曝光信号时序相同的所述strobe信号。
39.另外,本发明还提供一种扫码设备,包括存储器和处理器,
40.所述存储器用于存放运行程序,
41.所述处理器用于执行所述存储器内存放的运行程序,实现上述的扫码引擎扫描方法所执行的操作。
42.另外,本发明还提供.一种存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述的扫码引擎扫描方法所执行的操作。
43.根据本发明提供的一种扫码引擎扫描方法、系统、扫码设备及存储介质,通过设置mcu接收cam模组发送的曝光信号,并根据曝光信号的时序向补光灯驱动模块输出与曝光信号相比时序滞后的strobe信号,使得补光灯驱动模块能够根据优化后的strobe信号控制补光灯亮灭,实现补光照明的亮灭时序可根据实际需求自由调整,避免扫码引擎拍照取图时拍到补光灯的反射光斑覆盖住条码而造成扫码失败。
附图说明
44.下面将以明确易懂的方式,结合附图说明优选实施方式,对本方案的上述特性、技
术特征、优点及其实现方式予以进一步说明。
45.图1是本发明实施例的整体流程示意图;
46.图2是本发明实施例的现有技术中补光灯控制逻辑示意图;
47.图3是本发明实施例的条码扫描时补光灯反射光斑示意图;
48.图4是本发明实施例的优化后补光灯控制逻辑示意图;
49.图5是本发明实施例的优化前补光灯亮灭控制时序示意图;
50.图6是本发明实施例的优化后补光灯亮灭控制时序示意图;
51.图7是本发明实施例的系统结构示意图;
52.图8是本发明扫码设备的结构示意图。
53.图中标号:1-接收模块;2-输出模块;21-预设单元;22-第一输出单元;23-第二输出单元;24-第三输出单元;100-存储器;200-处理器;300-通信接口;400-通信总线;500-输入/输出接口。
具体实施方式
54.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
55.为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
56.在一个实施例中,参考说明书附图图1,本发明提供一种扫码引擎扫描方法,包括步骤:
57.s1、接收cam模组发送的曝光信号。
58.cam模组一般采用cmos图像传感器,用于采集条码图像。
59.s2、向补光灯驱动模块输出与曝光信号相比时序滞后的strobe信号,使补光灯驱动模块根据strobe信号控制补光灯亮灭。
60.现有技术中,参考说明书附图图2,一般是直接通过cam模组的曝光信号led_out输出作为补光灯驱动模块的strobe信号控制补光灯亮灭,此时补光灯的亮灭与cam输出的led_out完全同步。参考说明书附图图3,该方式在遇到一些条码背景反射率较高的场景时,比如手机屏幕、金属、胶带等条码背景,会因为扫码引擎拍照取图时拍到补光灯的反射光斑覆盖住条码而造成扫码失败。
61.参考说明书附图图4,本方案通过设置mcu接收cam模组发送的曝光信号,并根据曝光信号的时序向补光灯驱动模块输出与曝光信号相比时序滞后的strobe信号,使得补光灯驱动模块能够根据优化后的strobe信号控制补光灯亮灭,实现补光照明的亮灭时序可根据实际需求自由调整,避免扫码引擎拍照取图时拍到补光灯的反射光斑覆盖住条码而造成扫码失败。
62.在一些实施方式中,向补光灯驱动模块输出与曝光信号相比时序滞后的strobe信
号,具体包括:
63.延迟预设时长后,向所述补光灯驱动模块输出与所述曝光信号相比时序滞后的strobe信号。具体的:
64.预设调整上升沿;在到达调整上升沿之前,向补光灯驱动模块输出与曝光信号时序相同的strobe信号;在到达调整上升沿时,向补光灯驱动模块输出与曝光信号相比时序滞后预设时长的strobe信号。
65.预设调整上升沿,具体包括:
66.获取曝光信号的帧图像;
67.根据曝光信号的帧图像,获取与曝光信号的帧图像对应的strobe信号;
68.预设strobe信号的第n个脉冲为调整脉冲,调整脉冲的上升沿为调整上升沿,调整上升沿相比于曝光信号的对应脉冲的上升沿时序滞后预设时长。
69.参考说明书附图图5和图6,一般来讲,根据扫码头里的图像传感器的自身性能以及软件的设置,可以设置不同的帧率,帧率越高取图和传输越快,对系统要求越高;而帧率低就可能意味着同样条件下取图和传输变慢,扫码速度也就变慢。以帧率为60hz来举例,意味着1s钟内会有60个曝光周期和60次取图,每一次曝光就意味着一个led_out信号拉高,一个周期内led_out拉高的持续时间就是传感器曝光持续的时间。而完成一次扫码会有多少个脉冲则不一定,因为扫码成功与否与抓取图片质量以及解码算法、运算速度等条件有关,理想状态下扫码时可能第一帧就直接抓取图片ok,然后考虑解码等处理时间,三四帧左右的话解码结果就出来了,这时候一次扫码可能就三四个脉冲。而如果条码较难识别或其他因素导致扫码解码时间延长,则这个脉冲数量就会大大增多(比如在较高反射率的表面条码,因为扫码头自身补光光斑的反射光线导致取图无法准确识别解码,就会需要反复取图,反复解码);之所以不是从第一帧就开始调整是为了兼顾正常的扫码,因为本方案的调整实际上是迟滞了曝光信号,也就是延迟了补光灯的打开,使得取图时没有补光光斑,而这种调整是会影响大多正常背景条码的取图的(因为没有补光而取图会比较暗,影响解码速度)。所以们从后面的某一帧开始进行调整,这样可以确保前面几帧的扫码取图是有补光照明的,而一般情况下,通过前面几帧的取图基本可以正常解码成功,而如果遇到条码非反射导致的其他异常问题无法解码的话,一般即使再增加扫码时间可能也不一定能解出,而如果是因为反射导致的话,在调整mcu输出给补光灯驱动的strobe信号,通过迟滞补光灯的输出避免取图传感器抓取到补光光斑的反射光线,则可以很好的避免反射导致的取图无法解码问题。具体的时序滞后预设时长可以根据经验、设备性能等决定。
70.具体实施时,先根据经验、设备性能等预设调整上升沿,在到达调整上升沿之前,向补光灯驱动模块输出与曝光信号时序相同的strobe信号,即不经调整的strobe信号;在到达调整上升沿时,向补光灯驱动模块输出与曝光信号相比时序滞后预设时长的strobe信号,实现补光灯的延迟曝光。
71.在一些实施方式中,strobe信号各个脉冲的下降沿的时序与曝光信号各个脉冲的下降沿的时序均相同。
72.具体的,参考说明书附图图6,为了保证扫码效率以及补光亮度变化不至于太明显,调整后的strobe信号与没有调整的strobe信号应该保证各个脉冲的下降沿的时序相同,从而整体变化不大,只是某一时刻补光灯延迟曝光。
73.在一些实施方式中,调整脉冲的个数为多个;在相邻的调整脉冲之间,向补光灯驱动模块输出与曝光信号时序相同的strobe信号。
74.参考说明书附图图6,为了避免一次延迟曝光扫描不成功,可以设置多个调整脉冲和调整上升沿,而相邻的调整脉冲之间,mcu向补光灯驱动模块输出正常的、不经调整的strobe信号。
75.在一个实施例中,参考说明书附图图7,本发明还提供一种扫码引擎扫描系统,包括接收模块1和输出模块2。
76.接收模块1用于接收cam模组发送的曝光信号。cam模组一般采用cmos图像传感器,用于采集条码图像。
77.输出模块2用于向补光灯驱动模块输出与曝光信号相比时序滞后的strobe信号,使补光灯驱动模块根据strobe信号控制补光灯亮灭。
78.现有技术中,参考说明书附图图2,一般是直接通过cam模组的曝光信号led_out输出作为补光灯驱动模块的strobe信号控制补光灯亮灭,此时补光灯的亮灭与cam输出的led_out完全同步。参考说明书附图图3,该方式在遇到一些条码背景反射率较高的场景时,比如手机屏幕、金属、胶带等条码背景,会因为扫码引擎拍照取图时拍到补光灯的反射光斑覆盖住条码而造成扫码失败。
79.参考说明书附图图4,本方案通过设置mcu接收cam模组发送的曝光信号,并根据曝光信号的时序向补光灯驱动模块输出与曝光信号相比时序滞后的strobe信号,使得补光灯驱动模块能够根据优化后的strobe信号控制补光灯亮灭,实现补光照明的亮灭时序可根据实际需求自由调整,避免扫码引擎拍照取图时拍到补光灯的反射光斑覆盖住条码而造成扫码失败。
80.在一些实施方式中,输出模块2包括预设单元2、第一输出单元22和第二输出单元23。
81.预设单元21用于获取曝光信号的帧图像,根据曝光信号的帧图像,获取与曝光信号的帧图像对应的strobe信号,并预设strobe信号的第n个脉冲为调整脉冲,调整脉冲的上升沿为调整上升沿,调整上升沿相比于曝光信号的对应脉冲的上升沿时序滞后预设时长。
82.第一输出单元22用于在到达调整上升沿之前,向补光灯驱动模块输出与曝光信号时序相同的strobe信号;第二输出单元23用于在到达调整上升沿时,向补光灯驱动模块输出与曝光信号相比时序滞后预设时长的strobe信号。
83.参考说明书附图图5和图6,一般来讲,根据扫码头里的图像传感器的自身性能以及软件的设置,可以设置不同的帧率,帧率越高取图和传输越快,对系统要求越高;而帧率低就可能意味着同样条件下取图和传输变慢,扫码速度也就变慢。以帧率为60hz来举例,意味着1s钟内会有60个曝光周期和60次取图,每一次曝光就意味着一个led_out信号拉高,一个周期内led_out拉高的持续时间就是传感器曝光持续的时间。而完成一次扫码会有多少个脉冲则不一定,因为扫码成功与否与抓取图片质量以及解码算法、运算速度等条件有关,理想状态下扫码时可能第一帧就直接抓取图片ok,然后考虑解码等处理时间,三四帧左右的话解码结果就出来了,这时候一次扫码可能就三四个脉冲。而如果条码较难识别或其他因素导致扫码解码时间延长,则这个脉冲数量就会大大增多(比如在较高反射率的表面条码,因为扫码头自身补光光斑的反射光线导致取图无法准确识别解码,就会需要反复取图,
反复解码);之所以不是从第一帧就开始调整是为了兼顾正常的扫码,因为本方案的调整实际上是迟滞了曝光信号,也就是延迟了补光灯的打开,使得取图时没有补光光斑,而这种调整是会影响大多正常背景条码的取图的(因为没有补光而取图会比较暗,影响解码速度)。所以们从后面的某一帧开始进行调整,这样可以确保前面几帧的扫码取图是有补光照明的,而一般情况下,通过前面几帧的取图基本可以正常解码成功,而如果遇到条码非反射导致的其他异常问题无法解码的话,一般即使再增加扫码时间可能也不一定能解出,而如果是因为反射导致的话,在调整mcu输出给补光灯驱动的strobe信号,通过迟滞补光灯的输出避免取图传感器抓取到补光光斑的反射光线,则可以很好的避免反射导致的取图无法解码问题。具体的时序滞后预设时长可以根据经验、设备性能等决定。
84.具体实施时,先根据经验、设备性能等预设调整上升沿,在到达调整上升沿之前,向补光灯驱动模块输出与曝光信号时序相同的strobe信号,即不经调整的strobe信号;在到达调整上升沿时,向补光灯驱动模块输出与曝光信号相比时序滞后预设时长的strobe信号,实现补光灯的延迟曝光。
85.在一些实施方式中,strobe信号各个脉冲的下降沿的时序与曝光信号各个脉冲的下降沿的时序均相同。
86.具体的,参考说明书附图图6,为了保证扫码效率以及补光亮度变化不至于太明显,调整后的strobe信号与没有调整的strobe信号应该保证各个脉冲的下降沿的时序相同,从而整体变化不大,只是某一时刻补光灯延迟曝光。
87.在一些实施方式中,参考说明书附图图7,调整脉冲的个数为多个。输出模块2还包括第三输出单元24,第三输出单元24用于在相邻的调整脉冲之间,向补光灯驱动模块输出与曝光信号时序相同的strobe信号。
88.参考说明书附图图6,为了避免一次延迟曝光扫描不成功,可以设置多个调整脉冲和调整上升沿,而相邻的调整脉冲之间,mcu向补光灯驱动模块输出正常的、不经调整的strobe信号。
89.在一个实施例中,参考说明书附图图8,在上述任一实施例的基础上,本发明还提供一种扫码设备,包括存储器100和处理器200,存储器100用于存放运行程序,处理器200用于执行存储器内存放的运行程序,实现上述的扫码引擎扫描方法所执行的操作。
90.具体的,扫码设备还可以包括通信接口300、通信总线400和输入/输出接口500,其中,处理器200、存储器100、输入/输出接口500和通信接口300通过通信总线400完成相互间的通信。
91.通信总线400是连接所描述的元素的电路并且在这些元素之间实现传输。例如,处理器200通过通信总线400从其它元素接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器100可以包括程序模块,例如内核(kernel),中间件(middleware),应用程序编程接口(application programming interface,api)和应用。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。输入/输出接口500转发用户通过输入输出设备(例如感应器、键盘、触摸屏)输入的命令或数据。通信接口300将该电子设备与其它网络设备、用户设备、网络进行连接。例如,通信接口300可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(wifi),蓝牙(bt),近距离无线通信技术(nfc),全球卫星定位系统(gps)和蜂窝通信
等等。有线通信可以包括以下至少一种:通用串行总线(usb),高清晰度多媒体接口(hdmi),异步传输标准接口(rs-232)等等。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。扫码设备可以通过通信接口300连接网络,扫码设备和其它网络设备通信所用的协议可以被应用、应用程序编程接口(api)、中间件、内核和通信接口至少一个支持。
92.在一个实施例中,在上述任一实施例的基础上,本发明还提供一种存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现上述的扫码引擎扫描方法所执行的操作。例如,计算机可读存储介质可以是只读内存(rom)、随机存取存储器(ram)、只读光盘(cd-rom)、磁带、软盘和光数据存储设备等。它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
93.应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1