KR20230002813A - Systems and methods for decoding barcodes - Google Patents
Systems and methods for decoding barcodes Download PDFInfo
- Publication number
- KR20230002813A KR20230002813A KR1020227040154A KR20227040154A KR20230002813A KR 20230002813 A KR20230002813 A KR 20230002813A KR 1020227040154 A KR1020227040154 A KR 1020227040154A KR 20227040154 A KR20227040154 A KR 20227040154A KR 20230002813 A KR20230002813 A KR 20230002813A
- Authority
- KR
- South Korea
- Prior art keywords
- symbol
- character
- boundary
- row
- determining
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000012545 processing Methods 0.000 description 164
- 230000008569 process Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 18
- 230000015654 memory Effects 0.000 description 14
- 230000003287 optical effect Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 10
- 230000003190 augmentative effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000002730 additional effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 239000003990 capacitor Substances 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 206010034719 Personality change Diseases 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1452—Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
Abstract
심볼 문자를 디코딩하기 위한 시스템 및 방법. 방법은: 심볼 영역에 복수의 심볼 문자를 포함하는 심볼의 심볼 이미지를 획득하는 단계; 심볼의 길이 방향을 따라 복수의 행 라인을 결정하는 단계; 복수의 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계 및 복수의 심볼 문자 가운데 복수의 행 경계를 결정하는 단계; 복수의 심볼 문자의 각각에 대해, 복수의 열 경계 및 복수의 행 경계에 기반해서 심볼 문자에 상응하는 문자 영역을 결정하는 단계; 및 심볼 문자에 상응하는 문자 영역에 연관된 그레이 값에 기반해서 심볼 문자를 디코딩하는 단계를 포함할 수 있다.Systems and methods for decoding symbol characters. The method includes: acquiring a symbol image of a symbol including a plurality of symbol characters in a symbol area; determining a plurality of row lines along the length direction of the symbol; determining a plurality of column boundaries among the plurality of symbol characters and a plurality of row boundaries among the plurality of symbol characters based on the plurality of row lines; determining, for each of the plurality of symbol characters, a character area corresponding to the symbol character based on the plurality of column boundaries and the plurality of row boundaries; and decoding the symbol character based on a gray value associated with a character area corresponding to the symbol character.
Description
본 출원은 2020년 5월 7일에 출원된 중국 특허 출원 제202010378011.9호의 우선권을 주장하고, 그 내용이 참조에 의해 이로써 병합된다.This application claims priority from Chinese Patent Application No. 202010378011.9 filed on May 7, 2020, the contents of which are hereby incorporated by reference.
본 개시는 일반적으로 이미지 처리에 관한 것이고, 더 구체적으로, 이미지에서 바코드를 디코딩하기 위한 시스템 및 방법에 관한 것이다.The present disclosure relates generally to image processing, and more specifically to systems and methods for decoding barcodes in images.
휴대가능한 데이터 파일(PDF) 417 바코드와 같은 바코드 심볼은 소셜 활동, 인증서, 관리, 운송, 지불 등과 같은 일상 생활에서 널리 사용된다. 바코드 심볼은 고밀도의 데이터를 인코딩하는 일련의 바 및 공간을 가진다. 바코드 심볼은 카메라와 같은 스캐너를 사용하여 이미지로부터 판독될 수 있다. 바코드 심볼이 이미지로부터 읽힌 후에, 바코드 심볼에서 인코딩된 데이터가 처리 장치를 사용하여 디코딩될 수 있다. 그러나, 디코딩 프로세스 동안, 일반적으로 이미지 왜곡, 고르지 않은 빛 등과 같은 인자로 인해 오류가 발생한다. 그러므로 정확하게 그리고 효율적으로 바코드 심볼을 디코딩하기 위한 시스템 및 방법을 제공하는 것이 소망될 수 있다. Portable Data File (PDF) 417 Barcode symbols such as barcodes are widely used in daily life, such as social activities, certificates, management, transportation, payments, and the like. A barcode symbol has a series of bars and spaces that encode high-density data. Barcode symbols can be read from the image using a scanner such as a camera. After the barcode symbol is read from the image, the data encoded in the barcode symbol can be decoded using a processing device. However, during the decoding process, errors usually occur due to factors such as image distortion, uneven lighting, and the like. It would therefore be desirable to provide a system and method for accurately and efficiently decoding barcode symbols.
본 발명은 효율적으로 바코드 심볼을 디코딩하기 위한 시스템 및 방법을 제공하는 것이다. The present invention provides a system and method for efficiently decoding barcode symbols.
본 개시의 측면에서, 시스템이 제공된다. 시스템은 명령어의 세트를 저장하는 적어도 하나의 저장 장치; 및 적어도 하나의 저장 장치와 통신하도록 구성된 적어도 하나의 프로세서를 포함할 수 있다. 명령어의 세트를 실행할 때, 적어도 하나의 프로세서는 심볼 영역에 복수의 심볼 문자를 포함하는 심볼의 심볼 이미지를 획득하고; 심볼의 길이 방향을 따라 복수의 행 라인을 결정하고; 복수의 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계를 결정하고, 복수의 열 경계의 각각은 복수의 심볼 문자의 두 개의 심볼 문자의 두 개의 연속적인 열에 상응하고; 복수의 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 행 경계를 결정하고, 복수의 행 경계의 각각은 복수의 심볼 문자 중 두 개의 인접한 행에 상응하고; 복수의 심볼 문자의 각각에 대해, 복수의 열 경계 및 복수의 행 경계에 기반해서 심볼 문자에 상응하는 문자 영역을 결정하고; 심볼 문자에 상응하는 문자 영역에 연관된 그레이 값에 기반해서 심볼 문자를 디코딩하는 것을 포함하는 작동을 수행하도록 지시된다.In an aspect of the present disclosure, a system is provided. The system includes at least one storage device for storing a set of instructions; and at least one processor configured to communicate with the at least one storage device. When executing the set of instructions, at least one processor obtains a symbol image of a symbol including a plurality of symbol characters in a symbol area; determining a plurality of row lines along the length direction of the symbol; determining a plurality of column boundaries among the plurality of symbol characters according to the plurality of row lines, each of the plurality of column boundaries corresponding to two consecutive columns of two symbol characters of the plurality of symbol characters; determine a plurality of row boundaries among the plurality of symbol characters according to the plurality of row lines, each of the plurality of row boundaries corresponding to two adjacent rows of the plurality of symbol characters; for each of the plurality of symbol characters, determine a character area corresponding to the symbol character based on the plurality of column boundaries and the plurality of row boundaries; and perform an operation comprising decoding the symbol character based on a gray value associated with a character area corresponding to the symbol character.
본 개시의 또 다른 측면에서, 방법이 제공된다. 방법은 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된다. 방법은 심볼 영역에 복수의 심볼 문자를 포함하는 심볼의 심볼 이미지를 획득하는 단계; 심볼의 길이 방향을 따라 복수의 행 라인을 결정하는 단계; 복수의 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계를 결정하는 단계, 복수의 열 경계의 각각은 복수의 심볼 문자 중 두 개의 심볼 문자의 두 개의 연속적인 열에 상응하고; 복수의 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 행 경계를 결정하는 단계, 복수의 행 경계의 각각은 복수의 심볼 문자의 두 개의 인접한 행에 상응하고; 복수의 심볼 문자의 각각에 대해, 복수의 열 경계 및 복수의 행 경계에 기반해서 심볼 문자에 상응하는 문자 영역을 결정하는 단계; 심볼 문자에 상응하는 문자 영역에 연관된 그레이 값에 기반해서 심볼 문자를 디코딩하는 단계를 포함할 수 있다.In another aspect of the present disclosure, a method is provided. The method is performed on a computing device having a processor and a computer readable storage device. The method includes obtaining a symbol image of a symbol including a plurality of symbol characters in a symbol area; determining a plurality of row lines along the length direction of the symbol; determining a plurality of column boundaries among the plurality of symbol characters according to the plurality of row lines, each of the plurality of column boundaries corresponding to two consecutive columns of two symbol characters of the plurality of symbol characters; determining a plurality of row boundaries among the plurality of symbol characters based on the plurality of row lines, each of the plurality of row boundaries corresponding to two adjacent rows of the plurality of symbol characters; determining, for each of the plurality of symbol characters, a character area corresponding to the symbol character based on the plurality of column boundaries and the plurality of row boundaries; and decoding the symbol character based on a gray value associated with a character area corresponding to the symbol character.
본 개시의 또 다른 측면에서, 비일과성 판독가능한 매체가 제공된다. 비일과성 판독가능한 매체는 명령어의 적어도 하나의 세트를 포함하고, 컴퓨팅 장치의 적어도 하나의 프로세서에 의해 실행될 때, 명령어의 적어도 하나의 세트는 적어도 하나의 프로세서가 방법을 수행하게 한다. 방법은 심볼 영역에 복수의 심볼 문자를 포함하는 심볼의 심볼 이미지를 획득하는 단계; 심볼의 길이 방향을 따라 복수의 행 라인을 결정하는 단계; 복수의 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계를 결정하는 단계, 복수의 열 경계의 각각은 복수의 심볼 문자 중 두 개의 심볼 문자의 두 개의 연속적인 열에 상응하고; 복수의 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 행 경계를 결정하는 단계, 복수의 행 경계의 각각은 복수의 심볼 문자의 두 개의 인접한 행에 상응하고; 복수의 심볼 문자의 각각에 대해, 복수의 열 경계 및 복수의 행 경계에 기반해서 심볼 문자에 상응하는 문자 영역을 결정하는 단계; 심볼 문자에 상응하는 문자 영역에 연관된 그레이 값에 기반해서 심볼 문자를 디코딩하는 단계를 포함할 수 있다.In another aspect of the present disclosure, a non-transitory readable medium is provided. The non-transitory readable medium includes at least one set of instructions, and when executed by at least one processor of a computing device, the at least one set of instructions causes the at least one processor to perform a method. The method includes obtaining a symbol image of a symbol including a plurality of symbol characters in a symbol area; determining a plurality of row lines along the length direction of the symbol; determining a plurality of column boundaries among the plurality of symbol characters according to the plurality of row lines, each of the plurality of column boundaries corresponding to two consecutive columns of two symbol characters of the plurality of symbol characters; determining a plurality of row boundaries among the plurality of symbol characters based on the plurality of row lines, each of the plurality of row boundaries corresponding to two adjacent rows of the plurality of symbol characters; determining, for each of the plurality of symbol characters, a character area corresponding to the symbol character based on the plurality of column boundaries and the plurality of row boundaries; and decoding the symbol character based on a gray value associated with a character area corresponding to the symbol character.
일부 구현예에서, 복수의 행 라인에 기반해서, 복수의 심볼 문자 가운데 복수의 열 경계를 결정하는 단계는 복수의 심볼 문자와 연관된 참조 심볼 문자의 폭을 결정하고; 참조 심볼 문자의 폭에 기반해서 참조 폭 범위를 결정하고; 인접한 심볼 문자와 참조 폭 범위 사이에 경계 특성에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계를 결정하는 것을 포함한다.In some implementations, determining the plurality of column boundaries among the plurality of symbol characters based on the plurality of row lines determines a width of a reference symbol character associated with the plurality of symbol characters; determine a reference width range based on the width of the reference symbol character; and determining a plurality of column boundaries among the plurality of symbol characters based on boundary characteristics between adjacent symbol characters and reference width ranges.
일부 구현예에서, 참조 심볼 문자는 시작 심볼 문자 또는 끝 심볼 문자를 포함한다.In some implementations, the reference symbol character includes a start symbol character or an end symbol character.
일부 구현예에서, 참조 심볼 문자의 폭을 결정하는 것은 참조 심볼 문자와 연관된 미리설정된 코드워드 스트링을 획득하고; 복수의 행 라인 중 적어도 하나에 대해, 복수의 행 라인 중 적어도 하나 상에 픽셀의 그레이 값 및 미리설정된 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해서 적어도 하나의 참조 라인 세그먼트를 식별하고; 참조 심볼 문자의 폭으로서 적어도 하나의 참조 라인 세그먼트의 길이를 지정하는 것을 포함한다.In some implementations, determining the width of the reference symbol character may include obtaining a preset codeword string associated with the reference symbol character; identifying, for at least one of the plurality of row lines, at least one reference line segment based on a gray value of a pixel on the at least one of the plurality of row lines and a predetermined gray value associated with a predetermined codeword string; and specifying the length of at least one reference line segment as the width of the reference symbol character.
일부 구현예에서, 복수의 행 라인에 기반해서, 복수의 심볼 문자 가운데 복수의 행 경계를 결정하는 것은 인접한 심볼 문자 사이에 경계 특성에 기반해서 복수의 행 라인으로부터 복수의 심볼 문자 가운데 복수의 행 경계를 식별하는 것을 포함한다.In some implementations, determining the row boundaries among the plurality of symbol characters based on the plurality of row lines includes the row boundaries among the plurality of symbol characters from the plurality of row lines based on the boundary property between adjacent symbol characters. includes identifying
일부 구현예에서, 복수의 심볼 문자의 각각에 대해, 심볼 문자에 상응하는 문자 영역과 연관된 그레이 값에 기반해서 심볼 문자를 디코딩하는 것은 행 방향에 따라 심볼 문자에 상응하는 문자 영역을 복수의 블록으로 나누고; 복수의 블록의 각각의 글로벌 그레이 값을 결정하고; 복수의 블록의 글로벌 그레이 값에 기반해서 심볼 문자의 대조값을 결정하고; 대조값에 기반해서 심볼 문자에 상응하는 코드워드를 결정하는 것을 포함한다.In some implementations, for each of the plurality of symbol characters, decoding the symbol character based on a gray value associated with a character area corresponding to the symbol character into a plurality of blocks along a row direction. share; determine a global gray value of each of the plurality of blocks; determining a contrast value of a symbol character based on the global gray values of the plurality of blocks; and determining the codeword corresponding to the symbol character based on the collation value.
일부 구현예에서, 복수의 블록의 글로벌 그레이 값에 기반해서 심볼 문자의 대조값을 결정하는 것은 문자 영역에 제 1 유형의 블록의 그레이 값 대 제 1유형의 블록의 카운트의 제 1 비율을 결정하고; 문자 영역에 제 2 유형의 블록의 그레이 값 대 제 2 유형의 블록의 카운트의 제 2 비율을 결정하고; 제 1 비율과 제 2 비율 사이의 차이 값에 기반해서 심볼 문자의 대조값을 결정하는 것을 포함한다.In some implementations, determining the contrast value of the symbol character based on the global gray values of the plurality of blocks includes determining a first ratio of gray values of blocks of the first type to counts of blocks of the first type in the character area; ; determine a second ratio of gray values of blocks of a second type to counts of blocks of a second type in the character area; and determining a contrast value of the symbol character based on the difference value between the first ratio and the second ratio.
일부 구현예에서, 작동은 심볼 영역의 시작 경계, 끝 경계, 상부 경계, 및 하부 경계를 결정하는 것을 더 포함한다.In some implementations, the operation further includes determining a start boundary, an end boundary, an upper boundary, and a lower boundary of the symbol region.
일부 구현예에서, 심볼 영역의 시작 경계를 결정하는 것은 복수의 행 라인 중 적어도 하나에 대해, 복수의 행 라인 중 적어도 하나 상의 픽셀의 그레이 값 및 시작 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해서 시작 심볼 문자의 적어도 하나의 끝 지점을 식별하고; 시작 심볼 문자의 적어도 하나의 끝 지점에 기반해서 심볼 영역의 시작 경계를 결정하는 것을 포함한다.In some implementations, determining the starting boundary of the symbol region is based on, for at least one of the plurality of row lines, a gray value of a pixel on at least one of the plurality of row lines and a predetermined gray value associated with the starting codeword string. identify at least one end point of the start symbol character; and determining the starting boundary of the symbol region based on at least one end point of the starting symbol character.
일부 구현예에서, 심볼 영역의 끝 경계를 결정하는 것은 복수의 행 라인 중 적어도 하나에 대해, 복수의 행 라인 중 적어도 하나 상의 픽셀의 그레이 값 및 끝 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해서 끝 심볼 문자의 적어도 하나의 시작 지점을 식별하고; 끝 심볼 문자의 적어도 하나의 시작 지점에 기반해서 심볼 영역의 끝 경계를 결정하는 것을 포함한다.In some implementations, determining an end boundary of the symbol region is based on, for at least one of the plurality of row lines, a gray value of a pixel on at least one of the plurality of row lines and a predetermined gray value associated with the ending codeword string. identify at least one starting point of the ending symbol character; and determining the end boundary of the symbol region based on the starting point of at least one of the ending symbol characters.
일부 구현예에서, 심볼 영역의 상부 경계를 결정하는 것은 복수의 열 경계의 각각에 대해, 복수의 행 라인과 열 경계의 복수의 교차점을 결정하고; 제 1 교차점의 상부 픽셀이 식별될 때까지 상향 트래버스를 수행하고, 상부 픽셀 및 제 1 교차점이 상부 경계 특성을 충족하고; 복수의 열 경계의 각각의 제 1 교차점에 기반해서 심볼 영역의 상부 경계를 결정하는 것을 포함한다.In some implementations, determining the upper boundary of the symbol region comprises, for each of the plurality of column boundaries, determining a plurality of intersections of the plurality of row lines and the column boundary; perform an upward traverse until the upper pixel of the first intersection point is identified, and the upper pixel and the first intersection point satisfy the upper boundary characteristic; and determining an upper boundary of the symbol region based on each first intersection of the plurality of column boundaries.
일부 구현예에서, 심볼 영역의 하부 경계를 결정하는 것은: 복수의 열 경계의 각각에 대해, 복수의 행 라인과 열 경계의 복수의 교차점을 결정하고; 제 2 교차점의 하부 픽셀이 식별될 때까지 하향 트래버스를 수행하고, 하부 픽셀 및 제 2 교차점이 하부 경계 특성을 충족하고; 복수의 열 경계의 각각의 제 2 교차점에 기반해서 심볼 영역의 하부 경계를 결정하는 것을 포함한다.In some implementations, determining the lower boundary of the symbol region includes: determining, for each of the plurality of column boundaries, a plurality of intersections of the plurality of row lines and the column boundary; perform a downward traverse until the lower pixel of the second intersection point is identified, and the lower pixel and the second intersection point satisfy the lower boundary characteristic; and determining a lower boundary of the symbol region based on each second intersection of the plurality of column boundaries.
추가적 특징이 이어지는 기재에서 부분적으로 제시될 것이고, 다음의 그리고 첨부하는 도면의 검토 시에 해당 기술분야의 당업자에게 부분적으로 명백해지거나, 실시예의 생성 또는 작동에 의해 습득될 수 있다. 본 개시의 특징은 아래 논의된 구체적인 실시예에 제시된 방법론, 수단, 및 조합의 다양한 측면의 실시 또는 사용에 의해 구현되고 얻어질 수 있다.Additional features will be set forth in part in the ensuing description, and will become apparent in part to those skilled in the art upon review of the following and accompanying drawings, or may be learned by making or operating the embodiments. Features of the present disclosure may be realized and obtained by the practice or use of various aspects of the methodologies, instrumentalities, and combinations set forth in the specific examples discussed below.
본 개시는 예시적인 구현예의 관점에서 더 기재된다. 이들 예시적인 구현예는 도면을 참조하여 구체적으로 기재된다. 도면은 축척에 따르지 않는다. 이들 구현예는 비제한적인 예시적인 구현예이고, 유사한 도면 부호는 도면의 여러 조망에 걸쳐 유사한 구조를 나타내고, 여기서:
도 1은 본 개시의 일부 구현예에 따른 예시적인 이미지 처리 시스템을 도시하는 개략적인 도해이고;
도 2는 본 개시의 일부 구현예에 따라 예시적인 컴퓨팅 장치의 예시적인 하드웨어 및/또는 소프트웨어 구성요소를 도시하는 개략적인 도해이고;
도 3은 본 개시의 일부 구현예에 따른 예시적인 터미널의 예시적인 구성요소를 도시하는 개략적인 도해이고;
도 4는 본 개시의 일부 구현예에 따른 예시적인 처리 장치를 도시하는 블록도이고;
도 5는 본 개시의 일부 구현예에 따라서 심볼 이미지에 심볼의 심볼 문자를 디코딩하기 위한 예시적인 프로세스를 도시하는 흐름도이고;
도 6 및 도 7은 본 개시의 일부 구현예에 따른 예시적인 PDF 417 바코드를 도시하고;
도 8은 본 개시의 일부 구현예에 따른 심볼 이미지에 예시적인 행 라인을 도시하는 개략적인 도해이고;
도 9는 본 개시의 일부 구현예에 따른 PDF 417 바코드의 부분 확대도이고;
도 10은 본 개시의 일부 구현예에 따른 두 개의 인접한 심볼 문자 사이에 예시적인 행 경계를 도시하는 개략적인 도해이고;
도 11은 본 개시의 일부 구현예에 따른 예시적인 심볼 이미지를 도시하고;
도 12는 본 개시의 일부 구현예에 따라서 심볼의 심볼 영역에서 복수의 심볼 문자 가운데 복수의 열 경계를 결정하기 위한 예시적인 프로세스를 도시하는 흐름도이고;
도 13은 본 개시의 일부 구현예에 따른 예시적인 심볼 이미지를 도시하고;
도 14는 본 개시의 일부 구현예에 따라서 심볼 문자에 상응하는 문자 영역과 연관된 그레이 값에 기반해서 심볼 문자를 디코딩하기 위한 예시적인 프로세스를 도시하는 흐름도이고
도 15는 본 개시의 일부 구현예에 따라서 심볼 이미지에 심볼의 심볼 문자를 디코딩하기 위한 예시적인 프로세스를 도시하는 흐름도이고; 그리고
도 16은 본 개시의 일부 구현예에 따른 예시적인 PDF 417 바코드의 개략적인 도해이다.The present disclosure is further described in terms of example implementations. These exemplary implementations are specifically described with reference to the drawings. Drawings are not to scale. These implementations are non-limiting example implementations, and like reference numbers indicate like structures throughout the various views of the figures, where:
1 is a schematic diagram showing an exemplary image processing system in accordance with some implementations of the present disclosure;
2 is a schematic diagram illustrating example hardware and/or software components of an example computing device, in accordance with some implementations of the present disclosure;
3 is a schematic diagram showing example components of an example terminal in accordance with some implementations of the present disclosure;
4 is a block diagram illustrating an example processing device in accordance with some implementations of the present disclosure;
5 is a flow diagram illustrating an example process for decoding symbol characters of a symbol into a symbol image, in accordance with some implementations of the present disclosure;
6 and 7 show example PDF 417 barcodes according to some implementations of the present disclosure;
8 is a schematic diagram showing an example row line in a symbol image, in accordance with some implementations of the present disclosure;
9 is a partially exploded view of a PDF 417 barcode, in accordance with some implementations of the present disclosure;
10 is a schematic diagram showing an example row boundary between two adjacent symbol characters, in accordance with some implementations of the present disclosure;
11 shows an example symbol image in accordance with some implementations of the present disclosure;
12 is a flow diagram illustrating an exemplary process for determining a plurality of column boundaries among a plurality of symbol characters in a symbol region of a symbol, in accordance with some implementations of the present disclosure;
13 shows an example symbol image in accordance with some implementations of the present disclosure;
14 is a flow diagram illustrating an exemplary process for decoding symbol characters based on gray values associated with a character area corresponding to the symbol character, in accordance with some implementations of the present disclosure.
15 is a flow diagram illustrating an example process for decoding symbol characters of a symbol into a symbol image, in accordance with some implementations of the present disclosure; And
16 is a schematic diagram of an exemplary PDF 417 barcode, in accordance with some implementations of the present disclosure.
본 개시의 구현예에 관련된 기술적 해법을 도시하기 위해, 구현예의 기재에 참조된 도면의 간략한 도입이 아래에 제공된다. 명백하게, 아래 기재된 도면은 본 개시의 일부 실시예 또는 구현예일 뿐이다. 해당 기술분야의 당업자는 더 창의적인 노력 없이 본 개시를 이들 도면에 따라 다른 유사한 시나리오에 적용할 수 있다. 달리 언급되지 않거나 문맥으로부터 자명하지 않으면, 도면에서 동일한 참조 부호는 동일한 구조 및 작동을 언급한다.BRIEF DESCRIPTION OF THE DRAWINGS To illustrate technical solutions related to the embodiments of the present disclosure, a brief introduction of drawings referred to in the description of the embodiments is provided below. Obviously, the drawings described below are only some examples or implementations of the present disclosure. A person skilled in the art may apply the present disclosure to other similar scenarios according to these figures without further creative efforts. Like reference numbers in the drawings refer to like structures and operations unless otherwise stated or apparent from context.
개시 및 첨부된 청구항에 사용된 바와 같이, 내용이 명백히 달리 지시하지 않으면, 단일 형태 “a,” “an,” 및 “the”는 복수의 지시대상을 포함한다. 본 개시에 사용될 때, 용어 “포함하다(comprises)”, “포함하는(comprising)”, ”포함하다(include)” 그리고/또는 “포함하는(including)”은 언급된 단계 및 요소의 존재를 특정하지만, 하나 이상의 다른 단계 및 요소의 존재 또는 추가를 배제하지 않음이 더 이해될 것이다.As used in the disclosure and appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the content clearly dictates otherwise. As used in this disclosure, the terms "comprises", "comprising", "include" and/or "including" specify the presence of stated steps and elements. However, it will be further appreciated that the presence or addition of one or more other steps and elements is not excluded.
시스템의 일부 모듈은 본 개시의 일부 구현예에 따른 다양한 방식으로 언급될 수 있지만, 임의의 개수의 다른 모듈이 클라이언트 터미널 및/또는 서버에 사용될 수 있고 작동될 수 있다. 이들 모듈은 도시하도록 의도되고 본 개시의 범위를 제한하도록 의도되지 않는다. 다른 모듈은 시스템 및 방법의 다른 측면에서 사용될 수 있다.While some modules of the system may be referred to in various ways according to some implementations of the present disclosure, any number of other modules may be used and operated in a client terminal and/or server. These modules are intended to be illustrative and are not intended to limit the scope of the present disclosure. Other modules may be used in other aspects of the systems and methods.
본 개시의 일부 구현예에 따라서, 흐름도는 시스템에 의해 수행된 작동을 도시하도록 사용된다. 위의 또는 아래의 작동은 순차적으로 실행되거나 그렇지 않을 수 있음이 명확히 이해되어야만 한다. 반대로, 작동은 반대 순서로 또는 동시에 수행될 수 있다. 게다가, 하나 이상의 다른 작동이 흐름도에 추가될 수 있거나 하나 이상의 작동이 흐름도로부터 생략될 수 있다.According to some implementations of the present disclosure, flow diagrams are used to depict operations performed by the system. It should be clearly understood that the operations above or below may or may not be executed sequentially. Conversely, the operations may be performed in reverse order or concurrently. Additionally, one or more other operations may be added to the flowchart or one or more operations may be omitted from the flowchart.
본 개시의 구현예의 기술적 해법이 아래 기재된 바와 같은 도면을 참조하여 기재된다. 기재된 구현예는 완전하지 않고 제한적이지 않음이 자명하다. 임의의 창의적인 작업 없이 해당 기술분야의 당업자에 의해 본 개시에 제시된 구현예에 기반해 얻어진 다른 구현예는 본 개시의 범위 내에 있다.Technical solutions of the embodiments of the present disclosure are described with reference to the drawings as described below. It is to be understood that the described embodiments are not exhaustive and not limiting. Other embodiments obtained based on the embodiments presented in this disclosure by those skilled in the art without any creative work are within the scope of this disclosure.
본 개시의 측면은 이미지 디코딩에 대한 시스템 및 방법에 관한 것이다. 시스템은 심볼 영역에 복수의 심볼 문자를 포함하는 심볼 이미지를 획득할 수 있다. 심볼 이미지는 심볼(예들 들어, 휴대가능한 데이터 파일(PDF) 417 바코드)의 이미지일 수 있다. 심볼의 길이 방향에 따른 복수의 행 라인이 결정될 수 있다. 각각의 행 라인은 심볼 영역에 동일한 행에 픽셀을 횡단할 수 있다. 시스템은 또한 복수의 행 라인에 기반해서, 복수의 심볼 문자 가운데 복수의 열 경계 및 복수의 심볼 문자 가운데 복수의 행 경계를 결정할 수 있다. 복수의 심볼 문자의 각각에 대해, 시스템은 복수의 열 경계 및 복수의 행 경계에 기반해서 심볼 문자에 상응하는 문자 영역을 결정할 수 있다. 시스템은 심볼 문자에 상응하는 문자 영역과 연관된 그레이 값에 기반해서 심볼 문자를 더 디코딩할 수 있다. 본 경우에, 복수의 심볼 문자의 각각의 위치는 더 정확하게 결정되고, 심볼 문자에 상응하는 코드워드는 더 효율적으로 그리고 정확하게 결정될 수 있고, 이미지 왜곡, 고르지 않은 빛 등과 같은 인자에 의해 야기된 디코딩 프로세스에서 오류는 감소되거나 제거될 수 있고, 따라서 디코딩 프로세스의 효과성 및 정확성을 개선한다.Aspects of the present disclosure relate to systems and methods for image decoding. The system may obtain a symbol image including a plurality of symbol characters in a symbol area. A symbol image may be an image of a symbol (eg, a portable data file (PDF) 417 barcode). A plurality of row lines may be determined along the length direction of the symbol. Each row line may cross pixels on the same row in the symbol area. The system may also determine multiple column boundaries among multiple symbol characters and multiple row boundaries among multiple symbol characters based on the multiple row lines. For each of the plurality of symbol characters, the system may determine a character area corresponding to the symbol character based on the plurality of column boundaries and the plurality of row boundaries. The system may further decode the symbol character based on the gray value associated with the character area corresponding to the symbol character. In this case, the position of each of the plurality of symbol characters is determined more accurately, and the codeword corresponding to the symbol character can be determined more efficiently and accurately, and the decoding process caused by factors such as image distortion, uneven light, and the like Errors in can be reduced or eliminated, thus improving the effectiveness and accuracy of the decoding process.
도 1은 본 개시의 일부 구현예에 따른 예시적인 이미지 처리 시스템을 도시하는 개략적인 도해이다. 이미지 처리 시스템(100)은 복수의 이미지로 구성된 이미지 또는 비디오를 처리하고 이미지 또는 비디오로부터 데이터를 추출할 수 있다. 도시된 바와 같이, 이미지 처리 시스템(100)은 이미지 소스(101), 처리 장치(104), 버퍼 관리자(105), 버퍼(106), 송신기(107), 터미널(108)(또는 복수의 터미널(108), 네트워크(112) 및 네트워크 저장 장치(113)(또는 복수의 네트워크 저장소(113))를 포함할 수 있다.1 is a schematic diagram illustrating an exemplary image processing system in accordance with some implementations of the present disclosure. The
이미지 소스(101)는 이미지 또는 네트워크(112)를 통해 터미널(108)의 사용자에 대한 (비디오 프레임으로도 언급된) 적어도 하나의 이미지를 포함하는 비디오를 제공할 수 있다. 일부 구현예에서, 이미지 소스(101)는 스캐너(102) 및/또는 미디어 서버(103)를 포함할 수 있다.
스캐너(102)는 이미지 또는 적어도 하나의 이미지를 포함하는 비디오를 캡처가능할 수 있다. 일부 구현예에서, 이미지는 심볼 이미지일 수 있다. 여기 사용된 바와 같은, 심볼 이미지는 심볼의 이미지일 수 있다. 일부 구현예에서, 심볼 이미지는 스틸 이미지 또는 비디오로부터 획득된 비디오 프레임일 수 있다. 심볼 이미지는 2차원(2D) 이미지 또는 3차원(3D) 이미지일 수 있다. 스캐너(102)는 레이저 스캐너, 광학 스캐너 등일 수 있다.The
일부 구현예에서, 광학 스캐너는 카메라일 수 있다. 카메라는 예를 들어, 디지털 카메라, 비디오 카메라, 보안 카메라, 웹 카메라, 스마트폰, 태블릿, 랩탑, 웹 카메라가 장착된 비디오 게이밍 콘솔, 다중 렌즈를 갖는 카메라 등일 수 있다.In some implementations, the optical scanner can be a camera. The camera can be, for example, a digital camera, video camera, security camera, web camera, smartphone, tablet, laptop, video gaming console equipped with a web camera, a camera with multiple lenses, and the like.
단지 도시를 위해, 카메라는 렌즈, 셔터, 센서, 처리 요소, 및 저장 요소를 포함할 수 있다. 렌즈는 이미지를 형성하도록 굴절에 의해 광 빔에 초점을 두는 광학 요소일 수 있다. 렌즈는 목표 대상(예를 들어, 카드, 종이, 백, 패키지 등 상의 바코드)을 취하도록 구성될 수 있다. 렌즈의 애퍼처는 그를 통해 광이 센서에 도달하도록 통과하는 홀의 크기를 규정할 수 있다. 애퍼처는 렌즈를 통과하는 광량을 조절하도록 조절가능할 수 있다. 렌즈의 초점 거리는 카메라의 범위를 조절하도록 조절가능할 수 있다.For illustrative purposes only, a camera may include a lens, shutter, sensor, processing element, and storage element. A lens may be an optical element that focuses a light beam by refraction to form an image. The lens may be configured to take a target object (eg, a bar code on a card, paper, bag, package, etc.). The aperture of the lens may define the size of the hole through which light passes to reach the sensor. The aperture may be adjustable to adjust the amount of light passing through the lens. The focal length of the lens may be adjustable to adjust the range of the camera.
셔터는 이미지가 캡처될 때 렌즈를 통해 빛을 허용하도록 열릴 수 있다. 셔터는 처리 요소에 의해 수동으로 또는 자동으로 제어될 수 있다.The shutter can be opened to allow light through the lens when an image is captured. The shutter may be manually or automatically controlled by a processing element.
센서는 렌즈를 통과하는 광을 수신하고 수신된 광의 광신호를 전기 신호로 변환하도록 구성될 수 있다. 센서는 전하 결합 소자(CCD) 및 상보형 금속산화 반도체(CMOS)를 포함할 수 있다. 센서는 논리 회로와 통신할 수 있고, 렌즈를 사용하여 목표 대상을 검출하고 목표 대상으로부터 수신된 광을 전자 신호로 변환하도록 구성될 수 있다.The sensor may be configured to receive light passing through the lens and convert an optical signal of the received light into an electrical signal. The sensor may include a charge coupled device (CCD) and a complementary metal oxide semiconductor (CMOS). The sensor may communicate with the logic circuitry and may be configured to detect a target object using a lens and convert light received from the target object into an electronic signal.
처리 요소는 카메라에 관련해 데이터 및/또는 정보를 처리하고 그리고/또는 카메라에서 하나 이상의 구성요소(예를 들어, 렌즈, 셔터)를 제어하도록 구성될 수 있다. 예를 들어, 처리 요소는 노출 시간, 노출 이득, 및 애퍼처와 같은 카메라의 노출 파라미터의 값을 자동으로 결정할 수 있다. 처리 요소는 또한 카메라에 의해 취해진 이미지의 품질(예를 들어, 날카로움, 대조, 잡음 레벨 등)을 조절할 수 있다.A processing element may be configured to process data and/or information relating to the camera and/or to control one or more components (eg, lens, shutter) in the camera. For example, the processing element may automatically determine the values of exposure parameters of the camera, such as exposure time, exposure gain, and aperture. The processing element may also adjust the quality (eg, sharpness, contrast, noise level, etc.) of the image taken by the camera.
일부 구현예에서, 처리 요소는 국부적이거나 원격일 수 있다. 예를 들어, 처리 요소는 네트워크를 통해 카메라와 통신할 수 있다. 또 다른 실시예로서, 처리 요소는 카메라에 일체화될 수 있다. In some implementations, processing elements can be local or remote. For example, the processing element may communicate with the camera over a network. As another embodiment, the processing element may be integrated into the camera.
저장 요소는 데이타, 명령어, 및/또는 임의의 다른 정보를 저장할 수 있다. 일부 구현예에서, 저장 요소는 처리 요소로부터 획득된 데이터를 저장할 수 있다. 예를 들어, 저장 요소는 캡처된 이미지를 저장할 수 있다. 일부 구현예에서, 저장 요소는 처리 장치가 본 개시에서 기재된 예시적인 방법을 수행하도록 실행하거나 사용할 수 있는 데이터 및/또는 명령어를 저장할 수 있다. 일부 구현예에서, 저장 요소는 대용량 저장소, 제거가능한 저장소, 휘발성 읽기 및 쓰기 메모리, 읽기 전용 메모리(ROM), 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 예시적인 대용량 저장소는 자기 디스크, 광학 디스크, 고체 상태 드라이브 등을 포함할 수 있다. 예시적인 제거가능한 저장소는 플래시 드라이브, 플로피 디스크, 광학 디스크, 메모리 카드, 집 디스크, 자기 테이프 등을 포함할 수 있다. 예시적인 휘발성 읽기 및 쓰기 메모리는 랜덤 액세스 메모리(RAM)를 포함할 수 있다. 예시적인 RAM은 동적 RAM(DRAM), 2배속 동기식 동적 RAM(DDR SDRAM), 정적 RAM(SRAM), 사이리스터 RAM(T-RAM), 및 제로-커패시터 RAM(Z-RAM) 등을 포함할 수 있다. 예시적인 ROM은 마스크 ROM(MROM), 프로그래머블 ROM(PROM), 소거가능하고 프로그램가능한 ROM(EPROM), 전기적으로 소거가능하고 프래그램가능한 ROM(EEPROM), 컴팩트 디스크 ROM(CD-ROM), 및 디지털 다목적 디스크 ROM 등을 포함할 수 있다.A storage element may store data, instructions, and/or any other information. In some implementations, the storage element can store data obtained from the processing element. For example, the storage element may store captured images. In some implementations, the storage element may store data and/or instructions that a processing device may execute or use to perform example methods described in this disclosure. In some implementations, the storage element may include mass storage, removable storage, volatile read and write memory, read only memory (ROM), or the like, or any combination thereof. Exemplary mass storage may include magnetic disks, optical disks, solid state drives, and the like. Exemplary removable storage may include flash drives, floppy disks, optical disks, memory cards, zip disks, magnetic tape, and the like. Exemplary volatile read and write memory may include random access memory (RAM). Exemplary RAMs may include dynamic RAM (DRAM), double-speed synchronous dynamic RAM (DDR SDRAM), static RAM (SRAM), thyristor RAM (T-RAM), zero-capacitor RAM (Z-RAM), and the like. . Exemplary ROMs include mask ROM (MROM), programmable ROM (PROM), erasable and programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), compact disk ROM (CD-ROM), and digital may include a multi-purpose disk ROM, and the like.
미디어 서버(103)는 이미지 또는 복수의 이미지를 포함하는 비디오를 저장하거나 제공하기 위한 서버(예를 들어, 컴퓨터 또는 컴퓨터의 그룹)일 수 있다. 미디어 서버(103)는 또한 본 개시에 도입된 예시적인 방법을 사용하여 이미지를 처리하도록 구성된 이미지 처리 요소(미도시)를 포함할 수 있다.The
이미지 소스(101)는 이미지 또는 비디오를 처리 장치(104)에 보낼 수 있다. 처리 장치(104)는 이미지 또는 비디오를 처리할 수 있다. 예를 들어, 이미지 또는 비디오는 심볼 이미지를 포함할 수 있다. 심볼 이미지는 심볼의 이미지일 수 있다. 예를 들어, 심볼은 바코드(예를 들어, 휴대가능한 데이터 파일(PDF) 417, 코드 16K, 코드 49 등)일 수 있다. 심볼은 심볼 영역에 복수의 심볼 문자를 포함할 수 있다. 여기에 사용된 바와 같이, 심볼 문자는 심볼에 데이터를 인코딩하기 위한 최소 유닛을 언급할 수 있다. 심볼 영역은 복수의 심볼 문자가 위치되는, 심볼의 적어도 부분에 상응하는 영역을 언급할 수 있다. 처리 장치(104)는 심볼을 디코딩할 수 있고 심볼에 상응하는 디코딩된 데이터를 발생시킬 수 있다.
일부 구현예에서, 처리 장치(104)는 단일 서버 또는 서버 그룹일 수 있다. 서버 그룹은 중심화되거나 분배될 수 있다. 일부 구현예에서, 처리 장치(104)는 국부적이거나 원격일 수 있다. 일부 구현예에서, 처리 장치(104)는 클라우드 플랫폼 상에 실행될 수 있다. 단지 실시예를 통해서, 클라우드 플랫폼은 사설 클라우드, 공공 클라우드, 하이브리드 클라우드, 커뮤니티 클라우드, 분산 클라우드, 인터 클라우드, 멀티 클라우드, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 처리 장치(104)는 도 2에 도시된 바와 같은 하나 이상의 구성요소를 갖는 컴퓨팅 장치(200)에 의해 실행될 수 있다. In some implementations,
이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터는 버퍼(106)에 저장될 수 있다. 버퍼(106)는 버퍼 관리자(105)에 의해 관리될 수 있다. 버퍼(106)는 네트워크(112)를 통해 전송될 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 버퍼링하기 위한 저장 장치일 수 있다. 그것은 이미지 소스(101)로부터의 원격 장치 또는 카메라의 저장 매체와 같은 이미지 소스(101)에서 해석된 로컬 장치일 수 있다. 버퍼(106)는 대용량 저장 장치, 제거가능한 저장 장치, 휘발성 읽기 및 쓰기 메모리, 읽기 전용 메모리(ROM), 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 예시적인 대용량 저장소는 자기 디스크, 광학 디스크, 고체 상태 드라이브 등을 포함할 수 있다. 예시적인 제거가능한 저장소는 플래시 드라이브, 플로피 디스크, 광학 디스크, 메모리 카드, 집 디스크, 자기 테이프 등을 포함할 수 있다. 예시적인 휘발성 읽기 및 쓰기 메모리는 동적 RAM(DRAM), 2배속 동기식 동적 RAM(DDR SDRAM), 정적 RAM(SRAM), 사이리스터 RAM(T-RAM), 및 제로-커패시터 RAM(Z-RAM)과 같은 랜덤 액세스 메모리(RAM)를 포함할 수 있다. 예시적인 ROM은 마스크 ROM(MROM), 프로그램머블 ROM(PROM), 소거가능하고 프로그램가능한 ROM(EPROM), 전기적으로 소거가능하고 프로그램가능한 ROM(EEPROM), 컴팩트 디스크 ROM(CD-ROM), 및 디지털 다목적 디스크 ROM 등을 포함할 수 있다.Images, video, and/or decoded data corresponding to images or video may be stored in buffer 106 . Buffer 106 may be managed by
송신기(107)는 네트워크(112)로 버퍼(106)에서 버퍼링된 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 전송할 수 있다. 송신기(107)는 비디오 소스(101), 버퍼 관리자(105), 터미널(108), 또는 그와 유사한 것, 또는 그의 조합으로부터 보내진 명령어에 응답해서 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 전송할 수 있다. 대안적으로 또는 추가적으로, 송신기(107)는 버퍼(106)에 저장된 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 자발적으로 전송할 수 있다. 송신기(107)는 네트워크(112)를 통해 터미널(108)에 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 전송할 수 있다.
터미널(108)은 네트워크(112)를 통해 전송된 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 수신할 수 있다. 일부 구현예에서, 터미널(108)은 사용자에게 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 표시할 수 있거나 지불, 식별 인증, 등록 등과 같은 작동을 더 수행할 수 있다.
터미널(108)은 형태에서 다양할 수 있다. 예를 들어, 터미널(108)은 모바일 장치(109), 태블릿 컴퓨터(110), 랩탑 컴퓨터(111), 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 모바일 장치(109)는 웨어러블 장치, 모바일 장치, 가상 현실 장치, 증강 현실 장치, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 웨어러블 장치는 팔찌, 신발, 안경, 헬맷, 시계, 의류, 백팩, 스마트 액세서리, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 모바일 장치는 모바일 폰, 개인 정보 단말기(PDA), 랩탑, 태블릿 컴퓨터, 데스크탑, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 가상 현실 장치 및/또는 증강 현실 장치는 가상 현실 헬맷, 가상 현실 안경, 가상 현실 패치, 증강 현실 헬맷, 증강 현실 안경, 증강 현실 패치, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 예를 들어, 가상 현실 장치 및/또는 증강 현실 장치는 구글 글래스™, 오큘러스 리프트™, 홀로렌즈™, 기어 VR™ 등을 포함할 수 있다. 일부 구현예에서, 터미널(들)(108)은 처리 엔진의 부분일 수 있다.Terminal 108 can vary in shape. For example, terminal 108 may include
네트워크(112)는 데이터 전송을 용이하게 할 수 있는 임의의 적합한 네트워크를 포함할 수 있다. 네트워크(112)는 공공 네트워크(예를 들어, 인터넷), 사설 네트워크(예를 들어, 근거리 통신망(LAN), 광역 통신망(WAN)), 유선 네트워크(예를 들어, 이더넷 네트워크), 무선 네트워크(예를 들어, 802.11 네트워크, 와이파이 네트워크), 셀룰러 네트워크(예를 들어, 롱텀에볼루션(LTE) 네트워크), 프레임 릴레이 네트워크, 가상 사설 네트워크("VPN"), 위성 네트워크, 전화 네트워크, 라우터, 허브, 스위치, 서버 컴퓨터, 및/또는 그의 임의의 조합이고 그리고/또는 그를 포함할 수 있다. 단지 예시를 통해서, 네트워크(112)는 케이블 네트워크, 유선 네트워크, 광섬유 네트워크, 텔레커뮤니케이션 네트워크, 인트라넷, 무선 근거리 통신망(WLAN), 대도시 통신망(MAN), 공중 교환 전화망(PSTN), 블루투스™ 네트워크, 지그비™ 네트워크, 근거리 자기장 통신(NFC) 네트워크, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 네트워크(112)는 하나 이상의 네트워크 접근 지점을 포함할 수 있다.
일부 구현예에서, 네트워크(112)는 하나 이상의 네트워크 저장 장치(113)를 포함할 수 있다. 네트워크 저장 장치(113)는 네트워크(112)에 전송된 데이터를 버퍼링 또는 캐칭하기 위한 장치일 수 있다. 이미지, 비디오, 및/또는 송신기(107)에 의해 송신된 이미지 또는 비디오에 상응하는 디코딩된 데이터가 터미널(108)에 의해 수신되기 전에 하나 이상의 네트워크 저장 장치(113)에 버퍼링되거나 캐시될 수 있다. 네트워크 저장 장치(113)는 서버, 허브, 게이트웨이, 또는 그와 유사한 것, 또는 그의 조합일 수 있다.In some implementations,
처리 장치(104), 버퍼 관리자(105), 버퍼(106), 및 송신기(107) 중 하나 이상은 독립형 장치, 또는 이미지 소스(101) 또는 또 다른 독립형 장치에 일체화된 모듈일 수 있음이 언급될 수 있다. 예를 들어, 처리 장치(104), 버퍼 관리자(105), 버퍼(106) 및 송신기(107) 중 하나 이상은 스캐너(102), 미디어 서버(103), 및/또는 터미널(108)에 일체화될 수 있다. 또 다른 실시예로서, 처리 장치(104), 버퍼 관리자(105), 버퍼(106), 및 송신기(107)는 직접 유선 연결, 네트워크(112) 또는 또 다른 네트워크를 통해 이미지 소스(101)와 통신할 수 있는 비디오 처리 엔진에 포함될 수 있다. 또 다른 실시예로서, 처리 장치(104)는 독립형 장치(예를 들어, 컴퓨터 또는 서버)일 수 있는 한편, 버퍼 관리자(105), 버퍼(106), 및 송신기(107)는 또 다른 독립형 장치에 포함될 수 있다.It should be noted that one or more of
도 2는 본 개시의 일부 구현예에 따라 예시적인 컴퓨팅 장치의 예시적인 하드웨어 및/또는 소프트웨어 구성요소를 도시하는 개략적인 도해이다. 예를 들어, 컴퓨팅 장치(200)는 미디어 서버(103), 스캐너(102)의 처리 요소 및/또는 이미지 처리에 특화된 전자 장치일 수 있다. 처리 장치(104) 및 버퍼 관리자(105)는 또한 컴퓨팅 장치(200) 상에 실행될 수 있다. 도 2에 도시된 바와 같이, 컴퓨팅 장치(200)는 프로세서(222), 저장소(227), 입력/출력(I/O)(226), 및 통신 포트(225)를 포함할 수 있다.2 is a schematic diagram illustrating example hardware and/or software components of an example computing device, in accordance with some implementations of the present disclosure. For example, the
프로세서(222)는 컴퓨터 명령어(예를 들어, 프로그램 코드)를 실행하고 여기 기재된 기법에 따라 기능을 수행할 수 있다. 예를 들어, 프로세서(222)는 여기에 인터페이스 회로 및 처리 회로를 포함할 수 있다. 인터페이스 회로는 버스(도 2에 미도시)로부터 전자 신호를 수신하도록 구성될 수 있고, 전자 신호는 처리할 처리 회로를 위해 구조화된 데이터 및/또는 명령어를 인코딩한다. 처리 회로는 논리 연산 계산을 수행할 수 있고, 그런 후에 전자 신호로서 인코딩된 결론, 결과, 및/또는 명령어를 결정할 수 있다. 그런 후에 인터페이스 회로는 버스를 통해 처리 회로로부터 전자 신호를 보낼 수 있다.
컴퓨터 명령어는 예를 들어, 루틴, 프로그램, 객체, 구성요소, 데이터 구조, 절차, 모듈, 및 함수를 포함할 수 있고, 이는 여기 기재된 특정 기능을 수행한다. 일부 구현예에서, 프로세서(222)는 마이크로컨트롤러, 마이크로프로세서, 축소 명령 집합 컴퓨터(RISC), 주문형 집적회로(ASICs), 주문형 명령 집합 프로세서(ASIP), 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 물리 처리 장치(PPU), 마이크로컨트롤러 장치, 디지털 신호 프로세서(DSP), 필드 프로그래머블 게이트 어레이(FPGA), 향상된 RISC 기계(ARM), 프로그램 가능 논리 장치(PLD), 하나 이상의 기능을 실행할 수 있는 임의의 회로 또는 프로세서, 또는 그와 유사한 것, 또는 그의 임의의 조합과 같은 하나 이상의 하드웨어 프로세서를 포함할 수 있다.Computer instructions may include, for example, routines, programs, objects, components, data structures, procedures, modules, and functions that perform specific functions described herein. In some implementations,
단지 도시를 위해, 하나의 프로세서만이 컴퓨팅 장치(200)에 기재된다. 그러나, 본 개시에서 컴퓨팅 장치(200)는 또한 다중 프로세서를 포함할 수 있고, 따라서 본 개시에 기재된 바와 같은 하나의 프로세서에 의해 수행된 작동 및/또는 방법 단계는 또한 다중 프로세서에 의해 합동으로 또는 분리하여 수행될 수 있음이 언급되어야만 한다. 예를 들어, 본 개시에서 컴퓨팅 장치(200)의 프로세서가 단계(A) 및 단계(B) 모두를 실행한다면, 단계(A) 및 단계(B)는 또한 컴퓨팅 장치(200)에서 합동으로 또는 분리하여 두 개 이상의 다른 프로세서에 의해 수행될 수 있음(예를 들어, 제 1 프로세서는 단계(A)를 실행하고 제 2 프로세서가 단계(B)를 실행하거나, 제 1 및 제 2 프로세서가 합동으로 단계(A) 및 단계(B)를 실행함)이 이해되어야만 한다.For illustrative purposes only, only one processor is listed in
저장소(227)는 이미지 소스(101), 처리 장치(104), 버퍼 관리자(105), 버퍼(106), 송신기(107), 터미널(108), 네트워크(112), 네트워크 저장 장치(113), 및/또는 이미지 처리 시스템(100)의 임의의 다른 구성요소로부터 획득된 데이터/정보를 저장할 수 있다. 일부 구현예에서, 저장소(222)는 대용량 저장소, 제거가능한 저장소, 휘발성 읽기 및 쓰기 메모리, 읽기 전용 메모리(ROM), 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 예를 들어, 대용량 저장소는 자기 디스크, 광학 디스크, 고체 상태 드라이브 등을 포함할 수 있다. 제거가능한 저장소는 플래시 드라이브, 플로피 디스크, 광학 디스크, 메모리 카드, 집 디스크, 자기 테이프 등을 포함할 수 있다. 휘발성 읽기 및 쓰기 메모리는 랜덤 액세스 메모리(RAM)를 포함할 수 있고, 이는 동적 RAM(DRAM), 2배속 동기식 동적 RAM(DDR SDRAM), 정적 RAM(SRAM), 사이리스터 RAM(T-RAM), 및 제로-커패시터 RAM(Z-RAM) 등을 포함할 수 있다. ROM은 마스크 ROM(MROM), 프로그래머블 ROM(PROM), 소거가능하고 프로그램가능한 ROM(EPROM), 전기적으로 소거가능하고 프래그램가능한 ROM(EEPROM), 컴팩트 디스크 ROM(CD-ROM), 및 디지털 다목적 디스크 ROM 등을 포함할 수 있다. 일부 구현예에서, 저장소(222)는 본 개시에 기재된 예시적인 방법을 수행하기 위해 하나 이상의 프로그램 및/또는 명령어를 저장할 수 있다. 예를 들어, 저장소(222)는 심볼 이미지를 디코딩하도록 처리 엔진(예를 들어, 미디어 서버(103), 처리 장치(104))을 위한 프로그램을 저장할 수 있다.
I/O(226)는 신호, 데이터, 정보 등을 입력하고 그리고/또는 출력할 수 있다. 일부 구현예에서, I/O(226)는 입력 장치 및 출력 장치를 포함할 수 있다. 입력 장치의 예시는 키보드, 마우스, 터치 스크린, 마이크로폰, 또는 그와 유사한 것, 또는 그의 조합을 포함할 수 있다. 출력 장치의 예시는 디스플레이 장치, 라우드스피커, 프린터, 프로젝터, 또는 그와 유사한 것, 또는 그의 조합을 포함할 수 있다. 디스플레이 장치의 예시는 액정 디스플레이(LCD), 발광 다이오드(LED)-기반 디스플레이, 플랫 패널 디스플레이, 곡선 스크린, 텔레비전 장치, 음극선관(CRT), 터치 스크린 또는 그와 유사한 것, 또는 그의 조합을 포함할 수 있다.I/
통신 포트(225)는 데이터 통신을 용이하게 하도록 네트워크(예를 들어, 네트워크(112))에 연결될 수 있다. 통신 포트(225)는 이미지 소스(101), 처리 장치(104), 버퍼 관리자(105), 버퍼(106), 송신기(107), 터미널(108), 네트워크(112), 네트워크 저장 장치(113), 및/또는 이미지 처리 시스템(100)의 임의의 다른 구성요소 사이에 연결을 설정할 수 있다. 연결은 데이터 전송 및/또는 수신, 및/또는 이들 연결의 임의의 조합을 가능하게 할 수 있는 유선 연결, 무선 연결, 임의의 다른 통신 연결일 수 있다. 유선 연결은 예를 들어, 전기 케이블, 광 케이블, 전화선, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 무선 연결은 예를 들어, 블루투스™ 링크, 와이파이™ 링크, 위맥스™ 링크, WLAN 링크, 지그비 링크, 모바일 네트워크 링크(예를 들어, 3G, 4G, 5G), 또는 그와 유사한 것, 또는 그의 조합을 포함할 수 있다. 일부 구현예에서, 통신 포트(225)는 RS232, RS485 등과 같은 표준화된 통신 포트이고 그리고/또는 그를 포함할 수 있다. 일부 구현예에서, 통신 포트(225)는 특별하게 설계된 통신 포트일 수 있다.
도 3은 본 개시의 일부 구현예에 따른 예시적인 터미널의 예시적인 구성요소를 도시하는 개략적인 도해이다. 도 3에 도시된 바와 같이, 터미널(300)은 통신 플랫폼(320), 디스플레이(310), 그래픽 처리 장치(GPU)(330), 중앙 처리 장치(CPU)(330), I/O 포트(350), 메모리(360), 및 저장소(390)를 포함할 수 있다. 일부 구현예에서, 시스템 버스 또는 제어기(미도시)를 포함하지만 그로 한정되지 않는 임의의 다른 적합한 구성요소 역시 터미널(300)에 포함될 수 있다. 일부 구현예에서, 모바일 운영 시스템(370)(예를 들어, iOS™, 안드로이드™, 윈도우즈 폰™) 및 하나 이상의 어플리케이션(380)은 프로세서(340)에 의해 실행되도록 저장소(390)로부터 메모리(360)에 부하될 수 있다. 터미널(300)은 터미널(108)의 구현예일 수 있다.3 is a schematic diagram showing example components of an example terminal in accordance with some implementations of the present disclosure. As shown in FIG. 3 , the terminal 300 includes a
본 개시에 기재된 다양한 모듈, 유닛, 및 그 기능을 실행하기 위해, 컴퓨터 하드웨어 플랫폼은 여기 기재된 요소 중 하나 이상을 위한 하드웨어 플랫폼(들)으로서 사용될 수 있다. 사용자 인터페이스 요소를 갖는 컴퓨터는 개인용 컴퓨터(PC) 또는 임의의 다른 유형의 워크 스테이션 또는 단말 장치를 실행하도록 사용될 수 있다. 컴퓨터는 또한 적절하게 프로그램된다면, 서버로서 작동할 수 있다.To implement the various modules, units, and functions described in this disclosure, a computer hardware platform may be used as the hardware platform(s) for one or more of the elements described herein. A computer with user interface elements may be used to run a personal computer (PC) or any other type of workstation or terminal device. A computer can also act as a server if properly programmed.
도 4는 본 개시의 일부 구현예에 따른 예시적인 처리 장치를 도시하는 블록도이다. 도 4에 도시된 바와 같이, 처리 장치(104)는 획득 모듈(410), 행 라인 결정 모듈(420), 문자 영역 결정 모듈(430), 및 디코딩 모듈(440)을 포함할 수 있다.4 is a block diagram illustrating an exemplary processing device according to some implementations of the present disclosure. As shown in FIG. 4 , the
획득 모듈(410)은 데이터/정보를 획득할 수 있다. 일부 구현예에서, 획득 모듈(410)은 복수의 심볼 문자를 포함하는 심볼의 심볼 이미지를 획득할 수 있다. 일부 구현예에서, 심볼 이미지에 심볼은 바코드일 수 있다. 예시적인 바코드는 코드 16K, 코드 49, PDF 417, 마이크로 PDF 417, 코드 원, 맥시코드, 퀵 리스폰스(QR) 코드, 데이터 매트릭스, 한신(HanXin) 코드, 그리드 매트릭스 등을 포함할 수 있다. 일부 구현예에서, 획득된 데이터/정보는 처리된 결과, 사용자 명령어, 알고리즘, 프로그램 코드, 또는 그와 유사한 것, 또는 그 조합을 더 포함할 수 있다. The acquiring
행 라인 결정 모듈(420)은 심볼의 길이 방향을 따라 심볼 이미지에 복수의 행 라인을 결정할 수 있다. 일부 구현예에서, 처리 장치(104)는 심볼의 에지를 식별할 수 있다. 심볼의 에지는 심볼 이미지에 픽셀에 기반해서 식별될 수 있다. 일부 구현예에서, 심볼의 에지가 포지셔닝 박스의 에지와 일치하거나 실질적으로 일치할 때까지, 처리 장치(104)는 크기, 위치, 및/또는 포지셔닝 박스의 배향을 동적으로 조절할 수 있다. 일부 구현예에서, 복수의 행 라인의 각각은 포지셔닝 박스에 동일한 행에 픽셀을 연결함으로써 결정될 수 있다.The row
문자 영역 결정 모듈(430)은 복수의 심볼 문자의 각각에 대해 심볼 문자에 상응하는 문자 영역을 결정할 수 있다. 일부 구현예에서, 복수의 심볼 문자의 각각에 대해 심볼 문자에 상응하는 문자 영역은 복수의 심볼 문자를 포함하는 심볼 영역에 복수의 열 경계 및 복수의 행 경계에 기반해서 결정될 수 있다. 문자 영역 결정 모듈(430)은 행 라인 결정 모듈(420)로부터 복수의 행 라인을 획득할 수 있고 복수의 행 라인에 기반해서 복수의 열 경계 및 복수의 행 경계를 결정할 수 있다. 복수의 열 경계 및 복수의 행 경계의 결정에 관한 세부사항은 본 개시에 다른 곳에서, 예를 들어, 도 5, 도 12, 및 도 15, 및 그의 관련 기재에서 발견될 수 있다.The character
디코딩 모듈(440)은 심볼 문자에 상응하는 문자 영역과 연관된 그레이 값에 기반해서 각각의 심볼 문자를 디코딩할 수 있다.The
각각의 문자 영역에 관해서는, 디코딩 모듈(440)은 문자 영역을 복수의 블록으로 나눌 수 있다. 복수의 블록의 각각은 하나 이상의 픽셀(예를 들어, 1×4 픽셀(즉, 행에서 1개의 픽셀 및 열에서 4개의 픽셀))을 포함할 수 있다. 블록의 하나 이상의 픽셀의 그레이 값이 획득될 수 있다. 블록의 글로벌 그레이 값은 블록의 하나 이상의 픽셀의 그레이 값의 전체 표현일 수 있다.For each character area,
일부 구현예에서, 디코딩 모듈(440)은 복수의 블록의 글로벌 그레이 값에 기반해서 문자 영역에 상응한 심볼 문자의 대조값을 결정할 수 있다. 디코딩 모듈(440)은 대조값에 기반해서 심볼 문자에 상응하는 코드워드를 결정할 수 있다. 일부 구현예에서, 디코딩 모듈(440)은 복수의 미리설정된 코드워드(예를 들어, 2787개의 코드워드)를 획득할 수 있다. 복수의 코드워드의 각각은 미리결정된 코드워드 스트링에 상응할 수 있다. 복수의 미리설정된 코드워드의 각각의 참조 대조값은 상응하는 미리결정된 코드워드 스트링에 기반해서 결정될 수 있다. 그런 후에 처리 장치(104)는 각각의 코드워드의 참조 대조값 및 심볼 문자의 대조값에 기반해 복수의 미리설정된 코드워드의 각각과 심볼 문자 사이에 유사값을 결정한다. 디코딩 모듈(440)은 유사값에 기반해서 심볼 문자에 상응하는 코드워드를 결정할 수 있다. 심볼 문자에 상응하는 코드워드는 심볼 이미지에 심볼에 상응하는 디코딩된 데이터(예를 들어, 번호, 문자, 벡터 등)이거나 그를 포함할 수 있다.In some implementations, the
처리 장치(104)에 모듈은 유선 연결 또는 무선 연결을 통해 서로 연결되거나 통신할 수 있다. 유선 연결은 금속 케이블, 광 케이블, 하이브리드 케이블, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 무선 연결은 근거리 통신망(LAN), 원거리 통신망(WAN), 블루투스, 지그비, 근거리 자기장 통신(NFC), 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 모듈 중 두 개 이상은 단일 모듈에 조합될 수 있고, 모듈 중 임의의 하나는 두 개 이상의 유닛으로 나누어질 수 있다. 예를 들어, 처리 장치(104)는 위에 언급된 모듈과 연관된 정보 및/또는 데이터(예를 들어, 스캐닝 데이터, 이미지)를 저장하도록 구성된 저장 모듈(미도시)을 포함할 수 있다.Modules in the
도 5는 본 개시의 일부 구현예에 따라서 심볼 이미지에 심볼의 심볼 문자를 디코딩하기 위한 예시적인 프로세스를 도시하는 흐름도이다. 일부 구현예에서, 프로세스(500)는 도 1에 도시된 이미지 처리 시스템을(100) 상에 실행될 수 있다. 예를 들어, 프로세스(500)는 명령어의 형태로서 저장 매체(예를 들어, 네트워크 저장 장치(113) 또는 컴퓨팅 장치(220)의 저장소(227))에 저장될 수 있고 처리 장치(104)에 의해 호출되고 그리고/또는 실행될 수 있다. 아래에 제시된 프로세스(500)에 작동은 도시하도록 의도된다. 일부 구현예에서, 프로세스(500)는 기재되지 않은 하나 이상의 추가 작동으로, 그리고/또는 논의된 작동 중 하나 이상 없이 달성될 수 있다. 추가적으로, 도 5에 도시된 바와 같은 그리고 아래에 기재된 프로세스(500)의 작동에서 순서는 한정하도록 의도되지 않을 수 있다.5 is a flow diagram illustrating an example process for decoding symbol characters of a symbol into a symbol image, in accordance with some implementations of the present disclosure. In some implementations,
(510)에서, 처리 장치(104)(예를 들어, 프로세서(222), 획득 모듈(410))는 심볼 영역에 복수의 심볼 문자를 포함하는 심볼 이미지를 획득할 수 있다.At 510, the processing device 104 (eg, the
심볼 이미지는 심볼의 이미지일 수 있다. 일부 구현예에서, 심볼 이미지는 이미지 처리 시스템(100)의 이미지 소스(101)(예를 들어, 스캐너(102) 또는 미디어 서버(103))로부터 획득될 수 있다. 일부 구현예에서, 심볼 이미지에 심볼은 바코드일 수 있다. 예시적인 바코드는 코드 16K, 코드 49, PDF 417, 마이크로 PDF 417, 코드 원, 맥시코드, 퀵 리스폰스(QR) 코드, 데이터 매트릭스, 한신 코드, 그리드 매트릭스 등을 포함할 수 있다. 달리 명학히 언급되지 않으면, 도시를 위해 PDF 417 바코드를 참조하여 제한하도록 의도되지 않고 다음의 기재가 제공된다.A symbol image may be an image of a symbol. In some implementations, the symbol image may be obtained from image source 101 (eg,
PDF 417 바코드는 적층된 선형 바코드 포맷을 갖는 심볼일 수 있다. 단지 도시를 위해, 예시적인 PDF 417 바코드가 도 6 및 도 7에 도시된다. 도 6에 도시된 바와 같이, PDF 417 바코드는 시작 심볼 문자(또한 시작 패턴으로 언급됨) A, 심볼 영역 B, 및 끝 심볼 문자(정지 패턴으로도 언급됨) C를 포함할 수 있다. 시작 심볼 문자 A, 심볼 영역 B, 및 끝 심볼 문자 C는 심볼의 길이 방향을 따라 순차적으로 배열될 수 있다(예를 들어, 도 6에 도시된 바와 같음). 심볼 영역 B는 4개의 경계를 포함할 수 있다. 4개의 경계는 시작 경계(즉, 시작 심볼 문자 A로부터 심볼 영역 B를 분리하는 경계), 끝 경계(즉, 끝 심볼 문자 C로부터 심볼 영역 B를 분리하는 경계), 상부 경계, 및 하부 경계를 포함할 수 있다. PDF417 바코드는 심볼 영역 B에 복수의 심볼 문자를 포함할 수 있다. 심볼 영역에 복수의 심볼 문자의 각각은 4개의 바 및 4개의 공간의 조합에 의해 표현될 수 있다. 4개의 바 및 4개의 공간은 대안적으로 배열될 수 있다. 일부 구현예에서, 4개의 바 및 4개의 공간은 17개의 블록에 의해 구성될 수 있다. 4개의 바 및 4개의 공간의 각각은 심볼의 길이 방향을 따라 블록의 특정 개수 또는 카운트에 상응할 수 있다. 심볼의 길이 방향을 따라 바 및 공간의 각각에 상응하는 블록의 특정 개수 또는 카운트의 배열은 심볼 문자에 상응하는 코드워드 스트링으로서 표현될 수 있다. 심볼 문자에 인코딩된 데이터는 코드워드 스트링에 기반해서 디코딩될 수 있다.A PDF 417 barcode can be a symbol with a stacked linear barcode format. For illustrative purposes only, exemplary PDF 417 barcodes are shown in FIGS. 6 and 7 . As shown in FIG. 6, a PDF 417 barcode may include a start symbol character (also referred to as a start pattern) A, a symbol area B, and an end symbol character (also referred to as a stop pattern) C. The start symbol character A, the symbol area B, and the end symbol character C may be sequentially arranged along the length direction of the symbol (eg, as shown in FIG. 6). Symbol region B may include four boundaries. The four boundaries include a start boundary (i.e., the boundary separating symbol area B from starting symbol character A), an ending boundary (i.e., the boundary separating symbol area B from ending symbol character C), an upper boundary, and a lower boundary. can do. A PDF417 barcode may include a plurality of symbol characters in symbol area B. Each of a plurality of symbol characters in the symbol area may be represented by a combination of 4 bars and 4 spaces. The four bars and four spaces may alternatively be arranged. In some implementations, the 4 bars and 4 spaces can be made up of 17 blocks. Each of the four bars and four spaces may correspond to a specific number or count of blocks along the length of the symbol. A specific number of blocks or an arrangement of counts corresponding to each of the bars and spaces along the length direction of the symbol can be expressed as a codeword string corresponding to the symbol character. Data encoded in symbol characters can be decoded based on the codeword string.
단지 도시 목적을 위해, 예시적인 심볼 문자는 도 7에 제공된다. 도 7에 도시된 바와 같이, 심볼 문자(700)는 점선으로 된 박스에 있을 수 있다. 심볼 문자(700)는 4개의 바 및 4개의 공간을 포함할 수 있다. 4개의 바 및 4개의 공간은 각기 점선으로 된 박스에 검은색 부분 및 흰색 부분에 의해 표현될 수 있다.For illustrative purposes only, exemplary symbol characters are provided in FIG. 7 . As shown in FIG. 7, the
일부 구현예에서, 4개의 바 및 4개의 공간은 17개의 블록에 의해 구성될 수 있고, 이는 도 7에 도시된 바와 같이 심볼 문자(700) 위의 번호 1 내지 17로 라벨링된다. 17개의 블록은 심볼의 길이 방향(예를 들어, 도 7에 수평 방향)을 따라 동일한 폭을 가질 수 있다. 각각의 블록은 줄무늬의 형상을 가질 수 있다. 각각의 줄무늬의 길이 방향은 심볼의 길이 방향(예를 들어, 심볼의 폭 방향)에 수직일 수 있다.In some implementations, the 4 bars and 4 spaces can be made up of 17 blocks, labeled
심볼 문자(700)에 대해서, 제 1 바는 5개의 블록에 상응하고, 제 1 공간은 1개의 블록에 상응하고, 제 2 바는 1개의 블록에 상응하고, 제 2 공간은 1개의 블록에 상응하고, 제 3 바는 1개의 블록에 상응하고, 제 3 공간은 1개의 블록에 상응하고, 제 4 바는 2개의 블록에 상응하고, 제 4 공간은 5개의 블록에 상응한다. 도시적으로, 4개의 바 및 공간의 각각의 폭은 도 7에 상응하는 바 또는 공간 아래에 라벨링될 수 있다. 본 경우에, 바 및 공간에 의해 표현된 심볼 문자(700)는 코드워드 스트링 51111125에 의해 표현될 수 있다. 심볼 문자(700)에 인코딩된 데이터(예를 들어, 숫자, 텍스트 등)는 코드워드 스트링 51111125에 기반해서 디코딩될 수 있다.For the
심볼 이미지에 각각의 블록은 심볼 이미지의 하나 이상의 픽셀에 상응할 수 있다. 단지 본 개시의 더 나은 이해를 위해, 각각의 블록은 심볼 이미지에서 1×4 픽셀(즉, 도 9에 도시된 바와 같이 행에 1개의 픽셀 및 열에 4개의 픽셀)에 의해 표현될 수 있다. 행의 방향(행 방향으로도 언급됨)은 심볼의 길이 방향과 평행할 수 있다. 열의 방향(열 방향으로도 언급됨)은 심볼의 폭 방향과 평행할 수 있다. 이는 도시 목적을 위한 것이고 제한하도록 의도되지 않음이 언급되어야만 한다. 블록은 1×3 픽셀(즉, 행에 1개의 픽셀 및 열에 3개의 픽셀), 2×7 픽셀(즉, 행에 2개의 픽셀 및 열에 7개의 픽셀) 등과 같은 픽셀의 임의의 개수 또는 카운트에 상응할 수 있다. Each block in the symbol image may correspond to one or more pixels of the symbol image. Just for a better understanding of the present disclosure, each block may be represented by 1×4 pixels in a symbol image (ie, 1 pixel in a row and 4 pixels in a column as shown in FIG. 9 ). The direction of a row (also referred to as a row direction) may be parallel to the length direction of a symbol. The direction of a column (also referred to as a column direction) may be parallel to the width direction of a symbol. It should be mentioned that this is for illustrative purposes and is not intended to be limiting. A block corresponds to any number or count of pixels, such as 1x3 pixels (i.e. 1 pixel per row and 3 pixels per column), 2x7 pixels (i.e. 2 pixels per row and 7 pixels per column), etc. can do.
PDF 417 바코드는 제 1 콰이어트 존 및 제 2 콰이어트 존을 더 포함할 수 있다(도면에 미도시). 제 1 콰이어트 존 및 제 2 콰이어트 존은 길이 방향을 따라 심볼의 양 측면에 위치될 수 있다. 제 1 콰이어트 존 및/또는 제 2 콰이어트 존은 미리설정된 폭을 갖는 공간(즉, 흰색 부분)일 수 있다.The PDF 417 barcode may further include a first quiet zone and a second quiet zone (not shown). The first quiet zone and the second quiet zone may be located on both sides of the symbol along the length direction. The first quiet zone and/or the second quiet zone may be a space (ie, a white area) having a preset width.
(520)에서, 처리 장치(104)(예를 들어, 프로세서(222), 행 라인 결정 모듈(420))는 심볼의 길이 방향을 따라 복수의 행 라인을 결정할 수 있다.At 520, processing unit 104 (eg,
일부 구현예에서, 심볼 이미지를 획득할 시에, 처리 장치(104)는 포지셔닝 박스를 사용하여 심볼의 길이 방향을 결정할 수 있다. 일부 구현예에서, 포지셔닝 박스는 직사각형 박스일 수 있다. 일부 구현예에서, 처리 장치(104)는 심볼의 에지를 식별할 수 있다. 심볼의 에지는 심볼 이미지에 픽셀에 기반해서 식별될 수 있다. 예를 들어, 처리 장치(104)는 심볼 이미지에 모든 픽셀의 그레이 값을 획득할 수 있다. 심볼에서 시작 심볼 문자, 끝 심볼 문자, 및 복수의 심볼 문자의 바의 색상은 검은색이기 때문에, 바에 상응하는 픽셀의 그레이 값은 상대적으로 작을 수 있다(예를 들어, 0). 처리 장치(104)는 픽셀의 그레이 값에 기반해서 심볼의 에지를 식별할 수 있다. 처리 장치(104)는 심볼의 식별된 에지에 기반해서 크기, 위치, 및/또는 포지셔닝 박스의 배향을 조절할 수 있다. 포지셔닝 박스의 배향은 포지셔닝 박스의 길이 방향과 평행할 수 있다. 일부 구현예에서, 심볼의 에지가 포지셔닝 박스의 에지와 일치하거나 실질적으로 일치할 때까지, 처리 장치(104)는 크기, 위치, 및/또는 포지셔닝 박스의 배향을 동적으로 조절할 수 있다. 포지셔닝 박스의 배향은 심볼의 길이 방향으로서 결정될 수 있다. In some implementations, upon obtaining a symbol image, processing
심볼의 길이 방향이 결정된 후에, 처리 장치(104)는 복수의 행 라인을 결정할 수 있다. 일부 구현예에서, 포지셔닝 박스에 픽셀은 제 1 복수의 행 및 제 2 복수의 열에 있을 수 있다. 제 1 복수의 행의 각각의 행 방향은 심볼의 길이 방향과 평행할 수 있다. 제 2 복수의 열의 각각의 열 방향은 심볼의 길이 방향에 수직일 수 있다. 일부 구현예에서, 복수의 행 라인의 각각은 포지셔닝 박스에 동일한 행에 픽셀을 연결함으로써 결정될 수 있다. 대안적으로, 다중 스캔 라인은 결정될 수 있다. 일부 구현예에서, 다중 스캔 라인은 심볼의 길이 방향과 평행할 수 있다. 각각의 스캔 라인은 포지셔닝 박스에 동일한 행에 픽셀을 횡단할 수 있다. 다중 스캔 라인은 행 라인으로서 결정될 수 있다. 일부 구현예에서, 복수의 행 라인 중 적어도 하나는 직선일 수 있다. 일부 구현예에서, 복수의 행 라인 중 적어도 하나는 곡선일 수 있다. 복수의 행 라인 중 각각 두 개의 이웃하는 행 라인의 각각은 동일한 거리 또는 다른 거리를 가질 수 있다.After the length direction of the symbol is determined, processing
단지 도시 목적을 위해, 심볼 이미지에서 예시적인 행 라인은 도 8에 도시될 수 있다. 심볼 이미지(800)는 심볼(810)을 포함할 수 있다. 심볼 이미지(800)에 픽셀은 8개의 행에 있을 수 있다. 따라서, 8개의 행 라인은 동일한 행에 픽셀을 연결함으로써 결정될 수 있다. 도 8에 도시된 바와 같이, 8개의 행 라인(L1-L8)이 결정될 수 있다. L1 내지 L8은 심볼(810)의 다른 행에 픽셀을 횡단할 수 있다.For illustrative purposes only, an exemplary row line in a symbol image may be shown in FIG. 8 .
(530)에서, 처리 장치(104)(예를 들어, 프로세서(222), 문자 영역 결정 모듈(430))는 복수의 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계를 결정할 수 있다.At 530, processing unit 104 (e.g.,
PDF 417 바코드에 관해서, 심볼 영역에서 복수의 심볼 문자는 적층된 배열에 있을 수 있다. 예를 들어, 복수의 심볼 문자는 심볼 영역에 다중 행 및 열에 배열될 수 있다. 열 경계는 심볼 문자의 두 개의 인접한 열 사이에 경계를 언급할 수 있다.Regarding the PDF 417 barcode, multiple symbol characters in the symbol area may be in a stacked arrangement. For example, a plurality of symbol characters may be arranged in multiple rows and columns in a symbol area. A column boundary may refer to a boundary between two adjacent columns of symbol characters.
처리 장치(104)는 복수의 심볼 문자 사이에 복수의 열 경계를 결정할 수 있다. 복수의 열 경계의 각각은 복수의 심볼 문자의 심볼 문자의 두 개의 인접한 열에 상응할 수 있다. 일부 구현예에서, 복수의 열 경계는 복수의 행 라인에 기반해서 결정될 수 있다. 일부 구현예에서, 복수의 열 경계는 복수의 행 라인으로부터 복수의 심볼 문자의 두 개의 인접한 열에 상응하는 열 경계 상에 픽셀을 식별함으로써 결정될 수 있다.The
일부 구현예에서, 처리 장치(104)는 복수의 심볼 문자와 연관된 참조 심볼 문자의 폭을 결정할 수 있다. 참조 심볼 문자는 심볼에 특정 심볼 문자를 언급할 수 있다. 참조 심볼 문자는 심볼 영역에 심볼 문자의 폭을 결정하도록 사용될 수 있다. 일부 구현예에서, 참조 심볼 문자는 시작 심볼 문자(예를 들어, 도 6에 도시된 바와 같이 시작 심볼 문자 A) 또는 끝 심볼 문자(예를 들어, 도 6에 도시된 바와 같이 끝 심볼 문자 C)일 수 있다. PDF 417 바코드에 관해서, 심볼 영역에서 복수의 심볼 문자는 동일한 폭을 가질 수 있다. 시작 심볼 문자의 폭은 심볼 영역에 심볼 문자의 폭과 동일할 수 있다. 끝 심볼 문자의 폭은 심볼 영역에 심볼 문자의 폭에 비례할 수 있다.In some implementations, processing
일부 구현예에서, 처리 장치(104)는 심볼 이미지로부터 시작 심볼 문자 및 끝 심볼 문자를 식별할 수 있다. 시작 심볼 문자 및 끝 심볼 문자는 심볼 영역으로부터일 수 있다. 시작 심볼 문자는 심볼의 행 방향을 따라 시작 에지 및 끝 에지를 포함할 수 있다. PDF 417 바코드에 대해서, 시작 심볼 문자의 끝 에지는 심볼 영역의 시작 경계와 일치할 수 있다. 처리 장치(104)는 시작 심볼 문자의 끝 에지를 결정함으로써 심볼 영역의 시작 경계를 결정할 수 있다. 끝 심볼 문자는 또한 심볼의 행 방향을 따라 시작 에지 및 끝 에지를 포함할 수 있다. 끝 심볼 문자의 시작 에지는 심볼 영역의 끝 경계와 일치할 수 있다. 처리 장치(104)는 끝 심볼 문자의 시작 에지를 결정함으로써 심볼 영역의 끝 경계를 결정할 수 있다. 복수의 열 경계는 심볼 영역의 시작 경계와 끝 경계 사이에 결정될 수 있다.In some implementations, processing
일부 구현예에서, 처리 장치(104)는 참조 심볼 문자의 폭에 기반해서 참조 폭 범위를 결정할 수 있다. 이론적으로, PDF 417 바코드에 관해서, 시작 심볼 문자의 폭은 심볼 영역에 각각의 심볼 문자의 폭과 동일할 수 있다. 끝 심볼 문자의 폭은 심볼 영역에 각각의 심볼 문자의 폭에 비례할 수 있다. 그러나, 심볼 문자의 폭은 다양한 인자, 예를 들어, 심볼 이미지의 왜곡으로 인해 실제 위치에서 변할 수 있다. 따라서, 처리 장치(104)는 고려된 다양한 인자를 갖는 참조 폭 범위를 결정할 수 있다. 참조 폭 범위는 복수의 문자의 심볼 문자의 폭이 변할 수 있는 범위일 수 있다. 일부 구현예에서, 참조 폭 범위는 증분(예를 들어, 0.2 밀리미터, 0.5 밀리미터, 1 밀리미터, 1개의 픽셀, 2개의 픽셀)에 의해 참조 심볼 문자의 폭을 증가시키고 그리고/또는 감량(예를 들어, 0.2 밀리미터, 0.5 밀리미터, 1 밀리미터, 1개의 픽셀, 2개의 픽셀)에 의해 참조 심볼 문자의 폭을 감소시킴으로써 결정될 수 있다. 증분 및/또는 감량은 심볼 문자에 상응하는 오류로서 규정될 수 있다. 일부 구현예에서, 참조 폭 범위는 다른 명도 조건, 다른 이미지 해상도, 다른 이미지 품질(예를 들어, 잡음 레벨) 등과 같은 다른 상황 하에 조절가능할 수 있다.In some implementations, the
처리 장치(104)는 인접한 심볼 문자와 참조 폭 범위 사이에 경계 특성에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계를 결정할 수 있다. PDF 417 바코드에 대해서, 현재의 심볼 문자의 제 4 공간이 심볼의 행 방향을 따라 인접한 심볼 문자의 제 1 바에 연속적일 수 있다. 행 방향에 두 개의 인접한 심볼 문자 사이에 열 경계는 현재의 심볼 문자의 제 4 공간에 마지막 블록의 색상 및 인접한 심볼 문자의 제 1 바에 제 1 블록의 색상이 행 방향을 따라 흰색에서 검은색으로 변할 수 있는 특성(열 경계 특성으로도 언급됨)을 가질 수 있다. 따라서, 블록의 픽셀의 그레이 값은 예를 들어, 행 방향을 따라 255로부터 0으로 감소할 수 있다. 복수의 열 경계의 결정에 관한 더 많은 기재는 본 개시에 다른 곳에서, 예를 들어, 도 12 및 그의 기재에서 발견될 수 있다.The
(540)에서, 처리 장치(104)(예를 들어, 프로세서(222), 문자 영역 결정 모듈(430))는 복수의 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 행 경계를 결정할 수 있다.At 540, processing unit 104 (e.g.,
복수의 열 경계의 각각에 대해, 처리 장치(104)는 복수의 행 라인과 열 경계의 복수의 교차점(예를 들어, 픽셀)을 결정할 수 있다. 처리 장치(104)는 상향 트래버스를 수행할 수 있고 복수의 교차점 가운데 상부 교차점을 식별할 수 있다. 상향 트래버스는 열 경계를 따라 위로 하나하나씩 교차점을 횡단하기 위한 작동을 언급할 수 있다. 열 경계에 따른 상부 교차점 위의 픽셀(상부 픽셀로도 언급됨) 및 동일한 행에서 행 방향을 따른 상부 픽셀에 뒤이은 픽셀(상부 픽셀의 뒤이은 픽셀로도 언급됨)이 결정될 수 있다. 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀은 열 경계의 다른 측면에 위치될 수 있다.For each of the plurality of column boundaries, processing
PDF 417 바코드에 있어서, 심볼 영역의 상부 경계는, 상부 픽셀 및 행 방향을 따른 상부 픽셀에 뒤이은 픽셀이 열 경계 특성을 충족하지 않고, 열 경계를 따른 상부 픽셀 아래의 참조 픽셀(예를 들어, 교차점) 및 행 방향을 따른 참조 픽셀에 뒤이은 픽셀이 열 경계 특성을 충족하는 특성(상부 경계 특성으로도 언급됨)을 가질 수 있다. 참조 픽셀 및 참조 지점에 뒤이은 픽셀은 심볼 영역의 상부 경계 상에 있을 수 있다.In a PDF 417 barcode, the upper boundary of the symbol region is such that the upper pixel and the pixel following the upper pixel along the row direction do not satisfy the column boundary characteristic, and the reference pixel below the upper pixel along the column boundary (e.g., intersection) and pixels following the reference pixel along the row direction may have characteristics that satisfy the column boundary characteristics (also referred to as upper boundary characteristics). The reference pixel and the pixels following the reference point may be on the upper boundary of the symbol region.
처리 장치(104)는 상부 교차점 및 상부 교차점의 뒤이은 픽셀, 및 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하는지 여부를 결정할 수 있다(즉, 상부 픽셀의 색상 및 상부 픽셀의 뒤이은 픽셀의 색상은 검은색이고, 두 개의 픽셀의 색상은 행 방향을 따라 흰색에서 검은색으로 변할 수 있다). 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하지 않고 상부 교차점 및 행 방향을 따른 상부 교차점에 뒤이은 픽셀이 열 경계 특성을 충족한다면(상부 픽셀 및 상부 교차점이 상부 경계 특성을 충족하는 것으로도 언급됨), 상부 교차점 및 상부 픽셀의 뒤이은 교차점이 심볼 영역의 상부 경계 상에 있을 수 있음을 나타낼 수 있다.
일부 구현예에서, RANSAN 알고리즘은 상부 픽셀 및 복수의 열 경계의 각각에 상응하는 상부 픽셀의 뒤이은 픽셀에 기반해서 심볼 영역의 상부 경계를 결정하도록 사용될 수 있다.In some implementations, a RANSAN algorithm can be used to determine the upper boundary of the symbol region based on the upper pixel and the pixels following the upper pixel corresponding to each of the plurality of column boundaries.
유사하게, 복수의 열 경계의 각각에 대해, 처리 장치(104)는 하향 트래버스를 수행할 수 있고 복수의 교차점 가운데 하부 교차점을 식별할 수 있다. 하향 트래버스는 열 경계를 따라 아래로 하나하나씩 교차점을 횡단하기 위한 작동을 언급할 수 있다. 열 경계에 따른 하부 교차점 아래의 픽셀(하부 픽셀로도 언급됨) 및 동일한 행에서 행 방향을 따른 하부 픽셀에 뒤이은 픽셀(하부 픽셀의 뒤이은 픽셀로도 언급됨)이 결정될 수 있다. 하부 픽셀 및 하부 픽셀의 뒤이은 픽셀은 열 경계의 다른 측면에 위치될 수 있다.Similarly, for each of the plurality of thermal boundaries,
PDF 417 바코드에 있어서, 심볼 영역의 하부 경계는 하부 픽셀 및 행 방향을 따른 하부 픽셀에 뒤이은 픽셀이 열 경계 특성을 충족하지 않고, 열 경계를 따른 하부 픽셀 위의 참조 픽셀(예를 들어, 교차점) 및 행 방향을 따른 참조 픽셀에 뒤이은 픽셀이 열 경계 특성을 충족하는 특성(하부 경계 특성으로도 언급됨)을 가질 수 있다. 참조 픽셀 및 참조 지점에 뒤이은 픽셀은 심볼 영역의 하부 경계 상에 있을 수 있다.For PDF 417 barcodes, the lower boundary of the symbol region is such that the lower pixel and the pixel following the lower pixel along the row direction do not satisfy the column boundary characteristics, and the reference pixel above the lower pixel along the column boundary (e.g., the intersection point ) and a pixel following the reference pixel along the row direction may have a property (also referred to as a lower border property) that satisfies the column boundary property. The reference pixel and the pixels following the reference point may be on the lower boundary of the symbol region.
처리 장치(104)는 하부 교차점 및 하부 교차점의 뒤이은 픽셀, 및 하부 픽셀 및 하부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하는지 여부를 결정할 수 있다. 하부 픽셀 및 하부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하지 않고 하부 교차점 및 행 방향을 따른 하부 교차점에 뒤이은 픽셀이 열 경계 특성을 충족한다면(하부 픽셀 및 하부 교차점이 하부 경계 특성을 충족하는 것으로도 언급됨), 하부 교차점 및 하부 교차점의 뒤이은 픽셀은 심볼 영역의 하부 경계 상에 있을 수 있음을 나타낼 수 있다.The
일부 구현예에서, RANSAN 알고리즘은 하부 픽셀 및 복수의 열 경계의 각각에 상응하는 하부 픽셀의 뒤이은 픽셀에 기반해서 심볼 영역의 하부 경계를 결정하도록 사용될 수 있다.In some implementations, a RANSAN algorithm can be used to determine the lower boundary of the symbol region based on the lower pixel and the pixels that follow the lower pixel corresponding to each of the plurality of column boundaries.
심볼 영역의 상부 경계 및 하부 경계가 결정된 후에, 심볼 영역의 상부 경계와 하부 경계 사이의 복수의 행 경계가 결정될 수 있다. 여기 사용된 바와 같은, 열 경계는 심볼 문자의 두 개의 인접한 행 사이의 경계를 언급할 수 있다.After the upper and lower boundaries of the symbol region are determined, a plurality of row boundaries between the upper and lower boundaries of the symbol region may be determined. As used herein, a column boundary may refer to a boundary between two adjacent rows of symbol characters.
처리 장치(104)는 복수의 심볼 문자 사이에 복수의 행 경계를 결정할 수 있다. 복수의 행 경계의 각각은 복수의 심볼 문자의 심볼 문자의 두 개의 인접한 행에 상응할 수 있다. 일부 구현예에서, 복수의 행 경계는 복수의 행 라인에 기반해서 결정될 수 있다. 일부 구현예에서, 복수의 행 경계는 인접한 심볼 문자 사이에 경계 특성에 기반해서 복수의 행 라인으로부터 복수의 행 경계를 특정함으로써 결정될 수 있다.The
일부 구현예에서, 열 방향에서 두 개의 인접한 심볼 문자 사이의 바 및 공간의 폭은 다를 수 있다. 따라서, 열 방향에서 두 개의 인접한 심볼 문자 사이의 행 경계는 행 경계 상의 모든 픽셀의 색상이 행 경계의 제 1 인접한 행 라인 상의 상응하는 픽셀의 색상과 동일하고, 행 경계 상의 적어도 하나의 픽셀의 색상이 행 경계의 제 2 인접한 행 라인 상의 상응하는 픽셀의 색상과 다를 수 있는 특성(행 경계 특성으로도 언급됨)을 가질 수 있다. 일부 구현예에서, 제 1 인접한 행 라인은 행 경계 위에 있을 수 있고 제 2 인접한 행 라인은 행 경계 아래에 있을 수 있다. 대안적으로, 제 1 인접한 행 라인은 행 경계 아래에 있을 수 있고 제 2 인접한 행 라인은 행 경계 위에 있을 수 있다. 본 경우에, 행 경계 상의 모든 픽셀의 그레이 값은 행 경계의 제 1 인접한 행 라인 상의 상응하는 픽셀의 그레이 값과 같거나 그에 근사할 수 있고, 행 경계 상의 적어도 하나의 픽셀의 그레이 값은 행 경계의 제 2 인접한 행 라인 상의 상응하는 픽셀의 그레이 값과 다를 수 있다.In some implementations, the widths of the bars and spaces between two adjacent symbol characters in the column direction may vary. Thus, for a row boundary between two adjacent symbol characters in the column direction, the color of all pixels on the row boundary is the same as the color of corresponding pixels on the first adjacent row line of the row boundary, and the color of at least one pixel on the row boundary This row boundary may have characteristics (also referred to as row boundary characteristics) that may differ from the color of the corresponding pixel on the second adjacent row line. In some implementations, a first adjacent row line can be above a row boundary and a second adjacent row line can be below a row boundary. Alternatively, the first adjacent row line may be below the row boundary and the second adjacent row line may be above the row boundary. In this case, the gray value of every pixel on the row boundary may be equal to or close to the gray value of a corresponding pixel on a first adjacent row line of the row boundary, and the gray value of at least one pixel on the row boundary is may be different from the gray value of the corresponding pixel on the second adjacent row line of .
도 10은 본 개시의 일부 구현예에 따른 두 개의 인접한 심볼 문자 사이에 예시적인 행 경계를 도시하는 개략적인 도해이다. 도 10에 도시된 바와 같이, 심볼 문자(P)는 41111144로서 표현될 수 있다. 심볼 문자(P)에 대해서, 각각이 동일한 행에서 픽셀을 연결하는 행 라인(L1 - L4)이 결정될 수 있다. 심볼 문자(Q)는 41111315로서 표현될 수 있다. 심볼 문자(Q)에 대해서, 각각이 동일한 행에서 픽셀을 연결하는 행 라인(L5 - L8)이 결정될 수 있다. 행 라인(L4)에 대해서, 행 라인(L3) 상의 모든 픽셀의 그레이 값은 행 라인(L4) 상의 상응하는 픽셀의 그레이 값과 같거나 그에 근사할 수 있다. 행 라인(L5) 상의 적어도 하나의 픽셀(예를 들어, 도 10에 도시된 바와 같이 직사각형 박스에 픽셀)의 그레이 값은 행 라인(L4) 상의 상응하는 픽셀의 그레이 값과 다를 수 있다. 행 라인(L4) 상의 픽셀은 행 경계 특성을 충족할 수 있다. 따라서, 행 라인(L4)은 심볼 문자(P)와 심볼 문자(Q) 사이에 행 경계로서 결정될 수 있다.10 is a schematic diagram illustrating an exemplary row boundary between two adjacent symbol characters, in accordance with some implementations of the present disclosure. As shown in FIG. 10, the symbol character P can be expressed as 41111144. For the symbol character P, row lines L1 - L4 can be determined, each connecting pixels in the same row. The symbol character (Q) can be expressed as 41111315. For the symbol letter Q, row lines L5 - L8 can be determined, each connecting pixels in the same row. For row line L4, the gray value of every pixel on row line L3 may be equal to or close to the gray value of the corresponding pixel on row line L4. A gray value of at least one pixel on the row line L5 (eg, a pixel in a rectangular box as shown in FIG. 10 ) may be different from a gray value of a corresponding pixel on the row line L4 . Pixels on row line L4 may satisfy row boundary characteristics. Thus, row line L4 can be determined as a row boundary between symbol character P and symbol character Q.
일부 구현예에서, 심볼 이미지에서 픽셀의 개수 또는 카운트는 상대적으로 클 수 있다(즉, 심볼 이미지는 고해상도일 수 있다(예를 들어, 7680×4320 픽셀)). 일부 구현예에서, 각각의 행 라인 상의 모든 픽셀을 횡단하는 대신에, 처리 장치(104)는 각각의 행 라인 상의 모든 픽셀로부터 각각의 행 라인 상의 픽셀의 특정 개수 또는 카운트를 샘플링할 수 있고, 각각의 행 라인 상의 샘플링된 픽셀에 기반해 복수의 심볼 문자 가운데 복수의 행 경계를 결정할 수 있다. 일부 구현예에서, 모든 복수의 행 라인을 횡단하는 대신에, 처리 장치(104)는 복수의 행 라인 상으로부터 행 라인의 특정 개수 또는 카운트를 샘플링할 수 있고, 샘플링된 행 라인에 기반해 복수의 심볼 문자 가운데 복수의 행 경계를 결정할 수 있다.In some implementations, the number or count of pixels in a symbol image can be relatively large (ie, the symbol image can be high resolution (eg, 7680×4320 pixels)). In some implementations, instead of traversing every pixel on each row line, processing
(550)에서, 처리 장치(104)(예를 들어, 프로세서(222), 문자 영역 결정 모듈(430))는 복수의 열 경계 및 복수의 행 경계에 기반해서 복수의 심볼 문자의 각각에 대해 심볼 문자에 상응하는 문자 영역을 결정할 수 있다. At 550, processing unit 104 (e.g.,
심볼 영역의 시작 경계, 끝 경계, 상부 경계, 및 하부 경계가 결정되기 때문에, 복수의 열 경계 및 복수의 행 경계는 심볼 영역을 복수의 문자 영역으로 나눌 수 있다. 복수의 문자 영역의 각각은 복수의 심볼 문자 중 하나에 상응할 수 있다.Since the start boundary, end boundary, upper boundary, and lower boundary of the symbol area are determined, a plurality of column boundaries and a plurality of row boundaries can divide the symbol area into a plurality of character areas. Each of the plurality of character areas may correspond to one of a plurality of symbol characters.
(560)에서, 처리 장치(104)(예를 들어, 프로세서(222), 디코딩 모듈(440))는 심볼 문자에 상응하는 문자 영역과 연관된 그레이 값에 기반해서 각각의 심볼 문자를 디코딩할 수 있다.At 560, processing unit 104 (e.g.,
각각의 문자 영역에 관해서는, 처리 장치(104)는 문자 영역을 복수의 블록으로 나눌 수 있다. 일부 구현예에서, 문자 영역은 행 방향을 따라 복수의 블록(예를 들어, 17개의 블록)으로 나누어질 수 있다. 처리 장치(104)는 복수의 블록의 각각의 글로벌 그레이 값을 결정할 수 있다. 복수의 블록의 각각은 하나 이상의 픽셀(예를 들어, 1×4 픽셀(즉, 행에서 1개의 픽셀 및 열에서 4개의 픽셀))을 포함할 수 있다. 블록의 하나 이상의 픽셀의 그레이 값이 획득될 수 있다. 블록의 글로벌 그레이 값은 블록의 하나 이상의 픽셀의 그레이 값의 전체 표현일 수 있다. 일부 구현예에서, 블록의 글로벌 그레이 값은 블록의 하나 이상의 픽셀의 그레이 값의 평균 값일 수 있다.As for each text area, the
일부 구현예에서, 처리 장치(104)는 복수의 블록의 글로벌 그레이 값에 기반해서 문자 영역에 상응하는 심볼 문자의 대조값을 결정할 수 있다. 일부 구현예에서, 처리 장치(104)는 문자 영역에 복수의 블록으로부터 제 1 유형의 블록(예를 들어, 심볼 문자의 공간에 속하는 블록) 및 제 2 유형의 블록(예를 들어, 심볼 문자의 바에 속하는 블록)을 특정할 수 있다. 심볼 문자의 대조값은 적어도 제 1 유형의 블록의 글로벌 그레이 값 및 제 2 유형의 블록의 글로벌 그레이 값에 기반해 결정될 수 있다.In some implementations, the
문자 영역에 상응하는 심볼 문자의 대조값이 결정된 후에, 처리 장치(104)는 대조값에 기반해서 심볼 문자에 상응하는 코드워드를 결정할 수 있다. 일부 구현예에서, 처리 장치(104)는 복수의 미리설정된 코드워드(예를 들어, 2787개의 코드워드)를 획득할 수 있다. 복수의 코드워드의 각각은 미리결정된 코드워드 스트링에 상응할 수 있다. 복수의 미리설정된 코드워드의 각각의 참조 대조값은 상응하는 미리결정된 코드워드 스트링에 기반해서 결정될 수 있다. 그런 후에 처리 장치(104)는 각각의 코드워드의 참조 대조값 및 심볼 문자의 대조값에 기반해 복수의 미리설정된 코드워드의 각각과 심볼 문자 사이에 유사값을 결정한다. 처리 장치(104)는 유사값에 기반해서 심볼 문자에 상응하는 코드워드를 결정할 수 있다. 심볼 문자에 상응하는 코드워드는 심볼 이미지에 심볼에 상응하는 디코딩된 데이터(예를 들어, 숫자, 텍스트, 벡터 등)이거나 그를 포함할 수 있다. 심볼 문자의 디코딩에 관한 세부사항은 본 개시에 다른 곳에서, 예를 들어, 도 14 및 그의 기재에서 발견될 수 있다.After the comparison value of the symbol character corresponding to the character area is determined, the
일부 구현예에서, 디코딩된 데이터는 네트워크(112)를 통해 터미널(108)로 송신기(107)에 의해 전송될 수 있다. 터미널(108)은 네트워크(112)를 통해 심볼 이미지에 심볼에 상응하는 디코딩된 데이터를 수용하고 사용자에게 디코딩된 데이터를 표시하거나 지불, 신원 인증, 등록 등과 같은 추가 작동을 수행할 수 있다. In some implementations, the decoded data may be transmitted by
본 개시의 일부 구현예에 따라서, 처리 장치(104)는 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계 및 복수의 심볼 문자 가운데 복수의 행 경계, 열 경계 특성, 및 행 경계 특성을 결정할 수 있다. 심볼 영역은 복수의 심볼 문자 가운데 복수의 열 경계 및 복수의 심볼 문자 가운데 복수의 행 경계에 기반해서, 복수의 문자 영역으로 세그먼트화될 수 있다. 그런 후에 처리 장치(104)는 심볼 문자에 상응하는 문자 영역과 연관된 그레이 값에 기반해서 복수의 문자 영역의 각각에 상응하는 심볼 문자를 디코딩할 수 있다. 본 경우에, 복수의 심볼 문자의 각각의 위치는 더 정확하게 결정되고, 심볼 문자에 상응하는 코드워드는 복수의 미리설정된 코드워드에 기반해서 더 효율적으로 그리고 정확하게 결정될 수 있고, 이미지 왜곡, 고르지 않은 빛 등과 같은 인자에 의해 야기된 디코딩 프로세스에서 오류는 감소되거나 제거될 수 있고, 따라서 디코딩 프로세스의 효과성 및 정확성을 개선한다.According to some implementations of the present disclosure, the
위의 기재는 단지 도시의 목적을 위해 제공되고 본 개시의 범위를 한정하도록 의도되지 않음이 언급되어야만 한다. 해당 기술분야의 통상의 기술자에게, 다중 변형 및 수정이 본 개시의 교시 하에 이루어질 수 있다. 그러나, 그러한 변형 및 수정은 본 개시의 범위에서 벗어나지 않는다.It should be noted that the above description is provided for illustrative purposes only and is not intended to limit the scope of the present disclosure. For those skilled in the art, multiple variations and modifications may be made in light of the teachings of this disclosure. However, such variations and modifications do not depart from the scope of the present disclosure.
일부 구현예에서, 심볼 영역의 상부 경계 및 하부 경계은 다양한 방식으로 결정될 수 있다. 도 11에 도시된 바와 같이, 심볼(1110)을 포함하는 심볼 이미지(1100)가 제공된다. 복수의 스캔 라인(L1 - Ln)은 심볼 이미지(1100)에 결정될 수 있다. 복수의 스캔 라인(L1 - Ln) 중 각각 두 개의 이웃하는 스캔 라인은 동일한 거리 또는 다른 거리를 가질 수 있다. 복수의 스캔 라인(L1 - Ln)은 심볼(1110)의 길이 방향과 평행할 수 있다. 복수의 스캔 라인(L1 - Ln)의 각각은 심볼 영역 ABCD에 동일한 행에 픽셀을 횡단할 수 있다. 처리 장치(104)는 심볼 영역 ABCD에 복수의 심볼 문자 사이에 복수의 열 경계(S1 - Sn)를 결정할 수 있다. 일부 구현예에서, 복수의 열 경계(S1 - Sn)는 복수의 스캔 라인(L1 - Ln)에 기반해서 결정될 수 있다.In some implementations, the upper and lower boundaries of a symbol region may be determined in a variety of ways. As shown in FIG. 11 , a
복수의 열 경계(S1 - Sn)의 각각에 대해, 처리 장치(104)는 복수의 스캔 라인과 열 경계의 복수의 교차점을 결정할 수 있다. 처리 장치(104)는 복수의 교차점 가운데 최상부 위치에 교차점(상부 교차점으로도 언급됨)을 식별할 수 있다. 처리 장치(104)는 상부 지점이 식별될 때까지 최상부 위치에 교차점으로부터 상향 트래버스를 더 수행할 수 있다. 상향 트래버스는 열 경계를 따라 위로 하나하나씩 최상부 위치에 교차점 위의 위치를 횡단하기 위한 작동일 수 있다. PDF 417 바코드에 대해서, 심볼 영역 ABCD의 상부 경계(Lu)는 상부 지점 및 행 방향을 따른 상부 지점에 뒤이은 지점이 열 경계 특성을 충족하지 않고, 열 경계를 따른 상부 지점 아래의 참조 지점 및 행 방향을 따른 참조 지점에 뒤이은 지점이 열 경계 특성을 충족하는 특성(상부 경계 특성으로도 언급됨)을 가질 수 있다. 참조 지점 및 참조 지점에 뒤이은 지점은 심볼 영역(ABCD)의 상부 경계(Lu) 상에 있을 수 있다. 일부 구현예에서, 상부 지점, 참조 지점, 상부 지점에 뒤이은 지점, 및/또는 참조 지점에 뒤이은 지점은 최상부 위치에 교차점과 다를 수 있다. 일부 구현예에서, 상부 지점, 참조 지점, 상부 지점에 뒤이은 지점, 및/또는 참조 지점에 뒤이은 지점은 픽셀일 수 있다.For each of the plurality of thermal boundaries S 1 -S n , the
상부 경계 특성에 따라서, 상부 지점 및 행 방향을 따른 상부 지점에 뒤이은 지점(상부 지점의 뒤이은 지점으로도 언급됨)이 결정될 수 있다. 상부 지점 및 상부 지점의 뒤이은 지점은 열 경계의 다른 측면에 위치될 수 있다. 처리 장치(104)는 상부 지점 및 상부 지점의 뒤이은 지점, 및 상부 지점 아래에 참조 지점 및 참조 지점의 뒤이은 지점이 열 경계 특성을 충족하는지 여부를 결정할 수 있다. 상부 지점 및 상부 지점의 뒤이은 지점, 및 상부 지점 아래에 참조 지점 및 참조 지점의 뒤이은 지점이 열 경계 특성을 충족한다면(즉, 상부 지점 및 참조 지점이 상부 경계 특성을 충족한다면), 그것은 참조 지점 및 참조 지점의 뒤이은 지점이 심볼 영역 ABCD의 상부 경계(Lu) 상에 있을 수 있음을 지시할 수 있다. 일부 구현예에서, 심볼 영역 ABCD의 상부 경계(Lu)는 복수의 열 경계(S1 - Sn)에 상응하는 복수의 참조 지점에 기반해서 결정될 수 있다. 일부 구현예에서, RANSAN 알고리즘은 복수의 참조 지점에 기반해서 심볼 영역 ABCD의 상부 경계(Lu)를 결정하도록 사용될 수 있다. 유사하게, 심볼 영역 ABCD의 하부 경계(Ld)가 결정될 수 있다.Depending on the upper boundary property, the upper point and the point following the upper point along the row direction (also referred to as the point following the upper point) can be determined. The top point and the point following the top point may be located on the other side of the thermal boundary. The
도 12는 본 개시의 일부 구현예에 따라서 심볼의 심볼 영역에서 복수의 심볼 문자 가운데 복수의 열 경계를 결정하기 위한 예시적인 프로세스를 도시하는 흐름도이다. 일부 구현예에서, 프로세스(1200)는 도 1에 도시된 이미지 처리 시스템(100) 상에 실행될 수 있다. 예를 들어, 프로세스(1200)는 명령어의 형태로서 저장 매체(예를 들어, 네트워크 저장 장치(113) 또는 컴퓨팅 장치(220)의 저장소(227))에 저장될 수 있고 처리 장치(104)에 의해 호출되고 그리고/또는 실행될 수 있다. 아래에 제시된 프로세스(1200)에 작동은 도시하도록 의도된다. 일부 구현예에서, 프로세스(1200)는 기재되지 않은 하나 이상의 추가 작동으로, 그리고/또는 논의된 작동 중 하나 이상 없이 달성될 수 있다. 추가적으로, 도 12에 도시된 바와 같은 그리고 아래에 기재된 프로세스(1200)의 작동에서 순서는 한정하도록 의도되지 않을 수 있다.12 is a flow diagram illustrating an example process for determining a plurality of column boundaries among a plurality of symbol characters in a symbol region of a symbol, in accordance with some implementations of the present disclosure. In some implementations,
(1210)에서, 처리 장치(104)는 복수의 심볼 문자와 연관된 참조 심볼 문자의 폭을 결정할 수 있다.At 1210, processing
일부 구현예에서, 참조 심볼 문자는 시작 심볼 문자 또는 끝 심볼 문자일 수 있다. PDF 417 바코드에 관해서, 심볼 영역에서 복수의 심볼 문자는 동일한 폭을 가질 수 있다. 시작 심볼 문자의 폭은 심볼 영역에 심볼 문자의 폭과 동일할 수 있다. 끝 심볼 문자의 폭은 심볼 영역에 심볼 문자의 폭에 비례할 수 있다.In some implementations, the reference symbol character can be a start symbol character or an end symbol character. Regarding the PDF 417 barcode, multiple symbol characters in the symbol area may have the same width. The width of the start symbol character may be the same as the width of the symbol character in the symbol area. The width of the end symbol character may be proportional to the width of the symbol character in the symbol area.
일부 구현예에서, 처리 장치(104)는 참조 심볼 문자에 상응하는 코드워드 스트링을 획득할 수 있다. 참조 심볼 문자에 상응하는 코드워드 스트링 역시 미리결정된 코드워드 스트링으로 언급될 수 있다. 일부 구현예에서, 미리결정된 코드워드 스트링은 표준 코드워드 스트링일 수 있다. 일부 다른 구현예에서, 참조 심볼 문자에 상응하는 미리결정된 코드워드 스트링은 이미지 처리 시스템(100) 등의 디폴트 설정에 따라 사용자에 의해 결정될 수 있다.In some implementations, processing
일부 구현예에서, 처리 장치(104)는 미리결정된 코드워드 스트링에 기반해서 참조 심볼 문자의 바 및 공간의 배열 및/또는 폭을 결정할 수 있다. 일부 구현예에서, 처리 장치(104)는 참조 심볼 문자의 바 및 공간에 상응하는 픽셀의 적어도 부분의 그레이 값을 더 결정할 수 있다. 단지 예시를 통해서, 픽셀의 적어도 부분은 예를 들어, 참조 심볼 문자의 바 및 공간에 상응하는 적어도 하나의 행에 픽셀일 수 있다. 픽셀의 적어도 부분의 그레이 값은 미리결정된 그레이 값으로 언급될 수 있다.In some implementations, processing
미리결정된 그레이 값이 결정된 후에, 처리 장치(104)는 복수의 행 라인 중 적어도 하나 상에 픽셀의 그레이 값과 참조 심볼 문자에 상응하는 미리결정된 그레이 값을 비교할 수 있다. 비교에 기반해서, 처리 장치(104)는 적어도 하나의 행 라인 상의 적어도 하나의 라인 세그먼트를 식별할 수 있다. 적어도 하나의 라인 세그먼트의 픽셀의 그레이 값은 미리결정된 그레이 값에 맞출 수 있다. 처리 장치(104)는 참조 심볼 문자의 폭으로서 적어도 하나의 라인 세그먼트의 길이를 지시할 수 있다.After the predetermined gray value is determined, the
PDF 417 바코드에 대해, 시작 심볼 문자에 상응하는 미리결정된 코드워드 스트링(시작 코드워드 스트링으로도 언급됨)은 81111113일 수 있다. 단지 도시를 위해, 심볼 문자를 구성하는 17개의 블록의 각각은 심볼 이미지에 하나의 픽셀에 의해 표현된다. 픽셀은 도 13에 도시된 바와 같이, 검은색과 흰색 점에 의해 표현될 수 있다. 시작 심볼 문자(1310)는 제 1 바로서 8개의 픽셀, 제 1 공간으로서 1개의 픽셀, 제 2 바로서 1개의 픽셀, 제 2 공간으로서 1개의 픽셀, 제 3 바로서 1개의 픽셀, 제 3 공간으로서 1개의 픽셀, 제 4 바로서 1개의 픽셀, 및 제 4 공간으로서 3개의 픽셀을 포함할 수 있다. 시작 심볼 문자(1310)에 상응하는 픽셀의 그레이 값(즉, 미리결정된 그레이 값)이 결정될 수 있다. 처리 장치(104)는 미리결정된 그레이 값에 기반해서 행 라인(1320) 상의 적어도 하나의 라인 세그먼트(1030)를 식별할 수 있다. 적어도 하나의 라인 세그먼트(1330)의 픽셀의 그레이 값은 미리결정된 그레이 값에 맞출 수 있다. 처리 장치(104)는 시작 심볼 문자의 폭으로서 라인 세그먼트(1320)의 길이를 지시할 수 있다. 끝 심볼 문자에 상응하는 미리결정된 코드워드 스트링(끝 코드워드 스트링으로도 언급됨)은 711311121일 수 있다. 끝 심볼 문자의 폭은 유사하게 결정될 수 있다.For a PDF 417 barcode, the predetermined codeword string corresponding to the start symbol character (also referred to as the start codeword string) may be 81111113. For illustration only, each of the 17 blocks constituting a symbol character is represented by one pixel in the symbol image. A pixel may be represented by black and white dots, as shown in FIG. 13 . The
일부 구현예에서, 처리 장치(104)는 적어도 하나의 라인 세그먼트가 결정될 때 심볼 이미지로부터 참조 심볼 문자를 식별할 수 있다. 라인 세그먼트의 각각은 시작 지점 및 끝 지점을 포함할 수 있다. 두 개 이상의 라인 세그먼트의 시작 지점은 참조 심볼 문자의 시작 에지를 형성할 수 있다. 두 개 이상의 라인 세그먼트의 끝 지점은 참조 심볼 문자의 끝 에지를 형성할 수 있다.In some implementations, processing
구체적으로, 처리 장치(104)는 복수의 행 라인 상의 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트를 식별할 수 있다. 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점(시작 심볼 문자의 끝 지점으로도 언급됨)은 시작 심볼 문자의 끝 에지를 형성할 수 있다. 일부 구현예에서, 랜덤 샘플 콘센서스(RANSAN) 알고리즘은 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점에 기반해서 시작 심볼 문자의 끝 에지를 결정하도록 사용될 수 있다. 일부 구현예에서, 시작 심볼 문자의 끝 에지는 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점에 기반해서 RANSAN 알고리즘에 따라 라인을 맞춤으로써 결정될 수 있다. PDF 417 바코드에 대해서, 시작 심볼 문자는 심볼 영역으로부터일 수 있다. 시작 심볼 문자의 끝 에지는 심볼 영역의 시작 경계와 일치할 수 있다. 본 경우에, 심볼 영역의 시작 경계가 결정될 수 있다.Specifically, processing
유사하게, 처리 장치(104)는 복수의 행 라인 상의 끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트를 식별할 수 있다. 끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 시작 지점(끝 심볼 문자의 시작 지점으로도 언급됨)은 끝 심볼 문자의 시작 에지를 형성할 수 있다. 일부 구현예에서, RANSAN 알고리즘은 끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 시작 지점에 기반해서 끝 심볼 문자의 시작 에지를 결정하도록 사용될 수 있다. PDF 417 바코드에 대해서, 끝 심볼 문자는 심볼 영역으로부터일 수 있다. 시작 심볼 문자의 시작 에지는 심볼 영역의 끝 경계와 일치할 수 있다. 본 경우에, 심볼 영역의 끝 경계가 결정될 수 있다. 복수의 열 경계는 심볼 영역의 시작 경계와 끝 경계 사이에 결정될 수 있다.Similarly, processing
(1220)에서, 처리 장치(104)는 참조 심볼 문자의 폭에 기반해서 참조 폭 범위를 결정할 수 있다.At 1220, processing
일부 구현예에서, 참조 폭 범위는 증분(예를 들어, 0.2 밀리미터, 0.5 밀리미터, 1 밀리미터, 1개의 픽셀, 2개의 픽셀 등)에 의해 참조 심볼 문자의 폭을 증가시키고 그리고/또는 감량(예를 들어, 0.2 밀리미터, 0.5 밀리미터, 1 밀리미터, 1개의 픽셀, 2개의 픽셀 등)에 의해 참조 심볼 문자의 폭을 감소시킴으로써 결정될 수 있다. 증분 및/또는 감량은 심볼 문자에 상응하는 오류로서 규정될 수 있다. 일부 구현예에서, 복수의 심볼 문자의 각각은 동일한 오류에 상응할 수 있다. 일부 구현예에서, 복수의 심볼 문자 중 적어도 하나는 다른 오류에 상응할 수 있다.In some implementations, the reference width range increases and/or decreases the width of the reference symbol character by increments (eg, 0.2 millimeters, 0.5 millimeters, 1 millimeter, 1 pixel, 2 pixels, etc.) eg, 0.2 millimeters, 0.5 millimeters, 1 millimeter, 1 pixel, 2 pixels, etc.). Increments and/or decrements can be defined as errors corresponding to symbol characters. In some implementations, each of the plurality of symbol characters may correspond to the same error. In some implementations, at least one of the plurality of symbol characters may correspond to another error.
참조 심볼 문자가 시작 심볼 문자이면, 처리 장치(104)는 시작 심볼 문자의 폭 및 심볼 문자에 상응하는 오류에 기반해서 심볼 영역에 복수의 심볼 문자의 각각에 대해 참조 폭 범위를 결정할 수 있다. 참조 심볼 문자가 끝 심볼 문자이면, 처리 장치(104)는 끝 심볼 문자의 폭 , 폭 비율, 및 심볼 문자에 상응하는 오류에 기반해서 심볼 영역에 복수의 심볼 문자의 각각에 대해 참조 폭 범위를 결정할 수 있다. 폭 비율은 심볼 문자의 폭 대 끝 심볼 문자의 폭의 비율일 수 있다.If the reference symbol character is a start symbol character, the
도 9는 본 개시의 일부 구현예에 따른 PDF 417 바코드의 부분 확대도이다. 부분 확대도는 두 개의 심볼 문자 M 및 N을 포함할 수 있다. 참조 폭 범위는 시작 심볼 문자의 폭 및 오류에 기반해서 결정될 수 있다. 도 9에 도시된 바와 같이, 오류는 복수의 행 라인의 각각 상의 괄호(910)에 도시된 두 개의 픽셀의 증분 및 두 개의 픽셀의 감량에 의해 표현될 수 있다. 9 is a partially enlarged view of a PDF 417 barcode according to some implementations of the present disclosure. A loupe may contain two symbol letters M and N. The reference width range can be determined based on the start symbol character width and errors. As shown in Figure 9, the error can be represented by an increment of two pixels and a subtraction of two pixels shown in parentheses 910 on each of the plurality of row lines.
(1230)에서, 처리 장치(104)는 인접한 심볼 문자와 참조 폭 범위 사이에 경계 특성에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계를 결정할 수 있다.At 1230, the
도 9를 참조하여, 심볼 문자 M과 심볼 문자 N 사이에 열 경계 S2는 인접한 심볼 문자와 참조 폭 범위 사이에 열 경계 특성에 기반해서 결정된다. 심볼 문자 M의 마지막 블록(920)(열에 4개의 픽셀에 의해 표현됨)의 색상 및 심볼 문자 N의 제 1 블록(930)(열에 4개의 픽셀에 의해 표현됨)의 색상은 행 방향을 따라 흰색에서 검은색으로 변할 수 있다. 따라서, 블록(920, 930)의 픽셀의 그레이 값은 행 방향을 따라 감소할 수 있다(예를 들어, 255로부터 0으로).Referring to FIG. 9, a column boundary S2 between symbol character M and symbol character N is determined based on a column boundary characteristic between adjacent symbol characters and a reference width range. The color of the
일부 구현예에서, 두 개 이상의 복수의 행 라인에 대해, 처리 장치(104)는 인접한 심볼 문자와 참조 폭 범위 사이에 열 경계 특성을 충족하는 심볼 영역에 복수의 행 라인 중 적어도 두 개 상의 복수의 픽셀 또는 지점(예를 들어, 픽셀, 각각이 두 개의 연속적인 픽셀 사이에 있는 중점 등)을 식별할 수 있다. RANSAN 알고리즘은 복수의 지점에 기반해서 복수의 열 경계를 결정하도록 사용될 수 있다. RANSAN 알고리즘은 도시 목적을 위해 제공되고 제한하도록 의도되지 않음이 언급되어야만 한다. 곡선 맞춤을 위한 임의의 알고리즘 또는 모델은 복수의 심볼 문자 가운데 열 경계를 결정하도록 사용될 수 있다.In some implementations, for two or more plurality of row lines, processing
단지 도시 목적을 위해, 도 8을 참조하여, 심볼 방향을 따라 복수의 행 라인(L1-L8)은 심볼 이미지(800)의 왜곡으로 인해 곡선일 수 있다. 일부 구현예에서, 인접한 심볼 문자와 참조 폭 범위 사이의 열 경계 특성을 충족하는 복수의 행 라인(L1-L8) 상의 복수의 픽셀이 식별될 수 있다. 열 경계(S1-S5)는 복수의 식별된 픽셀 및 RANSAN 알고리즘에 기반해 형성될 수 있다.For illustrative purposes only, referring to FIG. 8 , the plurality of row lines L1 - L8 along the symbol direction may be curved due to distortion of the
도 14는 본 개시의 일부 구현예에 따라서 심볼 문자에 상응하는 문자 영역과 연관된 그레이 값에 기반해서 심볼 문자를 디코딩하기 위한 예시적인 프로세스를 도시하는 흐름도이다. 일부 구현예에서, 프로세스(1400)는 도 1에 도시된 이미지 처리 시스템을(100) 상에 실행될 수 있다. 예를 들어, 프로세스(1400)는 명령어의 형태로서 저장 매체(예를 들어, 네트워크 저장 장치(113) 또는 컴퓨팅 장치(200)의 저장소(227))에 저장될 수 있고 처리 장치(104)에 의해 호출되고 그리고/또는 실행될 수 있다. 아래에 제시된 프로세스(1400)에 작동은 도시하도록 의도된다. 일부 구현예에서, 프로세스(1400)는 기재되지 않은 하나 이상의 추가 작동으로, 그리고/또는 논의된 작동 중 하나 이상 없이 달성될 수 있다. 추가적으로, 도 14에 도시된 바와 같은 그리고 아래에 기재된 프로세스(1400)의 작동에서 순서는 한정하도록 의도되지 않을 수 있다. 일부 구현예에서, 도 5에 프로세스(500)의 작동(560)은 프로세스(1400)에 따라 수행될 수 있다.14 is a flow diagram illustrating an example process for decoding symbol characters based on gray values associated with character regions corresponding to symbol characters, in accordance with some implementations of the present disclosure. In some implementations,
(1410)에서, 처리 장치(104)는 행 방향을 따라서 심볼 문자에 상응하는 문자 영역을 복수의 블록으로 나눌 수 있다.In
일부 구현예에서, 처리 장치(104)는 행 방향을 따라서 심볼 문자에 상응하는 문자 영역을 블록의 미리설정된 개수 또는 카운트로 동일하게 나눌 수 있다. PDF 417 바코드에 대해서, 미리설정된 개수 또는 카운트는 17일 수 있다.In some implementations, processing
(1420)에서, 처리 장치(104)는 복수의 블록의 각각의 글로벌 그레이 값을 결정할 수 있다.At 1420, the
복수의 블록의 각각은 하나 이상의 픽셀을 포함할 수 있다. 단지 예시를 통해, 블록은 1×4 픽셀(즉, 행에서 1개의 픽셀 및 열에서 4개의 픽셀), 1×3 픽셀(즉, 행에서 1개의 픽셀 및 열에서 3개의 픽셀), 2×7 픽셀(즉, 행에서 2개의 픽셀 및 열에서 7개의 픽셀) 등에 의해 표현될 수 있다. 블록의 하나 이상의 픽셀의 그레이 값이 획득될 수 있다. 블록의 글로벌 그레이 값은 블록의 하나 이상의 픽셀의 그레이 값의 전체 표현일 수 있다. 일부 구현예에서, 블록의 글로벌 그레이 값은 블록의 하나 이상의 픽셀의 그레이 값의 평균 값일 수 있다. 평균값은 예를 들어, 산술 평균값, 조화 평균값, 2차 평균값 등일 수 있다. 일부 구현예에서, 블록의 특정 픽셀의 그레이 값은 블록의 글로벌 그레이 값으로서 결정될 수 있다. 일부 구현예에서, 특정 픽셀은 데이터 이미징 시스템(100)의 디폴트 설정 등에 따라서 사용자에 의해 특정될 수 있다. 일부 구현예에서, 특정 픽셀은 하나 이상의 픽셀로부터 무작위로 선택될 수 있다.Each of the plurality of blocks may include one or more pixels. By way of example only, a block may be 1x4 pixels (i.e. 1 pixel in a row and 4 pixels in a column), 1x3 pixels (i.e. 1 pixel in a row and 3 pixels in a column), 2x7 pixels pixels (i.e., 2 pixels in a row and 7 pixels in a column), and the like. A gray value of one or more pixels of a block may be obtained. A block's global gray value may be an overall representation of the gray values of one or more pixels of the block. In some implementations, a block's global gray value can be an average value of gray values of one or more pixels in the block. The average value may be, for example, an arithmetic average value, a harmonic average value, a secondary average value, and the like. In some implementations, the gray value of a particular pixel of a block can be determined as the block's global gray value. In some implementations, a particular pixel may be specified by a user according to default settings of the
(1430)에서, 처리 장치(104)는 복수의 블록의 글로벌 그레이 값에 기반해서 심볼 문자의 대조값을 결정할 수 있다.At 1430, the
일부 구현예에서, 처리 장치(104)는 문자 영역에서 복수의 블록으로부터 제 1 유형의 블록 및 제 2 유형의 블록을 식별할 수 있다. 일부 구현예에서, 제 1 유형의 블록은 심볼 문자의 공간에 속하는 블록을 언급할 수 있고, 제 2 유형의 블록은 심볼 문자의 바에 속하는 블록을 언급할 수 있다. 본 경우에, 제 1 유형의 블록은 흰색 색상에 있을 수 있고, 제 2 유형의 블록은 검은색 색상에 있을 수 있다. 대안적으로, 제 1 유형의 블록은 심볼 문자의 바에 속하는 블록을 언급할 수 있고, 제 2 유형의 블록은 심볼 문자의 공간에 속하는 블록을 언급할 수 있다.In some implementations, processing
일부 구현예에서, 처리 장치(104)는 복수의 블록의 글로벌 그레이 값에 기반해서 문자 영역에서 복수의 블록으로부터 제 1 유형의 블록 및 제 2 유형의 블록을 식별할 수 있다. 제 1 유형의 블록이 심볼 문자의 공간에 속하는 블록을 포함하고, 제 2 유형의 블록이 심볼 문자의 바에 속하는 블록을 포함하는 경우에, 제 1 유형의 블록은 더 큰 글로벌 그레이 값(예를 들어, 255, 240, 230, 220 등)을 가질 수 있고, 제 2 유형의 블록은 더 작은 글로벌 그레이 값(예를 들어, 0, 10, 20, 30 등)을 가질 수 있다.In some implementations, the
일부 구현예에서, 심볼 문자의 대조값은 적어도 제 1 유형의 블록의 글로벌 그레이 값 및 제 2 유형의 블록의 글로벌 그레이 값에 기반해 결정될 수 있다. 예를 들어, 처리 장치(104)는 문자 영역에 제 1 유형의 블록의 그레이 값 대 제 1 유형의 블록의 카운트의 제 1 비율을 결정할 수 있다. 유사하게, 처리 장치(104)는 문자 영역에 제 2 유형의 블록의 그레이 값 대 제 2 유형의 블록의 카운트의 제 2 비율을 결정할 수 있다. 심볼 문자의 대조값은 제 1 비율과 제 2 비율 사이의 차이 값에 기반해서 결정될 수 있다. 단지 예시를 통해서, 심볼 문자의 대조값은 수학식(1)에 따라 결정될 수 있다:In some implementations, the contrast value of the symbol character can be determined based on at least the global gray value of the first type of block and the global gray value of the second type of block. For example, the
여기서, 대조(contrast)는 심볼 문자의 대조값을 나타내고, 공간 그레이 합계(spaceGraySum)는 심볼 문자의 공간에 블록의 글로벌 그레이 값의 합계를 나타내고, 공간 개수(spaceNum)는 공간에서 블록의 개수 또는 카운트를 나타내고, 바 그레이 개수(barGrayNum)는 심볼 문자의 바에 블록의 글로벌 그레이 값의 합계를 나타내고, 바 개수(barNum)는 바에서 블록의 개수 또는 카운트를 나타낸다. Here, contrast represents the contrast value of the symbol character, space gray sum ( spaceGraySum ) represents the sum of the global gray values of blocks in the space of the symbol character, and space number ( spaceNum ) represents the number or count of blocks in space , the bar gray number ( barGrayNum ) represents the sum of the global gray values of the bar block of the symbol character, and the bar number ( barNum ) represents the number or count of blocks in the bar.
(1440)에서, 처리 장치(104)는 대조값에 기반해서 심볼 문자에 상응하는 코드워드를 결정할 수 있다.At 1440, processing
일부 구현예에서, 처리 장치(104)는 복수의 미리설정된 코드워드(예를 들어, 2787개의 코드워드)를 획득할 수 있다. 복수의 미리설정된 코드워드는 예를 들어, 이미지 처리 시스템(100)의 저장 장치(예를 들어, 네트워크 저장 장치(113), 또는 컴퓨팅 장치(228)의 저장소(227) 등) 또는 외부 장치(예를 들어, 클라우드 데이터베이스)로부터 획득될 수 있다. 일부 구현예에서, 복수의 미리설정된 코드워드는 수(예를 들어, 자연수)일 수 있다. 복수의 코드워드의 각각은 미리결정된 코드워드 스트링에 상응할 수 있다. 복수의 미리설정된 코드워드와 복수의 미리결정된 코드워드 스트링 사이의 상응 관계는 매트릭스, 벡터, 데이터 어레이, 표 등에 제공될 수 있다. 단지 도시 목적을 위해, 복수의 코드워드 및 상응하는 코드워드 스트링이 표 1에 제공된다.In some implementations, the
코드워드preset
code word
코드워드preset
code word
코드워드preset
code word
일부 구현예에서, 복수의 미리설정된 코드워드의 각각의 참조 대조값이 결정될 수 있다. 일부 구현예에서, 복수의 미리설정된 코드워드의 각각의 참조 대조값의 결정은 수학식(1)에 따를 수 있고, 이는 (1430)에 기재된 바와 같이 심볼 문자의 대조값의 결정과 유사하거나 동일하고 반복되지 않을 것이다. In some implementations, a reference collation value for each of a plurality of preset codewords may be determined. In some implementations, the determination of the reference contrast value of each of the plurality of preset codewords may be according to Equation (1), which is similar to or identical to the determination of the symbol character's contrast value, as described in 1430, and won't be repeated
일부 구현예에서, 복수의 미리설정된 코드워드의 각각과 심볼 문자 사이의 유사 값은 각각의 코드워드의 참조 대조값 및 심볼 문자의 대조값에 기반해서 결정될 수 있다. 처리 장치(104)는 유사값에 기반해서 심볼 문자에 상응하는 코드워드를 결정할 수 있다. 일부 구현예에서, 유사값은 (예를 들어, 오름차순 또는 내림 차순으로) 정렬될 수 있다. 처리 장치(104)는 결정된 유사값으로부터 가장 큰 유사값을 식별할 수 있다. 식별된 유사값에 상응하는 미리설정된 코드워드는 심볼 문자에 상응하는 코드워드로서 결정될 수 있다.In some implementations, a similarity value between each of the plurality of preset codewords and a symbol character may be determined based on a reference match value of each codeword and a match value of the symbol character. The
도 15는 본 개시의 일부 구현예에 따라서 심볼 이미지에 심볼의 심볼 문자를 디코딩하기 위한 예시적인 프로세스를 도시하는 흐름도이다. 일부 구현예에서, 프로세스(1500)는 도 1에 도시된 이미지 처리 시스템을(100) 상에 실행될 수 있다. 예를 들어, 프로세스(1500)는 명령어의 형태로서 저장 매체(예를 들어, 네트워크 저장 장치(113) 또는 컴퓨팅 장치(200)의 저장소(227))에 저장될 수 있고 처리 장치(104)에 의해 호출되고 그리고/또는 실행될 수 있다. 아래에 제시된 프로세스(1500)에 작동은 도시하도록 의도된다. 일부 구현예에서, 프로세스(1500)는 기재되지 않은 하나 이상의 추가 작동으로, 그리고/또는 논의된 작동 중 하나 이상 없이 달성될 수 있다. 추가적으로, 도 15에 도시된 바와 같은 그리고 아래에 기재된 프로세스(1500)의 작동에서 순서는 한정하도록 의도되지 않을 수 있다. 본 개시의 더 나은 이해를 위해, 심볼 문자를 디코딩하기 위한 프로세스(1500)는 도 16과 조합하여 기재되고, 이는 예시적인 PDF 417 바코드의 개략적인 도해이다.15 is a flow diagram illustrating an example process for decoding symbol characters of a symbol into a symbol image, in accordance with some implementations of the present disclosure. In some implementations,
(1505)에서, 처리 장치(104)는 심볼 영역에 복수의 심볼 문자를 포함하는 심볼의 심볼 이미지를 획득할 수 있다. 일부 구현예에서, 심볼 이미지(1600)는 이미지 처리 시스템(100)의 이미지 소스(101)로부터 획득될 수 있다. 도 15에 도시된 바와 같이, 심볼 이미지(1600)에서 PDF 417 바코드는 영역 EADF에 시작 심볼 문자, 심볼 영역 ABCD, 및 끝 심볼 문자 BGHC를 포함할 수 있다. PDF 417 바코드는 심볼 영역 ABCD에 복수의 심볼 문자를 포함할 수 있다.In
(1510)에서, 처리 장치(104)는 심볼의 길이 방향을 따라 복수의 행 라인을 결정할 수 있다.At 1510, the
일부 구현예에서, 복수의 스캔 라인은 포지셔닝 박스에 결정될 수 있다. 포지셔닝 박스는 PDF 417 바코드의 길이 방향(예를 들어, 도 16에 도시된 바와 같이 수평 방향)을 결정하도록 사용될 수 있다. 복수의 스캔 라인의 각각은 PDF 417 바코드의 길이 방향을 따라 동일한 행에서 픽셀을 횡단할 수 있다. 복수의 스캔 라인은 행 라인으로서 결정될 수 있다. 도 16에 도시된 바와 같이, 복수의 행 라인(P1-P19)이 결정될 수 있다. 복수의 행 라인(P1-P19)의 각각은 심볼 영역(1600)에 동일한 행에 픽셀을 횡단할 수 있다. 대안적으로, 복수의 행 라인(P1-P19)의 각각은 PDF 417 바코드의 길이 방향을 따라 심볼 이미지(1600)에 동일한 행에서 픽셀을 연결함으로써 결정될 수 있다.In some implementations, multiple scan lines can be determined in a positioning box. The positioning box can be used to determine the longitudinal direction (eg, horizontal direction as shown in FIG. 16) of the PDF 417 barcode. Each of the plurality of scan lines may cross pixels in the same row along the length direction of the PDF 417 barcode. A plurality of scan lines may be determined as row lines. As shown in FIG. 16 , a plurality of row lines P1 to P19 may be determined. Each of the plurality of row lines P1 - P19 may cross a pixel in the same row in the
(1515)에서, 처리 장치(104)는 심볼 영역의 시작 경계 및 끝 경계를 결정할 수 있다.At 1515, processing
일부 구현예에서, 처리 장치(104)는 시작 심볼 문자 및/또는 끝 심볼 문자의 바 및 공간의 배열 및/또는 폭을 결정할 수 있다. 처리 장치(104)는 시작 심볼 문자 및/또는 끝 심볼 문자의 바 및 공간에 상응하는 픽셀의 적어도 부분의 그레이 값(시작 심볼 문자 및/또는 끝 심볼 문자에 상응하는 미리결정된 그레이 값으로도 언급됨)을 더 결정할 수 있다. 시작 심볼 문자 및/또는 끝 심볼 문자에 상응하는 미리결정된 그레이 값은 복수의 행 라인 중 적어도 하나 상의 픽셀의 그레이 값과 비교될 수 있다. 비교에 기반해서, 처리 장치(104)는 시작 심볼 문자 및/또는 끝 심볼 문자에 상응하는 복수의 행 라인 중 적어도 하나 상의 적어도 하나의 라인 세그먼트를 식별할 수 있다.In some implementations, the
일부 구현예에서, 처리 장치(104)는 복수의 행 라인 상의 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트를 식별할 수 있다. 두 개 이상의 라인 세그먼트의 각각은 시작 지점 및 끝 지점을 포함할 수 있다. 도 16에 도시된 바와 같이, PDF 417 바코드의 시작 심볼 문자의 시작 지점은 라인 세그먼트 EF와 복수의 행 라인(P1-P19) 사이에 교차점일 수 있다. PDF 417 바코드의 시작 심볼 문자의 끝 지점은 라인 세그먼트 AD와 복수의 행 라인(P1-P19) 사이에 교차점일 수 있다.In some implementations, processing
시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 시작 지점은 시작 심볼 문자의 시작 에지를 형성할 수 있다. 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점은 시작 심볼 문자의 끝 에지를 형성할 수 있다. 일부 구현예에서, 랜덤 샘플 콘센서스(RANSAN) 알고리즘은 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점에 기반해서 시작 심볼 문자의 끝 에지를 결정하도록 사용될 수 있다. 일부 구현예에서, 시작 심볼 문자의 끝 에지는 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점에 기반해서 RANSAN 알고리즘에 따라 라인을 맞춤으로써 결정될 수 있다. PDF 417 바코드에 대해서, 시작 심볼 문자는 심볼 영역으로부터일 수 있다. 시작 심볼 문자의 끝 에지는 심볼 영역의 시작 경계와 일치할 수 있다. 본 경우에, 심볼 영역의 시작 경계가 결정될 수 있다. 도 16을 참조하여, 심볼 영역의 시작 경계는 A1일 수 있다.Start points of two or more line segments corresponding to the start symbol character may form the start edge of the start symbol character. End points of two or more line segments corresponding to the start symbol character may form the end edge of the start symbol character. In some implementations, a random sample consensus (RANSAN) algorithm can be used to determine the ending edge of the start symbol character based on the ending points of the two or more line segments corresponding to the start symbol character. In some implementations, the ending edge of the start symbol character can be determined by fitting lines according to the RANSAN algorithm based on the ending points of two or more line segments corresponding to the start symbol character. For PDF 417 barcodes, the starting symbol character can be from the symbol area. The end edge of the start symbol character may coincide with the start boundary of the symbol area. In this case, the starting boundary of the symbol region can be determined. Referring to FIG. 16, the start boundary of the symbol region may be A1.
유사하게, 처리 장치(104)는 복수의 행 라인 상의 끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트를 식별할 수 있다. 두 개 이상의 라인 세그먼트의 각각은 시작 지점 및 끝 지점을 포함할 수 있다. 도 16에 도시된 바와 같이, PDF 417 바코드의 끝 심볼 문자의 시작 지점은 라인 세그먼트 BC와 복수의 행 라인(P1-P19) 사이에 교차점일 수 있다. PDF 417 바코드의 끝 심볼 문자의 끝 지점은 라인 세그먼트 GH와 복수의 행 라인(P1-P19) 사이에 교차점일 수 있다. Similarly, processing
끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 시작 지점은 끝 심볼 문자의 시작 에지를 형성할 수 있다. 끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점은 끝 심볼 문자의 끝 에지를 형성할 수 있다. 일부 구현예에서, 랜덤 샘플 콘센서스(RANSAN) 알고리즘은 끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 시작 지점에 기반해서 끝 심볼 문자의 시작 에지를 결정하도록 사용될 수 있다. 일부 구현예에서, 끝 심볼 문자의 시작 에지는 끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 시작 지점에 기반해서 RANSAN 알고리즘에 따라 라인을 맞춤으로써 결정될 수 있다. PDF 417 바코드에 대해서, 끝 심볼 문자는 심볼 영역으로부터일 수 있다. 시작 심볼 문자의 시작 에지는 심볼 영역의 끝 경계와 일치할 수 있다. 본 경우에, 심볼 영역의 끝 경계가 결정될 수 있다. 도 16을 참조하여, 심볼 영역의 끝 경계는 A5일 수 있다.The starting points of two or more line segments corresponding to the ending symbol character may form the starting edge of the ending symbol character. The end points of two or more line segments corresponding to the end symbol character may form the end edge of the end symbol character. In some implementations, a random samples consensus (RANSAN) algorithm can be used to determine the starting edge of the ending symbol character based on the starting points of the two or more line segments corresponding to the ending symbol character. In some implementations, the starting edge of the ending symbol character can be determined by fitting lines according to the RANSAN algorithm based on the starting points of two or more line segments corresponding to the ending symbol character. For PDF 417 barcodes, the ending symbol character can be from the symbol area. The start edge of the start symbol character may coincide with the end boundary of the symbol area. In this case, the end boundary of the symbol region can be determined. Referring to FIG. 16, the end boundary of the symbol region may be A5.
(1520)에서, 처리 장치(104)는 복수의 행 라인에 기반해서, 심볼 영역의 시작 경계와 끝 경계 사이에 복수의 심볼 문자 가운데 복수의 열 경계를 결정할 수 있다.In
처리 장치(104)는 시작 심볼 문자에 상응하는 적어도 하나의 라인 세그먼트의 길이를 획득할 수 있다. 시작 심볼 문자에 상응하는 적어도 하나의 라인 세그먼트의 길이는 시작 심볼 문자의 폭으로서 지시될 수 있다. 예를 들어, 도 16을 참조하여, 행 라인(P1)과 라인 세그먼트(BC)의 교차점(O1)과 행 라인(P1)과 라인 세그먼트(AD)의 교차점(O2) 사이의 라인 세그먼트는 PDF 417 바코드(1600)의 시작 심볼 문자에 상응하는 라인 세그먼트일 수 있다. 라인 세그먼트(O1O2)의 길이는 시작 심볼 문자의 폭으로서 지시될 수 있다.The
처리 장치(104)는 인접한 심볼 문자와 참조 폭 범위 사이에 경계 특성에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계를 결정할 수 있다. 참조 폭 범위는 증분(예를 들어, 두 개의 픽셀) 및 감량(예를 들어, 두 개의 픽셀)으로서 규정된 범위일 수 있다.The
일부 구현예에서, 복수의 행 라인 중 두 개 이상에 대해, 처리 장치(104)는 인접한 심볼 문자와 참조 폭 범위 사이에 열 경계 특성을 충족하는 심볼 영역에 복수의 행 라인(예를 들어, P1-P19) 중 적어도 두 개 상에 복수의 픽셀 또는 지점(예를 들어, 픽셀, 각각이 두 개의 연속적인 픽셀 사이에 있는 중점 등)을 식별할 수 있다. RANSAN 알고리즘은 복수의 지점에 기반해서 복수의 열 경계를 결정하도록 사용될 수 있다. 단지 도시를 위해서, 복수의 열 경계(A2, A3, A4, 및 A5)가 결정될 수 있다. In some implementations, for two or more of the plurality of row lines, the
(1525)에서, 처리 장치(104)는 심볼 영역의 상부 경계 및 하부 경계를 결정할 수 있다.At 1525, the
복수의 열 경계의 각각에 대해, 처리 장치(104)는 복수의 행 라인과 열 경계의 복수의 교차점(예를 들어, 픽셀)을 결정할 수 있다. 처리 장치(104)는 상향 트래버스를 수행할 수 있고 복수의 교차점 가운데 상부 교차점을 식별할 수 있다. 열 경계에 따른 상부 교차점 위의 픽셀(상부 픽셀로도 언급됨) 및 동일한 행에서 행 방향을 따른 상부 픽셀에 뒤이은 픽셀(상부 픽셀의 뒤이은 픽셀로도 언급됨)이 결정될 수 있다. 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀은 열 경계의 다른 측면에 위치될 수 있다.For each of the plurality of column boundaries, processing
처리 장치(104)는 상부 교차점 및 상부 교차점의 뒤이은 픽셀, 및 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하는지 여부를 결정할 수 있다(즉, 상부 픽셀의 색상 및 상부 픽셀의 뒤이은 픽셀의 색상은 검은색이고, 두 개의 픽셀의 색상은 행 방향을 따라 흰색에서 검은색으로 변할 수 있다). 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하지 않고 상부 교차점 및 행 방향을 따른 상부 교차점에 뒤이은 픽셀이 열 경계 특성을 충족한다면(즉, 상부 픽셀 및 상부 교차점이 상부 경계 특성을 충족한다면), 상부 교차점 및 상부 교차점의 뒤이은 픽셀이 심볼 영역의 상부 경계 상에 있을 수 있음을 나타낼 수 있다.
도 16을 참조하여, 열 경계(A2)와 행 라인(P1)의 교차점인 픽셀(O3)은 상부 교차점으로서 결정될 수 있다. 행 방향을 따른 상부 교차점(O3)에 뒤이은 픽셀(상부 교차점의 뒤이은 픽셀로도 언급됨)은 (O6)일 수 있다. 상부 교차점(O3) 및 상부 교차점(O6)의 뒤이은 픽셀이 열 경계 특성을 충족하고, 상부 교차점(O3)의 상부 픽셀(O4) 및 상부 픽셀(O5)의 뒤이은 픽셀이 열 경계 특성을 충족하지 못하면(즉, 상부 픽셀(O4) 및 상부 교차점(O3)이 상부 경계 특성을 충족하면), 그것은 상부 교차점(O3) 및 상부 교차점(O4)의 뒤이은 픽셀이 심볼 영역의 상부 경계 상에 있을 수 있음을 나타낼 수 있다. 유사하게, 심볼 영역의 상부 경계 상의 픽셀은 열 경계(A3, A4, 및 A5)에 따라 결정될 수 있다.Referring to FIG. 16 , a pixel O3 that is an intersection point between the column boundary A2 and the row line P1 may be determined as an upper intersection point. The pixel following the upper intersection point O3 along the row direction (also referred to as the pixel following the upper intersection point) may be (O6). Upper cross point O3 and pixels following upper cross point O6 satisfy the column boundary characteristics, and upper pixel O4 of upper cross point O3 and pixels following upper pixel O5 satisfy the column boundary characteristics. If not (i.e., if the upper pixel O4 and the upper intersection point O3 satisfy the upper boundary property), then it means that the upper intersection point O3 and the pixel following the upper intersection point O4 are on the upper boundary of the symbol area. can indicate that it can. Similarly, pixels on the upper boundary of the symbol region may be determined according to column boundaries A3, A4, and A5.
일부 구현예에서, RANSAN 알고리즘은 상부 교차점 및 복수의 열 경계의 각각에 상응하는 상부 교차점의 뒤이은 픽셀에 기반해서 심볼 영역의 상부 경계를 결정하도록 사용될 수 있다. 상부 경계는 도 16에 도시된 바와 같이 P1일 수 있다.In some implementations, a RANSAN algorithm can be used to determine the upper boundary of the symbol region based on the upper intersection point and subsequent pixels of the upper intersection point corresponding to each of the plurality of column boundaries. The upper boundary may be P1 as shown in FIG. 16 .
유사하게, 복수의 열 경계의 각각에 대해, 처리 장치(104)는 하향 트래버스를 수행할 수 있고 복수의 교차점 가운데 하부 교차점을 식별할 수 있다. 열 경계에 따른 하부 교차점 아래의 픽셀(하부 픽셀로도 언급됨) 및 동일한 행에서 행 방향을 따른 하부 픽셀에 뒤이은 픽셀(하부 픽셀의 뒤이은 픽셀로도 언급됨)이 결정될 수 있다. 하부 픽셀 및 하부 픽셀의 뒤이은 픽셀은 열 경계의 다른 측면에 위치될 수 있다.Similarly, for each of the plurality of thermal boundaries,
처리 장치(104)는 하부 교차점 및 하부 교차점의 뒤이은 픽셀, 및 하부 픽셀 및 하부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하는지 여부를 결정할 수 있다. 하부 픽셀 및 하부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하지 않고 하부 교차점 및 행 방향을 따른 하부 교차점에 뒤이은 픽셀이 열 경계 특성을 충족한다면(즉, 하부 픽셀 및 하부 교차점이 하부 경계 특성을 충족하면), 그것은 하부 교차점 및 하부 교차점의 뒤이은 픽셀이 심볼 영역의 하부 경계 상에 있을 수 있음을 나타낼 수 있다.The
도 16을 참조하여, 열 경계(A2) 및 행 라인(P19)의 교차점인 픽셀(O7)은 하부 교차점으로서 결정될 수 있다. 행 방향을 따른 하부 교차점(O7)에 뒤이은 픽셀(하부 교차점의 뒤이은 픽셀로도 언급됨)은 (O8)일 수 있다. 하부 교차점(O7) 및 하부 교차점(O8)의 뒤이은 픽셀이 열 경계 특성을 충족하고, 하부 교차점(O7)의 하부 픽셀(O9) 및 하부 픽셀(O10)의 뒤이은 픽셀이 열 경계 특성을 충족하지 못하면(즉, 하부 픽셀(O9) 및 하부 교차점(O7)이 하부 경계 특성을 충족하면), 그것은 하부 교차점(O7) 및 하부 교차점(O8)의 뒤이은 픽셀이 심볼 영역의 하부 경계 상에 있을 수 있음을 나타낼 수 있다. 유사하게, 심볼 영역의 하부 경계 상의 픽셀은 열 경계(A3, A4, 및 A5)에 따라 결정될 수 있다.Referring to FIG. 16 , a pixel O7 that is an intersection of the column boundary A2 and the row line P19 may be determined as a lower intersection point. The pixel following the lower intersection point O7 along the row direction (also referred to as the pixel following the lower intersection point) may be (O8). The lower intersection point O7 and subsequent pixels of lower intersection point O8 satisfy the column boundary characteristics, and the lower pixel O9 of lower intersection point O7 and the subsequent pixels of lower pixel O10 satisfy the column boundary characteristics. If not (ie lower pixel O9 and lower intersection point O7 satisfy the lower boundary property), then it means that the pixels following lower intersection point O7 and lower intersection point O8 are on the lower boundary of the symbol area. can indicate that it can. Similarly, pixels on the lower boundary of the symbol region may be determined according to column boundaries A3, A4, and A5.
일부 구현예에서, RANSAN 알고리즘은 하부 교차점 및 복수의 열 경계의 각각에 상응하는 하부 교차점의 뒤이은 픽셀에 기반해서 심볼 영역의 하부 경계를 결정하도록 사용될 수 있다. 하부 경계는 도 16에 도시된 바와 같이 P19일 수 있다.In some implementations, a RANSAN algorithm can be used to determine the lower boundary of the symbol region based on the lower intersection point and subsequent pixels of the lower intersection point corresponding to each of the plurality of column boundaries. The lower boundary may be P19 as shown in FIG. 16 .
(1530)에서, 처리 장치(104)는 심볼 영역의 시작 경계와 끝 경계 사이에 복수의 심볼 문자 가운데 복수의 행 경계를 결정할 수 있다.At 1530, the
일부 구현예에서, 복수의 행 경계는 인접한 심볼 문자 사이에 경계 특성에 기반해서 복수의 행 라인으로부터 복수의 행 경계를 특정함으로써 결정될 수 있다. 일부 구현예에서, 열 방향에서 두 개의 인접한 심볼 문자 사이의 바 및 공간의 폭은 다를 수 있다. 따라서, 열 방향에서 두 개의 인접한 심볼 문자 사이의 행 경계는 행 경계 상의 모든 픽셀의 색상이 행 경계의 제 1 인접한 행 라인 상의 상응하는 픽셀의 색상과 동일하고, 행 경계 상의 적어도 하나의 픽셀의 색상이 행 경계의 제 2 인접한 행 라인 상의 상응하는 픽셀의 색상과 다를 수 있는 특성(행 경계 특성으로도 언급됨)을 가질 수 있다. 일부 구현예에서, 제 1 인접한 행 라인은 행 경계 위에 있을 수 있고 제 2 인접한 행 라인은 행 경계 아래에 있을 수 있다. 대안적으로, 제 1 인접한 행 라인은 행 경계 아래에 있을 수 있고 제 2 인접한 행 라인은 행 경계 위에 있을 수 있다. 본 경우에, 행 경계 상의 모든 픽셀의 그레이 값은 행 경계의 제 1 인접한 행 라인 상의 상응하는 픽셀의 그레이 값과 같거나 그에 근사할 수 있고, 행 경계 상의 적어도 하나의 픽셀의 그레이 값은 행 경계의 제 2 인접한 행 라인 상의 상응하는 픽셀의 그레이 값과 다를 수 있다.In some implementations, multiple row boundaries can be determined by specifying multiple row boundaries from multiple row lines based on boundary properties between adjacent symbol characters. In some implementations, the widths of the bars and spaces between two adjacent symbol characters in the column direction may vary. Thus, for a row boundary between two adjacent symbol characters in the column direction, the color of all pixels on the row boundary is the same as the color of corresponding pixels on the first adjacent row line of the row boundary, and the color of at least one pixel on the row boundary This row boundary may have characteristics (also referred to as row boundary characteristics) that may differ from the color of the corresponding pixel on the second adjacent row line. In some implementations, a first adjacent row line can be above a row boundary and a second adjacent row line can be below a row boundary. Alternatively, the first adjacent row line may be below the row boundary and the second adjacent row line may be above the row boundary. In this case, the gray value of every pixel on the row boundary may be equal to or close to the gray value of a corresponding pixel on a first adjacent row line of the row boundary, and the gray value of at least one pixel on the row boundary is may be different from the gray value of the corresponding pixel on the second adjacent row line of .
도 16을 참조하여, 행 라인(P4, P7, P10, P13, 및 P16)은 행 경계 특성을 충족할 수 있다. 행 라인(P4, P7, P10, P13, 및 P16)은 복수의 심볼 문자 가운데 행 경계로서 지시될 수 있다.Referring to FIG. 16 , row lines P4 , P7 , P10 , P13 , and P16 may satisfy row boundary characteristics. Row lines P4, P7, P10, P13, and P16 may be indicated as row boundaries among a plurality of symbol characters.
(1535)에서, 처리 장치(104)는 복수의 열 경계 및 복수의 행 경계에 기반해서 복수의 심볼 문자의 각각에 대해 심볼 문자에 상응하는 문자 영역을 결정할 수 있다.At 1535, the
도 16을 참조하여, 심볼 문자에 상응하는 복수의 문자 영역은 행 경계(P4, P7, P10, P13, 및 P16) 및 열 경계(A2, A3, 및 A4)에 기반해서 결정될 수 있다.Referring to FIG. 16 , a plurality of character areas corresponding to symbol characters may be determined based on row boundaries (P4, P7, P10, P13, and P16) and column boundaries (A2, A3, and A4).
(1540)에서, 처리 장치(104)는 심볼 문자에 상응하는 문자 영역과 연관된 그레이 값에 기반해서 각각의 심볼 문자를 디코딩할 수 있다. 일부 구현예에서, 각각의 심볼 문자를 디코딩하기 위한 작동은 도 14에 도시된 바와 같이 프로세스(1400)의 작동 (1410) 내지 작동(1440)과 유사하거나 동일할 수 있고 여기에 반복되지 않을 것이다.At 1540, processing
따라서, 기본 개념을 설명하였으므로, 앞서 언급한 세부적인 개시가 실시예를 통해서만 제시되도록 의도되고 한정하지 않음이 본 세부적인 개시를 읽은 후에 해당 기술분야의 당업자에게 보다 명백해질 수 있다. 명백하게 여기에 언급되지 않음에도, 다양한 변형, 개선, 및 수정이 발생할 수 있고 해당 기술분야에 당업자에게 의도될 수 있다. 이들 변경, 개선, 및 수정은 본 개시에 의해 제안되도록 의도되고 본 개시의 예시적인 구현예의 사상 및 범위 내에 있다.Therefore, since the basic concept has been described, it may become more apparent to those skilled in the art after reading this detailed disclosure that the aforementioned detailed disclosure is intended to be presented only through examples and is not limiting. Although not explicitly stated herein, various variations, improvements, and modifications may occur and are intended to those skilled in the art. These changes, improvements, and modifications are intended to be suggested by this disclosure and are within the spirit and scope of the exemplary implementations of this disclosure.
게다가, 특정 전문용어는 본 개시의 구현예를 설명하도록 사용되었다. 예를 들어, 용어 “일 구현예”, “구현예”, 및 “일부 구현예”는 구현예와 연결해서 기재된 특정 특징, 구조 또는 특성이 본 개시의 적어도 하나의 구현예에 포함됨을 의미한다. 그러므로, 본 명세서의 다양한 부분에서 “구현예” 또는 “일 구현예” 또는 “대안적인 구현예”에 대한 두 개 이상의 참조가 반드시 동일한 구현예를 모두 참조하지 않음이 강조되고 인정되어야만 한다. 또한, 특정 특징, 구조 또는 특성이 본 개시의 하나 이상의 구현예에 적합한 바와 같이 조합될 수 있다.Additionally, certain terminology has been used to describe embodiments of the present disclosure. For example, the terms “one embodiment,” “an embodiment,” and “some embodiments” mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Therefore, it should be emphasized and acknowledged that two or more references to "an embodiment" or "an embodiment" or "alternative embodiment" in various places in this specification are not necessarily all referring to the same embodiment. In addition, certain features, structures or characteristics may be combined as suitable for one or more embodiments of the present disclosure.
또한, 본 개시의 측면이 임의의 새롭고 유용한 프로세스, 기계, 제조, 또는 사안의 구성, 또는 그의 임의의 새롭고 유용한 개선을 포함하는 다수의 특허가능한 분류 또는 문맥 중 어느 하나에서 여기 도시되고 기재될 수 있음이 해당 기술분야의 당업자에 의해 인정될 것이다. 따라서, 본 개시의 측면은 모두 일반적으로 “모듈”, “유닛”, “구성요소”, “장치” 또는 “시스템”으로서 여기 언급될 수 있는 전체적으로 하드웨어, 전체적으로 소프트웨어(펌웨어, 상주 소프트웨어, 마이크로 코드 등을 포함) 또는 조합 소프트웨어 및 하드웨어 실행으로서 실행될 수 있다. 또한, 본 개시의 측면은 구현된 컴퓨터 판독가능한 프로그램 코드를 갖는 하나 이상의 컴퓨터 판독가능한 매체에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.In addition, aspects of the present disclosure may be shown and described herein in any of a number of patentable classes or contexts, including any new and useful process, machine, manufacture, or configuration of matter, or any new and useful improvement thereof. This will be appreciated by those skilled in the art. Accordingly, aspects of the present disclosure may all be generally hardware as a whole, software as a whole (firmware, resident software, microcode, etc.) ) or as a combination software and hardware implementation. Additionally, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
컴퓨터 판독가능한 신호 매체는 예를 들어, 베이스밴드에서 또는 반송파의 부분으로서 그 안에 구현된 컴퓨터 판독가능한 프로그램 코드를 갖는 전파된 데이터 신호를 포함할 수 있다. 그러한 전파된 신호는 전자기, 광학, 또는 그와 유사한 것 또는 그의 임의의 적합한 조합을 포함하는 다양한 형태 중 어느 하나를 취할 수 있다. 컴퓨터 판독가능한 신호 매체는 컴퓨터 판독가능한 저장 매체가 아니고 명령어 실행 시스템, 기기, 또는 장치에 의해 또는 그와 연결해서 사용을 위한 프로그램을 전달, 전파 또는 전송할 수 있는 임의의 컴퓨터 판독가능한 매체일 수 있다. 컴퓨터 판독가능한 신호 매체 상에 구현된 프로그램 코드는 무선, 유선, 광섬유 케이블, RF, 또는 그와 유사한 것, 또는 앞서 언급한 것의 임의의 적합한 조합을 포함하는 임의의 적합한 매체를 사용하여 전송될 수 있다.A computer readable signal medium may include a propagated data signal having computer readable program code embodied therein, for example, at baseband or as part of a carrier wave. Such propagated signals may take any of a variety of forms, including electromagnetic, optical, or the like, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can convey, propagate or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any suitable medium including wireless, wired, fiber optic cable, RF, or the like, or any suitable combination of the foregoing. .
본 개시의 측면에 관한 작동을 실행하기 위한 컴퓨터 프로그램 코드는 자바, 스칼라, 스몰토크, 에펠, 제이드, 에메랄드, C++, C#, VB와 같은 객체 지향 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성될 수 있다. NET, 파이썬 또는 그와 유사한 것, “C” 프로그래밍 언어, 비주얼 베이직, 포트란 2003, 펄, 코볼 2002, PHP, ABAP와 같은 종래의 절차적 프로그래밍 언어, 파이썬, 루비, 및 그루비와 같은 동적 프로그래밍 언어, 또는 다른 프로그래밍 언어. 프로그램 코드는 전체적으로 사용자의 컴퓨터 상에, 독립형 소프트웨어 패키지로서 부분적으로 사용자의 컴퓨터 상에, 부분적으로 사용자의 컴퓨터 상에 그리고 부분적으로 원격 컴퓨터 상에 또는 전체적으로 원격 컴퓨터 또는 서버 상에 실행할 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 근거리 통신망(LAN) 또는 원거리 통신망(WAN)을 포함하는 임의의 유형의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있거나, 연결은 외부 컴퓨터에 대해(예를 들어, 인터넷 서비스 공급자(ISP)를 사용하여 인터넷을 통해) 또는 클라우드 컴퓨팅 환경에서 이루어질 수 있거나 서비스형 소프트웨어(SaaS)와 같은 서비스로서 제공될 수 있다.Computer program code for carrying out operations relating to aspects of the present disclosure may be implemented in any combination of one or more programming languages, including object oriented programming languages such as Java, Scala, Smalltalk, Eiffel, Jade, Emerald, C++, C#, VB can be written as NET, Python or the like, the "C" programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, conventional procedural programming languages such as PHP, ABAP, dynamic programming languages such as Python, Ruby, and Groovy; or any other programming language. The program code may execute entirely on the user's computer, as a stand-alone software package, partly on the user's computer, partly on the user's computer and partly on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or the connection can be made to an external computer (e.g., Internet service It can be done in a cloud computing environment (over the Internet using a provider (ISP)) or can be provided as a service, such as Software as a Service (SaaS).
또한, 처리 요소 또는 시퀀스의 언급된 순서, 또는 숫자, 문자, 또는 다른 표시의 사용은 따라서 청구항에서 명시될 수 있는 것을 제외하고 청구된 프로세스 및 방법을 임의의 순서로 한정하도록 의도되지 않는다. 위의 개시가 다양한 실시예를 통해 본 개시의 다양한 유용한 구현예인 것으로 현재 간주되는 것을 논의함에도, 그러한 세부사항이 오직 그러한 목적을 위한 것이고 첨부된 청구항은 개시된 구현예로 한정되지 않지만, 반대로, 개시된 구현예의 사상 및 범위 내에 있는 수정 및 등가의 배열을 포함하도록 의도됨이 이해되어야 한다. 예를 들어, 위에 기재된 다양한 구성요소의 실행이 하드웨어 장치에 구현될 수 있음에도, 그것은 또한 소프트웨어 단독 솔루션, 예를 들어, 기존 서버 또는 모바일 장치 상의 설치로서 실행될 수 있다.Furthermore, the stated order of processing elements or sequences, or the use of numbers, letters, or other designations, is therefore not intended to limit the claimed processes and methods to any order except as may be specified in the claims. Although the above disclosure, through various embodiments, discusses what are presently considered to be various useful implementations of the present disclosure, such detail is for that purpose only and the appended claims are not limited to the disclosed implementations, but, on the contrary, the disclosed implementations. It should be understood that the examples are intended to cover modifications and equivalent arrangements within the spirit and scope of the examples. For example, although execution of the various components described above may be implemented in a hardware device, it may also be implemented as a software-only solution, eg, as an installation on an existing server or mobile device.
유사하게, 본 개시의 구현예에 관한 앞서 언급한 기재에서, 다양한 특징은 다양한 구현예 중 하나 이상의 이해를 돕는 개시를 간소화하는 목적을 위해 그의 단일 구현예, 수치, 또는 기재에서 때때로 함께 그루핑됨이 인지되어야만 한다. 그러나 이러한 개시의 방법은 청구되는 주제 사안이 각각의 청구항에 명백히 언급되는 것보다 더 많은 특징을 요구한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 그보다는, 청구되는 주제 사안은 단일한 앞서 언급한 개시된 구현예의 모든 특징보다 더 적은 곳에 놓인다.Similarly, in the foregoing description of embodiments of the present disclosure, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure to aid in the understanding of one or more of the various embodiments. It has to be recognized. However, this method of disclosure is not to be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, claimed subject matter lies in less than all features of a single foregoing disclosed embodiment.
Claims (25)
상기 적어도 하나의 저장 장치와 통신하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 명령어의 세트를 실행할 때, 상기 적어도 하나의 프로세서는:
심볼 영역에 복수의 심볼 문자를 포함하는 심볼의 심볼 이미지를 획득하고;
상기 심볼의 길이 방향을 따른 복수의 행 라인을 결정하고;
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 복수의 열 경계를 결정하고, 상기 복수의 열 경계의 각각은 상기 복수의 심볼 문자의 두 개의 심볼 문자의 두 개의 연속적인 열에 상응하고;
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 복수의 행 경계를 결정하고, 상기 복수의 행 경계의 각각은 상기 복수의 심볼 문자의 두 개의 인접한 행에 상응하고; 그리고
상기 복수의 심볼 문자의 각각에 대해,
상기 복수의 열 경계 및 상기 복수의 행 경계에 기반해서 상기 심볼 문자에 상응하는 문자 영역을 결정하고; 그리고
상기 심볼 문자에 상응하는 상기 문자 영역과 연관된 그레이 값에 기반해서 상기 심볼 문자를 디코딩하는 것을 포함하는 작동을 수행하도록 지시되는, 시스템.at least one storage device for storing a set of instructions; and
and at least one processor configured to communicate with the at least one storage device, wherein when executing the set of instructions, the at least one processor:
obtaining a symbol image of a symbol including a plurality of symbol characters in a symbol area;
determining a plurality of row lines along the length direction of the symbol;
determine a plurality of column boundaries among the plurality of symbol characters according to the plurality of row lines, each of the plurality of column boundaries corresponding to two consecutive columns of two symbol characters of the plurality of symbol characters;
determine a plurality of row boundaries among the plurality of symbol characters according to the plurality of row lines, each of the plurality of row boundaries corresponding to two adjacent rows of the plurality of symbol characters; And
For each of the plurality of symbol characters,
determine a character area corresponding to the symbol character based on the plurality of column boundaries and the plurality of row boundaries; And
and perform an operation comprising decoding the symbol character based on a gray value associated with the character area corresponding to the symbol character.
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 상기 복수의 열 경계를 결정하는 것은:
상기 복수의 심볼 문자와 연관된 참조 심볼 문자의 폭을 결정하고;
상기 참조 심볼 문자의 상기 폭에 기반해서 참조 폭 범위를 결정하고; 그리고
인접한 심볼 문자와 상기 참조 폭 범위 사이에 경계 특성에 기반해서 상기 복수의 심볼 문자 가운데 상기 복수의 열 경계를 결정하는 것을 포함하는, 시스템.According to claim 1,
Based on the plurality of row lines, determining the plurality of column boundaries among the plurality of symbol characters:
determine a width of a reference symbol character associated with the plurality of symbol characters;
determine a reference width range based on the width of the reference symbol character; And
and determining the plurality of column boundaries among the plurality of symbol characters based on boundary characteristics between adjacent symbol characters and the reference width range.
상기 참조 심볼 문자는 시작 심볼 문자 또는 끝 심볼 문자를 포함하는, 시스템.According to claim 2,
The system of claim 1, wherein the reference symbol character includes a start symbol character or an end symbol character.
상기 참조 심볼 문자의 상기 폭은:
상기 참조 심볼 문자와 연관된 미리설정된 코드워드 스트링을 획득하고;
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 상기 미리설정된 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 적어도 하나의 참조 라인 세그먼트를 식별하고; 그리고
상기 참조 심볼 문자의 상기 폭으로서 상기 적어도 하나의 참조 라인 세그먼트의 길이를 지시하는 것을 포함하는, 시스템.According to claim 2,
The width of the reference symbol character is:
obtain a preset codeword string associated with the reference symbol character;
identify at least one reference line segment for at least one of the plurality of row lines based on a gray value of a pixel on the at least one of the plurality of row lines and a predetermined gray value associated with the predetermined codeword string; ; And
and indicating the length of the at least one reference line segment as the width of the reference symbol character.
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 상기 복수의 행 경계를 결정하는 것은:
인접한 심볼 문자 사이에 경계 특성에 기반해서 상기 복수의 행 라인으로부터 상기 복수의 심볼 문자 가운데 상기 복수의 행 경계를 식별하는 것을 포함하는, 시스템.According to any one of claims 1 to 4,
Based on the plurality of row lines, determining the plurality of row boundaries among the plurality of symbol characters:
and identifying the plurality of row boundaries among the plurality of symbol characters from the plurality of row lines based on boundary characteristics between adjacent symbol characters.
상기 복수의 심볼 문자의 각각에 대해, 상기 심볼 문자에 상응하는 상기 문자 영역과 연관된 그레이 값에 기반해서 상기 심볼 문자를 디코딩하는 것은:
행 방향을 따라서 상기 심볼 문자에 상응하는 상기 문자 영역을 복수의 블록으로 나누고;
상기 복수의 블록의 각각의 글로벌 그레이 값을 결정하고;
상기 복수의 블록의 상기 글로벌 그레이 값에 기반해서 상기 심볼 문자의 대조값을 결정하고; 그리고
상기 대조값에 기반해서 상기 심볼 문자에 상응하는 코드워드를 결정하는 것을 포함하는, 시스템.According to any one of claims 1 to 5,
For each of the plurality of symbol characters, decoding the symbol character based on the gray value associated with the character area corresponding to the symbol character:
divide the character area corresponding to the symbol character into a plurality of blocks along a row direction;
determine a global gray value of each of the plurality of blocks;
determine a contrast value of the symbol character based on the global gray values of the plurality of blocks; And
and determining a codeword corresponding to the symbol character based on the reference value.
상기 복수의 블록의 상기 글로벌 그레이 값에 기반해서 상기 심볼 문자의 상기 대조값을 결정하는 것은:
상기 문자 영역에 제 1 유형의 블록의 그레이 값 대 상기 제 1 유형의 상기 블록의 카운트의 제 1 비율을 결정하고;
상기 문자 영역에 제 2 유형의 블록의 그레이 값 대 상기 제 2 유형의 상기 블록의 카운트의 제 2 비율을 결정하고; 그리고
상기 제 1 비율과 상기 제 2 비율 사이의 차이 값에 기반해서 상기 심볼 문자의 상기 대조값을 결정하는 것을 포함하는, 시스템. According to claim 6,
Determining the contrast value of the symbol character based on the global gray values of the plurality of blocks:
determine a first ratio of a gray value of a block of a first type in the character area to a count of the block of the first type;
determine a second ratio of a gray value of a block of a second type to a count of the block of the second type in the character area; And
and determining the contrast value of the symbol character based on a difference value between the first ratio and the second ratio.
상기 작동은:
상기 심볼 영역의 시작 경계, 끝 경계, 상부 경계, 및 하부 경계를 결정하는 것을 더 포함하는, 시스템.According to any one of claims 1 to 7,
The operation is:
and determining a start boundary, an end boundary, an upper boundary, and a lower boundary of the symbol region.
상기 심볼 영역의 상기 시작 경계를 결정하는 것은:
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 시작 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 시작 심볼 문자의 적어도 하나의 끝 지점을 식별하고; 그리고
상기 시작 심볼 문자의 상기 적어도 하나의 끝 지점에 기반해서 상기 심볼 영역의 상기 시작 경계를 결정하는 것을 포함하는, 시스템.According to claim 8,
Determining the starting boundary of the symbol region is:
Identifying, for at least one of the plurality of row lines, at least one end point of a start symbol character based on a gray value of a pixel on the at least one of the plurality of row lines and a predetermined gray value associated with a start codeword string do; And
and determining the starting boundary of the symbol region based on the at least one ending point of the starting symbol character.
상기 심볼 영역의 상기 끝 경계를 결정하는 것은:
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 끝 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 끝 심볼 문자의 적어도 하나의 시작 지점을 식별하고; 그리고
상기 끝 심볼 문자의 상기 적어도 하나의 시작 지점에 기반해서 상기 심볼 영역의 상기 끝 경계를 결정하는 것을 포함하는, 시스템.According to claim 8 or 9,
Determining the end boundary of the symbol region is:
identifying, for at least one of the plurality of row lines, at least one starting point of an ending symbol character based on a gray value of a pixel on the at least one of the plurality of row lines and a predetermined gray value associated with an ending codeword string do; And
and determining the ending boundary of the symbol region based on the at least one starting point of the ending symbol character.
상기 심볼 영역의 상기 상부 경계를 결정하는 것은:
상기 복수의 열 경계의 각각에 대해,
상기 복수의 행 라인과 상기 열 경계의 복수의 교차점을 결정하고;
제 1 교차점의 상부 픽셀이 식별될 때까지 상향 트래버스를 수행하고, 상기 상부 픽셀 및 상기 제 1 교차점은 상부 경계 특성을 충족하고; 그리고
상기 복수의 열 경계의 각각의 상기 제 1 교차점에 기반해서 상기 심볼 영역의 상기 상부 경계를 결정하는 것을 포함하는, 시스템.According to any one of claims 8 to 10,
Determining the upper boundary of the symbol region is:
For each of the plurality of thermal boundaries,
determine a plurality of intersections of the plurality of row lines and the column boundary;
perform an upward traverse until an upper pixel of a first intersection is identified, the upper pixel and the first intersection satisfy an upper boundary characteristic; And
and determining the upper boundary of the symbol region based on the first intersection of each of the plurality of column boundaries.
상기 심볼 영역의 상기 하부 경계를 결정하는 것은:
상기 복수의 열 경계의 각각에 대해,
상기 복수의 행 라인과 상기 열 경계의 복수의 교차점을 결정하고;
제 2 교차점의 하부 픽셀이 식별될 때까지 하향 트래버스를 수행하고, 상기 하부 픽셀 및 상기 제 2 교차점은 하부 경계 특성을 충족하고; 그리고
상기 복수의 열 경계의 각각의 상기 제 2 교차점에 기반해서 상기 심볼 영역의 상기 하부 경계를 결정하는 것을 포함하는, 시스템.According to any one of claims 8 to 11,
Determining the lower boundary of the symbol region is:
For each of the plurality of thermal boundaries,
determine a plurality of intersections of the plurality of row lines and the column boundary;
perform a downward traverse until a lower pixel of a second intersection point is identified, the lower pixel and the second intersection point meeting a lower boundary characteristic; And
and determining the lower boundary of the symbol region based on the second intersection of each of the plurality of column boundaries.
심볼 영역에 복수의 심볼 문자를 포함하는 심볼의 심볼 이미지를 획득하는 단계;
상기 심볼의 길이 방향을 따른 복수의 행 라인을 결정하는 단계;
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 복수의 열 경계를 결정하는 단계, 상기 복수의 열 경계의 각각은 상기 복수의 심볼 문자의 두 개의 심볼 문자의 두 개의 연속적인 열에 상응하고;
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 복수의 행 경계를 결정하는 단계, 상기 복수의 행 경계의 각각은 상기 복수의 심볼 문자의 두 개의 인접한 행에 상응하고; 그리고
상기 복수의 심볼 문자의 각각에 대해,
상기 복수의 열 경계 및 상기 복수의 행 경계에 기반해서 상기 심볼 문자에 상응하는 문자 영역을 결정하는 단계; 및
상기 심볼 문자에 상응하는 상기 문자 영역과 연관된 그레이 값에 기반해서 상기 심볼 문자를 디코딩하는 단계를 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.Way:
obtaining a symbol image of a symbol including a plurality of symbol characters in a symbol area;
determining a plurality of row lines along the length direction of the symbol;
determining a plurality of column boundaries among the plurality of symbol characters based on the plurality of row lines, each of the plurality of column boundaries corresponding to two consecutive columns of two symbol characters of the plurality of symbol characters; ;
determining a plurality of row boundaries among the plurality of symbol characters based on the plurality of row lines, each of the plurality of row boundaries corresponding to two adjacent rows of the plurality of symbol characters; And
For each of the plurality of symbol characters,
determining a character area corresponding to the symbol character based on the plurality of column boundaries and the plurality of row boundaries; and
and decoding the symbol character based on a gray value associated with the character area corresponding to the symbol character.
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 상기 복수의 열 경계를 결정하는 단계는:
상기 복수의 심볼 문자와 연관된 참조 심볼 문자의 폭을 결정하고;
상기 참조 심볼 문자의 상기 폭에 기반해서 참조 폭 범위를 결정하고; 그리고
인접한 심볼 문자와 상기 참조 폭 범위 사이에 경계 특성에 기반해서 상기 복수의 심볼 문자 가운데 상기 복수의 열 경계를 결정하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.According to claim 13,
Based on the plurality of row lines, determining the plurality of column boundaries among the plurality of symbol characters comprises:
determine a width of a reference symbol character associated with the plurality of symbol characters;
determine a reference width range based on the width of the reference symbol character; And
determining the plurality of column boundaries among the plurality of symbol characters based on a boundary characteristic between adjacent symbol characters and the reference width range.
상기 참조 심볼 문자는 시작 심볼 문자 또는 끝 심볼 문자를 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.According to claim 14,
wherein the reference symbol character comprises a start symbol character or an end symbol character.
상기 참조 심볼 문자의 상기 폭을 결정하는 것은:
상기 참조 심볼 문자와 연관된 미리설정된 코드워드 스트링을 획득하고;
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 상기 미리설정된 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 적어도 하나의 참조 라인 세그먼트를 식별하고; 그리고
상기 참조 심볼 문자의 상기 폭으로서 상기 적어도 하나의 참조 라인 세그먼트의 길이를 지시하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.According to claim 14,
Determining the width of the reference symbol character is:
obtain a preset codeword string associated with the reference symbol character;
identify at least one reference line segment for at least one of the plurality of row lines based on a gray value of a pixel on the at least one of the plurality of row lines and a predetermined gray value associated with the predetermined codeword string; ; And
and indicating the length of the at least one reference line segment as the width of the reference symbol character.
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 상기 복수의 행 경계를 결정하는 것은:
인접한 심볼 문자 사이에 경계 특성에 기반해서 상기 복수의 행 라인으로부터 상기 복수의 심볼 문자 가운데 상기 복수의 행 경계를 식별하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.According to any one of claims 1 to 16,
Based on the plurality of row lines, determining the plurality of row boundaries among the plurality of symbol characters:
A method performed on a computing device having a processor and a computer readable storage device comprising identifying the plurality of row boundaries among the plurality of symbol characters from the plurality of row lines based on boundary characteristics between adjacent symbol characters. .
상기 복수의 심볼 문자의 각각에 대해, 상기 심볼 문자에 상응하는 상기 문자 영역과 연관된 그레이 값에 기반해서 상기 심볼 문자를 디코딩하는 것은:
행 방향을 따라서 상기 심볼 문자에 상응하는 상기 문자 영역을 복수의 블록으로 나누고;
상기 복수의 블록의 각각의 글로벌 그레이 값을 결정하고;
상기 복수의 블록의 상기 글로벌 그레이 값에 기반해서 상기 심볼 문자의 대조값을 결정하고; 그리고
상기 대조값에 기반해서 상기 심볼 문자에 상응하는 코드워드를 결정하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.The method of any one of claims 1 to 17,
For each of the plurality of symbol characters, decoding the symbol character based on the gray value associated with the character area corresponding to the symbol character:
divide the character area corresponding to the symbol character into a plurality of blocks along a row direction;
determine a global gray value of each of the plurality of blocks;
determine a contrast value of the symbol character based on the global gray values of the plurality of blocks; And
determining a codeword corresponding to the symbol character based on the reference value.
상기 복수의 블록의 상기 글로벌 그레이 값에 기반해서 상기 심볼 문자의 상기 대조값을 결정하는 것은:
상기 문자 영역에 제 1 유형의 블록의 그레이 값 대 상기 제 1 유형의 상기 블록의 카운트의 제 1 비율을 결정하고;
상기 문자 영역에 제 2 유형의 블록의 그레이 값 대 상기 제 2 유형의 상기 블록의 카운트의 제 2 비율을 결정하고; 그리고
상기 제 1 비율과 상기 제 2 비율 사이의 차이 값에 기반해서 상기 심볼 문자의 상기 대조값을 결정하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.According to claim 18,
Determining the contrast value of the symbol character based on the global gray values of the plurality of blocks:
determine a first ratio of a gray value of a block of a first type in the character area to a count of the block of the first type;
determine a second ratio of a gray value of a block of a second type to a count of the block of the second type in the character area; And
determining the contrast value of the symbol character based on a difference value between the first ratio and the second ratio.
상기 작동은:
상기 심볼 영역의 시작 경계, 끝 경계, 상부 경계, 및 하부 경계를 결정하는 것을 더 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.According to any one of claims 1 to 19,
The operation is:
and determining a start boundary, an end boundary, an upper boundary, and a lower boundary of the symbol region.
상기 심볼 영역의 상기 시작 경계를 결정하는 것은:
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 시작 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 시작 심볼 문자의 적어도 하나의 끝 지점을 식별하고; 그리고
상기 시작 심볼 문자의 상기 적어도 하나의 끝 지점에 기반해서 상기 심볼 영역의 상기 시작 경계를 결정하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.21. The method of claim 20,
Determining the starting boundary of the symbol region is:
Identifying, for at least one of the plurality of row lines, at least one end point of a start symbol character based on a gray value of a pixel on the at least one of the plurality of row lines and a predetermined gray value associated with a start codeword string do; And
determining the starting boundary of the symbol region based on the at least one ending point of the starting symbol character.
상기 심볼 영역의 상기 끝 경계를 결정하는 것은:
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 끝 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 끝 심볼 문자의 적어도 하나의 시작 지점을 식별하고; 그리고
상기 끝 심볼 문자의 상기 적어도 하나의 시작 지점에 기반해서 상기 심볼 영역의 상기 끝 경계를 결정하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.According to claim 20 or 21,
Determining the end boundary of the symbol region is:
identifying, for at least one of the plurality of row lines, at least one starting point of an ending symbol character based on a gray value of a pixel on the at least one of the plurality of row lines and a predetermined gray value associated with an ending codeword string do; And
determining the ending boundary of the symbol region based on the at least one starting point of the ending symbol character.
상기 심볼 영역의 상기 상부 경계를 결정하는 것은:
상기 복수의 열 경계의 각각에 대해,
상기 복수의 행 라인과 상기 열 경계의 복수의 교차점을 결정하고;
제 1 교차점의 상부 픽셀이 식별될 때까지 상향 트래버스를 수행하고, 상기 상부 픽셀 및 상기 제 1 교차점은 상부 경계 특성을 충족하고; 그리고
상기 복수의 열 경계의 각각의 상기 제 1 교차점에 기반해서 상기 심볼 영역의 상기 상부 경계를 결정하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.23. The method of any one of claims 20 to 22,
Determining the upper boundary of the symbol region is:
For each of the plurality of thermal boundaries,
determine a plurality of intersections of the plurality of row lines and the column boundary;
perform an upward traverse until an upper pixel of a first intersection is identified, the upper pixel and the first intersection satisfy an upper boundary characteristic; And
and determining the upper boundary of the symbol region based on the first intersection of each of the plurality of column boundaries.
상기 심볼 영역의 상기 상부 경계를 결정하는 것은:
상기 복수의 열 경계의 각각에 대해,
상기 복수의 행 라인과 상기 열 경계의 복수의 교차점을 결정하고;
제 2 교차점의 하부 픽셀이 식별될 때까지 하향 트래버스를 수행하고, 상기 하부 픽셀 및 상기 제 2 교차점은 하부 경계 특성을 충족하고; 그리고
상기 복수의 열 경계의 각각의 상기 제 2 교차점에 기반해서 상기 심볼 영역의 상기 하부 경계를 결정하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.The method of any one of claims 20 to 23,
Determining the upper boundary of the symbol region is:
For each of the plurality of thermal boundaries,
determine a plurality of intersections of the plurality of row lines and the column boundary;
perform a downward traverse until a lower pixel of a second intersection point is identified, the lower pixel and the second intersection point meeting a lower boundary characteristic; And
determining the lower boundary of the symbol region based on the second intersection of each of the plurality of column boundaries.
심볼 영역에 복수의 심볼 문자를 포함하는 심볼의 심볼 이미지를 획득하는 단계;
상기 심볼의 길이 방향을 따른 복수의 행 라인을 결정하는 단계;
상기 복수의 행 라인에 기반해서, 복수의 심볼 문자 가운데 복수의 열 경계를 결정하는 단계, 상기 복수의 열 경계의 각각은 상기 복수의 심볼 문자의 두 개의 심볼 문자의 두 개의 연속적인 열에 상응하고;
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 복수의 행 경계를 결정하는 단계, 상기 복수의 행 경계의 각각은 상기 복수의 심볼 문자의 두 개의 인접한 행에 상응하고; 그리고
상기 복수의 심볼 문자의 각각에 대해,
상기 복수의 열 경계 및 상기 복수의 행 경계에 기반해서 상기 심볼 문자에 상응하는 문자 영역을 결정하는 단계; 및
상기 심볼 문자에 상응하는 상기 문자 영역과 연관된 그레이 값에 기반해서 상기 심볼 문자를 디코딩하는 단계를 포함하는, 비일과성 판독가능한 매체.comprising at least one set of instructions, wherein when executed by at least one processor of a computing device, the at least one set of instructions causes the at least one processor to perform a method comprising:
obtaining a symbol image of a symbol including a plurality of symbol characters in a symbol area;
determining a plurality of row lines along the length direction of the symbol;
determining a plurality of column boundaries among the plurality of symbol characters according to the plurality of row lines, each of the plurality of column boundaries corresponding to two consecutive columns of two symbol characters of the plurality of symbol characters;
determining a plurality of row boundaries among the plurality of symbol characters based on the plurality of row lines, each of the plurality of row boundaries corresponding to two adjacent rows of the plurality of symbol characters; And
For each of the plurality of symbol characters,
determining a character area corresponding to the symbol character based on the plurality of column boundaries and the plurality of row boundaries; and
decoding the symbol character based on a gray value associated with the character area corresponding to the symbol character.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010378011.9A CN111476054B (en) | 2020-05-07 | 2020-05-07 | Decoding method and electronic equipment |
CN202010378011.9 | 2020-05-07 | ||
PCT/CN2021/091910 WO2021223709A1 (en) | 2020-05-07 | 2021-05-06 | Systems and methods for barcode decoding |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230002813A true KR20230002813A (en) | 2023-01-05 |
Family
ID=71757288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227040154A KR20230002813A (en) | 2020-05-07 | 2021-05-06 | Systems and methods for decoding barcodes |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP7481494B2 (en) |
KR (1) | KR20230002813A (en) |
CN (1) | CN111476054B (en) |
WO (1) | WO2021223709A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111476054B (en) * | 2020-05-07 | 2022-03-08 | 浙江华睿科技股份有限公司 | Decoding method and electronic equipment |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005174128A (en) | 2003-12-12 | 2005-06-30 | Tohken Co Ltd | Code-reading device |
JP2007538308A (en) | 2004-04-02 | 2007-12-27 | シルバーブルック リサーチ ピーティワイ リミテッド | Monolithic integrated circuit and device |
US8313029B2 (en) * | 2008-01-31 | 2012-11-20 | Seiko Epson Corporation | Apparatus and methods for decoding images |
JP5246146B2 (en) | 2009-12-01 | 2013-07-24 | コニカミノルタビジネステクノロジーズ株式会社 | Image forming apparatus and image reading apparatus |
CN101908126B (en) * | 2010-06-01 | 2015-10-07 | 福建新大陆电脑股份有限公司 | PDF417 bar code decoding chip |
CN101833640B (en) * | 2010-06-01 | 2015-12-16 | 福建新大陆电脑股份有限公司 | The empty boundary pixel point computing module of bar and computing method thereof |
CN101908122B (en) * | 2010-06-01 | 2012-08-22 | 福建新大陆电脑股份有限公司 | Bar space margin processing module, bar code identifying device and method thereof |
CN102184378B (en) | 2011-04-27 | 2014-10-29 | 茂名职业技术学院 | Method for cutting portable data file (PDF) 417 standard two-dimensional bar code image |
CN103034831B (en) * | 2011-09-30 | 2015-05-27 | 无锡爱丁阁信息科技有限公司 | Method and system for identifying linear bar code |
CN102521559B (en) * | 2011-12-01 | 2014-01-01 | 四川大学 | 417 bar code identification method based on sub-pixel edge detection |
JP6095194B2 (en) * | 2013-03-28 | 2017-03-15 | 日本電産サンキョー株式会社 | Stack bar code reading apparatus and stack bar code reading method |
CN106446750B (en) * | 2016-07-07 | 2018-09-14 | 深圳市华汉伟业科技有限公司 | A kind of bar code read method and device |
CN109388999B (en) * | 2017-08-11 | 2021-09-17 | 杭州海康威视数字技术股份有限公司 | Bar code identification method and device |
CN111476054B (en) * | 2020-05-07 | 2022-03-08 | 浙江华睿科技股份有限公司 | Decoding method and electronic equipment |
-
2020
- 2020-05-07 CN CN202010378011.9A patent/CN111476054B/en active Active
-
2021
- 2021-05-06 WO PCT/CN2021/091910 patent/WO2021223709A1/en active Application Filing
- 2021-05-06 JP JP2022566603A patent/JP7481494B2/en active Active
- 2021-05-06 KR KR1020227040154A patent/KR20230002813A/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
JP2023525500A (en) | 2023-06-16 |
CN111476054A (en) | 2020-07-31 |
CN111476054B (en) | 2022-03-08 |
JP7481494B2 (en) | 2024-05-10 |
WO2021223709A1 (en) | 2021-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10863202B2 (en) | Encoding data in a source image with watermark image codes | |
EP2767928B1 (en) | Device and method for automatically identifying a qr code | |
US9892300B2 (en) | Two-dimensional code | |
EP3309703A1 (en) | Method and system for decoding qr code based on weighted average grey method | |
WO2017140233A1 (en) | Text detection method and system, device and storage medium | |
US8995012B2 (en) | System for mobile image capture and processing of financial documents | |
US20160006894A1 (en) | Interactive user interface for capturing a document in an image signal | |
US20140078345A1 (en) | System for capturing a document in an image signal | |
US20090185736A1 (en) | Methods for mobile image capture and processing of documents | |
JP2016516245A (en) | Classification of objects in images using mobile devices | |
EP2973226A1 (en) | Classifying objects in digital images captured using mobile devices | |
EP3144856B1 (en) | Two-dimensional code, and two-dimensional-code analysis system | |
JP4574503B2 (en) | Image processing apparatus, image processing method, and program | |
CN104781835B (en) | Quick Response Code | |
US9747486B2 (en) | Decoding visual codes | |
JP2019528543A (en) | Digital object unique identifier (DOI) recognition method and apparatus | |
KR20230002813A (en) | Systems and methods for decoding barcodes | |
WO2022247406A1 (en) | Systems and methods for determining key frame images of video data | |
WO2021168703A1 (en) | Character processing and identifying methods, storage medium, and terminal device | |
CN111767889A (en) | Formula recognition method, electronic device and computer readable medium | |
CN109635729A (en) | A kind of Table recognition method and terminal | |
CN110442719B (en) | Text processing method, device, equipment and storage medium | |
US9679179B2 (en) | Method for processing information from a hand-held scanning device | |
CN116976372A (en) | Picture identification method, device, equipment and medium based on square reference code | |
US20210203994A1 (en) | Encoding data in a source image with watermark image codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |