KR101109510B1 - Method for recognising two-dimensional barcode - Google Patents

Method for recognising two-dimensional barcode Download PDF

Info

Publication number
KR101109510B1
KR101109510B1 KR1020100063984A KR20100063984A KR101109510B1 KR 101109510 B1 KR101109510 B1 KR 101109510B1 KR 1020100063984 A KR1020100063984 A KR 1020100063984A KR 20100063984 A KR20100063984 A KR 20100063984A KR 101109510 B1 KR101109510 B1 KR 101109510B1
Authority
KR
South Korea
Prior art keywords
barcode
pattern
code
image
error
Prior art date
Application number
KR1020100063984A
Other languages
Korean (ko)
Other versions
KR20120003231A (en
Inventor
김동주
홍창영
Original Assignee
(주) 애니모비
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 애니모비 filed Critical (주) 애니모비
Priority to KR1020100063984A priority Critical patent/KR101109510B1/en
Publication of KR20120003231A publication Critical patent/KR20120003231A/en
Application granted granted Critical
Publication of KR101109510B1 publication Critical patent/KR101109510B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1473Methods for optical code recognition the method including quality enhancement steps error correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1478Methods for optical code recognition the method including quality enhancement steps adapting the threshold for pixels in a CMOS or CCD pixel sensor for black and white recognition

Abstract

본 발명은 정사각형의 선 형태로 표현되는 파인더패턴과, 상기 파인더패턴의 내부에 위치하며, 검정색 영역과 흰색 영역이 일정한 간격을 두고 반복되는 형태로 이루어지는 타이밍패턴과, 상기 바코드의 방향을 결정하는 방향패턴과, 상기 패턴들을 제외한 셀에 데이터를 저장하는 코드 영역을 갖는, 사각형태의 격자의 셀들로 이루어지는 매트릭스 바코드를 모바일 기기가 내장된 카메라를 통해 촬영하여 인식하는 방법으로서:
(1) 상기 매트릭스 바코드의 그레이스케일 이미지를 생성하는 단계;
(2) 상기 이미지의 경계를 검출하는 단계;
(3) 상기 (2) 단계의 결과로 후보 목록을 생성하는 단계; 및
(4) 상기 후보 목록에 생성된 각각의 후보에 대하여 오류 교정을 수행하는 단계;를 포함하는 매트릭스 바코드의 인식 방법을 제안한다.
According to the present invention, a finder pattern represented by a square line shape, a timing pattern positioned inside the finder pattern and having a black area and a white area repeated at regular intervals, and a direction for determining the direction of the barcode A method for recognizing a matrix barcode consisting of cells of a rectangular grid having a pattern and a code area for storing data in a cell except the patterns, by photographing a camera having a mobile device embedded therein:
(1) generating a grayscale image of the matrix barcode;
(2) detecting a boundary of the image;
(3) generating a candidate list as a result of step (2); And
And (4) performing error correction on each candidate generated in the candidate list.

Description

2차원 바코드 인식방법{METHOD FOR RECOGNISING TWO-DIMENSIONAL BARCODE}2D barcode recognition method {METHOD FOR RECOGNISING TWO-DIMENSIONAL BARCODE}

본 발명은 휴대폰과 같은 모바일 단말기가 인식하는 대상이 되는 2차원 코드를 인식하는 방법에 관한 것이다.
The present invention relates to a method for recognizing a two-dimensional code to be recognized by a mobile terminal such as a mobile phone.

증강현실(augmented reality)은 가상현실(virtual reality)의 일종이다. 보통의 가상현실이 사용자에게 실제세계를 배제하고 완전한 가상세계에 대한 인지만을 제공하는 것과 달리, 증강현실은 실제세계와 그곳에 첨가되거나 합성된 가상객체를 동시에 제공한다. 즉, 가상현실이 실제세계를 완전히 대체하는 것이라면, 증강현실은 실제세계를 보충, 증강하는 개념이다.Augmented reality is a kind of virtual reality. Unlike ordinary virtual reality, which excludes the real world from the user and provides only the perception of the complete virtual world, augmented reality simultaneously provides the real world and virtual objects added to or synthesized therefrom. In other words, if virtual reality completely replaces the real world, augmented reality is the concept of supplementing and augmenting the real world.

증강현실은 다양하게 활용되며 현실세계의 가치를 향상시켜 준다. 예컨대 <스포츠 중계방송 경기장 내 스폰서 광고>가 있다. 다양한 종목의 경기를 중계방송으로 시청할 때 경기장 곳곳에서 여러 스폰서들의 광고들을 볼 수 있다. 광고를 위해 마련된 특정 장소에 다양한 형식의 포스터를 부착하거나 전광판 등이 활용된다. 여기에 증강현실 응용을 이용하면 그 광고를 위한 특정 장소를 단지 공백으로 두어도 되며 여기에 실시간으로 광고내용을 합성하여 방송에 송출 할 수 있다. 저비용으로 선명하게 다양한 형식의 광고를 보여줄 수 있고, 교체에 비용도 들지 않으며, 지역이나 국가별로 다른 광고를 보이는 것도 가능하다.Augmented reality is used in a variety of ways and enhances the value of the real world. For example, <Sponsored Advertising in Sports Broadcasting Stadium>. When watching broadcasts of various sports, you can see advertisements from various sponsors throughout the stadium. Various formats of posters or display boards are used at specific places prepared for advertisements. In this case, the augmented reality application may leave only a specific place for the advertisement blank, and the advertisement content may be synthesized and broadcasted in real time. It is possible to display various types of advertisements clearly at low cost, no replacement cost, and different advertisements by region or country.

다른 예로, <상품 정보 표시>가 있다. 공산품에는 바코드가 있어서 기계가 그 상품의 종류를 쉽게 인식할 수 있다. 어떤 상품을 증강현실 응용시스템이 내장된 휴대폰과 같은 모바일 기기(mobile device)에 내장된 카메라를 통해 그 바코드를 독출하면, 응용시스템이 상품의 영상에 여러 가지 정보들을 합성하여 출력한다. 가격이나 원료, 생산지와 같은 기본 정보부터 동영상 조리법이나 광고, 관련행사등과 같은 멀티미디어 정보까지 다양한 형태의 부가정보 출력이 가능하다.Another example is <Product Information Display>. The industrial product has a barcode so that the machine can easily recognize the type of product. When a product is read through a barcode embedded in a camera built into a mobile device such as a mobile phone having an augmented reality application system, the application system synthesizes and outputs various pieces of information on the image of the product. It is possible to output various types of additional information from basic information such as price, raw materials, and production place to multimedia information such as video recipes, advertisements, and related events.

또한, <입체 삽화>의 경우, 평범한 광고지나 책을 증강현실 시스템을 통해 보면 동영상이나 입체적인 그림이 보이게 할 수 있다. 특정한 표시나 패턴을 삽입하여 이것을 인식하거나 평범한 삽화를 인식하여 그 위치에 실시간으로 가상 객체를 합성한다. 사용자가 자유롭게 광고지나 책을 돌리거나 가까이 또는 멀리서 보면 이에 따라 가상객체가 돌아가거나 확대 또는 축소되어 보이도록 하는 것이 가능하다. 또한, <게임>에 증강현실을 적용할 수 있다. 예컨대 실제 공간에 괴수가 나타나고 사용자가 가상의 무기를 이용해 퇴치하는 게임을 상상할 수 있다. 사용자는 카메라가 부착된 HMD를 머리에 쓰고, 이것과 연결된 컴퓨터를 등에 맨 상태로 실제 공간을 돌아다닌다. 기본적으로 HMD에는 카메라를 통해 찍힌 실제세계의 영상이 보이므로 안경을 쓴 것처럼 자연스럽게 느껴질 것이다. 컴퓨터가 사용자의 위치와 HMD의 방향을 인식하고 카메라 입력 영상에 괴수를 합성하여 HMD로 전송하면 실제세계에 괴수가 존재하는 것처럼 느끼게 될 것이다. 여기에 무기모양의 입력장치로부터 버튼의 입력이 들어오면 그 방향을 계산해서 지적하는 위치의 괴수에 피해를 입힐 수도 있다. In addition, in the case of <Three-dimensional illustrations>, if you look at ordinary flyers or books through the augmented reality system, you can make a video or a three-dimensional picture. Recognize this by inserting a specific mark or pattern, or recognizing ordinary illustrations and compositing virtual objects in real time at that location. When the user freely rotates the flyer or the book, or sees it near or far, it is possible to make the virtual object rotate or appear enlarged or reduced accordingly. In addition, augmented reality can be applied to <game>. For example, you can imagine a game where monsters appear in real spaces and users fight with virtual weapons. The user wears an HMD with a camera on his head and roams the real space with his computer attached to his back. Basically, the HMD shows the real world image taken by the camera, so it will feel as natural as wearing glasses. If the computer recognizes the user's location and the direction of the HMD, synthesizes the monster in the camera input image and transmits the monster to the HMD, it will feel as if the monster exists in the real world. When a button input is input from the weapon-shaped input device, the direction of the button may be calculated to damage the monster at the point indicated.

본 발명에서는 특별히 <모바일 환경(mobile environment)>에서의 증강현실 시스템을 고려한다. 모바일 증강현실은 핸드폰이나 스마트폰, PDA와 같은 모바일기기 환경에서 구동되는 증강현실을 뜻한다. 모바일 기기는 간편하게 언제 어디에서나 휴대가 가능하다는 장점이 있다. 이 장점이 증강현실에 더해지면 보다 다양한 형태의 응용이 가능해진다.In the present invention, augmented reality systems in particular in a mobile environment are considered. Mobile augmented reality refers to augmented reality that is driven in a mobile device environment, such as mobile phones, smartphones, PDAs. Mobile devices have the advantage of being easy to carry anywhere, anytime. When this advantage is added to augmented reality, more diverse applications are possible.

위의 예에서, <상품의 정보 표시>와 같은 경우는 모바일 기기가 아니면 실용적인 응용이 불가능하다. 그리고 웹캠과 고정형 컴퓨터를 이용해서 응용이 가능한 입체 삽화와 같은 경우에서도 모바일 기기를 활용하면 카메라와 표시화면이 일체화되어 움직여지므로 더욱 몰입감을 높여줄 수 있다. 그러나 모바일 환경이 장점만을 제공하는 것은 아니다. 모바일 기기는 소형화와 휴대용 배터리에 의존한 전력 등으로 인해 근본적인 한계를 가진다. 보통의 컴퓨터에 비해 계산능력이 현저히 떨어진다. 이러한 단점을 극복하며 장점을 극대화하는 증간현실 응용을 위한 도구의 제안이 본 발명의 목적이 된다.In the above example, in the case of <information display of goods>, practical application is impossible except for a mobile device. And even in the case of stereoscopic illustrations that can be applied using a webcam and a fixed computer, using a mobile device can increase the immersion feeling because the camera and the display screen are integrated. But the mobile environment doesn't just offer advantages. Mobile devices have fundamental limitations due to miniaturization and portable battery-dependent power. Computing power is significantly lower than ordinary computers. The object of the present invention is to propose a tool for augmented reality application that overcomes these disadvantages and maximizes the advantages.

모든 증강현실 응용에서 기본적으로 필요한 필수요소는 위치지시자이다. 위치지시자는 증가현실에서 합성하려 하는 현실세계와 가상세계 간에 정합을 제공한다. 위치지시자의 종류로는 능동형 센서방법과 수동형 센서방법으로 분류할 수 있다. 전자로는 RFID, LED, GPS와 같이 위치지시자가 능동적으로 신호를 송출하는 것이 포함되며, 후자에는 특별한 패턴을 갖는 기호체계로서 실제세계에 부착되는 형태로 삽입되어 카메라에 의해 인식되는 마커가 포함된다. 본 발명은 특히 후자에 관련된다.The essential element essential for all augmented reality applications is the position indicator. Location indicators provide a coherence between the real world and the virtual world trying to synthesize in augmented reality. Types of location indicators can be classified into active sensor methods and passive sensor methods. The former includes the position indicator actively transmitting signals such as RFID, LED, and GPS, and the latter includes a marker system having a special pattern, which is inserted in a form attached to the real world and recognized by a camera. . The present invention relates in particular to the latter.

증강현실 응용에 사용되는 마커는 대부분 그 정보용량이 아주 작다. 모바일용은 아니지만 유명한 시스템으로 ARTag가 있는데, 이 또한 마커가 1,024개의 아이디밖에 제공을 하지 않는다. 그래서 증강하고자 하는 가상객체의 종류가 많을 때는 두 개 이상의 마커를 조합해서 사용하기도 한다. 속도를 위한 선택이지만, 증강현실의 다양한 활용을 시도할 때 이러한 용량은 제약사항이 될 수 있다. 대형의 어떤 증강현실 응용시스템에서 다수의 상황이나 장소를 다루고, 각각에 대해 증강하고자 하는 정보의 종류를 유일하게 표현하려 할 때 문제가 될 수 있다. 예를 들어 한 매장에 진열된 상품의 종류는 1,024개나 4,096개를 훨씬 초과하며, 책에서 페이지, 삽화, 문제집의 문제항목이나 여러 게임 등의 응용에서 필요한 수량도 마찬가지이다.Most markers used in augmented reality applications have very small amounts of information. A notable mobile but popular system is ARTag, which also provides only 1,024 IDs with markers. Thus, when there are many kinds of virtual objects to be augmented, two or more markers may be used in combination. While it is a choice for speed, this capacity can be a constraint when attempting various uses of augmented reality. This can be a problem when dealing with multiple situations or locations in a large augmented reality application system and trying to uniquely represent the kind of information you want to augment for each. For example, the number of merchandise displayed in a store far exceeds 1,024 or 4,096, as well as the number of items required for applications such as pages, illustrations, problem items in books, and various games.

모바일용의 마커로서 2차원 바코드가 널리 사용되고 있다. 기존의 바코드가 1차원적인 선형으로 정보를 표현하는 것과는 달리 2차원 방식으로 정보를 표현한다. 따라서 보다 효율적으로 동일한 면적에 더 많은 정보를 표현하는 것이 가능한 것으로 알려져 있다. 2차원 바코드로는 PDF-417코드, QR코드, Data Matrix, MaxiCode 등이 사용되고 있다. Two-dimensional barcodes are widely used as markers for mobiles. Unlike conventional barcodes expressing information in one-dimensional linear form, information is represented in two-dimensional manner. Therefore, it is known that it is possible to express more information in the same area more efficiently. As a two-dimensional barcode, PDF-417 code, QR code, Data Matrix, MaxiCode are used.

도 1은 QR코드의 일예를 나타낸다. 점으로 표시되는 QR코드의 정보 표현의 최소 단위를 모듈(module)이라고 했을 때, 도 1의 QR코드는 가로×세로는 21×21이고 버전이 증가함에 따라 단계적으로 가로×세로가 커져서 가장 큰 버전 40은 177×177의 크기를 갖는다. 그리고 버전이 증가함에 따라 포함할 수 있는 정보의 양도 증가한다. 그러나 국제표준(ISO/IEC18004)인 QR코드는 인식 과정에서 처리되어야 할 연산이 매우 많아 전용 리더기로 인식해야만 한다. 또한 일반 카메라를 사용하는 비전기반 인식기의 경우에는 성능이 뛰어난 컴퓨터를 필요로 하여 모바일 환경에서 사용하기에는 부적합하다.1 shows an example of a QR code. When the minimum unit of information representation of a QR code represented by a dot is called a module, the QR code of FIG. 1 is 21 × 21 in width × length, and the largest version in which the width × length increases in stages as the version increases. 40 has a size of 177 × 177. And as the version increases, so does the amount of information that can be included. However, the QR code, which is an international standard (ISO / IEC18004), has a lot of operations to be processed in the recognition process and must be recognized as a dedicated reader. In addition, vision-based recognizers using ordinary cameras require a high-performance computer and are not suitable for use in mobile environments.

이를 해결하기 위하여 도 2와 같이 QR코드와 유사한 코드 표시 체계와 알고리즘을 사용하면서도 모바일 환경에 적합하도록 소형화한 일본 공업 표준(JIS ×0510)으로 지정된 Micro QR코드가 개발되었다. 도 2는 QR코드와 비교한 Micro QR코드이다. 도 2에서 보는 바와 같이, QR코드와 비교한 Micro QR코드의 주요 특징은 파인더 패턴(position detection pattern, or finder pattern)이 왼쪽 상단에 단 한 개이고, 마진 영역이 2개 모듈 폭으로 구성된다. Micro QR코드는 QR코드에 비해 저장할 수 있는 자료량의 최대 35개의 숫자이며, 아래의 표 1과 같이 M1~M4의 4가지 버전이 존재하고, 가장 큰 M4의 경우 오류 교정 수준에 따라 L, M, Q가 존재한다.In order to solve this problem, a micro QR code designated by the Japanese Industrial Standard (JIS × 0510), which is miniaturized to be suitable for a mobile environment while using a code display system and an algorithm similar to the QR code, has been developed as shown in FIG. 2 is a Micro QR code compared to the QR code. As shown in FIG. 2, the main feature of the Micro QR code compared to the QR code is that only one finder pattern (position detection pattern, or finder pattern) is located at the upper left, and the margin area is composed of two module widths. Micro QR code is a maximum of 35 numbers of data that can be stored compared to QR code, and there are 4 versions of M1 ~ M4 as shown in Table 1 below.In the case of the largest M4, L, M, Q is present.

Figure 112010043057240-pat00001
Figure 112010043057240-pat00001

<Micro QR코드의 버전에 따른 데이터 용량>
<Data capacity by version of Micro QR code>

QR코드나 Micro QR코드의 다양한 버전에 따른 정보용량과 오류 교정률은 이 코드의 대단한 장점이기도 하지만, 인식 관점에서는 버전에 따른 별도의 인식기를 요구하므로 인식과정을 복잡하게 하거나 단가 상승의 중요한 원인이 되기도 한다. The information capacity and error correction rate according to various versions of QR code or Micro QR code is a great advantage of this code, but from the point of view of recognition, it requires a separate recognizer for each version, which complicates the recognition process or is an important cause of unit price increase. Sometimes.

QR코드에서 다양한 정보용량과 오류 교정률을 지원하기 위해 코드워드의 길이를 각 버전과 교정률에 따라 다양하게 정의한다. 그러므로 인식기는 다양한 길이의 코드워드에 대한 처리가 가능해야 한다. 이 경우 변환테이블을 이용하는 빠른 방법을 활용할 수 없으며, 리드솔로몬의 복잡한 처리를 그대로 수행해야 하는 문제점이 있다. 또한 저장용량의 증가로 인한 처리해야 할 자료양의 증가는 직접적인 계산량 증가로 이어지는 불이익이 따른다.
In order to support various information capacity and error correction rate in QR code, the length of codeword is defined variously according to each version and correction rate. Therefore, the recognizer must be able to process codewords of various lengths. In this case, there is a problem that a quick method using a conversion table cannot be utilized, and the complicated processing of Reed Solomon must be performed as it is. In addition, an increase in the amount of data to be processed due to an increase in storage capacity has a disadvantage in that it leads to an increase in direct calculations.

본 발명의 목적은 모바일용 새로운 2차원 코드를 제공함과 동시에, 이 신규한 2차원 코드를 인식하는 방법을 제안함에 있다. 본 발명의 신규한 2차원 코드는, 종래의 QR코드나 Micro QR코드가 중점을 두었던 바코드의 가변성 대신에, 모바일 환경에서 실시간으로 인식 될 정도로 빠르게 인식될 수 있으며, 충분한 수량의 아이디를 표현할 수 있는 신규한 2차원 코드를 제공한다. 또한, 본 발명의 신규한 2차원 코드 인식 방법은 2단계의 계층적인 오류처리 방법을 사용함으로써, 교정되지 못하거나 잘못된 인식 경우를 찾아내 걸러냄으로써 인식의 정확률을 향상시키고자 한다.An object of the present invention is to provide a new two-dimensional code for mobile and at the same time propose a method for recognizing this new two-dimensional code. The novel two-dimensional code of the present invention can be recognized quickly enough to be recognized in real time in a mobile environment, instead of the variability of the barcode that the conventional QR code or Micro QR code focused on, and can express a sufficient quantity of IDs. Provide a new two-dimensional code. In addition, the novel two-dimensional code recognition method of the present invention uses a two-step hierarchical error processing method to improve the accuracy of recognition by finding and filtering out uncorrected or incorrect recognition cases.

모바일 바코드의 저장 정보를 아이디정보만으로 그 종류를 한정한다면 일정 크기 이상을 필요하지 않게 된다. 또한, 충분한 용량을 고정적으로 정하여 처리를 단순화 하면 속도를 향상시킬 수 있다. 본 발명의 2차원 바코드는 이러한 이유에서 가변성을 포기하고, 대신 모바일 환경에서 실시간으로 인식 될 정도로 빠르게 인식 가능하며, 충분한 수량의 아이디를 표현할 수 있도록 한다.If the storage information of the mobile barcode is limited only to the ID information, it does not need more than a certain size. In addition, the speed can be improved by simply fixing a sufficient capacity and simplifying the processing. The two-dimensional bar code of the present invention gives up the variability for this reason, instead it can be recognized quickly enough to be recognized in real time in a mobile environment, it is possible to represent a sufficient number of IDs.

한편, 본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 것이다.
On the other hand, other unspecified objects of the present invention will be further considered within the range that can be easily inferred from the following detailed description and effects.

위와 같은 목적을 달성하기 위한 본 발명의 2차원 바코드의 인식 방법은, 사각형태의 격자의 셀들로 이루어지는 매트릭스 바코드를 인식하는 방법으로서:Recognition method of the two-dimensional barcode of the present invention for achieving the above object, as a method of recognizing a matrix barcode consisting of cells of a rectangular grid:

모바일 기기의 바코드 인식 디바이스가 상기 매트릭스 바코드를 내장된 카메라로 촬영하였을 때 발생한 오류를 교정하는 제1단계; 및A first step of correcting an error occurring when a barcode recognition device of a mobile device photographs the matrix barcode with a built-in camera; And

상기 제1단계를 통해 얻은 매트릭스 바코드의 교정된 이미지에 대해 오류를 검출하여, 오류가 검출되지 않은 경우에 한하여 상기 제1단계의 오류 교정을 승인하는 단계;를 포함하는 것을 특징으로 한다.And detecting an error on the corrected image of the matrix barcode obtained through the first step, and acknowledging the error correction of the first step only when no error is detected.

또한, 본 방법의 상기 매트릭스 바코드는, In addition, the matrix barcode of the method,

정사각형의 선 형태로 표현되는 파인더패턴;A finder pattern represented by a square line shape;

상기 파인더패턴의 내부에 위치하며, 검정색 영역과 흰색 영역이 일정한 간격을 두고 반복되는 형태로 이루어지는 타이밍패턴; A timing pattern positioned inside the finder pattern and having a black region and a white region repeated at regular intervals;

상기 바코드의 방향을 결정하는 방향패턴; 및A direction pattern for determining a direction of the barcode; And

상기 패턴들을 제외한 셀에 데이터를 저장하는 코드 영역이 형성되며, 상기 패턴들을 이용하여 상기 코드 영역에 저장된 데이터를 독출하는 것을 특징으로 한다.A code area for storing data is formed in a cell except for the patterns, and the data stored in the code area is read using the patterns.

또한, 본 발명은 정사각형의 선 형태로 표현되는 파인더패턴과, 상기 파인더패턴의 내부에 위치하며, 검정색 영역과 흰색 영역이 일정한 간격을 두고 반복되는 형태로 이루어지는 타이밍패턴과, 상기 바코드의 방향을 결정하는 방향패턴과, 상기 패턴들을 제외한 셀에 데이터를 저장하는 코드 영역을 갖는, 사각형태의 격자의 셀들로 이루어지는 매트릭스 바코드를 모바일 기기가 내장된 카메라를 통해 촬영하여 인식하는 방법으로서:In addition, the present invention is a finder pattern represented in the form of a square line, a timing pattern which is located inside the finder pattern, the black region and the white region are repeated at regular intervals, and determines the direction of the barcode A method of recognizing a matrix barcode consisting of cells of a rectangular grid having a direction pattern and a code area for storing data in a cell except the patterns, by photographing a camera having a built-in mobile device:

(1) 상기 매트릭스 바코드의 그레이스케일 이미지를 생성하는 단계;(1) generating a grayscale image of the matrix barcode;

(2) 상기 이미지의 경계를 검출하는 단계;(2) detecting a boundary of the image;

(3) 상기 (2) 단계의 결과로 후보 목록을 생성하는 단계; 및(3) generating a candidate list as a result of step (2); And

(4) 상기 후보 목록에 생성된 각각의 후보에 대하여 오류 교정을 수행하는 단계;(4) performing error correction on each candidate created in the candidate list;

를 포함하는 것을 특징으로 하는, 2차원 매트릭스 바코드의 인식 방법을 특징으로 한다.Characterized in that the two-dimensional matrix barcode recognition method comprising a.

또한, 바람직하게는, 상기 방법의 상기 (4) 단계는, Further, preferably, the step (4) of the method,

상기 후보의 파인더패턴의 4꼭지점들을 찾는 단계; 및Finding four vertices of the candidate finder pattern; And

상기 4꼭지점들을 이용해 상기 파인더패턴이 위치하는 부분의 경로를 구하는 단계;를 포함하는 것이 좋다.또한, 상기 방법은, 바람직하게는, 기울어져 있는 바코드 영상에 대해 그레이스 케일 이미지의 배열을 생성하는 단계; 및 상기 타이밍패턴의 정보를 이용해 왜곡된 배열의 영상정보를 보정하는 단계;를 더 포함할 수 있다.And using the four vertices to obtain a path of the portion where the finder pattern is located. The method may further include generating an array of grayscale images with respect to the inclined barcode image. ; And correcting the image information of the distorted array by using the information of the timing pattern.

또한, 바람직한 본 방법의 일 실시예에 있어서, 상기 방향패턴을 이용하여 방향패턴이 잘못된 후보는 목록에서 제외하는 단계를 더 포함하는 것이 좋다.In addition, according to an embodiment of the present invention, it is preferable to further include the step of excluding a candidate having a wrong direction pattern from the list by using the direction pattern.

또한, 본 방법은, 상기 코드 영역에 기록된 코드워드를 독출하여 직렬화하는 단계;를 더 포함하고, 상기 (4) 단계는, 상기 직렬화된 비트열에 대해 오류처리를 수행하는 단계를 포함하는 것이 바람직하다.
The method may further include reading out and serializing a codeword recorded in the code area, wherein step (4) preferably includes performing error processing on the serialized bit string. Do.

본 발명의 바코드는 종래의 QR코드의 가변성을 포기하는 대신 모바일 환경에서 실시간으로 인식 될 정도로 빠르게 인식 가능한 장점을 갖는다. 또한 표 2에 요약된 바와 같이 QR code와 마찬가지로 매트릭스 형태의 기호체계를 가지는데, 그 기호의 크기는 13×13이다. Bar code of the present invention has the advantage that can be recognized quickly enough to be recognized in real time in a mobile environment instead of giving up the variability of the conventional QR code. In addition, as summarized in Table 2, like the QR code, it has a matrix-type symbol system. The symbol size is 13 × 13.

Figure 112010043057240-pat00002
Figure 112010043057240-pat00002

<본 발명의 2차원 코드와 QR코드와의 비교>
<Comparison between two-dimensional code and QR code of the present invention>

아래에서 상세히 설명하는 바와 같이, 매트릭스 바코드란 간격이 일정한 사각형태의 격자 내부 셀들을 검정색과 흰색을 이용해 채우는 형태를 뜻하며, 크기가 13×13이라는 것은 그 격자가 가로 13칸과 세로 13칸인 정사각형 형태로 총 169개의 검정색이나 흰색의 셀들로 구성됨을 뜻한다. QR코드의 경우 크기가 버전 별로 다양하며, 정보용량이 그 크기와 오류교정률에 따라 달라진다. 서로 대등한 조건을 유지하기 위해 같은 13×13 크기의 QR코드인 Micro QR코드 M2버전과 비교하였다. M2 버전의 두 가지 오류교정수준인 L단계와 M단계 두 가지를 대상으로 비교하였다. 각각은 오류교정률 7%와 15%를 뜻한다.As will be described in detail below, the matrix barcode refers to a form in which cells in a grid having regular intervals are filled with black and white, and the size of 13 × 13 means that the grid is 13 squares and 13 squares. This means that it consists of a total of 169 black or white cells. In the case of QR codes, the size varies from version to version, and the amount of information depends on its size and error correction rate. In order to maintain the same conditions, we compared the Micro QR code M2 version with the same 13 × 13 size QR code. Two error correction levels of the M2 version, L and M, were compared. Each represents an error correction rate of 7% and 15%.

기호형태와 기호크기는 위에 설명한 바와 같이 모두 매트릭스 형태의 13×13크기를 갖는다. 기호구성요소는 기호를 표현할 때 항상 삽입되어 특별한 기능을 수행하며, 그 기호 고유의 형태를 형성하는 패턴들을 뜻한다. QR코드의 파인더패턴은 그것의 중심을 지나는 360도 전방향의 어느 선상에서든 1:1:3:1:1의 고유한 비율로 색상이 반전되는 형태를 지닌다. 그리고 바코드의 좌측상단에 위치하는 이 파인더패턴과 다른 기호들을 구분하는 여백을 갖게 된다. 그리고 상단과 좌측에 파인더패턴과 여백을 제외한 외곽부분에 흰색과 검정색이 반복적으로 교차하는 타이밍패턴이 위치하게 된다. 본 발명의 바코드의 경우 외곽을 검정색 셀들로 둘러싸는 형태로 파인더패턴을 가지며, 바코드의 중심점을 지나는 가로선과 세로선이 이루는 십자형태 상에 역시 흰색과 검정색이 반복적으로 교차하는 타이밍패턴을 갖는다. 또한, 완전한 대칭구조를 갖는 파인더패턴과 타이밍패턴만으로는 방향을 결정할 수 없으므로, 중심에 4개 셀과 모서리의 4개 셀을 방향을 정의하는 방향패턴으로 활용한다.As described above, the symbol shape and the symbol size both have a matrix size of 13 × 13. The symbol component refers to patterns that are always inserted when representing a symbol to perform a special function and form a unique form of the symbol. The finder pattern of the QR code has a form in which the color is inverted at a unique ratio of 1: 1: 3: 1: 1 on any line of 360 degrees passing through its center. And it has a margin to distinguish this finder pattern and other symbols located on the upper left of the barcode. In addition, the timing pattern where white and black cross repeatedly is located at the upper and left sides except for the finder pattern and the margin. The barcode of the present invention has a finder pattern in the form of enclosing the outside with black cells, and also has a timing pattern in which white and black repeatedly cross on a cross form formed by horizontal and vertical lines passing through the center point of the barcode. In addition, since the direction cannot be determined using only a finder pattern and a timing pattern having a perfect symmetry structure, four cells at the center and four cells at the corners are used as the direction pattern defining the direction.

정보표현은 정보용량을 보여준다. QR코드의 경우 Micro 버전에서 bit 저장을 지원하지 않고 숫자와 영문?숫자의 저장을 지원한다. 저장 가능한 숫자의 최대 자릿수와 영문?숫자의 개수가 표에 나타나 있다. 본 발명의 바코드의 경우 6바이트의 용량을 이용해 14자리의 숫자나 개에 해당하는 아이디를 저장할 수 있다. 그리고 정보효율은 표현할 수 있는 정보의 양을 그 바코드의 기호 크기(13×13)로 나눈 비율로서 동일한 크기의 바코드에서 실제 정보 용량의 효율의 정도를 비교한다. 이 효율의 차이는 각각의 고유한 기호구성요소와 오류처리를 위한 공간의 차이로부터 발생한다.Information presentation shows information capacity. In the case of QR code, micro version does not support bit storage but it supports numbers and alphanumeric characters. The maximum number of digits that can be stored and the number of alphanumeric characters are shown in the table. In the case of the barcode of the present invention, an ID corresponding to 14 digits or numbers can be stored using a capacity of 6 bytes. The information efficiency is a ratio of the amount of information that can be expressed by the symbol size (13 x 13) of the bar code, and compares the degree of efficiency of the actual information capacity in the bar code of the same size. This difference in efficiency arises from the difference in space between each unique sign component and error handling.

오류처리의 경우 QR코드가 리드솔로몬을 이용해 각각 7%, 15%를 교정한다. 본 발명의 바코드의 경우엔 특별히 2단계의 계층적인 오류처리 방법을 사용하는데, 1단계에서 QR코드와는 다른 방법인 해밍방법을 이용해 오류교정을 시도하고, 2단계에서 오류검출을 시도한다. 해밍방법을 사용하는 이유는 오류교정률의 가변성을 둘 필요가 없으며, 단순하게 변환테이블을 활용해 빠른 오류교정이 가능하기 때문이다 또한 2단계에 오류검출을 시도하는 것은 교정되지 못하거나 잘 못된 인식 경우를 찾아내 걸러냄으로써 정확률을 향상시키기 위함이다. 기본적으로 해밍부호방법이나 리드솔로몬은 오류교정률을 초과하는 오류의 발생에 대해 오작동할 가능성을 갖는다. 이러한 문제점을 보완하기 위해 본 발명의 바코드는 계층적인 오류처리 방법을 갖도록 설계되었다.In case of error handling, the QR code corrects 7% and 15%, respectively, using Reed Solomon. In the case of the barcode of the present invention, a two-stage hierarchical error processing method is used. In one step, an error correction is attempted using a hamming method that is different from a QR code, and an error detection is attempted in a second step. The reason for using the Hamming method is that it is not necessary to set the variability of the error correction rate, and it is possible to quickly correct the error by simply using the conversion table. Also, attempting to detect the error in the second stage is not corrected or wrongly recognized. This is to improve the accuracy rate by detecting the case. Basically, the Hamming code method or Reed Solomon has the potential to malfunction for the occurrence of an error that exceeds the error correction rate. To solve this problem, the barcode of the present invention is designed to have a hierarchical error processing method.

위와 같은 비교를 통해서, 본 발명의 2차원 신규한 바코드의 장점은, (1) 단순한 방법으로 빠르게 인식하는 것이 가능하며, (2) 높은 정보 효율성을 갖고, (3) 2단계의 계층적 오류처리를 통하여 정확률을 향상시켰다는 것이다.Through the above comparison, the advantages of the two-dimensional novel bar code of the present invention, (1) can be quickly recognized in a simple method, (2) has high information efficiency, (3) two-level hierarchical error processing The accuracy rate is improved through.

또한, 본 발명은 위와 같은 신규한 2차원 바코드에 대한 정확하고 신속하며 효율성 높은 인식 방법을 동시에 제공함으로써, 본 발명의 바코드의 상업화에 기여하고자 한다.In addition, the present invention intends to contribute to the commercialization of the barcode of the present invention by simultaneously providing an accurate, fast and efficient recognition method for the novel two-dimensional barcode as described above.

본 발명의 명세서에서 구체적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급됨을 첨언한다.
Even if effects not specifically mentioned in the specification of the present invention are incorporated, the provisional effects expected by the technical features of the present invention are treated as described in the specification of the present invention.

도 1은 종래의 QR코드를 나타내는 도면이다.
도 2는 종래의 Micro QR코드를 나타내는 도면이다.
도 3은 본 발명에 의한 계층적인 오류 처리 방법을 나타내는 도면이다.
도 4는 본 발명의 2차원 바코드의 파인더패턴(10)의 구성예를 도시한 도면이다.
도 5는 본 발명의 2차원 바코드의 타이밍패턴(20)의 구성예를 도시한 도면이다.
도 6의 (a)는 본 발명의 바코드의 원본이미지의 개념적인 일 예를 나타내며, (b)는 (a)의 바코드를 카메라로 기울여 촬영한 영상 이미지이다.
도 7은 도 6(b)의 영상을 동일한 크기의 격자로 독출할 때의 상태를 나타내는 도면이다.
도 8은 본 발명의 2차원 바코드의 방향패턴의 구성예를 도시한 도면이다.
도 9는 본 발명의 2차원 바코드의 기본 템플릿의 예를 나타내는 도면이다.
도 10은 본 발명의 2차원 바코드의 코드영역에 코드워드의 배치구성의 예를 나타내는 도면이다.
도 11은 문자열 “Hello!”를 표현한 본 발명의 2차원 바코드이다.
도 12는 본 발명의 2차원 매트릭스 바코드의 인식 방법의 일 실시예의 전체 과정을 개략적으로 나타내는 순서도이다.
도 13은 도 11의 인쇄된 바코드를 촬영하였을 때 얻은 그레이스 케일 영상 이미지이다.
도 14는 도 13에 대한 경계검출 처리를 하여 얻은 이미지이다.
도 15는 도 14에 대하여 후보조각을 생성한 결과를 예시한 도면이다.
도 16는 도 15에 대한 4꼭지점 찾기를 예시한는 도면이다.
도 17은 그레이스케일 이미지 상의 파인더패턴 검사 경로를 나타낸 도면이다.
도 18은 파인더패턴 검사결과로 남은 하나의 후보를 예시적으로 표현한 도면이다.
도 19는 바코드의 39×39 그레이스케일 배열화를 나타내는 도면이다.
도 20은 도 19와 달리 카메라로 기울여서 도 11의 인쇄된 바코드를 촬영했을 때의 왜곡된 영상의 배열화를 나타내는 도면이다.
도 21은 도 20의 바코드 이미지를 3×3크기 단위로 분할한 왜곡된 배열을 나타내는 도면이다.
도 22는 왜곡된 배열의 이진화 영상과 원본 바코드를 비교하는 도면이다.
도 23은 왜곡보정을 하기 위하여 사용하는 비대칭형 격자의 구조의 일 예를 나타내는 도면이다.
도 24는 왜곡보정 단계에서 사용되는 9가지 격자의 구성 예를 나타내는 도면이다.
도 25는 왜곡된 배열의 왜곡 보정을 나타내는 도면이다.
도 26은 "Hello!" 바코드 배열과 격자를 나타내는 도면이다.
도 27은 방향패턴을 구성하는 8개의 셀의 위치를 나타낸 도면이다.
도 28은 배열의 이진화 결과와 각각의 코드워드 번호를 나타낸 도면이다.
도 29는 배열로부터 코드워드의 직렬화를 나타낸 도면이다.
<도면의 주요부분에 대한 부호의 설명>
1: 2차원 바코드 10: 파인더패턴
20: 타이밍패턴 25: 2차원 바코드의 중심점
31~38: 방향패턴
※ 첨부된 도면은 본 발명의 기술사상에 대한 이해를 위하여 참조로서 예시된 것임을 밝히며, 그것에 의해 본 발명의 권리범위가 제한되지는 아니한다.
1 is a view showing a conventional QR code.
2 is a view showing a conventional Micro QR code.
3 is a diagram illustrating a hierarchical error processing method according to the present invention.
4 is a diagram showing an example of the configuration of a finder pattern 10 of a two-dimensional barcode of the present invention.
5 is a diagram showing an example of the configuration of the timing pattern 20 of the two-dimensional barcode of the present invention.
Figure 6 (a) shows a conceptual example of the original image of the bar code of the present invention, (b) is an image image taken by tilting the bar code of (a) with a camera.
FIG. 7 is a diagram illustrating a state when the image of FIG. 6B is read in a grid having the same size.
Fig. 8 is a diagram showing an example of the configuration of the direction pattern of the two-dimensional barcode of the present invention.
Fig. 9 is a diagram showing an example of the basic template of the two-dimensional barcode of the present invention.
Fig. 10 is a diagram showing an example of arrangement of codewords in a code area of a two-dimensional bar code of the present invention.
Fig. 11 is a two-dimensional barcode of the present invention representing the character string "Hello!"
12 is a flowchart schematically showing the overall process of an embodiment of a method of recognizing a two-dimensional matrix barcode of the present invention.
FIG. 13 is a grayscale image obtained when photographing the printed barcode of FIG. 11.
FIG. 14 is an image obtained by performing the edge detection process of FIG. 13. FIG.
FIG. 15 is a diagram illustrating a result of generating candidate fragments with respect to FIG. 14.
FIG. 16 illustrates a four vertex finding for FIG. 15.
17 is a diagram illustrating a finder pattern inspection path on a grayscale image.
18 is a diagram exemplarily illustrating one candidate remaining as a result of a finder pattern inspection.
Fig. 19 shows the 39 × 39 grayscale alignment of barcodes.
FIG. 20 is a diagram illustrating an arrangement of distorted images when the printed barcode of FIG. 11 is photographed by tilting with a camera unlike FIG. 19.
FIG. 21 is a diagram illustrating a distorted arrangement in which the barcode image of FIG. 20 is divided into 3 × 3 size units.
22 is a diagram comparing a binary image of a distorted array and an original barcode.
FIG. 23 is a diagram illustrating an example of a structure of an asymmetric grating used for distortion correction.
24 is a diagram illustrating an example of the configuration of nine gratings used in the distortion correction step.
25 is a diagram illustrating distortion correction of a distorted array.
26 shows "Hello!" A diagram showing a bar code array and a grid.
27 is a view showing the positions of eight cells constituting the direction pattern.
Fig. 28 shows the binarization result of the arrangement and the respective codeword numbers.
29 shows serialization of codewords from an array.
<Description of the symbols for the main parts of the drawings>
1: two-dimensional barcode 10: finder pattern
20: timing pattern 25: center point of the two-dimensional barcode
31 ~ 38: direction pattern
The accompanying drawings show that they are illustrated as a reference for understanding the technical idea of the present invention, by which the scope of the present invention is not limited.

이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 내용을 설명한다. 그리고 본 발명을 설명함에 있어서, 관련된 공지기능 등 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
Hereinafter, with reference to the accompanying drawings will be described specific details for the practice of the invention. In the following description of the present invention, when it is determined that the subject matter of the present invention may be unnecessarily obscured as matters obvious to those skilled in the art, such as related well-known functions, the detailed description thereof will be omitted.

<정보용량><Information capacity>

정보용량은 보통 비트나 바이트 단위로 정의되는 저장 가능한 정보의 크기를 뜻한다. 가능한 범위 내에서 용량은 클수록 좋다. 하지만 그것을 불가능하게 만드는 요인이 존재한다. 그것은 모바일 기기의 한계와 밀접한 관련이 있다. 계산능력의 한계 때문에 복잡한 처리가 불가능하다. 저장용량의 증가는 단순히 처리해야 할 자료양의 증가와 추가적인 처리의 요구로 이어질 수 있다. 예를 들어 일반적인 정보용량의 증가는 바코드의 물리적 크기의 증가나 반대로 표현크기의 감소로 이어지기 때문에 카메라 왜곡 등의 오류원인에 더 쉽게 노출되게 되고 이에 대한 추가적인 처리를 요구하게 된다. 위치보정패턴 등의 도구가 필요할 수도 있고, 왜곡보정을 위한 계산이 늘어나게 된다. 그리고 오류처리의 강도도 증가해야 한다.Information capacity is the amount of information that can be stored, usually defined in bits or bytes. The larger the dose, the better it is possible. But there are factors that make it impossible. It is closely related to the limitations of mobile devices. Complex processing is not possible due to the limitation of computing power. Increasing storage capacity can lead to simply increasing the amount of data to be processed and the need for additional processing. For example, an increase in general information capacity leads to an increase in the physical size of a barcode or, conversely, a decrease in the expression size, so that it is more easily exposed to error causes such as camera distortion and requires further processing. Tools such as a position correction pattern may be necessary, and calculations for distortion correction are increased. And the intensity of error handling must increase.

무조건 작게 하는 것도 물론 최선은 아니다. 새로운 2차원 바코드를 제안하는 이유가 기존의 모바일 바코드가 가진 용량의 한계를 해결하기 위해서이다. 다양한 응용에 충분한 용량을 제공하며 인식 과정의 성능을 고려한 적절한 크기를 갖는 것이 중요하다.Of course it is not the best to make it small. The reason for proposing a new two-dimensional barcode is to solve the limitation of capacity of the existing mobile barcode. It is important to provide sufficient capacity for a variety of applications and to have the appropriate size considering the performance of the recognition process.

모바일 환경에서 응용되는 바코드가, 범용의 2차원 바코드처럼 아이디 정보 이상의 부가정보를 포함할 필요는 없다 왜냐하면 다양한 응용에서 필요한 모든 정보를 2차원 바코드에 저장하는 것이 애초에 불가능하기 때문에 그러한 정보는 따로 저장하여 접근할 필요가 있기 때문이다. 그러므로 모바일 바코드는 아이디 정보만을 저장할 수 있으면 된다. 나머지 필요한 부가정보들은 바코드 외에 모바일 기기가 접근 가능한 저장 공간으로부터 얻어진다.Barcodes applied in mobile environments do not need to contain additional information beyond ID information like general purpose 2D barcodes because it is not possible to store all the information necessary for various applications in 2D barcodes. Because you need to approach. Therefore, the mobile barcode only needs to store ID information. The remaining additional information is obtained from the storage space accessible by the mobile device in addition to the barcode.

이제 어떤 단일의 대형 시스템에 수많은 객체가 존재할 때, 이것들 각각에 대해 유일한 아이디를 제공하기 위해서는 얼마 정도의 용량이 필요한지에 대해 생각해본다. 이러한 대표적인 시스템으로 인터넷을 생각해볼 수 있다. 전 세계를 거쳐 인터넷에 연결되어 있는 모든 컴퓨터들은 원칙적으로 유일한 주소를 부여 받는다. 여기에 사용되는 인터넷주소(IPv4)의 크기는 4바이트이다. 4바이트는 32비트이며, 이 32비트로 표현할 수 있는 아이디의 수는 232개 즉, 4,294,967,296개 이다. 4바이트 이상의 용량을 가지면 적어도 현재의 인터넷 호스트를 유일하게 표현하는 것이 가능하다. 본 발명이 제안하는 바코드는 최소 4바이트의 정보용량을 갖는 것이 바람직하다. 정확한 크기에 대해서는 다음의 오류처리에 관한 사항들을 고려하고 모양을 결정하는 과정을 거치며 결정한다.
Now, when there are a lot of objects in a single large system, think about how much capacity is needed to provide a unique ID for each of these. You can think of the Internet as such a representative system. Every computer connected to the Internet across the world is in principle given a unique address. The size of the Internet address (IPv4) used here is 4 bytes. Four bytes are 32 bits, and the number of IDs that can be represented by these 32 bits is 2 32 , that is, 4,294,967,296. With more than 4 bytes of capacity, it is possible to uniquely represent at least the current Internet host. The barcode proposed by the present invention preferably has an information capacity of at least 4 bytes. The exact size is determined by considering the following error handling and determining the shape.

<오류처리><Error handling>

오류처리 방법은 크게 두 가지로 분류하여 생각해볼 수 있다. (1) 오류 교정이 가능한 것과 (2) 검출만이 가능한 것이 그것이다. 오류 교정이 가능한 방법은 오류의 검출이 또한 가능하지만, 두 가지 목적 중 한 가지를 확실히 정하여 구분하여 사용할 필요가 있다. 오류가 검출되면 그것을 단지 폐기하거나 교정을 시도하던지, 둘 중 한 가지만을 해야 한다. 몇 개의 오류가 발생했는지를 알아낼 수 있는 방법은 없다. 그렇기 때문에 하나의 오류가 발생했을 때는 교정하고 두 개 이상일 때 실패로 처리하는 일은 불가능하다. 하지만 바코드 응용은 오류 교정의 시도도 필요하고 그것이 실패했을 경우 그 사실을 정확히 파악하는 일도 중요하다. 잘못된 코드를 그대로 받아들여 응용에 문제를 발생시켜서는 안 된다.Error handling can be classified into two categories. (1) error correction is possible and (2) detection only. Error correction is also possible in the detection of errors, but it is necessary to determine and use one of two purposes clearly. If an error is detected, either discard it or attempt to correct it, or do one of two things. There is no way to find out how many errors have occurred. As a result, it is impossible to correct one error and treat it as more than one. However, bar code applications also require error correction attempts, and it is important to know exactly if that fails. You should not accept bad code as it is and cause problems for your application.

본 발명의 2차원 바코드는 계층적인 오류처리 방법을 사용한다. 2개의 계층으로 오류처리 단계를 구분한다. 도 3에서 보는 바와 같이, 첫 번째 단계(S10)에서 오류의 교정을 시도하고, 이것이 성공했는지 실패했는지에 대해 두 번째 단계(S20)에서 결정한다. 그래서 두 번째 단계에서 실패로 판정된다면 바코드 인식 실패로 간주하고(S22), 성공하면 오류교정을 승인한다(S21).The two-dimensional barcode of the present invention uses a hierarchical error processing method. The error handling phase is divided into two layers. As shown in FIG. 3, an attempt is made to correct the error in the first step S10 and a determination is made in the second step S20 as to whether it has succeeded or failed. So, if it is determined that the failure in the second step is considered as a barcode recognition failure (S22), if successful, error correction is approved (S21).

이렇게 단계적인 오류처리를 가능하게 하기 위해서 데이터에 오류검출부호를 첨부하고 그 오류검출부호와 데이터에 오류교정부호를 첨부하면 된다. 그리고 1단계(S10)에서 오류교정을 시도하고 그 성공여부를 2단계(S20)에서 판단한다. 오류교정방법으로 해밍부호를 사용하고, 오류검출에 검사합이나 순환중복검사를 사용한다. 이것으로 바코드의 정보에 관한 용량과 종류, 그 정보의 부호화 방법이 결정되었다. 본 발명의 2차원 바코드가 갖추어야 할 조건들이 다음의 [표 3]과 같다.
In order to enable the error processing step by step, an error detection code should be attached to the data and an error correction code should be attached to the error detection code and the data. In step 1 (S10), an error correction is attempted and its success is determined in step 2 (S20). Hamming codes are used as error correction methods and checksums or cyclic redundancy tests are used for error detection. This determined the capacity and type of the barcode information and the method of encoding the information. The conditions to be provided by the two-dimensional barcode of the present invention are shown in the following [Table 3].

본 발명의 바코드의 정보용량과 부호방법Information capacity and coding method of bar code of the present invention 조건Condition 단위unit value 정보용량Information capacity 바이트byte ≥4≥4 정보종류Information type 유형type 아이디ID 부호방법
Code method
1단계: 오류정정Step 1: Error Correction 해밍부호Hamming code
2단계: 오류판단Step 2: determine the error 순환중복검사 또는 검사합Cyclic redundancy test or checksum

이상의 조건들을 고려하여 본 발명의 실제 바코드의 모양을 설계한다.
Considering the above conditions, the shape of the actual barcode of the present invention is designed.

<1. 본 발명의 바코드의 모양><1. Shape of Barcode of the Present Invention>

대부분의 기존 2차원 바코드들은 공통적으로 파인더패턴과 타이밍패턴을 갖는다. 그리고 추가적으로 카메라나 다양한 원인에 따른 왜곡을 보정하기 위한 특별한 패턴을 갖기도 한다. 타이밍패턴을 바코드의 중심에 배치하면 왜곡보정을 위한 특별한 패턴의 추가적인 삽입 없이 보정에 사용 가능하다. 파인더패턴과 타이밍패턴의 역할은 다음과 같이 정의된다.Most existing two-dimensional barcodes have a finder pattern and a timing pattern in common. In addition, it may have special patterns to compensate for distortion caused by cameras or various causes. By placing the timing pattern in the center of the barcode, it can be used for correction without additional insertion of a special pattern for distortion correction. The role of the finder pattern and the timing pattern is defined as follows.

1. 파인더패턴: 인식과정에서 기계가 바코드를 발견하는데 사용하는 패턴으로, 바코드가 아닌 후보들과 비교가 되는 특징1. Finder pattern: A pattern used by a machine to find barcodes in the recognition process, and is compared to candidates that are not barcodes.

2. 타이밍패턴: 바코드의 표현 단위인 점의 크기를 알려주는 패턴으로, 보통 검정색과 흰색 점이 번갈아 연속되어 있고 바코드의 크기에 대한 단서도 제공2. Timing pattern: A pattern that indicates the size of a dot, which is a representation unit of a barcode. Usually, black and white dots are alternately arranged and provide clues about the size of the barcode.

본 발명의 일 실시예에 따른 바코드는 13 × 13 고정된 크기의 정사각형의 매트릭스형태를 갖는다. 매트릭스형 바코드는 정사각형의 셀들이 모여 구성된 형태로 어떠한 출력장치에서나 쉽게 다룰 수 있고, 인쇄도 용이한 장점을 갖는다. 고정된 크기로 정의하는 이유는 추가적인 처리로 인한 복잡성 증가를 없애기 위해서이다. 아이디 정보만을 표현하면 되기 때문에 일정 수준 이상의 정보용량만 갖춘다면, 더 많은 정보를 저장하기 위한 크기의 가변성을 둘 필요가 없게 된다. 정사각형인 이유는 다양한 응용에서 360도 전 방향의 자유로운 인식이 필요할 수 있기 때문에 모든 방향에서 그 형태가 비교적 일정하게 유지되어 보이도록 하기 위해서이다.
Bar code according to an embodiment of the present invention has a square matrix of 13 × 13 fixed size. Matrix-type bar code is composed of square cells, which can be easily handled by any output device, and has the advantage of easy printing. The reason for defining a fixed size is to eliminate the increased complexity of additional processing. Since only the ID information needs to be represented, if there is a certain level of information capacity, there is no need to have a variable size to store more information. The reason for the square is to ensure that the shape remains relatively constant in all directions because free recognition of 360 degrees in all applications may be required.

본 발명의 상기한 바코드는 기본적인 파인더패턴과 타이밍패턴 그리고 방향패턴을 갖는다. 특별히 방향패턴은 파인더패턴과 타이밍패턴을 대칭구조로 설계할 때 바코드의 방향을 판단할 수 있는 단서를 제공하기 위해 존재한다. 각각의 패턴과 코드영역, 바코드의 모양 차원에서 고려해야 할 오류처리에 대한 구체적인 내용은 이하에서 설명될 것이다.
The bar code of the present invention has a basic finder pattern, a timing pattern, and a direction pattern. In particular, the direction pattern exists to provide a clue to determine the direction of the barcode when the finder pattern and the timing pattern are designed in a symmetrical structure. Details of the error handling to be considered in each pattern, code area, and shape of a barcode will be described below.

<2. 파인더패턴(10)><2. Finder Pattern (10)>

도 4에 나타난 바와 같이 본 발명의 2차원 코드(1)의 파인더패턴(10)은 닫혀있는 정사각형의 선 형태로 할 수 있다. 매트릭스형 바코드이기 때문에 실제로는 검정색 셀들의 연속으로 볼 수 있다. 그리고 그 파인더패턴의 내부 공간(11)에 여러 가지 패턴들이 배치되게 될 것이다.As shown in FIG. 4, the finder pattern 10 of the two-dimensional code 1 of the present invention may be in the form of a closed square line. Because it is a matrix barcode, it can actually be seen as a series of black cells. In addition, various patterns will be arranged in the inner space 11 of the finder pattern.

파인더패턴(10) 형성에서 중요한 점은 파인더패턴(10) 주변에 하얀색 여백이 반드시 필요하다는 것이다. 이 여백의 하얀색과 파인더패턴(10)의 검정색이 큰 대비를 이루어 인식기에 의해 인식될 수 있도록 된다. 즉, 파인더패턴을 둘러싸는 하얀색 여백의 폭은 2셀의 폭이어야 한다는 QR코드에서의 정의와 같은 엄격한 한정을 불필요하며, 1셀 폭의 하얀색 여백이 파인더패턴(10)의 검정색을 둘러싸고 있으면 된다. 다만, 왜곡이 심각한 영상에서의 바코드 인식률을 높이기 위해서 2셀 폭 이상으로 할 수도 있다.An important point in forming the finder pattern 10 is that a white margin is necessary around the finder pattern 10. The white of this margin and the black of the finder pattern 10 make a great contrast to be recognized by the recognizer. That is, a strict limitation such as the definition in the QR code that the width of the white margin surrounding the finder pattern should be 2 cells is unnecessary, and a white margin of one cell width should surround the black of the finder pattern 10. However, in order to increase the barcode recognition rate in a severely distorted image, it may be set to 2 cells or more in width.

이러한 파인더패턴(10)은 비교적 패턴의 고유성이 떨어지기 때문에 인식과정에서 많은 후보들을 생성하는 단점이 있다. 하지만 영상에서 모양의 경계선을 대상으로 하는 인식과정에서 간단하고 빠르게 실행되는 알고리즘을 이용해 발견할 수 있다는 장점이 있다. 또한 오히려 이러한 단순한 패턴으로 인해 영상의 왜곡이나 오류와 상관없이 재현율을 높여주는데 도움을 줄 수 있다. 고유성이 떨어지기 때문에 발생한 많은 후보들 - 바코드가 아닌 - 은 이후 타이밍패턴과 방향패턴 검사를 거치며 1차적으로 제외되고, 최종적으로는 오류처리 과정의 2단계인 오류검출을 통해 제외되게 된다. 이러한 단계적인 후보 선택 과정을 통해 재현율과 정확률, 그리고 계산적 단순성을 갖추게 된다.The finder pattern 10 has a disadvantage in that a large number of candidates are generated in the recognition process because the uniqueness of the pattern is relatively low. However, it has the advantage that it can be found by using a simple and fast algorithm in the recognition process targeting the boundary of the shape in the image. Rather, these simple patterns can help to increase the refresh rate regardless of image distortion or errors. Many candidates-non-barcodes-that are generated due to poor uniqueness are excluded first through timing and direction pattern checks, and finally through error detection, which is the second stage of the error handling process. This stepwise candidate selection process results in recall, accuracy, and computational simplicity.

보다 자세한 파인더패턴(10)의 발견 방법에 관해서는, 인식기의 설계과정에서의 인식방법에 대해 상세히 설명한다. 이제 이 파인더패턴(10) 내부(11)에 타이밍패턴과 방향패턴이 어떻게 배치되는지 그리고 코드는 어떤 식으로 표현되는지에 대해 계속해서 설명한다.
Regarding the discovery method of the finder pattern 10 in detail, the recognition method in the design process of the recognizer will be described in detail. Now, how the timing pattern and the direction pattern are arranged in the inside 11 of the finder pattern 10 and how the code is represented will be described.

<3. 타이밍패턴(20)><3. Timing Patterns (20)>

본 발명의 타이밍패턴(20)은, 마치 점선과 같이, 검정색 영역(22)과 흰색 영역(21)이 일정한 간격을 두고 반복되는 형태로 구성할 수 있다. 그 반복의 주기가 셀의 크기를 나타내게 된다. 본 발명의 바코드는 위치보정패턴을 갖고 있지 않기 때문에, 타이밍패턴(20)이 그 역할까지 수행해야 한다. 따라서 코드의 모든 영역의 셀들과의 거리를 비교적 일정하게 해서 골고루 영향을 받을 수 있는 위치에 두는 것이 바람직하다. 또한, 2차원 매트릭스의 구조상 X축과 Y축을 따라 검정색 영역(22)과 흰색 영역(21)이 반복되는 직선의 형태가 되는 것이 바람직하다. 이러한 조건들을 만족하려면 바코드의 중심점(25)을 지나는 교차선 형태로 형성되어야 한다.The timing pattern 20 of the present invention may be configured in such a manner that the black region 22 and the white region 21 are repeated at regular intervals, as in a dotted line. The period of repetition will indicate the size of the cell. Since the bar code of the present invention does not have a position correction pattern, the timing pattern 20 should play its role. Therefore, it is desirable to keep the distance from cells in all areas of the code relatively constant so that they are evenly affected. In addition, the structure of the two-dimensional matrix is preferably in the form of a straight line in which the black region 22 and the white region 21 are repeated along the X and Y axes. To satisfy these conditions, it must be formed in the form of an intersection line passing through the center point 25 of the barcode.

타이밍패턴(20)이 정중앙을 지나도록 구성하기 위해 본 발명의 매트릭스 크기를 13 × 13인 홀수로 결정했다. 도 5에 나타난 바와 같이, 타이밍패턴(20)을 제외한 파인더패턴과 나머지영역은 회색으로 표시했다. 검정색뿐 아니라 흰색도 타이밍패턴(20)의 구성요소이며 그 부분에 데이터나 다른 패턴이 들어갈 수 없다. 타이밍패턴(20)이 2차원 코드(1)의 중심점(25)을 지나므로 어느 한쪽 영역에 치우치지 않는다. 파인더패턴 내부의 데이터가 표현되는 코드영역의 셀들은 타이밍패턴과의 거리가 멀지 않기 때문에 위치보정패턴 없이 데이터를 읽어 들이는데 문제가 없다.In order to configure the timing pattern 20 to pass through the center, the matrix size of the present invention was determined to be an odd number 13 × 13. As shown in FIG. 5, the finder pattern except for the timing pattern 20 and the remaining areas are displayed in gray. White as well as black is a component of the timing pattern 20, and data or other patterns may not enter the portion. Since the timing pattern 20 passes through the center point 25 of the two-dimensional code 1, it is not biased in any one area. Cells in the code area in which the data inside the finder pattern are represented are not far from the timing pattern, so there is no problem in reading the data without the position correction pattern.

이 타이밍패턴(20)은 인식과정에서 데이터를 정확하게 읽어 들일 수 있도록 영상정보의 왜곡을 보정한다. 타이밍패턴(20)이 보정할 수 있는 대표적인 왜곡 현상으로 원근현상을 생각할 수 있다. 카메라로 바코드(1)를 기울여 촬영할 때 영상 상에 카메라로부터 가까운 부분은 더 크게 보이고 먼 부분이 더 작게 보이게 된다. 결과적으로 바코드(1)의 데이터를 표현한 셀들의 크기가 고르지 않게 된다.The timing pattern 20 corrects the distortion of the image information so that the data can be read correctly in the recognition process. Perspective phenomenon may be considered as a typical distortion phenomenon that the timing pattern 20 can correct. When photographing the camera with the bar code 1 tilted, the portion closer to the image on the image becomes larger and the portion farther away appears smaller. As a result, the sizes of the cells representing the data of the barcode 1 are uneven.

도 6은 카메라 원근에 의한 왜곡현상을 보여주고 있다. (a)가 바코드의 원본 이미지이며, (b)는 그 바코드를 인쇄하여 카메라로 기울여 촬영한 영상이다. 동일한 두께의 파인더패턴을 구성하는 셀이 먼 쪽과 가까운 쪽에서 각각 3배나 차이가 나는 것을 확인할 수 있다. 이 상태의 영상을 그대로 동일한 크기의 셀로 구성된 격자로 읽어 들이면 어떻게 될지에 대해 도 7이 나타내고 있다. .6 shows distortion caused by camera perspective. (a) is the original image of the barcode, and (b) is an image taken by tilting the camera by printing the barcode. It can be seen that the cells constituting the same thickness finder pattern are three times different from each other on the far side and the close side. 7 shows what happens if the image in this state is read as a grid of cells of the same size. .

도 7에 나타난 바와 같이, 어떤 셀도 선의 간격 내 공간에 제대로 들어오지 않는다. 가장 아래쪽을 먼저 보면, 셀들이 간격보다 커서 하나의 간격을 넘어감으로써 그 위의 간격 내에까지 영향을 주고 있다. 이러한 경우 간격대로 읽어 들이면 가장 아래쪽은 정상적으로 데이터가 들어올 수 있지만, 그 위쪽 간격의 경우 아래쪽 셀의 영향으로 잘못 인식될 가능성이 생기게 된다. 가장 위쪽을 보면 간격 내에 두 개 이상의 셀들이 들어와 제대로 인식이 불가능해질 것을 예상할 수 있다. 도 7의 예는 Y축만을 고려한 것이다. X축까지 고려하면 문제는 더욱 복잡해진다. 이러한 왜곡을 그대로 둔 채 내부 패턴이나 데이터를 인식하는 것은 불가능하다.As shown in Fig. 7, no cell properly enters the space within the line spacing. At the very bottom, the cells are larger than the intervals, so one cell spans one gap, affecting the gaps above it. In this case, if the interval is read at the bottom, data can be normally entered at the bottom, but there is a possibility that the gap at the top is incorrectly recognized by the influence of the bottom cell. Looking at the top, we can expect two or more cells to enter the gap and not be recognized correctly. The example of FIG. 7 considers only the Y axis. The problem is further complicated by considering the X axis. It is not possible to recognize internal patterns or data with these distortions intact.

이러한 선들의 간격을 바코드의 실제 셀 간격에 맞추어 보정하는 것이 타이밍패턴의 역할이다.
It is the timing pattern that corrects the spacing of the lines to the actual cell spacing of the barcode.

<4. 방향패턴(31~38)><4. Direction Pattern (31 ~ 38)>

본 발명의 2차원 바코드(1)는 전체적인 모양이 정사각형으로, 지금까지 설명한 파인더패턴(10)과 타이밍패턴(20)만으로는 네 방향 어디에서 보아도 모양이 완전히 동일하여 방향을 알아낼 수가 없다. 그러면 데이터를 제대로 읽어내는 것이 불가능해진다. 따라서 본 발명에서는 추가로 방향을 결정하는 방향패턴(31~38)을 정의한다.The two-dimensional barcode 1 of the present invention has a square shape in general, and only the finder pattern 10 and the timing pattern 20 described so far are completely identical in four directions so that the direction cannot be determined. This makes it impossible to read the data properly. Therefore, in the present invention, the direction patterns 31 to 38 which further determine the direction are defined.

도 8에 도시한 바와 같이, 본 발명의 바람직한 실시예에 있어서 방향패턴(31~38)에는 총 8개의 셀이 사용될 수 있다. 바깥쪽의 네 개의 셀(31, 32, 33, 34)이 하나의 그룹을 이루고, 안쪽의 네 개의 셀(35, 36, 37, 38)이 다른 하나의 그룹을 이루어 함께 사용될 수 있으며, 각각의 세 개 셀의 색상이 서로 같고 나머지 하나의 셀의 색상만 달라서 방향을 지시하게 된다. 본 실시예의 방향패턴의 구성에 있어서, 안쪽에 구성되는 셀 그룹의 경우 세 가지 셀(36, 37, 38)의 색은 흰색이고 좌측상단에 위치한 셀(35)만 검정색으로 되어있다. 바깥쪽에 구성되는 셀 그룹의 경우 세 가지 셀(32, 33, 34)의 색은 검정색이고 역시 좌측상단에 위치한 셀(31)만 다르게 흰색으로 되어있다.
As shown in FIG. 8, a total of eight cells may be used for the direction patterns 31 to 38 in the preferred embodiment of the present invention. The outer four cells 31, 32, 33 and 34 form one group, and the inner four cells 35, 36, 37 and 38 form one other group, which can be used together. The three cells have the same color and only one cell has a different color to indicate the direction. In the configuration of the direction pattern of the present embodiment, in the case of the cell group configured inside, the three cells 36, 37, and 38 have a white color, and only the cell 35 located at the upper left is black. In the case of the outer cell group, the three cells 32, 33, and 34 are black, and only the cells 31 located at the upper left are white.

이상으로 본 발명의 기본적인 패턴들을 정의하였다. 파인더패턴과 타이밍패턴 및 방향패턴이 그것이었고, 이것들을 모두 표시한 후의 나머지 영역을 실제 데이터를 표현하는 코드영역으로 사용할 수 있다. 도 9에 나타난 바와 같이, 모든 기본 패턴들을 나타낸 후의 회색으로 표시되어 있는 부분이 데이터를 표현하는 부분으로 총 92개의 셀로 구성된다. 이것으로 기본적인 바코드의 템플릿(template)이 완성된다. 이어서 실제 데이터가 표현되는 코드영역에 대해 설명한다.
The basic patterns of the present invention have been defined above. It was a finder pattern, a timing pattern, and a direction pattern, and the remaining area after displaying all of them can be used as a code area representing actual data. As shown in FIG. 9, the gray-colored part after displaying all the basic patterns is a part representing data and is composed of a total of 92 cells. This completes the basic barcode template. Next, the code area in which the actual data is represented will be described.

<5. 코드영역><5. Code Area>

위에서 설명한 바와 같이, 본 발명의 바코드의 템플릿을 구성하는 기본 패턴들을 제외하고 실제 데이터를 표현하는데 사용되는 코드영역은 총 92개의 셀로 구성될 수 있다. 그대로 데이터를 표현하면 92비트를 표현할 수 있다. 이것은 11바이트 정도가 된다. 하지만 오류처리를 위한 해밍부호와 오류검출 방법을 적용하면 실제 정보를 저장할 수 있는 용량은 이것보다 줄어들게 된다.As described above, except for the basic patterns constituting the template of the barcode of the present invention, the code area used to represent actual data may be composed of a total of 92 cells. If data is represented as it is, 92 bits can be represented. This is about 11 bytes. However, if Hamming code and error detection method are applied for error handling, the capacity to store the actual information is smaller than this.

우선 1차적으로 해밍(7, 4)부호의 코드워드가 7비트 길이이므로, 총 13개의 코드워드의 표현이 가능해진다. 13개의 코드워드를 표현하면 1개의 셀이 남게 되며, 총 52비트의 정보를 표현하는 것이 가능하다. 1개의 남는 셀은 그냥 비워둔다. 해밍(7, 4)부호로 표현된 총 91개 셀 중 최대 13개의 셀이 손상되거나 왜곡되어 오류가 발생해도 성공적으로 인식하는 것이 가능하다.First, since the codeword of the Hamming (7, 4) code is 7 bits long, a total of 13 codewords can be represented. If 13 codewords are represented, one cell remains, and a total of 52 bits of information can be represented. One remaining cell is left blank. Of the total 91 cells represented by the Hamming (7, 4) code, up to 13 cells are damaged or distorted, so that an error can be recognized successfully.

이제 2차적으로 앞서 주어진 52비트의 정보용량에 오류 검출을 위한 체크값을 위한 공간을 할당한다. 52비트로 표현할 수 있는 바이트의 수가 최대 6바이트이고 4비트가 남게 된다. 6바이트는 정보를 표현하는데 사용하고 4비트는 체크값 저장 공간으로 사용한다. 이렇게 해서 바코드의 모양에 관련한 대부분의 특성들이 결정됐다. 이제 마지막으로 오류처리를 위한 바코드 모양에서 고려해야 할 사항들을 설명한다.
Now, secondly, a space for the check value for error detection is allocated to the 52-bit information capacity previously given. The maximum number of bytes that can be represented by 52 bits is 6 bytes, leaving 4 bits. Six bytes are used to represent information and four bits are used as check value storage. This determined most of the characteristics related to the appearance of the barcode. Finally, the last thing to consider in the shape of barcodes for error handling is explained.

<6. 오류처리><6. Error Handling>

위에서 91개 셀들 중 최대 13개의 셀의 오류를 교정하는 것이 가능하다고 했다. 하지만 경우에 따라서는 2개의 오류만으로 교정이 불가능한 상태가 될 수도 있다. 한 코드워드의 길이가 7비트이고, 각 코드워드마다 하나의 오류를 교정하는 것이 가능하다. 만약 한 코드워드 내에 2개 이상의 오류가 발생한다면 다른 코드워드들이 모두 정상이더라도 전체 인식은 실패할 수밖에 없다.In the above, it is possible to correct errors of up to 13 cells out of 91 cells. In some cases, however, only two errors can make the condition impossible to correct. One codeword is 7 bits long, and it is possible to correct one error for each codeword. If two or more errors occur in one codeword, the entire recognition may fail even if all of the other codewords are normal.

바코드의 인식과정에서 오류는 산발적인 것과 국소적인 것으로 나누어 생각해 볼 수 있다. 산발적인 오류가 임의로 나타난다면 더 이상 어떤 방법으로도 해결할 수 없다. 하지만 국소적인 오류의 경우에 대해서는 대책을 생각해 볼 수 있다. 바로 코드워드의 비트를 배치하는 방법을 달리 하여 2차원 평면상에서 국소적인 오류에 한 코드워드가 집중적으로 노출되는 확률을 줄이는 것이다. 그렇게 하기 위해 코드워드의 비트들이 서로 인접하게 배치되는 일을 줄여야 한다. 하지만 또 한편으로 배치 방법이 너무 복잡해서 인식과정에 계산의 복잡도를 증가시켜서도 안 된다.Errors in barcode recognition can be thought of as being divided into sporadic and local. If sporadic errors appear randomly, they can no longer be solved in any way. However, countermeasures can be taken for local errors. By differently arranging the bits of the codeword, it is possible to reduce the probability of intensive exposure of a codeword to a local error on a two-dimensional plane. In order to do so, it is necessary to reduce the bits placed in the codeword adjacent to each other. But on the other hand, the placement method should not be too complex to increase the computational complexity in the recognition process.

도 10은 바코드의 코드영역에 코드워드를 어떻게 배치하는지에 대해 예시적으로 보이고 있다. 13개의 코드워드 각각의 1부터 13까지 번호로 구분한다면, 도 10에 도시되어 있는 바와 같이, 각 코드워드의 7개 비트를 각기 다른 곳에 배치할 수 있다. 특별히 1번 코드워드에 해당하는 셀들만 회색으로 표시하였다. 1번 코드워드가 표현될 셀들의 개수는 총 7개다. 해밍(7, 4)부호의 7개 비트를 순차적으로 위의 1번 셀부터 차례대로 밑의 1번 셀까지 채워 넣으면 된다. 여기서 <순차적으로>라는 표현은, <국소적으로 집중되는 오류에 강인하도록 분산 배치>한다는 의미이다. 도 10의 경우에는 13개의 코드워드 7개를 코드영역에 배치할 때 좌에서 우로 진행하는 방향으로 순서대로 배치하였지만, 다른 실시예에서는 13개의 코드워드 7개를 위에서 아래로 배치하는 것도 가능하다.10 exemplarily shows how to arrange a codeword in a code region of a barcode. As shown in FIG. 10, seven bits of each codeword may be arranged in different places, if the code is divided into numbers from 1 to 13 of each of the 13 codewords. In particular, only cells corresponding to codeword 1 are grayed out. The number of cells in which codeword 1 is to be expressed is a total of seven. The seven bits of the Hamming (7, 4) code are filled sequentially from the first cell above to the first cell below. The expression <sequential> here means <distributed arrangement so as to be robust to locally concentrated errors>. In the case of FIG. 10, when 13 codewords are arranged in a code region, the 13 codewords are arranged in order from left to right, but in another embodiment, the 13 codewords may be arranged from top to bottom.

이 경우 어떤 원인에 의한 국소적인 오류가 발생해도 동시에 하나의 코드워드에 피해를 줄 확률은 줄어들게 된다. 산발적인 오류가 고르게 분포되어 나타난다면, 여기에 대해 특별한 방법은 없다. 하지만 적어도 그냥 일렬로 배치하는 것보다 성능이 더 떨어지는 일은 발생하지 않는다. 이것으로 모양 상에서 고려해야 할 오류처리까지 모두 알아보았다. 이와 같이 구성함으로써 이제 본 발명의 바코드의 설계가 완성되었다.
In this case, even if a local error is caused by any cause, the probability of damaging one codeword is reduced. If sporadic errors are evenly distributed, there is no special way to do this. But at least you don't get much worse performance than just lining up. With this, we have examined all the error handling to be considered in appearance. With this configuration, the bar code design of the present invention is now completed.

설계된 바코드에 실제로 정보를 수록하기 위한 절차는 다음과 같다. The procedure for actually recording information on the designed barcode is as follows.

우선 표현하고자 하는 48비트의 아이디 정보에 체크값을 계산하여 첨부해서 총 52비트의 데이터를 생성한다. 이 데이터를 해밍(7, 4)부호를 이용해 4비트 단위로 7비트의 코드워드를 생성한다. 이제 바코드의 템플릿의 코드영역에 좌측상단으로부터 순차적으로 채워나갈 수 있다. 이때 13개의 코드워드를 1번 코드워드의 1번째 비트, 2번 코드워드의 2번째 비트, 3번째 코드워드의 3번째 비트의 순서로 각 코드워드를 번갈아 가며 1번째 비트부터 7번째 비트까지 채워나간다. 마지막으로 13번 코드워드의 7번째 비트가 채워진다. 각 비트를 채울 때는 1을 검정색으로 0을 흰색으로 해서 셀을 표현한다.
First, a check value is calculated and attached to the 48-bit ID information to be expressed to generate a total of 52 bits of data. This data is generated using a Hamming (7, 4) code to generate a 7-bit codeword in 4-bit units. You can now fill the code area of the barcode template sequentially from the top left. At this time, 13 codewords are filled in order from the 1st bit to the 7th bit by alternating each codeword in the order of 1st bit of 1st codeword, 2nd bit of 2nd codeword, and 3rd bit of 3rd codeword. I'm going. Finally, the seventh bit of codeword 13 is filled. Fill each bit with 1 in black and 0 in white to represent the cell.

이하에서는, 위와 같은 구성의 신규한 2차원 바코드 인쇄물을 카메라를 통해 입력받고 인식하는 과정을 상세히 설명한다.Hereinafter, a process of receiving and recognizing a novel two-dimensional barcode printed material having the above configuration through a camera will be described in detail.

도 12은 본 발명의 바코드 인식방법에 대한 전체 프로세스를 개괄적이며 예시적으로 나타낸다. 모바일 기기에 내장된 카메라를 통해 인쇄된 바코드를 촬영하여 얻은 그레이스케일 이미지를 입력데이터로 생성하고(S101), 이 영상 데이터의 형태의 경계선을 검출하여(S102), 1개 이상의 후보조각들을 생성하여 후보군 목록을 만든다(S103). 다음으로 후보목록에 속한 각 후보들을 추출하여(S104)에 대하여 파인더패턴의 꼭지점을 찾는다(S105).12 is a schematic and exemplarily illustrating an entire process for a barcode recognition method of the present invention. The grayscale image obtained by photographing the barcode printed by the camera embedded in the mobile device is generated as input data (S101), and the boundary line of the shape of the image data is detected (S102) to generate one or more candidate pieces. Create a candidate group list (S103). Next, the vertices of the finder patterns are found with respect to each candidate included in the candidate list (S104).

위와 같은 과정을 통해서, 파인더패턴의 외곽선을 포함한 후보들과, 그 후보들의 꼭지점을 구한 다음에, 이 꼭지점들을 이용해 파인더패턴이 위치하는 부분의 경로를 구한다. 그리고 그 경로를 이용해 입력데이터인 그레이스케일 이미지에 파인더패턴 부분이 모두 검정색으로 되어 있는지를 검사한다(S106).Through the above process, the candidates including the outline of the finder pattern and the vertices of the candidates are obtained, and then the paths of the parts where the finder pattern is located are obtained using these vertices. Then, it is checked whether all of the finder pattern portions are black in the grayscale image which is the input data using the path (S106).

다음으로 기울어져 있는 바코드 영상에 대해 그레이스 케일 이미지의 배열을 생성하고(S107), 타이밍패턴의 정보를 이용해 왜곡된 배열의 영상정보를 보정하는 작업을 수행한다(S108). 그런 다음에, 방향패턴을 구성하는 8개의 셀을 이용하여 방향패턴이 잘못된 후보는 목록에서 제외한다(S109). Next, the grayscale image array is generated with respect to the inclined barcode image (S107), and the image information of the distorted array is corrected using the timing pattern information (S108). Thereafter, candidates with wrong direction patterns are excluded from the list by using eight cells constituting the direction patterns (S109).

위와 같은 단계를 수행한 다음에 2차원 바코드의 정보를 실제로 읽어들여 비트열을 생성하는 일을 수행하게 된다. 즉 바코드에 표현되어 있는 13개의 해밍(7, 3)부호의 코드워드를 독출하여 그 코드워드들을 이어서 직렬화한다(S110). 그리고 이렇게 직렬화하여 얻은 비트열에 대해 오류처리를 수행하고(S111), 상기에서 설명한 바와 같은 계층적인 방법으로 오류를 검출하게 된다(S112). 다음으로, 임계값을 구하고( S113), 승인된 바코드의 아이디정보를 얻는다(S114). After performing the above steps, the information on the two-dimensional barcode is actually read to generate a bit string. That is, the codewords of 13 Hamming (7, 3) codes represented in the barcode are read out and serialized. Then, error processing is performed on the bit string obtained by serialization (S111), and the error is detected by the hierarchical method as described above (S112). Next, the threshold value is obtained (S113), and the ID information of the approved barcode is obtained (S114).

위와 같은 도 12의 각 단계는 이하에서 보다 상세히 설명될 것이다.
Each step of FIG. 12 as above will be described in more detail below.

<A. 입력데이터 생성 단계><A. Input data generation step>

대부분의 모바일 기기에 내장된 카메라가 제공하는 영상은 YV12 색상공간으로 표현되어있다. YV12 색상공간으로 표현된 영상 데이터는 그대로 그 앞부분의 Y평면을 그레이스케일 이미지로 사용할 수 있다. 이 그레이스케일 이미지를 인식기에 입력데이터로 사용한다.The video provided by the camera built into most mobile devices is represented in YV12 color space. Image data expressed in the YV12 color space can be used as the gray scale image of the Y plane in front of it. This grayscale image is used as input data to the recognizer.

본 실시예에서는 도 11의 바코드를 인쇄하여 사용한다. 도 11의 2차원 바코드는 문자열 “Hello!”의 아스키코드(ASCII code)값에 체크값을 모두 0으로 해놓은 데이터에 대한 바코드이다. 이 52비트의 길이를 갖는 데이터의 16진수 표현은 0x48656C6C6F210이다.In this embodiment, the barcode of Fig. 11 is printed and used. The two-dimensional bar code of FIG. 11 is a bar code for data in which all ASCII check values of the character string “Hello!” Are set to zero. The hexadecimal representation of this 52-bit long data is 0x48656C6C6F210.

다음으로 도 11의 바코드를 카메라로 촬영하여 얻은 640× 480해상도의 그레이스케일 이미지가 도 13이다. 본 실시예에서는 이하 인식과정의 시작인 경계검출 단계부터 모든 인식과정의 설명에서 도 13의 이미지를 사용하게 될 것이다. 이하, 경계검출과 후보조각생성, 4꼭지점찾기, 파인더패턴검사, 배열화, 왜곡보정, 방향결정, 직렬화, 오류처리까지의 모든 단계들을 설명한다.
Next, FIG. 13 is a 640x480 resolution grayscale image obtained by photographing the barcode of FIG. 11 with a camera. In the present embodiment, the image of FIG. 13 will be used to describe all the recognition processes from the boundary detection step, which is the beginning of the recognition process. Hereinafter, all steps from boundary detection, candidate fragment generation, four vertex finding, finder pattern inspection, alignment, distortion correction, direction determination, serialization, and error processing will be described.

<B. 경계검출단계><B. Boundary Detection Step>

경계검출은 영상에서 어떤 사물이나 무늬의 형태를 파악할 수 있다. 그 형태의 경계선을 검출하는 단계이며, 바코드의 파인더패턴 외곽선을 발견하는 것이 목적이다. 경계검출을 위해서는 하나의 임계값을 사용한다. 영상의 X축 방향과 Y축 방향으로 스캔(scan)을 하며 그레이스케일의 픽셀 값의 변화량을 검사해 나간다. 그러다가 그 변화량의 크기가 임계값보다 크면 경계로 판단한다. 그 경계로 판단 된 위치를 이용해 또 다른 결과 영상 영역 상에 표시 점을 남기게 된다.The edge detection can grasp the shape of an object or a pattern in the image. It is a step of detecting the boundary of the shape, and an object thereof is to find the outline of the finder pattern of the barcode. One threshold is used for boundary detection. Scans in the X-axis and Y-axis directions of the image and examines the amount of change in the pixel values of the grayscale. Then, if the magnitude of the change amount is larger than the threshold, it is determined as a boundary. Using the position determined as the boundary, the display point is left on another resultant image area.

두 방향으로 모든 스캔이 끝나고 나면 남겨진 결과 영상 영역에 표시 점들이 연결되어 경계선을 형성하게 된다. 그 결과가 도 14에 나타나 있다. 이 경계검출을 이용해 파인더패턴과 같이 흰색과 검정색이 대비를 이루어 그 차이 값이 큰 부분을 발견하는 단서를 생성할 수 있다.After all the scans are completed in both directions, the display points are connected to the left image area to form a boundary line. The results are shown in FIG. This boundary detection can be used to generate clues such as the finder pattern where white and black are contrasted to find the large difference.

이러한 경계검출 방법으로 위에서 설명한 방법보다 단순하게 생각할 수 있는 또 다른 방법이 영상에 대해 이진화 수행 후 그 이진이미지에서 검정색과 흰색 점이 접하는 부분을 경계로 구하는 것이다. 하지만 위에서 설명한 방법이 더 빠르고 여러 문제 속에서 파인더패턴을 더 잘 찾는다. 우선, 영상 데이터에 접근하는 횟수가 훨씬 감소하기 때문에 속도가 빨라지게 된다. 그리고 이진화 특유의 문제도 해결된다. 하나의 경계값을 이용한 이진화 방법은 이미지가 지역적으로 어둡거나 밝을 때 그 지역 내 바코드를 발견할 수 없다는 문제가 있고, 정확하고 좋은 결과를 내는 이진화 방법은 그 계산의 복잡도가 크다. 그리고 이어지는 단계에서 요구하는 데이터의 형태가 이진영상이 아닌 외곽선만을 필요로 하기 때문에 그 결과를 더 빠르고 성능 좋게 찾을 수 있는 방법을 사용하는 것이 더 좋다.Another method that can be considered simpler than the method described above as the boundary detection method is to obtain the boundary between the black and white dots in the binary image after performing binarization on the image. However, the method described above is faster and better finds finder patterns in many problems. First, the speed is increased because the number of times of accessing the image data is much reduced. And the problem peculiar to binarization is solved. The binarization method using a single boundary value has a problem that a barcode in the area cannot be found when the image is dark or light locally, and the binarization method that produces accurate and good results has a large complexity of calculation. And since the form of data required in the next step requires only the outline, not the binary image, it is better to use the method to find the result faster and better.

경계검출에서의 핵심은 적절한 임계값을 찾는 것이다. 임계값이 너무 커지면 바코드의 후보가 감소하여 실제 바코드를 발견하지 못할 가능성이 높아지고, 반대로 너무 작아지면 바코드가 아닌 후보들을 포함하게 되어 불필요한 처리의 증가로 인해 효율이 떨어지게 된다. 즉 임계값의 적절성이 재현율과 성능에 영향을 줄 수 있다.The key to boundary detection is to find the appropriate threshold. If the threshold value is too large, the candidates for the barcode decrease, increasing the likelihood that the actual barcode cannot be found. On the contrary, if the threshold value is too small, candidates other than the barcode will be included, thereby reducing efficiency due to unnecessary processing. In other words, the appropriateness of the threshold value can affect the recall and performance.

본 발명에서는 적절한 임계값의 계산 방법에 ARToolKitPlus에서 사용한 방법을 응용하였다. ARToolKitPlus는 이진화를 위한 임계값 계산에 사용한 방법이지만, 특성상 유사하게 응용될 수 있다. 그것은 이전 인식과정에서 성공적으로 인식된 바코드의 영상 정보를 활용하는 것이다. 이전 그레이스케일 영상 상에 성공적으로 인식된 바코드의 영역 내 점들을 이용하는 것인데, 실제 환경 내 바코드가 영상을 통해 인식된 경우이기 때문에 그 환경 내 다양한 요인들이 반영되어 있고 연속되는 영상의 특성상 급격한 변화보다 작은 변화의 연속이 대부분이기 때문에 이전 성공이 다음 성공을 지지하는 정도가 높다.In the present invention, the method used in ARToolKitPlus is applied to a method for calculating an appropriate threshold. ARToolKitPlus is the method used to calculate the threshold for binarization, but can be similarly applied. It utilizes the image information of the barcode successfully recognized in the previous recognition process. Using the points in the area of the barcode successfully recognized on the previous grayscale image, since the barcode in the real environment is recognized through the image, various factors in the environment are reflected and smaller than the sudden change in the characteristics of the continuous image. Since most of the change is continuous, the previous success is high enough to support the next.

임계값은 성공적으로 인식된 바코드의 검정색부분과 흰색부분의 경계가 이루는 차이값으로부터 계산되면 된다. 그 임계값의 목적이 바로 그 경계를 발견하려는 데 있기 때문이다. 그레이스케일 이미지 상의 바코드 영역의 모든 점들에 대해 각각의 점들과 그 점들의 주변 점들 간의 차이값들의 중간값을 임계값으로 한다. 차이값들 중 최소값은 검정색이나 흰색영역 내 같은 검정색 또는 흰색을 표현하는 점들 간의 차이 중 하나가 될 것이고, 최대값은 검정색영역과 흰색영역의 경계에 위치한 각각 검정색과 흰색을 표현한 점들 간의 차이 중 하나가 될 것이다.The threshold is calculated from the difference between the boundary between the black and white sections of the barcode that were successfully recognized. The purpose of the threshold is to find that boundary. For all points of the barcode area on the grayscale image, the median of the differences between the respective points and the surrounding points of the points is taken as the threshold. The minimum of the differences will be one of the differences between the same black or white points within the black or white area, and the maximum will be one of the differences between the black and white points located at the boundary of the black and white areas, respectively. Will be.

그러나 이러한 임계값을 이용한 경계검출 방법은 이전 인식과정이 실패로 끝난 경우 다음 과정에도 지속적으로 영향을 준다는 점에서 문제가 있다. 이 문제를 해결하기 위해 성공적으로 인식된 바코드가 하나도 없는 경우에는 다음 과정에서 재현율을 높이는 시도가 필요하고, 그 때문에 임계값을 미리 정의해둔 한계까지 점차적으로 줄여 나간다.However, the boundary detection method using these thresholds has a problem in that if the previous recognition process is unsuccessful, it continuously affects the next process. If none of the barcodes have been successfully recognized to solve this problem, then an attempt to increase the recall is required in the next step, which gradually reduces the threshold to a predefined limit.

이러한 과정을 거친 경계검출의 결과가 도 14에 나타나 있다. 그림에서 경계 정보는 여러 조각들로 구성되어있다. 그 조각들 중에는 바코드의 경계선도 있고 바코드 내의 내용들도 있다. 그리고 인식과정과는 상관없는 글자들의 외곽선도 포함되어있다. 이러한 후보조각들을 분리 인식하여 생성하는 후보조각생성 단계에 대해 다음 절에서 설명한다.
The result of the boundary detection through this process is shown in FIG. 14. In the figure, the boundary information consists of several pieces. Among the pieces are the boundaries of the barcode and the contents of the barcode. It also includes the outlines of letters that are not related to the recognition process. The candidate fragment generation step of separating and recognizing these candidate fragments is described in the next section.

<C. 후보조각생성 단계><C. Candidate Fragmentation Steps>

앞선 경계검출 단계에서 얻어진 여러 경계선들을 담고 있는 이진영상은 바코드 외에 많은 무의미한 정보들을 포함하고 있다. 그리고 바코드의 파인더패턴 외곽선조차 그 상태로는 점들의 집합 이상의 의미를 갖고 있지 않다. 그러한 점들의 집합인 조각들의 의미를 파악해 나가는 첫 번째 단계로 후보 조각들의 목록을 생성한다. 여기에서 조각은 경계검출 단계에서 추출된 점 좌표들의 집합을 의미한다. 어떤 조각은 실제 파인더패턴의 외곽선이고, 많은 다른 조각들은 무의미한 조각들이다.Binary images containing several boundary lines obtained in the previous boundary detection step contain a lot of meaningless information in addition to barcodes. And even the outline of the barcode finder pattern has no meaning beyond that of a set of dots. The first step in identifying the meaning of the pieces, the set of points, is to create a list of candidate pieces. Here, the fragment means a set of point coordinates extracted in the boundary detection step. Some pieces are the outline of the actual finder pattern, and many others are meaningless pieces.

후보조각생성 단계에서는 우선 조각 단위로 점들을 분리해야 할 필요가 있다. 즉, 경계영상 상에 인접한 점들을 모아 집합을 만든다. 이 과정은 영상에서 임의의 한 점을 찾는 것으로부터 시작한다. 찾은 점의 위치를 집합과 스택에 넣고 영상에서 지운다. 그리고 그 위치에서 인접되어있는 점을 다시 찾아 그 점을 또 집합과 스택에 넣고 지운다. 이 과정을 다시 그 위치의 인접 점에 대해 반복한다. 두 개 이상의 점이 인접해 있을 때 그 중 단지 아무 한 점이나 선택하여 그 과정을 반복하면 된다. 그러다가 더 이상 인접점이 없다면, 스택에서 하나의 위치를 꺼내어 그 위치에 대해 반복하면 된다. 또 인접점이 없다면 스택에서 꺼내는 과정을 반복한다. 인접점도 없고 스택도 비게 되면 하나의 집합이 완성된 것이고, 이 집합이 하나의 후보조각이 될 수 있다.In the candidate fragment generation step, it is necessary to first separate the points in pieces. That is, a set of adjacent points on the boundary image is collected. This process starts with finding an arbitrary point in the image. Place the points you find in sets and stacks and delete them from the image. Then find the adjacent point again at that position and delete the point again in the set and stack. This process is repeated for the adjacent point at that location. When two or more points are adjacent, simply select any one of them and repeat the process. Then if there are no more neighbors, you can simply take one location off the stack and iterate over that location. If there are no neighbors, repeat the process of removing them from the stack. If there are no adjacent points and the stack is empty, a set is completed and this set can be a candidate piece.

후보조각은 간단히 그것의 크기를 계산해서 그 값이 정해놓은 일정값 이하이면 버린다. 왜냐하면 너무 작은 크기의 조각은 그것이 설령 바코드의 파인더패턴의 외곽선의 영상이라 하더라도 인식 가능한 정보를 모두 포함하고 있기 힘들기 때문이다. 충분히 가까이서 찍지 않았기 때문에 발생한 현상이며, 그러한 영상은 모양이 뭉개져 있어서 가치가 없다.The candidate piece simply calculates its size and discards it if it is less than the specified value. Because a piece that is too small is difficult to contain all the information that can be recognized, even if it is an image of the outline of the barcode finder pattern. This is caused by not shooting close enough, and such images are worthless because they are crushed in shape.

이 단순한 계산만으로 재현율의 손해 없이 상당히 많은 수의 후보를 효과적으로 줄일 수 있다. 본 실시예에서는 일단 그 크기를 39로 정한다. 그 크기는 바코드의 파인더패턴 크기인 13× 13크기에 3을 곱한 것으로 카메라를 통해 획득된 영상에서 흰색과 검정색이 인접해 있는 경우, 적어도 한 픽셀이 옆의 다른 색으로부터 영향을 받는다는 점을 고려한 것이다.This simple calculation can effectively reduce the number of candidates without compromising recall. In this embodiment, the size is set to 39 once. The size is multiplied by 3 by 13 × 13, the size of the barcode finder pattern, taking into account that at least one pixel is affected by the next color when white and black are adjacent in the image acquired by the camera. .

도 15는 가로와 세로의 길이 모두가 39 이상인 조각들을 후보조각을 생성한 결과이다. 총 2개의 조각이 후보로 생성된다. 또한 연결된 점들이 형성하는 조각은 하나의 집합 단위로 각각 저장되어 이후 단계에서 보다 효율적으로 논리적인 처리들을 수행 할 수 있게 된다. 후행하는 단계들을 거치며 실제 파인더패턴의 외곽선은 남고, 바코드의 안쪽에 남은 잘못된 후보가 후행의 단계를 거치며 목록에서 제외되게 된다. 이제 다음 단계에서 기울어진 바코드 영상을 바르게 읽어 들이기 위한 배열화 단계의 전 과정이며, 자세와 위치를 결정하는 단서가 되는 4꼭지점찾기를 수행한다.
15 shows a result of generating candidate pieces of pieces having lengths of 39 or more in both horizontal and vertical lengths. A total of two pieces are generated as candidates. In addition, the pieces formed by the connected points are each stored in a set unit so that logical processes can be performed more efficiently in later steps. The trailing steps leave the outline of the actual finder pattern, and the wrong candidate remaining inside the barcode goes through the trailing steps and is removed from the list. Now, in the next step, it is the whole process of the alignment step to read the tilted bar code image correctly, and it performs 4 vertex search which is a clue to determine posture and position.

<D. 4꼭지점 찾기 단계><D. 4Find Vertex Steps>

본 단계에서는 파인더패턴의 꼭지점을 찾는다. 파인더패턴이 사각형이기 때문에 4개의 꼭지점을 찾게 된다. 본 단계는 이전 단계에서 생성된 후보들에 대해 실행되기 때문에 사각형이 아닌 조각들도 대상이 되고, 이때는 그 조각의 원소점들이 이룰 수 있는 가장 큰 사각형의 꼭지점을 찾게 된다. 우선 모든 후보들을 사각형이라 가정하고, 4꼭지점을 찾은 뒤 다음 단계에서 간단한 파인더패턴검사를 통해 다시 후보를 줄이게 된다.In this step, we find the vertices of the finder pattern. Since the finder pattern is square, we find four vertices. Because this step is performed on the candidates created in the previous step, non-rectangular pieces are also targeted, which finds the vertex of the largest rectangle that the element points of the piece can achieve. First, all candidates are assumed to be rectangular, and after finding vertex 4, the candidates are reduced again by a simple finder pattern test in the next step.

4개의 꼭지점은 분명히 어떤 형태의 외곽선에서 발견된다. 그렇기 때문에 이전 단계에서 경계선을 검출하고 이것을 후보로 과정을 수행한 것이다. 꼭지점을 찾는데 내부에 채워진 부분까지 전부 고려하는 것은 비효율적이다. 꼭지점 찾기는 4개 꼭지점 각 1개씩을 순차적으로 다음과 같은 방법에 의해 진행한다.Four vertices are clearly found in some form of outline. Therefore, the boundary line was detected in the previous step and the process was performed as a candidate. It's inefficient to consider all the stuff inside to find the vertices. Finding vertices proceeds sequentially with each of four vertices as follows.

제1꼭지점 찾기: 우선 조각 내 점들 중 임의의 점 하나를 선택한다. 그리고 조각 내 모든 점들을 대상으로 그 점과의 거리를 계산하고, 그 거리가 최대가 되는 점을 제1꼭지점으로 한다.Find the first vertex: First select any one of the points in the piece. The distance to the point is calculated for all the points in the piece, and the point where the distance is the maximum is the first vertex.

제2꼭지점 찾기: 제1꼭지점 찾기와 유사한 방법으로 찾는데, 이번에는 제1꼭지점과의 거리를 따진다. 조각 내 모든 점들을 대상으로 제1꼭지점과의 거리를 계산하여 그 거리가 최대가 되는 점을 제2꼭지점으로 한다.Find the second vertex: Similar to finding the first vertex, this time determining the distance from the first vertex. The distance from the first vertex is calculated for all the points in the piece, and the second vertex is the point at which the distance is the maximum.

제3꼭지점 찾기: 이번에는 제1꼭지점과 제2꼭지점과의 거리를 함께 따진다. 조각 내 모든 점들을 대상으로 제1꼭지점과의 거리와 제2꼭지점과의 거리의 합이 최대가 되는 점을 제3꼭지점으로 한다.Find the third vertex: This time, determine the distance between the first and second vertices. The third vertex is the point at which the sum of the distance between the first vertex and the second vertex becomes the maximum for all the points in the piece.

제4꼭지점 찾기: 앞의 3개 꼭지점을 찾는데 거리를 계산한 것과 달리 제4꼭지점은 면적을 계산해야 한다. 조각 내 모든 점들을 대상으로 제1꼭지점과 제2꼭지점 그리고 제3꼭지점과 이루는 사각형의 면적이 최대가 되게 하는 점을 제4꼭지점으로 한다. 여기서 면적을 구하는데 사용되는 수식이 아래의 식 1과 같다. 식 1에서 xn은 제n 꼭지점의 X좌표를, yn은 제n 꼭지점의 Y좌표를 의미한다.Find the fourth vertex: Unlike calculating the distance to find the first three vertices, the fourth vertex must calculate the area. The fourth vertex is a point that maximizes the area of the rectangle formed with the first vertex, the second vertex, and the third vertex for all the points in the piece. The equation used to find the area is shown in Equation 1 below. In Equation 1, x n denotes the X coordinate of the nth vertex, and y n denotes the Y coordinate of the nth vertex.

Figure 112010043057240-pat00003
(식1)
Figure 112010043057240-pat00003
(Eq. 1)

위와 같은 방법으로 꼭지점을 찾은 결과가 도 16에 나타나 있다. 도 16에서 4개 꼭지점이 이루는 사각형을 진한 선으로 표시했고, 후보들의 모양을 확인할 수 있게 흐린 선으로 이전 단계에서 생성된 후보들을 표시했다. 파인더패턴은 그 외곽선과 거의 일치하는 사각형의 꼭지점을 찾아낸 것을 확인할 수 있다.The results of finding the vertices in the above manner are shown in FIG. 16. In FIG. 16, the rectangles formed by the four vertices are indicated by a dark line, and the candidates generated in the previous step are indicated by a blurry line to confirm the shape of the candidates. You can see that the finder pattern finds a vertex of a rectangle that almost matches its outline.

이렇게 찾아진 꼭지점은 마지막으로 그 4개 점의 중심점을 구하고 각 점이 그 중심점과 이루는 각을 기준으로 반시계 방향으로 정렬한다. 이 정렬에서 사용되는 각의 계산과 앞의 꼭지점찾기 과정에서 사용되는 거리 계산에서 일체의 실수 연산을 사용하지 않는다. 왜냐하면 대부분의 모바일 기기가 부동소수점처리장치(floating-point unit)를 가지고 있지 않아, 실수 연산을 느리게 수행하기 때문이다. The vertices found in this way finally find the center points of the four points and align them counterclockwise with respect to the angle that each point forms with the center point. The calculation of the angle used in this sort and the distance calculation used in the previous vertex finding process do not use any real arithmetic. This is because most mobile devices don't have floating-point units, which slows down real operations.

이렇게 찾아진 꼭지점은 정렬까지 되어있어 항상 그 위치에 규칙성을 띄게 된다. 각각의 후보조각마다 중심점에서 좌측하단에 제1꼭지점, 우측하단에 제2꼭지점, 우측상단에 제3꼭지점 그리고 마지막으로 좌측상단에 제4꼭지점이 위치하게 된다. 이제 이 꼭지점들을 이용해 다음단계에서 파인더패턴검사를 수행한다.
The vertices found in this way are aligned so that they are always regular in that location. Each candidate piece has a first vertex at the bottom left, a second vertex at the bottom right, a third vertex at the top right, and finally a fourth vertex at the top left from the center point. Now use these vertices to perform a finder pattern check in the next step.

<E. 파인더패턴 검사 단계><E. Finder Pattern Inspection Steps>

본 발명에 의해 인식되는 바코드의 파인더패턴은 외곽의 폐쇄되어있는 정사각형 틀 모양을 띄고 있다. 상기 단계들을 통해 그 파인더패턴의 외곽선을 포함한 후보들을 생성했고, 그 후보들의 꼭지점을 구했다. 이제 그 꼭지점들을 이용해 파인더패턴이 위치하는 부분의 경로를 구한다. 그리고 그 경로를 이용해 입력데이터인 그레이스케일 이미지 상에 파인더패턴 부분이 모두 검정색으로 되어있는지 검사한다.The finder pattern of the barcode recognized by the present invention has a closed square frame shape. Through the above steps, candidates including the outline of the finder pattern were generated, and vertices of the candidates were found. Now use the vertices to find the path to where the finder pattern is located. The path is used to check whether all the finder patterns are black on the grayscale image as input data.

만약 본래의 모양이 사각형이 아닌 모양이라면, 앞 단계에서 구해진 4개 꼭지점을 기준으로 안쪽을 검사했을 때 모두가 검정색으로 나타나지는 않게 될 것이다. 여기에서 검정색과 흰색을 구분하는데 임계값이 필요하다. 그 임계값보다 값이 작으면 검정색이고 그렇지 않으면 흰색으로 구분하면 된다. 이 임계값을 구하기 위해 4꼭지점을 중심으로부터 거리를 기준으로 하여

Figure 112010043057240-pat00004
Figure 112010043057240-pat00005
지점에 각각 안쪽의 점들과 바깥쪽의 점들을 구한다. 이 지점의 거리는 바코드의 한 폭이 13셀의 길이임을 감안하여 중간점과 파인더패턴의 외곽선이 이루는 길이가 6.5셀이 된다는 계산에 의해 얻어진 것이다.If the original shape is not square, all of the vertices from the previous four vertices will not appear black. Here a threshold is needed to distinguish between black and white. If the value is lower than the threshold, it is black. Otherwise, it is white. To get this threshold, we need to look at the 4 vertices
Figure 112010043057240-pat00004
Wow
Figure 112010043057240-pat00005
Find the inner and outer points at each point. The distance of this point is obtained by calculating that the length of the intermediate point and the outline of the finder pattern is 6.5 cells, considering that the width of the barcode is 13 cells.

후보가 파인더 패턴이 맞는다면 안쪽의 점들이 이루는 선은 파인더패턴 위를 지나가는 경로가 되고, 바깥쪽의 점들이 이루는 선은 여백의 위를 지나가는 경로가 된다. 여기서 파인더패턴은 검정색, 여백은 흰색이 된다. 그레이스케일 영상 상의 이 경로의 값들의 중간값을 구하여 임계값으로 사용하여 안쪽 경로의 값들이 모두 그 이하인지 여부를 검사하면 된다. 여러 가지 원인에 의한 오류를 고려하여 80%이상이 검정색일 때 그것을 바코드로 판단한다. 만약 후보가 아니라면 바깥이 검정색이고 안쪽이 하얀색일 수도 있고 그렇지 않더라도 안쪽의 파인더패턴 경로가 모두 검정색이 아닐 가능성이 크다.If the candidate matches the finder pattern, the line formed by the inner points is the path passing over the finder pattern, and the line formed by the outer points is the path passing over the margin. The finder pattern is black and the margin is white. The median of the values of this path on the grayscale image can be obtained and used as a threshold to check whether the values of the inner path are all below. In consideration of errors caused by various causes, when more than 80% is black, it is judged as barcode. If you're not a candidate, the outside can be black and the inside can be white, or else the inside finder pattern paths aren't all black.

도 17은 실제 파인더패턴을 검사할 꼭지점의

Figure 112010043057240-pat00006
지점의 안쪽 경로를 그레이스케일 상에 점선으로 표시한 것이다. 눈으로 확인해도 안쪽의 후보는 경로의 많은 부분이 검정색이 아님을 쉽게 알 수 있다. 이 파인더패턴 검사에서도 걸러지지 않는 후보들은 이후의 과정을 통해 몇 회 더 걸러지며 제외된다. 최후에까지 검사를 통과하더라도 결국 체크값 검사 과정에서 걸러지게 된다. 그러나 이번 경우에는 실제 파인더패턴의 외곽선만 남게 된다. 그 결과가 도 18에 나타난 바와 같다.17 shows the vertices of the actual finder pattern to be examined.
Figure 112010043057240-pat00006
The inner path of the point is shown as a dotted line on grayscale. Visually, the inner candidate can easily see that much of the path is not black. Candidates that are not filtered out by the finder pattern check are filtered out a few times later. Even if the test passes to the end, it is filtered out during the check value check. In this case, however, only the outline of the actual finder pattern remains. The result is as shown in FIG.

임계값을 계산하거나 파인더패턴을 검사하는 과정에서 두 점이 이루는 직선의 경로를 계산하는 일이 많다. 이 역시 계산 성능을 향상하기 위해 정수 연산만을 사용할 필요가 있다. 그래서 총 3회의 정수의 곱셈연산 외에는 비교 연산과 정수의 덧셈 연산만으로 두 점간의 직선 경로를 구하는 Bresenham 알고리즘을 사용한다.In calculating thresholds or examining finder patterns, it is often necessary to calculate the path of a straight line between two points. Again, you need to use only integer arithmetic to improve computational performance. Therefore, the Bresenham algorithm is used to find the straight path between two points only by comparison operation and addition operation of integer except the multiplication of 3 integers.

이것으로 파인더패턴검사까지 끝나며 비로소 파인더패턴의 역할이 종료되었다. 파인더패턴이 바코드를 발견해주는 목적을 제대로 수행해냈다. 이어지는 다음 단계에서 바코드의 정보 해석을 시도하기 위한 그 이후 단계들을 위한 배열화에 대해 설명한다.
This ended the inspection of the finder pattern and finally ended the role of the finder pattern. The finder pattern fulfilled the purpose of finding barcodes. In the following steps, the arrangement for subsequent steps for attempting to interpret the information of the barcode is described.

<F. 배열화 단계><F. Arrangement Steps>

본 단계에서는 영상에 기울어져 있는 바코드를 이용해 39 × 39크기의 그레이스케일 배열을 생성하는 일을 수행한다. 여기서 그레이스케일 이미지가 다시 사용되는 이유는 그레이스케일이 필요한 정보를 포함하고 있기 때문이다. 외곽선의 경계와 꼭지점은 바코드의 위치를 파악하는데 사용된 정보이며, 앞으로 코드를 결정하고 임계값을 계산하는 과정 등에서는 그레이스케일 정보가 필요하다.In this step, a gray scale array of size 39 × 39 is generated by using a bar code inclined to the image. The grayscale image is used again because it contains the necessary information. The borders and vertices of the outline are information used to determine the location of the barcode, and grayscale information is needed in the process of determining codes and calculating thresholds.

본 단계에서 생성되는 배열은 이후 왜곡보정 단계에서 보정작업을 수행한 후 방향결정 단계에서 파악한 방향을 고려하여 직렬화 단계에서 직렬화 되고, 직렬화된 데이터에 대해 오류처리 단계를 거쳐 최종적으로 바코드 인식의 성공과 실패 여부를 결정한다. 성공한 바코드는 결과로 위치, 자세, 코드값을 반환한다. 또한 이 성공한 바코드로부터 다음 인식 과정에서 경계검출에 사용할 임계값을 계산한다.The array created in this step is subsequently serialized in the serialization step considering the direction determined in the direction determination step after the correction work in the distortion correction step, and finally through the error processing step for the serialized data, Determine if it fails. Successful barcodes return position, posture, and code values as a result. In addition, the threshold value is used for the boundary detection in the next recognition process from the successful barcode.

바코드를 고정된 크기의 배열로 읽어 들이는 과정은 많은 정보 손실을 유발한다. 하지만 이것은 계산의 효율성을 높일 수 있는 최선의 방법이기도 하다. 바코드의 크기는 13× 13셀이므로 최소의 크기로 그것을 담을 배열을 정의한다면 13× 13 크기 배열이 될 것이다. 하지만 배열화 단계에서 실제로 사용하는 배열의 크기는 그보다 큰 39× 39크기를 갖는다. 그 이유는 바로 다음 단계에서 수행되는 왜곡보정에 대한 여지를 남겨두기 위한 것이다. 만약 바로 13× 13크기의 배열에 정보를 읽어 들여 해석을 시도한다면 앞서 바코드의 모양을 제안하는 장의 타이밍패턴 절에서 설명한 왜곡의 문제에 그대로 노출되게 될 것이다.The process of reading barcodes into a fixed size array causes a lot of information loss. However, this is also the best way to increase the efficiency of the calculation. The size of the barcode is 13x13 cells, so if you define an array to hold it with the minimum size, it will be a 13x13 size array. However, the size of the array actually used in the arranging step is larger than 39 × 39. The reason is to leave room for the distortion correction performed in the next step. If you try to interpret the information in a 13x13 size array, you will be exposed to the distortion problem described in the Timing Patterns section of the previous section, which suggests the shape of the barcode.

크기 39는 후보조각생성 단계에서 후보의 최소값으로 사용한 크기인 39와 같은 값이다. 그 이유는 그 크기의 후보가 존재할 가능성이 있으며 그때 그 이상의 크기 배열로 읽어 들이는 것이 가치가 없기 때문이다.The size 39 is equal to 39, the size used as the minimum value of the candidate in the candidate fragment generation step. The reason is that there is a possibility of a candidate of that size, and then it is not worth reading into a larger array of sizes.

도 19에 4개 꼭지점을 이용해 계산한 39× 39개의 점들과, 그 점들로부터 읽어 들인 배열이 나타나있다. 4개의 꼭지점을 이용해 좌표들을 구하는 데 아래의 식 2를 응용해서 계산한다.In Fig. 19, 39 x 39 points calculated using four vertices and an array read from the points are shown. Calculate by applying Equation 2 below to find the coordinates using four vertices.

Figure 112010043057240-pat00007
(식2)
Figure 112010043057240-pat00007
(Eq. 2)

이 수식을 이용하면 점

Figure 112010043057240-pat00008
과 점
Figure 112010043057240-pat00009
사이의 비율r 지점의 점을 구할 수 있다. 여기서 비율을
Figure 112010043057240-pat00010
,
Figure 112010043057240-pat00011
,
Figure 112010043057240-pat00012
, ... 등으로 바꾸면 13개 셀의 각 셀의 중심좌표를 구할 수 있다. 제안하는 바코드의 인식과정은 39× 39크기의 배열을 읽어 들여야 하기 때문에 비율을
Figure 112010043057240-pat00013
,
Figure 112010043057240-pat00014
,
Figure 112010043057240-pat00015
, ... 의 비율을 사용한다. 이 수식을 이용해 우측상단과 좌측상단의 꼭지점 간에 이러한 39개 좌표들을 구하고, 좌측상단과 우측상단의 꼭지점 간에 이러한 39개 좌표들을 구하여 그 각각의 좌표들 쌍 39개에 대해 다시 이 수식을 적용하여 구하면 총 39× 39개의 점들의 좌표를 구할 수 있다. 이어지는 절에서 이 배열에 대한 왜곡보정을 설명한다.
This formula gives you a point
Figure 112010043057240-pat00008
And dot
Figure 112010043057240-pat00009
You can find the point at the ratio r between. Where the ratio
Figure 112010043057240-pat00010
,
Figure 112010043057240-pat00011
,
Figure 112010043057240-pat00012
Replace with ..., to get the center coordinates of each cell in 13 cells. Since the proposed barcode recognition process has to read an array of 39 × 39 size,
Figure 112010043057240-pat00013
,
Figure 112010043057240-pat00014
,
Figure 112010043057240-pat00015
Use the ratio of, ... Using these formulas, we get these 39 coordinates between the upper right and upper left vertices, and we get these 39 coordinates between the upper left and upper right vertices, and apply these formulas to each of the 39 pairs of coordinates. Coordinates of a total of 39 × 39 points can be obtained. The following section describes the distortion correction for this arrangement.

<G. 왜곡보정 단계><G. Distortion Correction Step>

왜곡보정은 타이밍패턴의 정보를 이용해 왜곡된 배열의 영상정보를 보정하는 작업이다. 본 실시예에서 사용하고 있는 상기 "Hello!”바코드는 왜곡보정 없이도 이후 과정을 정상적으로 수행할 수 있을 정도로 상태가 양호하다. 하지만 카메라로 대상을 기울여 촬영해서 얻어진 도 20과 같은 영상의 경우 바로 3× 3의 균일한 크기의 구성으로 13× 13셀을 해석하는데 어려움이 있을 수 있다.Distortion correction is an operation of correcting image information of a distorted array using information of a timing pattern. The bar code "Hello!" Used in this embodiment is in a good state so that the subsequent process can be performed normally without distortion correction, but in the case of the image shown in FIG. With a uniform size configuration of 3, it can be difficult to interpret 13x13 cells.

도 18에서의 경우와는 달리, 도 19의 경우 배열화 된 이미지가 약간 왼쪽과 위쪽으로 밀려 있다는 것을 확인할 수 있다. 얼핏 눈으로 보기에는 비슷해 보이지만 생각보다 왜곡은 심각하다. 이대로는 인식이 불가능할 수 있다. 이러한 밀림 현상은 국소적인 오류를 야기하는 것이 아니라, 전체적으로 영향을 주기 때문에 더욱 해결 방법이 필요하다. 더 정확하게 확인하기 위해 배열을 3× 3크기로 선을 그어 분할해 놓은 그림이 도 21에 도시되어 있는 바와 같다.Unlike the case of FIG. 18, in the case of FIG. 19, the arranged images are slightly pushed to the left and upward. At first glance, it looks similar, but the distortion is more serious than you think. This may not be possible. Such a rolling phenomenon does not cause local error, but rather affects the whole, and thus a further solution is required. In order to confirm more accurately, the figure is shown in Fig. 21 by dividing the array by 3 × 3 size.

도 21에 나타난 바와 같이, 배열의 전체가 조금씩 밀려서 옆의 셀 인식 범위에 영향을 주게 된다. 왼쪽과 아래쪽의 파인더패턴은 거의 정상적인 형태로 보인다. 그리고 위쪽과 왼쪽의 파인더패턴도 1칸 정도만 밀린 것처럼 보여 의외로 문제가 심각해 보이지 않을 수 있다. 그러나 실제로 중요한 중간 부분의 왜곡은 심각하다. 중심점의 셀들과 타이밍패턴은 거의 1셀을 밀려서 인식되게 될 것이다. 도 21의 분할된 단위로 값을 단순히 평균화하고 그 평균값들을 이용해 이진화한 결과와 원래의 바코드를 비교하여 보면 쉽게 왜곡의 심각성을 이해할 수 있다.As shown in Fig. 21, the entire array is pushed out little by little to affect the next cell recognition range. The left and bottom finder patterns look almost normal. And the top and left finder patterns seem to be pushed back only one space, so the problem may not seem serious. But the distortion in the middle, which is really important, is serious. The cells and the timing pattern of the center point will be recognized by pushing almost one cell. The severity of the distortion can be easily understood by simply averaging the values in the divided units of FIG. 21 and comparing the original barcode with the result of binarization using the average values.

도 22에 나타난 바와 같이, 값을 평균화한 이미지가 상당히 혼란스러워 보인다. 이것을 이진화 한 영상이 그 오른쪽에 있고, 원본 바코드가 다시 그 오른쪽에 비교를 위해 나타나 있다. 원본 바코드와 이진화한 배열을 비교해보면 그 차이가 69개 셀에서 나타난다. 파인더패턴을 제외한 셀의 개수가 총 121개이므로 57%의 오류가 발생한 것이다. 뿐만 아니라 중간의 방향패턴인식도 불가능하다. 다행히 바깥쪽의 방향패턴은 인식이 가능하지만 중간의 방향패턴과 타이밍패턴은 흔적을 찾을 수가 없다. 사실 평균화된 배열에서만 보면 바깥쪽의 방향패턴 또한 완전히 신뢰할 수 있는 정도의 차이로 판단되는 것이 아님을 알 수 있다. 방향의 인식이 실패할 경우 문제는 더욱 심각해진다. 직렬화 과정에서 데이터를 완전히 다른 순서로 읽어 들이기 때문에 그 경우 인식은 여지없이 실패하게 된다.As shown in Figure 22, the averaged image looks quite confusing. The binarized image is on the right, and the original barcode is again shown on the right for comparison. Comparing the original barcode with the binarized array, the difference is seen in 69 cells. The total number of cells excluding the finder pattern is 121, resulting in a 57% error. In addition, it is impossible to recognize the direction pattern in the middle. Fortunately, the outer direction pattern can be recognized, but the middle direction pattern and the timing pattern can not find a trace. In fact, only in the averaged array, it can be seen that the outward direction pattern is not judged to be completely reliable. The problem is even worse if direction recognition fails. In the case of serialization, the data is read in a completely different order, in which case recognition will fail.

이러한 문제를 해결하기 위해 바코드의 설계에서 타이밍패턴을 정의하였고, 전 단계에서는 13× 13셀 보다 큰 39× 39크기의 배열로 영상을 읽어 들여 이번 단계에서의 보정의 여지를 남겨둔다. 이제 실제로 그 패턴과 배열을 이용해 왜곡의 보정을 시도한다.To solve this problem, the timing pattern was defined in the barcode design. In the previous step, the image was read in a 39 × 39 size array larger than 13 × 13 cells, leaving room for correction in this step. Now we actually try to correct the distortion using that pattern and arrangement.

왜곡보정에 다양한 방법을 고려할 수 있겠지만, 복잡한 방법으로 계산량을 늘리는 것보다 단순하고 효과적인 방법을 제안한다. 본 발명이 제안하는 방법은 몇 가지 사전에 정의된 격자를 사용하는 방법이다. 우선 기본적으로 왜곡이 없는 정상적인 바코드를 읽어 들일 수 있는 3× 3크기의 균일한 단위로 구성된 13× 13크기의 격자를 생각할 수 있다. 그리고 어느 한쪽으로 기울어져 촬영된 영상을 인식하는데 사용할 비대칭형 격자가 필요하다. 제안하는 방법에서는 복잡도롤 감소시키며 효율적인 처리를 위해 단순히 한 가지의 비대칭 비율과 대칭 비율을 서로 조합해서 총 9가지의 격자를 생성한다. 정확하게 일치하지 않는 경우가 다수 존재하겠지만, 어느 정도의 불일치는 정상인식 될 가능성이 높고, 그렇지 않더라도 적은양의 오류는 해밍부호에 의해 정정될 수도 있다.Various methods can be considered for distortion correction, but we propose a simple and effective method rather than increasing the computational complexity. The method proposed by the present invention is a method using some predefined grids. First of all, one can think of a 13 × 13 grid composed of 3 × 3 size uniform units that can read normal barcodes without distortion. In addition, an asymmetrical grid is needed to recognize the image photographed by tilting to either side. The proposed method reduces the complexity and generates a total of nine gratings by simply combining one asymmetry ratio and a symmetry ratio for efficient processing. There may be many cases where the exact inconsistency does not exist, but some degree of inconsistency is likely to be recognized as normal, and even a small amount of errors may be corrected by a Hamming code.

도 23의 비율은 왼쪽이 좁고 오른쪽이 넓은 것을 확인할 수 있다. 카메라가 기울여져 가까이 찍힌 쪽에 오른쪽의 비율을 적용하면 제대로 읽어 들이는데 도움이 될 것이다. 9가지의 격자는 세로에 왼쪽이 좁은 비율과 오른쪽이 좁은 비율, 대칭 비율의 3가지를 사용하고, 가로에 위가 좁은 비율과 아래가 좁은 비율, 대칭 비율의 3가지를 사용하여 총 3× 3가지로 구성된다. 9가지 격자의 실제 구성이 아래의 도 24와 같다.It can be seen that the ratio of FIG. 23 is narrow in the left side and wide in the right side. Applying the ratio to the right on the side where the camera is tilted closer will help to read it properly. Nine grids use 3 types of vertically narrow, right-right and symmetrical ratios, and 3 types of horizontally narrower, narrower and lower symmetry ratios. It consists of branches. The actual configuration of the nine gratings is shown in FIG. 24 below.

중간의 격자를 제외하고는 모든 격자가 한쪽이 좁다. 도 23에 파인더패턴의 위치를 표시해둔다. 이것을 보면 각각의 격자가 어느 쪽으로 좁게 기울어져있는지를 알아볼 수 있다. 도 19에서 도시된 배열은 중간의 격자를 사용하고 도 19의 배열은 좌측상단이 좁은 격자를 사용하면 가장 잘 보정된 결과를 보이게 될 것이다. 잘 보정되는지의 여부는 격자를 적용한 후 타이밍패턴이 제대로 일치하는지 여부를 따져 판단하면 된다. 9가지 격자를 순서대로 적용해가며 가장 잘 일치하는 격자를 찾는다.All grids are narrow on one side except the middle one. 23 shows the position of the finder pattern. This shows how each grid is narrowly inclined. The arrangement shown in FIG. 19 uses the middle grating and the arrangement of FIG. 19 shows the best calibrated result when the grid is narrow in the upper left. Whether or not it is well calibrated can be determined by applying the grating and determining whether the timing pattern is properly matched. Apply the nine grids in order to find the best matching grid.

각 격자의 배열과 일치하는 정도는 각 격자의 타이밍패턴 기대 부분의 기대값과 실제 배열의 값과의 차이들의 총합으로 따진다. 이 총합이 작을수록 일치하는 정도는 큰 것으로 판단한다.The degree of coincidence with each lattice arrangement is determined by the sum of the differences between the expected values of the timing pattern expected portions of each lattice and the actual array values. The smaller the sum, the greater the degree of agreement.

도 25의 왜곡보정을 하기 위한 격자가 왜곡된 배열에 정확하게 일치하지는 않지만, 셀의 값을 판단하여 읽어 들이는 데는 문제가 없을 정도가 된다. 이제 방향도 제대로 결정할 수 있으며 이후 직렬화 단계를 수행할 수 있게 된다.
Although the grating for distortion correction of FIG. 25 does not exactly match the distorted arrangement, there is no problem in determining and reading the value of the cell. The direction can now be determined correctly and the subsequent serialization steps can be performed.

<H. 방향결정 단계><H. Directional Step>

본 단계에서부터는, 다시 처음에 사용했던 왜곡이 심하지 않았던 영상으로부터 얻어진 배열로 진행한다. 도 26이 그것이다. 사실 이 영상이 이전 단계에서 다룬 왜곡이 심했던 영상의 왜곡보정 후 결과보다 격자의 일치도는 더 낮다. 하지만 거기에서 설명한 것과 같이, 어느 정도 수준의 불일치는 문제가 되지 않는다. 방향을 결정하는 방향패턴을 구성하는 셀의 위치는 아래의 도 27에 나타난 바와 같다.From this step, the process proceeds back to the arrangement obtained from the image which was not severely distorted. 26 is that. In fact, the lattice match is lower than the result after the distortion correction of the image, which was severely distorted in the previous step. But as explained there, some level of inconsistency doesn't matter. Positions of cells constituting the direction pattern for determining the direction are as shown in FIG. 27 below.

설명의 편의를 위해 방향패턴을 구성하는 8개 셀 각각에 번호를 부여한다. 방향을 결정하는 일은 아주 간단하게 행해질 수 있다. 그것은 1, 2, 3, 4번 셀 중에 가장 값이 작은, 즉 가장 어두운 값을 찾고, 5, 6, 7, 8번 위치의 셀 중 가장 밝은 값을 찾으면 된다. 각각 바깥쪽 4개의 방향패턴을 구성하는 셀들 중 가장 어두운 점과 안쪽의 가장 밝은 점이 바코드의 좌측 상단을 나타낸다. 이 과정에서 만약 두 방향이 다르게 나타난다면 그 후보는 목록에서 제외된다. “Hello!”바코드의 경우는 인식된 방향이 배열의 방향과 일치하게 되어 별도의 방향에 관한 처리 없이 다음 과정을 진행하게 된다. 만약 그렇지 않은 경우 방향의 정보를 다음 단계로 전달하여 다음 단계에서 직렬화를 진행할 때 시작점과 직렬화 방향을 조정한다.
For convenience of description, each of the eight cells constituting the direction pattern is numbered. Determining the direction can be done very simply. It finds the darkest value among cells 1, 2, 3, and 4, and finds the brightest value among cells at positions 5, 6, 7, and 8. The darkest point and the innermost light point of the cells constituting the outer four direction patterns each represent the upper left side of the barcode. If the two directions differ in this process, the candidate is excluded from the list. In the case of the “Hello!” Barcode, the recognized direction coincides with the direction of the array, and the next process is performed without any further direction processing. If not, the direction information is passed to the next step to adjust the starting point and the serialization direction when serialization is performed in the next step.

<I. 직렬화 단계><I. Serialization Steps>

이제 2차원 바코드의 정보를 실제로 읽어 들여 비트열을 생성하는 일을 수행하는 단계에 왔다. 본 단계에서는 바코드에 표현되어있는 13개의 해밍(7, 3)부호의 코드워드를 읽어 내고 그 코드워드들을 이어 직렬화 한다. 이 직렬화 된 비트열은 이어지는 단계들을 통해 오류처리에 관한 방법들을 적용하여 오류를 정정하고 검사하는 과정을 거쳐 최종적인 코드를 얻어내게 된다. 코드워드는 순차적으로 배치되지 않고 번갈아 가며 순환적으로 배치되어 있다. 그렇기 때문에 하나의 코드워드를 읽기 위해서는 어떤 위치에서 순차적인 접근을 통해 비트열을 생성하는 것이 아니고 일정한 간격을 두고 읽어낼 필요가 있다. 아니면 순차적으로 접근하며 표현된 셀을 읽어내되 그 셀의 정보는 13개의 코드워드를 저장하는 큐에 순환적으로 넣어 생성하는 것도 방법일 수 있다.We are now in the stage of actually reading the information of the two-dimensional barcode and generating the bit string. In this step, 13 Hamming (7, 3) codewords represented in the bar code are read and serialized. This serialized bit string is applied to the error handling method through the following steps to correct and check the error to obtain the final code. Codewords are arranged in a cyclical order, not sequentially. Therefore, in order to read one codeword, it is necessary to read at regular intervals rather than to generate bit strings through sequential access at a certain position. Alternatively, it may be possible to sequentially read the cells represented by sequentially accessing the information of the cells and recursively generate the information of the cells into a queue storing 13 codewords.

본 발명이 제안하는 방법에서는 두 가지 중 후자를 택한다. 일단 이 방법으로 코드워드를 생성하기 이전에 배열에 대한 이진화를 수행한다. 물론 실제 구현에서는 이진화의 결과를 따로 저장할 필요가 없다. 단지 순차적으로 배열의 점들을 앞선 왜곡보정 단계에서 결정한 격자의 단위 별로 접근해가며 그 격자의 단위 별로 이진화하고 그 결과를 순차적으로 13개의 코드워드에 번갈아가며 저장하면 되기 때문이다.In the method proposed by the present invention, the latter is selected. Once this is done, binarization of the array is performed before generating the codeword. Of course, the actual implementation does not need to store the results of binarization separately. This is because the points of the array are sequentially approached by the grid units determined in the previous distortion correction step, and the binarization is performed by the grid units, and the results are alternately stored in 13 codewords.

우선 이진화의 결과가 도 28과 같고 각각의 단위별 이진화 결과가 저장되어야 할 코드워드 큐의 번호가 표시되어 있다.First, the result of binarization is as shown in FIG. 28, and the number of the codeword queue to which the binarization result for each unit is to be stored is indicated.

또한, 방향이 올바른 바코드이기 때문에 우측 상단에서부터 좌측으로 읽어나가고 다 읽어지면 아래로 내려가서 과정을 반복한다. 만약 방향이 다르다면 시작 위치와 읽어 나가는 방향이 달라진다. 간단하게 예를 들어 만약 바코드가 90도 시계방향으로 회전되어 있는 상태여서 방향 패턴이 바코드의 우측상단을 가리키고 있다면, 시작점은 우측상단의 도 28 상에서 5번 점이 되며, 그 밑 방향으로 2, 12, 7, ... 이라고 표시되어 있는 단위들을 순차적으로 읽어나가게 된다. 물론 그 줄을 다 읽고 나면 왼쪽으로 한칸 이동하여 계속 진행하게 된다.In addition, since the barcode is in the correct direction, it reads from the upper right side to the left side and when it is read down, it goes down and repeats the process. If the direction is different, the starting position and the reading direction are different. For example, if the barcode is rotated 90 degrees clockwise and the direction pattern points to the upper right side of the barcode, the starting point is point 5 on the upper right side of Fig. 28, and 2, 12, Units marked with 7, ... will be read sequentially. Of course, after reading that line, you move one space to the left to continue.

실제 직렬화된 결과를 저장한 13개의 코드워드 큐의 상태가 도 29와 같다. 그리고 이 코드워드를 순서대로 이어 붙이면 오류정정 부호를 포함하는 비트열이 생성된다. 그 비트열의 값을 이용해 다음 단계에서 오류처리를 수행한다.
The state of the 13 codeword queues storing the actual serialized results is shown in FIG. When the codewords are sequentially concatenated, a bit string containing an error correction code is generated. Error processing is performed in the next step using the value of the bit string.

<J. 오류처리 단계><J. Error Handling Steps>

이전 단계에서 얻어진 코드워드들을 직렬화해서 비트열 1001100 1110000 1100110 0100101 1100110 0111100 1100110 0111100 1100110 1111111 0101010 1101001 0000000를 얻고, 여기에 대한 오류처리를 수행한다. 오류처리의 첫 단계는 해밍부호를 이용한 교정의 시도이다. 다행히 예제의 코드는 오류를 포함하고 있지 않지만, 다양한 원인에 의해 오류가 포함될 수 있고 이러한 오류가 교정되는 것이 첫 단계에서 수행되어야할 일이다. 오류의 처리는 본래 해밍(7, 4)부호의 정의 상에 패리티비트들을 조사하고 그 결과로 오류 위치를 찾아내는 계산을 필요로 하지만 좀 더 효율적인 처리를 위해 변환테이블을 활용한다.The codewords obtained in the previous step are serialized to obtain a bit string 1001100 1110000 1100110 0100101 1100110 0111100 1100110 0111100 1100110 1111111 0101010 1101001 0000000, and error processing thereof is performed. The first step in error handling is an attempt to correct using a Hamming code. Luckily, the code in the example does not contain errors, but there are a variety of possible causes that can be included and correcting these errors should be done in the first step. Error handling originally requires a computation of parity bits on the definition of the Hamming (7, 4) code and the resulting error location, but utilizes a conversion table for more efficient processing.

변환테이블 방법은 코드워드 표현과 원본 코드와의 관계를 정의한 테이블을 사용한다. 이 테이블을 사용해 코드워드 표현이 원래 어떤 코드를 표현한 것인지를 즉시 알아내어 복잡한 계산과정 없이 부호를 해석할 수 있다. 또한 교정이 가능한 해밍거리 1의 모든 코드워드들에 대해서도 코드와 다대일 관계로 정의하여 일관성 있고 빠르게 처리되도록 한다. 코드워드의 길이가 7밖에 되지 않기 때문에 테이블의 관계의 수는 총 27인 128가지 밖에 되지 않는다. The conversion table method uses a table that defines the relationship between the codeword representation and the original code. You can use this table to immediately find out what code the original wordword representation represents and interpret the sign without any complicated calculations. In addition, all codewords of Hamming distance 1 that can be corrected are defined in a code-to-many relationship to ensure consistent and fast processing. Since the codeword is only seven, the number of table relationships is only 128, which is a total of 2 7 .

결과적으로 테이블을 이용한 변환을 통해 비트열 0100 1000 0110 0101 0110 1100 0110 1100 0110 1111 0010 0001 0000을 얻게 된다. 이것은 16진수 표기로 0x48656C6C6F210이며, 정확하게 처음에 바코드를 생성할 때 표현했던 메시지 “Hello!”의 아스키코드값 들을 연속시켜 놓은 것과 같다. 여기에 추가로 오류의 검사에 검사합이나 순환반복검사를 실시하여 그 오류검출 여부에 따라 최종적으로 후보를 승인하거나 폐기한다.As a result, the bit string 0100 1000 0110 0101 0110 1100 0110 1100 0110 1111 0010 0001 0000 is obtained through the conversion using a table. This is 0x48656C6C6F210 in hexadecimal notation, exactly like the sequence of ASCII code values in the message “Hello!” That was originally expressed when the barcode was created. In addition, a checksum or cyclic repetition test shall be conducted to check for errors, and candidates may be finally approved or discarded depending on whether or not the error is detected.

이제 승인된 바코드를 이용해 인식의 첫 번째 단계인 경계검출에서 사용할 임계값을 계산한다. 이 임계값은 다음 인식 과정에서 사용된다. 이 임계값의 계산 방법을 이어지는 절에서 설명한다.
The approved barcode is now used to calculate the threshold for the first step of recognition, boundary detection. This threshold is used in the next recognition process. The method of calculating this threshold is explained in the following section.

<K. 임계값 계산 단계><K. Threshold Calculation Steps>

임계값은 그레이스케일 영상 입력데이터에 대한 인식과정의 첫 번째 단계인 경계검출 시에 인접한 그레이스케일 점 간 그 값 크기의 일정 이상 차이를 검사하는데 사용되는 값이다. 이 값보다 크면 경계를 형성하는 점으로 판정되고, 그렇지 않으면 경계가 아닌 보통의 면을 이루는 점으로 판정된다. 이 경계로부터 후보가 생성되고 모든 인식 과정이 진행되기 때문에 적절한 임계값의 크기는 인식 성능과 재현율, 정확도에 영향을 주는 상당히 중요한 요인이다. 임계값이 너무 크면 실제 바코드의 파인더패턴 외곽선을 놓칠 수 있고, 임계값이 너무 작으면 바코드의 파인더패턴 외에 잘못된 후보들을 과잉생산할 수 있다.The threshold is a value used to check for more than a certain difference in the magnitude of values between adjacent grayscale points during boundary detection, which is the first step of recognition process for grayscale image input data. If it is larger than this value, it is determined as a point forming a boundary, otherwise it is determined as a point forming a normal plane rather than a boundary. Since candidates are generated from this boundary and all recognition processes are performed, the appropriate threshold size is a very important factor affecting recognition performance, recall and accuracy. Too large a threshold may miss the actual barcode finder pattern outline, and too small a threshold may overproduce false candidates in addition to the barcode finder pattern.

과정이 반복되는 과정에 환경의 변화는 미묘하고 연속적으로 일어나게 될 것이다. 그렇기 때문에 이전 과정에서 구한 임계값을 다음 과정에서 사용하는 것은 복잡한 환경 요건들을 간단하게 염두에 둘 수 있는 좋은 방법이다. 하지만 약간씩의 변화는 분명 존재하는 것이기 때문에 약간의 여유를 두어 계산해야만 한다.As the process is repeated, changes in the environment will be subtle and continuous. Therefore, using the threshold obtained in the previous step in the next step is a good way to keep simple environmental requirements in mind. But a little change is obvious, so you need to calculate it with some margin.

임계값은 그 목적상 파인더패턴의 외곽선의 경계선을 추출할 수 있어야 한다. 그래서 임계값은 바코드의 흰색영역과 흰색영역의 경계부분의 차이 이하가 되어야 한다. 그리고 되도록이면 모든 경계선을 추출할 수 있는 값 중에서는 가장 큰 값을 사용한다. 즉 경계를 이루는 차이값중 최소값을 사용하면 된다. 여기에 다음 과정에서 약간의 변화 가능성을 고려한 여유를 두어 조금 더 작게 설정한다.The threshold should be able to extract the boundary of the outline of the finder pattern for that purpose. Thus, the threshold should be less than the difference between the white area of the barcode and the boundary of the white area. If possible, use the largest value from which all boundary lines can be extracted. That is, the minimum value of the difference values forming the boundary may be used. In the following procedure, we will set a slightly smaller amount to allow for some changes.

임계값을 구하기 위해 우선 바코드의 그레이스케일 배열을 이용해서 검정색과 흰색으로 이진화를 시도하고 그 이진화 된 결과에서 흰색으로 판단된 영역의 그레이스케일 평균값과 검정색으로 판단된 영역의 그레이스케일 평균값을 구한다. 그리고 그 각각의 값의 차이를 구하고 그 차이의 3/4크기에 해당하는 값을 임계값으로 한다.In order to find the threshold, first, the binarization is performed by using the grayscale array of barcodes. Then, the grayscale average value of the area determined to be white and the grayscale average value of the area determined to be black are obtained. The difference between each value is obtained, and a value corresponding to 3/4 size of the difference is used as a threshold.

지금까지 본 발명의 인식기의 설계를 통해 제안한 바코드의 인식 과정을 단계별로 살펴보았다. 그레이스케일 영상을 입력받는 것으로부터 시작하여 후보를 생성하고 각 후보에 대한 여러 검사들을 거치며 마지막에 오류처리까지 수행하여 바코드에 표현되어 있던 값과 바코드의 위치나 방향등을 인식하게 되었다. 4꼭지점의 정보와 방향결정 단계에서 얻어진 방향정보를 이용해 바코드의 정확한 위치와 방향, 자세 등을 지시하게 되며, 오류처리를 거쳐 최종의 오류검사 단계에서까지 승인된 코드로 바코드의 아이디정보를 얻는다. 이 정보들을 응용시스템에 전달하면 응용시스템이 이 정보들을 사용하게 된다.
So far, the process of recognizing the proposed barcode through the design of the recognizer of the present invention has been described step by step. Starting from receiving grayscale image, candidates are generated, various candidate tests are performed, and error processing is performed at the end to recognize the value represented in the barcode and the position or direction of the barcode. Using the information of the 4 vertices and the direction information obtained in the direction determination step, the exact position, direction, and posture of the bar code are indicated, and through the error processing, the ID information of the bar code is obtained with the approved code until the final error checking step. Passing this information to the application system makes it available to the application system.

한편, 본 발명의 보호범위가 이상에서 명시적으로 설명한 실시예에 의해 제한되는 것은 아니다. 또한, 본 발명이 속하는 기술분야에서 자명한 변경이나 치환으로 말미암아 본 발명의 보호범위가 제한될 수도 없음을 첨언한다.On the other hand, the scope of protection of the present invention is not limited by the embodiments explicitly described above. Further, it should be noted that the protection scope of the present invention may not be limited due to obvious changes or substitutions in the technical field to which the present invention belongs.

Claims (7)

사각형태의 격자의 셀들로 이루어지는 매트릭스 바코드를 인식하는 방법으로서:
모바일 기기의 바코드 인식 디바이스가 상기 매트릭스 바코드를 내장된 카메라로 촬영하였을 때 발생한 오류를 교정하는 제1단계; 및
상기 제1단계를 통해 얻은 매트릭스 바코드의 교정된 이미지에 대해 오류를 검출하여, 오류가 검출되지 않은 경우에 한하여 상기 제1단계의 오류 교정을 승인하는 단계;를 포함하는,
2차원 매트릭스 바코드의 인식 방법.
A method of recognizing a matrix barcode consisting of cells of a rectangular grid:
A first step of correcting an error occurring when a barcode recognition device of a mobile device photographs the matrix barcode with a built-in camera; And
Detecting an error with respect to the corrected image of the matrix barcode obtained through the first step, and approving the error correction of the first step only when no error is detected.
Recognition method of two-dimensional matrix barcode.
제1항에 있어서,
상기 매트릭스 바코드는,
정사각형의 선 형태로 표현되는 파인더패턴;
상기 파인더패턴의 내부에 위치하며, 검정색 영역과 흰색 영역이 일정한 간격을 두고 반복되는 형태로 이루어지는 타이밍패턴;
상기 바코드의 방향을 결정하는 방향패턴; 및
상기 패턴들을 제외한 셀에 데이터를 저장하는 코드 영역이 형성되며, 상기 패턴들을 이용하여 상기 코드 영역에 저장된 데이터를 독출하는 것인, 2차원 매트릭스 바코드의 인식 방법.
The method of claim 1,
The matrix barcode is,
A finder pattern represented by a square line shape;
A timing pattern positioned inside the finder pattern and having a black region and a white region repeated at regular intervals;
A direction pattern for determining a direction of the barcode; And
A code region for storing data is formed in a cell excluding the patterns, and the data stored in the code region is read using the patterns.
정사각형의 선 형태로 표현되는 파인더패턴과, 상기 파인더패턴의 내부에 위치하며, 검정색 영역과 흰색 영역이 일정한 간격을 두고 반복되는 형태로 이루어지는 타이밍패턴과, 바코드의 방향을 결정하는 방향패턴과, 상기 패턴들을 제외한 셀에 데이터를 저장하는 코드 영역을 갖는, 사각형태의 격자의 셀들로 이루어지는 매트릭스 바코드를 모바일 기기가 내장된 카메라를 통해 촬영하여 인식하는 방법으로서:
(1) 상기 매트릭스 바코드의 그레이스케일 이미지를 생성하는 단계;
(2) 상기 이미지의 경계를 검출하는 단계;
(3) 상기 (2) 단계의 결과로 후보 목록을 생성하는 단계; 및
(4) 상기 후보 목록에 생성된 각각의 후보에 대하여 오류 교정을 수행하는 단계;
를 포함하는 것을 특징으로 하는, 2차원 매트릭스 바코드의 인식 방법.
A finder pattern expressed in the form of a square line, a timing pattern positioned inside the finder pattern and having a black area and a white area repeated at regular intervals, a direction pattern for determining a direction of a barcode, and A method of recognizing a matrix barcode consisting of cells of a rectangular grid having a code area for storing data in a cell except for patterns by photographing the camera with a built-in mobile device:
(1) generating a grayscale image of the matrix barcode;
(2) detecting a boundary of the image;
(3) generating a candidate list as a result of step (2); And
(4) performing error correction on each candidate created in the candidate list;
Receiving a two-dimensional matrix barcode, characterized in that it comprises a.
제3항에 있어서,
상기 (4) 단계는,
상기 후보의 파인더패턴의 4꼭지점들을 찾는 단계; 및
상기 4꼭지점들을 이용해 상기 파인더패턴이 위치하는 부분의 경로를 구하는 단계;를 포함하는, 2차원 매트릭스 바코드의 인식 방법.
The method of claim 3,
Step (4) is,
Finding four vertices of the candidate finder pattern; And
And obtaining a path of a portion where the finder pattern is located by using the four vertices.
제4항에 있어서,
기울어져 있는 바코드 영상에 대해 그레이스 케일 이미지의 배열을 생성하는 단계; 및
상기 타이밍패턴의 정보를 이용해 왜곡된 배열의 영상정보를 보정하는 단계;를 더 포함하는, 2차원 매트릭스 바코드의 인식 방법.
The method of claim 4, wherein
Generating an array of grayscale images for the tilted barcode image; And
And correcting the distorted array of image information by using the information of the timing pattern.
제3항에 있어서,
상기 방향패턴을 이용하여 방향패턴이 잘못된 후보는 목록에서 제외하는 단계를 더 포함하는, 2차원 매트릭스 바코드의 인식 방법.
The method of claim 3,
And excluding candidates having an incorrect direction pattern from the list by using the direction pattern.
제3항에 있어서,
상기 코드 영역에 기록된 코드워드를 독출하여 직렬화하는 단계;를 더 포함하고,
상기 (4) 단계는, 상기 직렬화된 비트열에 대해 오류처리를 수행하는 단계를 포함하는, 2차원 매트릭스 바코드의 인식 방법.
The method of claim 3,
Reading and serializing a codeword recorded in the code region;
The step (4) includes performing error processing on the serialized bit strings.
KR1020100063984A 2010-07-02 2010-07-02 Method for recognising two-dimensional barcode KR101109510B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100063984A KR101109510B1 (en) 2010-07-02 2010-07-02 Method for recognising two-dimensional barcode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100063984A KR101109510B1 (en) 2010-07-02 2010-07-02 Method for recognising two-dimensional barcode

Publications (2)

Publication Number Publication Date
KR20120003231A KR20120003231A (en) 2012-01-10
KR101109510B1 true KR101109510B1 (en) 2012-01-31

Family

ID=45610295

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100063984A KR101109510B1 (en) 2010-07-02 2010-07-02 Method for recognising two-dimensional barcode

Country Status (1)

Country Link
KR (1) KR101109510B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10304214B2 (en) 2015-11-09 2019-05-28 Samsung Electronics Co., Ltd. Electronic device and operating method of the same

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102174567B1 (en) * 2013-10-07 2020-11-05 삼성전자주식회사 Electric device and method for displaying payment screen of multiple payment items
KR102285663B1 (en) * 2020-01-10 2021-08-04 (주)얼라이브엔터테인먼트 System of video contents overlapping with code separation from material
CN116362274B (en) * 2023-05-30 2023-08-25 深圳市华众自动化工程有限公司 High-speed bar code reader
CN117273044B (en) * 2023-10-27 2024-03-29 广州通赢科技有限公司 Lattice diagram construction method and lattice diagram identification method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010098464A (en) * 2000-04-06 2001-11-08 구사마 사부로 2-dimensional code interpretation method, information recording medium and 2-dimensional code interpretation apparatus
JP2002157549A (en) 2000-11-22 2002-05-31 Seiko Epson Corp Method and device for reading two-dimensional code and information recording medium
KR20050092335A (en) * 2004-03-15 2005-09-21 셴젠 시스칸 테크놀러지 코오퍼레이션 리미티드 Two-dimensional bar code and associated codingdecoding method
JP2010044586A (en) 2008-08-12 2010-02-25 Nippon Telegr & Teleph Corp <Ntt> Two dimensional-code reader and program thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010098464A (en) * 2000-04-06 2001-11-08 구사마 사부로 2-dimensional code interpretation method, information recording medium and 2-dimensional code interpretation apparatus
JP2002157549A (en) 2000-11-22 2002-05-31 Seiko Epson Corp Method and device for reading two-dimensional code and information recording medium
KR20050092335A (en) * 2004-03-15 2005-09-21 셴젠 시스칸 테크놀러지 코오퍼레이션 리미티드 Two-dimensional bar code and associated codingdecoding method
JP2010044586A (en) 2008-08-12 2010-02-25 Nippon Telegr & Teleph Corp <Ntt> Two dimensional-code reader and program thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10304214B2 (en) 2015-11-09 2019-05-28 Samsung Electronics Co., Ltd. Electronic device and operating method of the same

Also Published As

Publication number Publication date
KR20120003231A (en) 2012-01-10

Similar Documents

Publication Publication Date Title
US8413909B2 (en) Two-dimensional code having rectangular region provided with specific patterns to specify cell positions and distinction from background
US7950589B2 (en) Program, information storage medium, two-dimensional code generation system, image generation system and printed material
JP5003225B2 (en) Code processing device
KR101109510B1 (en) Method for recognising two-dimensional barcode
JP6623465B2 (en) Dot pattern
JP5848464B2 (en) Two-dimensional code, two-dimensional code creation system and analysis program
US8360333B2 (en) HD barcode
KR100729824B1 (en) Appratus and method for generating a image code, and apparatus and method for decoding a image code
JP5229651B2 (en) Two-dimensional code, two-dimensional code generation method, computer-readable program for displaying two-dimensional code, authentication method using two-dimensional code, and information providing method using two-dimensional code
WO2018115542A1 (en) Method for detecting and recognising long-range high-density visual markers
SG175103A1 (en) Two-dimensional array code
US20240086670A1 (en) Methods for constructing, generating, and reading dot-matrix code, dot-matrix code generating and reading terminals, and dot-matrix code system
KR101109509B1 (en) Two-dimensional barcode for mobile device
KR20050119807A (en) Pattern code with logo insertion and method for encoding and decoding thereof
Dean et al. Quick layered response (qlr) codes
CN112183695A (en) Encoding method, encoding pattern reading method, and imaging device
Lay et al. Visual QR codes with lossless picture embedding
CN111476334A (en) Anti-counterfeiting image identifier and anti-counterfeiting method thereof
TW201034438A (en) Encoding and decoding method for microcode matrix

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160225

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170107

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171122

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190115

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 9