1.一种条码矫正方法,其特征在于,所述方法包括:
对目标图像进行语义分割,以得到所述目标图像中的背景区和码区;
通过条码识别模型对所述码区进行条码识别,以确定所述码区是否为条码,所述条码识别模型为预先训练得到,且所述条码识别模型的输出结果能够指示所述码区是否为条码;
在所述码区为条码的情况下,基于所述码区的各个角点的位置信息,确定每相邻两个角点之间的连接线,以得到多个连接线;在所述多个连接线中的各个连接线上分别绘制出多个划分线;确定所述码区的多个边界线分别与对应的连接线上的各个划分线之间的交点,以得到多个边界点,将确定得到的多个边界点以及所述码区的各个角点,确定为所述码区的多个轮廓点;
确定所述条码的形状;如果所述条码为正方形,则从所述码区的四个边界线中选择一个边界线,将选择的边界线的长度确定为所述码区的各个边界线对应的拟合曲线的长度,基于选择的边界线两端的角点的位置信息和所述码区的各个边界线对应的拟合曲线的长度,按照正方形来确定所述码区的四个角点分别对应的矫正点的位置信息,进而将每相邻两个矫正点之间的连线确定为所述码区的各个边界线对应的拟合曲线;如果所述条码为长方形,则从所述码区的四个边界线中选择相邻两个边界线,将选择的相邻两个边界线的长度确定为所述码区的长边对应的拟合曲线的长度以及短边对应的拟合曲线的长度,基于选择的两个边界线上的三个角点的位置信息、所述码区的长边对应的拟合曲线的长度以及短边对应的拟合曲线的长度,按照长方形来确定所述码区的四个角点分别对应的矫正点的位置信息,进而将每相邻两个矫正点之间的连线确定为所述码区的各个边界线对应的拟合曲线;
基于所述多个轮廓点的位置信息,确定多个矫正点的位置信息,所述多个矫正点与所述多个轮廓点一一对应;基于所述多个轮廓点的位置信息和所述多个矫正点的位置信息,确定所述多个轮廓点映射到所述多个矫正点的变换矩阵;将所述变换矩阵确定为矫正参数;
基于所述矫正参数,对所述目标图像中的条码进行矫正,得到标准无畸变条码,将所述标准无畸变条码进行译码;
其中,基于所述多个轮廓点的位置信息,确定多个矫正点的位置信息,包括:从目标边界线两端的角点中选择一个角点作为基准角点,确定目标轮廓点与基准角点之间的连线,进而确定连线与目标边界线对应的基准线之间的夹角,得到第一角度,目标边界线对应的基准线与目标拟合曲线垂直,目标拟合曲线为目标边界线对应的拟合曲线,基于目标轮廓点与基准角点之间的连线的长度和第一角度,确定目标轮廓点与所述基准角点之间的连线在目标拟合曲线上的投影线的长度,以得到第二长度,将位于目标拟合曲线上且与基准角点之间的曲线长度为第二长度的点,确定为目标轮廓点对应的矫正点,从而确定所述矫正点的位置信息。
2.如权利要求1所述的方法,其特征在于,每个连接线上的多个划分线用于等分对应的连接线。
3.如权利要求1所述的方法,其特征在于,所述通过条码识别模型对所述码区进行条码识别,以确定所述码区是否为条码,包括:将所述码区作为所述条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
基于所述识别结果,确定所述码区是否为条码。
4.如权利要求1所述的方法,其特征在于,所述通过条码识别模型对所述码区进行条码识别,以确定所述码区是否为条码,包括:获取所述码区的中心区域;
将所述码区的中心区域作为所述条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
基于所述识别结果,确定所述码区是否为条码。
5.如权利要求1所述的方法,其特征在于,所述基于所述矫正参数,对所述目标图像中的条码进行矫正,包括:确定所述码区内的各个像素点的位置信息;
基于所述矫正参数和所述码区内的各个像素点的位置信息,对所述目标图像中的条码进行矫正。
6.一种条码矫正装置,其特征在于,所述装置包括:
语义分割模块,用于对目标图像进行语义分割,以得到所述目标图像中的背景区和码区;
条码识别模块,用于通过条码识别模型对所述码区进行条码识别,以确定所述码区是否为条码,所述条码识别模型为预先训练得到,且所述条码识别模型的输出结果能够指示所述码区是否为条码;
轮廓点确定模块,在所述码区为条码的情况下,用于确定所述码区的多个轮廓点;
矫正参数确定模块,用于基于所述多个轮廓点的位置信息确定矫正参数;
矫正模块,用于基于所述矫正参数,对所述目标图像中的条码进行矫正,得到标准无畸变条码;
译码模块,用于将所述标准无畸变条码进行译码;
其中,所述轮廓点确定模块,包括:
边界点确定单元,用于从所述码区的每个边界线上除角点之外的部分线段中确定出多个边界点;
轮廓点确定单元,用于将确定得到的多个边界点以及所述码区的各个角点,确定为所述码区的多个轮廓点;
其中,所述边界点确定单元,包括:
连接线确定子单元,用于基于所述码区的各个角点的位置信息,确定每相邻两个角点之间的连接线,以得到多个连接线;
划分线绘制子单元,用于在所述多个连接线中的各个连接线上分别绘制出多个划分线;
交点确定子单元,用于确定所述码区的多个边界线分别与对应的连接线上的各个划分线之间的交点,以得到所述多个边界点;
其中,所述矫正参数确定模块,包括:
第一位置信息确定单元,用于基于所述多个轮廓点的位置信息,确定多个矫正点的位置信息,所述多个矫正点与所述多个轮廓点一一对应;其中,第一位置信息确定单元具体用于:确定所述条码的形状;如果所述条码为正方形,则从所述码区的四个边界线中选择一个边界线,将选择的边界线的长度确定为所述码区的各个边界线对应的拟合曲线的长度,基于选择的边界线两端的角点的位置信息和所述码区的各个边界线对应的拟合曲线的长度,按照正方形来确定所述码区的四个角点分别对应的矫正点的位置信息,进而将每相邻两个矫正点之间的连线确定为所述码区的各个边界线对应的拟合曲线;如果所述条码为长方形,则从所述码区的四个边界线中选择相邻两个边界线,将选择的相邻两个边界线的长度确定为所述码区的长边对应的拟合曲线的长度以及短边对应的拟合曲线的长度,基于选择的两个边界线上的三个角点的位置信息、所述码区的长边对应的拟合曲线的长度以及短边对应的拟合曲线的长度,按照长方形来确定所述码区的四个角点分别对应的矫正点的位置信息,进而将每相邻两个矫正点之间的连线确定为所述码区的各个边界线对应的拟合曲线;
变换矩阵确定单元,用于基于所述多个轮廓点的位置信息和所述多个矫正点的位置信息,确定所述多个轮廓点映射到所述多个矫正点的变换矩阵;
矫正参数确定单元,用于将所述变换矩阵确定为所述矫正参数;
其中,基于所述多个轮廓点的位置信息,确定多个矫正点的位置信息,包括:从目标边界线两端的角点中选择一个角点作为基准角点,确定目标轮廓点与基准角点之间的连线,进而确定连线与目标边界线对应的基准线之间的夹角,得到第一角度,目标边界线对应的基准线与目标拟合曲线垂直,目标拟合曲线为目标边界线对应的拟合曲线,基于目标轮廓点与基准角点之间的连线的长度和第一角度,确定目标轮廓点与所述基准角点之间的连线在目标拟合曲线上的投影线的长度,以得到第二长度,将位于目标拟合曲线上且与基准角点之间的曲线长度为第二长度的点,确定为目标轮廓点对应的矫正点,从而确定所述矫正点的位置信息。
7.如权利要求6所述的装置,其特征在于,
每个连接线上的多个划分线用于等分对应的连接线;
其中,所述条码识别模块,包括:
第一识别结果输出单元,用于将所述码区作为条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
条码确定单元,用于基于所述识别结果,确定所述码区是否为条码;
其中,所述条码识别模块,包括:
中心区域获取单元,用于获取所述码区的中心区域;
第二识别结果输出单元,用于将所述码区的中心区域作为条码识别模型的输入,以得到所述条码识别模型输出的识别结果;
条码确定单元,用于基于所述识别结果,确定所述码区是否为条码;
其中,所述矫正模块,包括:
第二位置信息确定单元,用于确定所述码区内的各个像素点的位置信息;
矫正单元,用于基于所述矫正参数和所述码区内的各个像素点的位置信息,对所述目标图像中的条码进行矫正。
8.一种读码设备,其特征在于,所述读码设备包括存储器和处理器,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述权利要求1‑5任一所述方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1‑5任一所述的方法的步骤。