AU2010257441B2 - Method, apparatus and system for identifying candidate pairs of finder patterns of a barcode - Google Patents

Method, apparatus and system for identifying candidate pairs of finder patterns of a barcode Download PDF

Info

Publication number
AU2010257441B2
AU2010257441B2 AU2010257441A AU2010257441A AU2010257441B2 AU 2010257441 B2 AU2010257441 B2 AU 2010257441B2 AU 2010257441 A AU2010257441 A AU 2010257441A AU 2010257441 A AU2010257441 A AU 2010257441A AU 2010257441 B2 AU2010257441 B2 AU 2010257441B2
Authority
AU
Australia
Prior art keywords
finder
candidate
patterns
finder patterns
pattern
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
AU2010257441A
Other versions
AU2010257441A1 (en
Inventor
Paul Joseph Ellis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to AU2010257441A priority Critical patent/AU2010257441B2/en
Priority to JP2011258177A priority patent/JP2012138079A/en
Publication of AU2010257441A1 publication Critical patent/AU2010257441A1/en
Application granted granted Critical
Publication of AU2010257441B2 publication Critical patent/AU2010257441B2/en
Ceased legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

Abstract METHOD, APPARATUS AND SYSTEM FOR IDENTIFYING CANDIDATE PAIRS OF FINDER PATTERNS OF A BARCODE A method (400) of identifying candidate pairs of finder patterns of a barcode (e.g., 5 100) is disclosed. A first finder pattern (e.g., 103) is selected from a plurality of finder patterns detected in an area of an image. A further finder pattern is selected from the remaining plurality of detected finder patterns to form a candidate pair comprising the first and further finder patterns. An exclusion region within the area of the image is determined, for the candidate pair. The candidate pair of finder patterns is removed, if the further finder 0 pattern lies outside an allowed zone of the area of the image. Any areas of the image within the allowed zone which overlap the exclusion region are removed from the allowed zone. The steps are repeated for one or more still further finder patterns in order to identify the candidate pairs of finder patterns of the barcode. 970347_Fina! (3249107v1) - 5/11 C: 405 Create empty 2/3 regions listD / 1 Triangulate finder pattern input list 101 Select next centre node from input list + r 430 Initialise canonical allowed region Add neighbours to candidate list Select next candidate node from candidate list + 460 Test centre and candidate node for 2/3 regions Modify canonical allowed region No Candidate list exhausted? Yes No Input list exhausted? Yes 495 Output 2/3 regions list Fig. 4 ( End 970347_DrawingsFinal (3246939v 1)

Description

S&F Ref: 970347 AUSTRALIA PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT Name and Address Canon Kabushiki Kaisha, of 30-2, Shimomaruko 3 of Applicant: chome, Ohta-ku, Tokyo, 146, Japan Actual Inventor(s): Paul Joseph Ellis Address for Service: Spruson & Ferguson St Martins Tower Level 35 31 Market Street Sydney NSW 2000 (CCN 3710000177) Invention Title: Method, apparatus and system for identifying candidate pairs of finder patterns of a barcode The following statement is a full description of this invention, including the best method of performing it known to me/us: 5845c(3249280_1) - 1 METHOD, APPARATUS AND SYSTEM FOR IDENTIFYING CANDIDATE PAIRS OF FINDER PATTERNS OF A BARCODE FIELD OF INVENTION The present invention relates to two-dimensional barcodes and, in particular, to a method and apparatus for identifying candidate pairs of finder patterns of a barcode. The present invention also relates to a computer program product including a computer readable medium 5 having recorded thereon a computer program for identifying candidate pairs of finder patterns of a barcode. DESCRIPTION OF BACKGROUND ART Two-dimensional barcodes are increasingly popular, due to their larger data capacity 3 compared to one-dimensional barcodes, and to the increasing availability of encoding and decoding devices for such barcodes. A two-dimensional barcode known as the "quick response (QR) barcode" is a particularly common two-dimensional barcode. Fig. I shows an example of a quick response barcode 100. As shown in Fig. 1, the quick response barcode 100 is a square array of square pixels. 5 Each of the square pixels is referred to as a "module" (e.g., a white module 101 and a black module 102).The modules are used to encode data. In addition to the modules used to encode data, the quick response barcode 100 includes three location and identification symbols 103. The three location symbols 103 are each known as a "finder pattern" (FP). The finder patterns 103 are located in the top-left, top-right, 20 and bottom-left corners of the quick response barcode 100, as seen in Fig. 1. Therefore, the two-dimensional area of an image occupied by a quick response barcode is demarcated by the locations of the three finder patterns 103. Such a two-dimensional area is also known as a "quick response barcode region". 970347_Final (3249107vl) -2 The first step in decoding a quick response barcode, such as the quick response barcode 100, is to identify the barcode 100 in an input image using the finder patterns 103 described above. Quick response barcodes are frequently included on a broad range of media, such as 5 product labels, billboards and business cards. Conventionally, such media has only included a single quick response barcode of high quality (i.e., the digital image of the original quick response barcode has been accurately re-produced on the media). Therefore, when a quick response barcode is being decoded, there is only a single quick response barcode in the acquired image and the quality of the barcode is high, facilitating the use of relatively simple 3 decoding processing. Furthermore, conventional quick response barcode capturing devices, such as camera phones, may be user-adjusted such that an image of the quick response barcode may be acquired with very little rotational misalignment. The user-adjusted capturing devices can also frame the quick response barcode such that the size of modules (e.g., 101) in the quick response barcode, with respect to the capturing device, is within a 5 known range. Recently, there has been increased interest in the application of quick response barcodes in aiding document security and workflow management. For such applications, there may be multiple quick response barcodes in an acquired image. Furthermore, there will often be a broad variation in module sizes and orientations amongst the quick response barcodes in the 20 image. The quick response barcodes may also have been printed, scanned and re-printed many times, each time introducing deterioration of the quick response barcode image quality. Specifically, quick response barcodes may suffer from "dot gain" in which the ratio of black module size and white module size in the quick response barcode differs significantly from the ideal 1:1. Multiple cycles of printing and scanning also introduces noise and other 970347_Final (3249107v1) -3 distortions that further alter the appearance of quick response barcode finder patterns compared to the finder patterns 103, for example. A reference implementation of a quick response barcode decoder is available in the ISO/IEC 18004 standard. The reference implementation in the ISO/IEC 18004 standard 5 assumes, however, that there is only one quick response barcode in the image and that exactly three finder patterns are detected. Further, undetected finder patterns, or false positive finder pattern detections are not considered in the ISO/IEC 18004 standard. Undetected finder patterns of a barcode are common in the presence of noise or other distortions. False positive finder pattern detections are also common, particularly in the 3 presence of Japanese or Mandarin language text. Therefore, once the finder patterns have been detected, the finder patterns need to be "resolved" in order to identify the finder patterns of a quick response barcode. Conventionally, triplets of finder patterns forming a square "L" shape, where each finder pattern has the same magnitude and the same angle, within predetermined tolerances, need to be detected and resolved in order to identify that the finder 5 patterns are those of a quick response barcode. One method of resolving finder patterns to identify quick response barcodes, involves testing every possible triplet of detected finder patterns for conformance to the quick response standard. The running time of such a method increases with the cube of the number of finder patterns being analysed and this method will consequently be referred to as the "O(n 3 ) 20 method". In some applications, the 0(n 3 ) method may be acceptable. As the number of detected finder patterns increases however, the 0(n 3 ) method rapidly becomes impractical, particularly as quick response barcode decoding is frequently required on embedded devices with limited memory and processing power. SUMMARY OF THE INVENTION 25 It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements. 970347_Final (3249107v1) -4 According to one aspect of the present disclosure there is provided a method of identifying candidate pairs of finder patterns of a two-dimensional barcode, said method comprising: (i) selecting a first finder pattern from a plurality of finder patterns detected in an 5 area of an image; (ii) selecting a further finder pattern from the remaining plurality of detected finder patterns to forma candidate pair comprising the first and further finder patterns; (iii) determining an exclusion region within the area of the image, for the candidate pair; D (iv) discarding the candidate pair of finder patterns, if the further finder pattern lies outside an allowed zone of the area of the image; and (v) removing from the allowed zone any areas of the image within the allowed zone which overlap the exclusion region; and (vi) repeating steps (ii) to (v) for one or more still further finder patterns, in order to 5 identify said candidate pairs of finder patterns of the two-dimensional barcode. According to another aspect of the present disclosure there is provided an apparatus for identifying candidate pairs of finder patterns of a two-dimensional barcode, said apparatus comprising: means for selecting a first finder pattern from a plurality of finder patterns detected 20 in an area of an image; 970347_Final (3249107v1) -5 means for selecting a further finder pattern from the remaining plurality of detected finder patterns to forma candidate pair comprising the first and further finder patterns; means for determining an exclusion region within the area of the image, for the candidate pair; 5 means for discarding the candidate pair of finder patterns, if the further finder pattern lies outside an allowed zone of the area of the image; and means for removing from the allowed zone any areas of the image within the allowed zone which overlap the exclusion region, in order to identify said candidate pairs of finder patterns of the two-dimensional barcode. ) According to still another aspect of the present disclosure there is provided a system for identifying candidate pairs of finder patterns of a two-dimensional barcode, said system comprising: a memory for storing data and a computer program; a processor coupled to said memory for executing said computer program, said 5 computer program comprising instructions for: (i) selecting a first finder pattern from a plurality of finder patterns detected in an area of an image; (ii) selecting a further finder pattern from the remaining plurality of detected finder patterns to forma candidate pair comprising the first and further finder patterns; ?0 (iii) determining an exclusion region within the area of the image, for the candidate pair; 970347_Final (3249107v]) -6 (iv) discarding the candidate pair of finder patterns, if the further finder pattern lies outside an allowed zone of the area of the image; and (v) removing from the allowed zone any areas of the image within the allowed zone which overlap the exclusion region; and 5 (vi) repeating steps (ii) to (v) for one or more still further finder patterns, in order to identify said candidate pairs of finder patterns of the two-dimensional barcode. According to another aspect of the present disclosure there is provided a computer program product including a computer readable medium having recorded thereon a computer program for implementing the method described above. ) Other aspects of the invention are also disclosed. BRIEF DESCRIPTION OF THE DRAWINGS One or more embodiments of the invention will now be described with reference to the following drawings, in which: Fig. I shows an example of a quick response barcode including black and white modules 5 and finder patterns; Figs. 2A and 2B form a schematic block diagram of a general purpose computer system upon which arrangements described can be practiced; Figs. 3A, 3B and 3C show three possible 2/3 region arrangements for a quick response barcode; 0 Fig. 4 is a schematic flow diagram showing a method of identifying candidate pairs of finder patterns of a barcode; Fig. 5 is a diagram showing the triangulation of an example network of finder patterns, where each finder pattern is represented by a node of the network; Fig. 6A is a diagram showing a canonical allowed zone around a "centre" finder pattern; 970347_Final (3249107v1) -7 Fig. 6B is a diagram showing the canonical allowed zone of Fig. 6A transformed into a 2/3+ allowed zone; Fig. 7 is a schematic flow diagram showing a method of analysing a pair of finder patterns comprising a centre finder pattern and "candidate" finder pattern, as used in the method of 5 Fig. 4; Fig. 8 is a diagram showing the angle and magnitude of an example centre finder pattern and candidate finder pattern to be analysed; Fig. 9 is a diagram showing an example of the modification of an allowed zone according to an exclusion region formed by a candidate finder pattern; and ) Figs. IOA, lOB and IOC show an example of the transformation of the excluded region of Fig. 9 formed by the candidate finder pattern. DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the 5 purposes of this description the same function(s) or operation(s), unless the contrary intention appears. It is to be noted that the discussions contained in the "Background" section and that above relating to prior art arrangements relate to discussions of documents or devices which form public knowledge through their respective publication and/or use. Such should not be 20 interpreted as a representation by the present inventor(s) or the patent applicant that such documents or devices in any way form part of the common general knowledge in the art. A method 400 of identifying candidate pairs of finder patterns of a barcode is described below with reference to Fig. 4. The method 400 analyses an "input" list comprising finder patterns detected in an image, and outputs a set of candidate finder pattern pairs. The 25 outputted finder patterns pairs are in a suitable arrangement to form part of a two-dimensional 970347_Final (3249107vl) -8 barcode. The method 400 performs steps for discarding finder pattern pairs which are in an invalid spatial relationship, have different sizes or have different angles. The method 400 has general applicability to two dimensional barcodes. However, for ease of explanation, the steps of the method 400 are described with reference to quick response 5 barcodes. It is not intended that the present invention be limited to the described method. For example, the method 400 may have application to any other type of two dimensional barcodes, such as the "PDF417" and "Data Matrix" barcodes. Figs. 2A and 2B depict a general-purpose computer system 200, upon which the various arrangements described can be practiced. As seen in Fig. 2A, the computer system 200 includes: a computer module 201; input devices such as a keyboard 202, a mouse pointer device 203, a scanner 226, a camera 227, and a microphone 280; and output devices including a printer 215, a display device 214 and loudspeakers 217. An external Modulator-Demodulator (Modem) transceiver device 216 may be used by the computer module 201 for communicating to and from a communications 5 network 220 via a connection 221. The communications network 220 may be a wide-area network (WAN), such as the Internet, a cellular telecommunications network, or a private WAN. Where the connection 221 is a telephone line, the modem 216 may be a traditional "dial-up" modem. Alternatively, where the connection 221 is a high capacity (e.g., cable) connection, the modem 216 may be a broadband modem. A wireless modem may also be 20 used for wireless connection to the communications network 220. The computer module 201 typically includes at least one processor unit 205, and a memory unit 206.For example, the memory unit 206 may have semiconductor random access memory (RAM) and semiconductor read only memory (ROM). The computer module 201 also includes an number of input/output (1/0) interfaces including: an audio-video interface 207 25 that couples to the video display 214, loudspeakers 217 and microphone 280; an I/O 970347_Final (3249107vl) -9 interface 213 that couples to the keyboard 202, mouse 203, scanner 226, camera 227 and optionally a joystick or other human interface device (not illustrated); and an interface 208 for the external modem 216 and printer 215. In some implementations, the modem 216 may be incorporated within the computer module 201, for example within the interface 208. The 5 computer module 201 also has a local network interface 211, which permits coupling of the computer system 200 via a connection 223 to a local-area communications network 222, known as a Local Area Network (LAN). As illustrated in Fig. 2A, the local communications network 222 may also couple to the wide network 220 via a connection 224, which would typically include a so-called "firewall" device or device of similar functionality. The local ) network interface 211 may comprise an EthernetTM circuit card, a BluetoothTM wireless arrangement or an IEEE 802.11 wireless arrangement; however, numerous other types of interfaces may be practiced for the interface 211. The I/O interfaces 208 and 213 may afford either or both of serial and parallel connectivity, the former typically being implemented according to the Universal Serial Bus 5 (USB) standards and having corresponding USB connectors (not illustrated). Storage devices 209 are provided and typically include a hard disk drive (HDD) 210. Other storage devices such as a floppy disk drive and a magnetic tape drive (not illustrated) may also be used. An optical disk drive 212 is typically provided to act as a non-volatile source of data. Portable memory devices, such optical disks (e.g., CD-ROM, DVD, Blu-ray Disc TM), USB .0 RAM, portable, external hard drives, and floppy disks, for example, may be used as appropriate sources of data to the system 200. The components 205 to 213 of the computer module 201 typically communicate via an interconnected bus 204 and in a manner that results in a conventional mode of operation of the computer system 200 known to those in the relevant art. For example, the processor 205 25 is coupled to the system bus 204using a connection 218. Likewise, the memory 206 and 970347_Final (3249107v1) - 10 optical disk drive 212 are coupled to the system bus 204 by connections 219. Examples of computers on which the described arrangements can be practised include IBM-PC's and compatibles, Sun Sparcstations, Apple MacTM or alike computer systems. Methods described below, including the method 400,may be implemented using the 5 computer system 200 wherein the processes of Figs. 3A to 10C, to be described, may be implemented as one or more software application programs 233 executable within the computer system 200. In particular, the steps of the described methods are effected by instructions 231 (see Fig. 2B) in the software 233 that are carried out within the computer system 200. The software instructions 231 may be formed as one or more code modules, each ) for performing one or more particular tasks. The software may also be divided into two separate parts, in which a first part and the corresponding code modules performs the described methods and a second part and the corresponding code modules manage a user interface between the first part and the user. The software may be stored in a computer readable medium, including the storage devices 5 described below, for example. The software is loaded into the computer system 200 from the computer readable medium, and then executed by the computer system 200. A computer readable medium having such software or computer program recorded on the computer readable medium is a computer program product. The use of the computer program product in the computer system 200 preferably effects an advantageous apparatus for implementing 20 the described methods. The software 233 is typically stored in the HDD 210 or the memory 206. The software is loaded into the computer system 200 from a computer readable medium, and executed by the computer system 200. Thus, for example, the software 233 may be stored on an optically readable disk storage medium (e.g., CD-ROM) 225 that is read by the optical disk drive 212. 25 A computer readable medium having such software or computer program recorded on it is a 970347_Final (3249107vl) - I I computer program product. The use of the computer program product in the computer system 200 preferably effects an apparatus for implementing the described methods. In some instances, the application programs 233 may be supplied to the user encoded on one or more CD-ROMs 225 and read via the corresponding drive 212, or alternatively may be 5 read by the user from the networks 220 or 222. Still further, the software can also be loaded into the computer system 200 from other computer readable media. Computer readable storage media refers to any non-transitory tangible storage medium that provides recorded instructions and/or data to the computer system 200 for execution and/or processing. Examples of such storage media include floppy disks, magnetic tape, CD-ROM, DVD, Blu 3 ray Disc, a hard disk drive, a ROM or integrated circuit, USB memory, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the computer module 201. Examples of transitory or non tangible computer readable transmission media that may also participate in the provision of software, application programs, instructions and/or data to the computer module 201 include 5 radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like. The second part of the application programs 233 and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) 20 to be rendered or otherwise represented upon the display 214. Through manipulation of typically the keyboard 202 and the mouse 203, a user of the computer system 200 and the application may manipulate the interface in a functionally adaptable manner to provide controlling commands and/or input to the applications associated with the GUI(s). Other forms of functionally adaptable user interfaces may also be implemented, such as an audio 970347_Final (3249107vl) - 12 interface utilizing speech prompts output via the loudspeakers 217 and user voice commands input via the microphone 280. Fig. 2B is a detailed schematic block diagram of the processor 205 and a "memory" 234. The memory 234 represents a logical aggregation of all the memory modules (including the 5 HDD 209 and semiconductor memory 206) that can be accessed by the computer module 201 in Fig. 2A. When the computer module 201 is initially powered up, a power-on self-test (POST) program 250executes. The POST program 250 is typically stored in a ROM 249 of the semiconductor memory 206 of Fig. 2A. A hardware device such as the ROM 249 storing 3 software is sometimes referred to as firmware. The POST program 250 examines hardware within the computer module 201 to ensure proper functioning and typically checks the processor 205, the memory 234 (209,206), and a basic input-output systems software (BIOS)module 251, also typically stored in the ROM 249, for correct operation. Once the POST program 250 has run successfully, the BIOS 251 activates the hard disk drive 210 of 5 Fig. 2A. Activation of the hard disk drive 210 causes a bootstrap loader program 252 that is resident on the hard disk drive 210 to execute via the processor 205. This loads an operating system 253 into the RAM memory 206, upon which the operating system 253 commences operation. The operating system 253 is a system level application, executable by the processor 205, to fulfil various high level functions, including processor management, 20 memory management, device management, storage management, software application interface, and generic user interface. The operating system 253 manages the memory 234 (209,206) to ensure that each process or application running on the computer module 201 has sufficient memory in which to execute without colliding with memory allocated to another process. Furthermore, the 25 different types of memory available in the system 200 of Fig. 2A must be used properly so 970347_Final (3249107vl) - 13 that each process can run effectively. Accordingly, the aggregated memory 234 is not intended to illustrate how particular segments of memory are allocated (unless otherwise stated), but rather to provide a general view of the memory accessible by the computer system 200 and how such is used. 5 As shown in Fig. 2B, the processor 205 includes a number of functional modules including a control unit 239, an arithmetic logic unit (ALU) 240, and a local or internal memory 248, sometimes called a cache memory. The cache memory 248 typically includes a number of storage registers 244-246 in a register section. One or more internal busses 241 functionally interconnect these functional modules. The processor 205 typically also has one or more D interfaces 242 for communicating with external devices via the system bus 204, using a connection 218. The memory 234 is coupled to the bus 204 using a connection 219. The application program 233 includes a sequence of instructions 231 that may include conditional branch and loop instructions. The program 233 may also include data 232 which is used in execution of the program 233. The instructions 231 and the data 232 are stored in 5 memory locations 228, 229, 230 and 235, 236, 237, respectively. Depending upon the relative size of the instructions 231 and the memory locations 228-230, a particular instruction may be stored in a single memory location as depicted by the instruction shown in the memory location 230. Alternately, an instruction may be segmented into a number of parts each of which is stored in a separate memory location, as depicted by the instruction segments 20 shown in the memory locations 228 and 229. In general, the processor 205 is given a set of instructions which are executed therein. The processor 1105 waits for a subsequent input, to which the processor 205 reacts to by executing another set of instructions. Each input may be provided from one or more of a number of sources, including data generated by one or more of the input devices 202, 203, 25 data received from an external source across one of the networks 220, 202, data retrieved 970347_Final (3249107v1) - 14 from one of the storage devices 206, 209 or data retrieved from a storage medium 225 inserted into the corresponding reader 212, all depicted in Fig. 2A. The execution of a set of the instructions may in some cases result in output of data. Execution may also involve storing data or variables to the memory 234. 5 The described methods use input variables 254, which are stored in the memory 234 in corresponding memory locations 255, 256, 257. The described methods produce output variables 261, which are stored in the memory 234 in corresponding memory locations 262, 263, 264. Intermediate variables 258 may be stored in memory locations 259, 260, 266 and 267. Referring to the processor 205 of Fig. 2B, the registers 244, 245, 246, the arithmetic logic unit (ALU) 240, and the control unit 239 work together to perform sequences of micro operations needed to perform "fetch, decode, and execute" cycles for every instruction in the instruction set making up the program 233. Each fetch, decode, and execute cycle comprises: (a) a fetch operation, which fetches or reads an instruction 231 from a memory 5 location 228, 229, 230; (b) a decode operation in which the control unit 239 determines which instruction has been fetched; and (c) an execute operation in which the control unit 239 and/or the ALU 240 execute the instruction. ?0 Thereafter, a further fetch, decode, and execute cycle for the next instruction may be executed. Similarly, a store cycle may be performed by which the control unit 239 stores or writes a value to a memory location 232. Each step or sub-process in the processes of Figs. 4 to 10is associated with one or more segments of the program 233 and is performed by the register section 244, 245, 247, the 25 ALU 240, and the control unit 239 in the processor 205 working together to perform the fetch, 970347_Final (3249107v1) - 15 decode, and execute cycles for every instruction in the instruction set for the noted segments of the program 233. The described methods may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of the described 5 methods. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories. The O(n 3 ) method for resolving detected finder patterns into possible two-dimensional barcodes may be modified by determining "candidate pairs" of finder patterns, instead of triplets of finder patterns, as will be described in detail below. Each of the candidate pairs of ) finder patterns forms what will be referred to below as a "2/3 region". The candidate pairs are referred to as 2/3 regions because two out of three finder patterns of a corresponding quick response barcode are detected. As shown in Figs. 3A, 3B and 3C, there are three possible 2/3 region arrangements for the quick response barcode 100.Fig. 3A shows a "2/3/" region 301 formed where a first one 310 5 of the finder pattems103 is diagonally opposite a second one 320 of the finder patterns 103. Fig. 3B shows a "2/3+" region 302 formed where two finder patterns 310 and 330 of the finder patterns 103 are adjacent to each other and the corresponding quick response barcode 100may be formed in a clockwise direction from the second finder pattern 330. Fig. 3C shows a "2/3-" region 303 formed where two finder patterns 310 and 340 of the finder 0 patterns 103 are adjacent to each other and the quick response barcode 100 may be formed in a counter-clockwise direction from the second finder pattern 340. As seen in Figs. 3B and 3C, the 2/3+ and 2/3- regions 302 and 303, respectively, have the same arrangement of finder patterns. However, the 2/3+ and 2/3- regions 302 and 303 are considered separately since one, both or none of the 2/3+ and 2/3- region types may be 970347_Final (3249107v1) - 16 applicable when testing pairs of finder patterns against an allowed zone as will be described in detail below. The direction of the quick response barcode 100 from the candidate pair of finder patters (e.g., finder patterns 3 10 and 330) is also important when overlapping 2/3 regions are merged 5 (or combined) to form complete 3/3 quick response regions, as described in detail below. As will be described, the processor 205 may perform the step of combining candidate pairs of finder patterns into triplets. The method 400 of identifying candidate pairs of finder patterns of a barcode is described below with reference to Fig. 4. The method 400 may be implemented as one of more D software code modules of the software application program 233 resident on the hard disk drive 210 and being controlled in its execution by the processor 205. The method 400 identifies 2/3 regions (e.g., 301, 302 or 303) in an area of an image, given an "input" list of finder patterns detected in the area of the image. The input list of finder patterns includes a plurality of finder patterns detected in the area of the image. The input list comprising the 5 detected finder patterns may be accessed from the memory 206 or the hard disk drive 21 0.The method 400 will be described by way of example with reference to the quick response barcode 100 of Fig. 1 and a network of finder patterns 500 (see Fig. 5). In a first "list creating" step 405, the processor 205 performs the step of creating an empty list of 2/3 regions within the memory 206 or the hard disk drive 210. All valid 2/3 regions 20 identified during subsequent steps of the method 400 will be successively added to the list of 2/3 regions. The list of 2/3 regions may be accessed from the memory 206 or the hard disk drive 210. In a "network generation" step 410, the network 500 of finder patterns (see Fig. 5) is generated by the processor 905, where each finder pattern (e.g., 510) in the example of Fig. 5 25 is shown as a solid circle. The network 500 of finder patterns may be stored in the memory 970347_Final (3249107vl) - 17 906. The finder patterns of the generated network 500 are joined by straight-line "edges" (e.g., 520). The network 500 is generated at step 410 using Delaunay triangulation. Any suitable O(n log n) method may be used for performing the Delaunay triangulation. i A Delaunay triangulation has the desirable properties that: 1. the average number of edges connected to each node (i.e., representing a finder pattern) is less than six (6); 2. each node representing a finder pattern is connected to a nearest neighbour node representing another finder pattern; and ) 3. in general, each node representing a finder pattern is connected to a k-th nearest neighbouring node representing another finder pattern by O(log k) edges. By traversing edges of the network 500 starting from a given node representing a finder pattern, the Delaunay triangulation may consequently be used to quickly locate neighbouring nodes representing neighbouring finder patterns. 5 Following step 410, the next steps 420 to 490 of the method 400 iteratively identify possible 2/3 regions (e.g., 301, 302, 303). In steps 420 to 490, the processor 205 performs steps for selecting each of the finder patterns of the input list stored in the memory 206,in turn, as a "centre" finder pattern (or node). As described above, the input list of finder patterns includes a plurality of finder patterns detected in the area of the image. The input list ?0 comprising the detected finder patterns may be accessed from the memory 206 or the hard disk drive 210. In steps 420 to 490, the processor 205 also performs steps for determining candidate pairs of finder patterns for analysis. The candidate pairs of finder patterns are determined by successively combining selected centre finder patterns with one or more of the remaining 25 neighbouring finder patterns of the input list as represented by the network 500. 970347_Final (3249107vl) - 18 In "selecting" step 420, a next (or first in an initial iteration of the method 400) finder pattern of the input list not yet considered is selected by the processor 205 as a centre finder pattern (or centre node). As described above, the selected finder pattern is selected from the input list of finder patterns including the plurality of finder patterns detected in the area (or a 5 first area) of the image. Given a centre finder pattern, the identification of which neighbouring finder patterns may form pairs of finder patterns defining valid 2/3 regions (e.g., 301, 302, 303) is accelerated through the use of an "allowed zone". The allowed zone defines a subset of the image within which a neighbouring finder pattern lies to potentially form a valid finder pattern pairing with ) the centre finder pattern. Referring now to Fig. 6A, in the next step 430, a zone 600 where a neighbouring finder pattern, that can be paired with the centre finder pattern 630 to form a 2/3/ region (e.g., 301), is allowed (i.e., an "allowed zone"), is initialised by the processor 205. As described below, no separate allowed zones for 2/3+ and 2/3- region matches are required as corresponding 5 areas for the 2/3+ and 2/3- region cases may be derived from the 2/3/ region case. For the purposes of the following description, the 2/3/ region allowed zone 600 will be referred to as a 'canonical allowed zone". In one implementation, the canonical allowed zone 600 is stored within memory 206 as a linked list of sectors. Each sector defines a maximum allowed distance of a neighbouring .0 finder pattern from the centre finder pattern 630 within a specified angle range. The sectors are monotonically increasing in angle and cover all angles from 00 to 360*. The canonical allowed zone 600 is initialised as eight sectors. Four sectors (e.g., 610) are diagonally aligned with respect to the centre finder pattern 630. A maximum radius of the diagonally aligned sectors (e.g., 610) is defined by the maximum size of a quick response !5 barcode (e.g., 100) given the size of the centre finder pattern 630 plus a magnitude tolerance. 970347_Final (3249107v1) - 19 A suitable magnitude tolerance may be 20%. The width of the four sectors (e.g., 610) is defined by a predetermined angular tolerance. A suitable angular tolerance may be, for example, twenty (20) degrees. In addition to the four diagonally aligned sectors (e.g., 610), the initial canonical allowed 5 zone 600 comprises four intervening sectors (not shown) with zero radius. Returning again to Fig.4, following step 430, the method 400 proceeds to "list" step 440. In step 440, a "candidate" list of finder patterns is established by the processor 205 and stored in the memory 206. As described in detail below, successive finder patterns in the candidate list are combined with the selected centre finder patterns. Resulting pairs of finder patterns ) are evaluated to determine if the resulting pairs of finder patterns define valid 2/3 regions for the quick response barcode 100, for example. Initially, the candidate list comprises each of the neighbour finder patterns of the centre finder pattern according to the previously determined Delaunay triangulation. The finder pattern referred to as a "parent" finder pattern of each finder pattern in the 5 candidate list is also stored in the memory 206 at step 440. The parent of a particular candidate finder pattern is the finder pattern which added the candidate finder pattern to the candidate list. Initially, the centre finder pattern is the parent of all finder patterns in the candidate list of finder patterns. However, neighbouring finder patterns of "other" finder patterns may be added to the .0 candidate list, as occurs in step 470. In this instance, these "other" finder patterns also become parent finder patterns. In "selecting" step 450, the processor 205 performs the step of selecting an arbitrary (or second) finder pattern from the candidate list, stored in memory 206, as the "candidate finder pattern". The candidate finder pattern selected at step 450 and the centre finder pattern !5 selected at step 420, together form a "candidate pair". Accordingly, the finder pattern is 970347_Final (3249107v1) -20 selected at step 450 from the remaining plurality of detected finder patterns in the candidate list to form the candidate pair comprising the finder pattern selected at step 420 and the finder selected at step 450. In the following steps 460 and 470, as described below, the processor 205 performs steps 5 for determining for each 2/3 region type, whether the candidate finder pattern selected at step 450 lies in the allowed zone and if so whether the candidate pair of finder patterns defines a valid 2/3 region of that type. As will also be described in detail below, in step 480, the processor 205 performs a further step of modifying the allowed zone to account for the candidate finder pattern. D In particular, following step 450, the method 400 proceeds to step 460, where the processor 205 analyses the candidate pair of finder patterns comprising the candidate finder pattern together with the centre finder pattern to determine if any valid 2/3 region types (e.g., 301, 302, 303) are formed from the candidate pair of finder patterns. A method 700 of analysing a pair of finder patterns, as executed at step 460, will be 5 described in detail below with reference to Fig. 7. The method 700 may be implemented as one or more code modules of the software application program 233 resident on the hard disk drive 210 and being controlled in their execution by the processor 205. For the purposes of explanation, the method 700 will be described with reference to the example network 500 of Fig.5. Taking finder pattern 510 as the centre finder pattern, the 20 candidate list at the start of step 460 comprises the neighbouring finder patterns 530, 540 and 550 which are initially added to the candidate list, and finder pattern 530 is selected as the first candidate finder pattern. Steps 710 to 770 of step 460 iterate over the three types of quick response 2/3 regions (i.e., the 2/3-, 2/3+, 2/3/ regions 303, 302 and 301, respectively, as described above with reference 25 to Fig. 3C). 970347_Final (3249107v1) -21 In "selecting" step 710, the region type (e.g., 301, 302, 303) for an initial iteration is selected by the processor 205. Details of the selected region type may also be stored within memory 206. In "transforming" step 720, the canonical allowed zone 600 initialised in step 430 is 5 transformed according to the selected 2/3 quick response region type. In particular, if the selected quick response region type is a 2/3/ region 301, no transformation is required, as this is the canonical allowed zone 600. However, if the selected quick response region type is a 2/3+ region 302, then the canonical allowed zone 600 is transformed into the 2/3+ allowed zone by scaling the canonical allowed zone 600 by a factor of 1/42; and then rotating the 3 canonical allowed zone 450 counter-clockwise. Fig. 6Bshows a transformed version 620 of the initial canonical allowed zone 600. As seen in Fig. 6B, the canonical allowed zone 600 has been transformed by scaling the canonical allowed zone 600 by a factor of 1/N2; and then rotating the canonical allowed zone 450 counter-clockwise, producing the transformed version 620. After being transformed, 5 finder patterns are only allowed near the main axes of the centre finder pattern 630. Alternatively, if the selected quick response region type is a 2/3- region 303, then the canonical allowed zone 600 is transformed into the 2/3- allowed zone by scaling canonical allowed zone 600 by 1/2; and rotating the canonical allowed zone 600 by 45* clockwise. In "decision" step 730, the processor 205 determines a vector from the centre finder pattern 20 (e.g., 630) to the candidate finder pattern. The determined vector is used to determine if the candidate finder pattern falls within the transformed allowed zone (e.g., 620)of the centre node(e.g., 630). If the processor 205 determines that the candidate finder pattern falls within the transformed allowed zone (e.g., 620) of the centre node (e.g., 630), then the method 700 continues to "decision" step 740. Otherwise, the method 700 continues to "decision" step 25 750. 970347_Final (3249107v1) - 22 In "decision" step 740, if the processor 205 determines that the centre finder region and the candidate finder region (i.e., the candidate pair) defines a valid 2/3 region pair (i.e., the candidate pair corresponds to a quick response barcode), then the method 700 proceeds to step 760. Otherwise, the method 700 proceeds to step 770. 5 The validity of the candidate pair of finder patterns is determined based on an examination of the angles and sizes of the centre finder pattern and candidate finder pattern. Fig. 8shows an example centre finder pattern 810 and candidate finder patter 820. As shown, the angles of the finder patterns 810 and 820 are 01 and 02, respectively. The widths of the finder patterns 810 and 820 are W, and W 2 , respectively. If the angles 01 and 02 and the widths W, and W 2 ) of the two finder patterns 810 and 820are the same, within predetermined tolerances, then a 2/3 region match has been established and the finder patterns 810 and 820 define a valid pair (i.e., the finder patterns 810 and 820 correspond to a potential quick response barcode). A suitable predetermined tolerance for the angle is ten (10) degrees. A suitable predetermined tolerance for the magnitude is 20%. 5 In the case where the pair of finder patterns 810 and 820 defines a valid 2/3 region (e.g., 301, 302, 303), the potential region, comprising the candidate pair and the region type, is added to the list of 2/3 regions previously created in step 405 in "adding" step 760. As described above, the 2/3 region list may be stored within the memory 206 or the hard disk drive 210. 20 In "adding" step 770, all neighbour finder patterns of the candidate finder pattern which are not the centre finder pattern; are not already in the candidate list; and have not previously been candidate finder patterns for the centre finder pattern; are added to the candidate list stored within the memory 206. Step 770 is executed as neighbour finder patterns of candidate finder patterns may also form a valid 2/3 region pair with the centre finder pattern. The 970347_Final (3249107v1) -23 current candidate finder pattern is stored within the memory 206 as the parent finder pattern of each finder pattern added to the candidate list in step 770. Returning to the previous example of Fig.5, if the finder pattern 510 is the centre finder pattern and the finder pattern 530 is the candidate finder pattern, then in step 770 finder patterns 560 and 570 are added to the candidate list, finder pattern 510 being the centre finder pattern and finder patterns 540 and 550 having been added to the candidate list previously. Following step 770, the method 700 continues at the "decision" step 780. If the processor 205 determines at step 730 that the candidate finder pattern does not fall within the transformed allowed zone 620 of the centre node 630, then the method 700 ) proceeds to step 750. At step 750, the processor 205 determines whether the neighbour finder patterns of the candidate finder pattern should be added to the candidate list configured with the memory 206. In particular, the processor 205 performs the step of comparing the edge between the parent finder pattern of the current candidate finder pattern and the candidate finder pattern to the boundary of the allowed region defined by the transformed allowed zone 5 620. If the edge intersects the allowed region boundary defined by the transformed allowed zone 620, then the method 700 proceeds to the step 770 previously described, where the neighbour finder patterns of the present candidate finder pattern are added to the candidate list configured within the memory 206. Alternatively, if the edge does not intersect the allowed region boundary defined by the !0 transformed allowed zone 620, then processing proceeds to step 780 and the neighbour finder patterns are not added to the candidate list. Adding neighbour finder patterns of invalid finder patterns only when the edge crosses the allowed region boundary ensures that all finder patterns inside the allowed region are found but that the search only progresses two steps outside of the allowed region defined by the 5 transformed allowed zone 620. 970347_Final (3249107vl) - 24 Considering once again the example of Fig. 5, if the finder pattern 510 is the centre finder pattern, finder pattern 570 is the candidate finder pattern and finder pattern 530 is the parent of the candidate finder pattern, then a path from finder pattern 530 to finder pattern 570 is examined. If the parent finder pattern 530 is in the allowed zone of finder pattern 510 and the candidate finder pattern570 lies outside the allowed zone of finder pattern 510, then the method 700 continues at step 780. Otherwise, the method 700 proceeds to step 770. In the final "decision" step 780 of the iteration, if the processor 205 determines that there are further 2/3 region types (e.g., 301, 302, 303) to test, then the method 700 returns to step 710. Otherwise the method 700 concludes. ) Returning once again to Fig. 4, following the step 460, the method 400 proceeds to step 470.In step 470, the processor 205 performs the step of modifying the canonical allowed zone (e.g., 600) based upon the location of the candidate finder pattern selected at step 450. In particular, the canonical allowed zone (e.g., 600) is reduced based upon the location of the candidate finder pattern. 5 The quick response code standard dictates that a finder pattern cannot be internal to a quick response barcode. Consequently, the canonical allowed zone (e.g., 600) may be modified at step 470 to exclude from consideration any finder patterns that yield a 2/3 quick response region for which the current candidate finder pattern falls within the canonical allowed zone (e.g., 600) (i.e., the candidate finder pattern may be classified as an internal finder pattern). 0 The modification of the canonical allowed zone (e.g., 600) is performed regardless of whether the candidate finder pattern formed any 2/3 regions (e.g., 301, 302, 303) with the centre finder pattern. However, some finder pattern detection methods return a confidence value associated with the finder pattern. Accordingly, in some implementations if the confidence value for the candidate finder pattern is below a predetermined threshold, then 5 step 470 may be skipped. 970347_Final (3249107vl) -25 In step 470, the processor 205 performs the step of determining the distance from the centre finder pattern to the candidate finder pattern. The determined distance is then multiplied by a factor of I2, forming a final maximum allowed distance for a candidate finder pattern forming a 2/3/ region with the centre finder pattern. In particular, any such candidate finder pattern lying further than the final maximum allowed distance from the centre finder pattern and within a 900 arc centred on the candidate finder pattern 910 will define a 2/3/ region with an internal finder pattern 910. In step 470, the canonical allowed zone distance is consequently reduced (or shrunk) within the 90* arc to the determined distance wherever the previously allowed distance is greater than the determined distance. For example, given a ) candidate finder pattern 910, the shaded area 920 represents an exclusion region determined for the candidate pair comprising the centre finder pattern 630 and the candidate finder pattern 910. Accordingly, step 470 results in the determination of an exclusion region within the area of the image, for the candidate pair. Removing the determined exclusion region 920 from the original canonical allowed zone 600 yields the smaller allowed zone 930. Accordingly, the 5 processor 205 performs the step of removing from the original canonical allowed zone 600 any areas of the image within the allowed zone 930 and which overlap the exclusion region 920. The new, reduced, smaller, canonical allowed zone 930 is valid for the transformation described above with respect to step 720 of the method 700. The reduced area defined by the 0 canonical allowed zone 930 prevents 2/3/ regions from having the candidate finder pattern as an internal finder pattern. The same reduced area defined by the canonical allowed zone 930, when transformed as at step 720 to produce the 2/3- and 2/3+ allowed zones, also prevents 2/3- and 2/3+ regions 303 and 303, respectively, from having the candidate finder pattern as an internal finder pattern. 970347_Final (3249107v) - 26 The shrinking (or modification) of the canonical allowed zone 600, as at step 470, will be further described with reference to Figs.IOA, 1OB and 10C. As seen in Fig. 10A, region 1010 is the canonical exclusion region for a pair of finder patterns 1011 and 1012 shown in Fig. 10A. In accordance with the example, as seen in Fig. 5 10B, region 1020 represents the canonical exclusion region 1010 after having been transformed for 2/3+ region matches (as at step 720). As seen in Fig. 10B, any 2/3+ region formed with a finder pattern in exclusion region 1020 has the candidate finder pattern 1012 internal to the 2/3+ region. In the case of a subsequent candidate pairing of a still further finder pattern with the central finder pattern 1011, wherein D that pairing defines a 2/3+ region, and where the still further finder pattern lies within the exclusion region 1020, the processor 205 performs the step of discarding this candidate pair of finder patterns comprising the centre finder pattern 1011 and the still further candidate finder pattern. Similarly, as seen in Fig. IOC, region 1030 represents the canonical exclusion region 1010 5 after having been transformed for 2/3- region matches. Again, any 2/3- region formed with a finder pattern in zone 1030 has the candidate finder pattern 1012 internal to the exclusion region 1030 and therefore as discussed above, any pairing defining such a 2/3- region is invalid. In "decision" step 480, the processor 205 performs the step of discarding (or removing) the 20 current candidate finder pattern from the candidate list stored in the memory 206. Also at step 480, if the processor 205 determines that there are further candidate finder patterns in the candidate list stored in memory 206, then the method 400 returns to step 450. Otherwise, the method 400 proceeds to step 490. Then in "decision" step 490, if the processor 205 determines that there are any more finder 25 patterns in the candidate list which have not been processed as the centre finder pattern (or 970347_Final (3249107v) - 27 centre node), then the method 400 proceeds to step 420. Otherwise, the method 400proceeds to the final step 495. In "output" step 495, the 2/3 region list, comprising all valid 2/3 regions identified in step 740 is output. For example, the 2/3 region list may be stored in memory 206 or the hard disk 5 drive 210, or passed to another code module of the software application 233. In one implementation, the processor 205 may perform a step of combining candidate pairs of finder patterns into triplets. Specifically, 2/3 regions may be merged into complete 3/3 regions if all three finder patterns of a particular quick response barcode are present. Because of the order in which the candidate pairs are analysed and the allowed region is shrunk (or 0 modified), if all three finder patterns are present then the quick response barcode region will be identified at least once as a 2/3+ region and at least once as a 2/3- region. Thus, for example, the processor 205 may perform the step of examining each 2/3+ region pair as seen in Fig. 3B and determining if the finder pattern 330 forms any 2/3- regions with other finder patterns. If the processor 205 determines that finder pattern 330 forms any 2/3- regions with 5 other finder patterns, then the triplet of finder patterns may be tested for conformance to the quick response specification by confirming an "L" shape formed by the triplet of finder patterns, and by confirming the finder pattern angle, and magnitude as described above. If the triplet of finder patterns conforms, then the triplet of finder patterns may be added to an output 3/3 region list configured within memory 206 and the associated 2/3 regions may be 20 removed from the output 2/3 region list. In one implementation, redundant 2/3 regions may be filtered out and discarded. For example, some 2/3 regions will be doubled, since a 2/3 region found when a first finder pattern is the centre finder pattern may be found again when a second finder pattern is the centre finder pattern. Further, a 2/3- region has a 2/3+ dual region, and a 2/3/ region has a 25 2/3/ dual region. Accordingly, redundant 2/3 regions may be filtered out and discarded. 970347_Final (3249107v1) -28 The 3/3 regions and left-over 2/3 regions determined in accordance with the described methods may subsequently be input to a quick response decoder such as that as described in ISO/IEC 18004 to obtain any encoded data within the regions. Industrial Applicability 5 The arrangements described are applicable to the computer and data processing industries and particularly for the processing barcodes. The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive. ) In the context of this specification, the word "comprising" means "including principally but not necessarily solely" or "having" or "including", and not "consisting only of". Variations of the word "comprising", such as "comprise" and "comprises" have correspondingly varied meanings. 970347_Final (3249107v])

Claims (8)

1. A method of identifying candidate pairs of finder patterns of a two-dimensional barcode, said method comprising: (i) selecting a first finder pattern from a plurality of finder patterns detected in an area of an image; (ii) selecting a further finder pattern from the remaining plurality of detected finder patterns to form a candidate pair comprising the first and further finder patterns; ) (iii) determining an exclusion region within the area of the image, for the candidate pair; (iv) discarding the candidate pair of finder patterns, if the further finder pattern lies outside an allowed zone of the area of the image; and (v) removing from the allowed zone any areas of the image within the allowed zone 5 which overlap the exclusion region; and (vi) repeating steps (ii) to (v) for one or more still further finder patterns, in order to identify said candidate pairs of finder patterns of the two-dimensional barcode.
2. The method according to claim 1, wherein the two-dimensional barcode is a !0 quick response barcode. 970347_Final (3249107v1) -30
3. The method according to claim 1, further comprising combining candidate pairs of finder patterns into triplets.
4. The method according to claim 1, further comprising transforming the allowed zone 5 according to type of barcode.
5. The method according to claim 1, wherein the exclusion region is determined based on a finder pattern being external to a potential quick response region. 3
6. An apparatus for identifying candidate pairs of finder patterns of a two-dimensional barcode, said apparatus comprising: means for selecting a first finder pattern from a plurality of finder patterns detected in an area of an image; means for selecting a further finder pattern from the remaining plurality of detected 5 finder patterns to form a candidate pair comprising the first and further finder patterns; means for determining an exclusion region within the area of the image, for the candidate pair; means for discarding the candidate pair of finder patterns, if the further finder pattern lies outside an allowed zone of the area of the image; and 970347_Final (3249107vl) -31 means for removing from the allowed zone any areas of the image within the allowed zone which overlap the exclusion region, in order to identify said candidate pairs of finder patterns of the two-dimensional barcode. 5
7. A system for identifying candidate pairs of finder patterns of a two-dimensional barcode, said system comprising: a memory for storing data and a computer program; a processor coupled to said memory for executing said computer program, said computer program comprising instructions for: (i) selecting a first finder pattern from a plurality of finder patterns detected in an area of an image; (ii) selecting a further finder pattern from the remaining plurality of detected finder patterns to forma candidate pair comprising the first and further finder patterns; (iii) determining an exclusion region within the area of the image, for the 5 candidate pair; (iv) discarding the candidate pair of finder patterns, if the further finder pattern lies outside an allowed zone of the area of the image; and (v) removing from the allowed zone any areas of the image within the allowed zone which overlap the exclusion region; and 970347_Final (3249107v1) -32 (vi) repeating steps (ii) to (v) for one or more still further finder patterns, in order to identify said candidate pairs of finder patterns of the two-dimensional barcode. 5
8. A method of identifying candidate pairs of finder patterns of a two-dimensional barcode, said method being substantially as herein before described with reference to any one of the embodiments as that embodiment is shown in the accompanying drawings. DATED this 29th Day of August 2011 CANON KABUSHIKI KAISHA ) Patent Attorneys for the Applicant SPRUSON&FERGUSON 970347_Final (3249107v1)
AU2010257441A 2010-12-24 2010-12-24 Method, apparatus and system for identifying candidate pairs of finder patterns of a barcode Ceased AU2010257441B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2010257441A AU2010257441B2 (en) 2010-12-24 2010-12-24 Method, apparatus and system for identifying candidate pairs of finder patterns of a barcode
JP2011258177A JP2012138079A (en) 2010-12-24 2011-11-25 Method, apparatus and system for identifying candidate pair of position detection pattern of bar code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
AU2010257441A AU2010257441B2 (en) 2010-12-24 2010-12-24 Method, apparatus and system for identifying candidate pairs of finder patterns of a barcode

Publications (2)

Publication Number Publication Date
AU2010257441A1 AU2010257441A1 (en) 2012-07-12
AU2010257441B2 true AU2010257441B2 (en) 2012-09-20

Family

ID=46634934

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2010257441A Ceased AU2010257441B2 (en) 2010-12-24 2010-12-24 Method, apparatus and system for identifying candidate pairs of finder patterns of a barcode

Country Status (2)

Country Link
JP (1) JP2012138079A (en)
AU (1) AU2010257441B2 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020020747A1 (en) * 2000-04-06 2002-02-21 Hitomi Wakamiya Method of and apparatus for reading a two-dimensional bar code symbol and data storage medium
US20040020989A1 (en) * 2002-07-18 2004-02-05 Takeharu Muramatsu Two-dimensional code reading apparatus, two-dimensional code reading process, two-dimensional code reading program and recording medium for said program, portable terminal and digital camera
US20070071320A1 (en) * 2005-09-20 2007-03-29 Fuji Xerox Co., Ltd. Detection method of two-dimensional code, detection device for the same, and storage medium storing detection program for the same
WO2010031110A1 (en) * 2008-09-16 2010-03-25 Edith Cowan University Data storage device and encoding/decoding methods
US20100155464A1 (en) * 2008-12-22 2010-06-24 Canon Kabushiki Kaisha Code detection and decoding system
AU2008261179A1 (en) * 2008-12-22 2010-07-08 Canon Kabushiki Kaisha QR code decoding system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100347714C (en) * 2004-09-07 2007-11-07 佳能株式会社 Method, device and recording medium for positioning bar code

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020020747A1 (en) * 2000-04-06 2002-02-21 Hitomi Wakamiya Method of and apparatus for reading a two-dimensional bar code symbol and data storage medium
US20040020989A1 (en) * 2002-07-18 2004-02-05 Takeharu Muramatsu Two-dimensional code reading apparatus, two-dimensional code reading process, two-dimensional code reading program and recording medium for said program, portable terminal and digital camera
US20070071320A1 (en) * 2005-09-20 2007-03-29 Fuji Xerox Co., Ltd. Detection method of two-dimensional code, detection device for the same, and storage medium storing detection program for the same
WO2010031110A1 (en) * 2008-09-16 2010-03-25 Edith Cowan University Data storage device and encoding/decoding methods
US20100155464A1 (en) * 2008-12-22 2010-06-24 Canon Kabushiki Kaisha Code detection and decoding system
AU2008261179A1 (en) * 2008-12-22 2010-07-08 Canon Kabushiki Kaisha QR code decoding system

Also Published As

Publication number Publication date
JP2012138079A (en) 2012-07-19
AU2010257441A1 (en) 2012-07-12

Similar Documents

Publication Publication Date Title
US8923638B2 (en) Algorithm selection for structure from motion
US9355293B2 (en) Code detection and decoding system
JP5739522B2 (en) System and method for processing image data relating to the focus of attention within a whole image
AU2009251018B2 (en) Generating object representation from bitmap image
US8693734B2 (en) Detecting poorly conditioned points in bundle adjustment
US10546208B2 (en) Method, system and apparatus for selecting a video frame
AU2010257409B2 (en) Temporal-correlation-based mode connection
CN105976327A (en) Image noise reduction
US20180176589A1 (en) Transcode pcl delta-row compressed image to edges
AU2011265380B2 (en) Determining transparent fills based on a reference background colour
US9275316B2 (en) Method, apparatus and system for generating an attribute map for processing an image
AU2010257441B2 (en) Method, apparatus and system for identifying candidate pairs of finder patterns of a barcode
CN103544465B (en) A kind of decoding two-dimensional bar code recognition methods and device
AU2011265340A1 (en) Method, apparatus and system for determining motion of one or more pixels in an image
AU2017225022A1 (en) Method, system and apparatus for processing image data
AU2014277851A1 (en) Detecting a gap between text columns from text line fragments
CN112686338A (en) Image information identification method, device, equipment and storage medium
Novozámský et al. Extended IMD2020: a large‐scale annotated dataset tailored for detecting manipulated images
AU2008261179B2 (en) QR code decoding system
JP4753034B2 (en) Pattern matching device, image encoding device, image decoding device, image processing system, and program
AU2019201825A1 (en) Multi-scale alignment pattern
US9361555B2 (en) Method, apparatus and system for rendering an object on a page
AU2012232989A1 (en) A method of rendering an overlapping region
US20150178255A1 (en) Text line fragments for text line analysis
Pingi et al. Fast and simple automatic alignment of large sets of range maps

Legal Events

Date Code Title Description
FGA Letters patent sealed or granted (standard patent)
MK14 Patent ceased section 143(a) (annual fees not paid) or expired