Identification code recognition method

WO2026188848A1PCT designated stage Publication Date: 2026-09-17ZHEJIANG HUARAY TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/137088
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-03-14
Filing Date
2025-11-24
Publication Date
2026-09-17

Smart Images

  • Figure CN2025137088_17092026_PF_FP_ABST
    Figure CN2025137088_17092026_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present invention provide an identification code recognition method. The method comprises: at a plurality of collection time points at which the position of a target object changes, acquiring a plurality of candidate identification codes related to the target object and image position information corresponding to the plurality of candidate identification codes; and on the basis of the plurality of collection time points, the image position information and position information of the target object at the plurality of collection time points, binding at least one of the plurality of candidate identification codes to the target object.
Need to check novelty before this filing date? Find Prior Art

Description

A method for identifying identification codes Cross-references

[0001] This application claims priority to Chinese application No. 202510309825.X, filed on March 14, 2025, the entire contents of which are incorporated herein by reference. Technical Field

[0002] This specification relates to the field of data processing technology, and in particular to a method for identifying identification codes. Background Technology

[0003] With the development of the logistics industry and e-commerce, the number of express parcels has grown rapidly. Currently, the logistics industry mainly sorts parcels through automated sorting operations. Automated sorting typically involves parcel identification, location, and binding. For example, image processing technology is used to identify parcels with barcodes on conveyor belts. Successfully identified parcels are then sorted manually or automatically by robotic arms, while parcels that fail to be identified require manual barcode replacement. The key to automated sorting systems lies in barcode recognition technology. A barcode serves as a unique identifier for a parcel and is a crucial identifier in the express delivery process. However, obstructions, dirt, damage, and wrinkles on barcodes can prevent the effective extraction of barcode information, leading to missing, incorrect, or lost parcels.

[0004] CN110711702A proposes a multi-faceted scanning DWS system and its control method, which scans the barcodes of goods by photographing them from multiple angles without adjusting the orientation of the goods. It also allows for rapid adjustment and separation of continuously transported goods, ensuring weighing accuracy. CN109127445A proposes a barcode reading method and system that can accurately distinguish between two or more parcels passing through the reading area simultaneously. CN113111677B proposes a barcode reading method, apparatus, device, and medium that binds barcodes to parcels in scenarios involving multiple parcels being scanned, identifying missed parcels. However, the aforementioned methods neglect the possibility of barcode misidentification.

[0005] Therefore, it is necessary to propose a barcode recognition method to determine whether there is any barcode misrecognition, select the best barcode, and avoid outputting misrecognized barcodes. Summary of the Invention

[0006] This specification provides one or more embodiments of a code recognition method. The method includes: acquiring multiple candidate codes related to the target object and image location information corresponding to the multiple candidate codes at multiple acquisition time points where the position of the target object changes; and binding at least one of the multiple candidate codes to the target object based on the multiple acquisition time points, the image location information, and the position information of the target object at the multiple acquisition time points.

[0007] This specification provides one or more embodiments of an identification code recognition system. The system includes: at least one storage medium including a set of instructions; and at least one processor communicating with the at least one storage medium, wherein, when the set of instructions is executed, the at least one processor instructs the system to perform an operation, the operation including: acquiring, at multiple acquisition time points where the position of a target object changes, multiple candidate identification codes associated with the target object and image location information corresponding to the multiple candidate identification codes; and binding at least one of the multiple candidate identification codes to the target object based on the multiple acquisition time points, the image location information, and the position information of the target object at the multiple acquisition time points.

[0008] This specification provides one or more embodiments of a code recognition system. The system includes: an acquisition module configured to acquire multiple candidate codes associated with the target object and image location information corresponding to the multiple candidate codes at multiple acquisition time points where the position of a target object changes; and a binding module configured to bind at least one of the multiple candidate codes to the target object based on the multiple acquisition time points, the image location information, and the position information of the target object at the multiple acquisition time points.

[0009] This specification provides one or more embodiments of a computer-readable storage medium that stores computer instructions. When a computer reads the computer instructions from the storage medium, the computer executes an identification code recognition method. Attached Figure Description

[0010] This specification will be further described by way of exemplary embodiments, which will be described in detail with reference to the accompanying drawings. These embodiments are not limiting; in these embodiments, the same reference numerals denote the same structures, wherein:

[0011] Figure 1 is an exemplary block diagram of a code recognition system according to some embodiments of this specification;

[0012] Figure 2 is an exemplary flowchart of an identification code recognition method according to some embodiments of this specification;

[0013] Figure 3 is an exemplary flowchart illustrating the binding of a candidate identification code to a target object according to some embodiments of this specification;

[0014] Figure 4 is an exemplary flowchart illustrating the determination of the result of a misidentification conflict according to some embodiments of this specification;

[0015] Figure 5 is an exemplary schematic diagram of a preferred model according to some embodiments of this specification;

[0016] Figure 6 is a schematic diagram of an application scenario according to some embodiments of this specification;

[0017] Figure 7 is an exemplary flowchart of an identification code binding method according to some embodiments of this specification;

[0018] Figure 8 is an exemplary flowchart of a specific embodiment of step S3 in the identification code binding method provided in Figure 7;

[0019] Figure 9 is an exemplary flowchart of an identification code binding method according to other embodiments of this specification;

[0020] Figure 10 is a schematic diagram of the identification code binding device according to some embodiments of this specification;

[0021] Figure 11 is a schematic diagram of the frame of an electronic terminal according to some embodiments of this specification;

[0022] Figure 12 is a schematic diagram of the framework of a computer-readable storage medium according to some embodiments of this specification. Detailed Implementation

[0023] To more clearly illustrate the technical solutions of the embodiments in this specification, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are merely some examples or embodiments of this specification. For those skilled in the art, these drawings can be applied to other similar scenarios without creative effort. Unless obvious from the context or otherwise specified, the same reference numerals in the drawings represent the same structures or operations.

[0024] It should be understood that the terms “system,” “device,” “unit,” and / or “module” used herein are one way to distinguish different components, elements, parts, sections, or assemblies at different levels. However, if other terms can achieve the same purpose, they may be replaced by other expressions.

[0025] Unless the context clearly indicates an exception, words such as "a," "an," "a kind," and / or "the" do not specifically refer to the singular and may also include the plural. Generally speaking, the terms "comprising" and "including" only indicate the inclusion of explicitly identified steps and elements, which do not constitute an exclusive list, and the method or apparatus may also include other steps or elements.

[0026] Flowcharts are used in this specification to illustrate the operations performed by the system according to embodiments of this specification. It should be understood that the preceding or following operations are not necessarily performed in exact order. Instead, the steps can be processed in reverse order or simultaneously. Furthermore, other operations can be added to these processes, or one or more steps can be removed from them.

[0027] Figure 1 is an exemplary block diagram of a code recognition system according to some embodiments of this specification.

[0028] In some embodiments, as shown in FIG1, the identification code recognition system 100 may include an acquisition module 110 and a binding module 120.

[0029] The acquisition module 110 refers to the module used to acquire candidate identification codes and related information.

[0030] In some embodiments, the acquisition module 110 is configured to acquire multiple candidate identification codes related to the target object and image location information corresponding to the multiple candidate identification codes at multiple acquisition time points when the position of the target object changes.

[0031] Binding module 120 refers to the module used to bind the candidate identification code to the target object.

[0032] In some embodiments, the binding module 120 is configured to bind at least one of a plurality of candidate identification codes to the target object based on a plurality of acquisition time points, image location information, and the location information of the target object at a plurality of acquisition time points.

[0033] In some embodiments, the identification code recognition system 100 further includes a processor (not shown).

[0034] A processor can process data and / or information obtained from other devices or system components. Based on this data, information, and / or processing results, the processor can execute program instructions to perform one or more functions described in this application. In some embodiments, the processor may include one or more sub-processing devices (e.g., a single-core processing device or a multi-core multi-chip processing device). By way of example only, a processor may include a central processing unit (CPU), an application-specific integrated circuit (ASIC), an application-specific instruction processor (ASIP), a graphics processing unit (GPU), a physical processor (PPU), a digital signal processor (DSP), a field-programmable gate array (FPGA), a programmable logic device (PLD), a controller, a microcontroller unit, a reduced instruction set computer (RISC), a microprocessor, or any combination thereof.

[0035] In some embodiments, the identification code recognition system 100 further includes a storage device (not shown).

[0036] Storage devices can be used to store data and / or instructions. A storage device may include one or more storage components, each of which may be a separate device or part of another device. In some embodiments, the storage device may be implemented on a cloud platform.

[0037] In some embodiments, the acquisition module 110 and the binding module 120 may be integrated or partially integrated on the processor.

[0038] In some embodiments, the application scenarios of the identification code recognition system 100 include a conveyor belt 10, a package 20, an identification code acquisition device 30, a 3D data acquisition device 40, and a controller 50. The controller 50 can be the aforementioned processor. Further details regarding this part can be found in the corresponding description of Figure 6.

[0039] For more information on the above, please refer to the corresponding descriptions in Figures 2-12.

[0040] It should be noted that the above description of the identification code recognition system 100 and its modules is for convenience only and should not be construed as limiting this specification to the scope of the embodiments described. It is understood that those skilled in the art, after understanding the principle of the system, may arbitrarily combine the various modules or construct subsystems connected to other modules without departing from this principle. In some embodiments, the acquisition module 110 and binding module 120 disclosed in FIG1 may be different modules in one system, or one module may implement the functions of two or more modules described above. For example, various modules may share a storage module, or each module may have its own storage module. Such variations are all within the scope of protection of this specification.

[0041] Figure 2 is an exemplary flowchart of an identification code recognition method according to some embodiments of this specification. In some embodiments, as shown in Figure 2, process 200 includes the following steps. Process 200 can be executed by a processor.

[0042] Step 210: At multiple acquisition time points where the position of the target object changes, acquire multiple candidate identification codes related to the target object and image position information corresponding to the multiple candidate identification codes.

[0043] A target object refers to an object that needs to be identified, such as multiple packages on a conveyor belt. Each package is a target object. The conveyor belt can be moving at a constant speed.

[0044] The target object has a barcode affixed to it. The barcode is an identifier that represents the target object.

[0045] A data collection time point refers to a discrete point in time at which the target object is collected. In some embodiments, during the conveyor belt transport process, the identification code recognition system 100 will identify the target object multiple times due to its different positions. Correspondingly, there are multiple data collection time points. For example, multiple data collection time points can be denoted as t1, t2, etc.

[0046] Candidate identifiers are identifiers that may represent the identity of a target object.

[0047] In some embodiments, the processor can acquire a grayscale image of the target object through a barcode reader camera, identify the barcode content decoded from each barcode frame in the grayscale image, and thus obtain multiple candidate identification codes related to the target object.

[0048] A barcode reader camera is a camera used to identify and interpret various graphic codes, integrating image acquisition and image decoding functions. Image decoding refers to the process of extracting hidden, meaningful, and structured information from an image filled with pixels.

[0049] Image location information refers to the two-dimensional position of the candidate identification code within the acquired image. Image location information can be represented by the coordinates of the candidate identification code within the image. For example, image location information can be represented by the coordinates of the four corner points of the barcode frame corresponding to the candidate identification code within the image.

[0050] In some embodiments, the processor can acquire grayscale images through a barcode reader camera, and then identify the coordinates of the four corner points of each barcode frame in the image, thereby obtaining image location information.

[0051] In some embodiments, the processor can calculate the coordinates of the center point of the barcode frame based on the coordinates of the four corner points of the barcode frame in the image. The center point coordinates refer to the position of the geometric center point of the barcode frame.

[0052] Understandably, if the processor recognizes the same barcode at different collection times, it can retain only the data related to the barcode from the most recent collection time, record the number of times the barcode is recognized as the number of reads, and send the relevant data to the storage device for storage.

[0053] In some embodiments, the processor can acquire initial images corresponding to multiple candidate identification codes through a code reader camera; determine whether the initial images meet the processing conditions; generate an optimized image based on the initial images when the initial images meet the processing conditions; and determine image location information based on the optimized images.

[0054] The initial image refers to the raw image block containing candidate identification codes, captured directly by the barcode reader camera without any software processing. The initial image may contain candidate identification codes that are wrinkled or distorted. In some embodiments, when a candidate identification code is identified, the processor crops a rectangular image block containing the candidate identification code and a small amount of edge background from the video stream or image frame acquired by the barcode reader camera, based on the position of the barcode frame, and uses this image block as the initial image.

[0055] Processing conditions refer to the preset conditions used to determine whether image optimization is needed.

[0056] In some embodiments, the processing condition includes that the wrinkle degree of the initial image is greater than a preset wrinkle threshold. Wrinkle degree is a numerical value used to reflect the degree of geometric deformation of the recognition box in an image. Wrinkle degree can be represented by a value from 0 to 100; the higher the value, the more severe the deformation of the barcode box corresponding to the candidate recognition code. For example, a wrinkle degree of 0 means that the barcode box has not been deformed. As another example, a wrinkle degree of 100 means that the barcode box is severely deformed and cannot be recognized as a rectangle. The preset wrinkle threshold refers to a pre-set critical value for wrinkle degree. The preset wrinkle threshold can be set based on actual needs.

[0057] In some embodiments, the processor may determine the wrinkle degree of the initial image based on the initial image by using a judgment model; and determine whether the initial image meets the processing conditions based on the wrinkle degree of the initial image.

[0058] An assessment model is a model used to determine the wrinkleness of an image. In some embodiments, the assessment model is a machine learning model. For example, the assessment model can be any one or a combination of Convolutional Neural Network (CNN), Neural Network (NN), or other custom model structures.

[0059] In some embodiments, the input to the assessment model is an initial image, and the output is the wrinkle degree of the initial image.

[0060] In some embodiments, the judgment model can be obtained in various ways. For example, the processor can use a labeled first dataset to train the judgment model using a backpropagation algorithm, minimizing the mean square error between the predicted wrinkle degree output and the manually labeled wrinkle degree. The labeled first dataset includes multiple first training samples and corresponding first labels. The processor can collect initial images taken in real-world scenes, containing various flat surfaces, slight wrinkles, severe wrinkles, and curved surfaces, as the first training samples; each initial image is then manually scored from 0 (perfect flat surface) to 100 (extremely distorted), serving as the first label corresponding to the first training sample.

[0061] As an example only, the processor can input the first training sample into the initial judgment model to obtain the output of the initial judgment model; based on the output of the initial judgment model and the first label, a loss function is constructed; based on the loss function, the parameters of the initial judgment model are iteratively updated; until the iteration termination condition is met, the training is complete, and a trained judgment model is obtained. The iteration termination condition includes the number of iterations reaching a threshold, the loss function converging, etc.

[0062] In some embodiments, when the wrinkle degree of the initial image is greater than a preset wrinkle threshold, the processor can determine that the initial image meets the processing conditions. Otherwise, the initial image does not meet the processing conditions.

[0063] In some embodiments of this specification, the use of an analysis model facilitates rapid identification of a large number of images, avoids unnecessary calculations, and enhances the robustness and adaptability of the system.

[0064] An optimized image is an image generated by flattening or unfolding the geometric deformations in an initial image.

[0065] In some embodiments, in response to an initial image meeting processing conditions, the processor can generate an optimized image based on the initial image in various ways (e.g., algorithmic processing). For example, taking an initial image as an example, the processor can acquire 3D point cloud data of the region corresponding to the initial image captured by a 3D camera, based on the initial image's capture time and camera position; based on the 3D point cloud data, a 3D surface mesh describing the physical surface of the region is fitted using a fitting algorithm; a mathematical mapping relationship from the 3D surface mesh to a standard 2D plane is calculated using a mesh parameterization algorithm; and using this mathematical mapping relationship, the initial image is transferred pixel by pixel onto the standard 2D plane to generate a geometrically flattened optimized image.

[0066] The capture time can be a timestamp automatically generated each time the barcode reader camera acquires an image. Camera position refers to the pose of the barcode reader camera when capturing the initial image. When the barcode reader camera is fixed, the camera position can be a fixed location, set according to actual needs. When the barcode reader camera is mounted on a mobile device, the camera position can be obtained through sensors, etc. Mobile devices include robotic arms, drones, etc. Sensors include absolute encoders, incremental encoders, etc.

[0067] A 3D camera is an imaging device capable of acquiring three-dimensional geometric information of the surface of a target object. 3D cameras include static 3D cameras and dynamic 3D cameras. A static 3D camera remains relatively stationary to the target object during a single data acquisition process. A dynamic 3D camera is capable of capturing 3D data in real-time or continuously even when there is relative motion between the camera and the target object.

[0068] Among them, three-dimensional point cloud data refers to three-dimensional data composed of a large number of discrete three-dimensional spatial points.

[0069] Fitting algorithms are algorithms used to reconstruct continuous surface meshes from discrete 3D point clouds. Fitting algorithms include Poisson surface reconstruction, Moving Least Squares (MLS), etc. The fitting algorithm can be set according to actual needs.

[0070] The physical surface refers to the actual surface morphology of the photographed object in the real world.

[0071] A 3D surface mesh is a model used to represent the surface of a 3D object, consisting of numerous interconnected polygons (usually triangles or quadrilaterals).

[0072] A standard two-dimensional plane refers to an idealized, undistorted two-dimensional plane.

[0073] Mesh parametric algorithms refer to the calculation process of assigning a two-dimensional coordinate (usually called UV coordinates) to each vertex of a 3D mesh surface. Mesh parametric algorithms include barycentric mapping, least-squares conformal mapping, etc. The mesh parametric algorithm can be set according to actual needs.

[0074] Mathematical mapping relationships refer to lookup tables or functions that correspond to each vertex on a three-dimensional surface mesh with each point on a standard two-dimensional plane.

[0075] In some embodiments, the processor can identify the coordinates of the four corner points of each barcode frame in the image based on the optimized image, and determine the image position information.

[0076] In some embodiments, after generating the optimized image, the processor can recognize and decode the optimized image to obtain its image location information and content information, and send this information to a storage device to overwrite the corresponding image location information and content information of the initial image. The content information refers to the barcode content decoded from the candidate identification code. For example, the content information might be (string) 0123. Recognition and decoding can be implemented using a barcode reader, etc. A barcode reader is a device that integrates image acquisition, image processing, and decoding algorithms. Barcode readers include barcode cameras, etc.

[0077] It is understandable that image location and content information obtained based on optimized images is more reliable than image location and content information obtained based on the initial image.

[0078] In some embodiments of this specification, for severely deformed barcodes (such as soft packaging and bottle labels) that are difficult to process, physical correction is used to eliminate the possibility of recognition errors at the source, turning unreadable codes into readable codes and improving the overall recognition accuracy. By differentiating based on processing conditions, planar barcodes are still processed through a fast path, ensuring the high throughput of the system. For initial images with wrinkles / bends, further processing is performed, realizing on-demand allocation of computing resources, so that the system can handle the most difficult problems without being slowed down by them.

[0079] Step 220: Based on multiple acquisition time points, image location information, and the location information of the target object at multiple acquisition time points, bind at least one of the multiple candidate identification codes to the target object.

[0080] Location information refers to a set of data used to describe the three-dimensional spatial state of a target object in the world coordinate system. For example, location information includes the three-dimensional information of the target object and its actual position. The world coordinate system refers to a predefined, stationary Cartesian coordinate system in three-dimensional physical space. The three-dimensional information of the target object includes its three-dimensional shape, size, and volume.

[0081] In some embodiments, the processor can acquire 3D point cloud data of the target object through a 3D camera, obtain a subset of the point cloud of the target object by segmenting the 3D point cloud data, fit a 3D model to the subset of the point cloud, and calculate the position information based on the fitted 3D model.

[0082] In some embodiments, the processor can bind at least one of multiple candidate identification codes to the target object using various methods based on multiple acquisition time points, image location information, and the target object's location information at multiple acquisition time points. For example, the processor can use a first preset algorithm to bind at least one of the multiple candidate identification codes to the target object. The first preset algorithm includes methods such as back projection ray tracing and forward projection verification. The first preset algorithm can be set according to actual needs.

[0083] In some embodiments, the processor can determine the target surface corresponding to each candidate identification code among a plurality of candidate identification codes based on the motion information of the target object and the image position information; bind each candidate identification code to the corresponding target surface, thereby achieving the binding of at least one of the plurality of candidate identification codes to the target object. For more details on this part, please refer to the corresponding description in Figure 3.

[0084] In some embodiments of this specification, by performing multiple dynamic identifications during the movement of the target object and binding them with time and space information, the random errors caused by single static identification can be effectively solved. By using spatiotemporal consistency verification, the candidate identification codes can be accurately associated with their physical carriers (target objects) from multiple candidate identification codes that may contain errors, which greatly improves the accuracy and robustness of binding candidate identification codes with target objects in high-speed and complex scenarios.

[0085] Figure 3 is an exemplary flowchart illustrating the binding of a candidate identification code to a target object according to some embodiments of this specification. In some embodiments, as shown in Figure 3, process 300 includes the following steps. Process 300 can be executed by a processor.

[0086] Step 310: Based on the motion information of the target object and the image position information, determine the target surface corresponding to each candidate identification code among multiple candidate identification codes.

[0087] Motion information refers to data related to the characteristics of the motion of a target object. For example, motion information includes the direction and speed of motion of the conveyor belt on which the target object is located. Motion information can be set by system defaults.

[0088] The target surface refers to the surface where the candidate identification code is located. In some embodiments, the target surface is associated with the target object, that is, the candidate identification code corresponding to the target surface belongs to the target object.

[0089] In some embodiments, the processor can determine the target surface corresponding to each candidate identification code among multiple candidate identification codes through various methods based on the motion information and image position information of the target object. For example, the processor can determine the target surface corresponding to each candidate identification code among multiple candidate identification codes through image recognition algorithms, image recognition models, or first preset rules. Image recognition algorithms include algorithms based on geometric projection and ray intersection, etc. Image recognition models include graph neural network (GNN) models, etc. The first preset rules include spatial proximity rules, etc. The image recognition algorithm, image recognition model, or first preset rule can be set according to actual needs.

[0090] In some embodiments, the processor may determine the target time point corresponding to each candidate identification code; determine the bounding box feature data corresponding to the target object at the target time point based on motion information; determine multiple candidate planes corresponding to the target object based on image location information and bounding box feature data; and determine the target surface corresponding to each candidate identification code based on image location information and multiple candidate planes.

[0091] The target time point refers to the moment when the candidate identification code is decoded, such as time t1.

[0092] In some embodiments, the processor can record the decoding time of each candidate identification code and, when needed, retrieve that decoding time as the target time point for the candidate identification code. It is understood that the decoding of the candidate identification code occurs after the image location information of the candidate identification code has been determined.

[0093] A bounding box is a virtual geometry used to digitally represent the spatial footprint of a target object. A bounding box can completely enclose the target object, has a minimal volume, and conforms to a specific geometry (such as a cube, sphere, or polygonal mesh). A polygonal mesh is an irregular convex body composed of multiple polygons (usually triangles). It's important to understand that the bounding box is not a component of the target object; its shape and size depend on the shape and size of the target object.

[0094] Bounding box feature data refers to the data set used to describe all information about a bounding box in three-dimensional space. For example, bounding box feature data includes all information such as the size and position of the bounding box. For instance, when the bounding box is a cube, the bounding box feature data includes the three-dimensional coordinates of its eight corner points. Another example is a sphere, which includes the coordinates of its center and radius. Yet another example is a polygonal mesh bounding box, which includes a vertex list and a face list. The vertex list is an ordered list containing the three-dimensional coordinates of all vertices. The vertex list can be represented as [V1(x1,y1,z1),V2(x2,y2,z2),…,V…]. n (x n ,y n ,z n )] indicates that, among which, V n Represents vertex n, (x n ,y n ,z n The coordinates of vertex n are represented by . A face list is a list of faces in a polygonal mesh, represented by vertex indices. A face list can be represented as [F1(index_V1,index_V2,index_V3),F2(index_V2,index_V4,index_V5),...], where F1 represents face 1, and (index_V1,index_V2,index_V3) represent the indices of the three vertices that make up face 1. For example, F1(0,1,2) means that face 1 is formed by connecting the 0th, 1st, and 2nd vertices in the vertex list.

[0095] For ease of explanation, this instruction manual uses a cubic bounding box as an example.

[0096] In some embodiments, the processor can determine the time difference between the target time point and the current time based on motion information and the target time point corresponding to each candidate identification code, determine the position of each package at the target time point by reverse calculation based on the speed and direction of the conveyor belt, and then determine the bounding box feature data of the target object at the target time point based on the 3D camera.

[0097] A candidate plane refers to a surface on which a candidate identifier may be located.

[0098] In some embodiments, the processor can determine multiple candidate planes corresponding to the target object in various ways based on image location information and bounding box feature data. For example, the processor can directly use the six planes formed by the eight corner points in the bounding box feature data as candidate planes.

[0099] In some embodiments, the processor can determine multiple projection planes corresponding to the target object based on bounding box feature data, and determine multiple candidate planes based on image position information and multiple projection planes.

[0100] The projection plane refers to the mapping of the three-dimensional surface of the target object onto a two-dimensional plane.

[0101] In some embodiments, the processor can, based on bounding box feature data, use a second preset algorithm to convert the coordinates of the eight corner points of the cube bounding box corresponding to the target object into image coordinates without distortion under an ideal camera using a rotation-translation (RT) matrix and the intrinsic parameters of the barcode reader camera. Then, using distortion coefficients, these image coordinates are converted into the position in the corresponding image coordinate system of the barcode reader camera, obtaining the coordinates PT1, PT2, PT3, PT4, PT5, PT6, PT7, and PT8 of the target object in the image coordinate system of the barcode reader camera, thereby obtaining the projection plane of the target object. The second preset algorithm can be a common open-source function, such as OpenCV. The RT matrix is ​​a matrix used to transform a point from the world coordinate system to the image coordinate system. The intrinsic parameters of the barcode reader camera refer to data related to the fixed geometric and optical characteristics inside the camera. The intrinsic parameters of the barcode reader camera can be represented by a matrix. The distortion coefficients are parameters used to describe and correct image distortion introduced by the camera lens. The image coordinate system of the barcode reader camera is a two-dimensional Cartesian coordinate system, with its origin located at the upper left corner of the image captured by the barcode reader camera. The X-axis extends horizontally to the right along the image, and the Y-axis extends vertically downward along the image.

[0102] In some embodiments, the processor can compare the two-dimensional coordinates of the candidate identification code with PT1, PT2, PT3, PT4, PT5, PT6, PT7, and PT8 of the target object based on image location information and multiple projection planes, and determine whether the center point coordinates of the candidate identification code fall within the bounding box enclosed by PT1 to PT8 of the target object. If it falls within the bounding box, the target object is determined as a candidate object for the candidate identification code; then, six planes of the candidate object are selected sequentially, and the planes on which the center point coordinates of the candidate identification code exist are identified, and these planes are recorded as candidate planes. A candidate object refers to the target object that the candidate identification code may correspond to.

[0103] In some embodiments of this specification, by using a projection plane for judgment, packages that cannot exist with candidate identification codes can be quickly and cost-effectively filtered out, avoiding more complex 3D calculations in the future, thereby improving efficiency.

[0104] In some embodiments, the processor can determine the target surface corresponding to each candidate identification code in various ways based on image location information and multiple candidate planes. For example, the processor can select one of the multiple candidate planes as the target surface corresponding to the candidate identification code using a second preset rule. The second preset rule could be something like minimizing the distance between the center point of the candidate plane and the center point of the candidate identification code. The second preset rule can be set based on experience.

[0105] In some embodiments of this specification, by determining the target time point and back-deriving the bounding box, it is ensured that the bounding box used for plane judgment is consistent with the time when the barcode is scanned, eliminating the spatial position deviation caused by the movement of the target object, and making the two-dimensional-three-dimensional association established on the same spatiotemporal reference; by filtering out candidate planes, it is effectively avoided to perform complex three-dimensional calculations or point cloud matching on all surfaces of all objects, and the efficiency of determining the subsequent binding of candidate identification codes to target objects is improved.

[0106] In some embodiments, the processor may determine a first direction vector corresponding to each candidate identification code based on image location information; determine multiple distances based on multiple first intersection points of the first direction vector with multiple candidate planes; and determine a target surface corresponding to each candidate identification code based on the multiple distances.

[0107] The first direction vector refers to the direction vector that originates from the optical center of the reader camera and passes through the center point of the candidate identification code.

[0108] In some embodiments, the processor can determine the center point coordinates of the candidate identification code based on image position information; extract parameters from the intrinsic parameters of the code-reading camera, including the value of the camera focal length in the x-direction, the value of the camera focal length in the y-direction, the offset of the camera principal point in the x-direction, and the offset of the camera principal point in the y-direction; calculate normalized image coordinates based on the aforementioned parameters and the center point coordinates of the candidate identification code; construct an initial direction vector based on the normalized image coordinates; and normalize the initial direction vector to obtain a first direction vector. The normalized image coordinates can be obtained by formula. Exemplary formulas are shown in formulas (1) and (2) below: x′=(centerPt.xc x ) / f x (1) y′=(centerPt.yc y / f y (2) Where x′ and y′ represent normalized image coordinates; centerPt.x and centerPt.y represent the center point coordinates of the candidate identification code; f x f represents the value of the camera's focal length in the x-direction; y This represents the camera's focal length in the y-direction; c x Indicates the offset of the camera's principal point in the x-direction; cy This represents the offset of the camera's principal point in the y-direction. The camera's focal length is the ratio of the physical focal length of the barcode reader to the pixel size. The camera's principal point is the pixel coordinate of the point where the optical axis of the barcode reader intersects the image sensor plane. The optical axis is an imaginary straight line originating from the optical center of the barcode reader and perpendicularly penetrating the image sensor plane. The optical center of the barcode reader is the converging center of all incident light paths in the camera's lens system. The image sensor is the component in the camera that converts light rays (optical image) passing through the lens into electronic signals (digital image).

[0109] An example initial direction vector could be vec{v}={x′,y′,1}.

[0110] Normalization is the process of converting a vector (or a set of data) into a unit vector with a magnitude (length) of 1 without changing its original direction. An exemplary normalization process includes: calculating the length of an initial direction vector, then calculating the ratio of each coordinate of the initial direction vector to its length, and using these ratios as the corresponding coordinates of the first direction vector. The length of the initial direction vector can be obtained by taking the square root of the sum of the squares of its coordinates.

[0111] The first intersection point refers to the intersection point of the first direction vector and the candidate plane.

[0112] In some embodiments, after determining the first direction vector, the processor can calculate multiple first intersection points between the first direction vector and the multiple candidate planes based on the mathematical equation corresponding to each candidate plane. The process of determining the mathematical equation corresponding to the candidate plane is as follows: Based on the bounding box feature data, determine the set of corner points constituting each candidate plane; select three non-collinear corner points in the candidate plane to determine two spatial vectors, and obtain the outward normal vector of the candidate plane through the cross product of these vectors; substitute the outward normal vector and the coordinates of one corner point into the point-normal plane equation, and simplify to the general form.

[0113] The distance refers to the length between the first intersection point and the optical center of the barcode reader. The distance can be calculated using methods such as the Euclidean distance between the first intersection point and the optical center of the barcode reader.

[0114] In some embodiments, the processor can select the candidate plane and candidate object corresponding to the minimum distance from multiple distances as the target surface and target object corresponding to the candidate identification code. For example, if the minimum distance from multiple distances to candidate identification code 1 corresponds to the upper surface of candidate object 1, then candidate object 1 is selected as the target object of candidate identification code 1, and the upper surface of candidate object 1 is selected as the target surface of candidate identification code 1.

[0115] In some embodiments of this specification, by introducing a distance comparison based on spatial geometry as the final criterion, the visual ambiguity problem in the binding of barcodes to the surface of packages is systematically and automatically solved, thereby achieving automated recognition with high precision, high reliability and strong robustness.

[0116] Step 320: Based on the target surface corresponding to each candidate identification code, determine the physical location information of each candidate identification code at the same reference time point.

[0117] A reference time point refers to a unified and standardized time reference point.

[0118] Physical location information refers to a set of data used to determine the location of a candidate identification code in the real world. In some embodiments, physical location information includes the physical location of the candidate identification code on a target object (target surface), specifically the positions of the four corner points of the candidate identification code in the world coordinate system on the target surface. In some embodiments, physical location information also includes the position of the candidate identification code in the real world relative to a reference object. A reference object is a clearly defined entity or virtual coordinate system whose own position and orientation can be used as a reference, such as a fixed world coordinate system, the package to which the candidate identification code belongs, a conveyor belt, etc. The reference object can be set based on actual needs.

[0119] In some embodiments, the processor can determine the physical location information of each candidate identification code at the same reference time point based on the target surface corresponding to each candidate identification code, using image recognition algorithms, image recognition models, or third preset rules. Image recognition algorithms include stereo vision matching algorithms, etc. Image recognition models include monocular depth estimation models, etc. Third preset rules include ray-plane intersection methods, etc. The image recognition algorithm, image recognition model, or third preset rule can be set according to actual needs.

[0120] In some embodiments, the processor may determine a second direction vector corresponding to each candidate identification code based on image location information; and determine physical location information based on multiple second intersection points between the second direction vector and the target surface.

[0121] The second direction vector refers to the direction vector pointing from the optical center of the reader camera to each of the four corner points of the candidate identification code.

[0122] The process of determining the second direction vector is similar to that of determining the first direction vector. The difference is that when calculating the normalized image coordinates, the coordinates of the center point of the candidate identification code are replaced with the coordinates of the four corner points of the candidate identification code. For more details, please refer to the previous description.

[0123] The second intersection point refers to the intersection point of the second direction vector and the target surface.

[0124] The process of determining the second intersection point is similar to that of determining the first intersection point, as described above.

[0125] In some embodiments, the processor can calculate the second intersection point of each second direction vector with the target surface as the position of the four corner points of the candidate identification code in world coordinates on the target surface, and as the physical location information of the candidate identification code at the same reference time point.

[0126] In some embodiments of this specification, the precise geometric contour and spatial orientation of the barcode on the target surface are reconstructed by calculating the three-dimensional coordinates (i.e., the position in the world coordinate system) of the four corner points; the robustness of barcode reading and the accuracy of error detection are improved by cross-validation of three-dimensional geometric information and two-dimensional image information.

[0127] Step 330: Bind each candidate identification code to the corresponding target surface.

[0128] Binding refers to the process of creating a persistent, queryable association within a processor. This association explicitly records which candidate identifier belongs to a specific target surface.

[0129] In some embodiments, the processor may use a first preset algorithm to bind each candidate identification code to a corresponding target surface. More details about the first preset algorithm can be found in the corresponding description of Figure 2.

[0130] In some embodiments of this specification, by unifying the physical location information of candidate identification codes to the same reference time point for comparison and judgment, the time difference caused by factors such as conveyor belt movement and asynchronous camera shooting is effectively eliminated; by parsing the candidate identification codes to their respective target surfaces, the binding errors caused by objects being close together or occluding each other are fundamentally solved; by anchoring the identification results to precise physical locations, the accuracy and reliability of identification code binding in complex scenarios are greatly improved.

[0131] In some embodiments, the processor can determine the judgment result of misidentification conflict based on the content information and physical location information corresponding to multiple candidate identification codes; and, based on the judgment result, determine the target identification code corresponding to the target object based on the multiple candidate identification codes.

[0132] For more information about the content, please refer to the corresponding description in Figure 2.

[0133] False identification conflict refers to an ambiguous or erroneous situation that occurs during the identification process of the system. In some embodiments, false identification conflict includes situations such as multiple barcodes for one identity (i.e., a target object is associated with multiple candidate identification codes).

[0134] The judgment result refers to the final conclusion regarding whether a misidentification conflict exists. The judgment result can be represented by a Boolean value, where 0 indicates that no misidentification conflict has occurred, and 1 indicates that a misidentification conflict has occurred.

[0135] In some embodiments, the processor can determine the judgment result of a misidentification conflict based on the content information and physical location information corresponding to multiple candidate identification codes through various methods. For example, the processor can determine the judgment result of a misidentification conflict through an image recognition algorithm, an image recognition model, or a fourth preset rule. Image recognition algorithms include decoding confidence and image quality assessment, etc. Image recognition models include object detection models based on convolutional neural networks, etc. The fourth preset rule includes geometric consistency rules, etc. The image recognition algorithm, image recognition model, or fourth preset rule can be set according to actual needs.

[0136] In some embodiments, the processor may determine the result of the misidentification conflict based on the first location set, and more details about this part can be found in the corresponding description of Figure 4.

[0137] A target identification code refers to an identification code on a target object.

[0138] In some embodiments, the processor can determine the target identification code corresponding to the target object based on multiple candidate identification codes and through various methods according to the judgment result. For example, the processor can determine the target identification code corresponding to the target object through an image recognition algorithm, an image recognition model, or a fifth preset rule. Image recognition algorithms include image quality assessment algorithms, etc. Image recognition models include target detection models based on convolutional neural networks, etc. The fifth preset rule includes geometric consistency rules, etc. The image recognition algorithm, image recognition model, or fifth preset rule can be set according to actual needs.

[0139] In some embodiments, the processor may determine whether a misidentification conflict has occurred based on the judgment result; in response to the occurrence of a misidentification conflict, determine a conflict association group corresponding to each target object, the conflict association group including multiple candidate identification codes; and, based on the evaluation features corresponding to the multiple candidate identification codes in the conflict association group, determine the target identification code corresponding to the target object from the multiple candidate identification codes in the conflict association group.

[0140] In some embodiments, after determining the judgment result, the processor can determine whether a misidentification conflict has occurred based on the judgment result. For example, when the judgment result is 1, the processor can determine that a misidentification conflict has occurred.

[0141] A conflict association group refers to a data group that contains conflicting candidate identifiers belonging to the same target object.

[0142] In some embodiments, a conflict association group includes multiple candidate identification codes. For example, if three candidate identification codes on a target object have a high degree of overlap, then these three candidate identification codes constitute a conflict association group.

[0143] In some embodiments, in response to a false identification conflict, the processor can traverse all candidate identification codes for the same target object and determine the conflict association group of the target object based on the degree of overlap between the candidate identification codes.

[0144] Overlap rate refers to the data used to measure the degree of overlap or proximity between candidate identification codes. More information about overlap rate can be found in the corresponding description in Figure 4.

[0145] Evaluation features are indicators used to quantitatively evaluate the reliability or quality of candidate identification codes.

[0146] In some embodiments, the evaluation features include at least one of the following: parent code count, number of reads, edge distance, etc.

[0147] The number of parent codes refers to the number of other candidate codes within a conflict association group that a candidate code can cover. For example, in the conflict association group {"SF12345678", "SF12345"}, "SF12345678" covers "SF12345", so the number of parent codes for "SF12345678" is 1, and the number of parent codes for "SF12345" is 0, and so on.

[0148] In some embodiments, the processor may traverse all candidate identification codes in a conflict association group, compare all candidate identification codes, and for each candidate identification code, check whether its content information covers the content information of other candidate identification codes in the group; count the number of other candidate identification codes that are covered, and use this count as the number of parent codes of that candidate identification code.

[0149] The number of reads refers to the cumulative number of times the content information of the same candidate identification code has been successfully scanned and identified in the current job cycle or historical records. The current job cycle refers to the complete and continuous processing time period from when a package (or target object) enters the processing area until it leaves the area. For example, the number of reads can be 1 time, 5 times, etc.

[0150] In some embodiments, the processor can obtain the number of reads directly from the storage device.

[0151] Edge distance refers to the distance of a candidate identification code from the edge of an image.

[0152] In some embodiments, the processor can calculate the pixel distances from the four sides of the barcode frame corresponding to the candidate identification code to the corresponding four edges of the image based on the coordinates of the four corner points of the candidate identification code, and select the minimum value among the four pixel distances as the edge distance of the candidate identification code. Pixel distance refers to the actual physical distance measured by the number of pixels in a digital image.

[0153] In some embodiments, the evaluation features also include image quality and imaging angle.

[0154] Image quality refers to data used to evaluate the sharpness, information integrity, and resolvability of an image corresponding to a candidate identification code. Image quality includes quantitative data from multiple dimensions of the candidate identification code, such as sharpness, contrast, and exposure.

[0155] Sharpness is a metric used to measure the sharpness of edges and details in an image. Sharpness can be obtained by calculating the variance using the Laplacian operator and then normalizing it.

[0156] Contrast ratio is a metric used to measure the degree of difference in brightness between dark and light modules in a candidate barcode. Contrast ratio can be represented as a normalized floating-point number, such as 0.92. It can be obtained through methods such as pixel intensity histograms. A pixel intensity histogram is a high-contrast barcode image where pixel values ​​cluster in two peak regions: black and white. The processor can obtain the contrast ratio by calculating the distribution breadth (e.g., standard deviation) of the pixel intensity histogram and then normalizing it. Normalization methods include Min-Max normalization.

[0157] Exposure is used to measure the degree to which an image loses detail due to being too bright (overexposed) or too dark (underexposed). Exposure can be obtained by calculating the percentage of pure white (pixel value 255) and pure black (pixel value 0) pixels in the total number of pixels in the image.

[0158] In some embodiments, the processor can obtain image quality based on a weighted average of sharpness, contrast, and exposure. An exemplary weighting formula can be shown in formula (3) below: Among them, IQS sharpness Indicates sharpness, Indicates exposure, IQS contrast The contrast ratio is represented by w1, w2, and w3, which represent the weighted average of sharpness, exposure, and contrast. The weighting of each metric can be set based on actual needs.

[0159] The imaging angle refers to the angle between the line of sight and the perpendicular direction of the target surface when a barcode reader camera captures a barcode. For example, imaging angles can be 0°, 20°, etc. The line of sight direction refers to the direction from the optical center of the barcode reader camera towards the geometric center of the barcode.

[0160] In some embodiments, the processor can take the unit vector perpendicular to the target surface as the normal vector and obtain the imaging angle by calculating the dot product of the first direction vector and the normal vector. For example, the imaging angle can be obtained by the following formula (4): cosθ=(V_view·V_normal) / (|V_view|*|V_normal|) (4) where θ represents the imaging angle; V_view represents the first direction vector; and V_normal represents the normal vector.

[0161] In some embodiments, when θ is close to 0°, it means that the line of sight is close to the vertical direction of the target surface, which is a nearly vertical frontal view; when θ is close to 90°, it means that the line of sight is close to the vertical direction of the target surface, which is an extreme squint.

[0162] When the number of reads for two candidate codes is very close, introducing new evaluation features can make the subsequently determined target identification code more accurate. At the same time, the new evaluation features (image quality and imaging angle) can identify unreliable identification results caused by physical conditions (different shooting angles, motion blur) and reduce their weight in the decision-making process, thereby making the identification results more accurate and reliable. By quantifying the imaging angle and image quality, the system can handle packages that are poorly positioned or shake at the moment of shooting, thus maintaining high accuracy under a wider range of harsher working conditions.

[0163] In some embodiments of this specification, by introducing the number of parent codes as an evaluation feature, the hierarchical relationship of the content information of candidate identification codes is incorporated into the misidentification judgment, which significantly improves the accuracy and reliability of target identification code determination; by utilizing the statistical regularity of the number of reads, accidental and transient misidentification results are effectively filtered out, enhancing the robustness of the system in complex environments and the stability of the output results; by evaluating edge distance, low-quality and high-risk identification results caused by poor imaging position can be identified and preferentially excluded, thereby improving the overall data quality at the source.

[0164] In some embodiments, the processor can determine the target identification code corresponding to the target object through various methods based on the number of parent codes, the number of reads, and the edge distance. For example, the processor can determine the target identification code based on one or more of the number of parent codes, the number of reads, and the edge distance. For instance, based on the number of reads, if the number of reads for a candidate identification code is greater than a threshold, the processor can determine that candidate identification code as the target identification code; or, based on the number of reads and the edge distance, if the number of reads for a candidate identification code is greater than a threshold and the edge distance is greater than a distance threshold, the processor can determine that candidate identification code as the target identification code. The threshold for the number of reads and the distance threshold can be set according to actual needs.

[0165] For example, the processor can first determine the candidate identification code based on the number of parent codes, including: if the conflict association group contains only two candidate identification codes, and one candidate identification code is the parent set of the other candidate identification code, then the candidate identification code is determined to be the target identification code; if the number of candidate identification codes in the conflict association group exceeds two, then the candidate identification code with the most parent codes is retained, and the other candidate identification codes are identified as errors and discarded. When the target identification code cannot be determined based on the number of parent codes (the number of retained candidate identification codes is greater than one), the processor can determine the target identification code based on the number of reads, including: comparing the candidate identification codes in the conflict association group pairwise; if the difference in the number of reads of two candidate identification codes is greater than a first preset threshold, and the number of reads of one candidate identification code is less than a second preset threshold, then the candidate identification code with the number of reads less than the second preset threshold is identified as an error and discarded. If the number of retained candidate identification codes is one, then the retained candidate identification code is the target identification code. If neither of the aforementioned methods succeeds in determining the candidate identification code (the number of retained candidate identification codes is greater than one), then a determination is made based on edge distance, including: if the edge distance of a candidate identification code is less than a distance threshold, and the code value length of the candidate identification code is less than the normal value, then the candidate identification code is determined to be an error and is discarded. If the number of retained candidate identification codes is one, then the retained candidate identification code is the target identification code.

[0166] Here, "error code" refers to a candidate identification code that is not the target identification code. Code length refers to the number of characters in the candidate identification code. Normal value refers to the common character length of a barcode. The normal value can be a fixed value (e.g., 13) or a range (e.g., 8-12). The first preset threshold, second preset threshold, and normal value can be set according to actual needs.

[0167] In some embodiments, when the aforementioned determination still fails to identify the target identification code (the number of retained candidate identification codes is greater than one), the processor may determine the target identification code based on one or more of image quality and imaging angle. For example, the processor may determine whether the image quality of the candidate identification code is greater than a quality threshold, and / or whether the imaging angle is less than an angle threshold. If at least one of these conditions is met, the candidate identification code is determined to be the target identification code.

[0168] In some embodiments, when the range of the number of reads of multiple candidate identification codes in a conflict association group and / or the number of parent codes meet preset conditions, the processor can determine the target identification code based on the identification code image set corresponding to the conflict association group and the evaluation features, using an optimization model. More details on this part can be found in the corresponding description in Figure 5.

[0169] In some embodiments of this specification, by determining conflict association groups for target objects, a systematic and modular governance of misidentification conflicts is achieved, decomposing complex problems into multiple sub-tasks that can be processed independently and in parallel, greatly improving processing efficiency and system manageability; by establishing a multi-layer decision mechanism based on evaluation features, it is beneficial to ensure the consistency and repeatability of decision results, and can effectively improve the accuracy of the determined target identification code.

[0170] In some embodiments, the processor can bind a target object to a corresponding target identification code.

[0171] In some embodiments of this specification, after determining whether a false identification conflict has occurred, the target object is bound to the target identification code, which can reduce the occurrence of false identification and improve the accuracy of binding.

[0172] In some embodiments of this specification, judging misidentification conflicts helps improve the accuracy of the subsequently determined target identification code. At the same time, misidentification conflicts can accurately locate identification errors caused by barcode damage, wrinkles, etc., and on this basis, an arbitration strategy is used to select the unique correct identification code from contradictory candidate codes, fundamentally solving the "reading error" problem and ensuring the accuracy and uniqueness of the final output result.

[0173] Figure 4 is an exemplary flowchart illustrating the determination of a misidentification conflict result according to some embodiments of this specification. In some embodiments, as shown in Figure 4, process 400 includes the following steps. Process 400 can be executed by a processor.

[0174] Step 410: Based on the content information and physical location information, determine the surface to be analyzed.

[0175] For more information on content and physical location, please refer to the corresponding description in Figure 3.

[0176] The surface to be analyzed refers to a surface on the package where a misidentification conflict may have occurred. In some embodiments, the surface to be analyzed is a surface bound to at least two candidate identification codes with different content information.

[0177] In some embodiments, the processor can traverse all target objects, and for each target object, examine all its surfaces; for each surface, read the content information of all candidate identification codes bound to it; if a surface is bound to multiple candidate identification codes, and the content information of the multiple candidate identification codes is not completely the same, then the surface is marked as a surface to be evaluated.

[0178] Step 420: Determine the first location set based on the surface to be analyzed.

[0179] The first location set refers to a set of three-dimensional data related to the physical location information of candidate identification codes bound to the surface to be analyzed. In some embodiments, the first location set includes the physical location information of multiple candidate identification codes bound to the surface to be analyzed at a reference time point. More details regarding the reference time point can be found in the corresponding description in Figure 3.

[0180] In some embodiments, the processor may select a reference time point, for example, from all candidate identification codes bound to the surface to be evaluated, select the earliest timestamp as the reference time point, add the candidate identification code to the first position set; perform coordinate time alignment on the remaining candidate identification codes, that is, calculate the world coordinates of the remaining candidate identification codes at the reference time point, and add them to the first position set.

[0181] The processor can calculate the world coordinates of the remaining candidate identification codes at the reference time point based on the physical location information of the reference time point and its corresponding candidate identification codes, using a formula. An exemplary formula can be shown in formula (5) below: P n [4]′=P n [4]+V*D*(T n -T1) (5) Where T1 represents the reference time point; T n P represents the reading time of candidate identifier n; n [4]′ represents the world coordinates of candidate identifier n at the reference time point (4 indicates that it includes 4 vertices); P n [4] represents the world coordinates of candidate identification code n at the time of code reading; V represents the speed of the conveyor belt; D represents the direction vector of the conveyor belt's movement direction.

[0182] Step 430: Based on the first location set, determine the judgment result of misidentification conflict.

[0183] In some embodiments, the processor can determine the judgment result of misidentification conflict based on a first location set in various ways. For example, assuming there are two candidate identification codes code1 and code2 in the first location set, if the physical location information of the two candidate identification codes is the same at the reference time point, the judgment result is determined to be "code1 and code2 have a misidentification conflict".

[0184] For more information on the judgment results, please refer to the corresponding description in Figure 3.

[0185] In some embodiments, the processor may determine at least one degree of overlap based on a first set of locations; and, based on at least one degree of overlap, determine whether a misidentification conflict has occurred.

[0186] At least one degree of overlap includes the degree of overlap between pairwise physical location information in the first location set. The degree of overlap can be expressed as the cross-union ratio (CURRR). The CURRR is a metric used to measure the degree of overlap between two regions.

[0187] In some embodiments, the processor may calculate the ratio of the intersection volume to the union volume of the regions corresponding to the world coordinates of each pair of candidate identification codes (i.e., the intersection-union ratio) based on the first location set, and use this ratio as the degree of overlap.

[0188] In some embodiments, the processor may determine a second set of locations with a dimension lower than the first set of locations based on the first set of locations; and determine at least one degree of overlap based on the second set of locations.

[0189] The second location set refers to the two-dimensional data set related to the physical location information of the candidate identification code bound to the surface to be analyzed.

[0190] The dimension is lower than that of the first position set, which means that the first position set is three-dimensional data and the second position set is two-dimensional data.

[0191] In some embodiments, the processor can project the physical location information in the first location set onto the image coordinate system of the same barcode reader camera, and include the coordinates in the image coordinate system into the second location set. For more information on the image coordinate system, please refer to the corresponding description in Figure 3.

[0192] In some embodiments, the processor may calculate the ratio of the intersection area to the union area of ​​the bars of each pair of candidate identification codes in the camera coordinate system based on the second location set, and use this ratio as the degree of overlap.

[0193] In some embodiments of this specification, the overlap problem in three-dimensional space is reduced to a two-dimensional image plane for processing, thereby reducing computational complexity and ensuring the real-time performance of the false collision detection process.

[0194] In some embodiments, the processor can determine whether the overlap degree is greater than an overlap degree threshold based on at least one overlap degree. If it is greater, it is determined that a false identification conflict has occurred. The overlap degree threshold can be set based on experience.

[0195] In some embodiments of this specification, by introducing a quantified degree of overlap as a criterion for judgment, the objectification and datafication of the false identification conflict detection process are realized, ensuring the consistency and repeatability of the decision results.

[0196] In some embodiments of this specification, by accurately defining and locating the surface to be assessed, the detection target is targeted, unnecessary computational overhead is avoided, and the efficiency of the entire conflict detection process is significantly improved. By constructing a first set of positions that is synchronized in time and space, the influence of object movement on position comparison is eliminated, providing a reliable and consistent data foundation for making accurate conflict judgments in the future.

[0197] Figure 5 is an exemplary schematic diagram of a preferred model shown according to some embodiments of this specification.

[0198] In some embodiments, when the range of the number of reads of multiple candidate identification codes in a conflict association group and / or the number of parent codes meet a preset condition, the processor can determine the target identification code 540 based on the identification code image set 510 corresponding to the conflict association group and the evaluation features 520 through the optimization model 530.

[0199] For more information on candidate identification codes, please refer to the corresponding description in section 2. For more information on read count, number of parent codes, conflict association groups, evaluation features, and target identification codes, please refer to the corresponding description in Figure 3.

[0200] The range of read counts refers to the difference between the maximum and minimum read counts among all candidate identifiers within the same conflict association group. For example, the range of read counts might be 2 or 4.

[0201] Preset conditions refer to the conditions that trigger the use of the preferred model. In some embodiments, preset conditions include the range of the number of reads of multiple candidate identification codes in a conflict association group being less than a quantity threshold, and / or the number of parent codes of multiple candidate identification codes in a conflict association group being 0, etc.

[0202] In some embodiments, the preset conditions include: the range of the number of reads of multiple candidate identification codes in the conflict association group is less than a quantity threshold, and the number of parent codes of multiple candidate identification codes in the conflict association group is 0.

[0203] The quantity threshold refers to a preset critical value for the range. For example, the quantity threshold could be 4 times, 5 times, etc.

[0204] A parent code count of 0 means that in a conflict association group, the content information of each candidate identifier is independent and does not contain each other. For example, in a conflict association group {"code1:123", "code3:I23"}, the two candidate identifiers do not contain each other, and in this case, the parent code count of the conflict association group is 0.

[0205] In some embodiments of this specification, conflict association groups are divided into two categories by preset conditions. Simple conflict association groups are judged through a multi-layer decision mechanism, while complex conflict association groups are subsequently processed by the model. This achieves optimal allocation of computing resources, ensuring high throughput and low latency for the entire system to process massive amounts of data while pursuing accuracy. At the same time, the preset conditions also provide stable, predictable, and configurable engineering parameters for the model's intervention, improving the system's stability and maintainability. By avoiding having the model process simple conflict association groups, the average computing cost and energy consumption required for system operation are reduced overall.

[0206] The identification code image set refers to the data set containing the initial image corresponding to each candidate identification code in the conflict association group. More information about the initial images can be found in the corresponding description in Figure 2.

[0207] The preferred model refers to the model used to determine the target identification code. In some embodiments, the preferred model is a machine learning model. For example, the preferred model is a Convolutional Neural Network (CNN), a gradient boosting decision tree model, or any other feasible model.

[0208] In some embodiments, the preferred model takes as input a set of identification code images 510 and evaluation features 520, and outputs a target identification code 540. The preferred model can determine the credibility of candidate identification codes. Credibility refers to the probability or confidence level of determining that a candidate identification code is a unique and correct identifier for a target object. In some embodiments, the preferred model can select the candidate identification code with the highest credibility among multiple candidate identification codes, and output it as the target identification code 540.

[0209] In some embodiments, the preferred model can be obtained in various ways, such as through training on a second dataset. The second dataset includes multiple second training samples and their corresponding second labels. The processor can continuously collect all cases of conflict association groups judged by the rule system or manually reviewed downstream from the online system, including all their historical evaluation features and historical identification code image sets, as second training samples; and manually label the target identification codes corresponding to the conflict association groups as the second labels corresponding to the second training samples. The online system refers to a complete software and hardware system that has been deployed and is processing actual business data in real time. The rule system refers to the software module in the online system that makes decisions based on preset logic and rules.

[0210] As an example only, the processor can input the second training sample into the initial optimization model to obtain the output of the initial optimization model; based on the output of the initial optimization model and the second label corresponding to the second training sample, a loss function is constructed; based on the loss function, the parameters of the initial optimization model are iteratively updated; until the iteration termination condition is met, the training is completed, and the trained optimization model is obtained. The iteration termination condition includes loss function convergence and the number of iterations reaching a threshold, etc.

[0211] In some embodiments of this specification, by using a preferred model for processing, the system can handle more complex fuzzy scenarios that cannot be covered by multi-layer judgment mechanisms; by learning from a large number of real cases, the preferred model can discover subtle features and complex relationships that are difficult for humans to perceive, thereby improving the accuracy of the determined target identification code.

[0212] Automated sorting is a current trend in the express delivery and logistics industry. It utilizes image processing to automatically identify package barcode information, and then employs mechanical swing arms and other devices for automated sorting. The key to automated sorting systems lies in barcode recognition technology. One-dimensional barcodes are typically linked to the sender's and recipient's addresses and contact numbers as unique identifiers for packages, and are crucial identification information during the express delivery process.

[0213] Figure 6 is a schematic diagram of an application scenario according to some embodiments of this specification. As shown in Figure 6, a package 20 is placed on the conveyor belt 10. A barcode scanning device 30 and a 3D data acquisition device 40 are arranged around the conveyor belt 10. There may be multiple barcode scanning devices 30 and 3D data acquisition devices 40. The barcode scanning devices 30 and 3D data acquisition devices 40 are arranged according to actual conditions and their positions are fixed.

[0214] The 3D data acquisition device 40 can be used to acquire images of packages 20 on the conveyor belt 10. The 3D data acquisition device 40 can acquire images according to a set cycle. The set cycle is a fixed time interval that controls the operation of the 3D data acquisition device, such as 100 milliseconds, 200 milliseconds, etc. By recognizing and analyzing the 3D images acquired by the 3D data acquisition device 40, the packages 20 on the conveyor belt 10 can be located and tracked. The image acquisition area of ​​the 3D data acquisition device 40, or a portion of the acquisition area, can be called the target area, and only packages 20 appearing in the target area can be located and tracked.

[0215] The barcode acquisition device 30 is used to acquire images of barcodes affixed to packages 20 on the conveyor belt 10. The barcode acquisition device 30 can acquire planar images according to a set cycle. By recognizing and analyzing the images acquired by the barcode acquisition device 30, the barcodes on each package 20 can be obtained, such as the character information corresponding to the identified barcode and the location information of the barcode area.

[0216] Based on the relevant information of the identification code on each package 20 and the location result of the package 20, the controller 50 can bind the package 20 with the matching identification code, that is, establish the correspondence between the package 20 (such as the package ID) and the identification code.

[0217] The identification code binding method provided in the embodiments of this specification can be implemented by a server or terminal alone, or by a server and terminal working together. In some embodiments, the terminal or server can implement the identification code binding method provided in the embodiments of this specification by running a computer program. For example, the computer program can be a native program or software module in an operating system; it can be a native application (APP), that is, a program that needs to be installed in the operating system to run, such as a client that supports virtual scenes, such as a game APP; it can also be a mini-program, that is, a program that only needs to be downloaded into a browser environment to run; or it can be a mini-program that can be embedded in any APP. In short, the above-mentioned computer program can be any form of application, module or plugin.

[0218] The following uses a server implementation as an example to illustrate the identification code binding method provided in the embodiments of this manual.

[0219] Figure 7 is a flowchart illustrating an identification code binding method according to some embodiments of this specification.

[0220] This embodiment provides a method for binding an identification code, which includes the following steps.

[0221] S1, Obtain the target identification code and package list; the target identification code is the identification code area obtained by detecting the planar image acquired for the target area; the package list includes multiple packages without bound identification codes; the multiple packages are obtained by recognizing multiple three-dimensional images acquired for the target area.

[0222] S2, based on the acquisition time of the target identification code, the acquisition time of each package, and the first position information of each package in the three-dimensional image, determine the second position information of each package in the three-dimensional image when the acquisition time of the target identification code is determined.

[0223] S3, based on the detection position of the target identification code in the planar image and the second position information of each package in the three-dimensional image, determine the package that matches the target identification code.

[0224] S4, binds the matched target identification code to the package.

[0225] It should be noted that the target identification code here corresponds to the candidate identification code in Figure 1-5, and the package corresponds to the target object in Figure 1-5.

[0226] Specifically, the specific implementation method for obtaining the target identification code and the package list in step S1 is as follows.

[0227] In some embodiments, during the conveyor belt transport process, a 3D data acquisition device acquires images of packages passing through the target area, obtaining a 3D image containing the packages. The 3D image can be an RGB image. Target detection is performed on the 3D image to obtain the first position information and size information of each package in the 3D image, such as the first position information (x1, y1, z1). The size information includes length, width, and height. In some embodiments, when the package is a cube, the first position information of the package includes the first position information of its eight vertices. The 3D image has a corresponding 3D image coordinate system, and all 3D images acquired by the same 3D data acquisition device have the same 3D image coordinate system. Each first position information in the 3D image is located in its corresponding 3D image coordinate system. In some embodiments, the 3D data acquisition device is a static 3D camera. The 3D image coordinate system is the world coordinate system.

[0228] The barcodes on packages passing through the target area are captured by a barcode acquisition device, resulting in a planar image containing the barcodes. The planar image is then inspected and the barcodes are read to obtain the character data corresponding to each barcode and the detection position of the barcode region. The barcode region can be either rectangular or square. The detection position of the barcode region includes the coordinates of the four vertices or the coordinates of the diagonal vertices. For example, the coordinates of a vertex are (x...). a y aIn this context, a planar image has a corresponding planar image coordinate system. All planar images acquired by the same identification code acquisition device share the same planar image coordinate system, and each detection position in the planar image lies within its corresponding planar image coordinate system. In some embodiments, the identification code acquisition device is a barcode reader camera. The planar image coordinate system is the image coordinate system of the barcode reader camera.

[0229] In this embodiment, the three-dimensional data acquisition device and the identification code acquisition device have corresponding RT matrices to realize the position transformation between the three-dimensional image coordinate system and the planar image coordinate system.

[0230] The above steps generate a package list consisting of multiple packages collected within a preset time period. Each package in the package list is unique, and none are bound to an identification code. Similarly, the above steps generate an identification code list consisting of multiple identification codes collected within the preset time period. Each identification code in the identification code list has unique characters, and none are bound to a package. Each identification code in the identification code list is then used as a target identification code. The target identification codes are compared with the packages in the package list to determine the packages that match the target identification codes.

[0231] In some embodiments, the specific implementation of determining the second position information of each package in the three-dimensional image based on the acquisition time of the target identification code, the acquisition time of each package, and the first position information of each package in the three-dimensional image in step S2 is as follows.

[0232] In some embodiments, the time difference corresponding to each package is determined based on the acquisition time of the target identification code and the acquisition time of the 3D image to which each package belongs. Based on the first position information of each package in its respective 3D image and the time difference of the packages, the second position information of each package in the 3D image is determined when the acquisition time of the target identification code is determined.

[0233] In some embodiments, the time difference corresponding to each package is determined based on the acquisition time of the planar image to which the target identification code belongs and the acquisition time of the three-dimensional image to which each package belongs. Based on the first position information of the package in its respective three-dimensional image, the conveyor belt speed, and the conveyor direction, the second position information of each package in the three-dimensional image at the acquisition time of the target identification code is determined. That is, the second position information of each package in the package list at the acquisition time of the identification code in the three-dimensional image is obtained. The second position information of the package in the three-dimensional image is, for example, second position information (x2, y2, z2). In some embodiments, the second position information of the package includes the second position information corresponding to each of the eight vertices. The second position information is located in the three-dimensional image coordinate system.

[0234] Figure 8 is an exemplary flowchart of a specific embodiment of step S3 in the identification code binding method provided in Figure 7.

[0235] Specifically, the specific implementation method for determining the package that matches the target identification code in step S3 based on the detection position of the target identification code in the planar image and the second position information of each package in the three-dimensional image is as follows.

[0236] S31, transform the second position information wrapped in the three-dimensional image to the planar image coordinate system to obtain the third position information wrapped in the planar image coordinate system.

[0237] Specifically, based on open-source functions, the second position information wrapped in the 3D image is transformed into the planar image coordinate system corresponding to the target identification code. Specifically, through the RT matrix between the 3D data acquisition device and the identification code acquisition device, the intrinsic parameters of the identification code acquisition device, and the distortion coefficients, the second position information wrapped in the 3D image is transformed into the planar image coordinate system corresponding to the target identification code, obtaining the coordinates wrapped in the planar image, i.e., the third position information. The third position information wrapped in the planar image coordinate system includes the third position information (x3, y3) of the eight vertices PT1, PT2, PT3, PT4, PT5, PT6, PT7, and PT8 in the planar image coordinate system.

[0238] S32, based on the detection position of the target identification code in the planar image coordinate system and the third position information of the package in the planar image coordinate system, determine whether the target identification code is on the package.

[0239] In some embodiments, the bounding box corresponding to the wrapping is determined based on the third position information of each vertex in the planar image coordinate system. That is, the bounding box corresponding to the wrapping is obtained by sequentially connecting the outermost vertices of the eight vertices wrapped in the planar image.

[0240] Determine whether the target identification code area is located inside the package's outer box.

[0241] In some embodiments, it is determined whether the target identification code area is contained within the outer box of the package; or, it is determined whether the target identification code area intersects with the outer box of the package; or it is determined whether the preset position of the target identification code area is within the outer box of the package.

[0242] In some embodiments, it is determined whether the center point of the target identification code is within the bounding box of the package. Here, the center point of the target identification code is the center point of the target identification code area.

[0243] If the center point of the target identification code is located within the bounding box corresponding to the package, then the target identification code is determined to be on the package.

[0244] In some embodiments, in response to the target identification code being on at least two packages, the detection position of the target identification code in the planar image coordinate system is transformed to the three-dimensional image coordinate system to determine the direction vector corresponding to the target identification code. This further determines which surface of the package the target identification code is on, thereby improving the matching accuracy between the package and the target identification code.

[0245] In some embodiments, the direction vector of the target identification code in the three-dimensional image coordinate system is generated based on the intrinsic parameters of the identification code acquisition device and the detection position of the center point of the target identification code in the planar image.

[0246] In some embodiments, the intrinsic parameters of the identification code acquisition device include the value of the focal length of the identification code acquisition device in the x-direction (f x ), the value of the focal length of the identification code acquisition device in the y-direction (f) y ), the offset value of the principal point of the identification code acquisition device in the x-direction (c) x ), the offset value of the principal point of the identification code acquisition device in the y direction (c y The center point coordinates of the target identification code are (centerPt.x, centerPt.y). Based on the intrinsic parameters of the identification code acquisition device, the center point of the target identification code is normalized to obtain the image coordinates of the center point of the target identification code as shown in formulas (1) and (2) above. The direction vector of the center point of the target identification code is constructed as vec{v}=(x′,y′,1). The distance between the center point of the target identification code and the identification code acquisition device corresponding to the target identification code is taken as the length of the direction vector of the center point of the target identification code len=sqrt(x ′2 +y ′2 +1 2 Based on the length of the direction vector of the center point of the target identification code and the constructed direction vector of the center point of the target identification code, the direction vector of the target identification code in the three-dimensional image coordinate system is determined as follows.

[0247] When the enclosure is a cube, it has six surfaces. The plane equations corresponding to each surface are generated based on the second position information of the four vertices of each plane in the 3D image.

[0248] Based on the direction vector of the target identification code and the plane equations of each surface corresponding to each package, the target surface on each package that intersects with the target identification code is determined. Based on the second position information of the intersection points between the target surface on the package and the target identification code, the distance between each package and the 3D data acquisition device for acquiring 3D images is determined.

[0249] The above steps obtain the distance between each package corresponding to the target identification code and the 3D data acquisition device. The package with the shortest distance is then matched with the target identification code.

[0250] Figure 9 is an exemplary flowchart of an identification code binding method according to other embodiments of this specification. In some embodiments, the identification code binding method further includes the following steps.

[0251] S5, in response to the package being bound to at least two different identification codes, determines whether the identification codes overlap based on the detection position of each identification code in its respective planar image and the acquisition time of each planar image.

[0252] The step of determining whether the identification codes overlap based on the detection position of each identification code in its respective planar image and the acquisition time of each planar image includes the following implementation methods.

[0253] Because when the identification code acquisition device collects identification codes, within a fixed time period, the distance traveled by identification codes closer to the device is greater than the distance traveled by identification codes farther away. To reduce this inconsistency in the travel distance of the identification code acquisition device, [further measures are needed].

[0254] In some embodiments, the initial three-dimensional coordinate position of the identification code in the three-dimensional image coordinate system is determined based on the detection position of the identification code in the corresponding planar image; the updated three-dimensional coordinate position of each identification code at a preset time is determined based on the acquisition time of the planar image to which each identification code belongs and the initial three-dimensional coordinate position of the identification code in the three-dimensional image coordinate system; the updated three-dimensional coordinate positions of each identification code are projected onto the same planar image coordinate system to determine whether the identification codes overlap.

[0255] In some embodiments, when a package is bound with a first identification code and a second identification code, the initial three-dimensional coordinate positions P1 and P2 of the first and second identification codes in the same three-dimensional image coordinate system are determined based on the detection positions of the first and second identification codes in their respective planar images. The acquisition time of the planar image to which the first identification code belongs is T1, and the acquisition time of the planar image to which the second identification code belongs is T2. The initial three-dimensional coordinate position P2 of the second identification code is transformed to time T1 to obtain the updated three-dimensional coordinate position of the second identification code, such as P2′=P2+V*D*(T2-T2). Where V is the conveyor speed of the conveyor belt, and D is the direction vector of the conveyor belt movement.

[0256] The initial three-dimensional coordinate position P1 of the first identification code and the updated three-dimensional coordinate position P2′ of the second identification code are projected onto the planar image coordinate system of the same identification code acquisition device, thereby determining whether the projection area of ​​the first identification code coincides with the projection area of ​​the second identification code.

[0257] If the projection area of ​​the first identification code coincides or partially coincides with the projection area of ​​the second identification code, it indicates that the first identification code and the second identification code may be the same identification code.

[0258] If the projection areas of the first identification code and the second identification code do not overlap, then the first identification code and the second identification code are determined to be different identification codes. The first identification code is then bound to the package, and the second identification code is also bound to the package.

[0259] In some embodiments, the three-dimensional coordinate positions of the first identification code and the second identification code can be aligned to any given time.

[0260] S6, in response to the overlap between the identification codes bound to the package, filter each identification code bound to the package.

[0261] Specifically, the steps for filtering the identification codes associated with the package include the following implementation methods.

[0262] In some embodiments, the character information of the first identification code is compared with the character information of the second identification code.

[0263] In some embodiments, in response to the fact that the character information of the first identification code is a subset of the character information of the second identification code, the first identification code is determined to be an error.

[0264] For example, if the character information of the first identification code is SF12345 and the character information of the second identification code is SF12345678, then the character information of the first identification code is a subset of the character information of the second identification code, and the first identification code is determined to be an error.

[0265] In some embodiments, in response to the absence of an inclusion relationship between the character information of the first identification code and the character information of the second identification code, the number of times the first identification code is read is compared with the number of times the second identification code is read.

[0266] In some embodiments, in response to a difference between the number of times the first identification code is read and the number of times the second identification code is read being greater than a preset difference, and the number of times the first identification code is read or the number of times the second identification code is read being less than a preset number, the identification code corresponding to the number of reads less than the preset number is determined to be an error code.

[0267] For example, if the preset number of reads is 3 and the preset difference is 5, and the first identification code is read a total of 10 times within a preset time period while the second identification code is read a total of 1 time, then the second identification code is determined to be an error.

[0268] In some embodiments, in response to the difference between the number of times the first identification code is read and the number of times the second identification code is read not being greater than a preset difference, or the number of times the first identification code and the second identification code are both not less than a preset number, the detection positions of the first identification code and the second identification code in their respective planar images are compared.

[0269] In some embodiments, the second identification code is determined to be an error code if the distance between the second identification code and the edge of the corresponding planar image is less than a preset value and the character length of the second identification code is less than a preset length.

[0270] For example, if the distance between the edge of the region of the second identification code and the edge of the corresponding planar image is less than a preset value, then the character length of the second identification code is less than 10 characters, and the second identification code is determined to be an error.

[0271] The identification code binding method provided in this embodiment matches the target identification code with the packages in the package list, aligns the coordinate position of the package in the three-dimensional image with the acquisition time of the target identification code, and then determines the package that matches the target identification code based on the three-dimensional coordinate information of each package at the acquisition time of the target identification code, thereby improving the matching accuracy of packages and identification codes and thus helping to achieve accurate binding of identification codes and packages.

[0272] Figure 10 is a schematic diagram of the frame of an identification code binding device according to some embodiments of this specification.

[0273] This embodiment provides an identification code binding device 60, which includes an acquisition module 61, a conversion module 62, an analysis module 63, and a binding module 64.

[0274] The acquisition module 61 is used to acquire the target identification code and the package list; the target identification code is the identification code area obtained by detecting the planar image acquired for the target area; the package list includes multiple packages without bound identification codes; the multiple packages are obtained by recognizing multiple three-dimensional images acquired for the target area.

[0275] The conversion module 62 is used to determine the second position information of each package in the three-dimensional image when the target identification code is acquired, based on the acquisition time of the target identification code, the acquisition time of each package, and the first position information of each package in the three-dimensional image.

[0276] The analysis module 63 is used to determine the package that matches the target identification code based on the detection position of the target identification code in the planar image and the second position information of each package in the three-dimensional image.

[0277] The binding module 64 is used to bind the matched target identification code to the package.

[0278] The identification code binding device provided in this embodiment matches the target identification code with the packages in the package list, aligns the coordinate position of the package in the three-dimensional image with the acquisition time of the target identification code, and then determines the package that matches the target identification code based on the three-dimensional coordinate information of each package at the acquisition time of the target identification code, thereby improving the matching accuracy of the package and the identification code, and thus helping to achieve accurate binding of the identification code and the package.

[0279] Figure 11 is a schematic diagram of the framework of an electronic terminal according to some embodiments of this specification. The electronic terminal 80 includes a memory 81 and a processor 82 coupled to each other. The processor 82 is used to execute computer instructions stored in the memory 81 to implement the steps of any of the above-described identification code binding method embodiments. In a specific implementation scenario, the electronic terminal 80 may include, but is not limited to, a microcomputer or a server. Furthermore, the electronic terminal 80 may also include mobile devices such as laptops and tablets, which are not limited here.

[0280] The processor 82 controls itself and the memory 81 to implement the steps of any of the above-described identification code binding method embodiments. The processor 82 may also be referred to as a CPU. The processor 82 may be an integrated circuit chip with signal processing capabilities. The processor 82 may also be a general-purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The general-purpose processor may be a microprocessor or any conventional processor. Furthermore, the processor 82 may be implemented using integrated circuit chips.

[0281] The above scheme includes the following identification code binding method: obtaining a target identification code and a package list; the target identification code is an identification code region detected from a planar image collected for the target area; the package list includes multiple packages without bound identification codes; the multiple packages are identified from multiple three-dimensional images collected for the target area; based on the acquisition time of the target identification code and the acquisition time of each package, and the first position information of each package in the three-dimensional image, the second position information of each package in the three-dimensional image is determined when the target identification code is acquired; based on the detection position of the target identification code in the planar image and the second position information of each package in the three-dimensional image, the package matching the target identification code is determined; and the matched target identification code is bound to the package.

[0282] Figure 12 is a schematic diagram of a computer-readable storage medium according to some embodiments of this specification. The computer-readable storage medium 90 stores program instructions 901 executable by a processor, the program instructions 901 being used to implement the steps of any of the above-described identification code binding method embodiments.

[0283] The above scheme includes the following identification code binding method: obtaining a target identification code and a package list; the target identification code is an identification code region detected from a planar image collected for the target area; the package list includes multiple packages without bound identification codes; the multiple packages are identified from multiple three-dimensional images collected for the target area; based on the acquisition time of the target identification code and the acquisition time of each package, and the first position information of each package in the three-dimensional image, the second position information of each package in the three-dimensional image is determined when the target identification code is acquired; based on the detection position of the target identification code in the planar image and the second position information of each package in the three-dimensional image, the package matching the target identification code is determined; and the matched target identification code is bound to the package.

[0284] In some embodiments, the functions or modules of the apparatus provided in this disclosure can be used to perform the methods described in the above method embodiments. The specific implementation can be referred to the description of the above method embodiments, and for the sake of brevity, it will not be repeated here.

[0285] The description of the various embodiments above tends to emphasize the differences between the various embodiments. The similarities or similarities between them can be referred to, and for the sake of brevity, they will not be repeated here.

[0286] In the several embodiments provided in this specification, it should be understood that the disclosed methods and apparatus can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection of devices or units may be electrical, mechanical, or other forms.

[0287] Furthermore, the functional units in the various embodiments of this specification can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0288] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this specification, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the methods of the various embodiments of this specification. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0289] The above are merely embodiments of this specification and do not limit the scope of patent protection of this specification. Any equivalent structural or procedural changes made using the content of this specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the scope of patent protection of this specification.

Claims

1. A method for recognizing identification codes, characterized in that, The method includes: At multiple acquisition time points where the position of the target object changes, acquire multiple candidate identification codes related to the target object and image location information corresponding to the multiple candidate identification codes; and... Based on the multiple acquisition time points, the image location information, and the location information of the target object at the multiple acquisition time points, at least one of the multiple candidate identification codes is bound to the target object.

2. The method of claim 1, wherein, The step of binding at least one of the multiple candidate identification codes to the target object based on the multiple acquisition time points, the image location information, and the target object's location information at the multiple acquisition time points includes: Based on the motion information of the target object and the image position information, the target surface corresponding to each candidate identification code among the plurality of candidate identification codes is determined, and the target surface is related to the target object; Based on the target surface corresponding to each candidate identification code, determine the physical location information of each candidate identification code at the same reference time point; and... Each candidate identification code is bound to the corresponding target surface.

3. The method of claim 2, wherein, The method further includes: Based on the content information corresponding to the multiple candidate identification codes and the physical location information, the judgment result of misidentification conflict is determined; and, Based on the judgment result, the target identification code corresponding to the target object is determined based on the multiple candidate identification codes.

4. The method of claim 3, wherein, The step of binding at least one of the multiple candidate identification codes to the target object based on the multiple acquisition time points, the image location information, and the target object's location information at the multiple acquisition time points includes: The target object is bound to the corresponding target identification code.

5. The method according to claim 2, characterized in that, The step of determining the target surface corresponding to each candidate identification code among the plurality of candidate identification codes based on the motion information of the target object and the image position information includes: Determine the target time point corresponding to each candidate identification code; Based on the motion information, the bounding box feature data of the target object at the target time point are determined; Based on the image location information and the bounding box feature data, multiple candidate planes corresponding to the target object are determined; and, Based on the image location information and the multiple candidate planes, the target surface corresponding to each candidate identification code is determined.

6. The method of claim 5, wherein, The step of determining multiple candidate planes corresponding to the target object based on the image location information and the bounding box feature data includes: Based on the bounding box feature data, multiple projection planes corresponding to the target object are determined, and... Based on the image location information and the multiple projection planes, the multiple candidate planes are determined.

7. The method of claim 5, wherein, The step of determining the target surface corresponding to each candidate identification code based on the image location information and the plurality of candidate planes includes: Based on the image location information, determine the first direction vector corresponding to each candidate identification code; Based on the first intersection points of the first direction vector and the plurality of candidate planes, a plurality of distances are determined; and, Based on the multiple distances, the target surface corresponding to each candidate identification code is determined.

8. The method of claim 2, wherein, The step of determining the physical location information of each candidate identification code at the same reference time point based on the target surface corresponding to each candidate identification code includes: Based on the image location information, determine the second direction vector corresponding to each candidate identification code; and, The physical location information is determined based on multiple second intersection points between the second direction vector and the target surface.

9. The method of claim 3, wherein, The determination of the misidentification conflict based on the content information corresponding to the multiple candidate identification codes and the physical location information includes: Based on the content information and the physical location information, a surface to be analyzed is determined, wherein the surface to be analyzed is a surface bound with at least two candidate identification codes with different content information. Based on the surface to be analyzed, a first location set is determined, the first location set including the physical location information of multiple candidate identification codes bound to the surface to be analyzed corresponding to the reference time point; and Based on the first set of locations, the judgment result of the misidentification conflict is determined.

10. The method of claim 9, wherein, The determination result of the misidentification conflict based on the first location set includes: Based on the first set of locations, determine at least one degree of overlap; and Based on the at least one degree of overlap, determine whether the misidentification conflict has occurred.

11. The method of claim 10, wherein, Determining at least one degree of overlap based on the first set of locations includes: Based on the first set of locations, determine a second set of locations with a dimension lower than the first set of locations; and... Based on the second set of locations, the at least one degree of overlap is determined.

12. The method of claim 3, wherein, The step of determining the target identification code corresponding to the target object based on the judgment result and the plurality of candidate identification codes includes: Based on the judgment result, determine whether the misidentification conflict has occurred; In response to the occurrence of the aforementioned misidentification conflict, Determine a conflict association group corresponding to each target object, wherein the conflict association group includes multiple candidate identification codes; and, Based on the evaluation features corresponding to the multiple candidate identification codes in the conflict association group, the target identification code corresponding to the target object is determined from the multiple candidate identification codes in the conflict association group.

13. The method of claim 12, wherein, The evaluation features include at least one of the following: number of parent codes, number of reads, and edge distance.

14. An identification code identification system characterized by The system includes: At least one storage medium, including a set of instructions; At least one processor communicating with the at least one storage medium, wherein, when executing the set of instructions, the at least one processor instructs the system to perform an operation, the operation including: At multiple acquisition time points where the position of the target object changes, acquire multiple candidate identification codes related to the target object and image location information corresponding to the multiple candidate identification codes; and... Based on the multiple acquisition time points, the image location information, and the location information of the target object at the multiple acquisition time points, at least one of the multiple candidate identification codes is bound to the target object.

15. The system according to claim 14, characterized in that, The step of binding at least one of the multiple candidate identification codes to the target object based on the multiple acquisition time points, the image location information, and the target object's location information at the multiple acquisition time points includes: Based on the motion information of the target object and the image position information, the target surface corresponding to each candidate identification code in the plurality of candidate identification codes is determined, and the target surface is related to the target object; Based on the target surface corresponding to each candidate identification code, determine the physical location information of each candidate identification code at the same reference time point; and... Each candidate identification code is bound to the corresponding target surface.

16. The system of claim 15, wherein, The operation also includes: Based on the content information corresponding to the multiple candidate identification codes and the physical location information, the judgment result of misidentification conflict is determined; and, Based on the judgment result, the target identification code corresponding to the target object is determined based on the multiple candidate identification codes.

17. The system of claim 16, wherein, The step of binding at least one of the multiple candidate identification codes to the target object based on the multiple acquisition time points, the image location information, and the target object's location information at the multiple acquisition time points includes: The target object is bound to the corresponding target identification code.

18. The system according to claim 15, characterized in that, The step of determining the target surface corresponding to each candidate identification code among the plurality of candidate identification codes based on the motion information of the target object and the image position information includes: Determine the target time point corresponding to each candidate identification code; Based on the motion information, the bounding box feature data of the target object at the target time point are determined; Based on the image location information and the bounding box feature data, multiple candidate planes corresponding to the target object are determined; and, Based on the image location information and the multiple candidate planes, the target surface corresponding to each candidate identification code is determined.

19. The system of claim 18, wherein, The step of determining multiple candidate planes corresponding to the target object based on the image location information and the bounding box feature data includes: Based on the bounding box feature data, multiple projection planes corresponding to the target object are determined, and... Based on the image location information and the multiple projection planes, the multiple candidate planes are determined.

20. The system of claim 18, wherein, The step of determining the target surface corresponding to each candidate identification code based on the image location information and the plurality of candidate planes includes: Based on the image location information, determine the first direction vector corresponding to each candidate identification code; Based on the first intersection points of the first direction vector and the plurality of candidate planes, a plurality of distances are determined; and, Based on the multiple distances, the target surface corresponding to each candidate identification code is determined.

21. The system of claim 15, wherein, The step of determining the physical location information of each candidate identification code at the same reference time point based on the target surface corresponding to each candidate identification code includes: Based on the image location information, determine the second direction vector corresponding to each candidate identification code; and, The physical location information is determined based on multiple second intersection points between the second direction vector and the target surface.

22. The system of claim 16, wherein, The determination of the misidentification conflict based on the content information corresponding to the multiple candidate identification codes and the physical location information includes: Based on the content information and the physical location information, a surface to be analyzed is determined, wherein the surface to be analyzed is a surface bound with at least two candidate identification codes with different content information. Based on the surface to be analyzed, a first location set is determined, the first location set including the physical location information of multiple candidate identification codes bound to the surface to be analyzed corresponding to the reference time point; and Based on the first set of locations, the judgment result of the misidentification conflict is determined.

23. The system according to claim 22, characterized in that, The determination result of the misidentification conflict based on the first location set includes: Based on the first set of locations, determine at least one degree of overlap; and Based on the at least one degree of overlap, determine whether the misidentification conflict has occurred.

24. The system according to claim 23, characterized in that, Determining at least one degree of overlap based on the first set of locations includes: Based on the first set of locations, determine a second set of locations with a dimension lower than the first set of locations; and... Based on the second set of locations, the at least one degree of overlap is determined.

25. The system according to claim 16, characterized in that, The step of determining the target identification code corresponding to the target object based on the judgment result and the plurality of candidate identification codes includes: Based on the judgment result, determine whether the misidentification conflict has occurred; In response to the occurrence of the aforementioned misidentification conflict, Determine a conflict association group corresponding to each target object, wherein the conflict association group includes multiple candidate identification codes; and, Based on the evaluation features corresponding to the multiple candidate identification codes in the conflict association group, the target identification code corresponding to the target object is determined from the multiple candidate identification codes in the conflict association group.

26. The system according to claim 25, characterized in that, The evaluation features include at least one of the following: number of parent codes, number of reads, and edge distance.

27. A code recognition system, characterized in that, The system includes: The acquisition module is configured to acquire multiple candidate identification codes related to the target object and image location information corresponding to the multiple candidate identification codes at multiple acquisition time points where the position of the target object changes; and, The binding module is configured to bind at least one of the multiple candidate identification codes to the target object based on the multiple acquisition time points, the image location information, and the location information of the target object at the multiple acquisition time points.

28. A computer-readable storage medium, characterized in that, The storage medium stores computer instructions. When the computer reads the computer instructions from the storage medium, the computer executes an identification code recognition method, including: At multiple acquisition time points where the position of the target object changes, acquire multiple candidate identification codes related to the target object and image location information corresponding to the multiple candidate identification codes; and... Based on the multiple acquisition time points, the image location information, and the location information of the target object at the multiple acquisition time points, at least one of the multiple candidate identification codes is bound to the target object.