Annular barcode identification method and system, terminal and readable storage medium

By removing impurities on the ring barcode images, the interference caused by scratches, dirt or damage is removed, and the problem of ring barcode identification errors in the prior art is solved, and effective identification and decoding of damaged barcodes is achieved.

CN120012799APending Publication Date: 2025-05-16QUANTUM TECH & ENG RES INST OF SOUTH UNIV OF SCI & TECH FUTIAN DISTRICT SHENZHEN
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411850557.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-16
Publication Date
2025-05-16

AI Technical Summary

Technical Problem

The prior art is difficult to effectively identify and decode ring barcodes damaged by scratches, dirt or damage in industrial scenarios, resulting in identification errors or failure to identify.

Method used

By acquiring the material image, extracting the contour image, and removing impurities, removing impurities, and obtaining a clean ring barcode image, thereby extracting the identification information.

Benefits of technology

It realizes effective identification and decoding of damaged ring barcodes, solves the problem of identification errors caused by scratches, dirt or damage, and improves the identification accuracy of ring barcodes in industrial material scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120012799A_ABST
    Figure CN120012799A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of image processing, and discloses an annular bar code identification method and system, a terminal and a readable storage medium, and the method comprises the steps: obtaining a material image, and extracting a contour image according to the material image; performing impurity removal processing on the contour image to obtain an annular bar code image; and extracting identification information according to the annular bar code image. According to the method, the annular bar code image is extracted to obtain the initial contour image of the annular bar code, then the contour image is subjected to impurity removal processing, interference traces caused by scratches, smudginess or damage are removed, and therefore the clean annular bar code image is extracted, and the identification information is obtained from the annular bar code image through identification. The problem that when an existing annular bar code is applied to an industrial material scene, due to the problem of the industrial material carrying and storing environment, the annular bar code is wrongly recognized due to smudginess, scratches and damage cannot be avoided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of image processing technology, and in particular to a circular barcode recognition method, system, terminal and readable storage medium. Background Art

[0002] In actual application scenarios in the industrial world, there are sometimes situations where circular materials need to be marked. The middle area of ​​such circular materials will be worn out during use and cannot be marked, resulting in only the circular area with very thin edges being available for printing marks.

[0003] Existing identification technologies, such as one-dimensional barcodes and two-dimensional code technologies, cannot adapt to the edge ring area of ​​circular materials in shape. If they are reduced in size and engraved on the ring area, the area of ​​the ring area cannot be effectively utilized, and slight scratches on the outside will make it unrecognizable.

[0004] For non-graphic identification technologies, such as RFID (Radio Frequency Identification) technology, although this type of technology provides the advantages of contactless identification and large-capacity data storage, it is not suitable for the identification of materials that require high purity because its labels may introduce impurities into the material, affecting the purity and performance of the material.

[0005] Therefore, the prior art lacks a technology and solution for marking such circular materials. The prior art has some technologies that use circular barcodes for identification. Most of these technologies use pasting or embedding to complete the marking of the circular barcode, but this method will introduce impurities. The circular barcode technology used on CD disks, after being applied to industrial scenarios, is inevitably prone to scratches and even certain damage because the storage and transportation conditions in industrial scenarios are usually not as good as those of CD disks, which has an adverse effect on the recognition of the circular barcode. Summary of the invention

[0006] The purpose of the present invention is to provide a circular barcode recognition method, system, terminal and readable storage medium, aiming to solve the problem that the prior art can incorrectly recognize or even fail to recognize scratched, dirty or damaged circular barcodes.

[0007] The technical solution adopted by the present invention to solve the technical problem is as follows:

[0008] The present invention provides a circular barcode recognition method, the circular barcode recognition method comprising:

[0009] Acquire a material image, and extract a contour image according to the material image;

[0010] Performing a de-impurity process on the outline image to obtain a circular barcode image;

[0011] The identification information is extracted according to the annular barcode image.

[0012] Furthermore, the obtaining of the material image specifically includes:

[0013] Obtaining an original image captured by a camera, and inputting the original image into an image segmentation model;

[0014] The image segmentation model outputs the material image.

[0015] Further, extracting the contour image according to the material image specifically includes:

[0016] Binarizing the material image to obtain a binary image;

[0017] Extracting closed contours according to the binary image to obtain a plurality of closed contours;

[0018] The closed contours whose areas are not within a set area threshold range are screened out from the plurality of closed contours, and the remaining closed contours are combined into the contour image.

[0019] Furthermore, the removing of impurities from the contour image to obtain the annular barcode image specifically includes:

[0020] Calculating the compactness of all remaining closed contours, and performing preliminary cleaning of the contour image according to a plurality of the compactness;

[0021] According to the geometric properties of the annular barcode, the contour image after the initial impurity removal is subjected to a secondary impurity removal to obtain the annular barcode image.

[0022] Furthermore, the step of performing secondary impurity removal on the contour image after preliminary impurity removal according to the geometric properties of the annular barcode to obtain the annular barcode image specifically includes:

[0023] Fitting the center of the circular barcode according to the contour image, and calculating the distances from all remaining closed contours to the center of the circle;

[0024] According to all the distances, filtering out the remaining closed contours;

[0025] The length of the code element of the circular barcode is obtained according to the radius and the center of the circular barcode, and each of the closed contours is filtered out according to the length of the code element and the length of each of the remaining closed contours.

[0026] Furthermore, the extracting identification information according to the annular barcode image specifically includes:

[0027] Calculate the center of the circular barcode;

[0028] Identify and extract the annular barcode image according to the center of the annular barcode to obtain coded data;

[0029] The encoded data is decoded to obtain the identification information.

[0030] Further, the annular barcode image is identified and extracted according to the center of the annular barcode to obtain the coded data, specifically including:

[0031] Locating a plurality of starting points on the circular barcode;

[0032] Starting from the plurality of starting points in parallel, obtaining the values ​​of all code elements of the circular barcode to obtain a plurality of parallel coded data;

[0033] The coded data is obtained by adopting a voting method according to each of the parallel coded data.

[0034] In addition, to achieve the above-mentioned purpose, the present invention also provides a circular barcode recognition system, the circular barcode recognition system comprising:

[0035] A contour extraction module, used for taking a material image and extracting a contour image according to the material image;

[0036] A barcode cleaning module is used to clean the outline image to obtain a circular barcode image;

[0037] The information extraction module is used to extract identification information according to the annular barcode image.

[0038] In addition, to achieve the above-mentioned purpose, the present invention also provides a terminal, which includes: a memory, a processor, and a circular barcode recognition program stored in the memory and executable on the processor, and when the circular barcode recognition program is executed by the processor, the terminal is controlled to implement the steps of the circular barcode recognition method as described above.

[0039] In addition, to achieve the above purpose, the present invention also provides a readable storage medium, which stores a circular barcode recognition program, and when the circular barcode recognition program is executed by a processor, the steps of the circular barcode recognition method described above are implemented.

[0040] The present invention adopts the above technical solution to achieve the following effects:

[0041] The present invention obtains a preliminary contour image of the circular barcode by extracting the circular barcode image, and then performs a de-impurity process on the contour image to remove interference traces caused by scratches, dirt or damage, thereby extracting a clean circular barcode image, and identifying identification information from the circular barcode image, thereby solving the problem of circular barcode recognition errors caused by dirt, scratches and damage that are unavoidable when the existing circular barcode is applied to industrial material scenarios due to problems with the industrial material handling and storage environment. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] Figure 1 is a flow chart of the steps in the circular barcode marking stage in a preferred embodiment of the present invention;

[0043] Figure 2 It is a flow chart of the steps of a circular barcode recognition method in a preferred embodiment of the present invention;

[0044] Figure 3 Schematic diagram of the segmentation of a material image by an image segmentation model in a preferred embodiment of the present invention;

[0045] Figure 4 It is a recognition schematic diagram of extracting contour images in a preferred embodiment of the present invention;

[0046] Figure 5 is a schematic diagram of the result of extracting the contour image in a preferred embodiment of the present invention;

[0047] Figure 6 Schematic diagram of removing impurities from a contour image in a preferred embodiment of the present invention;

[0048] Figure 7 is a schematic diagram of fitting a circular barcode in a preferred embodiment of the present invention;

[0049] Figure 8 It is a schematic diagram of the circular barcode of "Copper 3555578" in a preferred embodiment of the present invention;

[0050] Fig. 9 It is a schematic diagram of extracting and decoding "copper 3555578" in a preferred embodiment of the present invention;

[0051] Fig.10 It is a structural schematic diagram of a circular barcode recognition system in a preferred embodiment of the present invention;

[0052] Fig.11 A schematic diagram of an operating environment of a preferred embodiment of a terminal of the present invention. DETAILED DESCRIPTION

[0053] In order to make the purpose, technical solution and advantages of the present invention clearer and more specific, the present invention is further described in detail below with reference to the accompanying drawings and examples. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.

[0054] Embodiment 1

[0055] Embodiment 1 of the present application is a circular barcode recognition method, which is used to identify the circular barcode printed on the material by a laser printer. In this embodiment, metal circular materials are taken as an example for illustration. In many application scenarios, since the material needs to maintain high purity and cannot be manually pasted or embedded with labels, a laser printer is required to print barcode marks for the material. Only then can the meaning of the circular barcode be read through image recognition.

[0056] See also Figure 1 In the marking stage, the material information is first obtained, and then it is determined whether the material information is valid. If valid, the information is encoded. In terms of encoding method, this embodiment combines the Data Matrix encoding specification to encode the input information and convert it into a string composed of 0 / 1 characters. The 0 / 1 string represents the code element of the circular barcode, where "1" is the laser dot position. After the information is encoded, a circular barcode can be generated for the encoding. In this embodiment, since the laser printer needs to receive a vector file in dxf format as input, the file is output in dxf format when generating the circular barcode.

[0057] Input the dxf format file of the circular barcode into the laser printer, and the laser printer will complete the marking of the circular material.

[0058] The circular barcode of the present embodiment is specifically a circular barcode based on radians, that is, each set radian unit represents a code position. The advantage of using radians is that it is not affected by the size of the printed circular barcode material. When used, it can adapt to metal materials of all sizes. For example, in the present embodiment, two specifications of metal materials are designed, 25mm and 100mm.

[0059] Please refer to Figure 2 The circular barcode recognition method of this embodiment is formally used for recognizing the circular barcode mark recorded on the center material in the marking stage. For the material image to be recognized, the background of the material is first removed, and then the contour of the circular barcode is detected and extracted, and the impurity contour is removed. After obtaining a clean circular barcode, the circular barcode can be decoded into original text information. Specifically, it includes the steps of:

[0060] S1. Acquire a material image, and extract a contour image according to the material image.

[0061] In this embodiment, firstly, an original image containing metal materials is obtained by a camera, such as Figure 3 As shown, it is worth noting that, in the present embodiment, the original image of the plane is directly acquired, and the shooting angle is perpendicular to the surface of the metal material. In other embodiments, due to various factors, the shooting angle may not be perpendicular to the surface of the metal material, or in other words, it is not perpendicular to the surface of the placement platform. In this case, the rotation matrix can be obtained according to the calibration of the camera or other methods, and the captured image can be rotated to obtain a suitable original image.

[0062] Then, an image segmentation model is used to segment the material image from the original image. In this embodiment, a YOLOv8 (You Only Look Once, single convolution) model is used to achieve image segmentation. The YOLOv8 model is trained using a labeled circular material data set to obtain a YOLOv8 model that is sufficient to complete the image segmentation task.

[0063] Then the original image is input into the image segmentation model, and the image segmentation model outputs the material image. The material image is compared with the original image to remove the background of the original image. After removing the background, the material image is adaptively binarized. Please refer to Figure 4 As shown in the figure, contour detection is used to find all closed contours in the binary image, and the point set of all contours is obtained, including the code element contour of the circular barcode. The impurity contours and irrelevant contours are initially screened by setting the area threshold, and the remaining contours are used to redraw the binary image to obtain Figure 5 The contours of the extracted contour image are shown.

[0064] S2. performing a cleaning process on the outline image to obtain a circular barcode image.

[0065] Please refer to Figure 6 As shown, since the material is easily damaged during use and some irregular impurities are easily present on the surface of the material, this embodiment designs an effective impurity removal algorithm to remove impurities from the contour image. It first detects all contours in the image, then fits and calculates the coordinates of the center of the circular material through the outer contour, and removes impurities based on the coordinates of the center of the circular material.

[0066] Since the present embodiment is a circular barcode, it has the characteristics of thin and long code elements and specific geometric properties. First, the distances from points on the code elements of the circular barcode to the center of the circle are equal; second, the arc of the angle between points with the same spacing on the code elements of the circular barcode and the center of the circle is the same. Through the specific geometric properties of the code elements of the circular code, it is possible to determine which parts belong to the circular barcode and which parts are impurities, thereby removing the impurities in subsequent processing.

[0067] For special impurities, such as spots or blobs concentrated in the center of mass, they can be distinguished and removed by calculating the compactness of the contour area. Compactness is a dimensionless number used to describe the circularity of the shape.

[0068] S3. Extracting identification information according to the annular barcode image.

[0069] After obtaining the circular barcode image, the identification information can be extracted based on the circular barcode image. Specifically, after obtaining a clean circular barcode, the code element pixels of the circular code are first extracted, and the least squares method is used to perform circle fitting calculations to calculate the center coordinates and radius length of the circle for decoding.

[0070] Please refer to Figure 7 When decoding, first extract the circular code as a 01 barcode, input the coordinates of the center of the circle and the radius, take the highest point as the starting point, and move and calculate the coordinates of the code element (x, y) according to the deflection of the arc to obtain the pixel at the point, that is, the value of the code element. In this process, parallel computing can be used, that is, pixels are collected in parallel through multiple starting points, and the decoding result is determined by voting to improve the fault tolerance rate.

[0071] Afterwards, the prefix is ​​located according to the converted 01 barcode. In this embodiment, the Data Matrix coding specification is combined, and specifically a prefix of an additional length of 20 code elements is used. The 01 barcode is traversed to find the prefix subsequence. After identifying the prefix position, the remaining DMcode (Data Matrix code) code is intercepted.

[0072] Then, the original DataMatrix code in the form of a QR code is generated based on the DMcode (Data Matrix Code) in the form of a 01 barcode, and the material information is decoded, thereby realizing the identification and tracking of the circular material.

[0073] In this embodiment, an example is used as a demonstration. Figure 8 Take the circular barcode as an example, calculate the arc occupied by each code element in the circular barcode according to the number of code elements, locate the boundary point coordinates of each code element by moving the arc, then parse the code element to generate DMcode (data matrix code) in the form of 01 barcode, and then generate the original Data Matrix (data matrix) code in the form of QR code according to the DMcode (data matrix code) in the form of 01 barcode, and decode the material information, please refer to Fig. 9 In this embodiment, the decoded material information is specifically the text "Copper 3555578".

[0074] It can be seen that the present invention proposes a circular barcode suitable for marking and identifying various circular materials in the industrial sector, and realizes the whole process of barcode generation, laser printing, image processing, and recognition and decoding. Different from the shape restrictions of existing one-dimensional and two-dimensional code technologies, the circular barcode only needs to occupy the slender annular area at the edge of the circular material, and the required area is small. It can well adapt to the characteristics of circular materials in some specific scenarios where the middle area will be lost during use, and efficiently utilize the edge annular area. In addition, this method is based on laser printing and computer vision recognition, and does not require manual pasting or embedding of labels, which ensures the purity and performance of the material.

[0075] Embodiment 3

[0076] See also Fig.10 Based on the above method, the present invention also provides a circular barcode recognition system, the circular barcode recognition system comprising:

[0077] The contour extraction module 51 is used to obtain a material image and extract a contour image according to the material image;

[0078] A barcode cleaning module 52 is used to clean the outline image to obtain a circular barcode image;

[0079] The information extraction module 53 is used to extract identification information according to the annular barcode image.

[0080] Furthermore, the obtaining of the material image specifically includes:

[0081] Obtaining an original image captured by a camera, and inputting the original image into an image segmentation model;

[0082] The image segmentation model outputs the material image.

[0083] Further, extracting the contour image according to the material image specifically includes:

[0084] Binarizing the material image to obtain a binary image;

[0085] Extracting closed contours according to the binary image to obtain a plurality of closed contours;

[0086] The closed contours whose areas are not within a set area threshold range are screened out from the plurality of closed contours, and the remaining closed contours are combined into the contour image.

[0087] Furthermore, the removing of impurities from the contour image to obtain the annular barcode image specifically includes:

[0088] Calculating the compactness of all remaining closed contours, and performing preliminary cleaning of the contour image according to a plurality of the compactness;

[0089] According to the geometric properties of the annular barcode, the contour image after the initial impurity removal is subjected to a secondary impurity removal to obtain the annular barcode image.

[0090] Furthermore, the step of performing secondary impurity removal on the contour image after preliminary impurity removal according to the geometric properties of the annular barcode to obtain the annular barcode image specifically includes:

[0091] Fitting the center of the circular barcode according to the contour image, and calculating the distances from all remaining closed contours to the center of the circle;

[0092] According to all the distances, filtering out the remaining closed contours;

[0093] The length of the code element of the circular barcode is obtained according to the radius and the center of the circular barcode, and each of the closed contours is filtered out according to the length of the code element and the length of each of the remaining closed contours.

[0094] Furthermore, the extracting identification information according to the annular barcode image specifically includes:

[0095] Calculate the center of the circular barcode;

[0096] Identify and extract the annular barcode image according to the center of the annular barcode to obtain coded data;

[0097] The encoded data is decoded to obtain the identification information.

[0098] Further, the annular barcode image is identified and extracted according to the center of the annular barcode to obtain the coded data, specifically including:

[0099] Locating a plurality of starting points on the circular barcode;

[0100] Starting from the plurality of starting points in parallel, obtaining the values ​​of all code elements of the circular barcode to obtain a plurality of parallel coded data;

[0101] The coded data is obtained by adopting a voting method according to each of the parallel coded data.

[0102] Embodiment 3

[0103] See also Fig.11 Based on the above method, the present invention further provides a terminal, which includes a processor 10, a memory 20 and a display 30. However, it should be understood that it is not required to implement all the components shown, and more or fewer components may be implemented instead.

[0104] The memory 20 may be an internal storage unit of the terminal in some embodiments, such as a hard disk or memory of the terminal. The memory 20 may also be an external storage device of the terminal in other embodiments, such as a plug-in hard disk, a smart memory card (Smart Media Card, SMC), a secure digital (SecureDigital, SD) card, a flash card (Flash Card), etc. equipped on the terminal. Further, the memory 20 may also include both an internal storage unit of the terminal and an external storage device. The memory 20 is used to store application software and various types of data installed in the terminal, such as the program code of the installation terminal, etc. The memory 20 may also be used to temporarily store data that has been output or is to be output. In one embodiment, a circular barcode recognition program 40 is stored on the memory 20, and the circular barcode recognition program 40 can be executed by the processor 10, thereby realizing the terminal in the present application.

[0105] In some embodiments, the processor 10 may be a central processing unit (CPU), a microprocessor or other data processing chip, used to run the program code or process data stored in the memory 20, such as executing the relevant program of the circular barcode recognition method.

[0106] In some embodiments, the display 30 may be an LED display, a liquid crystal display, a touch-sensitive liquid crystal display, an OLED (Organic Light Emitting Diode) touch device, etc. The display 30 is used to display information on the terminal and to display a visual user interface.

[0107] In one embodiment, when the processor 10 executes the circular barcode recognition program 40 in the memory 20 , the steps of the circular barcode recognition method described above are implemented.

[0108] Embodiment 4

[0109] This embodiment provides a storage medium, wherein the readable storage medium stores a circular barcode recognition program, and when the circular barcode recognition program is executed by a processor, the steps of the circular barcode recognition method described above are implemented.

[0110] In summary, the present invention obtains a preliminary contour image of a circular barcode by extracting the circular barcode image, and then performs a de-impurity process on the contour image to remove interference traces caused by scratches, dirt or damage, thereby extracting a clean circular barcode image, and identifying identification information from the circular barcode image, thereby solving the problem of circular barcode recognition errors caused by dirt, scratches and damage that are unavoidable when the existing circular barcode is applied to industrial material scenarios due to problems with the industrial material handling and storage environment.

[0111] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the presence of other identical elements in the process, method, article or terminal including the element.

[0112] Of course, those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be implemented by instructing related hardware (such as a processor, a controller, etc.) through a computer program, and the program can be stored in a computer-readable storage medium, and the program can include the processes of the above-mentioned method embodiments when executed. The storage medium can be a memory, a disk, an optical disk, etc.

[0113] It should be understood that the application of the present invention is not limited to the above examples. For ordinary technicians in this field, improvements or changes can be made based on the above description. All these improvements and changes should fall within the scope of protection of the claims attached to the present invention.

Claims

1. A circular barcode recognition method, characterized in that: The circular barcode recognition method comprises: Acquire a material image, and extract a contour image according to the material image; Performing a de-impurity process on the outline image to obtain a circular barcode image; The identification information is extracted according to the annular barcode image.

2. A circular barcode recognition method according to claim 1, characterized in that: The obtaining of the material image specifically comprises: Obtaining an original image captured by a camera, and inputting the original image into an image segmentation model; The image segmentation model outputs the material image.

3. A circular barcode recognition method according to claim 1, characterized in that: The extracting of the contour image according to the material image specifically comprises: Binarizing the material image to obtain a binary image; Extracting closed contours according to the binary image to obtain a plurality of closed contours; The closed contours whose areas are not within a set area threshold range are screened out from the plurality of closed contours, and the remaining closed contours are combined into the contour image.

4. A circular barcode recognition method according to claim 3, characterized in that: The removing of impurities from the contour image to obtain the annular barcode image specifically includes: Calculating the compactness of all remaining closed contours, and performing preliminary cleaning of the contour image according to a plurality of the compactness; The contour image after the initial cleaning is subjected to secondary cleaning according to the geometric properties of the annular barcode to obtain the annular barcode image.

5. A circular barcode recognition method according to claim 4, characterized in that: The step of performing secondary impurity removal on the contour image after preliminary impurity removal according to the geometric properties of the annular barcode to obtain the annular barcode image specifically includes: Fitting the center of the circular barcode according to the contour image, and calculating the distances from all remaining closed contours to the center of the circle; According to all the distances, filtering out the remaining closed contours; The length of the code element of the circular barcode is obtained according to the radius and the center of the circular barcode, and each of the closed contours is filtered out according to the length of the code element and the length of each of the remaining closed contours.

6. A circular barcode recognition method according to claim 1, characterized in that: The step of extracting identification information according to the annular barcode image specifically includes: Calculate the center of the circular barcode; Identify and extract the annular barcode image according to the center of the annular barcode to obtain coded data; The encoded data is decoded to obtain the identification information.

7. A circular barcode recognition method according to claim 6, characterized in that: The step of identifying and extracting the annular barcode image according to the center of the annular barcode to obtain the coded data specifically includes: Locating a plurality of starting points on the circular barcode; Starting from the plurality of starting points in parallel, obtaining the values ​​of all code elements of the circular barcode to obtain a plurality of parallel coded data; The coded data is obtained by adopting a voting method according to each of the parallel coded data.

8. A circular barcode recognition system, characterized in that: The circular barcode recognition system comprises: A contour extraction module, used to obtain a material image and extract a contour image based on the material image; A barcode cleaning module is used to clean the outline image to obtain a circular barcode image; The information extraction module is used to extract identification information according to the annular barcode image.

9. A terminal, characterized in that: The terminal includes: a memory, a processor, and a circular barcode recognition program stored in the memory and executable on the processor. When the circular barcode recognition program is executed by the processor, the terminal is controlled to implement the steps of the circular barcode recognition method according to any one of claims 1 to 7.

10. A readable storage medium, characterized in that: The readable storage medium stores a circular barcode recognition program, and when the circular barcode recognition program is executed by a processor, the steps of the circular barcode recognition method according to any one of claims 1 to 7 are implemented.