WO2011065565A1 - 光学的情報読取装置及び光学的情報読取方法 - Google Patents

光学的情報読取装置及び光学的情報読取方法 Download PDF

Info

Publication number
WO2011065565A1
WO2011065565A1 PCT/JP2010/071361 JP2010071361W WO2011065565A1 WO 2011065565 A1 WO2011065565 A1 WO 2011065565A1 JP 2010071361 W JP2010071361 W JP 2010071361W WO 2011065565 A1 WO2011065565 A1 WO 2011065565A1
Authority
WO
WIPO (PCT)
Prior art keywords
block group
code
image
block
barcode
Prior art date
Application number
PCT/JP2010/071361
Other languages
English (en)
French (fr)
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 WO2011065565A1 publication Critical patent/WO2011065565A1/ja

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/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1447Methods for optical code recognition including a method step for retrieval of the optical code extracting optical codes from image or text carrying said optical code

Definitions

  • the present invention relates to an optical information reading apparatus and an optical information reading method for reading a code symbol such as a bar code or a two-dimensional code.
  • code symbols such as bar codes or two-dimensional codes are often used for the purpose of product management and inventory management. These code symbols are read by a code scanner or a handy terminal provided with a solid-state imaging device such as a CMOS image sensor or a CCD image sensor.
  • a code scanner or a handy terminal captures an image including a code symbol, performs various processing on the captured image, and binarizes and decodes the image.
  • a code scanner or a handy terminal reads a printed code symbol when receiving or shipping an article printed with a code symbol, and outputs the read code symbol as code symbol information to a host computer for storage. .
  • the article can be managed by the host computer.
  • a POS Point of Sale: store point-of-sale information management
  • this sheet can be used as a slip to transfer charges at post offices, banks, or convenience stores, purchase orders for goods transactions used inside and outside the company, forms for questionnaire surveys, product descriptions and cases for pharmaceutical products, etc. is there.
  • FIG. 22 is an explanatory diagram showing a display example of a medicine case (hereinafter referred to as case 20). As shown in FIG. 22, a barcode 21 and characters 22 are written on the case 20. There are many characters 22 near the barcode 21, and the area occupied by the barcode 21 on one side of the case 20 is less than 5% of the area occupied by the character 22 on one side of the case 20.
  • Patent Document 1 discloses a form recognition apparatus that recognizes barcode information on a form while conveying a plurality of types of forms.
  • this form recognition apparatus a form that has been conveyed is scanned in the vertical direction and read as form image data, the read form image data is stored in a memory, and when the reading of one form is completed, the read form image is read. Data is read out as horizontal line image data, binarized by two or more different threshold values, and barcode information matching a prescribed barcode format is recognized from the binarized information of each threshold value.
  • Patent Document 2 discloses a barcode recognition device that recognizes the position of a barcode from a histogram relating to the number of edge points.
  • a barcode recognition apparatus a pixel having a large density change in a predetermined reference direction among a plurality of pixels forming an image is detected as an edge point candidate, the edge strength is equal to or greater than a predetermined threshold, and the edge direction is When a predetermined number of edge point candidates within a predetermined angle from the reference direction continue in a direction orthogonal to the reference direction, it is determined that the predetermined number of edge point candidates are edge points, and edge points in the reference direction and the orthogonal direction Histograms are added to each of the numbers, and the position of the barcode in the image is recognized based on the histogram.
  • the form recognition apparatus described in Patent Document 1 binarizes with two or more different thresholds, it takes a long time to decode the small barcode 21 shown in FIG. is there. Moreover, the form recognition apparatus described in Patent Document 1 has a problem that a large apparatus and a space for installing the apparatus are required to process various types of forms.
  • the barcode recognition apparatus described in Patent Document 2 has complicated processes such as edge point candidate detection, edge point determination, and histogram generation, and has a large amount of calculation. There is a problem that it takes an enormous amount of time to decode the barcode 21.
  • the present invention solves such a problem, and even a small bar code mixed in characters can be quickly recognized, does not require complicated information processing, and has a smaller number of parts than a conventional apparatus. It is an object of the present invention to provide an optical information reading apparatus and an optical information reading method that can be reduced in size and reduced in manufacturing cost.
  • an optical information reading apparatus includes an image capturing unit that captures an image including a code symbol having a plurality of bars and characters, and an image captured by the image capturing unit. Detecting a bar and a character by scanning with a scanning line, and generating a frequency distribution related to an angle between the bar and the character detected by the image detecting unit and the scanning line, and based on the generated frequency distribution Code position calculating means for calculating the position of the code symbol.
  • the image capturing means captures an image including code symbols and characters having a plurality of bars.
  • the image detecting unit scans the image captured by the image capturing unit with a scanning line to detect bars and characters.
  • the code position calculation means generates a frequency distribution related to the angle formed between the bar and the character detected by the image detection means and the scanning line. Since the bars of the code symbol are parallel to each other, the angles formed between the bars and the scanning lines are all the same.
  • the code position calculation means calculates the position of the code symbol based on the generated frequency distribution. As a result, the position of the code symbol can be recognized.
  • the optical information reading method captures an image including a code symbol having a plurality of bars and characters, scans the captured image with a scanning line, detects bars and characters, and detects the detected bars.
  • a frequency distribution relating to an angle between the character and the scanning line is generated, and the position of the code symbol is calculated based on the generated frequency distribution.
  • the optical information reading apparatus and the optical information reading method according to the present invention since the position of the code symbol can be recognized from the frequency distribution related to the angle formed by the bar and the scanning line, it can be quickly recognized even if the code symbol is small, Complicated information processing is not required, and the size can be reduced by reducing the number of parts compared to the conventional apparatus, and the manufacturing cost can be reduced.
  • FIG. 1 It is a block diagram which shows the structural example of the code scanner 1 which concerns on 1st Embodiment. It is a block diagram which shows the structural example of ASIC7. It is explanatory drawing which shows the structural example of the division
  • FIG. 7 is a flowchart showing an operation example of a code position calculation unit 77.
  • 12 is an explanatory diagram illustrating a display example of a case 20.
  • a code scanner 1 will be described as an example of an optical information reader.
  • FIG. 1 is a block diagram illustrating a configuration example of a code scanner 1 according to the first embodiment.
  • the code scanner 1 according to the present embodiment includes an optical head unit 2 and a code scanner control unit 6 which are an example of an image capturing unit.
  • the optical head unit 2 includes a lens 3, a CMOS image sensor (hereinafter referred to as CMOS 4) that is an example of a solid-state imaging device, and an LED 5 that is an example of a light source.
  • CMOS image sensor hereinafter referred to as CMOS 4
  • LED 5 that is an example of a light source.
  • the lens 3 is, for example, an optical lens, and an image including a code symbol and a character 22 which is an image such as a barcode 21 having a plurality of bars shown in FIG. take in.
  • the lens 3 is formed by processing plastic or glass into a desired shape.
  • the lens 3 may be a focusable lens in order to have an efficient autofocus function.
  • One of the focusable lenses is a liquid lens.
  • the liquid lens is configured by enclosing a highly conductive aqueous solution and an insulating oily fluid in a light-transmitting container. Aqueous solutions and oily fluids are immiscible and have an interface. Electrodes are provided at both ends of the container, and by applying the electrode to the electrodes, the shape of the boundary surface between the aqueous solution and the oily fluid can be changed from a flat surface to a convex shape or a concave shape by utilizing an electrowetting phenomenon. By this operation, the bending rate of the lens changes, and the focus can be adjusted.
  • the liquid crystal lens has a structure in which a liquid crystal layer having a homogeneous (non-twisted) molecular arrangement is sandwiched between two glass plates. A metal oxide transparent electrode is formed on one of the glass surfaces. The alignment state of the liquid crystal molecules changes according to the change of the voltage applied to the electrode, and as a result, the refractive index (lens wavefront) of the lens is continuously varied. In this way, the focal length is changed by adjusting the voltage, and an autofocus function is provided.
  • a focusable lens such as the liquid lens or liquid lens described above
  • an area for mechanically driving the solid lens is not required, so that the code scanner housing can be made small while having an autofocus function. It becomes possible.
  • the ASIC 7 described later operates in the same manner and can decode the code symbol.
  • the lens 3 is provided with a CMOS 4.
  • the CMOS 4 captures the bar code 21 and the character 22 taken in by the lens 3 and photoelectrically converts them, and outputs the bar code 21 and the character 22 to the code scanner control unit 6 as image data D1.
  • An LED 5 is provided in the vicinity of the lens 3.
  • the LED 5 is controlled to be lit by an ASIC 7 described later.
  • the LED 5 irradiates the target image with light when the image is taken into the optical head unit 2 by the lens 3.
  • the LED 5 irradiates the bar code 21 in the image with light, so that a clearer bar code 21 can be taken into the optical head unit 2.
  • the code scanner 1 according to the present embodiment can reliably recognize the barcode 21 as will be described later, and thus the LED 5 need not be provided.
  • the code scanner control unit 6 includes an ASIC 7, a RAM 8 and a ROM 9, which are examples of storage means, a first I / O interface (hereinafter referred to as I / O 10), and a second I / O interface (hereinafter referred to as I / O 11). Is provided.
  • the ASIC 7 performs control of the CMOS 4 and the LED 5, calculation of a code position, which will be described later with reference to FIG.
  • a RAM 8 and a ROM 9 are connected to the ASIC 7.
  • the RAM 8 stores image data D1 captured by the optical head unit 2, a program for starting the code scanner 1 stored in the ROM 9, and the like.
  • the ROM 9 stores a program for starting the code scanner 1 and the like.
  • I / O 10 and I / O 11 are connected to the ASIC 7.
  • the I / O 10 is an interface that performs data communication with the optical head unit 2.
  • a CMOS 4 and an LED 5 are connected to the I / O 10, and image data D 1 output from the CMOS 4 is output to the ASIC 7, and a lighting signal D 2 for lighting the LED 5 generated by the ASIC 7 is output to the LED 5.
  • the I / O 11 is an interface that performs data communication with an external device.
  • a host computer (not shown) is connected to the I / O 11, and the I / O 11 transmits data relating to the barcode included in the image data D 1 binarized by the ASIC 7 to the host computer.
  • the host computer receives data related to the binarized barcode and performs various processes.
  • FIG. 2 is a block diagram illustrating a configuration example of the ASIC 7.
  • the ASIC 7 includes a control unit 71, a block division unit 72, an image detection unit 73, a block group generation unit 76, and a code position calculation unit 77.
  • the image detection unit 73 includes an edge detection unit 74 and an edge counting unit 75.
  • Control means 71 is connected to RAM 8, ROM 9, I / O 10 and I / O 11.
  • the control means 71 reads the activation program stored in the ROM 9 and develops it in the RAM 8 to activate the code scanner 1. Then, the control means 71 receives the image data D1 output from the CMOS 4 via the I / O 10 and stores it in the RAM 8. The control means 71 outputs the image data D1 stored in the RAM 8 to the block dividing means 72.
  • the block dividing means 72 is connected to the control means 71.
  • the block dividing unit 72 divides the image data D1 output by the control unit 71 for each block to generate divided image data D3.
  • the block dividing unit 72 outputs the generated divided image data D3 to the edge detecting unit 74 and the code position calculating unit 77.
  • FIG. 3 is an explanatory diagram showing a configuration example of the divided image data D3.
  • the block dividing unit 72 divides the image data D1 into 16 ⁇ 10 blocks 31 to generate divided image data D3, for example.
  • the number of blocks 31 is appropriately set according to the number of pixels of the CMOS 4 and the data processing capability of the ASIC 7. For example, in this example, 32 ⁇ 32 pixels are used as one block 31.
  • the edge detecting means 74 is connected to the block dividing means 72.
  • the edge detecting unit 74 receives the divided image data D3 output by the block dividing unit 72 and detects an edge that is an outer peripheral portion of the barcode 21 or the character 22 included in the received divided image data D3.
  • FIG. 4A, 4B, and 4C are explanatory diagrams illustrating an example of edge detection of the barcode 21.
  • FIG. 4A the barcode 21 which is a part of the barcode 21 of the case 20 shown in FIG. 22 and in which a plurality of black bars are provided in parallel to each other will be described.
  • the edge detector 74 scans the barcode 21 with a first scanning line (hereinafter referred to as a scanning line 73a) that scans the barcode 21 in the vertical direction to detect the edge of the bar (in FIG. 4B, the edge is detected).
  • the detection part is indicated by a white circle).
  • the edge detection unit 74 scans the barcode 21 with a second scanning line (hereinafter referred to as a scanning line 73b) that scans the barcode 21 in the horizontal direction to detect the edge of the bar (FIG. 4C).
  • a scanning line 73b a second scanning line that scans the barcode 21 in the horizontal direction to detect the edge of the bar.
  • the edge detection part is indicated by a black circle).
  • FIG. 5A, FIG. 5B, and FIG. 5C are explanatory diagrams showing an example of edge detection of the character 22.
  • the character 22 of “A” which is a part of the character 22 of the case 20 shown in FIG. 22 will be described.
  • the edge detecting means 74 scans the character 22 with the scanning line 73a to detect the edge of the character 22 (in FIG. 5B, the edge detection portion is indicated by a white circle).
  • the edge detection unit 74 scans the character 22 with the scanning line 73b to detect the edge of the character 22 (in FIG. 5C, the edge detection portion is indicated by a black circle).
  • Edge detection means 74 is connected to edge counting means 75.
  • the edge totaling means 75 totals the edges of the barcode 21 and the characters 22 detected by the edge detecting means 74 for each block 31 divided by the block dividing means 72 to generate edge totaling information D4. Then, the edge totaling means 75 outputs the generated edge totaling information D4 to the block group generating means 76.
  • FIG. 6 is an explanatory diagram showing a configuration example of the edge tabulation information D4.
  • the edge counting unit 75 totals the edges detected by the edge detecting unit 74 for each block 31 obtained by dividing the image data D1 into 16 ⁇ 10 blocks by the block dividing unit 72.
  • the edge totaling means 75 stores the total number of edges as the total number of edges 30 for each block 31 to generate edge totaling information D4, and outputs the generated edge totaling information D4 to the block group generation means 76.
  • the edge totaling means 75 sets the total number of edges, which is 22 white circles and 110 black circles, to 132 as the total number of edges.
  • the edge totaling means 75 sets the total number of white circles and 12 black circles to 22 as the total number of edges 30.
  • the block group generation means 76 is connected to the edge counting means 75.
  • the block group generation unit 76 receives the edge tabulation information D4 output from the edge tabulation unit, and the bar code 21 and the number 22 of edge counts 30 of the characters 22 included in the received edge tabulation information D4 are equal to or greater than a predetermined number. Is determined for each block 31.
  • the block group generation unit 76 generates a block group by grouping blocks adjacent to the block 31 when the edge count number 30 is a predetermined number or more, and the edge count number 30 is smaller than the predetermined number. Does not generate a block group. Then, the block group generation unit 76 determines whether the total number of edges 30 is equal to or greater than a predetermined number for all the blocks 31 and then information on where the block group exists in the divided image. Is output to the code position calculation means 77.
  • the code position calculation means 77 which will be described later, does not need to perform the code position calculation process for all the blocks, and only needs to perform the code position calculation process for the block group.
  • the total time from the start to the end of the calculation process can be shortened.
  • the predetermined number for determining the edge total number 30 is stored in the ROM 9 in advance when the code scanner 1 is manufactured.
  • FIG. 7 is an explanatory diagram showing a configuration example of the block group information D5.
  • the block group generation means 76 when the edge count number 30 is equal to or greater than a predetermined number (for example, the predetermined number is 10 in this example), the block adjacent to the block 31 31 are grouped to generate block groups 32a, 32b, 32c, 32d, and 32e (indicated by hatching in FIG. 7).
  • a predetermined number for example, the predetermined number is 10 in this example
  • the edge count number 30 is smaller than a predetermined number, no block group is generated.
  • the block group 32a has 8 blocks 31, the block group 32b has 2 blocks 31, the block group 32c has 10 blocks 31, the block group 32d has 25 blocks 31, There are five blocks 31 in the block group 32e.
  • a code position calculating unit 77 is connected to the block dividing unit 72 and the block group generating unit 76.
  • the code position calculating unit 77 receives the divided image data D3 output by the block dividing unit 72 and the block group information D5 output by the block group generating unit 76.
  • the code position calculation means 77 performs code position calculation processing on the divided image data D3 (barcode 21 and character 22) corresponding to the block group information D5 (block groups 32a, 32b, 32c, 32d, 32e), The position of the barcode 21 is calculated, and code position information D6 that is information indicating the position of the barcode 21 is generated. Then, the code position calculation unit 77 outputs the generated code position information D6 to the control unit 71.
  • the control means 71 can receive the code position information D6 output by the code position calculation means 77, and recognize the position of the barcode 21 based on the received code position information D6.
  • FIG. 8A and 8B are explanatory diagrams illustrating an example of determining the linear shape of the image 44a.
  • the code position calculation unit 77 receives the divided image data D3 and the block group information D5, and codes the block 31 of the divided image data D3 corresponding to the position of the block group 32c, for example, based on the received block group information D5. It is assumed that position calculation processing is performed.
  • the code position calculation means 77 draws the reference line 40 (shown by a broken line) with respect to the image 44a in the predetermined part of the block 31 of the divided image data D3. Intersections between the reference line 40 and the image 44a are defined as edges 40a and 40b.
  • the code position calculation means 77 draws a first minibar (hereinafter referred to as a minibar 41a) upward from the edge 40a along the image 44a, and a second minibar (hereinafter referred to as minibar 41b) downward from the edge 40a along the image 44a. D). Further, the code position calculating means 77 draws a third minibar (hereinafter referred to as a minibar 41c) upward from the edge 40b along the image 44a, and a fourth minibar (hereinafter referred to as “minibar 41c”) from the edge 40b along the image 44a. Pull the mini-bar 41d). Then, the code position calculation means 77 draws the center line 43 between the minibars 41a and 41b and the minibars 41c and 41d (indicated by a one-dot chain line).
  • the code position calculation means 77 draws the outline 41e along the periphery of the image 44a from the edge 40b. Note that the outline 41e may be drawn from the edge 40a along the periphery of the image 44a.
  • the code position calculation unit 77 recognizes that the image 44a is a linear shape from the center line 43 and the contour line 41e. That is, there is a high possibility that the image 44a is the barcode 21, and there is a high possibility that the barcode 21 is present in the block group 32c.
  • the code position calculation means 77 receives the divided image data D3 and the block group information D5, and codes the block 31 of the divided image data D3 corresponding to the position of the block group 32a based on the received block group information D5. It is assumed that position calculation processing is performed.
  • the code position calculation means 77 draws the reference line 40 (shown by a broken line) with respect to the image 44b in the predetermined part of the block 31 of the divided image data D3.
  • the code position calculation means 77 pulls the minibar 41a upward along the image 44b from the edge 40a, and pulls the minibar 41b downward along the image 44b from the edge 40a. Further, the code position calculating unit 77 pulls the minibar 41c upward from the edge 40b along the image 44b, and pulls the minibar 41d downward from the edge 40b along the image 44b. Then, the code position calculation means 77 draws the center line 43 between the minibars 41a and 41b and the minibars 41c and 41d (indicated by a one-dot chain line).
  • the code position calculation means 77 draws a contour line 41f from the edge 40b along the periphery of the image 44b.
  • the code position calculating unit 77 may draw the outline 41f in a direction away from the center line 43, and thus recognizes that the image 44a is not linear.
  • the image 44b is more likely to be the character 22 than the barcode 21, and the possibility that the barcode 21 is present in the block group 32a is reduced.
  • the code position calculating unit 77 performs the above-described processing on all the blocks 31 of the block groups 32a, 32b, 32c, 32d, and 32e, and forms a linear image 44a on the block groups 32a, 32b, 32c, 32d, and 32e. And block groups 32a, 32b, 32c, 32d, and 32e in which the linear image 44a exists are selected.
  • the code position calculation means 77 calculates the angle formed between the reference line 40 of the selected block group 32a, 32b, 32c, 32d, 32e and the minibar 41a, 41b, 41c, 41d. Then, the code position calculation unit 77 generates a frequency distribution related to the calculated angle.
  • FIG. 10 shows an example of frequency distribution in which the horizontal axis is an angle between the reference line 40 and the minibars 41a to 41d (hereinafter simply referred to as the minibar angle), and the vertical axis is the number of the minibars 41a, 41b, 41c, 41d. It is explanatory drawing shown. As shown in FIG. 10, there is a distribution 50 in which the number of minibars is approximately 40 vertices near a minibar angle of 95 degrees, and there is a distribution 51 in which the number of minibars is approximately 5 vertices near a minibar angle of 40 degrees. . Since the plurality of bars of the barcode 21 are parallel to each other, all the angles of the minibar are substantially the same. That is, the code position calculation unit 77 recognizes that the barcode 21 exists at the position of the image corresponding to the distribution 50.
  • the code position calculation unit 77 recognizes that the barcode 21 exists at the position of the image corresponding to the distribution 50.
  • FIG. 11 is an explanatory diagram showing an example of calculating the position of the barcode 21.
  • the code position calculation means 77 calculates the average value of the center line 43 from the center line 43 of the image 44a obtained in FIG. 8A, and obtains the coordinates of the center position 60 of the barcode 21. Then, the code position calculation unit 77 calculates the coordinates of the four corners 61 of the barcode 21 from the center position 60 and the center line 43. The code position calculation unit 77 generates code position information D6 including the calculated center position 60 and coordinates of the four corners 61 of the barcode 21, and outputs the generated code position information D6 to the control unit 71. As a result, the code scanner 1 can recognize the position of the barcode 21.
  • the code position calculation unit 77 determines whether to draw the horizontal reference line or the vertical reference line depending on whether the number of edges included in the edge total information D4 is larger in the horizontal direction or the vertical direction. For example, if the code position calculating unit 77 determines that the number of edges included in the edge total information D4 is large in the horizontal direction, the code position calculating unit 77 draws a horizontal reference line, and the number of edges included in the edge total information D4 is vertical. If there are many in the direction, draw a vertical reference line. Thereby, it is possible to reliably determine whether the captured image is the barcode 21 or the character 22.
  • the code position calculation means 77 may use the scanning lines 73a and 73b scanned by the edge detection means 74 instead of the reference line 40.
  • FIG. 12 is a flowchart showing an operation example of the ASIC 7. It is assumed that the ASIC 7 reads the activation program for the code scanner 1 from the ROM 9 and develops it in the RAM 8 so that the code scanner 1 is activated.
  • step ST1 the ASIC 7 controls the optical head unit 2 to cause the optical head unit 2 to capture an image including the barcode 21 and the characters 22, and the captured image is converted into image data. D1 is output to the ASIC 7.
  • step ST2 the block dividing means 72 included in the ASIC 7 divides the image data D1 output to the ASIC 7 for each block to generate divided image data D3 (see FIG. 3).
  • step ST3 the edge detection unit 74 included in the ASIC 7 detects the edge of the barcode 21 and the character 22 included in the divided image data D3 divided for each block by the block division unit 72 (FIG. 4A, FIG. 4). 4B, FIG. 4C and FIGS. 5A, 5B, and 5C).
  • the edge counting means 75 of the ASIC 7 totals the edges of the barcode 21 and the characters 22 detected by the edge detecting means 74 for each block, and generates edge counting information D4 (see FIG. 6). ).
  • step ST5 the block group generation unit 76 included in the ASIC 7 determines whether or not the edge count number 30 stored in the edge count information D4 output by the edge count means 75 is a predetermined number or more. . If the edge count number 30 is greater than or equal to the predetermined number, the process proceeds to step ST6. When the edge count number 30 is smaller than the predetermined number, the block group generation unit 76 ends the code position calculation process for the block without generating the block group.
  • step ST6 the block group generation means 76 groups blocks adjacent to the block 31 to generate block groups 32a, 32b, 32c, 32d, and 32e, and generates block group information D5. Then, the block group generation unit 76 outputs the generated block group information D5 to the code position calculation unit 77.
  • step ST7 the code position calculation unit 77 included in the ASIC 7 performs barcode processing based on the divided image data D3 generated by the block division unit 72 and the block group information D5 generated by the block group generation unit 76.
  • Code position calculation processing (step ST11 to step ST18 shown in FIG. 13 described later) is performed on the character 21 and the character 22 to calculate the position of the barcode 21.
  • FIG. 13 is a flowchart showing an operation example of the code position calculation means 77.
  • the code position calculation unit 77 selects a random block group from the block group information D5 generated by the block group generation unit 76, and the code position with respect to the block 31 of the divided image data D3 corresponding to the selected block group. It is assumed that calculation processing is performed.
  • step ST11 the code position calculation means 77 draws the reference line 40 on the images 44a and 44b (see FIGS. 8A and 9A).
  • step ST12 the code position calculation unit 77 draws the minibars 41a, 41b, 41c, and 41d along the vertical direction of the images 44a and 44b from the intersection of the reference line 40 and the images 44a and 44b (see FIG. 8A and FIG. 8A). (See FIG. 9A).
  • the code position calculation means 77 draws the center line 43 between the minibars 41a and 41b and the minibars 41c and 41d (see FIGS. 8A and 9A).
  • the code position calculating unit 77 draws the outlines 41e and 41f along the periphery of the images 44a and 44b from the edge 40b (see FIGS. 8B and 9B).
  • the code position calculation means 77 determines whether or not the images 44a and 44b are linear from the center line 43 and the contour lines 41e and 41f. If the images 44a and 44b are linear, the process proceeds to step ST16. If the images 44a and 44b are not linear, the operation is terminated and code position calculation processing is performed on other block groups. For example, since the code position calculating unit 77 has a linear shape in the case of the image 44a, the process proceeds to step ST16. In the case of the image 44b, the code position calculating unit 77 ends the operation because it does not have a linear shape.
  • step ST16 the code position calculating means 77 calculates an angle (minibar angle) formed by the reference line 40 drawn on the image 44a determined to have a linear shape and the minibars 41a, 41b, 41c, 41d.
  • the code position calculation unit 77 calculates the minibar angle for all the images existing in the selected block group. And the code position calculation means 77 produces
  • the code position calculating means 77 calculates the center position of the barcode 21 of the block 31 at the position corresponding to the generated frequency distribution. For example, as described with reference to FIG. 10, the code position calculation unit 77 recognizes that an image having a minibar angle near 95 degrees from the block group is the barcode 21, and as described with reference to FIG. Since the center lines 43 of the plurality of bars are obtained, the coordinates of the center position 60 of the barcode 21 can be calculated from the average value of the center lines 43 (see FIG. 11).
  • the code position calculating means 77 calculates the coordinates of the four corners 61 of the barcode 21 from the calculated center position 60 and center line 43 of the barcode 21.
  • the code position calculation unit 77 generates code position information D6 including the calculated center position 60 and coordinates of the four corners 61 of the barcode 21, and outputs the generated code position information D6 to the control unit 71.
  • the code scanner 1 can recognize the position of the barcode 21.
  • the optical head unit 2 captures an image including the barcode 21 having the plurality of bars and the characters 22.
  • the image detecting unit 73 scans the image captured by the optical head unit 2 with the scanning lines 73a and 73b, and detects the bar and the character 22 included in the barcode 21.
  • the code position calculation unit 77 generates a frequency distribution related to the angle formed by the bar and character 22 detected by the image detection unit 73 and the scanning lines 73a and 73b. Since the plurality of bars are parallel to each other, the angles formed by the bars and the scanning lines 73a and 73b are all the same.
  • the code position calculation unit 77 calculates the position of the barcode 21 based on the generated frequency distribution. As a result, the position of the barcode 21 can be recognized.
  • the code scanner 1 which can be provided can be provided.
  • an ASIC 7A provided with code determination means 78A for scoring and determining whether or not the barcode 21 is in the block groups 32a, 32b, 32c, 32d, and 32e will be described.
  • Components having the same names and reference numerals as those of the above-described embodiment have the same functions, and thus description thereof is omitted.
  • FIG. 14 is a block diagram illustrating a configuration example of the ASIC 7A according to the second embodiment.
  • the ASIC 7A includes a control unit 71, a block division unit 72, an image detection unit 73, a block group generation unit 76, a code position calculation unit 77, and a code determination unit 78A.
  • the image detection unit 73 includes an edge detection unit 74 and an edge counting unit 75.
  • a block group generation unit 76 is connected to the code determination unit 78A.
  • the code determination unit 78A receives the block group information D5 output from the block group generation unit 76.
  • the code determination unit 78A then scores the block groups 32a, 32b, 32c, 32d, and 32e included in the received block group information D5, and the bar code 21 is added to the block groups 32a, 32b, 32c, 32d, and 32e. It is determined whether or not there is. Examples of the scoring will be described with reference to FIGS.
  • FIG. 15 is an explanatory diagram showing an example (part 1) of scoring a block group.
  • the code determination unit 78A includes the total number of edges detected by the vertical scanning line 73a of the edge detection unit 74 and the edge detected by the horizontal scanning line 73b of the edge detection unit 74.
  • a difference from the total number (hereinafter simply referred to as a difference in the number of edge totals) is calculated, and whether or not the bar code 21 is present in the block groups 32a, 32b, 32c, 32d, 32e based on the calculated number of edge totals. Determine.
  • the total number of vertical and horizontal edges is stored in the RAM 8 by the edge totaling means 75.
  • the score is 1.
  • the score is 3.
  • the difference in the total number of edges is 11 to 15, the score is 6.
  • the score is 8.
  • the difference in the total number of edges is 21 or more, the score is 10.
  • the reason for this scoring is that, as shown in FIG. 4C, the bar code has a large difference in the number of edge counts (in FIG. 4C, the difference in the number of edge counts is 88), and the characters are shown in FIG. 5C. As described above, the difference in the number of edge counts is small (in FIG. 5C, the difference in the number of edge counts is 2).
  • the difference in the number of edge counts in the block group 32a is 3, and is scored as one point.
  • the difference in the total number of edges in the block group 32b is 7, which is assigned a score of 3.
  • the difference in the total number of edges in the block group 32c is 50, which is assigned a score of 10.
  • the difference in the total number of edges in the block group 32d is 14.
  • the score is 6 points, and the difference in the total number of edges in the block group 32e is 8, giving 3 points.
  • FIG. 16 is an explanatory diagram showing an example (part 2) of scoring a block group.
  • the code determination means 78A is based on the degree of dispersion of the block groups 32a, 32b, 32c, 32d, and 32e generated by the block group generation means 76, and the block groups 32a, 32b, 32c, 32d, and 32e. It is determined whether or not there is a barcode 21 on the screen.
  • the degree of dispersion is a degree indicating how much a block of a block group is dispersed in the block group. When the dispersion is large, the degree of dispersion is high, and when the dispersion is small, the degree of dispersion is low.
  • the score is one point.
  • the score is 3.
  • the score is 6.
  • the degree of dispersion is 1, the score is 8.
  • the degree of dispersion is 0 (that is, not dispersed)
  • the score is 10. The reason for this scoring is due to the fact that the barcode is a group and has almost no dispersion as shown in FIG. 22, and the characters are dispersed as shown in FIG.
  • the block groups 32a, 32b, 32c, 32d, and 32e shown in FIG. 7 are scored by the degree of dispersion, for example, the degree of dispersion of the block group 32a is 0, and is scored as 10 points. Becomes 1 and is scored 8 points, the variance of the block group 32c is 0 and is scored 10 points, the variance of the block group 32d is 4 and is scored 1 point, and the variance of the block group 32e is 1 It is scored as 8 points.
  • FIG. 17 is an explanatory diagram showing an example (part 3) of scoring a block group.
  • the code determination means 78A is based on the irregularities of the block groups 32a, 32b, 32c, 32d, 32e generated by the block group generation means 76, and the block groups 32a, 32b, 32c, 32d, 32e. It is determined whether or not there is a barcode 21 on the screen.
  • the degree of unevenness is a degree indicating how uneven the block group is. When there are many unevennesses, the degree of unevenness becomes high, and when the unevenness is small, the degree of unevenness becomes low.
  • the score is one point.
  • the score is 2.
  • the score is 3.
  • the unevenness is 1, the score is 4.
  • the degree of unevenness is 0 (that is, there is no unevenness), the score is 5.
  • the reason why the score regarding the degree of unevenness is smaller than the score regarding the difference in the edge count and the score regarding the degree of dispersion is that the difference in the edge count and the degree of dispersion are more important in block determination.
  • the unevenness degree of the block group 32a is 0 and is scored as 5 points
  • the unevenness degree of the block group 32b is scored as 0 and 5 points
  • the unevenness of the block group 32c is 0 and scored as 5 points
  • the unevenness of the block group 32d is 4 and scored as 1 point
  • the unevenness of the block group 32e is 0 It is scored with 5 points.
  • FIG. 18 is an explanatory diagram showing an example (part 4) of scoring a block group.
  • the code determination unit 78A determines the distance between the central portion of the image captured by the optical head unit 2 and the block groups 32a, 32b, 32c, 32d, and 32e generated by the block group generation unit 76. Based on this, it is determined whether or not there is a barcode 21 in the block group 32a, 32b, 32c, 32d, 32e.
  • the score is one point.
  • the score is 3.
  • the score is 6.
  • the score is 8.
  • the score is 10.
  • the distance from the center of the block group 32a is 17 and is scored as 6 points.
  • the distance from the center of 32b is 28, and is scored as 3 points
  • the distance from the center of the block group 32c is 18 and is scored as 6 points
  • the distance from the center of the block group 32d is scored as 6 points
  • the distance from the center of the block group 32e is 40, which is scored as one point.
  • FIG. 19 is an explanatory diagram showing a scoring example (No. 5) of a block group.
  • the code determination unit 78A is configured to generate block groups 32a, 32b, 32c, and 32c based on the area (number of blocks) of the block groups 32a, 32b, 32c, 32d, and 32e generated by the block group generation unit 76. It is determined whether or not there is a barcode 21 in 32d and 32e.
  • the score is 1. When the number of blocks is 6 to 10, the score is 2. When the number of blocks is 11 or more, the score is 3.
  • the block group 32a, 32b, 32c, 32d, and 32e shown in FIG. 7 is scored by the number of blocks, for example, the block group 32a has 8 blocks, and is scored as 2 points. 2 is scored as 1 point, the block group 32c is scored as 10 and scored as 2 points, the block group 32d is scored as 25 and scored as 3 points, and the block group 32e is scored as 5 blocks. It is scored as 1 point.
  • the block group 32a, 32b, 32c, 32d, and 32e are scored in the example of points shown in FIGS. 15 to 19, the block group 32a has a total of 24 points, and the block group 32b has a total of 20 points.
  • the group 32c has a total of 33 points, the block group 32d has a total of 17 points, and the block group 32e has a total of 18 points. That is, since the block group 32c has the highest score, the code determination unit 78A determines that the block group 32c has the barcode 21, and the block group information D5 indicates that the block group 32c has the barcode 21
  • the group determination information D7 is output to the code position calculation means 77.
  • the code position calculation unit 77 receives the block group information D5 and the block group determination information D7 output by the code determination unit 78A and performs code position calculation processing. Since the code position calculation means 77 recognizes that the barcode 21 is in the block group 32c from the block group determination information D7, the code position calculation processing is performed by first selecting the block group 32c from the block group information D5.
  • the code position calculation means 77 randomly selects from the block groups 32a, 32b, 32c, 32d, and 32e.
  • the ASIC 7A selects the block group 32c in which the barcode 21 exists. Since it is selected, the processing time of the code position calculation process can be shortened.
  • FIG. 20 is a flowchart showing an operation example of the ASIC 7A. As shown in FIG. 20, step ST21 to step ST26 are the same as step ST1 to step 6 shown in FIG.
  • step ST27 the code determination unit 78A scores whether or not the barcode 21 is in the block groups 32a, 32b, 32c, 32d, and 32e based on the block group information D5 generated by the block group generation unit 76. Judgment. Then, the code determination unit 78A generates block group determination information D7 indicating that the barcode 21 is present in any of the block groups 32a, 32b, 32c, 32d, and 32e.
  • step ST28 the code position calculating unit 77 uses the divided image data D3 generated by the block dividing unit 72, the block group information D5 generated by the block group generating unit 76, and the block group generated by the code determining unit 78A. Based on the determination information D7, the barcode 21 is subjected to code position calculation processing (step ST11 to step ST18 shown in FIG. 13 described above) to calculate the position of the barcode 21.
  • FIG. 21 is a flowchart showing an operation example of the code determination unit 78A.
  • the code determination means 78A scores the block groups 32a, 32b, 32c, 32d, and 32e by the difference in the number of edge counts.
  • the code determination unit 78A scores the block groups 32a, 32b, 32c, 32d, and 32e according to the degree of block dispersion.
  • the code determination unit 78A scores the block groups 32a, 32b, 32c, 32d, and 32e according to the degree of unevenness of the blocks.
  • the code determination means 78A scores points according to how far the block groups 32a, 32b, 32c, 32d, and 32e are from the center of the image.
  • the code determination unit 78A scores the block groups 32a, 32b, 32c, 32d, and 32e by the number of blocks of the block.
  • the code determination means 78A selects the block having the highest score from the block groups 32a, 32b, 32c, 32d, and 32e scored in steps ST31 to ST35. Then, the code determination unit 78A generates block group determination information D7 indicating that the selected block group has a barcode, and outputs the generated block group determination information D7 to the code position calculation unit 77.
  • the ASIC 7A includes the code determination unit 78A for scoring and determining whether the barcode 21 is in the block groups 32a, 32b, 32c, 32d, and 32e.
  • the calculation means 77 can perform code position calculation processing in a state where the block group in which the barcode 21 exists is recognized. As a result, the time for calculating the position of the barcode 21 can be shortened.
  • Block group determination information D7 may be generated.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Character Input (AREA)

Abstract

 文字に混在する小さなバーコードであってもすばやく認識できるようにする。 光学ヘッド部が複数のバーを有するバーコードと文字とを含む画像を取り込む。画像検出手段73が光学ヘッド部2で取り込まれた画像を走査線で走査してバーコードが有するバー及び文字を検出する。これを前提にして、コード位置算出手段77は、画像検出手段73で検出されたバー及び文字と走査線とのなす角度に関する度数分布を生成する。複数のバーは互いに平行であるので、バーと走査線とのなす角度は全て同じになる。コード位置算出手段77は、生成した度数分布に基づいてバーコードの位置を算出する。これにより、バーコードの位置を認識できるようになる。この結果、文字に混在する小さなバーコードであってもすばやく認識できる。

Description

光学的情報読取装置及び光学的情報読取方法
 本発明は、バーコード、二次元コード等のコード記号を読み取る光学的情報読取装置及び光学的情報読取方法に関するものである。
 現在、商品管理や在庫管理等を目的としてバーコード又は二次元コード等のコード記号が多く用いられている。これらのコード記号は、CMOSイメージセンサ又はCCDイメージセンサ等の固体撮像素子を備えたコードスキャナやハンディターミナルによって読み取られる。コードスキャナやハンディターミナルは、コード記号を含む画像を撮影し、該撮影した画像に様々な処理を施した後に二値化してデコード処理する。
 例えば、コードスキャナやハンディターミナルは、コード記号が印字された物品の入荷や出荷の際に、印字されたコード記号を読み取り、該読み取ったコード記号をコード記号情報としてホストコンピュータに出力して蓄積させる。これにより、物品の管理がホストコンピュータでできるようになる。
 また、例えば、小売店やスーパーマーケット等で顧客が購入したい商品をキャッシュレジスタに持っていき、店員がその商品に印字されているコード記号をコードスキャナで読み取って、該読み取ったコード記号からその商品の価格及び顧客が支払う合計金額がキャッシュレジスタの表示部に表示されるPOS(Point of Sale:店舗販売時点情報管理)システムが30年前から構築されている。
 また、近年は、文字とコード記号とが混在して表記されるシートからコード記号のみをコードスキャナやハンディターミナルで読み取る場合がある。例えば、このシートは、郵便局や銀行若しくはコンビニエンスストア等で料金を振り込む伝票、会社内外で使用される物品取引の発注書、アンケート調査を行う際の記入用紙、医薬品の製品説明書やケース等である。
 図22は、医薬品のケース(以下、ケース20という)の表示例を示す説明図である。図22に示すように、ケース20には、バーコード21及び文字22が表記されている。バーコード21付近には文字22が多く存在し、バーコード21がケース20の一面に占める面積は、文字22がケース20の一面に占める面積の5%も満たない。
 このようなケース20からコードスキャナでバーコード21のみを読み取る場合には、バーコード21のみならず文字22も撮像視野に入ってしまい、文字22を読み取ってしまう。コードスキャナが文字22を読み取ってしまうと、文字22がバーコード21ではないと認識するまでに時間がかかってしまったり、文字22をバーコード21として誤認識して誤ったデコード情報を出力してしまったりすることがある。
 特許文献1には複数種類の帳票を搬送しながら帳票上にあるバーコード情報を認識する帳票認識装置が開示されている。この帳票認識装置によれば、搬送されてくる帳票を縦方向に走査して帳票イメージデータとして読み取り、該読み取った帳票イメージデータをメモリに記憶させ、一帳票分の読み取りが終了すると読み取った帳票イメージデータを横方向のラインイメージデータとして読み出して、異なる2種以上の閾値により二値化して、各閾値の二値化情報より規定のバーコードフォーマットに合致するバーコード情報を認識する。
 特許文献2にはエッジ点の個数に関するヒストグラムからバーコードの位置を認識するバーコード認識装置が開示されている。このバーコード認識装置によれば、画像を形成する複数の画素のうち所定の基準方向の濃度変化が大きな画素をエッジ点候補として検出し、エッジ強度が所定の閾値以上あり、かつ、エッジ方向が基準方向から所定の角度以内であるエッジ点候補が基準方向の直交方向に所定数連続する場合に、該所定数のエッジ点候補をエッジ点であると判定し、基準方向及び直交方向にエッジ点の個数を加算したヒストグラムをそれぞれ生成し、ヒストグラムに基づいて画像中のバーコードの位置を認識する。
特開2002-32711号公報 特開2006-31167号公報
 ところで、特許文献1に記載の帳票認識装置は、異なる2種以上の閾値により二値化するので、図22に示した小さなバーコード21をデコードするまでに膨大な時間がかかってしまうという問題がある。また、特許文献1に記載の帳票認識装置は、多種類の帳票を処理するには大きな装置と、その装置を設置するスペースとが必要となってしまうという問題がある。
 また、特許文献2に記載のバーコード認識装置は、エッジ点候補の検出、エッジ点の判定及びヒストグラムの生成等の各処理が複雑であり、計算量が多いために、図22に示した小さなバーコード21をデコードするまでにデコードするまでに膨大な時間がかかってしまうという問題がある。
 本発明は、このような課題を解決するものであって、文字に混在する小さなバーコードであってもすばやく認識でき、複雑な情報処理を必要とせず、従来の装置に比べて部品点数を少なくすることで小型化できると共に、製造コストを低減できる光学的情報読取装置及び光学的情報読取方法を提供することを目的とする。
 上述した課題を解決するために、本発明に係る光学的情報読取装置は、複数のバーを有するコード記号と文字とを含む画像を取り込む画像取込手段と、画像取込手段で取り込まれた画像を走査線で走査してバー及び文字を検出する画像検出手段と、画像検出手段で検出されたバー及び文字と走査線とのなす角度に関する度数分布を生成し、該生成した度数分布に基づいてコード記号の位置を算出するコード位置算出手段とを備えることを特徴とするものである。
 本発明に係る光学的情報読取装置では、画像取込手段が複数のバーを有するコード記号と文字とを含む画像を取り込む。画像検出手段が画像取込手段で取り込まれた画像を走査線で走査してバー及び文字を検出する。これを前提にして、コード位置算出手段は、画像検出手段で検出されたバー及び文字と走査線とのなす角度に関する度数分布を生成する。コード記号の複数のバーは互いに平行であるので、バーと走査線とのなす角度は全て同じになる。コード位置算出手段は、生成した度数分布に基づいてコード記号の位置を算出する。これにより、コード記号の位置を認識できるようになる。
 また、本発明に係る光学的情報読取方法は、複数のバーを有するコード記号と文字とを含む画像を取り込み、取り込んだ画像を走査線で走査して、バー及び文字を検出し、検出したバー及び文字と走査線とのなす角度に関する度数分布を生成し、該生成した度数分布に基づいてコード記号の位置を算出することを特徴とするものである。
 本発明に係る光学的情報読取装置及び光学的情報読取方法によれば、バーと走査線とのなす角度に関する度数分布からコード記号の位置を認識できるので、コード記号が小さくてもすばやく認識でき、複雑な情報処理を必要とせず、従来の装置に比べて部品点数を少なくすることで小型化できると共に、製造コストを低減できる。
第1の実施の形態に係るコードスキャナ1の構成例を示すブロック図である。 ASIC7の構成例を示すブロック図である。 分割画像データD3の構成例を示す説明図である。 バーコード21のエッジ検出例を示す説明図である。 バーコード21のエッジ検出例を示す説明図である。 バーコード21のエッジ検出例を示す説明図である。 文字22のエッジ検出例を示す説明図である。 文字22のエッジ検出例を示す説明図である。 文字22のエッジ検出例を示す説明図である。 エッジ集計情報D4の構成例を示す説明図である。 ブロック群情報D5の構成例を示す説明図である。 画像44aの直線形状の判断例を示す説明図である。 画像44aの直線形状の判断例を示す説明図である。 画像44bの直線形状の判断例を示す説明図である。 画像44bの直線形状の判断例を示す説明図である。 基準線40とミニバー41a~41dとのなす角度の度数分布例を示す説明図である。 バーコード21の位置の算出例を示す説明図である。 ASIC7の動作例を示すフローチャートである。 コード位置算出手段77の動作例を示すフローチャートである。 第2の実施の形態に係るASIC7Aの構成例を示すブロック図である。 ブロック群の点数例(その1)を示す説明図である。 ブロック群の点数例(その2)を示す説明図である。 ブロック群の点数例(その3)を示す説明図である。 ブロック群の点数例(その4)を示す説明図である。 ブロック群の点数例(その5)を示す説明図である。 ASIC7Aの動作例を示すフローチャートである。 コード判定手段78Aの動作例を示すフローチャートである。 ケース20の表示例を示す説明図である。
 以下、図面を参照しながら本発明に係る光学的情報読取装置について説明する。本実施の形態では、光学的情報読取装置の一例としてコードスキャナ1を説明する。
 <第1の実施の形態> 
 [コードスキャナ1の構成例] 
 図1は、第1の実施の形態に係るコードスキャナ1の構成例を示すブロック図である。図1に示すように、本実施の形態に係るコードスキャナ1は、画像取込手段の一例である光学ヘッド部2及びコードスキャナ制御部6で構成される。光学ヘッド部2は、レンズ3、固体撮像素子の一例であるCMOSイメージセンサ(以下、CMOS4という)及び光源の一例であるLED5を備える。
 レンズ3は、例えば、光学レンズであり、図22で示した複数のバーを有するバーコード21や図示しない二次元コード等の画像であるコード記号と文字22を含む画像を光学ヘッド部2内に取り込む。レンズ3は、プラスチックやガラス等を所望の形状に加工することで形成される。
 また、レンズ3は、効率的なオートフォーカス機能を備えるために可焦点レンズを用いても良い。可焦点レンズの一つには、液体レンズがある。液体レンズは、導電性の高い水溶液と絶縁体の油性流体とを、光を透過する容器に封じ込めて構成される。水溶液と油性流体は混和せず、境界面を持つ。容器の両端には電極を備え、電極に印加することによってエレクトロウエッティング現象を利用して、水溶液と油性流体との境界面の形状を平面から凸状、あるいは凹状に変化させることができる。この動作により、レンズの屈曲率が変化し、フォーカス調整することが可能となる。
 可焦点レンズのもう一つには、液体レンズがある。液晶レンズは、ホモジニアス(ねじれのない)分子配列の液晶層を2枚のガラス板で挟んだ構造からなっている。それぞれのガラス面の一方には、金属酸化物の透明電極が形成される。液晶分子の配向状態は、その電極に印加される電圧の変化に従って変わり、その結果レンズの屈折率(レンズ波面)を連続的に可変させる。このように電圧の調整によって焦点距離を変え、オートフォーカス機能を有するものである。
 上述した液体レンズや液体レンズのような可焦点レンズを使用すれば、固体レンズを機械的に駆動する領域を必要としないので、オートフォーカス機能を備えながら、コードスキャナの筐体を小さくすることが可能となる。なお、何れのレンズであっても、後述するASIC7は同様に作動し、コード記号をデコード可能であることがわかっている。
 レンズ3にはCMOS4が設けられる。CMOS4は、レンズ3が取り入れたバーコード21及び文字22を撮像して光電変換することで、バーコード21及び文字22を画像データD1としてコードスキャナ制御部6に出力する。
 レンズ3の近傍にはLED5が設けられる。LED5は、後述するASIC7によって点灯制御される。LED5は、画像をレンズ3で光学ヘッド部2に取り入れる際に、対象の画像に光を照射する。LED5が画像中のバーコード21に光を照射することによって、より鮮明なバーコード21を光学ヘッド部2に取り入れることができる。なお、本実施の形態に係るコードスキャナ1は、後述のようにバーコード21を確実に認識できるので、LED5を設けなくても良い。
 コードスキャナ制御部6は、ASIC7、記憶手段の一例であるRAM8及びROM9、第1のI/Oインターフェース(以下、I/O10という)及び第2のI/Oインターフェース(以下、I/O11という)を備える。
 ASIC7は、CMOS4及びLED5の制御、図2で後述するコード位置の算出等を行う。ASIC7にはRAM8及びROM9が接続される。RAM8は、光学ヘッド部2によって取り込まれた画像データD1やROM9が記憶するコードスキャナ1を起動させるプログラム等を記憶する。ROM9は、コードスキャナ1を起動させるプログラム等を記憶する。
 ASIC7にはI/O10及びI/O11が接続される。I/O10は、光学ヘッド部2とデータ通信を行うインターフェースである。I/O10にはCMOS4及びLED5が接続され、CMOS4から出力された画像データD1をASIC7に出力したり、ASIC7によって生成されたLED5を点灯させるための点灯信号D2をLED5に出力したりする。
 I/O11は、外部装置とデータ通信を行うインターフェースである。例えば、I/O11には図示しないホストコンピュータが接続され、当該I/O11は、ASIC7によって二値化処理された画像データD1に含まれるバーコードに関するデータをホストコンピュータに送信する。ホストコンピュータは、二値化処理されたバーコードに関するデータを受信して、各種処理を行う。
 [ASIC7の構成例] 
 次に、ASIC7の構成例について説明する。図2は、ASIC7の構成例を示すブロック図である。図2に示すように、ASIC7は、制御手段71、ブロック分割手段72、画像検出手段73、ブロック群生成手段76及びコード位置算出手段77を有する。画像検出手段73は、エッジ検出手段74及びエッジ集計手段75を有する。
 制御手段71は、RAM8、ROM9、I/O10及びI/O11に接続される。制御手段71は、ROM9に記憶される起動プログラムを読み出してRAM8に展開して、コードスキャナ1を起動させる。そして、制御手段71は、CMOS4から出力された画像データD1をI/O10を介して受信してRAM8に記憶させる。制御手段71は、RAM8に記憶された画像データD1をブロック分割手段72に出力する。
 制御手段71にはブロック分割手段72が接続される。ブロック分割手段72は、制御手段71によって出力された画像データD1をブロック毎に分割して分割画像データD3を生成する。そして、ブロック分割手段72は、生成した分割画像データD3をエッジ検出手段74及びコード位置算出手段77に出力する。
 図3は、分割画像データD3の構成例を示す説明図である。図3に示すように、ブロック分割手段72は、例えば、画像データD1を16×10個のブロック31に分割して分割画像データD3を生成する。ブロック31の数は、CMOS4の画素数やASIC7のデータ処理能力等によって適宜設定される。例えば、本例では、32×32画素を1つのブロック31としている。
 ブロック分割手段72にはエッジ検出手段74が接続される。エッジ検出手段74は、ブロック分割手段72によって出力された分割画像データD3を受信して、該受信した分割画像データD3に含まれるバーコード21や文字22の外周部であるエッジを検出する。
 図4A,図4B,図4Cは、バーコード21のエッジ検出例を示す説明図である。図4Aに示すように、図22で示したケース20のバーコード21の一部であって、複数の黒いバーが互いに平行に設けられているバーコード21について説明する。図4Bに示すように、エッジ検出手段74は、バーコード21を縦方向に走査する第1の走査線(以下、走査線73aという)で走査してバーのエッジを検出する(図4Bではエッジ検出部分を白丸で示す)。更に、エッジ検出手段74は、図4Cに示すように、バーコード21を横方向に走査する第2の走査線(以下、走査線73bという)で走査してバーのエッジを検出する(図4Cではエッジ検出部分を黒丸で示す)。
 図5A,図5B,図5Cは、文字22のエッジ検出例を示す説明図である。図5Aに示すように、図22で示したケース20の文字22の一部であって、「A」の文字22について説明する。図5Bに示すように、エッジ検出手段74は、文字22を走査線73aで走査して文字22のエッジを検出する(図5Bではエッジ検出部分を白丸で示す)。更に、エッジ検出手段74は、図5Cに示すように、文字22を走査線73bで走査して文字22のエッジを検出する(図5Cではエッジ検出部分を黒丸で示す)。
 エッジ検出手段74にはエッジ集計手段75が接続される。エッジ集計手段75は、エッジ検出手段74で検出したバーコード21や文字22のエッジをブロック分割手段72で分割したブロック31毎に集計してエッジ集計情報D4を生成する。そして、エッジ集計手段75は、生成したエッジ集計情報D4をブロック群生成手段76に出力する。
 図6は、エッジ集計情報D4の構成例を示す説明図である。図6に示すように、例えば、エッジ集計手段75は、ブロック分割手段72で画像データD1を16×10個に分割したブロック31毎にエッジ検出手段74で検出したエッジを集計する。エッジ集計手段75は、集計したエッジの数をエッジ集計数30としてブロック31毎に格納してエッジ集計情報D4を生成し、該生成したエッジ集計情報D4をブロック群生成手段76に出力する。エッジ集計手段75は、図4Cに示したバーコード21の場合、白丸22個と黒丸110個と合計した132個をエッジ集計数30とする。また、エッジ集計手段75は、図5Cに示した文字22の場合、白丸10個と黒丸12個とを合計した22個をエッジ集計数30とする。
 エッジ集計手段75にはブロック群生成手段76が接続される。ブロック群生成手段76は、エッジ集計手段から出力されたエッジ集計情報D4を受信し、該受信したエッジ集計情報D4に含まれるバーコード21及び文字22のエッジ集計数30が所定の数以上であるか否かをブロック31毎に判断する。ブロック群生成手段76は、エッジ集計数30が所定の数以上である場合には、当該ブロック31に隣接するブロックをグループ化してブロック群を生成し、エッジ集計数30が所定の数より小さい場合には、ブロック群を生成しない。そして、ブロック群生成手段76は、エッジ集計数30が所定の数以上であるか否かの判断を全てのブロック31に対して行った後、分割した画像のどこにブロック群が存在するかという情報であるブロック群情報D5をコード位置算出手段77に出力する。
 このブロック群情報D5により、後述するコード位置算出手段77は、全てのブロックに対してコード位置算出処理を行う必要がなく、ブロック群に対してのみコード位置算出処理を行えば良いので、コード位置算出処理の開始から終了までの全体の時間が短縮できる。因みに、エッジ集計数30を判断する所定の数は、予めコードスキャナ1の製造時にROM9に記憶されるものである。
 図7は、ブロック群情報D5の構成例を示す説明図である。図7に示すように、ブロック群生成手段76は、エッジ集計数30が所定の数(例えば、本例では所定の数を10とした)以上である場合には、当該ブロック31に隣接するブロック31をグループ化してブロック群32a,32b,32c,32d,32eを生成し(図7では斜線で示す)、エッジ集計数30が所定の数より小さい場合には、ブロック群を生成しない。
 図7では、例えば、ブロック群32aではブロック31が8個あり、ブロック群32bではブロック31が2個あり、ブロック群32cではブロック31が10個あり、ブロック群32dではブロック31が25個あり、ブロック群32eではブロック31が5個ある。
 ブロック分割手段72及びブロック群生成手段76にはコード位置算出手段77が接続される。コード位置算出手段77は、ブロック分割手段72によって出力された分割画像データD3と、ブロック群生成手段76によって出力されたブロック群情報D5とを受信する。コード位置算出手段77は、ブロック群情報D5(ブロック群32a,32b,32c,32d,32e)に対応する分割画像データD3(バーコード21及び文字22)に対してコード位置算出処理を行って、バーコード21の位置を算出して、バーコード21の位置を示す情報であるコード位置情報D6を生成する。そして、コード位置算出手段77は、生成したコード位置情報D6を制御手段71に出力する。
 制御手段71は、コード位置算出手段77によって出力されたコード位置情報D6を受信し、該受信したコード位置情報D6に基づいてバーコード21の位置を認識することができる。
 [コード位置算出手段77のコード位置算出処理例] 
 次に、コード位置算出手段77のコード位置算出処理例について説明する。図8A,図8Bは、画像44aの直線形状の判断例を示す説明図である。コード位置算出手段77は、分割画像データD3及びブロック群情報D5を受信し、受信したブロック群情報D5に基づいて、例えばブロック群32cの位置に対応した分割画像データD3のブロック31に対してコード位置算出処理を行うことを前提とする。
 図8Aに示すように、コード位置算出手段77は、分割画像データD3のブロック31の所定の部分にある画像44aに対して基準線40を引く(破線で示す)。基準線40と画像44aとの交点をエッジ40a,40bとする。
 コード位置算出手段77は、エッジ40aから画像44aに沿う上方向に第1のミニバー(以下、ミニバー41aという)を引き、エッジ40aから画像44aに沿う下方向に第2のミニバー(以下、ミニバー41bという)を引く。また、コード位置算出手段77は、エッジ40bから画像44aに沿う上方向に第3のミニバー(以下、ミニバー41cという)を引き、エッジ40bから画像44aに沿う下方向に第4のミニバー(以下、ミニバー41dという)を引く。そして、コード位置算出手段77は、ミニバー41a,41bとミニバー41c,41dとの間に中心線43を引く(一点鎖線で示す)。
 図8Bに示すように、コード位置算出手段77は、エッジ40bから画像44aの周囲に沿って輪郭線41eを引く。なお、エッジ40aから画像44aの周囲に沿って輪郭線41eを引いても構わない。コード位置算出手段77は、中心線43と輪郭線41eとから、画像44aが直線形状であることを認識する。つまり、画像44aは、バーコード21である可能性が高くなり、ブロック群32cにバーコード21が存在する可能性が高くなる。
 図9A,図9Bは、画像44bの直線形状の判断例を示す説明図である。コード位置算出手段77は、分割画像データD3及びブロック群情報D5を受信し、受信したブロック群情報D5に基づいて、例えばブロック群32aの位置に対応した分割画像データD3のブロック31に対してコード位置算出処理を行うことを前提とする。
 図9Aに示すように、コード位置算出手段77は、分割画像データD3のブロック31の所定の部分にある画像44bに対して基準線40を引く(破線で示す)。
 コード位置算出手段77は、エッジ40aから画像44bに沿う上方向にミニバー41aを引き、エッジ40aから画像44bに沿う下方向にミニバー41bを引く。また、コード位置算出手段77は、エッジ40bから画像44bに沿う上方向にミニバー41cを引き、エッジ40bから画像44bに沿う下方向にミニバー41dを引く。そして、コード位置算出手段77は、ミニバー41a,41bとミニバー41c,41dとの間に中心線43を引く(一点鎖線で示す)。
 図9Bに示すように、コード位置算出手段77は、エッジ40bから画像44bの周囲に沿って輪郭線41fを引く。コード位置算出手段77は、輪郭線41fを引く際に、中心線43から遠ざかる方向に当該輪郭線41fを引くことがあるので、画像44aが直線形状ではないことを認識する。つまり、画像44bは、バーコード21ではなく文字22の可能性が高くなり、ブロック群32aにバーコード21が存在する可能性が低くなる。
 コード位置算出手段77は、上述のような処理をブロック群32a,32b,32c,32d,32eのブロック31全てに対して行い、ブロック群32a,32b,32c,32d,32eに直線形状の画像44aがあるか否かを判断して、直線形状の画像44aが存在するブロック群32a,32b,32c,32d,32eを選択する。
 コード位置算出手段77は、選択したブロック群32a,32b,32c,32d,32eの基準線40とミニバー41a,41b,41c,41dとのなす角度をそれぞれ算出する。そして、コード位置算出手段77は、算出した角度に関する度数分布を生成する。
 図10は、横軸を基準線40とミニバー41a~41dとのなす角度(以下、単にミニバー角度という)とし、縦軸をミニバー41a,41b,41c,41dの数としたときの度数分布例を示す説明図である。図10に示すように、ミニバー角度95度付近にミニバーの数が約40個の頂点を有する分布50があり、ミニバー角度40度付近にミニバーの数が約5個の頂点を有する分布51がある。バーコード21の複数のバーは互いに平行であるので、ミニバーの角度は全て略同じになる。つまり、コード位置算出手段77は、分布50に対応する画像の位置にバーコード21が存在すると認識する。
 図11は、バーコード21の位置の算出例を示す説明図である。図11に示すように、コード位置算出手段77は、図8Aで求めた画像44aの中心線43から中心線43の平均値を算出して、バーコード21の中心位置60の座標を求める。そして、コード位置算出手段77は、中心位置60と中心線43とからバーコード21の四隅61の座標を算出する。コード位置算出手段77は、算出したバーコード21の中心位置60及び四隅61の座標が含まれるコード位置情報D6を生成し、該生成したコード位置情報D6を制御手段71に出力する。これにより、コードスキャナ1は、バーコード21の位置を認識できるようになる。
 なお、コード位置算出手段77が水平な基準線40を引く説明をしたが、水平な基準線40の代わりに垂直な基準線を引いても構わない。水平基準線又は垂直基準線のどちらを引くかの判断は、エッジ集計情報D4に含まれるエッジ数が水平方向又は垂直方向のどちらが多いかによってコード位置算出手段77が行う。例えば、コード位置算出手段77は、エッジ集計情報D4に含まれるエッジ数が水平方向に多いと判断した場合には水平基準線を引き、エッジ集計情報D4に含まれるエッジ数がエッジの数が垂直方向に多い場合には垂直基準線を引く。これにより、取り込んだ画像がバーコード21か文字22かを確実に判断できる。
 また、コード位置算出手段77が基準線40の代わりにエッジ検出手段74が走査する走査線73a,73bを用いても構わない。
 [ASIC7の動作例] 
 次に、ASIC7の動作例について説明する。図12は、ASIC7の動作例を示すフローチャートである。ASIC7が、ROM9からコードスキャナ1の起動プログラムを読み出して、RAM8に展開して、コードスキャナ1が起動していることを前提とする。
 図12に示すように、ステップST1では、ASIC7は、光学ヘッド部2を制御してバーコード21及び文字22が含まれる画像を光学ヘッド部2に撮像させて、該撮像させた画像を画像データD1として当該ASIC7に出力させる。
 ステップST2に移行して、ASIC7が有するブロック分割手段72がASIC7に出力された画像データD1をブロック毎に分割して、分割画像データD3を生成する(図3参照)。
 ステップST3に移行して、ASIC7が有するエッジ検出手段74が、ブロック分割手段72でブロック毎に分割された分割画像データD3に含まれるバーコード21及び文字22のエッジを検出する(図4A,図4B,図4C及び図5A,図5B,図5C参照)。
 ステップST4に移行して、ASIC7が有するエッジ集計手段75が、エッジ検出手段74で検出したバーコード21及び文字22のエッジをブロック毎に集計して、エッジ集計情報D4を生成する(図6参照)。
 ステップST5に移行して、ASIC7が有するブロック群生成手段76が、エッジ集計手段75によって出力されたエッジ集計情報D4に格納されるエッジ集計数30が所定の数以上であるか否かを判断する。エッジ集計数30が所定の数以上である場合には、ステップST6に移行する。エッジ集計数30が所定の数より小さい場合には、ブロック群生成手段76は、ブロック群を生成しないで、そのブロックに対してはコード位置算出処理を終了する。
 ステップST6では、ブロック群生成手段76は、ブロック31に隣接するブロックをグループ化してブロック群32a,32b,32c,32d,32eを生成してブロック群情報D5を生成する。そして、ブロック群生成手段76は、生成したブロック群情報D5をコード位置算出手段77に出力する。
 ステップST7に移行して、ASIC7が有するコード位置算出手段77が、ブロック分割手段72で生成された分割画像データD3と、ブロック群生成手段76で生成されたブロック群情報D5とに基づいてバーコード21及び文字22に対してコード位置算出処理(後述の図13で示すステップST11~ステップST18)を行って、バーコード21の位置を算出する。
 [コード位置算出手段77の動作例] 
 次に、コード位置算出手段77の動作例について説明する。図13は、コード位置算出手段77の動作例を示すフローチャートである。コード位置算出手段77は、ブロック群生成手段76で生成されたブロック群情報D5からランダムのブロック群を選択して、該選択したブロック群に対応した分割画像データD3のブロック31に対してコード位置算出処理を行うことを前提とする。
 図13に示すように、ステップST11では、コード位置算出手段77は、画像44a,44bに基準線40を引く(図8A及び図9A参照)。
 ステップST12に移行して、コード位置算出手段77は、基準線40と画像44a,44bとの交点から画像44a,44bの上下方向に沿ってミニバー41a,41b,41c,41dを引く(図8A及び図9A参照)。
 ステップST13に移行して、コード位置算出手段77は、ミニバー41a,41bとミニバー41c,41dとの間に中心線43を引く(図8A及び図9A参照)。
 ステップST14に移行して、コード位置算出手段77は、エッジ40bから画像44a,44bの周囲に沿って輪郭線41e,41fを引く(図8B及び図9B参照)。
 ステップST15に移行して、コード位置算出手段77は、中心線43と輪郭線41e,41fとから、画像44a,44bが直線形状であるか否かを判断する。画像44a,44bが直線形状である場合には、ステップST16に移行し、画像44a,44bが直線形状でない場合には、動作を終了して他のブロック群に対してコード位置算出処理を行う。例えば、コード位置算出手段77は、画像44aの場合には直線形状を有するのでステップST16に移行し、画像44bの場合には直線形状を有しないので動作を終了する。
 ステップST16では、コード位置算出手段77は、直線形状を有すると判断した画像44aに引いた基準線40とミニバー41a,41b,41c,41dとのなす角度(ミニバー角度)を算出する。コード位置算出手段77は、選択したブロック群に存在する全ての画像に対してミニバー角度を算出する。そして、コード位置算出手段77は、算出したミニバー角度に関する度数分布を生成する(図10参照)。
 ステップST17に移行して、コード位置算出手段77は、生成した度数分布に対応する位置にあるブロック31のバーコード21の中心位置を算出する。例えば、図10で説明したように、コード位置算出手段77は、ブロック群の中から95度付近ミニバー角度を有する画像がバーコード21であると認識していて、図8Aで説明したように、複数のバーの中心線43がそれぞれ求められているので、中心線43の平均値からバーコード21の中心位置60の座標を算出することができる(図11参照)。
 ステップST18に移行して、コード位置算出手段77は、算出したバーコード21の中心位置60と中心線43とからバーコード21の四隅61の座標を算出する。そして、コード位置算出手段77は、算出したバーコード21の中心位置60及び四隅61の座標が含まれるコード位置情報D6を生成し、該生成したコード位置情報D6を制御手段71に出力する。これにより、コードスキャナ1は、バーコード21の位置を認識できるようになる。
 このように、本実施の形態に係るコードスキャナ1によれば、光学ヘッド部2が複数のバーを有するバーコード21と文字22とを含む画像を取り込む。画像検出手段73が光学ヘッド部2で取り込まれた画像を走査線73a,73bで走査してバーコード21が有するバー及び文字22を検出する。これを前提にして、コード位置算出手段77は、画像検出手段73で検出されたバー及び文字22と走査線73a,73bとのなす角度に関する度数分布を生成する。複数のバーは互いに平行であるので、バーと走査線73a,73bとのなす角度は全て同じになる。コード位置算出手段77は、生成した度数分布に基づいてバーコード21の位置を算出する。これにより、バーコード21の位置を認識できるようになる。
 この結果、バーコード21が図22のように小さくてもすばやく認識でき、複雑な情報処理を必要とせず、従来の装置に比べて部品点数を少なくすることで小型化できると共に、製造コストを低減できるコードスキャナ1を提供できる。
 <第2の実施の形態> 
 本実施の形態では、バーコード21がブロック群32a,32b,32c,32d,32eにあるか否かを点数付けして判定するコード判定手段78Aを備えたASIC7Aについて説明する。前述の実施の形態と同じ名称及び符号のものは同じ機能を有するので、その説明を省略する。
 [ASIC7Aの構成例] 
 図14は、第2の実施の形態に係るASIC7Aの構成例を示すブロック図である。図14に示すように、ASIC7Aは、制御手段71、ブロック分割手段72、画像検出手段73、ブロック群生成手段76、コード位置算出手段77及びコード判定手段78Aを有する。画像検出手段73は、エッジ検出手段74及びエッジ集計手段75を有する。
 コード判定手段78Aにはブロック群生成手段76が接続される。コード判定手段78Aは、ブロック群生成手段76から出力されたブロック群情報D5を受信する。そして、コード判定手段78Aは、受信したブロック群情報D5に含まれるブロック群32a,32b,32c,32d,32eを点数付けして、ブロック群32a,32b,32c,32d,32eにバーコード21があるか否かを判定する。その点数付け例を図15乃至図19で説明する。
 図15は、ブロック群の点数付け例(その1)を示す説明図である。図15に示すように、コード判定手段78Aは、エッジ検出手段74の縦方向の走査線73aで検出したエッジの集計数と、エッジ検出手段74の横方向の走査線73bで検出されたエッジの集計数との差(以下、単にエッジ集計数の差という)を算出し、該算出したエッジ集計数に基づいて、ブロック群32a,32b,32c,32d,32eにバーコード21があるか否かを判定する。因みに縦方向及び横方向のエッジの集計数は、エッジ集計手段75がRAM8にそれぞれ記憶している。
 図15では、例えば、エッジ集計数の差が5以下では点数が1点となる。エッジ集計数の差が6~10では点数が3点となる。エッジ集計数の差が11~15では点数が6点となる。エッジ集計数の差が16~20では点数が8点となる。そして、エッジ集計数の差が21以上では点数が10点となる。この点数付けの根拠は、バーコードは、図4Cで示したように、エッジ集計数の差が大きく(図4Cでは、エッジ集計数の差が88となる)、文字は、図5Cで示したように、エッジ集計数の差が小さい(図5Cでは、エッジ集計数の差が2となる)ことに起因する。
 図7で示したブロック群32a,32b,32c,32d,32eに対してエッジ集計数の差で点数付けすると、例えば、ブロック群32aのエッジ集計数の差は3となり1点と点数付けられ、ブロック群32bのエッジ集計数の差は7となり3点と点数付けられ、ブロック群32cのエッジ集計数の差は50となり10点と点数付けられ、ブロック群32dのエッジ集計数の差は14となり6点と点数付けられ、ブロック群32eのエッジ集計数の差は8となり3点と点数付けられる。
 図16は、ブロック群の点数付け例(その2)を示す説明図である。図16に示すように、コード判定手段78Aは、ブロック群生成手段76が生成したブロック群32a,32b,32c,32d,32eの分散度に基づいて、ブロック群32a,32b,32c,32d,32eにバーコード21があるか否かを判定する。分散度とは、ブロック群が有するブロックがブロック群内でどれだけ分散しているかを示す度合いであり、分散が多いと分散度が高くなり、分散が小さいと分散度が低くなる。
 図16では、例えば、分散度が4では点数が1点となる。分散度が3では点数が3点となる。分散度が2では点数が6点となる。分散度が1では点数が8点となる。そして、分散度が0(つまり、分散していない)では点数が10点となる。この点数付けの根拠は、バーコードは、図22で示したように、ひとかたまりになっていて分散がほとんどなく、文字は、図22で示したように、分散していることに起因する。
 図7で示したブロック群32a,32b,32c,32d,32eに対して分散度で点数付けすると、例えば、ブロック群32aの分散度は0となり10点と点数付けられ、ブロック群32bの分散度は1となり8点と点数付けられ、ブロック群32cの分散度は0となり10点と点数付けられ、ブロック群32dの分散度は4となり1点と点数付けられ、ブロック群32eの分散度は1となり8点と点数付けられる。
 図17は、ブロック群の点数付け例(その3)を示す説明図である。図17に示すように、コード判定手段78Aは、ブロック群生成手段76が生成したブロック群32a,32b,32c,32d,32eの凹凸度に基づいて、ブロック群32a,32b,32c,32d,32eにバーコード21があるか否かを判定する。凹凸度とは、ブロック群がどれだけ凹凸しているかを示す度合いであり、凹凸が多いと凹凸度が高くなり、凹凸が小さいと凹凸度が低くなる。
 図17では、例えば、凹凸度が4では点数が1点となる。凹凸度が3では点数が2点となる。凹凸度が2では点数が3点となる。凹凸度が1では点数が4点となる。そして、凹凸度が0(つまり、凹凸がない)では点数が5点となる。凹凸度に関する点数が、エッジ集計数の差及び分散度に関する点数よりも小さいのは、エッジ集計数の差及び分散度の方がブロック判定では重要であるからである。
 図7で示したブロック群32a,32b,32c,32d,32eに対して凹凸度で点数付けすると、例えば、ブロック群32aの凹凸度は0となり5点と点数付けられ、ブロック群32bの凹凸度は0となり5点と点数付けられ、ブロック群32cの凹凸度は0となり5点と点数付けられ、ブロック群32dの凹凸度は4となり1点と点数付けられ、ブロック群32eの凹凸度は0となり5点と点数付けられる。
 図18は、ブロック群の点数付け例(その4)を示す説明図である。図18に示すように、コード判定手段78Aは、光学ヘッド部2によって取り込まれた画像の中央部分と、ブロック群生成手段76が生成したブロック群32a,32b,32c,32d,32eとの距離に基づいて、ブロック群32a,32b,32c,32d,32eにバーコード21があるか否かを判定する。
 図18では、例えば、中央からの距離が31(単位は任意)以上では点数が1点となる。中央からの距離が21~30では点数が3点となる。中央からの距離が11~20では点数が6点となる。中央からの距離が1~10では点数が8点となる。そして、中央からの距離が0では点数が10点となる。
 図7で示したブロック群32a,32b,32c,32d,32eに対して中央からの距離で点数付けすると、例えば、ブロック群32aの中央からの距離は17となり6点と点数付けられ、ブロック群32bの中央からの距離は28となり3点と点数付けられ、ブロック群32cの中央からの距離は18となり6点と点数付けられ、ブロック群32dの中央からの距離となり6点と点数付けられ、ブロック群32eの中央からの距離は40となり1点と点数付けられる。
 図19は、ブロック群の点数付け例(その5)を示す説明図である。図19に示すように、コード判定手段78Aは、ブロック群生成手段76が生成したブロック群32a,32b,32c,32d,32eの面積(ブロック数)に基づいて、ブロック群32a,32b,32c,32d,32eにバーコード21があるか否かを判定する。
 図19では、例えば、ブロック数が1~5では点数が1点となる。ブロック数が6~10では点数が2点となる。そして、ブロック数が11以上では点数が3点となる。
 図7で示したブロック群32a,32b,32c,32d,32eに対してブロック数で点数付けすると、例えば、ブロック群32aのブロック数は8となり2点と点数付けられ、ブロック群32bのブロック数は2となり1点と点数付けられ、ブロック群32cのブロック数は10となり2点と点数付けられ、ブロック群32dのブロック数は25となり3点と点数付けられ、ブロック群32eのブロック数は5となり1点と点数付けられる。
 上述の図15乃至図19で示した点数例でブロック群32a,32b,32c,32d,32eを点数付けすると、ブロック群32aは合計で24点となり、ブロック群32bは合計で20点となり、ブロック群32cは合計で33点となり、ブロック群32dは合計で17点となり、ブロック群32eは合計で18点となる。つまり、ブロック群32cの点数が一番高いので、コード判定手段78Aは、ブロック群32cにバーコード21があると判定し、ブロック群情報D5と共にブロック群32cにバーコード21があることを示すブロック群判定情報D7をコード位置算出手段77に出力する。
 コード位置算出手段77は、コード判定手段78Aによって出力されたブロック群情報D5及びブロック群判定情報D7を受信してコード位置算出処理を行う。コード位置算出手段77は、ブロック群判定情報D7よりブロック群32cにバーコード21があること認識するので、ブロック群情報D5の中からブロック群32cを最初に選択してコード位置算出処理を行う。
 これにより、第1の実施の形態ではコード位置算出手段77がブロック群32a,32b,32c,32d,32eの中からランダムに選んでいたが、ASIC7Aは、バーコード21が存在するブロック群32cを選ぶので、コード位置算出処理の処理時間を短縮することができる。
 [ASIC7Aの動作例] 
 次に、ASIC7Aの動作例について説明する。図20は、ASIC7Aの動作例を示すフローチャートである。図20に示すように、ステップST21からステップST26は、前述の図12に示したステップST1からステップ6と同じであるので、その説明を省略する。
 ステップST27では、コード判定手段78Aが、ブロック群生成手段76で生成されたブロック群情報D5に基づいてバーコード21がブロック群32a,32b,32c,32d,32eにあるか否かを点数付けして判定する。そして、コード判定手段78Aは、ブロック群32a,32b,32c,32d,32eのいずれかにバーコード21があることを示すブロック群判定情報D7を生成する。
 ステップST28では、コード位置算出手段77が、ブロック分割手段72で生成された分割画像データD3と、ブロック群生成手段76で生成されたブロック群情報D5と、コード判定手段78Aによって生成されたブロック群判定情報D7と基づいてバーコード21に対してコード位置算出処理(前述の図13で示すステップST11~ステップST18)を行って、バーコード21の位置を算出する。
 [コード判定手段78Aの動作例] 
 次に、コード判定手段78Aの動作例について説明する。図21は、コード判定手段78Aの動作例を示すフローチャートである。図21に示すように、ステップST31では、コード判定手段78Aは、ブロック群32a,32b,32c,32d,32eに対してエッジ集計数の差で点数付けする。ステップST32に移行して、コード判定手段78Aは、ブロック群32a,32b,32c,32d,32eに対してブロックの分散度で点数付けする。ステップST33に移行して、コード判定手段78Aは、ブロック群32a,32b,32c,32d,32eに対してブロックの凹凸度で点数付けする。
 ステップST34に移行して、コード判定手段78Aは、ブロック群32a,32b,32c,32d,32eが画像の中央からのどれくらい離れているかで点数付けする。ステップST35に移行して、コード判定手段78Aは、ブロック群32a,32b,32c,32d,32eに対してブロックのブロック数で点数付けする。
 ステップST36に移行して、コード判定手段78Aは、ステップST31からステップST35で点数付けしたブロック群32a,32b,32c,32d,32eの中から一番点数の高いものを選択する。そして、コード判定手段78Aは、選択したブロック群にバーコードがあることを示すブロック群判定情報D7を生成し、該生成したブロック群判定情報D7をコード位置算出手段77に出力する。
 このように、本実施の形態に係るASIC7Aは、バーコード21がブロック群32a,32b,32c,32d,32eにあるか否かを点数付けして判定するコード判定手段78Aを備えるので、コード位置算出手段77が、バーコード21が存在するブロック群を認識した状態でコード位置算出処理することができる。この結果、バーコード21の位置を算出する時間を短縮できる。
 なお、本実施の形態で説明した点数付けは一例であり、ステップST31からステップST35までの点数付けを行う順番は適宜変更可能であり、ステップST31からステップST35までの全ての点数付けを行わずにブロック群判定情報D7を生成しても良い。
1・・・コードスキャナ、2・・・光学ヘッド部、6・・・コードスキャナ制御部、7・・・ASIC、20・・・ケース、21・・・バーコード、22・・・文字、71・・・制御手段、72・・・ブロック分割手段、73・・・画像検出手段、74・・・エッジ検出手段、75・・・エッジ集計手段、76・・・ブロック群生成手段、77・・・コード位置算出手段、78A・・・コード判定手段

Claims (10)

  1.  複数のバーを有するコード記号と文字とを含む画像を取り込む画像取込手段と、
     前記画像取込手段で取り込まれた前記画像を走査線で走査して前記バー及び前記文字を検出する画像検出手段と、
     前記画像検出手段で検出された前記バー及び前記文字と前記走査線とのなす角度に関する度数分布を生成し、該生成した度数分布に基づいて前記コード記号の位置を算出するコード位置算出手段とを備えることを特徴とする光学的情報読取装置。
  2.  前記画像検出手段にはブロック分割手段及びブロック群生成手段が接続され、
     前記バーの外周部及び前記文字の外周部をエッジとしたとき、
     前記ブロック分割手段は、
     前記画像取込手段で取り込まれた前記画像をブロック毎に分割し、
     前記画像検出手段は、
     前記ブロック分割手段でブロック毎に分割された前記画像に対して、縦方向に走査する第1の走査線と、横方向に走査する第2の走査線とで前記エッジを検出し、該検出したエッジの数をブロック毎に集計し、
     前記ブロック群生成手段は、
     前記画像検出手段でブロック毎に集計されたエッジの数が所定の数以上であるか否かを判断し、前記エッジの数が所定の数以上である場合には、当該ブロックに隣接するブロックをグループ化してブロック群を生成し、前記エッジの数が所定の数より小さい場合には、当該ブロックを破棄することを特徴とする請求項1に記載の光学的情報読取装置。
  3.  前記コード位置算出手段は、
     前記第1の走査線又は前記第2の走査線と前記エッジとの交点から前記エッジに沿った線である第1のミニバーを複数生成し、
     生成した複数の前記第1のミニバーの間に前記画像の中心線を生成し、該生成した中心線に基づいて前記画像の輪郭に沿った線である第2のミニバーを生成し、
     生成した前記前記第2のミニバーに基づいて前記画像が直線形状か否かを判断することを特徴とする請求項1又は2に記載の光学的情報読取装置。
  4.  前記コード位置算出手段は、
     前記第1のミニバーと前記第1の走査線又は第2の走査線とのなす角度から、前記バー検出手段によって検出された前記バーと前記走査線とのなす角度を求めることを特徴とする請求項3に記載の光学的情報読取装置。
  5.  前記ブロック群生成手段にはコード判定手段が接続され、
     前記コード判定手段は、
     前記第1の走査線で検出されたエッジの数と前記第2の走査線で検出されたエッジの数との差を算出し、該算出した差に基づいて、前記ブロック群に前記コード記号があるか否かを判定することを特徴とする請求項1乃至4のいずれかに記載の光学的情報読取装置。
  6.  前記ブロック群生成手段にはコード判定手段が接続され、
     前記コード判定手段は、
     前記ブロック群生成手段が生成した前記ブロック群の分散度に基づいて、前記ブロック群に前記コード記号があるか否かを判定することを特徴とする請求項1乃至5のいずれかに記載の光学的情報読取装置。
  7.  前記コード判定手段は、
     前記ブロック群生成手段が生成した前記ブロック群の凹凸度に基づいて、前記ブロック群に前記コード記号があるか否かを判定することを特徴とする請求項1乃至6のいずれかに記載の光学的情報読取装置。
  8.  前記コード判定手段は、
     前記画像取込手段によって取り込まれた画像の中央部分と、前記ブロック群生成手段が生成した前記ブロック群との距離に基づいて、前記ブロック群に前記コード記号があるか否かを判定することを特徴とする請求項1乃至7のいずれかに記載の光学的情報読取装置。
  9.  前記コード判定手段は、
     前記ブロック群生成手段が生成した前記ブロック群の面積に基づいて、前記ブロック群に前記コード記号があるか否かを判定することを特徴とする請求項1乃至8のいずれかに記載の光学的情報読取装置。
  10.  複数のバーを有するコード記号と文字とを含む画像を取り込み、
     取り込んだ前記画像を走査線で走査して、前記バー及び前記文字を検出し、
     検出した前記バー及び前記文字と前記走査線とのなす角度に関する度数分布を生成し、該生成した度数分布に基づいて前記コード記号の位置を算出することを特徴とする光学的情報読取方法。
PCT/JP2010/071361 2009-11-30 2010-11-30 光学的情報読取装置及び光学的情報読取方法 WO2011065565A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-272354 2009-11-30
JP2009272354 2009-11-30

Publications (1)

Publication Number Publication Date
WO2011065565A1 true WO2011065565A1 (ja) 2011-06-03

Family

ID=44066669

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/071361 WO2011065565A1 (ja) 2009-11-30 2010-11-30 光学的情報読取装置及び光学的情報読取方法

Country Status (1)

Country Link
WO (1) WO2011065565A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335163A (zh) * 2015-11-30 2016-02-17 上海斐讯数据通信技术有限公司 软件代码解读方法与系统
CN106778428A (zh) * 2017-01-20 2017-05-31 深圳市木村机电有限公司 手持式扫码系统
CN106778442A (zh) * 2017-01-20 2017-05-31 深圳市木村机电有限公司 手持式扫码器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337941A (ja) * 2002-05-20 2003-11-28 Matsushita Electric Ind Co Ltd 画像認識装置と画像認識方法とプログラム
JP2005173646A (ja) * 2003-12-05 2005-06-30 Fujitsu Ltd コード種類判別方法、およびコード境界検出方法
JP2005266907A (ja) * 2004-03-16 2005-09-29 Toshiba Social Automation Systems Co Ltd バーコード検出切り出し方法及びその装置、並びにプログラムを格納したコンピュータ読み取り可能な記録媒体
JP2006031167A (ja) * 2004-07-13 2006-02-02 Glory Ltd バーコード認識装置、バーコード認識方法およびバーコード認識プログラム。

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337941A (ja) * 2002-05-20 2003-11-28 Matsushita Electric Ind Co Ltd 画像認識装置と画像認識方法とプログラム
JP2005173646A (ja) * 2003-12-05 2005-06-30 Fujitsu Ltd コード種類判別方法、およびコード境界検出方法
JP2005266907A (ja) * 2004-03-16 2005-09-29 Toshiba Social Automation Systems Co Ltd バーコード検出切り出し方法及びその装置、並びにプログラムを格納したコンピュータ読み取り可能な記録媒体
JP2006031167A (ja) * 2004-07-13 2006-02-02 Glory Ltd バーコード認識装置、バーコード認識方法およびバーコード認識プログラム。

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335163A (zh) * 2015-11-30 2016-02-17 上海斐讯数据通信技术有限公司 软件代码解读方法与系统
CN106778428A (zh) * 2017-01-20 2017-05-31 深圳市木村机电有限公司 手持式扫码系统
CN106778442A (zh) * 2017-01-20 2017-05-31 深圳市木村机电有限公司 手持式扫码器

Similar Documents

Publication Publication Date Title
US11281876B2 (en) Retail store with sensor-fusion enhancements
JP5042344B2 (ja) マトリックス型二次元コード識別システム及びその識別方法
US8479997B2 (en) Optical scanner with customer interface
US8118227B2 (en) Multiple camera imaging-based bar code reader with optimized imaging field
CA2888153C (en) Methods and arrangements for identifying objects
US20130048722A1 (en) Methods and arrangements for sensing identification information from objects
US20140052555A1 (en) Methods and arrangements for identifying objects
US10540532B2 (en) System and method for detecting optical codes with damaged or incomplete finder patterns
EP2507741B1 (en) Imaging-based scanner including border searching for image acquisition
US8613393B2 (en) Optical scanner with customer interface
US9959442B2 (en) Extended depth of field in imaging machine-readable symbol reader using image side telecentric lens
JP5140820B2 (ja) シンボル情報読取装置及びシンボル情報読取方法
AU2013299999B2 (en) Image capture based on scanning resolution setting in imaging reader
WO2011065565A1 (ja) 光学的情報読取装置及び光学的情報読取方法
US10733489B2 (en) Optically readable tags and methods and systems for decoding an optically readable tag
EP3356992B1 (en) Data collection system and method that detect electronic device displays via fresnel patterns
US8479995B2 (en) Hybrid optical code scanner and system
US9704007B2 (en) Illumination with wedge-shaped optical element
JP5792409B1 (ja) 光学的読取装置および光学的読取プログラム
US20140144987A1 (en) Bi-optical barcode scanning workstation with stitched sapphire windows
US20240296299A1 (en) Barcode image recognition method and device using the same
US20080023549A1 (en) Axicon-based imaging lens assembly in imaging reader
TWI854622B (zh) 條碼圖像識別方法及其裝置
TW202437209A (zh) 條碼圖像識別方法及其裝置
TW567446B (en) Screen image reading system of PDA/mobile phone

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10833409

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10833409

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP