KR20230002813A - Systems and methods for decoding barcodes - Google Patents

Systems and methods for decoding barcodes Download PDF

Info

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
Application number
KR1020227040154A
Other languages
Korean (ko)
Inventor
원후이 리
스지에 마
Original Assignee
저지앙 화레이 테크놀로지 컴퍼니., 리미티드.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 저지앙 화레이 테크놀로지 컴퍼니., 리미티드. filed Critical 저지앙 화레이 테크놀로지 컴퍼니., 리미티드.
Publication of KR20230002813A publication Critical patent/KR20230002813A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1452Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps

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

바코드 디코딩을 위한 시스템 및 방법Systems and methods for decoding barcodes

본 출원은 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 image processing system 100 may process an image or video composed of a plurality of images and extract data from the image or video. As shown, the image processing system 100 includes an image source 101, a processing unit 104, a buffer manager 105, a buffer 106, a transmitter 107, a terminal 108 (or a plurality of terminals ( 108), a network 112, and a network storage device 113 (or a plurality of network storage 113).

이미지 소스(101)는 이미지 또는 네트워크(112)를 통해 터미널(108)의 사용자에 대한 (비디오 프레임으로도 언급된) 적어도 하나의 이미지를 포함하는 비디오를 제공할 수 있다. 일부 구현예에서, 이미지 소스(101)는 스캐너(102) 및/또는 미디어 서버(103)를 포함할 수 있다.Image source 101 may provide an image or video containing at least one image (also referred to as a video frame) of a user of terminal 108 over network 112 . In some implementations, image source 101 may include scanner 102 and/or media server 103 .

스캐너(102)는 이미지 또는 적어도 하나의 이미지를 포함하는 비디오를 캡처가능할 수 있다. 일부 구현예에서, 이미지는 심볼 이미지일 수 있다. 여기 사용된 바와 같은, 심볼 이미지는 심볼의 이미지일 수 있다. 일부 구현예에서, 심볼 이미지는 스틸 이미지 또는 비디오로부터 획득된 비디오 프레임일 수 있다. 심볼 이미지는 2차원(2D) 이미지 또는 3차원(3D) 이미지일 수 있다. 스캐너(102)는 레이저 스캐너, 광학 스캐너 등일 수 있다.The scanner 102 may be capable of capturing an image or a video comprising at least one image. In some implementations, the image can be a symbol image. As used herein, a symbol image may be an image of a symbol. In some implementations, a symbol image can be a video frame obtained from a still image or video. The symbol image may be a two-dimensional (2D) image or a three-dimensional (3D) image. The scanner 102 may be a laser scanner, optical scanner, or the like.

일부 구현예에서, 광학 스캐너는 카메라일 수 있다. 카메라는 예를 들어, 디지털 카메라, 비디오 카메라, 보안 카메라, 웹 카메라, 스마트폰, 태블릿, 랩탑, 웹 카메라가 장착된 비디오 게이밍 콘솔, 다중 렌즈를 갖는 카메라 등일 수 있다.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 media server 103 may be a server (eg, a computer or group of computers) for storing or providing an image or a video containing a plurality of images. Media server 103 may also include an image processing element (not shown) configured to process images using the example methods introduced in this disclosure.

이미지 소스(101)는 이미지 또는 비디오를 처리 장치(104)에 보낼 수 있다. 처리 장치(104)는 이미지 또는 비디오를 처리할 수 있다. 예를 들어, 이미지 또는 비디오는 심볼 이미지를 포함할 수 있다. 심볼 이미지는 심볼의 이미지일 수 있다. 예를 들어, 심볼은 바코드(예를 들어, 휴대가능한 데이터 파일(PDF) 417, 코드 16K, 코드 49 등)일 수 있다. 심볼은 심볼 영역에 복수의 심볼 문자를 포함할 수 있다. 여기에 사용된 바와 같이, 심볼 문자는 심볼에 데이터를 인코딩하기 위한 최소 유닛을 언급할 수 있다. 심볼 영역은 복수의 심볼 문자가 위치되는, 심볼의 적어도 부분에 상응하는 영역을 언급할 수 있다. 처리 장치(104)는 심볼을 디코딩할 수 있고 심볼에 상응하는 디코딩된 데이터를 발생시킬 수 있다.Image source 101 may send an image or video to processing unit 104 . The processing device 104 may process images or video. For example, an image or video may include a symbol image. A symbol image may be an image of a symbol. For example, the symbol may be a barcode (eg, Portable Data File (PDF) 417, Code 16K, Code 49, etc.). A symbol may include a plurality of symbol characters in a symbol area. As used herein, a symbol character may refer to the smallest unit for encoding data in a symbol. A symbol area may refer to an area corresponding to at least a portion of a symbol, in which a plurality of symbol characters are located. Processing unit 104 may decode the symbol and generate decoded data corresponding to the symbol.

일부 구현예에서, 처리 장치(104)는 단일 서버 또는 서버 그룹일 수 있다. 서버 그룹은 중심화되거나 분배될 수 있다. 일부 구현예에서, 처리 장치(104)는 국부적이거나 원격일 수 있다. 일부 구현예에서, 처리 장치(104)는 클라우드 플랫폼 상에 실행될 수 있다. 단지 실시예를 통해서, 클라우드 플랫폼은 사설 클라우드, 공공 클라우드, 하이브리드 클라우드, 커뮤니티 클라우드, 분산 클라우드, 인터 클라우드, 멀티 클라우드, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 처리 장치(104)는 도 2에 도시된 바와 같은 하나 이상의 구성요소를 갖는 컴퓨팅 장치(200)에 의해 실행될 수 있다. In some implementations, processing device 104 may be a single server or group of servers. Server groups can be centralized or distributed. In some implementations, the processing device 104 can be local or remote. In some implementations, the processing unit 104 can run on a cloud platform. By way of example only, a cloud platform may include a private cloud, public cloud, hybrid cloud, community cloud, distributed cloud, inter cloud, multi cloud, or the like, or any combination thereof. In some implementations, processing device 104 may be executed by computing device 200 having one or more components as shown in FIG. 2 .

이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터는 버퍼(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 buffer manager 105 . Buffer 106 may be a storage device for buffering images, video, and/or decoded data corresponding to images or video to be transmitted over network 112 . It can be a remote device from the image source 101 or a local device interpreted by the image source 101, such as a camera's storage medium. Buffer 106 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 memories include dynamic RAM (DRAM), double-speed synchronous dynamic RAM (DDR SDRAM), static RAM (SRAM), thyristor RAM (T-RAM), and zero-capacitor RAM (Z-RAM). It may include random access memory (RAM). 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.

송신기(107)는 네트워크(112)로 버퍼(106)에서 버퍼링된 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 전송할 수 있다. 송신기(107)는 비디오 소스(101), 버퍼 관리자(105), 터미널(108), 또는 그와 유사한 것, 또는 그의 조합으로부터 보내진 명령어에 응답해서 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 전송할 수 있다. 대안적으로 또는 추가적으로, 송신기(107)는 버퍼(106)에 저장된 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 자발적으로 전송할 수 있다. 송신기(107)는 네트워크(112)를 통해 터미널(108)에 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 전송할 수 있다.Transmitter 107 may transmit the image, video, and/or decoded data corresponding to the image or video buffered in buffer 106 to network 112 . Transmitter 107 responds to commands sent from video source 101, buffer manager 105, terminal 108, or the like, or a combination thereof, and transmits images, videos, and/or images or videos corresponding to them. Decoded data can be transmitted. Alternatively or additionally, transmitter 107 may voluntarily transmit images, videos, and/or decoded data corresponding to images or video stored in buffer 106 . Transmitter 107 may transmit images, video, and/or decoded data corresponding to the images or video to terminal 108 over network 112 .

터미널(108)은 네트워크(112)를 통해 전송된 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 수신할 수 있다. 일부 구현예에서, 터미널(108)은 사용자에게 이미지, 비디오, 및/또는 이미지 또는 비디오에 상응하는 디코딩된 데이터를 표시할 수 있거나 지불, 식별 인증, 등록 등과 같은 작동을 더 수행할 수 있다. Terminal 108 may receive images, videos, and/or decoded data corresponding to images or video transmitted over network 112 . In some implementations, terminal 108 may display images, videos, and/or decoded data corresponding to images or video to a user, or may further perform operations such as payment, authentication of identification, registration, and the like.

터미널(108)은 형태에서 다양할 수 있다. 예를 들어, 터미널(108)은 모바일 장치(109), 태블릿 컴퓨터(110), 랩탑 컴퓨터(111), 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 모바일 장치(109)는 웨어러블 장치, 모바일 장치, 가상 현실 장치, 증강 현실 장치, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 웨어러블 장치는 팔찌, 신발, 안경, 헬맷, 시계, 의류, 백팩, 스마트 액세서리, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 모바일 장치는 모바일 폰, 개인 정보 단말기(PDA), 랩탑, 태블릿 컴퓨터, 데스크탑, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 가상 현실 장치 및/또는 증강 현실 장치는 가상 현실 헬맷, 가상 현실 안경, 가상 현실 패치, 증강 현실 헬맷, 증강 현실 안경, 증강 현실 패치, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 예를 들어, 가상 현실 장치 및/또는 증강 현실 장치는 구글 글래스™, 오큘러스 리프트™, 홀로렌즈™, 기어 VR™ 등을 포함할 수 있다. 일부 구현예에서, 터미널(들)(108)은 처리 엔진의 부분일 수 있다.Terminal 108 can vary in shape. For example, terminal 108 may include mobile device 109, tablet computer 110, laptop computer 111, or the like, or any combination thereof. In some implementations, mobile device 109 may include a wearable device, a mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof. In some implementations, a wearable device may include a bracelet, shoe, eyeglasses, helmet, watch, clothing, backpack, smart accessory, or the like, or any combination thereof. In some implementations, a mobile device may include a mobile phone, personal digital assistant (PDA), laptop, tablet computer, desktop, or the like, or any combination thereof. In some implementations, the virtual reality device and/or augmented reality device is a virtual reality helmet, virtual reality glasses, virtual reality patch, augmented reality helmet, augmented reality glasses, augmented reality patch, or the like, or any combination thereof. can include For example, virtual reality devices and/or augmented reality devices may include Google Glass™, Oculus Rift™, HoloLens™, Gear VR™, and the like. In some implementations, terminal(s) 108 may be part of a processing engine.

네트워크(112)는 데이터 전송을 용이하게 할 수 있는 임의의 적합한 네트워크를 포함할 수 있다. 네트워크(112)는 공공 네트워크(예를 들어, 인터넷), 사설 네트워크(예를 들어, 근거리 통신망(LAN), 광역 통신망(WAN)), 유선 네트워크(예를 들어, 이더넷 네트워크), 무선 네트워크(예를 들어, 802.11 네트워크, 와이파이 네트워크), 셀룰러 네트워크(예를 들어, 롱텀에볼루션(LTE) 네트워크), 프레임 릴레이 네트워크, 가상 사설 네트워크("VPN"), 위성 네트워크, 전화 네트워크, 라우터, 허브, 스위치, 서버 컴퓨터, 및/또는 그의 임의의 조합이고 그리고/또는 그를 포함할 수 있다. 단지 예시를 통해서, 네트워크(112)는 케이블 네트워크, 유선 네트워크, 광섬유 네트워크, 텔레커뮤니케이션 네트워크, 인트라넷, 무선 근거리 통신망(WLAN), 대도시 통신망(MAN), 공중 교환 전화망(PSTN), 블루투스™ 네트워크, 지그비™ 네트워크, 근거리 자기장 통신(NFC) 네트워크, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 일부 구현예에서, 네트워크(112)는 하나 이상의 네트워크 접근 지점을 포함할 수 있다.Network 112 may include any suitable network capable of facilitating data transmission. Network 112 may be a public network (eg, the Internet), a private network (eg, a local area network (LAN), a wide area network (WAN)), a wired network (eg, an Ethernet network), a wireless network (eg, a local area network (LAN), a wide area network (WAN)), a wireless network (eg, 802.11 networks, Wi-Fi networks), cellular networks (e.g., Long Term Evolution (LTE) networks), frame relay networks, virtual private networks ("VPNs"), satellite networks, telephone networks, routers, hubs, switches, may be and/or include a server computer, and/or any combination thereof. By way of example only, networks 112 may include cable networks, wired networks, fiber optic networks, telecommunications networks, intranets, wireless local area networks (WLANs), metropolitan area networks (MANs), public switched telephone networks (PSTNs), Bluetooth™ networks, Zigbee ™ network, a near field communication (NFC) network, or the like, or any combination thereof. In some implementations, network 112 may include one or more network access points.

일부 구현예에서, 네트워크(112)는 하나 이상의 네트워크 저장 장치(113)를 포함할 수 있다. 네트워크 저장 장치(113)는 네트워크(112)에 전송된 데이터를 버퍼링 또는 캐칭하기 위한 장치일 수 있다. 이미지, 비디오, 및/또는 송신기(107)에 의해 송신된 이미지 또는 비디오에 상응하는 디코딩된 데이터가 터미널(108)에 의해 수신되기 전에 하나 이상의 네트워크 저장 장치(113)에 버퍼링되거나 캐시될 수 있다. 네트워크 저장 장치(113)는 서버, 허브, 게이트웨이, 또는 그와 유사한 것, 또는 그의 조합일 수 있다.In some implementations, network 112 may include one or more network storage devices 113 . The network storage device 113 may be a device for buffering or caching data transmitted over the network 112 . Images, video, and/or decoded data corresponding to images or video transmitted by transmitter 107 may be buffered or cached on one or more network storage devices 113 prior to being received by terminal 108. Network storage device 113 may be a server, hub, gateway, or the like, or a combination thereof.

처리 장치(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 processing unit 104, buffer manager 105, buffer 106, and transmitter 107 may be stand-alone devices, or modules integrated into image source 101 or another stand-alone device. can For example, one or more of processing unit 104, buffer manager 105, buffer 106, and transmitter 107 may be integrated into scanner 102, media server 103, and/or terminal 108. can As another embodiment, processing unit 104, buffer manager 105, buffer 106, and transmitter 107 communicate with image source 101 via a direct wired connection, network 112, or another network. can be included in a video processing engine capable of As another example, processing unit 104 may be a stand-alone device (eg, a computer or server) while buffer manager 105, buffer 106, and transmitter 107 may be in another stand-alone device. can be included

도 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 computing device 200 may be a media server 103 , a processing element of the scanner 102 , and/or an electronic device specialized for image processing. Processing unit 104 and buffer manager 105 may also be executed on computing device 200 . As shown in FIG. 2 , computing device 200 may include a processor 222 , storage 227 , input/output (I/O) 226 , and a communication port 225 .

프로세서(222)는 컴퓨터 명령어(예를 들어, 프로그램 코드)를 실행하고 여기 기재된 기법에 따라 기능을 수행할 수 있다. 예를 들어, 프로세서(222)는 여기에 인터페이스 회로 및 처리 회로를 포함할 수 있다. 인터페이스 회로는 버스(도 2에 미도시)로부터 전자 신호를 수신하도록 구성될 수 있고, 전자 신호는 처리할 처리 회로를 위해 구조화된 데이터 및/또는 명령어를 인코딩한다. 처리 회로는 논리 연산 계산을 수행할 수 있고, 그런 후에 전자 신호로서 인코딩된 결론, 결과, 및/또는 명령어를 결정할 수 있다. 그런 후에 인터페이스 회로는 버스를 통해 처리 회로로부터 전자 신호를 보낼 수 있다.Processor 222 may execute computer instructions (eg, program code) and perform functions in accordance with the techniques described herein. For example, processor 222 may include interface circuitry and processing circuitry therein. The interface circuitry may be configured to receive electronic signals from the bus (not shown in FIG. 2), the electronic signals encoding structured data and/or instructions for processing circuitry to process. Processing circuitry may perform logical operation calculations and then determine conclusions, results, and/or instructions encoded as electronic signals. The interface circuitry can then send electronic signals from the processing circuitry over the bus.

컴퓨터 명령어는 예를 들어, 루틴, 프로그램, 객체, 구성요소, 데이터 구조, 절차, 모듈, 및 함수를 포함할 수 있고, 이는 여기 기재된 특정 기능을 수행한다. 일부 구현예에서, 프로세서(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, processor 222 is a microcontroller, microprocessor, reduced instruction set computer (RISC), application specific integrated circuits (ASICs), application specific instruction set processor (ASIP), central processing unit (CPU), graphics processing unit ( GPU), physical processing unit (PPU), microcontroller unit, digital signal processor (DSP), field programmable gate array (FPGA), enhanced RISC machine (ARM), programmable logic unit (PLD), capable of executing one or more functions may include one or more hardware processors, such as any circuitry or processor, or the like, or any combination thereof.

단지 도시를 위해, 하나의 프로세서만이 컴퓨팅 장치(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 computing device 200 . However, computing device 200 in this disclosure may also include multiple processors, and thus operations and/or method steps performed by one processor as described in this disclosure may also be performed jointly or separately by the multiple processors. It should be mentioned that this can be done by For example, if the processor of computing device 200 in this disclosure executes both steps A and B, then steps A and B may also be performed jointly or separately on computing device 200. may be performed by two or more different processors (e.g., a first processor performs step (A) and a second processor performs step (B), or a first and second processor perform step (B) jointly) (A) and performing steps (B)) should be understood.

저장소(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))을 위한 프로그램을 저장할 수 있다.Storage 227 includes image source 101, processing unit 104, buffer manager 105, buffer 106, transmitter 107, terminal 108, network 112, network storage device 113, and/or data/information obtained from any other component of the image processing system 100. In some implementations, storage 222 may include mass storage, removable storage, volatile read and write memory, read only memory (ROM), or the like, or any combination thereof. For example, mass storage may include magnetic disks, optical disks, solid state drives, and the like. Removable storage may include flash drives, floppy disks, optical disks, memory cards, zip disks, magnetic tape, and the like. Volatile read and write memory may include random access memory (RAM), which includes dynamic RAM (DRAM), double speed synchronous dynamic RAM (DDR SDRAM), static RAM (SRAM), thyristor RAM (T-RAM), and zero-capacitor RAM (Z-RAM); ROM includes mask ROM (MROM), programmable ROM (PROM), erasable and programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), compact disk ROM (CD-ROM), and digital versatile disk ROM, etc. In some implementations, storage 222 may store one or more programs and/or instructions to perform example methods described in this disclosure. For example, storage 222 may store programs for processing engines (eg, media server 103, processing device 104) to decode symbol images.

I/O(226)는 신호, 데이터, 정보 등을 입력하고 그리고/또는 출력할 수 있다. 일부 구현예에서, I/O(226)는 입력 장치 및 출력 장치를 포함할 수 있다. 입력 장치의 예시는 키보드, 마우스, 터치 스크린, 마이크로폰, 또는 그와 유사한 것, 또는 그의 조합을 포함할 수 있다. 출력 장치의 예시는 디스플레이 장치, 라우드스피커, 프린터, 프로젝터, 또는 그와 유사한 것, 또는 그의 조합을 포함할 수 있다. 디스플레이 장치의 예시는 액정 디스플레이(LCD), 발광 다이오드(LED)-기반 디스플레이, 플랫 패널 디스플레이, 곡선 스크린, 텔레비전 장치, 음극선관(CRT), 터치 스크린 또는 그와 유사한 것, 또는 그의 조합을 포함할 수 있다.I/O 226 may input and/or output signals, data, information, and the like. In some implementations, I/O 226 may include input devices and output devices. Examples of input devices may include a keyboard, mouse, touch screen, microphone, or the like, or combinations thereof. Examples of output devices may include display devices, loudspeakers, printers, projectors, or the like, or combinations thereof. Examples of display devices may include liquid crystal displays (LCDs), light emitting diode (LEDs)-based displays, flat panel displays, curved screens, television devices, cathode ray tubes (CRTs), touch screens or the like, or combinations thereof. can

통신 포트(225)는 데이터 통신을 용이하게 하도록 네트워크(예를 들어, 네트워크(112))에 연결될 수 있다. 통신 포트(225)는 이미지 소스(101), 처리 장치(104), 버퍼 관리자(105), 버퍼(106), 송신기(107), 터미널(108), 네트워크(112), 네트워크 저장 장치(113), 및/또는 이미지 처리 시스템(100)의 임의의 다른 구성요소 사이에 연결을 설정할 수 있다. 연결은 데이터 전송 및/또는 수신, 및/또는 이들 연결의 임의의 조합을 가능하게 할 수 있는 유선 연결, 무선 연결, 임의의 다른 통신 연결일 수 있다. 유선 연결은 예를 들어, 전기 케이블, 광 케이블, 전화선, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 무선 연결은 예를 들어, 블루투스™ 링크, 와이파이™ 링크, 위맥스™ 링크, WLAN 링크, 지그비 링크, 모바일 네트워크 링크(예를 들어, 3G, 4G, 5G), 또는 그와 유사한 것, 또는 그의 조합을 포함할 수 있다. 일부 구현예에서, 통신 포트(225)는 RS232, RS485 등과 같은 표준화된 통신 포트이고 그리고/또는 그를 포함할 수 있다. 일부 구현예에서, 통신 포트(225)는 특별하게 설계된 통신 포트일 수 있다.Communications port 225 may be coupled to a network (eg, network 112 ) to facilitate data communication. The communication port 225 is an image source 101, a processing unit 104, a buffer manager 105, a buffer 106, a transmitter 107, a terminal 108, a network 112, a network storage device 113 , and/or any other component of the image processing system 100. A connection can be a wired connection, a wireless connection, any other communication connection that can enable data transmission and/or reception, and/or any combination of these connections. Wired connections may include, for example, electrical cables, optical cables, telephone lines, or the like, or any combination thereof. A wireless connection may be, for example, a Bluetooth™ link, a Wi-Fi™ link, a Wimax™ link, a WLAN link, a ZigBee link, a mobile network link (eg, 3G, 4G, 5G), or the like, or a combination thereof. can include In some implementations, communication port 225 may be and/or include a standardized communication port such as RS232, RS485, or the like. In some implementations, communication port 225 may be a specially designed communication port.

도 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 communication platform 320, a display 310, a graphics processing unit (GPU) 330, a central processing unit (CPU) 330, and an I/O port 350. ), memory 360, and storage 390. In some implementations, any other suitable component may also be included in terminal 300, including but not limited to a system bus or controller (not shown). In some implementations, mobile operating system 370 (eg, iOS™, Android™, Windows Phone™) and one or more applications 380 are transferred from storage 390 to memory 360 to be executed by processor 340 . ) can be loaded. Terminal 300 may be an implementation of terminal 108 .

본 개시에 기재된 다양한 모듈, 유닛, 및 그 기능을 실행하기 위해, 컴퓨터 하드웨어 플랫폼은 여기 기재된 요소 중 하나 이상을 위한 하드웨어 플랫폼(들)으로서 사용될 수 있다. 사용자 인터페이스 요소를 갖는 컴퓨터는 개인용 컴퓨터(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 processing unit 104 may include an acquisition module 410 , a row line determination module 420 , a character area determination module 430 , and a decoding module 440 .

획득 모듈(410)은 데이터/정보를 획득할 수 있다. 일부 구현예에서, 획득 모듈(410)은 복수의 심볼 문자를 포함하는 심볼의 심볼 이미지를 획득할 수 있다. 일부 구현예에서, 심볼 이미지에 심볼은 바코드일 수 있다. 예시적인 바코드는 코드 16K, 코드 49, PDF 417, 마이크로 PDF 417, 코드 원, 맥시코드, 퀵 리스폰스(QR) 코드, 데이터 매트릭스, 한신(HanXin) 코드, 그리드 매트릭스 등을 포함할 수 있다. 일부 구현예에서, 획득된 데이터/정보는 처리된 결과, 사용자 명령어, 알고리즘, 프로그램 코드, 또는 그와 유사한 것, 또는 그 조합을 더 포함할 수 있다. The acquiring module 410 may acquire data/information. In some implementations, the acquisition module 410 may obtain a symbol image of a symbol including a plurality of symbol characters. In some implementations, a symbol in a symbol image may be a barcode. Exemplary barcodes may include Code 16K, Code 49, PDF 417, Micro PDF 417, Code One, Maxicode, Quick Response (QR) Code, Data Matrix, HanXin Code, Grid Matrix, and the like. In some implementations, the data/information obtained may further include processed results, user instructions, algorithms, program code, or the like, or combinations thereof.

행 라인 결정 모듈(420)은 심볼의 길이 방향을 따라 심볼 이미지에 복수의 행 라인을 결정할 수 있다. 일부 구현예에서, 처리 장치(104)는 심볼의 에지를 식별할 수 있다. 심볼의 에지는 심볼 이미지에 픽셀에 기반해서 식별될 수 있다. 일부 구현예에서, 심볼의 에지가 포지셔닝 박스의 에지와 일치하거나 실질적으로 일치할 때까지, 처리 장치(104)는 크기, 위치, 및/또는 포지셔닝 박스의 배향을 동적으로 조절할 수 있다. 일부 구현예에서, 복수의 행 라인의 각각은 포지셔닝 박스에 동일한 행에 픽셀을 연결함으로써 결정될 수 있다.The row line determination module 420 may determine a plurality of row lines in the symbol image along the length direction of the symbol. In some implementations, processing unit 104 can identify an edge of a symbol. The edge of a symbol can be identified based on the pixels in the symbol image. In some implementations, processing device 104 can dynamically adjust the size, position, and/or orientation of the positioning box until the edge of the symbol coincides with or substantially coincides with the edge of the positioning box. In some implementations, each of the plurality of row lines can be determined by connecting a pixel to the same row in a positioning box.

문자 영역 결정 모듈(430)은 복수의 심볼 문자의 각각에 대해 심볼 문자에 상응하는 문자 영역을 결정할 수 있다. 일부 구현예에서, 복수의 심볼 문자의 각각에 대해 심볼 문자에 상응하는 문자 영역은 복수의 심볼 문자를 포함하는 심볼 영역에 복수의 열 경계 및 복수의 행 경계에 기반해서 결정될 수 있다. 문자 영역 결정 모듈(430)은 행 라인 결정 모듈(420)로부터 복수의 행 라인을 획득할 수 있고 복수의 행 라인에 기반해서 복수의 열 경계 및 복수의 행 경계를 결정할 수 있다. 복수의 열 경계 및 복수의 행 경계의 결정에 관한 세부사항은 본 개시에 다른 곳에서, 예를 들어, 도 5, 도 12, 및 도 15, 및 그의 관련 기재에서 발견될 수 있다.The character area determination module 430 may determine a character area corresponding to a symbol character for each of a plurality of symbol characters. In some implementations, a character area corresponding to the symbol character for each of the plurality of symbol characters may be determined based on a plurality of column boundaries and a plurality of row boundaries of a symbol area including the plurality of symbol characters. The character area determination module 430 may obtain the plurality of row lines from the row line determination module 420 and determine the plurality of column boundaries and the plurality of row boundaries based on the plurality of row lines. Details regarding the determination of the plurality of column boundaries and the plurality of row boundaries may be found elsewhere in this disclosure, such as in FIGS. 5, 12, and 15, and related descriptions thereof.

디코딩 모듈(440)은 심볼 문자에 상응하는 문자 영역과 연관된 그레이 값에 기반해서 각각의 심볼 문자를 디코딩할 수 있다.The decoding module 440 may decode each symbol character based on the gray value associated with the character area corresponding to the symbol character.

각각의 문자 영역에 관해서는, 디코딩 모듈(440)은 문자 영역을 복수의 블록으로 나눌 수 있다. 복수의 블록의 각각은 하나 이상의 픽셀(예를 들어, 1×4 픽셀(즉, 행에서 1개의 픽셀 및 열에서 4개의 픽셀))을 포함할 수 있다. 블록의 하나 이상의 픽셀의 그레이 값이 획득될 수 있다. 블록의 글로벌 그레이 값은 블록의 하나 이상의 픽셀의 그레이 값의 전체 표현일 수 있다.For each character area, decoding module 440 may divide the character area into a plurality of blocks. Each of the plurality of blocks may include one or more pixels (eg, 1×4 pixels (ie, 1 pixel in a row and 4 pixels in a column)). 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.

일부 구현예에서, 디코딩 모듈(440)은 복수의 블록의 글로벌 그레이 값에 기반해서 문자 영역에 상응한 심볼 문자의 대조값을 결정할 수 있다. 디코딩 모듈(440)은 대조값에 기반해서 심볼 문자에 상응하는 코드워드를 결정할 수 있다. 일부 구현예에서, 디코딩 모듈(440)은 복수의 미리설정된 코드워드(예를 들어, 2787개의 코드워드)를 획득할 수 있다. 복수의 코드워드의 각각은 미리결정된 코드워드 스트링에 상응할 수 있다. 복수의 미리설정된 코드워드의 각각의 참조 대조값은 상응하는 미리결정된 코드워드 스트링에 기반해서 결정될 수 있다. 그런 후에 처리 장치(104)는 각각의 코드워드의 참조 대조값 및 심볼 문자의 대조값에 기반해 복수의 미리설정된 코드워드의 각각과 심볼 문자 사이에 유사값을 결정한다. 디코딩 모듈(440)은 유사값에 기반해서 심볼 문자에 상응하는 코드워드를 결정할 수 있다. 심볼 문자에 상응하는 코드워드는 심볼 이미지에 심볼에 상응하는 디코딩된 데이터(예를 들어, 번호, 문자, 벡터 등)이거나 그를 포함할 수 있다.In some implementations, the decoding module 440 may determine a contrast value of a symbol character corresponding to a character area based on the global gray values of the plurality of blocks. The decoding module 440 may determine a codeword corresponding to the symbol character based on the reference value. In some implementations, decoding module 440 can obtain a plurality of preset codewords (eg, 2787 codewords). Each of the plurality of codewords may correspond to a predetermined codeword string. A reference collation value of each of the plurality of preset codewords may be determined based on the corresponding predetermined codeword string. Then, the processing unit 104 determines a similarity value between each of the plurality of preset codewords and the symbol character based on the reference collation value of each codeword and the collation value of the symbol character. The decoding module 440 may determine a codeword corresponding to the symbol character based on the similarity value. A codeword corresponding to a symbol character may be or include decoded data (eg, number, character, vector, etc.) corresponding to a symbol in a symbol image.

처리 장치(104)에 모듈은 유선 연결 또는 무선 연결을 통해 서로 연결되거나 통신할 수 있다. 유선 연결은 금속 케이블, 광 케이블, 하이브리드 케이블, 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 무선 연결은 근거리 통신망(LAN), 원거리 통신망(WAN), 블루투스, 지그비, 근거리 자기장 통신(NFC), 또는 그와 유사한 것, 또는 그의 임의의 조합을 포함할 수 있다. 모듈 중 두 개 이상은 단일 모듈에 조합될 수 있고, 모듈 중 임의의 하나는 두 개 이상의 유닛으로 나누어질 수 있다. 예를 들어, 처리 장치(104)는 위에 언급된 모듈과 연관된 정보 및/또는 데이터(예를 들어, 스캐닝 데이터, 이미지)를 저장하도록 구성된 저장 모듈(미도시)을 포함할 수 있다.Modules in the processing device 104 may be connected to or communicate with each other via wired or wireless connections. Wired connections may include metal cables, optical cables, hybrid cables, or the like, or any combination thereof. A wireless connection may include Local Area Network (LAN), Wide Area Network (WAN), Bluetooth, ZigBee, Near Field Communication (NFC), or the like, or any combination thereof. Two or more of the modules may be combined into a single module, and any one of the modules may be divided into two or more units. For example, processing device 104 may include a storage module (not shown) configured to store information and/or data (eg, scanning data, images) associated with the modules noted above.

도 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, process 500 can be executed on image processing system 100 shown in FIG. 1 . For example, process 500 may be stored in the form of instructions on a storage medium (eg, network storage device 113 or storage 227 of computing device 220) and may be performed by processing device 104. can be called and/or executed. It is intended to illustrate the operation of process 500 presented below. In some implementations, process 500 can be accomplished with one or more additional actions not described and/or without one or more of the discussed actions. Additionally, the order in the operation of process 500 as shown in FIG. 5 and described below may not be intended to be limiting.

(510)에서, 처리 장치(104)(예를 들어, 프로세서(222), 획득 모듈(410))는 심볼 영역에 복수의 심볼 문자를 포함하는 심볼 이미지를 획득할 수 있다.At 510, the processing device 104 (eg, the processor 222 or the acquisition module 410) may obtain a symbol image including a plurality of symbol characters in a symbol region.

심볼 이미지는 심볼의 이미지일 수 있다. 일부 구현예에서, 심볼 이미지는 이미지 처리 시스템(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, scanner 102 or media server 103) of image processing system 100. In some implementations, a symbol in a symbol image may be a barcode. Exemplary barcodes may include Code 16K, Code 49, PDF 417, Micro PDF 417, Code One, Maxi Code, Quick Response (QR) Code, Data Matrix, Hanshin Code, Grid Matrix, and the like. Unless explicitly stated otherwise, the following description is provided for illustration and not intended to be limiting with reference to the PDF 417 barcode.

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 symbol text 700 may be in a dotted box. The symbol character 700 may include 4 bars and 4 spaces. The 4 bars and 4 spaces can be represented by the black and white parts of the dotted box, respectively.

일부 구현예에서, 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 numbers 1 through 17 above symbol character 700 as shown in FIG. 7 . The 17 blocks may have the same width along the length direction of the symbol (eg, the horizontal direction in FIG. 7 ). Each block may have a stripe shape. A length direction of each stripe may be perpendicular to a length direction of a symbol (eg, a symbol width direction).

심볼 문자(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 symbol character 700, the first bar corresponds to 5 blocks, the first space corresponds to 1 block, the second bar corresponds to 1 block, and the second space corresponds to 1 block. , the third bar corresponds to one block, the third space corresponds to one block, the fourth bar corresponds to two blocks, and the fourth space corresponds to five blocks. Illustratively, the width of each of the four bars and spaces may be labeled under the corresponding bars or spaces in FIG. 7 . In this case, the symbol character 700 represented by bars and spaces can be represented by the codeword string 51111125. Data (eg, numbers, text, etc.) encoded in the symbol character 700 can be decoded based on the codeword string 51111125.

심볼 이미지에 각각의 블록은 심볼 이미지의 하나 이상의 픽셀에 상응할 수 있다. 단지 본 개시의 더 나은 이해를 위해, 각각의 블록은 심볼 이미지에서 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, processor 222, row line determination module 420) may determine a plurality of row lines along the length of the symbol.

일부 구현예에서, 심볼 이미지를 획득할 시에, 처리 장치(104)는 포지셔닝 박스를 사용하여 심볼의 길이 방향을 결정할 수 있다. 일부 구현예에서, 포지셔닝 박스는 직사각형 박스일 수 있다. 일부 구현예에서, 처리 장치(104)는 심볼의 에지를 식별할 수 있다. 심볼의 에지는 심볼 이미지에 픽셀에 기반해서 식별될 수 있다. 예를 들어, 처리 장치(104)는 심볼 이미지에 모든 픽셀의 그레이 값을 획득할 수 있다. 심볼에서 시작 심볼 문자, 끝 심볼 문자, 및 복수의 심볼 문자의 바의 색상은 검은색이기 때문에, 바에 상응하는 픽셀의 그레이 값은 상대적으로 작을 수 있다(예를 들어, 0). 처리 장치(104)는 픽셀의 그레이 값에 기반해서 심볼의 에지를 식별할 수 있다. 처리 장치(104)는 심볼의 식별된 에지에 기반해서 크기, 위치, 및/또는 포지셔닝 박스의 배향을 조절할 수 있다. 포지셔닝 박스의 배향은 포지셔닝 박스의 길이 방향과 평행할 수 있다. 일부 구현예에서, 심볼의 에지가 포지셔닝 박스의 에지와 일치하거나 실질적으로 일치할 때까지, 처리 장치(104)는 크기, 위치, 및/또는 포지셔닝 박스의 배향을 동적으로 조절할 수 있다. 포지셔닝 박스의 배향은 심볼의 길이 방향으로서 결정될 수 있다. In some implementations, upon obtaining a symbol image, processing unit 104 can use a positioning box to determine the length direction of the symbol. In some implementations, the positioning box can be a rectangular box. In some implementations, processing unit 104 can identify an edge of a symbol. The edge of a symbol can be identified based on the pixels in the symbol image. For example, the processing device 104 may obtain gray values of all pixels in the symbol image. Since the color of the bar of the start symbol character, the end symbol character, and the plurality of symbol characters in the symbol is black, the gray value of the pixel corresponding to the bar may be relatively small (eg, 0). The processing unit 104 can identify the edge of a symbol based on the gray value of the pixel. The processing unit 104 may adjust the size, position, and/or orientation of the positioning box based on the identified edge of the symbol. The orientation of the positioning box may be parallel to the longitudinal direction of the positioning box. In some implementations, processing device 104 can dynamically adjust the size, position, and/or orientation of the positioning box until the edge of the symbol coincides with or substantially coincides with the edge of the positioning box. The orientation of the positioning box can be determined as the length direction of the symbol.

심볼의 길이 방향이 결정된 후에, 처리 장치(104)는 복수의 행 라인을 결정할 수 있다. 일부 구현예에서, 포지셔닝 박스에 픽셀은 제 1 복수의 행 및 제 2 복수의 열에 있을 수 있다. 제 1 복수의 행의 각각의 행 방향은 심볼의 길이 방향과 평행할 수 있다. 제 2 복수의 열의 각각의 열 방향은 심볼의 길이 방향에 수직일 수 있다. 일부 구현예에서, 복수의 행 라인의 각각은 포지셔닝 박스에 동일한 행에 픽셀을 연결함으로써 결정될 수 있다. 대안적으로, 다중 스캔 라인은 결정될 수 있다. 일부 구현예에서, 다중 스캔 라인은 심볼의 길이 방향과 평행할 수 있다. 각각의 스캔 라인은 포지셔닝 박스에 동일한 행에 픽셀을 횡단할 수 있다. 다중 스캔 라인은 행 라인으로서 결정될 수 있다. 일부 구현예에서, 복수의 행 라인 중 적어도 하나는 직선일 수 있다. 일부 구현예에서, 복수의 행 라인 중 적어도 하나는 곡선일 수 있다. 복수의 행 라인 중 각각 두 개의 이웃하는 행 라인의 각각은 동일한 거리 또는 다른 거리를 가질 수 있다.After the length direction of the symbol is determined, processing unit 104 may determine a plurality of row lines. In some implementations, the pixels in the positioning box can be in a first plurality of rows and a second plurality of columns. A row direction of each of the first plurality of rows may be parallel to a length direction of the symbol. A column direction of each of the second plurality of columns may be perpendicular to the length direction of the symbol. In some implementations, each of the plurality of row lines can be determined by connecting a pixel to the same row in a positioning box. Alternatively, multiple scan lines may be determined. In some implementations, multiple scan lines can be parallel to the length direction of a symbol. Each scan line may cross pixels on the same row in the positioning box. Multiple scan lines can be determined as row lines. In some implementations, at least one of the plurality of row lines can be straight. In some implementations, at least one of the plurality of row lines can be curved. Each of each of two neighboring row lines of the plurality of row lines may have the same distance or different distances.

단지 도시 목적을 위해, 심볼 이미지에서 예시적인 행 라인은 도 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 . Symbol image 800 may include symbol 810 . The pixels in the symbol image 800 may be in eight rows. Thus, eight row lines can be determined by connecting pixels to the same row. As shown in FIG. 8, eight row lines L1 to L8 may be determined. L1 through L8 may cross pixels in different rows of symbol 810 .

(530)에서, 처리 장치(104)(예를 들어, 프로세서(222), 문자 영역 결정 모듈(430))는 복수의 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계를 결정할 수 있다.At 530, processing unit 104 (e.g., processor 222, character area determination module 430) may determine a plurality of column boundaries among the plurality of symbol characters based on the plurality of row lines.

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 processing unit 104 may determine a plurality of column boundaries between the plurality of symbol characters. Each of the plurality of column boundaries may correspond to two adjacent columns of symbol characters of the plurality of symbol characters. In some implementations, the plurality of column boundaries may be determined based on the plurality of row lines. In some implementations, the plurality of column boundaries may be determined by identifying pixels on the column boundary corresponding to two adjacent columns of the plurality of symbol characters from the plurality of row lines.

일부 구현예에서, 처리 장치(104)는 복수의 심볼 문자와 연관된 참조 심볼 문자의 폭을 결정할 수 있다. 참조 심볼 문자는 심볼에 특정 심볼 문자를 언급할 수 있다. 참조 심볼 문자는 심볼 영역에 심볼 문자의 폭을 결정하도록 사용될 수 있다. 일부 구현예에서, 참조 심볼 문자는 시작 심볼 문자(예를 들어, 도 6에 도시된 바와 같이 시작 심볼 문자 A) 또는 끝 심볼 문자(예를 들어, 도 6에 도시된 바와 같이 끝 심볼 문자 C)일 수 있다. PDF 417 바코드에 관해서, 심볼 영역에서 복수의 심볼 문자는 동일한 폭을 가질 수 있다. 시작 심볼 문자의 폭은 심볼 영역에 심볼 문자의 폭과 동일할 수 있다. 끝 심볼 문자의 폭은 심볼 영역에 심볼 문자의 폭에 비례할 수 있다.In some implementations, processing unit 104 can determine the width of a reference symbol character associated with a plurality of symbol characters. A reference symbol character can refer to a symbol character specific to a symbol. A reference symbol character can be used to determine the width of a symbol character in a symbol area. In some implementations, the reference symbol character is a start symbol character (eg, start symbol character A as shown in FIG. 6 ) or an end symbol character (eg, end symbol character C as shown in FIG. 6 ). can be 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)는 심볼 이미지로부터 시작 심볼 문자 및 끝 심볼 문자를 식별할 수 있다. 시작 심볼 문자 및 끝 심볼 문자는 심볼 영역으로부터일 수 있다. 시작 심볼 문자는 심볼의 행 방향을 따라 시작 에지 및 끝 에지를 포함할 수 있다. PDF 417 바코드에 대해서, 시작 심볼 문자의 끝 에지는 심볼 영역의 시작 경계와 일치할 수 있다. 처리 장치(104)는 시작 심볼 문자의 끝 에지를 결정함으로써 심볼 영역의 시작 경계를 결정할 수 있다. 끝 심볼 문자는 또한 심볼의 행 방향을 따라 시작 에지 및 끝 에지를 포함할 수 있다. 끝 심볼 문자의 시작 에지는 심볼 영역의 끝 경계와 일치할 수 있다. 처리 장치(104)는 끝 심볼 문자의 시작 에지를 결정함으로써 심볼 영역의 끝 경계를 결정할 수 있다. 복수의 열 경계는 심볼 영역의 시작 경계와 끝 경계 사이에 결정될 수 있다.In some implementations, processing unit 104 can identify a start symbol character and an end symbol character from the symbol image. The start symbol character and the end symbol character may be from the symbol area. The start symbol character may include a start edge and an end edge along the row direction of the symbol. For PDF 417 barcodes, the ending edge of the start symbol character may coincide with the start boundary of the symbol area. The processing unit 104 may determine the start boundary of the symbol region by determining the end edge of the start symbol character. The ending symbol character may also include a starting edge and an ending edge along the row direction of the symbol. The start edge of the end symbol character may coincide with the end boundary of the symbol area. The processing unit 104 may determine the end boundary of the symbol region by determining the start edge of the end symbol character. A plurality of column boundaries may be determined between the start boundary and the end boundary of the symbol region.

일부 구현예에서, 처리 장치(104)는 참조 심볼 문자의 폭에 기반해서 참조 폭 범위를 결정할 수 있다. 이론적으로, PDF 417 바코드에 관해서, 시작 심볼 문자의 폭은 심볼 영역에 각각의 심볼 문자의 폭과 동일할 수 있다. 끝 심볼 문자의 폭은 심볼 영역에 각각의 심볼 문자의 폭에 비례할 수 있다. 그러나, 심볼 문자의 폭은 다양한 인자, 예를 들어, 심볼 이미지의 왜곡으로 인해 실제 위치에서 변할 수 있다. 따라서, 처리 장치(104)는 고려된 다양한 인자를 갖는 참조 폭 범위를 결정할 수 있다. 참조 폭 범위는 복수의 문자의 심볼 문자의 폭이 변할 수 있는 범위일 수 있다. 일부 구현예에서, 참조 폭 범위는 증분(예를 들어, 0.2 밀리미터, 0.5 밀리미터, 1 밀리미터, 1개의 픽셀, 2개의 픽셀)에 의해 참조 심볼 문자의 폭을 증가시키고 그리고/또는 감량(예를 들어, 0.2 밀리미터, 0.5 밀리미터, 1 밀리미터, 1개의 픽셀, 2개의 픽셀)에 의해 참조 심볼 문자의 폭을 감소시킴으로써 결정될 수 있다. 증분 및/또는 감량은 심볼 문자에 상응하는 오류로서 규정될 수 있다. 일부 구현예에서, 참조 폭 범위는 다른 명도 조건, 다른 이미지 해상도, 다른 이미지 품질(예를 들어, 잡음 레벨) 등과 같은 다른 상황 하에 조절가능할 수 있다.In some implementations, the processing unit 104 can determine the reference width range based on the width of the reference symbol character. Theoretically, for a PDF 417 barcode, the width of the start symbol character can be equal to the width of each symbol character in the symbol area. The width of the end symbol character may be proportional to the width of each symbol character in the symbol area. However, the width of a symbol character may change in an actual position due to various factors, for example distortion of a symbol image. Accordingly, the processing device 104 can determine a reference width range having various factors taken into account. The reference width range may be a range in which the width of symbol characters of a plurality of characters may vary. In some implementations, the reference width range increases and/or decreases (eg, 0.2 millimeter, 0.5 millimeter, 1 millimeter, 1 pixel, 2 pixels) the width of the reference symbol character. , 0.2 mm, 0.5 mm, 1 mm, 1 pixel, 2 pixels). Increments and/or decrements can be defined as errors corresponding to symbol characters. In some implementations, the reference width range may be adjustable under different circumstances, such as different brightness conditions, different image resolutions, different image quality (eg, noise levels), and the like.

처리 장치(104)는 인접한 심볼 문자와 참조 폭 범위 사이에 경계 특성에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계를 결정할 수 있다. PDF 417 바코드에 대해서, 현재의 심볼 문자의 제 4 공간이 심볼의 행 방향을 따라 인접한 심볼 문자의 제 1 바에 연속적일 수 있다. 행 방향에 두 개의 인접한 심볼 문자 사이에 열 경계는 현재의 심볼 문자의 제 4 공간에 마지막 블록의 색상 및 인접한 심볼 문자의 제 1 바에 제 1 블록의 색상이 행 방향을 따라 흰색에서 검은색으로 변할 수 있는 특성(열 경계 특성으로도 언급됨)을 가질 수 있다. 따라서, 블록의 픽셀의 그레이 값은 예를 들어, 행 방향을 따라 255로부터 0으로 감소할 수 있다. 복수의 열 경계의 결정에 관한 더 많은 기재는 본 개시에 다른 곳에서, 예를 들어, 도 12 및 그의 기재에서 발견될 수 있다.The processing unit 104 may determine a plurality of column boundaries among a plurality of symbol characters based on boundary characteristics between adjacent symbol characters and the reference width range. For a PDF 417 barcode, the fourth space of the current symbol character may be continuous with the first bar of adjacent symbol characters along the row direction of the symbol. The column boundary between two adjacent symbol characters in the row direction is such that the color of the last block in the fourth space of the current symbol character and the color of the first block in the first bar of the adjacent symbol character change from white to black along the row direction. properties (also referred to as thermal boundary properties). Thus, a gray value of a pixel of a block may decrease from 255 to 0 along the row direction, for example. More description regarding the determination of the plurality of thermal boundaries can be found elsewhere in this disclosure, for example in FIG. 12 and its description.

(540)에서, 처리 장치(104)(예를 들어, 프로세서(222), 문자 영역 결정 모듈(430))는 복수의 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 행 경계를 결정할 수 있다.At 540, processing unit 104 (e.g., processor 222, character area determination module 430) may determine a plurality of row boundaries among the plurality of symbol characters based on the plurality of row lines.

복수의 열 경계의 각각에 대해, 처리 장치(104)는 복수의 행 라인과 열 경계의 복수의 교차점(예를 들어, 픽셀)을 결정할 수 있다. 처리 장치(104)는 상향 트래버스를 수행할 수 있고 복수의 교차점 가운데 상부 교차점을 식별할 수 있다. 상향 트래버스는 열 경계를 따라 위로 하나하나씩 교차점을 횡단하기 위한 작동을 언급할 수 있다. 열 경계에 따른 상부 교차점 위의 픽셀(상부 픽셀로도 언급됨) 및 동일한 행에서 행 방향을 따른 상부 픽셀에 뒤이은 픽셀(상부 픽셀의 뒤이은 픽셀로도 언급됨)이 결정될 수 있다. 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀은 열 경계의 다른 측면에 위치될 수 있다.For each of the plurality of column boundaries, processing unit 104 may determine a plurality of intersections (eg, pixels) of the plurality of row lines and the column boundary. The processing unit 104 may perform an upward traverse and identify an upper intersection among the plurality of intersections. An upward traverse may refer to an operation to traverse an intersection point-by-point upward along a column boundary. The pixel above the upper intersection along the column boundary (also referred to as the upper pixel) and the pixel following the upper pixel along the row direction in the same row (also referred to as the pixel following the upper pixel) can be determined. The top pixel and the pixels that follow it may be located on the other side of the column boundary.

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)는 상부 교차점 및 상부 교차점의 뒤이은 픽셀, 및 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하는지 여부를 결정할 수 있다(즉, 상부 픽셀의 색상 및 상부 픽셀의 뒤이은 픽셀의 색상은 검은색이고, 두 개의 픽셀의 색상은 행 방향을 따라 흰색에서 검은색으로 변할 수 있다). 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하지 않고 상부 교차점 및 행 방향을 따른 상부 교차점에 뒤이은 픽셀이 열 경계 특성을 충족한다면(상부 픽셀 및 상부 교차점이 상부 경계 특성을 충족하는 것으로도 언급됨), 상부 교차점 및 상부 픽셀의 뒤이은 교차점이 심볼 영역의 상부 경계 상에 있을 수 있음을 나타낼 수 있다.Processing unit 104 may determine whether the top intersection and the pixel that follows the top intersection, and the top pixel and the pixel that follows the top pixel satisfy the column boundary characteristics (i.e., the color of the top pixel and the pixel that follows the top pixel). The color of the next pixel is black, and the color of the two pixels may change from white to black along the row direction). If the top pixel and the pixel following it do not satisfy the column boundary property and the top intersection and the pixel following the top intersection along the row direction satisfy the column boundary property (if the top pixel and the top intersection satisfy the top boundary property) Also referred to as), the upper intersection point and the subsequent intersection point of the upper pixel may be on the upper boundary of the symbol region.

일부 구현예에서, 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, processing device 104 may perform a downward traverse and identify a lower intersection among the plurality of intersections. A downward traverse may refer to an operation to traverse an intersection point-by-point downward along a column boundary. A pixel under the lower intersection along a column boundary (also referred to as a lower pixel) and a pixel succeeding the lower pixel along a row direction in the same row (also referred to as a pixel following a lower pixel) may be determined. The bottom pixel and the pixels that follow it may be located on the other side of the column boundary.

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 processing unit 104 may determine whether the lower intersection point and the pixel that follows the lower intersection point, and the lower pixel and the pixel that follows the lower pixel satisfy the column boundary property. If the bottom pixel and the pixels following it do not satisfy the column boundary property and the bottom intersection and the pixels following the bottom intersection along the row direction satisfy the column boundary property (the bottom pixel and the bottom intersection satisfy the bottom boundary property). Also referred to as ), it may indicate that the lower intersection point and the pixel that follows the lower intersection point may be on the lower boundary of the symbol region.

일부 구현예에서, 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 processing unit 104 may determine multiple row boundaries between multiple symbol characters. Each of the plurality of row boundaries may correspond to two adjacent rows of symbol characters of the plurality of symbol characters. In some implementations, the plurality of row boundaries can be determined based on the plurality of row lines. 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.

일부 구현예에서, 열 방향에서 두 개의 인접한 심볼 문자 사이의 바 및 공간의 폭은 다를 수 있다. 따라서, 열 방향에서 두 개의 인접한 심볼 문자 사이의 행 경계는 행 경계 상의 모든 픽셀의 색상이 행 경계의 제 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 unit 104 can sample a specific number or count of pixels on each row line from every pixel on each row line, each Multiple row boundaries can be determined among multiple symbol characters based on the sampled pixels on the row lines of . In some implementations, instead of traversing all of the plurality of row lines, processing unit 104 can sample a specific number or count of row lines from on the plurality of row lines, and based on the sampled row lines, the plurality of row lines. Multiple line boundaries can be determined among symbol characters.

(550)에서, 처리 장치(104)(예를 들어, 프로세서(222), 문자 영역 결정 모듈(430))는 복수의 열 경계 및 복수의 행 경계에 기반해서 복수의 심볼 문자의 각각에 대해 심볼 문자에 상응하는 문자 영역을 결정할 수 있다. At 550, processing unit 104 (e.g., processor 222, character area determination module 430) determines the symbol for each of the plurality of symbol characters based on the plurality of column boundaries and the plurality of row boundaries. A character area corresponding to a character may be determined.

심볼 영역의 시작 경계, 끝 경계, 상부 경계, 및 하부 경계가 결정되기 때문에, 복수의 열 경계 및 복수의 행 경계는 심볼 영역을 복수의 문자 영역으로 나눌 수 있다. 복수의 문자 영역의 각각은 복수의 심볼 문자 중 하나에 상응할 수 있다.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., processor 222, decoding module 440) may decode each symbol character based on the gray value associated with the character region corresponding to the symbol character. .

각각의 문자 영역에 관해서는, 처리 장치(104)는 문자 영역을 복수의 블록으로 나눌 수 있다. 일부 구현예에서, 문자 영역은 행 방향을 따라 복수의 블록(예를 들어, 17개의 블록)으로 나누어질 수 있다. 처리 장치(104)는 복수의 블록의 각각의 글로벌 그레이 값을 결정할 수 있다. 복수의 블록의 각각은 하나 이상의 픽셀(예를 들어, 1×4 픽셀(즉, 행에서 1개의 픽셀 및 열에서 4개의 픽셀))을 포함할 수 있다. 블록의 하나 이상의 픽셀의 그레이 값이 획득될 수 있다. 블록의 글로벌 그레이 값은 블록의 하나 이상의 픽셀의 그레이 값의 전체 표현일 수 있다. 일부 구현예에서, 블록의 글로벌 그레이 값은 블록의 하나 이상의 픽셀의 그레이 값의 평균 값일 수 있다.As for each text area, the processing unit 104 can divide the text area into a plurality of blocks. In some implementations, a character area can be divided into multiple blocks (eg, 17 blocks) along a row direction. The processing unit 104 may determine a global gray value of each of the plurality of blocks. Each of the plurality of blocks may include one or more pixels (eg, 1×4 pixels (ie, 1 pixel in a row and 4 pixels in a column)). 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.

일부 구현예에서, 처리 장치(104)는 복수의 블록의 글로벌 그레이 값에 기반해서 문자 영역에 상응하는 심볼 문자의 대조값을 결정할 수 있다. 일부 구현예에서, 처리 장치(104)는 문자 영역에 복수의 블록으로부터 제 1 유형의 블록(예를 들어, 심볼 문자의 공간에 속하는 블록) 및 제 2 유형의 블록(예를 들어, 심볼 문자의 바에 속하는 블록)을 특정할 수 있다. 심볼 문자의 대조값은 적어도 제 1 유형의 블록의 글로벌 그레이 값 및 제 2 유형의 블록의 글로벌 그레이 값에 기반해 결정될 수 있다.In some implementations, the processing unit 104 may determine a contrast value of the symbol character corresponding to the character area based on the global gray values of the plurality of blocks. In some implementations, the processing unit 104 divides a first type of block (e.g., a block belonging to a space of symbol characters) and a second type of block (e.g., a symbol character's block) from a plurality of blocks in the character area. block belonging to the bar) can be specified. The contrast value of the symbol character may be determined based on at least a global gray value of the first type block and a global gray value of the second type block.

문자 영역에 상응하는 심볼 문자의 대조값이 결정된 후에, 처리 장치(104)는 대조값에 기반해서 심볼 문자에 상응하는 코드워드를 결정할 수 있다. 일부 구현예에서, 처리 장치(104)는 복수의 미리설정된 코드워드(예를 들어, 2787개의 코드워드)를 획득할 수 있다. 복수의 코드워드의 각각은 미리결정된 코드워드 스트링에 상응할 수 있다. 복수의 미리설정된 코드워드의 각각의 참조 대조값은 상응하는 미리결정된 코드워드 스트링에 기반해서 결정될 수 있다. 그런 후에 처리 장치(104)는 각각의 코드워드의 참조 대조값 및 심볼 문자의 대조값에 기반해 복수의 미리설정된 코드워드의 각각과 심볼 문자 사이에 유사값을 결정한다. 처리 장치(104)는 유사값에 기반해서 심볼 문자에 상응하는 코드워드를 결정할 수 있다. 심볼 문자에 상응하는 코드워드는 심볼 이미지에 심볼에 상응하는 디코딩된 데이터(예를 들어, 숫자, 텍스트, 벡터 등)이거나 그를 포함할 수 있다. 심볼 문자의 디코딩에 관한 세부사항은 본 개시에 다른 곳에서, 예를 들어, 도 14 및 그의 기재에서 발견될 수 있다.After the comparison value of the symbol character corresponding to the character area is determined, the processing unit 104 may determine a codeword corresponding to the symbol character based on the comparison value. In some implementations, the processing unit 104 can obtain a plurality of preset codewords (eg, 2787 codewords). Each of the plurality of codewords may correspond to a predetermined codeword string. A reference collation value of each of the plurality of preset codewords may be determined based on the corresponding predetermined codeword string. Then, the processing unit 104 determines a similarity value between each of the plurality of preset codewords and the symbol character based on the reference collation value of each codeword and the collation value of the symbol character. The processing unit 104 may determine a codeword corresponding to the symbol character based on the similarity value. A codeword corresponding to a symbol character may be or include decoded data (eg, a number, text, vector, etc.) corresponding to a symbol in a symbol image. Details regarding the decoding of symbol characters may be found elsewhere in this disclosure, for example in FIG. 14 and its description.

일부 구현예에서, 디코딩된 데이터는 네트워크(112)를 통해 터미널(108)로 송신기(107)에 의해 전송될 수 있다. 터미널(108)은 네트워크(112)를 통해 심볼 이미지에 심볼에 상응하는 디코딩된 데이터를 수용하고 사용자에게 디코딩된 데이터를 표시하거나 지불, 신원 인증, 등록 등과 같은 추가 작동을 수행할 수 있다. In some implementations, the decoded data may be transmitted by transmitter 107 over network 112 to terminal 108 . Terminal 108 may accept decoded data corresponding to a symbol in a symbol image via network 112 and display the decoded data to a user or perform additional operations such as payment, identity authentication, registration, and the like.

본 개시의 일부 구현예에 따라서, 처리 장치(104)는 행 라인에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계 및 복수의 심볼 문자 가운데 복수의 행 경계, 열 경계 특성, 및 행 경계 특성을 결정할 수 있다. 심볼 영역은 복수의 심볼 문자 가운데 복수의 열 경계 및 복수의 심볼 문자 가운데 복수의 행 경계에 기반해서, 복수의 문자 영역으로 세그먼트화될 수 있다. 그런 후에 처리 장치(104)는 심볼 문자에 상응하는 문자 영역과 연관된 그레이 값에 기반해서 복수의 문자 영역의 각각에 상응하는 심볼 문자를 디코딩할 수 있다. 본 경우에, 복수의 심볼 문자의 각각의 위치는 더 정확하게 결정되고, 심볼 문자에 상응하는 코드워드는 복수의 미리설정된 코드워드에 기반해서 더 효율적으로 그리고 정확하게 결정될 수 있고, 이미지 왜곡, 고르지 않은 빛 등과 같은 인자에 의해 야기된 디코딩 프로세스에서 오류는 감소되거나 제거될 수 있고, 따라서 디코딩 프로세스의 효과성 및 정확성을 개선한다.According to some implementations of the present disclosure, the processing unit 104 determines a plurality of column boundaries among a plurality of symbol characters and a plurality of row boundaries, column boundary characteristics, and row boundary characteristics among a plurality of symbol characters based on row lines. can The symbol area may be segmented into a plurality of character areas based on a plurality of column boundaries among a plurality of symbol characters and a plurality of row boundaries among a plurality of symbol characters. Then, the processing unit 104 may decode the symbol character corresponding to each of the plurality of character areas 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 based on the plurality of preset codewords, image distortion, uneven light Errors in the decoding process caused by factors such as and the like can be reduced or eliminated, thus improving the effectiveness and accuracy of the decoding process.

위의 기재는 단지 도시의 목적을 위해 제공되고 본 개시의 범위를 한정하도록 의도되지 않음이 언급되어야만 한다. 해당 기술분야의 통상의 기술자에게, 다중 변형 및 수정이 본 개시의 교시 하에 이루어질 수 있다. 그러나, 그러한 변형 및 수정은 본 개시의 범위에서 벗어나지 않는다.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 symbol image 1100 including a symbol 1110 is provided. A plurality of scan lines L 1 to L n may be determined in the symbol image 1100 . Two adjacent scan lines among the plurality of scan lines L 1 to L n may have the same distance or different distances. The plurality of scan lines L 1 to L n may be parallel to the length direction of the symbol 1110 . Each of the plurality of scan lines (L 1 -L n ) may cross pixels in the same row in the symbol region ABCD. The processing device 104 may determine a plurality of column boundaries (S 1 to S n ) between a plurality of symbol characters in the symbol region ABCD. In some implementations, the plurality of thermal boundaries (S 1 -S n ) may be determined based on the plurality of scan lines (L 1 -L n ).

복수의 열 경계(S1 - Sn)의 각각에 대해, 처리 장치(104)는 복수의 스캔 라인과 열 경계의 복수의 교차점을 결정할 수 있다. 처리 장치(104)는 복수의 교차점 가운데 최상부 위치에 교차점(상부 교차점으로도 언급됨)을 식별할 수 있다. 처리 장치(104)는 상부 지점이 식별될 때까지 최상부 위치에 교차점으로부터 상향 트래버스를 더 수행할 수 있다. 상향 트래버스는 열 경계를 따라 위로 하나하나씩 최상부 위치에 교차점 위의 위치를 횡단하기 위한 작동일 수 있다. PDF 417 바코드에 대해서, 심볼 영역 ABCD의 상부 경계(Lu)는 상부 지점 및 행 방향을 따른 상부 지점에 뒤이은 지점이 열 경계 특성을 충족하지 않고, 열 경계를 따른 상부 지점 아래의 참조 지점 및 행 방향을 따른 참조 지점에 뒤이은 지점이 열 경계 특성을 충족하는 특성(상부 경계 특성으로도 언급됨)을 가질 수 있다. 참조 지점 및 참조 지점에 뒤이은 지점은 심볼 영역(ABCD)의 상부 경계(Lu) 상에 있을 수 있다. 일부 구현예에서, 상부 지점, 참조 지점, 상부 지점에 뒤이은 지점, 및/또는 참조 지점에 뒤이은 지점은 최상부 위치에 교차점과 다를 수 있다. 일부 구현예에서, 상부 지점, 참조 지점, 상부 지점에 뒤이은 지점, 및/또는 참조 지점에 뒤이은 지점은 픽셀일 수 있다.For each of the plurality of thermal boundaries S 1 -S n , the processing device 104 may determine a plurality of intersections of the plurality of scan lines and the column boundary. The processing device 104 may identify an intersection point (also referred to as an upper intersection point) at an uppermost position among the plurality of intersection points. Processing unit 104 may further perform an upward traverse from the intersection point to the top position until an upper point is identified. An upward traverse may be an operation to traverse the location above the junction to the top location one-by-one up along the column boundary. For PDF 417 barcodes, the upper boundary (L u ) of the symbol area ABCD is such that the upper point and the point following the upper point along the row direction do not satisfy the column boundary characteristics, and the reference point below the upper point along the column boundary and A point following the reference point along the row direction may have a property (also referred to as an upper boundary property) that satisfies the column boundary property. The reference point and the points following the reference point may be on the upper boundary L u of the symbol region ABCD. In some implementations, the upper point, the reference point, the point following the upper point, and/or the point following the reference point may differ from the intersection at the topmost location. In some implementations, the top point, the reference point, the point following the top point, and/or the point following the reference point can be a pixel.

상부 경계 특성에 따라서, 상부 지점 및 행 방향을 따른 상부 지점에 뒤이은 지점(상부 지점의 뒤이은 지점으로도 언급됨)이 결정될 수 있다. 상부 지점 및 상부 지점의 뒤이은 지점은 열 경계의 다른 측면에 위치될 수 있다. 처리 장치(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 processing device 104 may determine whether the upper point and the point following the upper point, and the reference point below the upper point and the point following the reference point satisfy the thermal boundary characteristic. If the top point and the point following the top point, and the reference point below the top point and the point following the reference point satisfy the thermal boundary property (i.e., the top point and the reference point satisfy the top boundary property), then it is a reference point. It may indicate that the point following the point and the reference point may be on the upper boundary (L u ) of the symbol region ABCD. In some implementations, the upper boundary (L u ) of the symbol region ABCD may be determined based on a plurality of reference points corresponding to the plurality of column boundaries (S 1 -S n ). In some implementations, the RANSAN algorithm can be used to determine the upper boundary (L u ) of the symbol region ABCD based on a plurality of reference points. Similarly, the lower boundary (L d ) of the symbol region ABCD can be determined.

도 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, process 1200 can be executed on image processing system 100 shown in FIG. 1 . For example, process 1200 may be stored in the form of instructions on a storage medium (eg, network storage device 113 or storage 227 of computing device 220) and performed by processing device 104. can be called and/or executed. It is intended to illustrate the operation of process 1200 presented below. In some implementations, process 1200 can be accomplished with one or more additional actions not described and/or without one or more of the discussed actions. Additionally, the order in the operation of process 1200 as shown in FIG. 12 and described below may not be limiting.

(1210)에서, 처리 장치(104)는 복수의 심볼 문자와 연관된 참조 심볼 문자의 폭을 결정할 수 있다.At 1210, processing unit 104 may determine a width of a reference symbol character associated with the plurality of symbol characters.

일부 구현예에서, 참조 심볼 문자는 시작 심볼 문자 또는 끝 심볼 문자일 수 있다. 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 unit 104 can obtain a codeword string corresponding to the reference symbol character. A codeword string corresponding to a reference symbol character may also be referred to as a predetermined codeword string. In some implementations, the predetermined codeword string may be a standard codeword string. In some other implementations, the predetermined codeword string corresponding to the reference symbol character may be determined by a user according to default settings of the image processing system 100 or the like.

일부 구현예에서, 처리 장치(104)는 미리결정된 코드워드 스트링에 기반해서 참조 심볼 문자의 바 및 공간의 배열 및/또는 폭을 결정할 수 있다. 일부 구현예에서, 처리 장치(104)는 참조 심볼 문자의 바 및 공간에 상응하는 픽셀의 적어도 부분의 그레이 값을 더 결정할 수 있다. 단지 예시를 통해서, 픽셀의 적어도 부분은 예를 들어, 참조 심볼 문자의 바 및 공간에 상응하는 적어도 하나의 행에 픽셀일 수 있다. 픽셀의 적어도 부분의 그레이 값은 미리결정된 그레이 값으로 언급될 수 있다.In some implementations, processing unit 104 can determine the arrangement and/or width of bars and spaces of reference symbol characters based on a predetermined codeword string. In some implementations, processing unit 104 may further determine gray values of at least a portion of the pixels corresponding to the bars and spaces of the reference symbol character. By way of example only, at least a portion of the pixels may be, for example, pixels in at least one row corresponding to the bars and spaces of the reference symbol character. A gray value of at least a portion of a pixel may be referred to as a predetermined gray value.

미리결정된 그레이 값이 결정된 후에, 처리 장치(104)는 복수의 행 라인 중 적어도 하나 상에 픽셀의 그레이 값과 참조 심볼 문자에 상응하는 미리결정된 그레이 값을 비교할 수 있다. 비교에 기반해서, 처리 장치(104)는 적어도 하나의 행 라인 상의 적어도 하나의 라인 세그먼트를 식별할 수 있다. 적어도 하나의 라인 세그먼트의 픽셀의 그레이 값은 미리결정된 그레이 값에 맞출 수 있다. 처리 장치(104)는 참조 심볼 문자의 폭으로서 적어도 하나의 라인 세그먼트의 길이를 지시할 수 있다.After the predetermined gray value is determined, the processing unit 104 may compare the gray value of the pixel on at least one of the plurality of row lines with the predetermined gray value corresponding to the reference symbol character. Based on the comparison, processing device 104 may identify at least one line segment on at least one row line. A gray value of a pixel of at least one line segment may match a predetermined gray value. The processing unit 104 may indicate the length of at least one line segment as the width of the reference symbol character.

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 start symbol character 1310 is eight pixels as first bar, one pixel as first space, one pixel as second bar, one pixel as second space, one pixel as third bar, third space It may include one pixel as , one pixel as the fourth bar, and three pixels as the fourth space. A gray value (ie, a predetermined gray value) of a pixel corresponding to the start symbol character 1310 may be determined. Processing device 104 can identify at least one line segment 1030 on row line 1320 based on the predetermined gray value. A gray value of a pixel of at least one line segment 1330 may match a predetermined gray value. The processing unit 104 may indicate the length of the line segment 1320 as the width of the start symbol character. The predetermined codeword string (also referred to as the ending codeword string) corresponding to the ending symbol character may be 711311121. The width of the end symbol character can be similarly determined.

일부 구현예에서, 처리 장치(104)는 적어도 하나의 라인 세그먼트가 결정될 때 심볼 이미지로부터 참조 심볼 문자를 식별할 수 있다. 라인 세그먼트의 각각은 시작 지점 및 끝 지점을 포함할 수 있다. 두 개 이상의 라인 세그먼트의 시작 지점은 참조 심볼 문자의 시작 에지를 형성할 수 있다. 두 개 이상의 라인 세그먼트의 끝 지점은 참조 심볼 문자의 끝 에지를 형성할 수 있다.In some implementations, processing unit 104 can identify a reference symbol character from a symbol image when at least one line segment is determined. Each of the line segments may include a start point and an end point. The starting points of two or more line segments may form the starting edges of reference symbol characters. The ending points of two or more line segments may form the ending edge of a reference symbol character.

구체적으로, 처리 장치(104)는 복수의 행 라인 상의 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트를 식별할 수 있다. 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점(시작 심볼 문자의 끝 지점으로도 언급됨)은 시작 심볼 문자의 끝 에지를 형성할 수 있다. 일부 구현예에서, 랜덤 샘플 콘센서스(RANSAN) 알고리즘은 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점에 기반해서 시작 심볼 문자의 끝 에지를 결정하도록 사용될 수 있다. 일부 구현예에서, 시작 심볼 문자의 끝 에지는 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점에 기반해서 RANSAN 알고리즘에 따라 라인을 맞춤으로써 결정될 수 있다. PDF 417 바코드에 대해서, 시작 심볼 문자는 심볼 영역으로부터일 수 있다. 시작 심볼 문자의 끝 에지는 심볼 영역의 시작 경계와 일치할 수 있다. 본 경우에, 심볼 영역의 시작 경계가 결정될 수 있다.Specifically, processing unit 104 may identify two or more line segments corresponding to start symbol characters on multiple row lines. The ending points of two or more line segments corresponding to the start symbol character (also referred to as the end points of the start symbol character) may form the end edges of the start symbol character. In some implementations, a random samples 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.

유사하게, 처리 장치(104)는 복수의 행 라인 상의 끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트를 식별할 수 있다. 끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 시작 지점(끝 심볼 문자의 시작 지점으로도 언급됨)은 끝 심볼 문자의 시작 에지를 형성할 수 있다. 일부 구현예에서, RANSAN 알고리즘은 끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 시작 지점에 기반해서 끝 심볼 문자의 시작 에지를 결정하도록 사용될 수 있다. PDF 417 바코드에 대해서, 끝 심볼 문자는 심볼 영역으로부터일 수 있다. 시작 심볼 문자의 시작 에지는 심볼 영역의 끝 경계와 일치할 수 있다. 본 경우에, 심볼 영역의 끝 경계가 결정될 수 있다. 복수의 열 경계는 심볼 영역의 시작 경계와 끝 경계 사이에 결정될 수 있다.Similarly, processing unit 104 may identify two or more line segments corresponding to end symbol characters on multiple row lines. The starting point of two or more line segments corresponding to the ending symbol character (also referred to as the starting point of the ending symbol character) may form the starting edge of the ending symbol character. In some implementations, the 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. 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. A plurality of column boundaries may be determined between the start boundary and the end boundary of the symbol region.

(1220)에서, 처리 장치(104)는 참조 심볼 문자의 폭에 기반해서 참조 폭 범위를 결정할 수 있다.At 1220, processing unit 104 may determine a reference width range based on the width of the reference symbol character.

일부 구현예에서, 참조 폭 범위는 증분(예를 들어, 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 processing unit 104 may determine a reference width range for each of a plurality of symbol characters in the symbol area based on the width of the start symbol character and an error corresponding to the symbol character. If the reference symbol character is the end symbol character, the processing unit 104 determines the reference width range for each of a plurality of symbol characters in the symbol area based on the width of the end symbol character, the width ratio, and the error corresponding to the symbol character. can The width ratio may be the ratio of the width of the symbol character to the width of the end symbol character.

도 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 processing unit 104 may determine a plurality of column boundaries among the plurality of symbol characters based on boundary characteristics between adjacent symbol characters and the reference width range.

도 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 last block 920 of symbol character M (represented by four pixels in a column) and the color of the first block 930 of symbol character N (represented by four pixels in a column) are white to black along the row direction. can change color. Accordingly, the gray values of the pixels of blocks 920 and 930 may decrease along the row direction (eg, from 255 to 0).

일부 구현예에서, 두 개 이상의 복수의 행 라인에 대해, 처리 장치(104)는 인접한 심볼 문자와 참조 폭 범위 사이에 열 경계 특성을 충족하는 심볼 영역에 복수의 행 라인 중 적어도 두 개 상의 복수의 픽셀 또는 지점(예를 들어, 픽셀, 각각이 두 개의 연속적인 픽셀 사이에 있는 중점 등)을 식별할 수 있다. RANSAN 알고리즘은 복수의 지점에 기반해서 복수의 열 경계를 결정하도록 사용될 수 있다. RANSAN 알고리즘은 도시 목적을 위해 제공되고 제한하도록 의도되지 않음이 언급되어야만 한다. 곡선 맞춤을 위한 임의의 알고리즘 또는 모델은 복수의 심볼 문자 가운데 열 경계를 결정하도록 사용될 수 있다.In some implementations, for two or more plurality of row lines, processing unit 104 directs the plurality of row lines on at least two of the plurality of row lines to symbol regions that satisfy column boundary characteristics between adjacent symbol characters and reference width ranges. A pixel or point (eg, a pixel, midpoint each between two consecutive pixels, etc.) can be identified. The RANSAN algorithm can be used to determine multiple thermal boundaries based on multiple points. It should be noted that the RANSAN algorithm is provided for illustrative purposes and is not intended to be limiting. Any algorithm or model for curve fitting may be used to determine column boundaries among a plurality of symbol characters.

단지 도시 목적을 위해, 도 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 symbol image 800 . In some implementations, a plurality of pixels on a plurality of row lines (L1-L8) that satisfy a column boundary characteristic between adjacent symbol characters and reference width ranges may be identified. Column boundaries S1-S5 may be formed based on a plurality of identified pixels and a RANSAN algorithm.

도 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, process 1400 can be executed on image processing system 100 shown in FIG. 1 . For example, process 1400 may be stored in the form of instructions on a storage medium (eg, network storage device 113 or storage 227 of computing device 200) and may be performed by processing device 104. can be called and/or executed. Process 1400 presented below is intended to illustrate operation. In some implementations, process 1400 can be accomplished with one or more additional actions not described and/or without one or more of the discussed actions. Additionally, the order in the operation of process 1400 as shown in FIG. 14 and described below may not be limiting. In some implementations, operation 560 of process 500 in FIG. 5 may be performed according to process 1400 .

(1410)에서, 처리 장치(104)는 행 방향을 따라서 심볼 문자에 상응하는 문자 영역을 복수의 블록으로 나눌 수 있다.In step 1410, the processing unit 104 divides the character area corresponding to the symbol character into a plurality of blocks along the row direction.

일부 구현예에서, 처리 장치(104)는 행 방향을 따라서 심볼 문자에 상응하는 문자 영역을 블록의 미리설정된 개수 또는 카운트로 동일하게 나눌 수 있다. PDF 417 바코드에 대해서, 미리설정된 개수 또는 카운트는 17일 수 있다.In some implementations, processing unit 104 may equally divide a character area corresponding to a symbol character along a row direction into a predetermined number or count of blocks. For PDF 417 barcodes, the preset number or count may be 17.

(1420)에서, 처리 장치(104)는 복수의 블록의 각각의 글로벌 그레이 값을 결정할 수 있다.At 1420, the processing device 104 may determine a global gray value for each of the plurality of blocks.

복수의 블록의 각각은 하나 이상의 픽셀을 포함할 수 있다. 단지 예시를 통해, 블록은 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 data imaging system 100 or the like. In some implementations, a particular pixel can be randomly selected from one or more pixels.

(1430)에서, 처리 장치(104)는 복수의 블록의 글로벌 그레이 값에 기반해서 심볼 문자의 대조값을 결정할 수 있다.At 1430, the processing unit 104 may determine a contrast value of the symbol character based on the global gray values of the plurality of blocks.

일부 구현예에서, 처리 장치(104)는 문자 영역에서 복수의 블록으로부터 제 1 유형의 블록 및 제 2 유형의 블록을 식별할 수 있다. 일부 구현예에서, 제 1 유형의 블록은 심볼 문자의 공간에 속하는 블록을 언급할 수 있고, 제 2 유형의 블록은 심볼 문자의 바에 속하는 블록을 언급할 수 있다. 본 경우에, 제 1 유형의 블록은 흰색 색상에 있을 수 있고, 제 2 유형의 블록은 검은색 색상에 있을 수 있다. 대안적으로, 제 1 유형의 블록은 심볼 문자의 바에 속하는 블록을 언급할 수 있고, 제 2 유형의 블록은 심볼 문자의 공간에 속하는 블록을 언급할 수 있다.In some implementations, processing unit 104 can identify a first type of block and a second type of block from a plurality of blocks in the text area. In some implementations, a first type of block may refer to a block belonging to a space of symbol characters, and a second type of block may refer to a block belonging to a bar of symbol characters. In this case, the first type of block may be in white color and the second type of block may be in black color. Alternatively, a first type of block may refer to a block belonging to a bar of symbol characters, and a second type of block may refer to a block belonging to a space of symbol characters.

일부 구현예에서, 처리 장치(104)는 복수의 블록의 글로벌 그레이 값에 기반해서 문자 영역에서 복수의 블록으로부터 제 1 유형의 블록 및 제 2 유형의 블록을 식별할 수 있다. 제 1 유형의 블록이 심볼 문자의 공간에 속하는 블록을 포함하고, 제 2 유형의 블록이 심볼 문자의 바에 속하는 블록을 포함하는 경우에, 제 1 유형의 블록은 더 큰 글로벌 그레이 값(예를 들어, 255, 240, 230, 220 등)을 가질 수 있고, 제 2 유형의 블록은 더 작은 글로벌 그레이 값(예를 들어, 0, 10, 20, 30 등)을 가질 수 있다.In some implementations, the processing unit 104 can identify a first type of block and a second type of block from the plurality of blocks in the text area based on the global gray values of the plurality of blocks. If a block of the first type includes a block belonging to a space of symbol characters and a block of a second type includes a block belonging to a bar of symbol characters, the block of the first type has a larger global gray value (e.g. , 255, 240, 230, 220, etc.), and the second type block may have a smaller global gray value (eg, 0, 10, 20, 30, etc.).

일부 구현예에서, 심볼 문자의 대조값은 적어도 제 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 processing device 104 may determine a first ratio of gray values of blocks of the first type to counts of blocks of the first type in the character area. Similarly, the processing unit 104 may determine a second ratio of gray values of blocks of the second type to counts of blocks of the second type in the character area. The contrast value of the symbol character may be determined based on a difference value between the first ratio and the second ratio. By way of example only, the contrast value of a symbol character can be determined according to Equation (1):

Figure pct00001
Figure pct00001

여기서, 대조(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 unit 104 may determine a codeword corresponding to the symbol character based on the comparison value.

일부 구현예에서, 처리 장치(104)는 복수의 미리설정된 코드워드(예를 들어, 2787개의 코드워드)를 획득할 수 있다. 복수의 미리설정된 코드워드는 예를 들어, 이미지 처리 시스템(100)의 저장 장치(예를 들어, 네트워크 저장 장치(113), 또는 컴퓨팅 장치(228)의 저장소(227) 등) 또는 외부 장치(예를 들어, 클라우드 데이터베이스)로부터 획득될 수 있다. 일부 구현예에서, 복수의 미리설정된 코드워드는 수(예를 들어, 자연수)일 수 있다. 복수의 코드워드의 각각은 미리결정된 코드워드 스트링에 상응할 수 있다. 복수의 미리설정된 코드워드와 복수의 미리결정된 코드워드 스트링 사이의 상응 관계는 매트릭스, 벡터, 데이터 어레이, 표 등에 제공될 수 있다. 단지 도시 목적을 위해, 복수의 코드워드 및 상응하는 코드워드 스트링이 표 1에 제공된다.In some implementations, the processing unit 104 can obtain a plurality of preset codewords (eg, 2787 codewords). The plurality of preset codewords may be, for example, a storage device of the image processing system 100 (eg, a network storage device 113, or a storage device 227 of the computing device 228, etc.) or an external device (eg, For example, it can be obtained from a cloud database). In some implementations, the plurality of preset codewords can be numbers (eg, natural numbers). Each of the plurality of codewords may correspond to a predetermined codeword string. Corresponding relationships between the plurality of preset codewords and the plurality of predetermined codeword strings may be provided in a matrix, vector, data array, table, or the like. For illustrative purposes only, a plurality of codewords and corresponding codeword strings are provided in Table 1.

코드워드 스트링codeword string 미리설정된
코드워드
preset
code word
코드워드 스트링codeword string 미리설정된
코드워드
preset
code word
코드워드 스트링codeword string 미리설정된
코드워드
preset
code word
3111113631111136 00 5111115251111152 22 3111123531111235 33 4111124341111243 44 5111125151111251 55 2111132621111326 66 3111133431111334 77 2111142521111425 88 1111151611111516 99 2111152421111524 1010 1111161511111615 1111 2111213621112136 1212 3111214431112144 1313 4111215241112152 1414 2111223521112235 1515

일부 구현예에서, 복수의 미리설정된 코드워드의 각각의 참조 대조값이 결정될 수 있다. 일부 구현예에서, 복수의 미리설정된 코드워드의 각각의 참조 대조값의 결정은 수학식(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 processing unit 104 may determine a codeword corresponding to the symbol character based on the similarity value. In some implementations, similar values can be sorted (eg, in ascending or descending order). The processing device 104 may identify the greatest similarity value from the determined similarity values. A preset codeword corresponding to the identified similar value may be determined as a codeword corresponding to the symbol character.

도 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, process 1500 can be executed on image processing system 100 shown in FIG. 1 . For example, process 1500 may be stored in the form of instructions on a storage medium (eg, network storage device 113 or storage 227 of computing device 200) and may be performed by processing device 104. can be called and/or executed. The process 1500 presented below is intended to illustrate operation. In some implementations, process 1500 can be accomplished with one or more additional actions not described and/or without one or more of the discussed actions. Additionally, the order in the operation of process 1500 as shown in FIG. 15 and described below may not be limiting. For a better understanding of this disclosure, a process 1500 for decoding symbol characters is described in combination with FIG. 16, which is a schematic illustration of an exemplary PDF 417 barcode.

(1505)에서, 처리 장치(104)는 심볼 영역에 복수의 심볼 문자를 포함하는 심볼의 심볼 이미지를 획득할 수 있다. 일부 구현예에서, 심볼 이미지(1600)는 이미지 처리 시스템(100)의 이미지 소스(101)로부터 획득될 수 있다. 도 15에 도시된 바와 같이, 심볼 이미지(1600)에서 PDF 417 바코드는 영역 EADF에 시작 심볼 문자, 심볼 영역 ABCD, 및 끝 심볼 문자 BGHC를 포함할 수 있다. PDF 417 바코드는 심볼 영역 ABCD에 복수의 심볼 문자를 포함할 수 있다.In operation 1505, the processing unit 104 may obtain a symbol image of a symbol including a plurality of symbol characters in the symbol area. In some implementations, symbol image 1600 may be obtained from image source 101 of image processing system 100 . As shown in FIG. 15 , the PDF 417 barcode in the symbol image 1600 may include a start symbol character, a symbol area ABCD, and an end symbol character BGHC in the area EADF. A PDF 417 barcode may include a plurality of symbol characters in the symbol area ABCD.

(1510)에서, 처리 장치(104)는 심볼의 길이 방향을 따라 복수의 행 라인을 결정할 수 있다.At 1510, the processing unit 104 may determine a plurality of row lines along the length direction of the symbol.

일부 구현예에서, 복수의 스캔 라인은 포지셔닝 박스에 결정될 수 있다. 포지셔닝 박스는 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 symbol area 1600 . Alternatively, each of the plurality of row lines P1 to P19 may be determined by connecting pixels in the same row in the symbol image 1600 along the length direction of the PDF 417 barcode.

(1515)에서, 처리 장치(104)는 심볼 영역의 시작 경계 및 끝 경계를 결정할 수 있다.At 1515, processing unit 104 may determine start and end boundaries of the symbol region.

일부 구현예에서, 처리 장치(104)는 시작 심볼 문자 및/또는 끝 심볼 문자의 바 및 공간의 배열 및/또는 폭을 결정할 수 있다. 처리 장치(104)는 시작 심볼 문자 및/또는 끝 심볼 문자의 바 및 공간에 상응하는 픽셀의 적어도 부분의 그레이 값(시작 심볼 문자 및/또는 끝 심볼 문자에 상응하는 미리결정된 그레이 값으로도 언급됨)을 더 결정할 수 있다. 시작 심볼 문자 및/또는 끝 심볼 문자에 상응하는 미리결정된 그레이 값은 복수의 행 라인 중 적어도 하나 상의 픽셀의 그레이 값과 비교될 수 있다. 비교에 기반해서, 처리 장치(104)는 시작 심볼 문자 및/또는 끝 심볼 문자에 상응하는 복수의 행 라인 중 적어도 하나 상의 적어도 하나의 라인 세그먼트를 식별할 수 있다.In some implementations, the processing unit 104 can determine the arrangement and/or width of the bars and spaces of the start symbol character and/or end symbol character. The processing unit 104 determines the gray value of at least a portion of the pixels corresponding to the bars and spaces of the start symbol character and/or the end symbol character (also referred to as the predetermined gray value corresponding to the start symbol character and/or the end symbol character). ) can be further determined. The predetermined gray values corresponding to the start symbol character and/or the end symbol character may be compared with gray values of pixels on at least one of the plurality of row lines. Based on the comparison, processing unit 104 may identify at least one line segment on at least one of the plurality of row lines corresponding to the start symbol character and/or the end symbol character.

일부 구현예에서, 처리 장치(104)는 복수의 행 라인 상의 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트를 식별할 수 있다. 두 개 이상의 라인 세그먼트의 각각은 시작 지점 및 끝 지점을 포함할 수 있다. 도 16에 도시된 바와 같이, PDF 417 바코드의 시작 심볼 문자의 시작 지점은 라인 세그먼트 EF와 복수의 행 라인(P1-P19) 사이에 교차점일 수 있다. PDF 417 바코드의 시작 심볼 문자의 끝 지점은 라인 세그먼트 AD와 복수의 행 라인(P1-P19) 사이에 교차점일 수 있다.In some implementations, processing unit 104 may identify two or more line segments corresponding to start symbol characters on multiple row lines. Each of the two or more line segments may include a start point and an end point. As shown in FIG. 16, the start point of the start symbol character of the PDF 417 barcode may be an intersection between the line segment EF and the plurality of row lines P1-P19. The end point of the start symbol character of the PDF 417 barcode may be an intersection point between the line segment AD and the plurality of row lines (P1-P19).

시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 시작 지점은 시작 심볼 문자의 시작 에지를 형성할 수 있다. 시작 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점은 시작 심볼 문자의 끝 에지를 형성할 수 있다. 일부 구현예에서, 랜덤 샘플 콘센서스(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 unit 104 may identify two or more line segments corresponding to end symbol characters on multiple row lines. Each of the two or more line segments may include a start point and an end point. As shown in FIG. 16, the start point of the end symbol character of the PDF 417 barcode may be an intersection between the line segment BC and the plurality of row lines P1-P19. The end point of the end symbol character of the PDF 417 barcode may be an intersection point between the line segment GH and the plurality of row lines (P1-P19).

끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 시작 지점은 끝 심볼 문자의 시작 에지를 형성할 수 있다. 끝 심볼 문자에 상응하는 두 개 이상의 라인 세그먼트의 끝 지점은 끝 심볼 문자의 끝 에지를 형성할 수 있다. 일부 구현예에서, 랜덤 샘플 콘센서스(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 operation 1520, the processing unit 104 may determine a plurality of column boundaries among a plurality of symbol characters between a start boundary and an end boundary of the symbol area based on the plurality of row lines.

처리 장치(104)는 시작 심볼 문자에 상응하는 적어도 하나의 라인 세그먼트의 길이를 획득할 수 있다. 시작 심볼 문자에 상응하는 적어도 하나의 라인 세그먼트의 길이는 시작 심볼 문자의 폭으로서 지시될 수 있다. 예를 들어, 도 16을 참조하여, 행 라인(P1)과 라인 세그먼트(BC)의 교차점(O1)과 행 라인(P1)과 라인 세그먼트(AD)의 교차점(O2) 사이의 라인 세그먼트는 PDF 417 바코드(1600)의 시작 심볼 문자에 상응하는 라인 세그먼트일 수 있다. 라인 세그먼트(O1O2)의 길이는 시작 심볼 문자의 폭으로서 지시될 수 있다.The processing unit 104 may obtain the length of at least one line segment corresponding to the start symbol character. The length of at least one line segment corresponding to the start symbol character may be indicated as the width of the start symbol character. For example, referring to FIG. 16, the line segment between the intersection point O1 of the row line P1 and the line segment BC and the intersection point O2 of the row line P1 and the line segment AD is PDF 417 It may be a line segment corresponding to the start symbol character of the barcode 1600. The length of the line segment O1O2 may be indicated as the width of the start symbol character.

처리 장치(104)는 인접한 심볼 문자와 참조 폭 범위 사이에 경계 특성에 기반해서 복수의 심볼 문자 가운데 복수의 열 경계를 결정할 수 있다. 참조 폭 범위는 증분(예를 들어, 두 개의 픽셀) 및 감량(예를 들어, 두 개의 픽셀)으로서 규정된 범위일 수 있다.The processing unit 104 may determine a plurality of column boundaries among a plurality of symbol characters based on boundary characteristics between adjacent symbol characters and the reference width range. The reference width range may be a range defined as an increment (eg, two pixels) and a decrement (eg, two pixels).

일부 구현예에서, 복수의 행 라인 중 두 개 이상에 대해, 처리 장치(104)는 인접한 심볼 문자와 참조 폭 범위 사이에 열 경계 특성을 충족하는 심볼 영역에 복수의 행 라인(예를 들어, P1-P19) 중 적어도 두 개 상에 복수의 픽셀 또는 지점(예를 들어, 픽셀, 각각이 두 개의 연속적인 픽셀 사이에 있는 중점 등)을 식별할 수 있다. RANSAN 알고리즘은 복수의 지점에 기반해서 복수의 열 경계를 결정하도록 사용될 수 있다. 단지 도시를 위해서, 복수의 열 경계(A2, A3, A4, 및 A5)가 결정될 수 있다. In some implementations, for two or more of the plurality of row lines, the processing unit 104 directs the plurality of row lines (e.g., P1) to symbol regions that satisfy column boundary properties between adjacent symbol characters and reference width ranges. -P19) may identify a plurality of pixels or points (eg, pixels, midpoints each between two consecutive pixels, etc.) on at least two of them. The RANSAN algorithm can be used to determine multiple thermal boundaries based on multiple points. For illustrative purposes only, a plurality of thermal boundaries A2, A3, A4, and A5 may be determined.

(1525)에서, 처리 장치(104)는 심볼 영역의 상부 경계 및 하부 경계를 결정할 수 있다.At 1525, the processing unit 104 may determine an upper boundary and a lower boundary of the symbol region.

복수의 열 경계의 각각에 대해, 처리 장치(104)는 복수의 행 라인과 열 경계의 복수의 교차점(예를 들어, 픽셀)을 결정할 수 있다. 처리 장치(104)는 상향 트래버스를 수행할 수 있고 복수의 교차점 가운데 상부 교차점을 식별할 수 있다. 열 경계에 따른 상부 교차점 위의 픽셀(상부 픽셀로도 언급됨) 및 동일한 행에서 행 방향을 따른 상부 픽셀에 뒤이은 픽셀(상부 픽셀의 뒤이은 픽셀로도 언급됨)이 결정될 수 있다. 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀은 열 경계의 다른 측면에 위치될 수 있다.For each of the plurality of column boundaries, processing unit 104 may determine a plurality of intersections (eg, pixels) of the plurality of row lines and the column boundary. The processing unit 104 may perform an upward traverse and identify an upper intersection among the plurality of intersections. The pixel above the upper intersection along the column boundary (also referred to as the upper pixel) and the pixel following the upper pixel along the row direction in the same row (also referred to as the pixel following the upper pixel) can be determined. The top pixel and the pixels that follow it may be located on the other side of the column boundary.

처리 장치(104)는 상부 교차점 및 상부 교차점의 뒤이은 픽셀, 및 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하는지 여부를 결정할 수 있다(즉, 상부 픽셀의 색상 및 상부 픽셀의 뒤이은 픽셀의 색상은 검은색이고, 두 개의 픽셀의 색상은 행 방향을 따라 흰색에서 검은색으로 변할 수 있다). 상부 픽셀 및 상부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하지 않고 상부 교차점 및 행 방향을 따른 상부 교차점에 뒤이은 픽셀이 열 경계 특성을 충족한다면(즉, 상부 픽셀 및 상부 교차점이 상부 경계 특성을 충족한다면), 상부 교차점 및 상부 교차점의 뒤이은 픽셀이 심볼 영역의 상부 경계 상에 있을 수 있음을 나타낼 수 있다.Processing unit 104 may determine whether the top intersection and the pixel that follows the top intersection, and the top pixel and the pixel that follows the top pixel satisfy the column boundary characteristics (i.e., the color of the top pixel and the pixel that follows the top pixel). The color of the next pixel is black, and the color of the two pixels may change from white to black along the row direction). If the top pixel and the pixel following it do not satisfy the column boundary property and the top intersection and the pixel following the top intersection along the row direction meet the column boundary property (i.e., the top pixel and the top intersection meet the top boundary property). If it is satisfied), it may indicate that the upper intersection point and the pixel following the upper intersection point may be on the upper boundary of the symbol region.

도 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, processing device 104 may perform a downward traverse and identify a lower intersection among the plurality of intersections. A pixel under the lower intersection along a column boundary (also referred to as a lower pixel) and a pixel succeeding the lower pixel along a row direction in the same row (also referred to as a pixel following a lower pixel) may be determined. The bottom pixel and the pixels that follow it may be located on the other side of the column boundary.

처리 장치(104)는 하부 교차점 및 하부 교차점의 뒤이은 픽셀, 및 하부 픽셀 및 하부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하는지 여부를 결정할 수 있다. 하부 픽셀 및 하부 픽셀의 뒤이은 픽셀이 열 경계 특성을 충족하지 않고 하부 교차점 및 행 방향을 따른 하부 교차점에 뒤이은 픽셀이 열 경계 특성을 충족한다면(즉, 하부 픽셀 및 하부 교차점이 하부 경계 특성을 충족하면), 그것은 하부 교차점 및 하부 교차점의 뒤이은 픽셀이 심볼 영역의 하부 경계 상에 있을 수 있음을 나타낼 수 있다.The processing unit 104 may determine whether the lower intersection point and the pixel that follows the lower intersection point, and the lower pixel and the pixel that follows the lower pixel satisfy the column boundary property. If the bottom pixel and the pixels following it do not satisfy the column boundary property and the bottom intersection and the pixels following the bottom intersection along the row direction satisfy the column boundary property (i.e., the bottom pixel and the bottom intersection meet the bottom boundary property). If satisfied), it may indicate that the lower intersection point and the pixel following the lower intersection point may be on the lower boundary of the symbol region.

도 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 processing unit 104 may determine a plurality of row boundaries among a plurality of symbol characters between the start boundary and the end boundary of the symbol region.

일부 구현예에서, 복수의 행 경계는 인접한 심볼 문자 사이에 경계 특성에 기반해서 복수의 행 라인으로부터 복수의 행 경계를 특정함으로써 결정될 수 있다. 일부 구현예에서, 열 방향에서 두 개의 인접한 심볼 문자 사이의 바 및 공간의 폭은 다를 수 있다. 따라서, 열 방향에서 두 개의 인접한 심볼 문자 사이의 행 경계는 행 경계 상의 모든 픽셀의 색상이 행 경계의 제 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 processing unit 104 may determine a character area corresponding to the symbol character for each of the plurality of symbol characters based on the plurality of column boundaries and the plurality of row boundaries.

도 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 unit 104 may decode each symbol character based on the gray value associated with the character area corresponding to the symbol character. In some implementations, the operations for decoding each symbol character can be similar or identical to operations 1410 through 1440 of process 1400 as shown in FIG. 14 and will not be repeated here.

따라서, 기본 개념을 설명하였으므로, 앞서 언급한 세부적인 개시가 실시예를 통해서만 제시되도록 의도되고 한정하지 않음이 본 세부적인 개시를 읽은 후에 해당 기술분야의 당업자에게 보다 명백해질 수 있다. 명백하게 여기에 언급되지 않음에도, 다양한 변형, 개선, 및 수정이 발생할 수 있고 해당 기술분야에 당업자에게 의도될 수 있다. 이들 변경, 개선, 및 수정은 본 개시에 의해 제안되도록 의도되고 본 개시의 예시적인 구현예의 사상 및 범위 내에 있다.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.
제 1항에 있어서,
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 상기 복수의 열 경계를 결정하는 것은:
상기 복수의 심볼 문자와 연관된 참조 심볼 문자의 폭을 결정하고;
상기 참조 심볼 문자의 상기 폭에 기반해서 참조 폭 범위를 결정하고; 그리고
인접한 심볼 문자와 상기 참조 폭 범위 사이에 경계 특성에 기반해서 상기 복수의 심볼 문자 가운데 상기 복수의 열 경계를 결정하는 것을 포함하는, 시스템.
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.
제 2항에 있어서,
상기 참조 심볼 문자는 시작 심볼 문자 또는 끝 심볼 문자를 포함하는, 시스템.
According to claim 2,
The system of claim 1, wherein the reference symbol character includes a start symbol character or an end symbol character.
제 2항에 있어서,
상기 참조 심볼 문자의 상기 폭은:
상기 참조 심볼 문자와 연관된 미리설정된 코드워드 스트링을 획득하고;
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 상기 미리설정된 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 적어도 하나의 참조 라인 세그먼트를 식별하고; 그리고
상기 참조 심볼 문자의 상기 폭으로서 상기 적어도 하나의 참조 라인 세그먼트의 길이를 지시하는 것을 포함하는, 시스템.
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.
제 1항 내지 제 4항 중 어느 한 항에 있어서,
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 상기 복수의 행 경계를 결정하는 것은:
인접한 심볼 문자 사이에 경계 특성에 기반해서 상기 복수의 행 라인으로부터 상기 복수의 심볼 문자 가운데 상기 복수의 행 경계를 식별하는 것을 포함하는, 시스템.
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.
제 1항 내지 제 5항 중 어느 한 항에 있어서,
상기 복수의 심볼 문자의 각각에 대해, 상기 심볼 문자에 상응하는 상기 문자 영역과 연관된 그레이 값에 기반해서 상기 심볼 문자를 디코딩하는 것은:
행 방향을 따라서 상기 심볼 문자에 상응하는 상기 문자 영역을 복수의 블록으로 나누고;
상기 복수의 블록의 각각의 글로벌 그레이 값을 결정하고;
상기 복수의 블록의 상기 글로벌 그레이 값에 기반해서 상기 심볼 문자의 대조값을 결정하고; 그리고
상기 대조값에 기반해서 상기 심볼 문자에 상응하는 코드워드를 결정하는 것을 포함하는, 시스템.
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.
제 6항에 있어서,
상기 복수의 블록의 상기 글로벌 그레이 값에 기반해서 상기 심볼 문자의 상기 대조값을 결정하는 것은:
상기 문자 영역에 제 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.
제 1항 내지 제 7항 중 어느 한 항에 있어서,
상기 작동은:
상기 심볼 영역의 시작 경계, 끝 경계, 상부 경계, 및 하부 경계를 결정하는 것을 더 포함하는, 시스템.
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.
제 8항에 있어서,
상기 심볼 영역의 상기 시작 경계를 결정하는 것은:
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 시작 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 시작 심볼 문자의 적어도 하나의 끝 지점을 식별하고; 그리고
상기 시작 심볼 문자의 상기 적어도 하나의 끝 지점에 기반해서 상기 심볼 영역의 상기 시작 경계를 결정하는 것을 포함하는, 시스템.
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.
제 8항 또는 제 9항에 있어서,
상기 심볼 영역의 상기 끝 경계를 결정하는 것은:
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 끝 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 끝 심볼 문자의 적어도 하나의 시작 지점을 식별하고; 그리고
상기 끝 심볼 문자의 상기 적어도 하나의 시작 지점에 기반해서 상기 심볼 영역의 상기 끝 경계를 결정하는 것을 포함하는, 시스템.
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.
제 8항 내지 제 10항 중 어느 한 항에 있어서,
상기 심볼 영역의 상기 상부 경계를 결정하는 것은:
상기 복수의 열 경계의 각각에 대해,
상기 복수의 행 라인과 상기 열 경계의 복수의 교차점을 결정하고;
제 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.
제 8항 내지 제 11항 중 어느 한 항에 있어서,
상기 심볼 영역의 상기 하부 경계를 결정하는 것은:
상기 복수의 열 경계의 각각에 대해,
상기 복수의 행 라인과 상기 열 경계의 복수의 교차점을 결정하고;
제 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.
제 13항에 있어서,
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 상기 복수의 열 경계를 결정하는 단계는:
상기 복수의 심볼 문자와 연관된 참조 심볼 문자의 폭을 결정하고;
상기 참조 심볼 문자의 상기 폭에 기반해서 참조 폭 범위를 결정하고; 그리고
인접한 심볼 문자와 상기 참조 폭 범위 사이에 경계 특성에 기반해서 상기 복수의 심볼 문자 가운데 상기 복수의 열 경계를 결정하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.
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.
제 14항에 있어서,
상기 참조 심볼 문자는 시작 심볼 문자 또는 끝 심볼 문자를 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.
According to claim 14,
wherein the reference symbol character comprises a start symbol character or an end symbol character.
제 14항에 있어서,
상기 참조 심볼 문자의 상기 폭을 결정하는 것은:
상기 참조 심볼 문자와 연관된 미리설정된 코드워드 스트링을 획득하고;
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 상기 미리설정된 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 적어도 하나의 참조 라인 세그먼트를 식별하고; 그리고
상기 참조 심볼 문자의 상기 폭으로서 상기 적어도 하나의 참조 라인 세그먼트의 길이를 지시하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.
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.
제 1항 내지 제 16항 중 어느 한 항에 있어서,
상기 복수의 행 라인에 기반해서, 상기 복수의 심볼 문자 가운데 상기 복수의 행 경계를 결정하는 것은:
인접한 심볼 문자 사이에 경계 특성에 기반해서 상기 복수의 행 라인으로부터 상기 복수의 심볼 문자 가운데 상기 복수의 행 경계를 식별하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.
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. .
제 1항 내지 제 17항 중 어느 한 항에 있어서,
상기 복수의 심볼 문자의 각각에 대해, 상기 심볼 문자에 상응하는 상기 문자 영역과 연관된 그레이 값에 기반해서 상기 심볼 문자를 디코딩하는 것은:
행 방향을 따라서 상기 심볼 문자에 상응하는 상기 문자 영역을 복수의 블록으로 나누고;
상기 복수의 블록의 각각의 글로벌 그레이 값을 결정하고;
상기 복수의 블록의 상기 글로벌 그레이 값에 기반해서 상기 심볼 문자의 대조값을 결정하고; 그리고
상기 대조값에 기반해서 상기 심볼 문자에 상응하는 코드워드를 결정하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.
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.
제 18항에 있어서,
상기 복수의 블록의 상기 글로벌 그레이 값에 기반해서 상기 심볼 문자의 상기 대조값을 결정하는 것은:
상기 문자 영역에 제 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.
제 1항 내지 제 19항 중 어느 한 항에 있어서,
상기 작동은:
상기 심볼 영역의 시작 경계, 끝 경계, 상부 경계, 및 하부 경계를 결정하는 것을 더 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.
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.
제 20항에 있어서,
상기 심볼 영역의 상기 시작 경계를 결정하는 것은:
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 시작 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 시작 심볼 문자의 적어도 하나의 끝 지점을 식별하고; 그리고
상기 시작 심볼 문자의 상기 적어도 하나의 끝 지점에 기반해서 상기 심볼 영역의 상기 시작 경계를 결정하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.
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.
제 20항 또는 제 21항에 있어서,
상기 심볼 영역의 상기 끝 경계를 결정하는 것은:
상기 복수의 행 라인 중 적어도 하나에 대해, 상기 복수의 행 라인 중 상기 적어도 하나 상의 픽셀의 그레이 값 및 끝 코드워드 스트링과 연관된 미리결정된 그레이 값에 기반해 끝 심볼 문자의 적어도 하나의 시작 지점을 식별하고; 그리고
상기 끝 심볼 문자의 상기 적어도 하나의 시작 지점에 기반해서 상기 심볼 영역의 상기 끝 경계를 결정하는 것을 포함하는, 프로세서 및 컴퓨터 판독가능한 저장 장치를 갖는 컴퓨팅 장치 상에 수행된 방법.
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.
제 20항 내지 제 22항 중 어느 한 항에 있어서,
상기 심볼 영역의 상기 상부 경계를 결정하는 것은:
상기 복수의 열 경계의 각각에 대해,
상기 복수의 행 라인과 상기 열 경계의 복수의 교차점을 결정하고;
제 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.
제 20항 내지 제 23항 중 어느 한 항에 있어서,
상기 심볼 영역의 상기 상부 경계를 결정하는 것은:
상기 복수의 열 경계의 각각에 대해,
상기 복수의 행 라인과 상기 열 경계의 복수의 교차점을 결정하고;
제 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.
KR1020227040154A 2020-05-07 2021-05-06 Systems and methods for decoding barcodes KR20230002813A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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