Animal tag with matrix code indicia and holes
Through a matrix code marking system combining global dictionary and local dictionary, combined with IR and visible spectral cameras, the existing animal identification tags have been solved in terms of recognition accuracy and cost, and efficient and accurate animal recognition under different lighting conditions are achieved.
Patent Information
- Application Number
- CN202380085572.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-12-14
- Filing Date
- 2023-12-13
- Publication Date
- 2025-07-22
AI Technical Summary
The existing animal identification tags have shortcomings in recognition accuracy and cost-effectiveness, making it difficult to effectively identify individual animals in various environments and avoid misidentification.
A combined system of global dictionary and local dictionary is adopted, and animal identification is used using matrix code markers, and read in combination with active IR cameras and visible spectral cameras. The local dictionary is associated with geographical areas, improves recognition accuracy through error correction processes, and designs holes and multi-layer matrix code structures on the labels to optimize reading.
It improves the accuracy and cost-effectiveness of animal identification, can accurately identify individual animals under different lighting conditions, reduce misidentification, adapt to complex environments, and reduces the complexity of tag reading.
Smart Images

Figure CN120358941A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of systems and methods for animal identification, monitoring, and / or tracking. Background Art
[0002] Individual animal identification is the basis for maintaining accurate records of herd / flock members, enabling producers to track important management information associated with said members (e.g., pedigree, date of birth, production records, health history, etc.) and make individual and / or overall herd / flock management decisions based on this important management information.
[0003] Currently, the main tool for individual animal identification is tagging. Tagging refers to using an identification device (e.g., a tag, etc.) designed to be attachable to at least one body part of a given animal in order to mark the given animal and enable its identification. Although there are various types of animal tags designed to be attachable to various body parts (e.g., ears, necks, legs, etc.) and operate based on various technologies (e.g., radio frequency identification (RFID), two-dimensional barcode reading, etc.), the identification accuracy and the ability to avoid misidentification are still inconsistent and insufficient. In addition, existing types of animal tags are not always cost-effective for various applications.
[0004] Therefore, there is a need in the art for a new system and method for animal identification. Summary of the Invention
[0005] According to a first aspect of the presently disclosed subject matter, there is provided a system for animal identification, the system including a processing circuit configured to: provide a global dictionary including a plurality of unique markers, each of the plurality of unique markers being composed of a plurality of cells forming a matrix code; assign a set of unique markers of the plurality of unique markers to a given local dictionary of a plurality of local dictionaries such that each given local dictionary is associated with a subset of markers of the plurality of markers of the global dictionary; perform a reading, the reading including: (i) a given marker, and (ii) an identifier associated with a given local dictionary of the plurality of local dictionaries; determine whether the given marker is found within the subset of markers associated with the given local dictionary of the plurality of local dictionaries; when the given marker is within the subset of markers associated with the given local dictionary, perform a first action associated with the given local dictionary; when the given marker is not within the subset of markers associated with the given local dictionary, determine whether the given marker is found within the global dictionary; when the given marker is within the global dictionary, perform a second action.
[0006] In an embodiment of the presently disclosed subject matter and / or its embodiments, each subset of markers associated with a local dictionary is composed of randomly selected markers selected from the plurality of markers of the global dictionary.
[0007] In one embodiment of the presently disclosed subject matter and / or its embodiments, each subset of markers associated with a local dictionary consists of a plurality of markers, where the number of differences between each pair of markers between their respective matrix codes is higher than a predetermined threshold.
[0008] In one embodiment of the presently disclosed subject matter and / or its embodiments, when a given marker is compared with a given marker of a subset of markers of a given local dictionary, the marker is considered a given marker if the number of differences in the matrix code of the marker is below the threshold.
[0009] In one embodiment of the presently disclosed subject matter and / or its embodiments, each local dictionary in the local dictionary is associated with a geographical region.
[0010] In one embodiment of the presently disclosed subject matter and / or its embodiments, the geographical region is a fence.
[0011] In one embodiment of the presently disclosed subject matter and / or its embodiments, the marker is an ArUco-based marker.
[0012] In one embodiment of the presently disclosed subject matter and / or its embodiments, an active IR camera is used to perform the reading of the marker.
[0013] In one embodiment of the presently disclosed subject matter and / or its embodiments, a visible spectrum camera is used to perform the reading of the marker.
[0014] In one embodiment of the presently disclosed subject matter and / or its embodiments, a camera with visible spectrum and IR imaging acquisition capabilities is used to perform the reading of the marker.
[0015] In one embodiment of the presently disclosed subject matter and / or its embodiments, (a) a given marker is provided on an animal tag including a surface with holes such that the given marker covers at least a portion of the surface, (b) at least a portion of the given marker overlaps with the holes in the surface, creating an unreadable portion of the matrix bar code, and (c) the reading of the given marker does not require the reading of the unreadable portion of the matrix bar code.
[0016] In one embodiment of the presently disclosed subject matter and / or its embodiments, the given marker of the animal tag is an ArUco-based marker.
[0017] In one embodiment of the presently disclosed subject matter and / or its embodiments, a camera operating in the visible spectrum is used to read the given marker of the animal tag.
[0018] In one embodiment of the presently disclosed subject matter and / or its embodiments, a camera operating in the IR spectrum is used to read the given marker of the animal tag.
[0019] In one embodiment of the presently disclosed subject matter and / or its embodiments, a given marking of the animal tag is square.
[0020] In one embodiment of the presently disclosed subject matter and / or its embodiments, a given marking of the animal tag is an 8-unit by 8-unit marking.
[0021] In one embodiment of the presently disclosed subject matter and / or its embodiments, at least a portion of a given marking of the animal tag is a 2-unit by 2-unit portion.
[0022] In one embodiment of the presently disclosed subject matter and / or its embodiments, the hole of the animal tag is located at the center of the surface.
[0023] In one embodiment of the presently disclosed subject matter and / or its embodiments, the animal tag includes a pin protruding from its surface.
[0024] In one embodiment of the presently disclosed subject matter and / or its embodiments, the pin of the animal tag is a central pin protruding from the center of the tag surface.
[0025] In one embodiment of the presently disclosed subject matter and / or its embodiments, the animal tag is attachable to an ear of an animal.
[0026] In one embodiment of the presently disclosed subject matter and / or its embodiments, the animal is one of the following: pig, cow, equine, sheep, goat.
[0027] According to a second aspect of the presently disclosed subject matter, there is provided a method for animal identification, the method comprising: providing a global dictionary including a plurality of markings, each of the plurality of markings being composed of a plurality of units forming a matrix code; assigning a unique set of the plurality of markings to a given local dictionary of a plurality of local dictionaries such that each given local dictionary is associated with a subset of markings of the plurality of markings of the global dictionary; performing a reading, the reading including: (i) a given marking, and (ii) an identifier associated with the given local dictionary of the plurality of local dictionaries; determining whether the given marking is found within the subset of markings associated with the given local dictionary of the plurality of local dictionaries; when the given marking is within the subset of markings associated with the given local dictionary, performing a first action associated with the given local dictionary; when the given marking is not within the subset of markings associated with the given local dictionary, determining whether the given marking is found within the global dictionary; when the given marking is within the global dictionary, performing a second action.
[0028] In one embodiment of the presently disclosed subject matter and / or its embodiments, each subset of markings associated with a local dictionary is composed of randomly selected markings selected from the plurality of markings of the global dictionary.
[0029] In one embodiment of the presently disclosed subject matter and / or its embodiments, each subset of tags associated with a local dictionary consists of a plurality of tags, wherein the number of differences between each pair of tags between their respective matrix codes is higher than a predetermined threshold.
[0030] In one embodiment of the presently disclosed subject matter and / or its embodiments, when a given tag is compared with a tag of a subset of tags of a given local dictionary, if the number of differences in the matrix code of the tag is below the threshold, the tag is considered to be the given tag.
[0031] In one embodiment of the presently disclosed subject matter and / or its embodiments, each local dictionary in the local dictionaries is associated with a geographical region.
[0032] In one embodiment of the presently disclosed subject matter and / or its embodiments, the geographical region is a fence.
[0033] In one embodiment of the presently disclosed subject matter and / or its embodiments, the tag is an ArUco-based tag.
[0034] In one embodiment of the presently disclosed subject matter and / or its embodiments, an active IR camera is used to perform the reading of the tag.
[0035] In one embodiment of the presently disclosed subject matter and / or its embodiments, a visible spectrum camera is used to perform the reading of the tag.
[0036] In one embodiment of the presently disclosed subject matter and / or its embodiments, a camera with visible spectrum and IR imaging acquisition capabilities is used to perform the reading of the tag.
[0037] According to a third aspect of the presently disclosed subject matter, there is provided a non-transitory computer-readable storage medium containing computer-readable program code that can be executed by at least one processor to perform a method for animal identification, the method including: providing a global dictionary, the global dictionary including a plurality of tags, each of the plurality of tags consisting of a plurality of cells forming a matrix code; assigning a unique set of tags of the plurality of tags to a given local dictionary of the plurality of local dictionaries such that each given local dictionary is associated with a subset of tags of the plurality of tags of the global dictionary; performing a reading, the reading including: (i) a given tag, and (ii) an identifier associated with the given local dictionary of the plurality of local dictionaries; determining whether the given tag is found within the subset of tags associated with the given local dictionary of the plurality of local dictionaries; when the given tag is within the subset of tags associated with the given local dictionary, performing a first action associated with the given local dictionary; when the given tag is not within the subset of tags associated with the given local dictionary, determining whether the given tag is found within the global dictionary; when the given tag is within the global dictionary, performing a second action.
[0038] According to a fourth aspect of the presently disclosed subject matter, there is provided an animal tag including a surface with holes and having a matrix barcode label consisting of a plurality of cells, wherein: (a) the matrix barcode label covers at least a portion of the surface, (b) at least a portion of the matrix barcode label overlaps with the holes in the surface, thereby creating an unreadable portion of the matrix barcode, and (c) reading of the matrix barcode label does not require reading of the unreadable portion of the matrix barcode.
[0039] In an embodiment of the presently disclosed subject matter and / or its embodiments, the matrix barcode label is an ArUco-based label.
[0040] In an embodiment of the presently disclosed subject matter and / or its embodiments, a camera operating in the visible spectrum is used to read the matrix barcode label.
[0041] In an embodiment of the presently disclosed subject matter and / or its embodiments, a camera operating in the IR spectrum is used to read the matrix barcode label.
[0042] In an embodiment of the presently disclosed subject matter and / or its embodiments, the matrix barcode label is square.
[0043] In an embodiment of the presently disclosed subject matter and / or its embodiments, the matrix barcode label is an 8-cell × 8-cell label.
[0044] In an embodiment of the presently disclosed subject matter and / or its embodiments, at least a portion of the matrix barcode label is a 2-cell × 2-cell portion.
[0045] In an embodiment of the presently disclosed subject matter and / or its embodiments, the holes are located at the center of the surface.
[0046] In an embodiment of the presently disclosed subject matter and / or its embodiments, the tag includes pins protruding from its surface.
[0047] In an embodiment of the presently disclosed subject matter and / or its embodiments, the pins are central pins protruding from the center of the tag surface.
[0048] In an embodiment of the presently disclosed subject matter and / or its embodiments, the tag is attachable to an ear of an animal.
[0049] In an embodiment of the presently disclosed subject matter and / or its embodiments, the animal is one of the following: pig, cow, equine, sheep, goat.
[0050] According to a fifth aspect of the presently disclosed subject matter, there is provided an animal tag including a matrix code mark provided thereon, wherein the matrix code mark includes: (a) a laser printed layer provided on the animal tag; and (b) an ink printed layer provided on top of the laser printed layer; wherein the laser printed layer and the ink printed layer enable the matrix code mark to be read under different illumination conditions.
[0051] In an embodiment of the presently disclosed subject matter and / or its embodiments, the matrix code mark is an ArUco-based code.
[0052] According to a sixth aspect of the presently disclosed subject matter, there is provided an animal tag including a matrix code mark provided thereon, wherein the matrix code mark includes (i) a matrix code provided on the animal tag, (ii) an IR-transparent color layer covering the matrix code, and (iii) an alphanumeric number printed on the IR-transparent color layer such that the alphanumeric number at least partially overlaps with the matrix code, and wherein the matrix is specifically read by a camera while the alphanumeric number is specifically read by the human eye.
[0053] According to a seventh aspect of the presently disclosed subject matter, there is provided an animal tag including a matrix code mark printed thereon, wherein the matrix code mark includes an ink printed layer made of an IR-blocking material's ink, thereby enabling the matrix code mark to be read in both the IR spectrum and the non-IR spectrum. BRIEF DESCRIPTION OF THE DRAWINGS
[0054] To understand the presently disclosed subject matter and to see how it may be implemented in practice, the subject matter will now be described by way of non-limiting examples only with reference to the accompanying drawings, in which:
[0055] Figure 1A is a schematic view of an environment in which a system for animal identification according to the presently disclosed subject matter operates;
[0056] Figure 1B is a schematic view of a plurality of unique matrix bar code marks according to the presently disclosed subject matter;
[0057] Figure 2 is a block diagram schematically showing an example of a system for animal identification according to the presently disclosed subject matter;
[0058] Figure 3 is a flowchart showing an example of a series of operations performed by a system for animal identification according to the presently disclosed subject matter;
[0059] Figure 4 is a graph showing the percentage of matrix bar code marks with different numbers of error correction bits representing a global dictionary and local dictionaries of different sizes obtained from the global dictionary according to the presently disclosed subject matter;
[0060] Figure 5 is a schematic view of an exemplary label including a matrix bar code symbol according to the presently disclosed subject matter;
[0061] Figure 6 is a schematic view of an exemplary matrix bar code symbol embossed on a label according to the presently disclosed subject matter;
[0062] Figures 7A to 7B is a schematic view of an exemplary two-piece label including a matrix bar code symbol according to the presently disclosed subject matter; and,
[0063] Figure 7C is a schematic view of an exemplary one-piece label including a matrix bar code symbol according to the presently disclosed subject matter. DETAILED DESCRIPTION
[0064] In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the presently disclosed subject matter. However, one of ordinary skill in the art will understand that the presently disclosed subject matter may be practiced even without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the presently disclosed subject matter.
[0065] In the described drawings and description, like reference numerals denote those components that are common to different embodiments or configurations.
[0066] Unless otherwise specifically noted, as will be apparent from the following discussion, it should be understood that throughout the specification, discussions using terms such as "obtaining," "allocating," "determining," "performing," "adding," etc., include actions and / or processes of a computer operating on data and / or transforming the data to other data, where the data is represented as physical quantities (e.g., electronic quantities) and / or the data represents physical objects. The terms "computer," "processor," "processing resource," "processing circuit," and "controller" should be broadly construed to cover any kind of electronic device having data processing capabilities, as non-limiting examples, including personal desktop / laptop computers, servers, computing systems, communication devices, smart phones, tablet computers, smart TVs, processors (e.g., digital signal processors (DSPs), microcontrollers, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.), groups of multiple physical machines sharing the performance of various tasks, virtual servers co-residing on a single physical machine, any other electronic computing device, and / or any combination thereof.
[0067] The operations taught herein can be performed by a computer specifically constructed for the desired purpose or by a general-purpose computer specifically configured for the desired purpose, via a computer program stored in a non-transitory computer-readable storage medium. The term "non-transitory" as used herein does not encompass transitory propagating signals, but includes any volatile or non-volatile computer memory technology suitable for the application.
[0068] As used herein, the phrases "for example," "such as," and variations thereof describe non-limiting embodiments of the presently disclosed subject matter. References in the specification to "one case," "some cases," "other cases," or variations thereof mean that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one embodiment of the presently disclosed subject matter. Thus, the appearances of the phrases "one case," "some cases," "other cases," or variations thereof do not necessarily refer to the same embodiments.
[0069] It should be understood that, unless otherwise specifically stated, for the sake of clarity, certain features of the presently disclosed subject matter described in the context of separate embodiments may also be provided in combination in a single embodiment. Conversely, for the sake of brevity, the various features of the presently disclosed subject matter described in the context of a single embodiment may also be provided separately or in any suitable sub-combination.
[0070] In embodiments of the presently disclosed subject matter, fewer, more, and / or different stages than those Figure 3 shown may be performed. In embodiments of the presently disclosed subject matter, one or more of the stages Figure 3 shown may be performed in a different order and / or a set or sets of stages may be performed simultaneously. Figures 1A to 1B and Figure 2 show a general schematic diagram of a system architecture according to an embodiment of the presently disclosed subject matter. Figure 2 Each module in Figure 2 may be constituted by any combination of software, hardware, and / or firmware that performs the functions defined and explained herein. Figure 2 The modules in may be centralized in one location or dispersed in multiple locations. In other embodiments of the presently disclosed subject matter, the system may include fewer, more, and / or different modules than those
[0071] shown.
[0072] Any reference in this specification to a system shall, with necessary modifications, apply to a method executable by the system and shall, with necessary modifications, apply to a non-transitory computer-readable medium storing instructions executable by the system.
[0073] Any reference in this specification to a non-transitory computer-readable medium shall, with necessary modifications, apply to a system capable of executing instructions stored in the non-transitory computer-readable medium and shall, with necessary modifications, apply to a method executable by a computer that reads instructions stored in the non-transitory computer-readable medium.
[0074] Keep this in mind and refer to Figure 1A , which shows a schematic diagram of an environment in which a system for animal identification (also interchangeably referred to herein as the "system") according to the presently disclosed subject matter operates.
[0075] As shown in the schematic diagram, the environment 100 includes a global dictionary 102 that is linked to a plurality of local dictionaries represented as 104a through 104n (where n is an integer). Each of the local dictionaries 104a through 104n may be associated with a corresponding geographic region represented as "Geographic Region A" through "Geographic Region N" (where N is any possible number of letters representing geographic regions), and the corresponding geographic regions may be, for example, distinct regions (i.e., regions that do not overlap with any other geographic regions).
[0076] The global dictionary 102 includes a plurality of unique matrix barcode markers, each matrix barcode marker containing a matrix code composed of a plurality of cells (or bits). The matrix code of each given matrix code marker may be, for example, a two-dimensional (2D) code composed of black and white cells (e.g., ArUco code, QR code, Aztec code, AR code, bCode code, etc.) that is arranged in a pattern composed of a plurality of rows and columns related to the amount of information stored therein, such as a square pattern (although other patterns such as rectangular patterns are also applicable).
[0077] Compared to the layout of the black and white cells of the matrix codes of the other matrix barcode markers in the plurality of matrix barcode markers, the pattern of each given matrix code may include at least one difference in the layout of its black and white cells in order to distinguish the given matrix barcode marker from all other matrix code markers (also referred to as the Hamming distance). For example, as Figure 1BAs shown, each of a plurality of unique matrix bar code symbols, designated 106a through 106f, is composed of a plurality of black and white cells forming a square pattern that forms the matrix code. Compared to the layout of the black and white cells of the matrix codes of other matrix bar code symbols of symbols 106a through 106f, each matrix code includes between 1 and 4 differences in the layout of its black and white cells. For example, as shown with respect to matrix code symbols 106a and 106b, the matrix codes of these two symbols differ from each other in the positions of two white cells (bits) represented by gray circles 108a (indicating the position of a first white cell) and 108b (indicating the position of a second white cell), thereby forming a Hamming distance of 2.
[0078] Return to Figure 1A , each of a plurality of unique matrix bar code symbols of the global dictionary 102 (which may be referred to as a source of available matrix bar code symbols) can be assigned to a given local dictionary of a plurality of local dictionaries designated 104a through 104n, such that each given local dictionary can include a corresponding subset of matrix bar code symbols. For example, as Figure 1A shown, each given local dictionary of local dictionaries 104a through 104n includes a plurality of matrix bar code symbols designated M-(letter of the corresponding local location)-1 through M-(letter of the corresponding local location)-n (n being an integer), which can be used within the geographical region associated with the given local dictionary.
[0079] The assembly of each subset of matrix bar code symbols can be achieved, for example, by one or more of the following or a combination thereof: (i) randomly selecting matrix bar code symbols from the plurality of unique matrix bar code symbols of the global dictionary 102, and / or (ii) actively selecting a plurality of matrix bar code symbols from the global dictionary 102, where each pair of matrix bar code symbols has a Hamming distance higher than a predetermined threshold (in some cases, the predetermined threshold can be a maximum value, thereby ensuring that the symbols assigned to each local dictionary are sufficiently different from each other). In the case involving the latter (i.e., (ii)), the Hamming distance can confer error correction capabilities, as will be explained below.
[0080] It should be noted that other ways of assembling subsets of matrix bar code symbols can also be used, with appropriate adjustments.
[0081] In some cases, the corresponding subsets of matrix barcode labels for each given local dictionary can consist of matrix barcode labels that are unique to the given local dictionary to which they are assigned, and thus, can only be used within the geographical area associated with the given local dictionary. In this configuration, by, for example, monitoring matrix code labels that have been used in one or more local dictionaries, the use of matrix barcode labels that are unique to the given local dictionary to which they are assigned can be achieved. For example, the system can track the labels in use by uploading the labels in use to a cloud server, which monitors the labels currently in use and / or in which local dictionary or geographical area they are being used, etc.
[0082] In other cases, the corresponding subsets of matrix barcode labels for each given local dictionary can consist of matrix barcode labels found in other subsets of matrix barcode labels associated with other local dictionaries among local dictionaries 104a to 104n. In this configuration, by using more than one global dictionary, the use of matrix barcode labels found in more than one subset of matrix barcode labels can be achieved. Each global dictionary can be associated with a corresponding local dictionary among the local dictionaries that includes common matrix code labels, and can also be associated with prominent visual features (e.g., color, shape, size, etc.), such that the common labels located within separate local dictionaries can be easily distinguished. For example, assuming a given matrix code label is found in two subsets of matrix code labels, the given matrix barcode label can include a color feature of a certain color combination (e.g., yellow - black combination) as part of a first set (e.g., yellow - black set) associated with a first given local dictionary of a first global dictionary, while in a second given local dictionary, the given matrix barcode label can include a color feature of another color combination (e.g., white - black combination) as part of a second set (e.g., white - black set) associated with a second given local dictionary of a second global dictionary.
[0083] Each subset of matrix barcode labels for each given local dictionary associated with a corresponding geographical area (which can be, for example, a controlled environment such as a barn, a pen, a specific area within a barn or pen (e.g., a feeding area and / or a drinking area), etc.) can be used to label animals (e.g., livestock animals such as pigs, cows, equines, sheep, goats, etc.) found within the corresponding geographical area in order to distinguish them. For example, the labeling can be performed by placing each corresponding matrix barcode label on a designated tag (e.g., a collar tag, an ear tag, a tail tag, etc.) and attaching the designated tag to the corresponding body organ of the animal to be labeled.
[0084] Since each of the local dictionaries 104a through 104n consists of a subset of matrix codes labeled from the global dictionary 102, each local dictionary can potentially consist of a significantly smaller number of matrix barcodes than the global dictionary 102. Accordingly, the number of differences (i.e., Hamming distance) in the layout of each pair of matrix barcode labels within each local dictionary can potentially be significantly greater than the number of differences in the layout of matrix barcode label pairs within the global dictionary 102. This system configuration can enable better detection of a given matrix barcode label at the local dictionary level, as well as improved error correction processing within each of the local dictionaries 104a through 104n (which can also occur at the global dictionary level, although to a lesser extent), as explained in more detail below with respect to Figure 3 More detailed explanation.
[0085] It should be noted that one of the purposes of the local dictionary is to address the problem of increased error correction difficulty in the global dictionary without sacrificing the necessary function of the global dictionary to provide a sufficient number of labels for a large number of animals.
[0086] Attention is now turned to a description of the components of the system 200 for animal identification.
[0087] Figure 2 is a block diagram schematically showing an example of a system 200 for animal identification according to the presently disclosed subject matter.
[0088] According to the presently disclosed subject matter, a system 200 for animal identification (also interchangeably referred to herein as "system 200") can include a network interface 206. The network interface 206 (e.g., a network card, Wi-Fi client, LiFi-client, 3G / 4G client, or any other component) enables the system 200 to communicate with external systems over a network and process inbound and outbound communications from these systems. For example, the system 200 can provide (e.g., receive, generate, or otherwise obtain from any source) one or more global dictionaries including a plurality of matrix barcode labels via the network interface 206.
[0089] The system 200 can also include a data dictionary 204 configured to store data (e.g., a database, a storage system, a memory including read-only memory (ROM), random access memory (RAM), or any other type of memory, etc.) or otherwise associated with the data dictionary 204. Some examples of data that can be stored in the data dictionary 204 include:
[0090] One or more local dictionaries;
[0091] One or more subsets of matrix barcode labels;
[0092] One or more matrix codes associated with the corresponding one or more matrix barcode labels;
[0093] One or more identifiers associated with a corresponding local dictionary (to be explained in detail hereinafter with reference to Figure 3 detailed explanation);
[0094] One or more actions associated with a corresponding local dictionary and / or global dictionary (to be explained in detail hereinafter with reference to Figure 3 detailed explanation); and so on.
[0095] The data repository 204 may also be configured to be able to retrieve and / or update and / or delete the stored data. It should be noted that in some cases, the data repository 204 may be distributed, and the system 200 may access the information stored thereon via, for example, a wired or wireless network to which the system 200 is capable of (using its network interface 206) connecting.
[0096] The system 200 also includes a processing circuit 202. The processing circuit 202 may be one or more processing units (e.g., a central processing unit), a microprocessor, a microcontroller (e.g., a microcontroller unit (MCU)), or any other computing device or module, including multiple and / or parallel and / or distributed processing units, which are adapted to independently or cooperatively process data for controlling the resources of the relevant system 200 and for implementing operations related to the resources of the system 200.
[0097] The processing circuit 202 includes an animal recognition module 208, and the animal recognition module 208 is configured to perform an animal recognition process, as specifically referred to herein Figure 3 in further detail. It should be noted that the processing circuit 202 may include additional modules with additional functions, and the additional modules may communicate with the module 208 through, for example, an application programming interface (API).
[0098] Turning to Figure 3 , a flowchart is shown, which shows an example of the operations performed by the system 200 for animal recognition according to the currently disclosed subject matter.
[0099] Therefore, the system 200 for animal recognition (hereinafter also interchangeably referred to as "system 200") may be configured to perform an animal recognition process 300, for example, using the animal recognition module 208.
[0100] For this purpose, the system 200 provides (e.g., receives, generates, or otherwise obtains from any source) a global dictionary including a plurality of unique tags, each of the plurality of unique tags being composed of a plurality of units forming a matrix code (block 302).
[0101] By way of non-limiting example, presented for better understanding of the presently disclosed subject matter and not intended to limit the scope of the presently disclosed subject matter, system 200 obtains a global dictionary similar to Figure 1A the global dictionary 102, including a plurality of unique ArUco-based markers (it should be noted that in other cases, after appropriate adjustment, other types of markers can be used).
[0102] System 200 assigns a set of unique markers from the plurality of unique markers to a given local dictionary among the plurality of local dictionaries such that each given local dictionary is associated with a subset of markers from the plurality of markers of the global dictionary (block 304). The subset of markers for each local dictionary can be constituted by, for example, one or more (or some combination) of the following: (i) markers randomly selected from the plurality of markers of the global dictionary, (ii) a plurality of markers, where each pair of markers has a plurality of differences higher than a predetermined threshold (in some cases, the predetermined threshold can be, for example, the maximum value, so as to ensure that the markers assigned to each local dictionary are sufficiently different from each other) between their respective matrix codes.
[0103] As pointed out above with reference to FIG. 1, in addition to associating each given local dictionary with a corresponding subset of markers from the plurality of markers of the global dictionary, each given local dictionary can also be associated with a geographical area (e.g., a controlled environment, such as a barn, a pen, a specific area within the barn or pen (e.g., a feeding station and / or a watering station), etc.), the geographical area can contain animals (e.g., livestock animals such as pigs, cows, equines, sheep, goats, etc.), and each animal is intended to be marked with a corresponding marker from the subset of markers.
[0104] According to a non-limiting example, system 200 assigns three subsets of five ArUco-based markers assigned from the plurality of ArUco-based markers of the global dictionary 102 to three local dictionaries denoted as "A", "B", and "C". Each of the three local dictionaries ("A", "B", and "C") is associated with a corresponding pig pen containing five pigs denoted as "pen A", "pen B", and "pen C". Each of the five pigs in each pig pen is marked with a corresponding ArUco-based marker (using, for example, an ear tag on which the marker is placed), and the corresponding ArUco-based marker has a plurality of differences in the layout of its ArUco-based code compared to the layout of the ArUco-based codes of the other four markers, and the plurality of differences is greater than the predetermined threshold 4.
[0105] Next, system 200 performs a reading, which includes: (i) a given marker, and (ii) an identifier associated with a given local dictionary among a plurality of local dictionaries (block 306). The reading can be performed, for example, using one of the following: a camera operating in the visible spectrum, a camera operating in the IR spectrum, a camera having visible spectrum and IR imaging acquisition capabilities, or any other camera operating in any other spectral field.
[0106] According to a non-limiting example, system 200 performs a reading of a given ArUco-based marker and an identifier associated with the local dictionary "A" among three local dictionaries "A", "B", and "C".
[0107] After acquiring the marker and the identifier, system 200 determines whether the given marker is found in a subset of markers associated with the given local dictionary among the plurality of local dictionaries (block 308).
[0108] According to a non-limiting example, system 200 determines whether the given ArUco-based marker is found in a subset of five ArUco-based markers associated with the local dictionary "A" (five pigs in the "pen A" of the markers).
[0109] When the given marker is in the subset of markers associated with the given local dictionary, system 200 performs a first action associated with the given local dictionary (block 310). The first action can involve, for example, (i) providing an indication to the user of system 200 as to whether the given marker is in the subset of markers associated with the given local dictionary, (ii) providing an indication to the user of system 200 of the marker closest to the given marker, (iii) providing an indication to the user of system 200 that an animal has been found in a geographical area associated with the given local dictionary, (iv) providing an indication to the user of system 200 of an activity performed on an animal in a geographical area associated with the given local dictionary (e.g., treatment, vaccination, etc.), (v) providing an indication to the user of system 200 as to how long a given animal has spent in a given area (e.g., feeding, drinking, or sleeping area), (vi) providing an indication to the user of system 200 as to how long a given animal has been near another animal in a geographical area (e.g., for purposes of estrus or oestrus detection, etc.).
[0110] According to a non-limiting example, system 200 determines that the given ArUco-based marker has indeed been found in a subset of five ArUco-based markers associated with the local dictionary "A", and thus, sends an indication to the user of the system that the given ArUco-based marker has been found within the local dictionary "A".
[0111] In some cases, due to the environment in which livestock animals are typically kept (which is often muddy, dirty, etc.), markers used to tag animals within a given geographical area (e.g., by placing on designated tags) may be exposed to dirt, grime, wear, etc., which can affect their reading and cause false identification situations. To address such situations, two error correction processes have been developed.
[0112] As part of the first error correction process developed, when the pattern of white cells of a given marker is closest to the pattern of white cells of the acquired marker, the acquired marker can be considered to be the given marker. For example, returning to Figure 1B , assuming that matrix code marker 106a is the acquired marker and matrix code markers 106b to 106f are markers in the local dictionary, matrix code marker 106a will be considered to be matrix code marker 106b because the pattern of white cells of matrix code marker 106b is closest to the pattern of white cells of matrix code marker 106a.
[0113] The basic principle behind the above error correction process lies in the fact that dirt or grime on the black cells of a given marker does not affect their reading as these cells are originally dark. Thus, dirt or grime on a given marker only affects the reading of its white cells. Next, as part of the second error correction process developed, when the difference in the layout of black and white cells of the acquired marker and the given marker is below a predetermined threshold, the acquired marker can be considered to be the given marker. The predetermined threshold can be, for example, the number of error correction bits (i.e., the number of bits that need to be corrected in the acquired marker to make it the same as the given marker), which can be approximately half or less of the Hamming distance of the dictionary. For example, returning to Figure 1B , assuming that matrix code markers 106a and 106b are the acquired marker and the given marker respectively, if the number of error correction bits by which the matrix codes of these two markers differ from each other is below half of their Hamming distance, these two markers will be considered to be the same marker.
[0114] It should be noted that the second error correction process can employ similar or different predetermined thresholds (e.g., the number of error correction bits approximately half of the Hamming distance) for different matrix bar code markers within each local dictionary.
[0115] It should also be noted that the two error correction processes described above can be used interchangeably or in combination with each other.
[0116] When a given tag is not within the subset of tags associated with a given local dictionary, system 200 determines whether the given tag is found in the global dictionary (block 312). When the given tag is within the global dictionary system 200, system 200 performs a second action (block 314). The second action can involve, for example, (i) providing an indication to a user of system 200 whether the given tag is found in the global dictionary, (ii) adding the given tag to the given local dictionary and providing an indication to the user of system 200 that the given tag has been added to the given local dictionary, (iii) providing an indication to the user of system 200 that the given tag has been moved from one local dictionary to another local dictionary, (iv) providing an indication to the user of system 200 that an animal previously associated with the given tag has died, etc.
[0117] According to a non-limiting example, system 200 determines that a given ArUco-based tag is found in the global dictionary and, therefore, sends an indication to the user that the given ArUco-based tag was not found within the given local dictionary because it was moved to another local dictionary.
[0118] It should be noted that the first error correction process and the second error correction process described above with reference to the local dictionary can also be performed at the global dictionary level. With reference to the second error correction process, it should also be noted that since the number of matrix barcode tags in the global dictionary is significantly larger, the predetermined threshold used in the global dictionary is typically lower compared to the local dictionary. This is because the number of valid options for each individual tag is significantly larger at the global dictionary level, making the error correction process in the global dictionary more challenging compared to the local dictionary. To better emphasize this point, the focus is turned to Figure 4 , which shows a graph representing a global dictionary with 500K matrix barcode tags, with 6 error correction bits, divided into local dictionaries of different sizes (a dictionary with 20 tags (denoted as "A"), a dictionary with 50 tags (denoted as "B"), and a dictionary with 250 tags (denoted as "C")). As Figure 4 shown, the size of each local dictionary includes a different percentage of tags with the number of error correction bits ranging from 7 to 11. Since the number of error correction bits for different tags within local dictionaries of different sizes is greater than the number of error correction bits in the global dictionary (6), tags can be better detected at the local dictionary level and, therefore, the error correction process can be better performed.
[0119] The higher the number of error correction bits, the easier the second error correction process described herein is to compensate for reading errors (e.g., errors based on dirt, mud, etc.). In one example application, a geographical location of an animal pen with a small number of animals wearing tagged collars will have better error correction capabilities compared to a larger animal pen with a higher number of animals wearing tagged collars.
[0120] Go to Figure 5 which shows an example tag according to the presently disclosed subject matter, the example tag being designed to be attached to a given animal for tagging it.
[0121] As Figure 5 shown, the example tag 400 (which can be made of, for example, plastic, aluminum, metal, etc.) includes a surface 402 that contains holes 404 that potentially have a practical function, where the holes 404 are used, for example, to attach the tag 400 to a given animal, and a matrix barcode marker 406, for example, the same matrix barcode marker as described above with respect to Figure 1A and Figure 1B The matrix barcode marker 406, which can be disposed on the surface 402 via, for example, glue, printing, laser marking, engraving, etc., can be designed to cover at least a portion of the surface 402 such that at least a portion of the marker overlaps the holes 404, thereby creating an unreadable matrix barcode portion 408 that coincides with the holes 404.
[0122] In some cases, the matrix barcode marker 406 can be a two - layer matrix barcode marker. The two - layer matrix barcode marker can consist of a laser - printed layer printed on the surface 402 and an ink - jet printed layer printed on top of the laser - printed layer. The assembly of the above - mentioned two layers of the matrix barcode marker 406 can enable the marker to be read under different lighting conditions. For example, the properties of the laser - printed layer can enable these layers to be read optimally at night or in low - light conditions (e.g., by using a camera or other marker - reading system operating in the infrared (IR) spectrum). However, the properties of the ink - jet printed layer can enable these layers to be read optimally during the day or in brighter lighting conditions. Additionally, the ink - jet printed layer can be configured to be transparent to the IR spectrum, for example, by selecting inks that do not absorb in the IR spectrum. In this configuration, reading the laser - printed layer using the IR spectrum at any point in the day is not affected by the presence of the ink - jet printed layer. By designing the marker as described above, tag reading can be optimized during the day (or in a bright lighting environment) as well as at night (or in a low - light environment).
[0123] In other cases, as Figure 6As shown, the matrix barcode label 406 can consist of a single layer imprinted on the surface 402, with an additional layer of alphanumeric data imprinted on top of the surface 402. The single layer of the matrix barcode label 406 can be a material that is invisible and / or undetectable to the human eye (e.g., IR ink, etc.), while the additional layer of alphanumeric data can be a material that is visible and / or detectable to the human eye (e.g., colored ink, etc.). Since the invisible and / or undetectable material can be read by a dedicated device such as a camera (e.g., an IR camera), etc., and the visible and / or detectable material can be relatively easily identified by the human eye or a vision device, the distinction between various matrix barcode labels becomes a two-level distinction. The two-level distinction includes manual distinction (using the human eye or a similar visible light-based detection) and automatic distinction (using a dedicated IR camera).
[0124] It should be noted that, with necessary modifications, the matrix barcode label 406 can consist of only one of the layers listed above, or more layers than the two layers listed above. In a non-limiting example, the matrix barcode label 406 can consist of: (i) a matrix code imprinted on the surface 402 (visible to both IR and the human eye), (ii) an IR-transparent colored layer covering the matrix code, and (iii) an alphanumeric number printed in ink above the IR-transparent colored layer, optionally at least partially overlapping with the matrix code.
[0125] It should be noted that in some cases, with necessary modifications, other types of layers made of other technologies and / or materials (e.g., ink of an IR-blocking material that enables reading the matrix barcode label 406 in both the IR spectrum and the non-IR spectrum) can be used. Considering that these technologies and / or materials involve less production volume, less production cost, shorter production time, etc., it may be advantageous to use these technologies and / or materials.
[0126] The unreadable matrix barcode portion 408 can be designed not to affect the reading of the matrix barcode label 406, such that the reading of the label 406 does not require reading the unreadable matrix barcode portion 408, where the unreadable matrix barcode portion 408 can be, for example, a part of the matrix barcode label 406 that does not include the stored information designed to be read during the reading process of the matrix barcode label 406.
[0127] In some cases, the portion of the surface 402 covered by the matrix barcode label 406 can be a relatively wide area of the label 400, such that the matrix barcode label 406 can be easily viewed by a sensor (e.g., a camera) designated for reading the matrix barcode label 406.
[0128] The tag 400 may also include pins (not shown) protruding from its surface 402. The protruding pins may protrude from a side of the square surface 402 that does not contain the matrix barcode marker 406, so as to avoid interfering with the reading of the marker 406. The protruding pins may enable the tag 400 to be coupled to a given animal, for example, by inserting the pins into the ear of the given animal. Additionally, the protruding pins may be located in different parts of the surface 402 (e.g., the center of the surface 402), and may or may not be opposite to the hole 404, such that the protruding pins may be hollow or non-hollow.
[0129] Figures 7A to 7C is a schematic illustration of a non-limiting example of the tag 400, which is presented only for the purpose of better understanding the disclosed subject matter and is not intended to limit its scope in any way.
[0130] As Figure 7A shown, the tag 400 may be a two-piece tag represented as 500. The two-piece tag 500 includes a male member 502 and a female member 504.
[0131] The male member 502 includes a square surface 506 that contains on one of its sides (i) a hole 508 located at the center of the side, and (ii) an 8-cell × 8-cell ArUco-based marker 510. The ArUco-based marker 510 has a non-readable matrix barcode portion 512 of 2 cells × 2 cells, and the non-readable matrix barcode portion 512 overlaps with the hole 508. Additionally, the male member 502 includes a central pin 514 that protrudes from the opposite side of the square surface 506 that does not contain the 8-cell × 8-cell ArUco-based marker, such that the protruding pin is opposite to the hole 508.
[0132] The female member 504 includes a square surface 516 that is consistent with the square surface 506 of the male member 502, and a hollow protrusion 518 that is configured to accommodate the central pin 514 when the male member 502 and the female member 504 are coupled together.
[0133] In operation, the central pin 514 of the male member 502 passes through the body part of the animal (e.g., the ear of the animal) from one side to the other side, such that on the other side, the central pin 514 is inserted into the hollow protrusion 518 of the female member 504, and the central pin 514 is held in the hollow protrusion 518. At the end of this operation, the male member 502 and the female member 504 are located on opposite sides of the body part of the animal, and the two-piece tag 500 is coupled to the body part of the animal.
[0134] Turning to Figure 7B shows another example of a two-piece tag according to the currently disclosed subject matter.
[0135] AsFigure 7B As shown, the two-piece tag, denoted as 600, is composed of a male member 602 and a female member 604.
[0136] The male member 602 includes a surface 606, and the surface 606 contains (i) a hole 608 at its upper end, (ii) an 8-cell × 8-cell ArUco-based marker 610 located at a distance from the hole 608 (such that the hole 608 does not overlap with the ArUco-based marker 510), and (iii) a pin 612 protruding from a side of the surface 606 that does not contain the 8-cell × 8-cell ArUco-based marker 610, such that the protruding pin 612 is opposite to the hole 608.
[0137] The female member 604 includes a surface 614 that conforms to the surface 606 of the male member 602, and a protrusion 616 configured to accommodate the pin 614 when the male member 602 and the female member 604 are joined together.
[0138] In operation, the pin 612 of the male member 602 passes through an animal's body part (e.g., the ear of the animal) from one side to the other side of the body part, such that on the other side, the pin 612 is inserted into the hollow protrusion 616 of the female member 604, and the pin 612 is held in the hollow protrusion 616. At the end of this operation, the male member 602 and the female member 604 are located on opposite sides of the animal's body part, and the two-piece tag 600 is attached to the animal's body part.
[0139] Turning to Figure 7C , another example of a tag 400 according to the presently disclosed subject matter is shown.
[0140] As Figure 7C shown, the tag 400 can be a one-piece tag denoted as 700. The one-piece tag 700 includes a surface 702, and the surface 702 contains (i) a male portion 704 at one end of the surface 702, (ii) a female portion 706 at the other end of the surface 702, and (iii) a 4-cell × 4-cell ArUco-based marker 708 on one side of the surface 702.
[0141] The male portion 704 includes a protruding pin 710 that protrudes from the opposite side of the side on which the 4-cell × 4-cell ArUco-based marker 708 is located, while the female portion 706 includes a hole 712 oriented to be able to accommodate the pin 710.
[0142] In operation, the single-piece tag 700 is looped around a body part (ear, neck, leg, etc.) of the animal and / or the pin 710 is inserted into the hole 712 simultaneously, and the pin 710 is retained in the hole 712. At the end of this operation, the male part 704 and the female part 706 are coupled to each other, thereby looping the single-piece tag 700 around the body part of the animal.
[0143] In some cases, as an alternative or addition to the above, the single-piece tag 700 can be looped around an element worn on the animal's body, such as a collar, etc.
[0144] Although the above description mainly relates to using matrix bar code markings to identify tagged individuals from a group or groups of tagged animals located in one or more geographical regions associated with one or more local dictionaries, it is also possible to utilize the ability to distinguish between different markings and thus between different tagged individuals in the case where the tagged animals are transferred from one or more geographical regions to a single centralized location, where the tags used to mark the group of tagged animals are no longer used. For example, once the group of tagged animals from different geographical regions reach a certain weight, they should be transported to a slaughterhouse for slaughter. When the group of tagged animals arrives at the slaughterhouse, as part of the slaughter preparation procedure, the tags used to mark them are removed, which weakens the ability to continue monitoring each individual from the group.
[0145] In order to be able to continuously monitor each individual in the group even after their tags are removed, matrix bar code markings associated with each of them can be imprinted on their bodies, thereby maintaining the ability to monitor each individual throughout the slaughter process.
[0146] It should be noted that with reference to Figure 3 , some blocks can be integrated into combined blocks or can be split into several blocks and / or other blocks can be added. It should also be noted that some blocks are optional. It should also be noted that although the flowcharts are also described with reference to the system elements that implement them, this is by no means binding, and these blocks can be executed by elements other than those described herein.
[0147] It should be understood that the presently disclosed subject matter is not limited in its application to the details set forth in the description contained herein or shown in the drawings. The presently disclosed subject matter is capable of having other embodiments and of being practiced and carried out in various ways. Accordingly, it should be understood that the language and terminology used herein are for the purpose of description and should not be regarded as limiting. Thus, those skilled in the art will understand that the concepts on which the present invention is based can be readily used as a basis for designing other structures, methods, and systems for several purposes for implementing the presently disclosed subject matter.
[0148] It should also be understood that the systems according to the presently disclosed subject matter can be implemented, at least in part, as a suitably programmed computer. Similarly, the presently disclosed subject matter contemplates a computer program readable by a computer for performing the disclosed methods. The presently disclosed subject matter also contemplates a machine-readable memory tangibly embodying a program of instructions executable by a machine for performing the disclosed methods.
Claims
1. An animal tag, the animal tag including a surface having holes and having a matrix bar code label composed of a plurality of units, wherein: (a) The matrix barcode label covers at least a portion of the surface, (b) at least a portion of the matrix barcode label overlaps with the hole in the surface, creating an unreadable matrix barcode portion, and (c) reading the matrix barcode label does not require reading the unreadable matrix barcode portion.
2. The animal tag according to claim 1, wherein, The matrix barcode label is an ArUco-based label.
3. The animal tag according to claim 1, wherein, The matrix barcode label is read using a camera operating in the visible spectrum.
4. The animal tag according to claim 1, wherein, The matrix barcode label is read using a camera operating in the IR spectrum.
5. The animal tag according to claim 1, wherein The matrix barcode label is square.
6. The animal tag according to claim 5, wherein, The matrix barcode label is an 8-cell × 8-cell label.
7. The animal tag according to claim 1, wherein, The at least a portion of the matrix barcode label is a 2-cell × 2-cell portion.
8. The animal tag according to claim 1, wherein, The hole is located at the center of the surface.
9. The animal tag according to claim 1, wherein The tag includes pins protruding from its surface.
10. The animal tag according to claim 9, wherein, The pin is a central pin protruding from the center of the surface of the tag.
11. The animal tag according to claim 1, wherein, The tag is attachable to the ear of an animal.
12. The animal tag according to claim 11, wherein, The animal is one of the following: pig, cow, equine, sheep, goat.
13. An animal tag, the animal tag including a matrix code mark provided thereon, wherein, The matrix code label includes (a) a laser-printed layer readable in the IR spectrum provided on the animal tag; and (b) an ink-printed layer readable in a non-IR spectrum provided on top of the laser-printed layer.
14. The animal tag according to claim 13, wherein, The matrix code label is an ArUco-based code.
15. An animal tag, the animal tag including a matrix code mark provided thereon, wherein, The matrix code label includes: (i) a matrix code provided on the animal tag; (ii) an IR-transparent color layer covering the matrix code; and (iii) an alphanumeric number printed above the IR-transparent color layer such that the alphanumeric number at least partially overlaps with the matrix code, wherein the matrix code is specifically read by a camera and the alphanumeric number is specifically read by the human eye.
16. An animal tag, the animal tag including a matrix code mark printed thereon, wherein, The matrix code label includes an ink-printed layer made of ink of an IR-blocking material such that the matrix code label can be read in both the IR spectrum and the non-IR spectrum.
Citation Information
Patent Citations
Optically readable tag
CN101965577A
Valuable document and security mark using a marking substance
CN1564998A
Domestic animal two-dimensional bar code ear marker
CN2865263Y
Coded playing cards and apparatus for dealing a set of cards
US5067713A