1.本技术涉及图像采集技术领域,特别涉及一种对焦方法、装置及存储介质。
背景技术:2.当前,用于读取二维码、条形码的读码相机被广泛的应用于快递物流等工业场景中。在采用读码相机读码时,读码相机到工作平面的距离经常会发生变化,在这种情况下,通常可以采用自动对焦的方法使读码相机快速对焦到工作平面上。
3.相关技术中,在读码相机自动对焦的过程中,每当读码相机的镜头移动至一个位置,则在该位置处采集一帧图像。之后,采用图像自相关法或图像高频分量法计算采集的图像的图像清晰度评分。如此,在获取到读码相机的镜头处于多个位置时的图像清晰度评分之后,将图像清晰度评分最高的位置作为镜头的最佳位置,进而驱动镜头移动至该最佳位置以完成自动对焦。
技术实现要素:4.本技术实施例提供了一种对焦方法、装置及存储介质,在保证对焦后的读码相机的清晰度的同时,还能保证对焦后的读码成功率。所述技术方案如下:
5.一方面,提供了一种对焦方法,所述方法包括:
6.获取读码相机的镜头处于多个位置时的图像清晰度评分和读码评分,所述读码评分用于表征所述读码相机的读码成功率;
7.根据所述多个位置处的图像清晰度评分,从所述多个位置中确定所述镜头的至少一个粗略位置;
8.根据所述镜头的至少一个粗略位置和所述多个位置处的读码评分,确定所述镜头的最佳位置;
9.根据所述镜头的最佳位置进行对焦。
10.可选地,所述获取读码相机的镜头处于多个位置时的图像清晰度评分和读码评分,包括:
11.获取所述镜头在搜索起点处的图像清晰度评分和读码评分,所述搜索起点为所述镜头的行程起点或行程终点,所述镜头的行程起点为所述镜头与待读码物体的目标表面的垂直距离最大时所处的位置点,所述镜头的行程终点为所述镜头与所述目标表面的垂直距离最小时所处的位置点;
12.控制所述镜头从所述搜索起点起按照指定搜索步长沿着指定搜索方向移动,其中,当所述搜索起点为所述镜头的行程起点时,所述指定搜索方向是指从所述镜头的行程起点到行程终点的方向,当所述搜索起点为所述镜头的行程终点时,所述指定搜索方向是指从所述镜头的行程终点到行程起点的方向;
13.每当所述镜头移动所述指定搜索步长后,获取所述镜头移动后的图像清晰度评分和读码评分。
14.可选地,所述根据多个位置处的图像清晰度评分,从所述多个位置中确定所述镜头的至少一个粗略位置,包括:
15.在所述镜头沿着所述指定搜索方向移动的过程中,如果随着所述镜头的移动,已获取的多个图像清晰度评分呈先变大后变小的变化趋势,且最近一次获取的图像清晰度评分相对于所述多个图像清晰度评分中的最大值的下降比例达到第一阈值,则判断所述多个图像清晰度评分中的最大值对应的第一位置处的读码评分是否大于第二阈值;
16.如果所述第一位置处的读码评分大于所述第二阈值,则将所述第一位置作为所述镜头的粗略位置。
17.可选地,所述根据所述多个位置处的图像清晰度评分,从所述多个位置中确定所述镜头的至少一个粗略位置,包括:
18.绘制所述多个位置与所述多个位置处的图像清晰度评分的关系曲线;
19.从所述关系曲线中获取至少一个图像清晰度评分峰值;
20.从所述至少一个图像清晰度评分峰值对应的至少一个位置中确定对应的读码评分大于第二阈值的第二位置;
21.将确定出的第二位置作为所述镜头的至少一个粗略位置。
22.可选地,所述根据所述镜头的至少一个粗略位置和所述多个位置处的读码评分,确定所述镜头的最佳位置,包括:
23.确定每个粗略位置对应的候选搜索区间,所述候选搜索区间为以相应的粗略位置为中心的镜头位置区间;
24.从每个候选搜索区间包含的各个位置对应的读码评分中,确定每个候选搜索区间内的读码评分局部最大值;
25.根据每个候选搜索区间内的读码评分局部最大值,确定所述镜头的最佳位置。
26.可选地,所述根据每个候选搜索区间内的读码评分局部最大值,确定所述镜头的最佳位置,包括:
27.如果所述候选搜索区间为一个,且所述候选搜索区间内的读码评分局部最大值对应的位置为一个,则将所述候选搜索区间内的读码评分局部最大值对应的位置作为所述镜头的最佳位置;
28.如果所述候选搜索区间为一个,且所述候选搜索区间内的读码评分局部最大值对应的位置为多个,则从所述候选搜索区间内的读码评分局部最大值对应的多个位置中,选择与所述候选搜索区间对应的粗略位置距离最近的第三位置,将所述第三位置作为所述镜头的最佳位置;
29.如果所述候选搜索区间为多个,则将多个候选搜索区间内的读码评分局部最大值中的最大值作为全局最大值,如果所述全局最大值对应的位置为一个,则将所述全局最大值对应的位置作为所述镜头的最佳位置,如果所述全局最大值对应的位置有多个,则确定所述全局最大值对应的多个位置中的每个位置与自身所在的候选搜索区间对应的粗略位置之间的距离,并将与自身所在的候选搜索区间对应的粗略位置之间的距离最小的位置作为所述镜头的最佳位置。
30.可选地,所述根据所述镜头的最佳位置进行对焦,包括:
31.根据所述镜头的最佳位置和所述镜头的当前位置,确定所述镜头的对焦移动方向
和移动距离;
32.根据所述镜头的对焦移动方向和移动距离,驱动所述镜头移动至所述镜头的最佳位置以完成对焦。
33.另一方面,提供了一种对焦装置,所述装置包括:
34.获取模块,用于获取读码相机的镜头处于多个位置时的图像清晰度评分和读码评分,所述读码评分用于表征所述读码相机的读码成功率;
35.第一确定模块,用于根据所述多个位置处的图像清晰度评分,从所述多个位置中确定所述镜头的至少一个粗略位置;
36.第二确定模块,用于根据所述镜头的至少一个粗略位置和所述多个位置处的读码评分,确定所述镜头的最佳位置;
37.对焦模块,用于根据所述镜头的最佳位置进行对焦。
38.可选地,所述获取模块主要用于:
39.获取所述镜头在搜索起点处的图像清晰度评分和读码评分,所述搜索起点为所述镜头的行程起点或行程终点,所述镜头的行程起点为所述镜头与待读码物体的目标表面的垂直距离最大时所处的位置点,所述镜头的行程终点为所述镜头与所述目标表面的垂直距离最小时所处的位置点;
40.控制所述镜头从所述搜索起点起按照指定搜索步长沿着指定搜索方向移动,其中,当所述搜索起点为所述镜头的行程起点时,所述指定搜索方向是指从所述镜头的行程起点到行程终点的方向,当所述搜索起点为所述镜头的行程终点时,所述指定搜索方向是指从所述镜头的行程终点到行程起点的方向;
41.每当所述镜头移动所述指定搜索步长后,获取所述镜头移动后的图像清晰度评分和读码评分。
42.可选地,所述第一确定模块主要用于:
43.在所述镜头沿着所述指定搜索方向移动的过程中,如果随着所述镜头的移动,已获取的多个图像清晰度评分呈先变大后变小的变化趋势,且最近一次获取的图像清晰度评分相对于所述多个图像清晰度评分中的最大值的下降比例达到第一阈值,则判断所述多个图像清晰度评分中的最大值对应的第一位置处的读码评分是否大于第二阈值;
44.如果所述第一位置处的读码评分大于所述第二阈值,则将所述第一位置作为所述镜头的粗略位置。
45.可选地,所述第一确定模块主要用于:
46.绘制所述多个位置与所述多个位置处的图像清晰度评分的关系曲线;
47.从所述关系曲线中获取至少一个图像清晰度评分峰值;
48.从所述至少一个图像清晰度评分峰值对应的至少一个位置中确定对应的读码评分大于第二阈值的第二位置;
49.将确定出的第二位置作为所述镜头的至少一个粗略位置。
50.可选地,所述第二确定模块主要用于:
51.确定每个粗略位置对应的候选搜索区间,所述候选搜索区间为以相应的粗略位置为中心的镜头位置区间;
52.从每个候选搜索区间包含的各个位置对应的读码评分中,确定每个候选搜索区间
内的读码评分局部最大值;
53.根据每个候选搜索区间内的读码评分局部最大值,确定所述镜头的最佳位置。
54.可选地,所述第二确定模块主要还用于:
55.如果所述候选搜索区间为一个,且所述候选搜索区间内的读码评分局部最大值对应的位置为一个,则将所述候选搜索区间内的读码评分局部最大值对应的位置作为所述镜头的最佳位置;
56.如果所述候选搜索区间为一个,且所述候选搜索区间内的读码评分局部最大值对应的位置为多个,则从所述候选搜索区间内的读码评分局部最大值对应的多个位置中,选择与所述候选搜索区间对应的粗略位置距离最近的第三位置,将所述第三位置作为所述镜头的最佳位置;
57.如果所述候选搜索区间为多个,则将多个候选搜索区间内的读码评分局部最大值中的最大值作为全局最大值,如果所述全局最大值对应的位置为一个,则将所述全局最大值对应的位置作为所述镜头的最佳位置,如果所述全局最大值对应的位置有多个,则确定所述全局最大值对应的多个位置中的每个位置与自身所在的候选搜索区间对应的粗略位置之间的距离,并将与自身所在的候选搜索区间对应的粗略位置之间的距离最小的位置作为所述镜头的最佳位置。
58.可选地,所述对焦模块主要用于:
59.根据所述镜头的最佳位置和所述镜头的当前位置,确定所述镜头的对焦移动方向和移动距离;
60.根据所述镜头的对焦移动方向和移动距离,驱动所述镜头移动至所述镜头的最佳位置以完成对焦。
61.另一方面,提供一种对焦装置,所述装置包括控制单元、电机、镜头和移动机构;
62.其中,所述移动机构带动所述镜头在垂直于所述镜头的镜面的方向上移动;
63.所述控制单元与所述电机连接,所述控制单元用于执行权利要求1
‑
6中任一项所述的方法,以控制所述电机驱动所述移动机构带动所述镜头移动完成对焦。
64.另一方面,提供了一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的程序,以实现前述的对焦方法的步骤。
65.另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述的对焦方法的步骤。
66.另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述的对焦方法的步骤。
67.本技术提供的技术方案至少可以带来以下有益效果:
68.在本技术实施例中,根据读码相机的镜头处于不同位置时的图像清晰度评分和读码评分来进行自动对焦。由于读码评分能够表征读码相机的读码成功率,因此,本技术实施例实际上是结合读码相机的图像清晰度和读码效果对镜头处于不同位置时的对焦效果进行评价,以此来确定镜头的最佳位置进而完成自动对焦,这样,不仅能够保证对焦完成后的读码相机采集的图像的清晰度,还能够保证对焦完成后读码相机的读码成功率。
附图说明
69.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
70.图1是本技术实施例提供的一种对焦方法所涉及的系统架构图;
71.图2是本技术实施例提供的一种对焦装置的结构示意图;
72.图3是本技术实施例提供的一种对焦方法流程图;
73.图4是本技术实施例提供的一种图像清晰度评分曲线图;
74.图5是本技术实施例提供的另一种对焦装置的结构示意图;
75.图6是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
76.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
77.在对本技术实施例提供的对焦方法进行详细的解释说明之前,先对本技术实施例的应用场景进行介绍。
78.本技术实施例提供的对焦方法可以应用于部署有涉及到二维码或条形码读取的工业场景中。例如,在物流转运中心,在快递自动传送带上方的门架上安装有读码相机,通过该读码相机读取快递包裹的上表面的二维码或条形码,以对快递包裹进行分拣。其中,由于不同的快递包裹的高度也不同,因此,读码相机到不同快递包裹的上表面的距离也在变化,在这种情况下,即可以通过本技术实施例提供的对焦方法调整读码相机的镜头与快递包裹的上表面之间的距离,从而实现快速自动对焦。再例如,在工厂中的生产流水线上安装有读码相机,通过该读码相机读取生产流水线上的产品上的二维码或条形码,以实现产品信息的入库。在这种情况下,可能会由于生产流水线结构调整或者是读码相机重新安装等因素,导致读码相机到产品的二维码或条形码所在表面的距离发生变化,此时,即可以通过本技术实施例提供的对焦方法调整读码相机的镜头与快递包裹的上表面之间的距离,从而实现快速自动对焦。
79.示例性地,在上述介绍的应用场景中,在将读码相机部署好之后,首先可以将一个静止的参考物体摆放在读码相机的镜头下方,之后,通过该参考物体对该读码相机进行调焦。在读码相机对焦完成之后,该读码相机即可以投入使用。后续在使用该读码相机的过程中,待读码的物体经过该读码相机的镜头下方,如果该待读码的物体与前述用于调焦的参考物体的高度差距较大,则可以对该读码相机进行重新对焦,在这种情况下,即可以通过本技术实施例提供的对焦方法来实现快速自动对焦。
80.上述仅是本技术实施例提供的两种可能的应用场景,本技术实施例还可以用于其他需要进行自动对焦的工业读码场景,本技术实施例对此不做限定。
81.接下来对本技术实施例所涉及的系统架构进行介绍。
82.图1是本技术实施例提供的一种图像采集系统的架构图。如图1所示,该图像采集系统包括读码相机101、传送带102和位于传送带102上的待读码物体103。
83.其中,读码相机101可以安装在传送带102上方的门架上。并且,该读码相机101的镜头朝向传送带102上的待读码物体103的目标表面。其中,该目标表面是指二维码或条形码所在的平面。在快递物流行业,通常,该目标表面为快递包裹位于传送带102上时的上表面。当然,在其他可能的场景中,该目标表面也可能为待读码物体103的侧面,本技术实施例对此不做限定。
84.需要说明的是,在本技术实施例中,读码相机101可以在检测到触发信号时开始进行图像采集。其中,读码相机101首先通过移动镜头来调整镜头的位置,也即调整镜头与待读码物体的目标表面之间的距离,每当调整一个距离,则读码相机可以对待读码物体进行一次图像采集,根据采集到的图像计算镜头处于多个位置时的图像清晰度评分和读码评分,进而根据镜头处于多个位置时的图像清晰度评分和读码评分,从该多个位置中确定镜头的最佳位置。之后,读码相机通过控制电机来驱动镜头移动到该最佳位置进行对焦。在对焦完成之后,读码相机101可以采集待读码物体103的目标表面上的二维码或条形码的图像,并对二维码或条形码进行读取。
85.在一种可能的实现方式中,图2示出了一种应用于读码相机的对焦装置200的结构示意图。如图2所示,该对焦装置200包括控制单元201、电机202、镜头203和移动机构204。
86.其中,该控制单元201与电机202连接。镜头203可以位于移动机构204中,如图2所示。或者,该镜头203与移动机构204连接(图2中未示出)。电机202与移动机构204连接,这样,控制单元201可以控制电机202驱动移动机构204移动。通过该移动机构204的移动,从而带动镜头203移动。其中,该移动机构204可以带动镜头203在垂直于镜头203的镜面的方向上移动,并且,移动机构204能够移动的行程是一定的。这样,在该移动机构204的带动下,镜头203也将沿着垂直于自身镜面的轴进行移动,并且,镜头203的行程也是一定的。
87.在本技术实施例中,控制单元201首先控制电机202驱动移动机构204带动镜头203按照指定搜索步长,沿着指定搜索方向不断移动,以搜索镜头203的粗略位置。
88.在得到镜头203的粗略位置之后,控制单元201根据镜头203在粗略搜索过程中确定的镜头203处于各个位置上的读码评分,确定镜头203的最佳位置,进而计算从镜头203当前所处的位置到该最佳位置的移动距离和对焦移动方向。之后,控制单元201控制电机202驱动移动机构204带着该镜头203沿着该对焦移动方向运动移动距离,到达该最佳位置,以完成对焦。
89.需要说明的是,读码相机除了包括上述对焦装置200之外,还包括诸如图像传感器、滤光组件、补光装置等其他相机必备组件,本技术实施例对此不再赘述。
90.接下来对本技术实施例提供的对焦方法进行详细的解释说明。
91.图3是本技术实施例提供的一种对焦方法的流程图,该方法应用于读码相机中,示例性地,可以应用于图2所示的读码相机的控制单元中。参见图3,该方法包括如下步骤:
92.步骤301:获取读码相机的镜头处于多个位置时的图像清晰度评分和读码评分,该读码评分用于表征读码相机的读码成功率。
93.在本技术实施例中,读码相机在开始对焦后,首先获取镜头在搜索起点处的图像清晰度评分和读码评分。其中,所谓搜索起点是指开始对焦后,镜头从该搜索起点开始移动。
94.示例性地,该搜索起点可以为镜头的行程起点,也可以为读码相机的镜头的行程
终点。其中,镜头的行程起点为镜头与待读码物体的目标表面的垂直距离最大时所处的位置点,镜头的行程终点为镜头与目标表面的垂直距离最小时所处的位置点。也即是,当读码相机中的移动机构带动镜头在垂直与镜头的镜面的方向上向着远离目标表面的方向移动时,移动至无法再继续移动时,该镜头距离该目标表面的距离最大,此时,该镜头所处的位置即为该镜头的行程起点。相应地,当读码相机中的移动机构带动镜头在垂直与镜头的镜面的方向上向着靠近目标表面的方向移动时,移动至无法再继续移动时,该镜头距离该目标表面的距离最小,此时,该镜头所处的位置即为该镜头的行程终点。
95.读码相机可以在镜头处于该搜索起点时采集图像,并采用图像自相关法或图像高频分量法或其他用于计算图像清晰度评分的方法,利用采集到的该位置处的图像计算镜头处于该位置时的图像清晰度评分。其中,图像清晰度评分越高,则说明在镜头处于这个位置的情况下进行图像采集时,采集到的图像的清晰程度将越高。
96.与此同时,读码相机还可以基于iso15416标准计算在该搜索起点处采集到的图像中的条形码的读码评分,或者,根据iso15415标准计算在该搜索起点处采集到的图像中的二维码的读码评分。其中,读码评分越高,则说明在镜头处于这个位置的情况下对图像进行读码时的读码效果越好。
97.在获取到搜索起点处的图像清晰度评分和读码评分之后,读码相机可以控制电机驱动镜头从该搜索起点起不断移动。每当镜头移动到一个位置,读码相机计算镜头处于该位置时的图像清晰度评分和读码评分。
98.示例性地,读码相机控制电机驱动镜头从该搜索起点起按照指定搜索步长沿着指定搜索方向移动。这样,每当镜头移动指定搜索步长后,即获取一次图像清晰度评分和读码评分。其中,当搜索起点为镜头的行程起点时,该指定搜索方向为从镜头的行程起点到行程终点的方向,当搜索起点为镜头的行程终点时,则该指定搜索方向为从镜头的行程终点到行程起点的方向。
99.需要说明的是,由前文中介绍可知,读码相机中的镜头可以位于一个移动机构中或与该移动机构连接,通过该移动机构的移动,从而带动镜头移动。其中,该移动机构沿着垂直于镜头的镜面的方向移动,并且,移动机构能够移动的行程是一定的。这样,在该移动机构的带动下,镜头也将沿着垂直于自身的镜面的方向进行移动,并且,镜头的行程也是一定的。其中,镜头在移动过程中,可以按照指定搜索步长进行移动,该指定搜索步长即为镜头移动一次的距离。并且,在本技术实施例中,该指定搜索步长可以进行人为设置。其中,该指定搜索步长越小,则搜索精度越高。
100.可选地,读码相机在开始对焦时,镜头可能既不处于行程起点,也不处于行程终点,在这种情况下,读码相机可以控制镜头从当前所处的位置移动至该镜头的行程起点或行程终点,之后,按照上述介绍的方法,从该镜头的行程起点或行程终点起,按照指定搜索步长沿着指定搜索方向移动。
101.在镜头移动的过程中,每当镜头移动到一个位置,则读码相机可以采集一张该位置处的图像,并采用图像自相关法或图像高频分量法或其他用于计算图像清晰度评分的方法,利用采集到的该位置处的图像计算镜头处于该位置时的图像清晰度评分。
102.与此同时,读码相机还可以基于iso15416标准计算在该位置处采集到的图像中的条形码的读码评分,或者,根据iso15415标准计算在该位置处采集到的图像中的二维码的
读码评分。
103.需要说明的是,在一些可能的场景中,当镜头移动到一个位置后,在该位置处,读码相机的视野中可能不存在二维码或条形码,在这种情况下,读码相机根据在该位置处采集到的图像计算得到的读码评分将为0或者其他比较小的数值。
104.步骤302:根据多个位置处的图像清晰度评分,从多个位置中确定镜头的至少一个粗略位置。
105.在一种可能的实现方式中,由前述步骤301中的介绍可知,每当镜头按照指定搜索步长沿着指定搜索方向移动一次,读码相机可以计算一次镜头移动后的图像清晰度评分和读码评分。基于此,读码相机可以在镜头移动的过程中,每在移动后的位置处获取到一个图像清晰度评分,即判断一次已获取到的所有图像清晰度评分随着镜头的移动的变化趋势。如果随着镜头的移动,已获取到的多个图像清晰度评分呈现先变大后变小的趋势,且最近一次获取的图像清晰度评分相对于已获取的多个图像清晰度评分中的最大值的下降比例达到第一阈值,则读码相机进一步的判断已获取的多个图像清晰度评分中的最大值对应的第一位置处的读码评分是否大于第二阈值。如果大于第二阈值,则读码相机将第一位置作为镜头的粗略位置。
106.需要说明的是,每当镜头移动到一个位置,读码相机获取到镜头在该位置处的图像清晰度评分时,读码相机可以绘制已获取到的各个图像清晰度评分与对应的位置的关系曲线。如果该关系曲线上的图像清晰度评分呈现先变大后变小的趋势,则读码相机计算已获取到的多个图像清晰度评分中的最大值与镜头当前所处位置处的图像清晰度评分之间的差值,之后,计算该差值与该多个图像清晰度评分中的最大值的比例,该比例即为下降比例。如果该下降比例大于第一阈值,则确定下降比例达到了第一阈值,认为已经找到了图像清晰度最高时的镜头位置,此时,读码相机可以进一步的判断多个图像清晰度评分中最大值对应的第一位置处的读码评分是否大于第二阈值。如果第一位置处的读码评分大于第二阈值,则说明当镜头处于第一位置时,读码相机的视野中存在二维码或条形码,后续,读码相机能够进一步的通过读码评分来确定镜头的最佳位置。在这种情况下,读码相机可以将该第一位置作为搜索到的镜头的粗略位置。相应地,读码相机可以停止移动镜头,也即,停止搜索镜头的粗略位置。
107.需要说明的是,第一阈值是预先设定的一个比例值,该比例值可以为20%、40%或其他数值,本技术实施例对此不做限定。第二阈值可以是预先确定的一个不大于读码相机的视野中存在二维码或条码时读码评分的最小值的数值,示例性地,第二阈值可以为0、1、2等数值,本技术实施例对此不做限定。
108.当然,如果绘制得到的图像清晰度评分和镜头的位置之间的关系曲线上图像清晰度评分没有呈现先变大后变小的变化趋势,或者,虽然呈现了先变大后变小的变化趋势,但是镜头当前所处位置处的图像清晰度评分相较于已获取的多个图像清晰度评分中的最大值的下降比例未达到第一阈值,或者是已获取的多个图像清晰度评分中的最大值对应的第一位置处的读码评分不大于第二阈值,此时,读码相机可以继续驱动镜头移动以获取下一个位置处的图像清晰度评分和读码评分,并重复上述判断过程。
109.由此可见,在上文的实现方式中,镜头可能不需要沿着指定搜索方向移动完所有位置,读码相机即能够搜索到一个粗略位置。这样,能够减少搜索时间,提高搜索效率。
110.可选地,在另一种可能的实现方式中,读码相机也可以在镜头从行程起点移动至移动终点或者是从行程终点移动到行程起点后,根据获取到的镜头移动过程中的所有位置处的图像清晰度评分来确定镜头的至少一个粗略位置。
111.示例性地,在该种实现方式中,读码相机绘制镜头在移动过程中所处的多个位置与该多个位置处的图像清晰度评分的关系曲线;从该关系曲线中获取至少一个图像清晰度评分峰值;从至少一个图像清晰度评分峰值对应的至少一个位置中确定对应的读码评分大于第二阈值的第二位置;将确定出的第二位置作为镜头的至少一个粗略位置。
112.其中,读码相机绘制镜头从搜索起点开始到搜索终点为止获取到的多个位置处的图像清晰度评分和该多个位置的关系曲线。这样,绘制得到的关系曲线上可能会存在一个或者多个峰点。在这种情况下,读码相机获取该关系曲线中每个峰点处的图像清晰度评分峰值,从而得到至少一个图像清晰度评分峰值。
113.在获取到至少一个图像清晰度评分峰值之后,读码相机判断每个图像清晰度评分峰值对应的位置处的读码评分是否大于第二阈值,并将对应的读码评分大于第二阈值的位置作为第二位置。此时,确定出的第二位置可能有一个,也可能有多个,读码相机可以将确定出的第二位置作为至少一个粗略位置。
114.图4是本技术实施例示出的一种多个位置和多个位置处的图像清晰度评分的关系曲线图。如图4中所示,该曲线中存在3个峰点,读码相机可以获取每个峰点的峰值,从而得到3个图像清晰度评分峰值s1,s2和s3。之后,读码相机判断每个峰值对应的位置处的读码评分是否大于第二阈值。假设第二阈值为0,s1对应的位置a和s3对应的位置c处的读码评分均大于0,而s2对应的位置b处的读码评分等于0,则读码相机将位置a和位置c作为镜头的粗略位置。
115.可选地,在一些可能的情况中,在判断每个图像清晰度评分峰值对应的位置处的读码评分是否大于第二阈值时,有可能每个图像清晰度评分峰值对应的位置处的读码评分均不大于第二阈值,这样,将无法得到读码评分大于第二阈值的位置,也即,第二位置的个数为0。在这种情况下,读码相机可以从至少一个图像清晰度评分峰值中获取图像清晰度评分最大值,将该图像清晰度评分最大值对应的位置作为镜头的最佳位置,进而参考步骤304中的实现方式,根据该镜头的最佳位置进行对焦。
116.步骤303:根据镜头的至少一个粗略位置和多个位置处的读码评分,确定镜头的最佳位置。
117.在得到镜头的至少一个粗略位置后,读码相机根据获取的多个读码评分对至少一个粗略位置以及粗略位置附近的其他位置进行精细搜索,以确定镜头的最佳位置。
118.示例性地,读码相机首先确定每个粗略位置对应的候选搜索区间,该候选搜索区间为以相应的粗略位置为中心的镜头位置区间;从每个候选搜索区间包含的各个位置对应的读码评分中,确定每个候选搜索区间内的读码评分局部最大值;根据每个候选搜索区间内的读码评分局部最大值,确定镜头的最佳位置。
119.以任一粗略位置为例,为了方便描述,将该粗略位置称为第一粗略位置,读码相机以第一粗略位置为中心,沿着指定搜索方向向前指定距离,向后指定距离,从而构成第一粗略位置对应的候选搜索区间。其中,该指定距离大于指定搜索步长。
120.例如,假设第一粗略位置为s,则以该位置s为中心沿着指定搜索方向向前l,向后
l,从而构成候选搜索区间[s
‑
l,s+l]。
[0121]
在确定第一粗略位置对应的候选搜索区间之后,对于该候选搜索区间内包括的镜头移动时所处过的每个位置,读码相机可以获取相应位置处的读码评分,并从获取到的读码评分中确定最大值,该最大值即为该候选搜索区间内的读码评分局部最大值。
[0122]
需要说明的是,如果粗略位置为一个,则对应的候选搜索区间也为一个,这样,得到的读码评分局部最大值也为一个。虽然读码评分局部最大值为一个,但是读码评分局部最大值对应的位置可能有一个,也可能有多个。也就是说,可能有一个位置处的读码评分为该局部最大值,或者,也可能有多个位置处的读码评分均相同,均为该读码评分局部最大值。基于此,如果候选搜索区间为一个,且该候选搜索区间内的读码评分局部最大值对应的位置也为一个,则读码相机可以直接将该读码评分局部最大值对应的位置作为镜头的最佳位置。如果候选搜索区间为一个,且该候选搜索区间内的读码评分局部最大值对应的位置为多个,则读码相机可以从该候选搜索区间内的读码评分局部最大值对应的多个位置中,选择与该候选搜索区间对应的粗略位置距离最近的第三位置,将该第三位置作为镜头的最佳位置。
[0123]
如果粗略位置为多个,则对应的候选搜索区间为多个,得到的读码评分局部最大值也为多个,在这种情况下,读码相机首先确定该多个候选搜索区间内的读码评分局部最大值中的最大值,得到全局最大值。此时,该全局最大值对应的位置可能有一个,也可能有多个。基于此,如果该全局最大值对应的位置有一个,则直接将该全局最大值对应的位置作为镜头的最佳位置,如果该全局最大值对应的位置有多个,则确定该全局最大值对应的每个位置与相应位置所在的候选搜索区间对应的粗略位置之间的距离,将与自身所在的候选搜索区间对应的粗略位置之间的距离最小的位置作为镜头的最佳位置。
[0124]
例如,假设全局最大值对应的位置有3个,分别为a、b、c,其中,a位于候选搜索区间u1内,u1对应的粗略位置为m,b位于候选搜索区间u2内,u2对应的粗略位置为n,c位于候选搜索区间u3内,u3对应的粗略位置为q,则读码相机计算a与m之间的距离,得到第一距离,计算b与n之间的距离,得到第二距离,计算c与q之间的距离,得到第三距离。比较第一距离、第二距离和第三距离的大小,假设第一距离最小,则将a作为镜头的最佳位置。
[0125]
可选地,在一些可能的实现方式中,在步骤301中,读码相机在镜头处于搜索起点时可以获取镜头在该搜索起点处的图像清晰度评分,后续,从该搜索起点开始,每当读码相机的镜头按照指定搜索步长移动一次,读码相机可以获取镜头移动后所处的位置处的图像清晰度评分。其中,为了区分,将此处所采用的指定搜索步长称为第一搜索步长。
[0126]
如此,读码相机可以在镜头移动的过程中,每在移动后的位置处获取到一个图像清晰度评分,即判断一次已获取到的所有图像清晰度评分随着镜头的移动的变化趋势。如果随着镜头的移动,已获取到的多个图像清晰度评分呈现先变大后变小的趋势,且最近一次获取的图像清晰度评分相对于已获取的多个图像清晰度评分中的最大值的下降比例达到第一阈值,则将已获取到的多个图像清晰评分中的最大值对应的位置作为搜索到的粗略位置。
[0127]
或者,读码相机可以参考前述步骤302中介绍的方法,从镜头从行程起点移动至行程终点或者是从行程终点移动至行程起点的过程中获取到的所有位置处的图像清晰度评分中,获取至少一个图像清晰度评分峰值,将至少一个图像清晰度峰值对应的至少一个位
置作为至少一个粗略位置。
[0128]
在得到至少一个粗略位置之后,对于每个粗略位置,读码相机可以参考本步骤中介绍的方法确定每个粗略位置对应的候选搜索区间。之后,对于每个粗略位置对应的候选搜索区间,读码相机可以控制镜头从该候选搜索区间的一个端点开始,按照第二搜索步长向该候选搜索区间的另一个端点移动,其中,第二搜索步长小于前述进行粗略位置搜索时所采用的第一搜索步长。每当移动第二搜索步长之后,读码相机可以采集一次图像,并根据采集到的图像计算镜头在移动后的位置处的读码评分。如此,读码相机即可以获取到镜头处于每个候选搜索区间内的多个位置处的读码评分。之后,读码相机可以根据每个候选搜索区间内的多个位置处的读码评分,确定每个候选搜索区间内的读码评分局部最大值,进而参考本步骤中介绍的方法,根据每个候选搜索区间内的读码评分局部最大值,确定镜头的最佳位置,此处不再赘述。
[0129]
步骤304:根据镜头的最佳位置进行对焦。
[0130]
在确定镜头的最佳位置之后,读码相机可以计算镜头当前所处的位置和镜头的最佳位置之间的距离差值,得到镜头所需移动的移动距离。与此同时,读码相机还可以确定从镜头当前所处的位置到镜头的最佳位置的方向是从行程起点到行程终点的方向,还是从行程终点到行程起点的方向,并将确定的方向作为镜头后续的移动方向。
[0131]
在确定镜头的移动距离和移动方向之后,读码相机控制电机驱动镜头沿着该移动方向运动移动距离,到达镜头的最佳位置,从而完成对焦。
[0132]
在本技术实施例中,根据读码相机的镜头处于不同位置时的图像清晰度评分和读码评分来进行自动对焦。由于读码评分能够表征读码相机的读码成功率,因此,本技术实施例实际上是结合读码相机的图像清晰度和读码效果对镜头处于不同位置时的对焦效果进行评价,以此来确定镜头的最佳位置进而完成自动对焦,这样,不仅能够保证对焦完成后的读码相机采集的图像的清晰度,还能够保证对焦完成后读码相机的读码成功率。
[0133]
另外,在本技术实施例中,在找到图像清晰度评分峰值之后,可以将图像清晰度评分峰值所对应的位置中不存在读码评分的位置筛除,从而得到至少一个粗略位置。这样,得到的至少一个粗略位置均为视野内存在二维码或条形码的位置,避免了伪图像清晰度峰值带来的影响,提高了对焦成功率。
[0134]
接下来对本技术实施例提供的对焦装置进行介绍。
[0135]
图5是本技术实施例提供的一种对焦装置500的结构示意图,该对焦装置500可以由软件、硬件或者两者的结合实现成为读码相机的部分或者全部。请参考图5,该装置500包括:获取模块501、第一确定模块502、第二确定模块503和对焦模块504。
[0136]
获取模块501,用于获取读码相机的镜头处于多个位置时的图像清晰度评分和读码评分,读码评分用于表征读码相机的读码成功率;
[0137]
第一确定模块502,用于根据多个位置处的图像清晰度评分,从多个位置中确定镜头的至少一个粗略位置;
[0138]
第二确定模块503,用于根据镜头的至少一个粗略位置和多个位置处的读码评分,确定镜头的最佳位置;
[0139]
对焦模块504,用于根据镜头的最佳位置进行对焦。
[0140]
可选地,获取模块501主要用于:
[0141]
获取镜头在搜索起点处的图像清晰度评分和读码评分,搜索起点为镜头的行程起点或行程终点,镜头的行程起点为镜头与待读码物体的目标表面的垂直距离最大时所处的位置点,镜头的行程终点为镜头与目标表面的垂直距离最小时所处的位置点;
[0142]
控制镜头从搜索起点起按照指定搜索步长沿着指定搜索方向移动,其中,当搜索起点为镜头的行程起点时,指定搜索方向是指从镜头的行程起点到行程终点的方向,其中,当搜索起点为镜头的行程终点时,指定搜索方向是指从镜头的行程终点到行程起点的方向;
[0143]
每当镜头移动指定搜索步长后,获取镜头移动后的图像清晰度评分和读码评分。
[0144]
可选地,第一确定模块502主要用于:
[0145]
在镜头沿着指定搜索方向移动的过程中,如果随着镜头的移动,获取的多个图像清晰度评分呈先变大后变小的变化趋势,且最近一次获取的图像清晰度评分相对于多个图像清晰度评分中的最大值的下降比例达到第一阈值,则判断多个图像清晰度评分中的最大值对应的第一位置处的读码评分是否大于第二阈值;
[0146]
如果第一位置处的读码评分大于第二阈值,则将第一位置作为镜头的粗略位置。
[0147]
可选地,第一确定模块502主要用于:
[0148]
绘制多个位置与多个位置处的图像清晰度评分的关系曲线;
[0149]
从关系曲线中获取至少一个图像清晰度评分峰值;
[0150]
从至少一个图像清晰度评分峰值对应的至少一个位置中确定对应的读码评分大于第二阈值的第二位置;
[0151]
将确定出的第二位置作为镜头的至少一个粗略位置。
[0152]
可选地,第二确定模块503主要用于:
[0153]
确定每个粗略位置对应的候选搜索区间,候选搜索区间为以相应的粗略位置为中心的镜头位置区间;
[0154]
从每个候选搜索区间包含的各个位置对应的读码评分中,确定每个候选搜索区间内的读码评分局部最大值;
[0155]
根据每个候选搜索区间内的读码评分局部最大值,确定镜头的最佳位置。
[0156]
可选地,第二确定模块503主要还用于:
[0157]
如果候选搜索区间为一个,且候选搜索区间内的读码评分局部最大值对应的位置为一个,则将候选搜索区间内的读码评分局部最大值对应的位置作为镜头的最佳位置;
[0158]
如果候选搜索区间为一个,且候选搜索区间内的读码评分局部最大值对应的位置为多个,则从候选搜索区间内的读码评分局部最大值对应的多个位置中,选择与候选搜索区间对应的粗略位置距离最近的第三位置,将第三位置作为镜头的最佳位置;
[0159]
如果候选搜索区间为多个,则将多个候选搜索区间内的读码评分局部最大值中的最大值作为全局最大值,如果全局最大值对应的位置为一个,则将全局最大值对应的位置作为镜头的最佳位置,如果全局最大值对应的位置有多个,则确定全局最大值对应的多个位置中的每个位置与自身所在的候选搜索区间对应的粗略位置之间的距离,并将与自身所在的候选搜索区间对应的粗略位置之间的距离最小的位置作为镜头的最佳位置。
[0160]
可选地,对焦模块504主要用于:
[0161]
根据镜头的最佳位置和镜头的当前位置,确定镜头的对焦移动方向和移动距离;
[0162]
根据镜头的对焦移动方向和移动距离,驱动镜头移动至镜头的最佳位置以完成对焦。
[0163]
在本技术实施例中,根据读码相机的镜头处于不同位置时的图像清晰度评分和读码评分来进行自动对焦。由于读码评分能够表征读码相机的读码成功率,因此,本技术实施例实际上是结合读码相机的图像清晰度和读码效果对镜头处于不同位置时的对焦效果进行评价,以此来确定镜头的最佳位置进而完成自动对焦,这样,不仅能够保证对焦完成后的读码相机采集的图像的清晰度,还能够保证对焦完成后读码相机的读码成功率。
[0164]
需要说明的是:上述实施例提供的对焦装置在进行对焦时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的对焦装置与对焦方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0165]
图6是本技术实施例提供的一种计算机设备的结构示意图。前述实施例中的读码相机即可以通过该计算机设备来实现。
[0166]
通常,该计算机设备600包括有:处理器601和存储器602。
[0167]
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。需要说明的是,前述图2所示的对焦装置200中的控制单元即可以通过处理器601来实现。
[0168]
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本技术中方法实施例提供的对焦方法。
[0169]
在一些实施例中,计算机设备600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、显示屏605、摄像头组件606、音频电路607、定位组件608和电源609中的至少一种。
[0170]
外围设备接口603可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外
围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0171]
射频电路604用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括nfc(near field communication,近距离无线通信)有关的电路,本技术对此不加以限定。
[0172]
显示屏605用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置计算机设备600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在计算机设备600的不同表面或呈折叠设计;在另一些实施例中,显示屏605可以是柔性显示屏,设置在计算机设备600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light
‑
emitting diode,有机发光二极管)等材质制备。
[0173]
摄像头组件606用于采集图像或视频。其中,该摄像头组件606可以包括前述图2中所示的对焦装置200。除此之外,该摄像头组件中还可以包括图像传感器、滤光组件、补光装置等。其中,图像传感器用于通过曝光产生并输出图像信号。滤光组件用于对进入到摄像头组件的可见光进行特定波段的滤光。补光装置用于在图像传感器曝光的过程中进行补光。
[0174]
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。
[0175]
定位组件608用于定位计算机设备600的当前地理位置,以实现导航或lbs(location based service,基于位置的服务)。定位组件608可以是基于美国的gps(global positioning system,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
[0176]
电源609用于为计算机设备600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
[0177]
本领域技术人员可以理解,图6中示出的结构并不构成对计算机设备600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0178]
本技术实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行上实施例提供的对焦方法。例如,该计算机可读存储介质可以是rom、ram、cd
‑
rom、磁带、软盘和光数据存储设备等。
[0179]
值得注意的是,本技术实施例提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
[0180]
本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机设备上运行时,使得计算机设备执行上述实施例提供的对焦方法。
[0181]
以上所述并不用以限制本技术实施例,凡在本技术实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术实施例的保护范围之内。