WO2014006726A1 - オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法 - Google Patents

オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法 Download PDF

Info

Publication number
WO2014006726A1
WO2014006726A1 PCT/JP2012/067225 JP2012067225W WO2014006726A1 WO 2014006726 A1 WO2014006726 A1 WO 2014006726A1 JP 2012067225 W JP2012067225 W JP 2012067225W WO 2014006726 A1 WO2014006726 A1 WO 2014006726A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
image
displacement
line segment
curve
Prior art date
Application number
PCT/JP2012/067225
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 株式会社 東芝
Priority to CN201280074313.0A priority Critical patent/CN104396225B/zh
Priority to PCT/JP2012/067225 priority patent/WO2014006726A1/ja
Priority to JP2012542257A priority patent/JP5586705B2/ja
Publication of WO2014006726A1 publication Critical patent/WO2014006726A1/ja
Priority to US14/589,320 priority patent/US9569810B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0028Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32149Methods relating to embedding, encoding, decoding, detection or retrieval operations
    • H04N1/32203Spatial or amplitude domain methods
    • H04N1/32229Spatial or amplitude domain methods with selective or adaptive application of the additional information, e.g. in selected regions of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0051Embedding of the watermark in the spatial domain

Definitions

  • Embodiments of the present invention relate to an apparatus and method for embedding data in an object, and an apparatus and method for extracting embedded data.
  • barcode printing technology a barcode is printed on a printing medium such as paper.
  • a printed bar code is read by an imaging device such as a scanner or a camera, and the read bar code is decoded.
  • These data embedding techniques include techniques for embedding data in an object such as an image or printed matter in the form of a two-dimensional barcode.
  • the data embedding technique also includes a digital watermark technique for embedding data in a form that is difficult to visually recognize in the object.
  • Many digital watermark techniques apply a method of superimposing a dot pattern on the object.
  • the data embedding technique includes a technique for encoding data with an array of graphic patterns composed of line segments with irregularities. This encoding technique applies a method of superimposing the graphic pattern array on the object.
  • Bar codes and 2D barcodes printed on print media are conspicuous. For this reason, a barcode or a two-dimensional barcode may impair the aesthetics of the printed material.
  • an electronic watermark embedded in an object may damage the aesthetics of the printed material for the following reason.
  • a dot pattern that is, a digital watermark
  • the problem to be solved by the present invention is to provide an apparatus and method for embedding data in an object, and an apparatus and method for extracting embedded data, which can realize data embedding that is excellent in confidentiality and does not impair aesthetics. It is in.
  • the data embedding device includes a data acquisition unit, an object generation unit, and an object output unit.
  • the data acquisition unit is configured to acquire first data composed of a first bit string to be embedded in a first object including a first line segment or a first curve.
  • the object generation unit deforms at least the first line segment or the first curve of the first object based on the first bit string, thereby obtaining the first line segment or the first line.
  • a second object including a deformation line segment or a deformation curve having a displacement corresponding to the first bit string with respect to the curve and having the first data embedded therein is generated.
  • the object output unit is configured to output the second object.
  • FIG. 1 is a block diagram showing a typical hardware configuration of the data embedding device according to the first embodiment.
  • FIG. 2 is a block diagram showing a typical functional configuration of the data embedding device.
  • FIG. 3 is a diagram illustrating an example of weight vector generation by the weight vector generation unit in the first embodiment.
  • FIG. 4 is a diagram illustrating an example of a plurality of encoding bases applied in the first embodiment.
  • FIG. 5 is a diagram illustrating an example of a displacement waveform calculated by the displacement calculation unit in the first embodiment.
  • FIG. 6 is a diagram for explaining typical graphic generation by the graphic generation unit in the first embodiment.
  • FIG. 7 is a diagram illustrating an example of a graphic generated by the graphic generation unit.
  • FIG. 1 is a block diagram showing a typical hardware configuration of the data embedding device according to the first embodiment.
  • FIG. 2 is a block diagram showing a typical functional configuration of the data embedding device.
  • FIG. 3 is a diagram illustrating an example of weight
  • FIG. 8 is a diagram showing an example of a form image including the graphic shown in FIG.
  • FIG. 9 is a block diagram showing a typical hardware configuration of the data extraction apparatus according to the first embodiment.
  • FIG. 10 is a block diagram showing a typical functional configuration of the data extraction apparatus.
  • FIG. 11 is a diagram illustrating an example of an image acquired by the image acquisition unit in the first embodiment.
  • FIG. 12 is a diagram illustrating an example of a straight line detected from the image by the fitting unit in the first embodiment.
  • FIG. 13 is a diagram for explaining typical line fitting from the straight line.
  • FIG. 14 is a diagram for explaining typical residual calculation by the residual calculation unit in the first embodiment.
  • FIG. 15 is a diagram illustrating a typical state of calculation of the inner product vector by the inner product vector calculation unit in the first embodiment.
  • FIG. 16 is a diagram illustrating an example of quantization of a transform vector by the data extraction unit in the first embodiment.
  • FIG. 17 is a diagram illustrating an example of a plurality of encoding bases applied in the second embodiment.
  • FIG. 18 is a diagram for explaining typical graphic generation by the graphic generation unit in the second embodiment.
  • FIG. 19 is a diagram illustrating an example of a graphic generated by the graphic generation unit in the second embodiment.
  • FIG. 20 is a diagram showing an example of a form image including the graphic shown in FIG.
  • FIG. 21 is a diagram illustrating an example of an image acquired by the image acquisition unit and four detection regions in the second embodiment.
  • FIG. 22 is a diagram illustrating an example of four straight lines detected by the fitting unit in the second embodiment.
  • FIG. 23 is a diagram for explaining typical residual calculation by the residual calculation unit in the second embodiment.
  • FIG. 24 is a diagram for explaining typical graphic generation by the graphic generation unit according to the third embodiment.
  • FIG. 25 is a diagram illustrating an example of a graphic generated by the graphic generation unit in the third embodiment.
  • FIG. 26 is a diagram showing an example of an image including the graphic shown in FIG.
  • FIG. 27 is a diagram illustrating an example in which an ellipse detected from an image in the third embodiment is applied to the image as a reference graphic.
  • FIG. 28 is a diagram for explaining typical residual calculation by the residual calculation unit in the third embodiment.
  • FIG. 29 is a diagram illustrating an example of a plurality of encoding bases applied in the fourth embodiment.
  • FIG. 30 is a block diagram illustrating a typical hardware configuration of the data embedding device according to the fifth embodiment.
  • FIG. 31 is a block diagram showing a typical functional configuration of the data embedding device.
  • FIG. 32 is a diagram illustrating an example of an original image acquired by the original image acquisition unit in the fifth embodiment.
  • FIG. 33 is a diagram showing an example of the range of the original image to be deformed by the image deformation unit in the fifth embodiment.
  • FIG. 34 is a diagram showing an example of a deformed image generated by deforming a part of the original image in the range shown in FIG.
  • FIG. 35 is a diagram illustrating an example of an image acquired by the image acquisition unit and a detection range on the image in the fifth embodiment.
  • FIG. 36 is a diagram illustrating an example of weight vector generation by the weight vector generation unit in the sixth embodiment.
  • FIG. 37 is a diagram illustrating an example of quantization of a transform vector by the data extraction unit in the sixth embodiment.
  • FIG. 1 is a block diagram showing a typical hardware configuration of the data embedding device 10 according to the first embodiment.
  • the data embedding device 10 is realized using a personal computer (PC) 11.
  • the PC 11 includes a CPU 12, a storage device 13, an input / output controller 14, and a system bus 15.
  • the CPU 12, the storage device 13 and the input / output controller 14 are interconnected by a system bus 15.
  • the CPU 12 inputs data De to be embedded in an object such as an image or printed material, and executes information processing for generating an object in which the input data De is embedded.
  • the storage device 13 includes a software area 13a and a work data area 13b.
  • the software area 13a is used to store data embedding software for the information processing.
  • the work data area 13b is used to store work data for the information processing.
  • the input / output controller 14 is connected to input / output devices such as a display 16, a keyboard 17, and a printer 18.
  • the input / output controller 14 inputs / outputs data between the display 16, the keyboard 17 and the printer 18.
  • FIG. 2 is a block diagram showing a functional configuration of the data embedding device 10. This functional configuration is realized by the CPU 12 of the PC 11 shown in FIG. 1 executing the data embedding software.
  • the data embedding device 10 includes a data acquisition unit 21, a weight vector generation unit 22, a displacement calculation unit 23, a graphic generation unit 24, and a graphic output unit 25.
  • the data acquisition unit 21, the weight vector generation unit 22, the displacement calculation unit 23, the graphic generation unit 24, and the graphic output unit 25 are configured by software modules. However, some or all of these software modules may be replaced with hardware modules.
  • the data acquisition unit 21 acquires the data De to be embedded via the input / output controller 14 shown in FIG.
  • Data De consists of a bit string.
  • the weight vector generation unit 22 generates a weight vector w based on the bit string of the data De.
  • the displacement calculating unit 23 weights a plurality of predetermined bases for encoding (hereinafter referred to as encoding bases) with the elements of the weight vector w, and includes a weighted sum of bases.
  • a waveform Wd is calculated.
  • the displacement waveform Wd refers to a waveform composed of a series of displacements, that is, a displacement waveform.
  • the graphic generation unit 24 deforms a predetermined reference graphic Gr in the work data area 13b of the storage device 13 based on the displacement waveform Wd. Accordingly, the graphic generation unit 24 generates a graphic Gd obtained by modifying the reference graphic Gr.
  • the graphic output unit 25 outputs the graphic Gd or an image including the graphic Gd.
  • the data acquisition unit 21 functions as a user interface for inputting data (first data) De to be embedded in an object (first object).
  • first object the object in which the data De is embedded is composed of a reference graphic Gr.
  • the reference graphic Gr includes a line segment.
  • the data displayed on the display 16 by the data acquisition unit 21 is edited using the keyboard 17 by a user operation.
  • the data acquisition unit 21 inputs (that is, acquires) the edited data as data De via the input / output controller 14.
  • the weight vector generation unit 22 generates a weight vector w corresponding to the bit string based on the bit string (first bit string) of the data De as follows. For each bit constituting the data De, the weight vector generation unit 22 generates, for example, a weight of -1 if the bit is 0, and a weight of +1 if the bit is 1. The weight vector generation unit 22 generates a weight vector w composed of this weight array. That is, the weight vector generation unit 22 converts the bit string of the data De into the weight vector w.
  • the length of the weight vector w is equal to the length of the bit string of the data De.
  • the length n, the bit sequence of the data De b 1,..., B n, a symbol representing the transpose of the matrix and vector T, the weight vector w (w 1,.. ., W n) and T write.
  • FIG. 3 shows an example of weight vector generation by the weight vector generation unit 22.
  • the bit string of the data De is “01001101”, and its length (that is, the number of bits of the data De) n is 8.
  • the displacement calculation unit 23 weights the plurality of encoding bases by the element w i of the weight vector w, and a displacement waveform Wd (more specifically, a vector representing the displacement waveform Wd) composed of the sum of the weighted bases. ) Is calculated.
  • the number of encoding bases is equal to the length of the weight vector (that is, the number of bits of data De) n.
  • the encoding base is expressed as a vector of length m. m is an integer greater than or equal to n.
  • the displacement waveform Wd is also expressed as a vector of length m.
  • n 8.
  • the horizontal axis of the drawing indicates the number of the element of the vector representing the encoding basis ⁇ i
  • the vertical axis indicates the value of the element.
  • the encoding bases ⁇ 1 and ⁇ 2 shown in FIG. 4 are a cosine function having a wave number of 16 and a sine function having a wave number of 16, respectively.
  • the encoding bases ⁇ 3 and ⁇ 4 shown in FIG. 4 are a cosine function having a wave number of 17 and a sine function having a wave number of 17, respectively.
  • the encoding bases ⁇ 7 and ⁇ 8 shown in FIG. 4 are a cosine function having a wave number of 19 and a sine function having a wave number of 19, respectively.
  • FIG. 5 shows an example of the displacement waveform Wd calculated by the displacement calculator 23.
  • any vector may be used as the encoding base as long as it is linearly independent. That is, any coding base such as a sine function, a cosine function, and a vector represented by a linear sum thereof may be used without departing from this limitation.
  • the graphic generation unit 24 deforms the reference graphic Gr based on the displacement indicated by the displacement waveform Wd. Accordingly, the graphic generation unit 24 generates a graphic Gd obtained by modifying the reference graphic Gr.
  • FIG. 6 is a diagram for explaining typical graphic generation by the graphic generation unit 24.
  • the reference graphic Gr is composed of a horizontal line segment (first line segment) as shown in FIG.
  • FIG. 6 also shows an enlarged view of the rectangular area 61 including a part of the reference graphic Gr.
  • the reference graphic Gr is processed in a state stored in the work data area 13b of the storage device 13.
  • the graphic generation unit 24 arranges m reference points at equal intervals on the line segment (that is, the reference graphic Gr) corresponding to each of m elements of the displacement vector d representing the displacement waveform Wd. These reference points (more specifically, reference points in the rectangular area 61) are indicated by black circles in FIG. FIG. 6 shows a jth reference point 62 as one of these m reference points.
  • the graphic generation unit 24 acquires a point shifted from the reference point by a displacement corresponding to the element value of the displacement vector d representing the displacement waveform Wd for each of the m reference points. Taking the jth reference point 62 shown in FIG. 6 as an example, the graphic generation unit 24 moves the element of the displacement vector d in the direction of the normal 63 of the line segment (reference graphic Gr) passing through the reference point 62. A point shifted by a displacement 64 corresponding to the value of dj is acquired.
  • the graphic generation unit 24 generates a polygon (or a curve approximated by the polygon) connecting the acquired sequence of m points as a graphic Gd in the work data area 13b of the storage device 13.
  • the graphic generation unit 24 deforms the reference graphic Gr (first line segment) so as to correspond to the displacement represented by the displacement waveform Wd based on the displacement vector d representing the displacement waveform Wd. (Deformed line segment) is generated. That is, the graphic generation unit 24 functions as an object generation unit, and expands / contracts the length of the displacement waveform Wd so as to match the reference graphic Gr, thereby forming an object (first object) composed of the graphic Gd obtained by modifying the reference graphic Gr. 2 objects).
  • FIG. 7 shows an example of the graphic Gd generated by the graphic generation unit 24.
  • the degree of deformation of the figure Gd from the reference figure Gr corresponds to the contents of the bit string of the data De. Therefore, it can be said that the graphic Gd shown in FIG. 7 is an object (second object) in which the data De is embedded.
  • the graphic output unit 25 outputs the graphic Gd (second object) generated by the graphic generation unit 24 in the work data area 13b of the storage device 13.
  • the graphic output unit 25 outputs the graphic Gd to the printer 18 via the input / output controller 14.
  • the printer 18 prints the graphic Gd output by the graphic output unit 25 on, for example, a paper surface.
  • the graphic output unit 25 may output the graphic Gd to an external storage device via the input / output controller 14 for subsequent information processing. Further, the graphic Gd may be used for subsequent information processing in the data embedding device 10.
  • the graphic output unit 25 may output an image such as a form image including the graphic Gd instead of outputting the graphic Gd alone. Such an image is generated, for example, when the graphic output unit 25 combines the graphic Gd with any other ruled line, graphic, and character in the work data area 13b. However, this image may be generated by another device (for example, an image generation unit) inside the data embedding device 10 or outside the data embedding device 10.
  • an image generation unit inside the data embedding device 10 or outside the data embedding device 10.
  • FIG. 8 shows an example of a form image 80 including the graphic Gd shown in FIG.
  • the reference graphic Gr corresponds to the ruled line at the top of the form. Therefore, the form image 80 is generated by the figure generation unit 24 using the uppermost ruled line (that is, a line segment of a predetermined portion) of the original form (that is, the reference form) as the reference figure Gr (first object). This is equivalent to transforming the figure Gr into the figure Gd so as to correspond to each bit of the data De and generating the figure Gd (second object).
  • the amplitude of the waveform representing the shape of the figure Gd (that is, the deformation of the reference figure Gr shown in FIG. 6) is so extreme that the waveform can be easily visually recognized. Is greatly illustrated. However, in practice, the amplitude of the waveform of the graphic Gd can be suppressed to the extent that there is no problem in data extraction by the data extraction device 90 described later. Moreover, the figure Gd is not a figure superimposed on the original form, but a figure in which a part of the ruled line (reference figure Gr) of the original form is deformed.
  • the form image 80 does not deviate greatly from the design of the original form, and there is no possibility of making the user feel uncomfortable. Therefore, according to the first embodiment, it is possible to realize data embedding that prevents a portion where data is embedded from being visually recognized, is excellent in secrecy, and does not impair the beauty of the form.
  • FIG. 9 is a block diagram showing a typical hardware configuration of the data extraction device 90 according to the first embodiment.
  • the data extraction device 90 in the first embodiment is realized using a PC 91.
  • the PC 91 includes a CPU 92, a storage device 93, an input / output controller 94, and a system bus 95.
  • the CPU 92, the storage device 93 and the input / output controller 94 are interconnected by a system bus 95.
  • the CPU 92 inputs an image in which the data De is embedded by the data embedding device 10 and executes information processing for extracting data Dd corresponding to the data De from the input image.
  • the storage device 93 includes a software area 93a and a work data area 93b.
  • the software area 93a is used to store data extraction software for the information processing.
  • the work data area 93b is used to store work data for the information processing.
  • the input / output controller 94 is connected to an imaging device, for example, a camera 96.
  • the camera 96 is used to acquire an image of an object (for example, a printed material) in which the data De is embedded by the data embedding device 10.
  • the input / output controller 94 inputs an image acquired by the camera 96.
  • the input / output controller 94 also outputs the extracted data to the outside of the data extraction device 90 via an output interface 97 such as a serial output interface.
  • FIG. 10 is a block diagram showing a typical functional configuration of the data extraction device 90. As shown in FIG. This functional configuration is realized by the CPU 92 of the PC 91 shown in FIG. 9 executing the data extraction software.
  • the data extraction device 90 includes an image acquisition unit 101, a fitting unit 102, a residual calculation unit 103, an inner product vector calculation unit 104, a data extraction unit 105, and a data output unit 106.
  • the image acquisition unit 101, the fitting unit 102, the residual calculation unit 103, the inner product vector calculation unit 104, the data extraction unit 105, and the data output unit 106 are configured by software modules. However, some or all of these software modules may be replaced with hardware modules.
  • the image acquisition unit 101 acquires the image Iin including the object (second object) in which the data Dd is embedded via the input / output controller 94 shown in FIG.
  • the fitting unit 102 applies a reference graphic to the image Iin.
  • the residual calculation unit 103 calculates a residual vector r composed of an array of fitting residuals by the fitting unit 102. The fit residual will be described later.
  • the inner product vector calculation unit 104 calculates the inner product of each of a plurality of predetermined bases for decoding (hereinafter referred to as decoding bases) and the residual vector r.
  • the inner product vector calculation unit 104 acquires an inner product vector p composed of the calculated inner product array.
  • the data extraction unit 105 extracts the data (second data) Dd corresponding to the data (first data) De by quantizing the conversion vector t corresponding to the inner product vector p. The relationship between the inner product vector p and the transformation vector t will be described later.
  • the data output unit 106 outputs the extracted data Dd to the storage device 93 or an external device.
  • the data De is embedded by the data embedding device 10 in the form image 80 (more specifically, an object composed of the graphic Gd included in the form image 80) acquired from the printed matter.
  • the form image 80 acquired by the camera 96 is input into the data extraction device 90 by the input / output controller 94 of the data extraction device 90.
  • the image acquisition unit 101 acquires the form image 80 input by the input / output controller 94 as an image Iin. That is, the image acquisition unit 101 acquires the form image 80 in which the data De is embedded as an image Iin from the camera 96. Therefore, in the following description of the first embodiment, the acquired image Iin is referred to as an image Iin_80.
  • the image acquisition unit 101 stores the acquired image Iin_80 data in the work data area 93b of the storage device 93 shown in FIG. Note that the image acquisition unit 101 may acquire the image Iin_80 from an imaging device other than the camera 96, for example, a scanner. Further, the image acquisition unit 101 does not necessarily acquire the image Iin_80 from the imaging device.
  • the image acquisition unit 101 may acquire the image Iin_80 from, for example, a facsimile receiver or via a network to which a hyper text transfer protocol (HTTP) is applied. That is, as long as the image Iin_80 including the object (second object) in which the data De is embedded can be acquired, the image acquisition unit 101 may use any method.
  • HTTP hyper text transfer protocol
  • the fitting unit 102 applies the reference graphic to the image Iin_80 acquired by the image acquisition unit 101.
  • details of the fitting of the reference figure by the fitting unit 102 will be described with reference to FIGS. 11 to 13.
  • FIG. 11 shows an example of an image Iin_80 acquired by the image acquisition unit 101 in the first embodiment.
  • An image Iin_80 shown in FIG. 11 corresponds to the form image 80 shown in FIG. 8, and therefore includes a graphic Gd.
  • the fitting unit 102 detects a straight line 121 (see FIG. 12) from the detection region 111 on the image Iin_80 shown in FIG. 11 by, for example, a well-known Hough transform.
  • the detection area 111 is, for example, a rectangular area set at a place where the graphic Gd in which the data De is embedded is expected to be printed by the data embedding device 10. That is, the place where the detection area 111 is set corresponds to the position of the reference graphic Gr used for generating the graphic Gd.
  • the detection area 111 is determined in advance by the operator or developer in the form of a set of coordinates in the image Iin_80 of the four corners (that is, the vertices) of the detection area 111 (that is, the rectangular area).
  • FIG. 12 shows an example of a straight line 121 detected from the image Iin_80 by the fitting unit 102
  • FIG. 13 is a diagram for explaining typical line segment fitting from the straight line 121.
  • the fitting unit 102 detects the straight line 121 shown in FIG. 12
  • the fitting unit 102 applies the line segment 132 shown in FIG. 13 from the straight line 121 as follows.
  • a coordinate range 131 shown in FIG. 13 is determined in advance for fitting the line segment 132.
  • the fitting unit 102 applies a line segment 132 within the coordinate range 131 from the straight line 121.
  • the coordinate range 131 is determined in advance by an operator or developer in the form of a coordinate pair in which the left end and the right end of the graphic Gd in which the data De is embedded by the data embedding device 10 are expected to be located.
  • the fitting unit 102 uses the line segment 132 as a reference graphic, and applies the line segment 132 to the image Iin_80 (more specifically, the graphic Gd in the image Iin_80). That is, the fitting unit 102 sets the line segment 132 at a position fitted from the straight line 121. Therefore, fitting the line segment 132 to the image Iin_80 is equivalent to fitting the line segment 132 from the straight line 121 (that is, the straight line 121 detected by the Hough transform from the image Iin_80).
  • FIG. 13 also shows a state in which the line segment 132 is applied to the image Iin_80.
  • the residual calculation unit 103 calculates a residual vector r composed of an array of fitting residuals by the fitting unit 102.
  • the fitting residual refers to the displacement of the graphic Gd (deformed line segment) in the image Iin_80 from the line segment (first line segment) 132 used as the reference graphic.
  • the arrangement of the m reference points is the same as the arrangement of the m reference points by the graphic generation unit 24 (see FIG. 6).
  • FIG. 14 is a diagram for explaining typical residual calculation by the residual calculation unit 103.
  • FIG. 14 also shows an enlarged view of a rectangular area 141 including a part of the image Iin_80. It is assumed that the j-th reference point on the line segment 132 applied to the image Iin_80 is the reference point 142 shown in FIG.
  • the residual calculation unit 103 detects the edge 144 of the image Iin_80 (more specifically, the figure Gd in the image Iin_80) on the normal line 143 of the line segment 132 at the reference point 142.
  • the residual calculator 103 a displacement 145 from the reference point 142 of the detected edges 144 (i.e. the j-th reference point) is calculated as a displacement r j of the reference point 142, the displacement r j j th Get as residual.
  • the residual calculation unit 103 stores the residual vector r in the work data area 93b of the storage device 93.
  • the inner product vector calculation unit 104 calculates the inner product of each of a plurality of predetermined decoding bases and the residual vector r.
  • the inner product vector calculation unit 104 acquires an inner product vector p configured from the array of inner products. That is, the inner product vector calculation unit 104 calculates an inner product vector p configured by an inner product array of each of the plurality of decoding bases and the residual vector r.
  • FIG. 15 shows a typical state of calculation of the inner product vector p by the inner product vector calculation unit 104.
  • n 8
  • the data extraction unit 105 quantizes the transformation vector t corresponding to the inner product vector p calculated by the inner product vector calculation unit 104.
  • the data extraction unit 105 extracts data by quantizing the conversion vector t.
  • FIG. 16 is a diagram illustrating an example of quantization of the conversion vector t by the data extraction unit 105.
  • the data output unit 106 outputs the data De extracted by the data extraction unit 105 to the external device or the storage device 93. That is, the data output unit 106 may transmit the data De to the external device via the input / output controller 94 and the output interface 97. The data output unit 106 may store the data De in the work data area 93b of the storage device 93 for further information processing.
  • the reference figure to be applied is not a line segment (first line segment) but a rectangle (rectangular shape) composed of four line segments including the line segment (first line segment).
  • the data embedding software and data extraction software applied in the second embodiment also differ in part from those applied in the first embodiment.
  • the functions of the graphic generation unit, the fitting unit, and the residual calculation unit applied in the second embodiment are different from those in the first embodiment.
  • the data embedding device and the data extracting device applied in the second embodiment are equivalent to those in the first embodiment. Therefore, for convenience, the second embodiment will be described with reference to FIGS. 1, 2, 9, and 10.
  • the operation of the data embedding device 10 in the second embodiment will be described.
  • the operations of the data acquisition unit 21, the weight vector generation unit 22, and the displacement calculation unit 23 in the data embedding device 10 are the same as those in the first embodiment.
  • the displacement calculating unit 23 uses the encoding bases ⁇ 1 , ⁇ 2 , ⁇ 3 , ⁇ 4 , ⁇ 5 , ⁇ 6 , ⁇ 7, and ⁇ 8 , and the wave numbers are 16, 18, 20, 22, 24, respectively. , 26 and 30 are used.
  • FIG. 17 shows an example of encoding bases ⁇ 1 , ⁇ 2 , ⁇ 3 , ⁇ 4 , ⁇ 5 , ⁇ 6 , ⁇ 7, and ⁇ 8 applied in the second embodiment.
  • the displacement calculation unit 23 uses the weight vector w generated based on the bit string of the data De and the encoding bases ⁇ 1 ,..., ⁇ 8 shown in FIG. Is calculated.
  • the graphic generation unit 24 deforms the reference graphic Gr based on the displacement indicated by the displacement waveform Wd, so that the graphic Gd in which the reference graphic Gr is deformed (that is, an object composed of the graphic Gd in which the data De is embedded). ) Is generated.
  • FIG. 18 is a diagram for explaining typical graphic generation by the graphic generation unit 24 applied in the second embodiment.
  • the reference graphic Gr used in the second embodiment is a rectangle indicated by a broken line in FIG.
  • FIG. 18 also shows an enlarged view of the rectangular area 181 including a part of the reference graphic Gr.
  • the graphic generation unit 24 arranges m reference points at equal intervals on the rectangle (that is, the reference graphic Gr) in correspondence with m elements of the displacement vector d representing the displacement waveform Wd. These m reference points are arranged clockwise, for example, starting from the upper left corner of the rectangle. These reference points (more specifically, reference points in the rectangular area 181) are indicated by black circles in FIG. FIG. 18 shows a jth reference point 182 as one of the m reference points.
  • the graphic generation unit 24 acquires a point shifted from the reference point by a displacement corresponding to the element value of the displacement vector d representing the displacement waveform Wd for each of the m reference points.
  • the point shifted from the reference point is a point outside the rectangle if the displacement is positive.
  • the outside point of the rectangle means that the side on the rectangle where the corresponding reference point is arranged is the upper side if the upper side, the right side if the right side, the lower side if the lower side, and the left side if the left side. It is a point deviated from.
  • the point deviated from the reference point is a point inside the rectangle. Taking the j-th reference point 182 shown in FIG.
  • the graphic generation unit 24 moves in the direction of the normal 183 of the side (here, the right side) of the rectangle (reference graphic Gr) passing through the reference point 182.
  • a point shifted by a displacement 184 corresponding to the value of the element dj of the displacement vector d is acquired.
  • the graphic generation unit 24 generates a polygon connecting the acquired sequence of m points as a graphic Gd.
  • the generated polygon can also be regarded as a closed curve.
  • the graphic generation unit 24 generates the graphic Gd by deforming the rectangle (reference graphic Gr) so as to correspond to the displacement represented by the displacement waveform Wd based on the displacement vector d representing the displacement waveform Wd.
  • FIG. 19 shows an example of a graphic Gd generated by the graphic generation unit 24 in the second embodiment.
  • the degree of deformation of the figure Gd from the reference figure Gr corresponds to the contents of the bit string of the data De. Accordingly, it can be said that the object composed of the graphic Gd shown in FIG. 19 is an object (second object) composed of the graphic in which the data De is embedded.
  • the graphic output unit 25 outputs a form image including the graphic Gd (an object composed of the graphic Gd) generated by the graphic generation unit 24 to the printer 18 via the input / output controller 14.
  • FIG. 20 shows an example of a form image 200 including the graphic Gd shown in FIG.
  • the form image 200 shown in FIG. 20 includes a graphic output unit 25 that displays a graphic Gd (second object) and other arbitrary ruled lines, graphics, and characters in the work data area 13b of the storage device 13. It is generated by synthesizing with.
  • the form image 200 may be generated by another device (for example, an image generation unit) inside the data embedding device 10 or outside the data embedding device 10.
  • a form image 200 that is, a form image including a graphic Gd
  • the acquired image Iin is referred to as an image Iin_200.
  • the fitting unit 102 applies the reference graphic to the image Iin_200.
  • a rectangle is applied as the reference graphic.
  • the fitting unit 102 detects the rectangle from the form image 200 in order to fit the rectangle (that is, the reference graphic) to the form image 200.
  • details of the fitting of the reference graphic by the fitting unit 102 will be described with reference to FIGS. 21 and 22.
  • FIG. 21 shows an example of an image Iin_200 acquired by the image acquisition unit 101 in the second embodiment, and four detection areas 211, 212, 213, and 214 used to detect the rectangle from the image Iin_200.
  • the detection areas 211, 212, 213, and 214 are, for example, rectangular areas in which the upper side, the lower side, the left side, and the right side of the rectangle (that is, the reference graphic Gr used for generating the graphic Gd) are expected to be located.
  • Each of the detection areas 211 to 214 is determined in advance by an operator or developer in the form of a set of coordinates in the form image 200 of four corners included in the detection area (that is, a rectangular area).
  • the fitting unit 10 detects straight lines (line segments) corresponding to the four sides from the detection areas 211 to 214 on the image Iin_200 shown in FIG. 21 by, for example, Hough transform.
  • FIG. 22 shows an example of four straight lines 221, 222, 223, and 224 detected by the fitting unit 102.
  • FIG. 22 also shows an intersection 225 of the straight lines 221 and 223, an intersection 226 of the straight lines 222 and 223, an intersection 227 of the straight lines 221 and 224, and an intersection 228 of the straight lines 222 and 224.
  • the fitting unit 10 calculates the coordinates of the intersections 225 to 228 of the straight lines corresponding to the adjacent sides of the four sides based on the detected four straight lines 221 to 224.
  • the calculated coordinates of the intersections 225 to 228 represent the coordinates of the four corners of the rectangle.
  • the fitting unit 10 applies the rectangle represented by the calculated coordinates of the intersections 225 to 228 to the image Iin_200 as the reference graphic Gr. That is, the fitting unit 102 sets the rectangle at a position where the four corners of the rectangle coincide with the coordinates of the intersections 225 to 228.
  • fitting the rectangle (that is, the reference graphic Gr) to the image Iin_200 is equivalent to detecting the four straight lines 221 to 224 from the image Iin_200 and calculating the coordinates of the intersections 225 to 228 of the straight lines 221 to 224. is there.
  • FIG. 23 is a diagram for explaining typical residual calculation by the residual calculation unit 103 in the second embodiment.
  • FIG. 23 also shows an enlarged view of a rectangular area 231 including a part of the image Iin_200. It is assumed that the j-th reference point on the reference graphic Gr (that is, a rectangle) applied to the image Iin_200 is the reference point 232 shown in FIG.
  • the residual calculation unit 103 detects the edge 234 of the image Iin_200 (more specifically, the edge 234 of the graphic Gd in the image Iin_200) on the normal 233 of the rectangular side (here, the right side) at the reference point 232.
  • the residual calculation unit 103 calculates a displacement r j of the detected edge 234 from the reference point 232 (that is, the j-th reference point), and acquires the displacement r j as the j-th residual.
  • the positive / negative of the displacement is assumed to be positive if the edge 234 is outside the rectangle and negative if the edge is inside, similarly to the displacement handled by the graphic generation unit 24 in the second embodiment.
  • the reference graphic Gr applied in the second embodiment is a rectangle.
  • the reference graphic Gr other than the line segment is not limited to a rectangle, and may be any polygon such as a square, a parallelogram, a triangle, a pentagon, a hexagon, or a star.
  • reference points are arranged at equal intervals on the reference graphic Gr, and a normal line at the reference point is defined for each of the reference points. can do.
  • the graphic generation unit 24 deforms the reference graphic Gr (that is, a polygon other than a rectangle) by the method applied in the second embodiment, and the object (first object) composed of the graphic Gd in which the data De is embedded. 2 objects) can be generated.
  • the residual calculation unit 103 can calculate a residual vector by the method applied in the second embodiment.
  • the third embodiment will be described.
  • the feature of the third embodiment is that the reference figure to be applied is not a line segment but an ellipse, and the encoding base to be applied is different from that in the first embodiment. Due to this difference, the data embedding software and data extraction software applied in the third embodiment also differ in part from the functions applied in the first embodiment. Specifically, the functions of the graphic generation unit, the fitting unit, and the residual calculation unit applied in the third embodiment are different from those in the first embodiment. However, except for these differences, the data embedding device and the data extracting device applied in the second embodiment are equivalent to those in the first embodiment. Therefore, the third embodiment will be described with reference to FIGS. 1, 2, 9 and 10 for convenience.
  • the operation of the data embedding device in the third embodiment will be described.
  • the operations of the data acquisition unit 21, the weight vector generation unit 22, and the displacement calculation unit 23 are the same as those in the first embodiment.
  • the displacement calculation unit 23 applies the encoding bases ⁇ 1 to ⁇ 8 shown in FIG.
  • the displacement calculation unit 23 uses the weight vector w generated based on the bit string of the data De and the encoding bases ⁇ 1 ,..., ⁇ 8 shown in FIG. Is calculated.
  • the graphic generation unit 24 deforms the reference graphic Gr based on the displacement indicated by the displacement waveform Wd, so that the graphic Gd in which the reference graphic Gr is deformed (that is, an object composed of the graphic Gd in which the data De is embedded). ) Is generated.
  • FIG. 24 is a diagram for explaining typical graphic generation by the graphic generation unit 24 applied in the third embodiment.
  • the reference graphic Gr used in the third embodiment is an ellipse (first curve) indicated by a broken line in FIG. As shown in FIG. 24, the ellipse has a long axis 242 that is horizontal to the paper surface and a short axis 243 that is perpendicular to the paper surface.
  • FIG. 24 shows a j-th reference point 241 as one of the m reference points.
  • the graphic generation unit 24 acquires a point shifted from the reference point by a displacement corresponding to the element value of the displacement vector d representing the displacement waveform Wd for each of the m reference points.
  • the point shifted from the reference point is a point on a straight line connecting the center 241 of the ellipse (reference figure Gr) shown in FIG. 24 and the reference point.
  • the elliptical center 241 is an intersection of the elliptical major axis 242 and minor axis 243.
  • the point on the straight line varies depending on whether the displacement is positive or negative. For example, if the displacement is positive, it is a point deviated from the reference point outside the ellipse. On the other hand, if the displacement is negative, the point on the straight line is a point shifted from the reference point inside the ellipse.
  • the graphic generation unit 24 acquires a point shifted from the reference point 241 by a displacement 246 corresponding to the value of the element dj of the displacement vector d on the straight line 245 connecting the elliptical center 244 and the reference point 241.
  • the displacement 246 is positive.
  • the graphic generation unit 24 acquires a point shifted from the reference point 241 by the displacement 246 outside the ellipse (that is, the reference graphic Gr) on the straight line 245.
  • the graphic generation unit 24 generates a polygon (closed curve) connecting the acquired sequence of m points as a graphic Gd (deformation curve). As described above, the graphic generation unit 24 generates the graphic Gd by deforming the ellipse (reference graphic Gr) so as to correspond to the displacement represented by the displacement waveform Wd based on the displacement vector d representing the displacement waveform Wd. To do.
  • FIG. 25 shows an example of a graphic Gd generated by the graphic generation unit 24 in the third embodiment. The degree of deformation of the figure Gd from the reference figure Gr corresponds to the contents of the bit string of the data De. Therefore, it can be said that the object composed of the graphic Gd shown in FIG. 25 is an object (second object) in which the data De is embedded.
  • the graphic output unit 25 sends an image including the graphic Gd (an object composed of the graphic Gd) shown in FIG. 25 generated by the graphic generation unit 24 to the printer 18 via the input / output controller 14.
  • FIG. 26 shows an example of an image 260 including the graphic Gd shown in FIG.
  • the graphic output unit 25 synthesizes an object composed of the graphic Gd and other arbitrary graphics and characters in the work data area 13b of the storage device 13. Is generated by
  • the image 260 may be generated by another device (for example, an image generation unit) inside the data embedding device 10 or outside the data embedding device 10.
  • an image 260 that is, an image including the graphic Gd
  • the acquired image Iin is referred to as an image Iin_260.
  • the fitting unit 102 applies a reference graphic to the image Iin_260.
  • an ellipse is applied as the reference graphic.
  • the fitting unit 102 detects the ellipse from the image Iin_260 in order to fit the ellipse (that is, the reference graphic) to the image Iin_260. That is, the fitting unit 102 detects the ellipse by estimating the ellipse parameters (center coordinates, major axis radius, minor axis radius, major axis inclination) by Hough transform based on the image Iin_260.
  • the fitting unit 102 applies the ellipse (that is, the detected ellipse) represented by the estimated ellipse parameter to the image Iin_260 as the reference graphic Gr.
  • FIG. 27 shows an example in which the detected ellipse is applied to the image Iin_260 as the reference graphic Gr.
  • FIG. 28 is a diagram for explaining typical residual calculation by the residual calculation unit 103 in the third embodiment.
  • FIG. 28 shows a jth reference point 281 as one of the m reference points.
  • FIG. 28 also shows the elliptical major axis 282, minor axis 283, and center 284.
  • the residual calculation unit 103 acquires a point deviated from the reference point by a displacement corresponding to the element value of the displacement vector d representing the displacement waveform Wd for each of the m reference points.
  • the graphic generation unit 24 includes an edge 286 of the image 260_260 on the straight line 285 that connects the center 244 of the ellipse and the reference point 281, that is, in the image Iin_260. An edge 286 of the figure Gd is detected.
  • the residual calculation unit 103 calculates the displacement r j of the detected edge 286 from the reference point 281 (that is, the j-th reference point), and acquires the displacement r j as the j-th residual.
  • the positive / negative of the displacement is assumed to be positive if the edge 286 is outside the ellipse and negative if the edge 286 is inside, like the displacement handled by the graphic generation unit 24 in the third embodiment.
  • the reference graphic Gr applied in the third embodiment is an ellipse.
  • the reference graphic Gr other than the line segment and polygon is not limited to an ellipse, and may be any closed curve such as a circle or an egg.
  • the reference points can be arranged at equal intervals on the reference graphic Gr.
  • the displacement and residual at each of these reference points may be defined on a straight line connecting the center of the closed curve and the reference point, or may be defined on a straight line in the normal direction of the closed curve at the reference point. May be.
  • a fourth embodiment will be described.
  • the feature of the fourth embodiment is that the encoding base to be applied is different from that in the first to third embodiments. Due to this difference, the function of the data extraction unit applied in the fourth embodiment (more specifically, the conversion vector calculation method) is different from that in the first to third embodiments. However, except for these differences, the data embedding device and the data extracting device applied in the fourth embodiment are equivalent to those in the first embodiment, for example. Therefore, for convenience, the fourth embodiment will be described with reference to FIGS. 1, 2, 9, and 10.
  • the displacement calculating unit 23 of the data embedding device 10 has different wave numbers as the encoding bases ⁇ 1 , ⁇ 2 , ⁇ 3 , ⁇ 4 , ⁇ 5 , ⁇ 6 , ⁇ 7, and ⁇ 8. Use the sawtooth wave.
  • FIG. 29 shows examples of encoding bases ⁇ 1 , ⁇ 2 , ⁇ 3 , ⁇ 4 , ⁇ 5 , ⁇ 6 , ⁇ 7, and ⁇ 8 applied in the fourth embodiment.
  • the inner product vector calculation unit 104 of the data extraction device 90 uses the same base set as the decoding bases ⁇ 1 to ⁇ 8 shown in FIG. 29 as the decoding bases ⁇ 1 to ⁇ 8. .
  • the operation of the data extraction unit 105 in the fourth embodiment differs from that in the first embodiment in the following points.
  • the data extraction unit 105 uses an identity map for conversion from the inner product vector p to the conversion vector t.
  • a linear transformation that multiplies the inner product vector p by the inverse matrix (Z T ⁇ ) ⁇ 1 of the matrix Z T ⁇ in which the inner product with ⁇ m is arranged is used.
  • This matrix Z T ⁇ is expressed as follows:
  • diag ( ⁇ 1 ⁇ 2 ,..., ⁇ n ⁇ 2 ) is a matrix having ⁇ 1 ⁇ 2 ,..., ⁇ n ⁇ 2 as diagonal elements.
  • the proportional relationship can be established. This proportional relationship, the sign of the elements p i of the inner product vector p is determined by the sign of the elements w i of the weight vector w.
  • data is encoded with the code of the element w i of the weight vector w.
  • the encoding base applied in the fourth embodiment includes non-orthogonal bases. Therefore, the proportional relation as described above between the elements p i elements w i and the inner product vector p of the weight vector w is not approved.
  • the sawtooth wave shown in FIG. 29 is used as the encoding base.
  • any combination of bases may be used as a combination of bases for encoding as long as they are combinations of bases that are linearly independent from each other.
  • Any combination of decoding bases may be used as long as the matrix Z T ⁇ is regular.
  • Examples of combinations of linearly independent bases include combinations of sine functions and cosine functions having different wave numbers used in the first embodiment (see FIG. 4), and cosines having different wave numbers used in the second embodiment.
  • a combination of a linear combination of a sine function and a cosine function can be given.
  • the matrix Z T .XI (i.e., the inner product of the decoding for the base a base for coding are arranged matrix Z T .XI)
  • the combination of the decoding bases is regular, for example, for encoding base and The same combination is mentioned.
  • any combination may be used as long as the combination satisfies the above-described conditions.
  • a feature of the fifth embodiment is that an image (original image Iorg) is used instead of a graphic (reference graphic Gr) for an object in which data De is embedded.
  • FIG. 30 is a block diagram illustrating a typical hardware configuration of the data embedding device 300 according to the fifth embodiment.
  • the same reference numerals are assigned to elements equivalent to the hardware configuration of the data embedding device 10 shown in FIG.
  • a data embedding device 300 shown in FIG. 30 includes, for example, a personal computer (PC) 11 as in the data embedding device 10 (see FIG. 1) applied in the first embodiment (first to fourth embodiments).
  • PC personal computer
  • the function of the data embedding software stored in the software area 13a of the storage device 13 of the PC 11 in the fifth embodiment is partially different from that in the first embodiment.
  • the data extraction device applied in the fifth embodiment excludes, for example, that in the first embodiment and some functions of the data extraction software (more specifically, the function of the residual calculation unit 103). Are almost equivalent. Therefore, the data extraction apparatus is referred to FIG. 9 and FIG. 10 for convenience.
  • the input / output controller 14 of the data embedding device 300 shown in FIG. 30 is connected not only to the display 16, the keyboard 17 and the printer 18 but also to the scanner 301.
  • the scanner 301 is used to acquire an image used as the original image Iorg from, for example, a printed material.
  • the input / output controller 14 may be connected to an imaging device other than the scanner 301, for example, a camera.
  • FIG. 31 is a block diagram showing a typical functional configuration of the data embedding device 300.
  • the functional configuration of the data embedding device 300 is realized by the CPU 12 of the PC 11 shown in FIG. 30 executing the data embedding software. Similar to the data embedding device 10, the data embedding device 300 includes a data acquisition unit 21, a weight vector generation unit 22, and a displacement calculation unit 23.
  • the data embedding device 300 further includes an original image acquisition unit 311, an image deformation unit 312, and an image output unit 313 instead of the graphic generation unit 24 and the graphic output unit 25 included in the data embedding device 10.
  • the data acquisition unit 21, the weight vector generation unit 22, the displacement calculation unit 23, the original image acquisition unit 311, the image deformation unit 312 and the image output unit 313 are configured by software modules. However, some or all of these software modules may be replaced with hardware modules.
  • the original image acquisition unit 311 acquires an original image Iorg used as an object (first object) in which data De (that is, data De acquired by the data acquisition unit 21) is embedded.
  • the image deformation unit 312 deforms the original image Iorg based on the displacement waveform Wd (that is, the displacement waveform Wd calculated by the displacement calculation unit 23), thereby generating an image Id (second image) obtained by deforming the original image Iorg. Object).
  • the image Id is referred to as a deformed image Id.
  • the image output unit 313 outputs the deformed image Id as an image in which the data De is embedded.
  • the operations of the data acquisition unit 21, the weight vector generation unit 22, and the displacement calculation unit 23 in the data embedding device 300 are the same as those in the data embedding device 10 in the first embodiment.
  • the displacement calculation unit 23 of the data embedding device 300 uses the weight vector w generated based on the bit string of the data De and the encoding bases ⁇ 1 ,..., ⁇ 8 shown in FIG. Assume that the displacement waveform Wd is calculated.
  • the scanner 301 acquires the original image Iorg from a printed material on which the original image Iorg is printed.
  • the input / output controller 14 of the data embedding device 300 inputs the original image Iorg acquired by the scanner 301 into the data embedding device 300.
  • the original image acquisition unit 311 acquires the original image Iorg input into the data embedding device 300 and stores it in the work data area 13 b of the storage device 13.
  • FIG. 32 shows an example of this original image Iorg.
  • the original image Iorg has line segments 321 to 325 in the horizontal direction.
  • the original image Iorg is a form image, and the horizontal line segments 321 to 325 are all horizontal ruled lines.
  • the original image Iorg also has a character string.
  • the line segment 321 corresponds to the reference graphic Gr (first line segment) in the first embodiment.
  • the image deformation unit 312 of the data embedding device 300 deforms at least a part of the original image Iorg based on the displacement indicated by the displacement waveform Wd, thereby embedding the image Id in which the original image Iorg is deformed (that is, the data De is embedded).
  • the modified image Id) is generated.
  • FIG. 33 shows an example of the range of the original image Iorg to be deformed by the image deformation unit 312.
  • the range is defined by predetermined lateral coordinates (x coordinates) x 1 and x 2 (x 2 > x 1 ). That is, the portion of the original image Iorg in which the horizontal coordinate x falls within the range of the coordinates x 1 and x 2 is the range of the original image Iorg to be deformed.
  • the number of horizontal pixels (horizontal width) of the original image Iorg is 1000, and the horizontal coordinate x is indicated by the pixel position in the original image Iorg. Further, the upper left corner of the original image Iorg is the origin, and its coordinate x is zero.
  • the coordinates x 1 and x 2 are assumed to be 100 and 900, respectively.
  • the portion of the original image Iorg) is deformed based on the value of the element of the displacement vector d representing the displacement waveform Wd.
  • the deformation of the original image Iorg is performed as follows.
  • the image transformation unit 312 calculates the index j according to the following equation for each value of the coordinate x (x 1 ⁇ x ⁇ x 2 ) on the original image Iorg.
  • floor in floor () represents that the value after the decimal point is rounded down.
  • the image deformation unit 312, the each value of the coordinate x, the displacement j-th element value d j of vector d i.e. displacement d j
  • the displacement dj only work original image Iorg corresponding portions of the data area 13b ( That is, the pixel row of the coordinate x) is shifted in the vertical direction (upward or downward in FIG. 33).
  • the j-th element d j is indicated by the calculated index j.
  • the displacement dj is indicated by the number of pixels.
  • the image transformation unit 312 shifts the entire pixel column of the coordinate x on the original image Iorg by, for example, dj pixels downward.
  • the image deformation unit 312 is shifted d j pixels across a pixel column coordinates x upward on the original image Iorg.
  • the image deformation unit 312 copies the original image Iorg in which the entire pixel row corresponding to each value of the coordinate x is deformed by the displacement d j to the deformed image Id in another area of the work data area 13b.
  • the image deformation unit 312 functions as an object generation unit, and based on the displacement indicated by the displacement waveform Wd, the deformed image Id (second object) obtained by deforming the original image Iorg (first object) illustrated in FIG. Object).
  • FIG. 34 shows an example of a deformed image Id generated by deforming a portion of the original image Iorg in the range shown in FIG.
  • the deformed image Id includes distorted line segments (hereinafter referred to as deformed line segments) 341 to 345.
  • the deformed line segments 341 to 345 correspond to the line segments (ruled lines) 321 to 325 (see FIG. 32) of the original image Iorg.
  • the deformation line segment 341 also corresponds to the graphic Gd in the first embodiment.
  • the portion of the original image Iorg whose coordinates x fall within the range (x 1 ⁇ x ⁇ x 2 ) is deformed. Therefore, character strings that fall within this range are also transformed.
  • the state where the character string is deformed is not expressed for the sake of drawing.
  • the degree of deformation of the deformed line segments 341 to 345 in the deformed image Id from the line segments 321 to 325 in the original image Iorg corresponds to the contents of the bit string of the data De. That is, it can be said that the deformed image Id is an image in which the data De is embedded.
  • the image output unit 313 outputs the deformed image Id (second object composed of the deformed image Id) generated in the work data area 13b of the storage device 13 by the image deforming unit 312.
  • the image output unit 313 outputs the deformed image Id to the printer 18 via the input / output controller 14.
  • the printer 18 prints the deformed image Id output by the image output unit 313 on, for example, a paper surface.
  • the image output unit 313 may output the deformed image Id to an external storage device via the input / output controller 14 for subsequent information processing.
  • the deformed image Id may be used for subsequent information processing in the data embedding device 10.
  • the fitting unit 102 applies the reference graphic to the image Iin.
  • a line segment is applied as the reference graphic.
  • the fitting unit 102 detects one or more line segments from the image Iin in order to fit the line segment (that is, the reference graphic) to the image Iin.
  • detection of a line segment from the image Iin will be described.
  • FIG. 35 shows an example of an image Iin and a detection range on the image Iin.
  • This detection range is set on the image Iin in order to detect one or more line segments from the image Iin.
  • this detection range is a portion on the image Iin where the coordinate x is between the coordinates x 1 and x 2 (ie, x 1 ⁇ x ⁇ x), where x is the horizontal coordinate on the image Iin. Range of 2 ).
  • This detection range coincides with the range of the original image Iorg to be deformed.
  • the fitting unit 102 detects a straight line (line segment) having a length equal to or greater than the threshold value l TH from the detection range x 1 ⁇ x ⁇ x 2 of the image Iin shown in FIG. 35 by Hough transform.
  • c is a predetermined constant, for example, 0.9.
  • the number of detected line segments is n L. Further, the detected n L line segments are defined as l 1 , ... , L nL , and the kth line segment is defined as l k .
  • n L is 5 as is apparent from the example of the original image Iorg in FIG. That is, five line segments corresponding to the line segments 321 to 325 shown in FIG. 32 are detected.
  • the fitting unit 102 applies each of the five detected line segments to the image Iin as the reference graphic Gr.
  • the residual calculation unit 103 calculates a residual vector r composed of an array of fitting residuals by the fitting unit 102.
  • a residual vector r composed of an array of fitting residuals by the fitting unit 102.
  • the residual calculation unit 103 calculates the residual r k, j of the fit at the coordinate x j for all of the n L line segments l k
  • the residual value r k, j is calculated as the average value r j of the residual r k, j. Calculate according to the formula.
  • the residual calculation unit 103 stores the calculated average value r j in the work data area 13b of the storage device 13 as the jth element of the residual vector r.
  • a portion of the original image Iorg within a predetermined range (that is, a range of x 1 ⁇ x ⁇ x 2 ) is deformed.
  • a straight line (line segment) within the above range may be deformed. That is, the image deformation unit 312 detects, for example, all straight lines (line segments) in the horizontal direction from the portion of the original image Iorg within the above range by Hough transform, and only the detected straight lines are displaced by the displacement waveform Wd. It may be deformed based on
  • the original image Iorg is a form image having horizontal line segments 321 to 325.
  • the original image Iorg may be an image other than the form image, or the original image Iorg may be an image having a curve (closed curve or open curve).
  • a curve detected from the image Iin corresponding to the original image Iorg may be used for fitting by the fitting unit 102.
  • the image deformation unit 312 generates a contour line (more specifically, a contour line composed of a series of contour pixels) detected from a predetermined range of the original image Iorg based on the displacement indicated by the displacement waveform Wd. It may be deformed.
  • a sixth embodiment will be described.
  • the feature of the sixth embodiment is that the functions of the weight vector generation unit in the data embedding device and the data extraction unit in the data extraction device are different from those in the first embodiment.
  • the data embedding device and data extracting device applied in the sixth embodiment are equivalent to those in the first embodiment. Therefore, for convenience, the sixth embodiment will be described with reference to FIGS. 1, 2, 9, and 10 focusing on differences from the first embodiment.
  • i represents the pair number of the adjacent bits b 2i and b 2i + 1 .
  • the weight vector generation unit 22 sets the weight w i as the i-th element w i of the weight vector w. That is, the weight vector generation unit 22 converts the i-th bit pair into the i-th element w i of the weight vector w according to the above formula.
  • FIG. 36 shows an example of weight vector generation by the weight vector generation unit 22 described above.
  • the operations of the image acquisition unit 101, the fitting unit 102, the residual calculation unit 103, and the inner product vector calculation unit 104 of the data extraction device 90 are the same as those in the first embodiment.
  • the data extraction unit 105 quantizes the transformation vector t corresponding to the inner product vector p as described below.
  • the conversion vector t is equal to the inner product vector p, as in the first embodiment.
  • the data extraction unit 105 determines whether the quantization result q i corresponding to the element t i is ⁇ 3, ⁇ 1, +1, or +3. Based on the result of this determination, the data extraction unit 105 determines whether the pair of the i-th bits b ′ 2i and b ′ 2i + 1 corresponding to the element t i is 00, 01, 10 or 11. To do.
  • FIG. 37 is a diagram illustrating an example of quantization of the conversion vector t by the data extraction unit 105 described above.
  • the data extraction unit 105 sets the corresponding bit pair to 01 as indicated by an arrow 372 in FIG. , 00, 11 and 01. As a result, the data extraction unit 105 extracts data Dd composed of these bit-pair columns 010010101.
  • an apparatus and method for embedding data in an object and an apparatus and method for extracting embedded data, which realize data embedding that is highly confidential and does not impair aesthetics. it can.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Abstract

 実施形態によれば、データ埋め込み装置は、データ取得ユニットとオブジェクト生成部とを含む。前記データ取得ユニットは、第1の線分または第1の曲線を含む第1のオブジェクトに埋め込まれるべき第1のビット列から構成される第1のデータを取得する。前記オブジェクト生成部は、前記第1のオブジェクトの少なくとも前記第1の線分または前記第1の曲線を前記第1のビット列に基づいて変形することにより、前記第1の線分または前記第1の曲線に対して前記第1のビット列に対応する変位を有する変形線分または変形曲線を含み且つ前記第1のデータが埋め込まれた第2のオブジェクトを生成する。

Description

オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法
 本発明の実施形態は、オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法に関する。
 従来から、バーコード印字技術とバーコードデコード技術とが広く利用されている。バーコード印字技術によれば、紙のような印刷媒体にバーコードが印字される。バーコードデコード技術によれば、印字されたバーコードがスキャナ或いはカメラのような撮像装置で読み込まれ、当該読み込まれたバーコードがデコードされる。
 また、種々のデータ埋め込み技術も広く利用されている。これらのデータ埋め込み技術は、2次元バーコードの形で画像または印刷物のようなオブジェクトにデータを埋め込む技術を含む。
 また、前記データ埋め込み技術は、上述のオブジェクトに視認が困難な形でデータを埋め込む電子透かし技術も含む。電子透かし技術の多くは、前記オブジェクトにドットパターンを重畳する方法を適用する。
 また、前記データ埋め込み技術は、凹凸を形成した線分から構成される図形パターンの並びでデータを符号化する技術も含む。この符号化技術は、前記図形パターンの配列を前記オブジェクトに重畳する方法を適用する。
特許第2938338号公報 特許第3628312号公報 特開2007-194934号公報
 印刷媒体に印字されたバーコードや2次元バーコードは目立つ。このため、バーコードや2次元バーコードは、印刷物の美観を損ねるおそれがある。
 また、オブジェクト、例えば印刷物にドットパターンの形で埋めこまれた電子透かしも、次のような理由で当該印刷物の美観を損ねるおそれがある。印刷物からドットパターン(つまり電子透かし)を抽出するためには、当該印刷物をカメラで撮像するのが一般的である。この撮像の際にピント外れや手ぶれ等が発生すると、画像が劣化して当該画像からドットパターンが消失する可能性がある。そこで、画像からドットパターンが消失しない程度に、当該パターンが大きく且つはっきりと印刷される必要がある。このため、本来は視認が困難であるはずの電子透かしが目立ってしまい、秘匿性や美観が損なわれるおそれがある。図形パターンの配列が重畳された印刷物においても同様である。その理由は、図形パターンの配列が重畳された印刷物から当該図形パターンの配列を抽出するためには、当該図形パターンの各々が印刷及び撮像の過程で消失しない程度に大きく且つはっきりと印刷される必要があるためである。
 本発明が解決しようとする課題は、秘匿性に優れ、且つ美観を損ねないデータ埋め込みを実現できる、オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法を提供することにある。
 実施形態に係るデータ埋め込み装置は、データ取得ユニットと、オブジェクト生成部と、オブジェクト出力ユニットとを具備する。前記データ取得ユニットは、第1の線分または第1の曲線を含む第1のオブジェクトに埋め込まれるべき第1のビット列から構成される第1のデータを取得するように構成されている。前記オブジェクト生成部は、前記第1のオブジェクトの少なくとも前記第1の線分または前記第1の曲線を前記第1のビット列に基づいて変形することにより、前記第1の線分または前記第1の曲線に対して前記第1のビット列に対応する変位を有する変形線分または変形曲線を含み且つ前記第1のデータが埋め込まれた第2のオブジェクトを生成するように構成されている。前記オブジェクト出力ユニットは前記第2のオブジェクトを出力するように構成されている。
図1は、第1の実施形態に係るデータ埋め込み装置の典型的なハードウェア構成を示すブロック図である。 図2は、前記データ埋め込み装置の典型的な機能構成を示すブロック図である。 図3は、前記第1の実施形態における重みベクトル生成部による重みベクトル生成の例を示す図である。 図4は、前記第1の実施形態で適用される複数の符号化用基底の例を示す図である。 図5は、前記第1の実施形態において変位算出部によって算出される変位波形の例を示す図である。 図6は、前記第1の実施形態における図形生成部による典型的な図形生成を説明するための図である。 図7は、前記図形生成部によって生成された図形の例を示す図である。 図8は、図7に示される図形を含む帳票画像の例を示す図である。 図9は、前記第1の実施形態に係るデータ抽出装置の典型的なハードウェア構成を示すブロック図である。 図10は、前記データ抽出装置の典型的な機能構成を示すブロック図である。 図11は、前記第1の実施形態において画像取得ユニットによって取得される画像の例を示す図である。 図12は、前記第1の実施形態において当てはめユニットによって前記画像から検出される直線の例を示す図である。 図13は、前記直線からの典型的な線分当てはめを説明するための図である。 図14は、前記第1の実施形態における残差算出部による典型的な残差算出を説明するための図である。 図15は、前記第1の実施形態における内積ベクトル算出部による内積ベクトルの算出の典型的な様子を示す図である。 図16は、前記第1の実施形態におけるデータ抽出部による変換ベクトルの量子化の例を示す図である。 図17は、第2の実施形態で適用される複数の符号化用基底の例を示す図である。 図18は、前記第2の実施形態における図形生成部による典型的な図形生成を説明するための図である。 図19は、前記第2の実施形態において前記図形生成部によって生成された図形の例を示す図である。 図20は、図19に示される図形を含む帳票画像の例を示す図である。 図21は、前記第2の実施形態において画像取得ユニットによって取得される画像及び4つの検出領域の例を示す図である。 図22は、前記第2の実施形態において当てはめユニットによって検出される4つの直線の例を示す図である。 図23は、前記第2の実施形態における残差算出部による典型的な残差算出を説明するための図である。 図24は、第3の実施形態における図形生成部による典型的な図形生成を説明するための図である。 図25は、前記第3の実施形態において前記図形生成部によって生成された図形の例を示す図である。 図26は、図25に示される図形を含む画像の例を示す図である。 図27は、前記第3の実施形態において画像から検出された楕円形が、基準図形として当該画像に当てはめられた例を示す図である。 図28は、前記第3の実施形態における残差算出部による典型的な残差算出を説明するための図である。 図29は、第4の実施形態で適用される複数の符号化用基底の例を示す図である。 図30は、第5の実施形態に係るデータ埋め込み装置の典型的なハードウェア構成を示すブロック図である。 図31は、前記データ埋め込み装置の典型的な機能構成を示すブロック図である。 図32は、前記第5の実施形態において原画像取得ユニットによって取得される原画像の例を示す図である。 図33は、前記第5の実施形態において画像変形ユニットによって変形されるべき原画像の範囲の例を示す図である。 図34は、図33に示される範囲の原画像の部分を変形することによって生成された変形画像の例を示す図である。 図35は、前記第5の実施形態において画像取得ユニットによって取得される画像と当該画像上の検出範囲の例を示す図である。 図36は、第6の実施形態における重みベクトル生成部による重みベクトル生成の例を示す図である。 図37は、前記第6の実施形態におけるデータ抽出部による変換ベクトルの量子化の例を示す図である。
 以下、実施の形態につき図面を参照して説明する。 
 <第1の実施形態>
 図1は、第1の実施形態に係るデータ埋め込み装置10の典型的なハードウェア構成を示すブロック図である。データ埋め込み装置10はパーソナルコンピュータ(PC)11を用いて実現される。PC11は、CPU12、記憶装置13、入出力コントローラ14及びシステムバス15を備えている。CPU12、記憶装置13及び入出力コントローラ14は、システムバス15によって相互接続されている。
 CPU12は、画像または印刷物のようなオブジェクトに埋め込まれるべきデータDeを入力し、当該入力されたデータDeが埋め込まれたオブジェクトを生成するための情報処理を実行する。記憶装置13は、ソフトウェア領域13a及び作業データ領域13bを備えている。ソフトウェア領域13aは、前記情報処理のためのデータ埋め込みソフトウェアを格納するのに用いられる。作業データ領域13bは、前記情報処理のための作業データを格納するのに用いられる。
 入出力コントローラ14は、入出力デバイス、例えばディスプレイ16、キーボード17及びプリンタ18と接続されている。入出力コントローラ14は、これらのディスプレイ16、キーボード17及びプリンタ18との間でデータを入出力する。
 図2は、データ埋め込み装置10の機能構成を示すブロック図である。この機能構成は、図1に示されるPC11のCPU12が前記データ埋め込みソフトウェアを実行することにより実現されるものとする。データ埋め込み装置10は、データ取得ユニット21、重みベクトル生成部22、変位算出部23、図形生成部24及び図形出力ユニット25を備えている。第1の実施形態において、データ取得ユニット21、重みベクトル生成部22、変位算出部23、図形生成部24及び図形出力ユニット25はソフトウェアモジュールにより構成される。しかし、これらのソフトウェアモジュールの一部または全部がハードウェアモジュールに置き換えられても構わない。
 データ取得ユニット21は埋め込まれるべきデータDeを、図1に示される入出力コントローラ14を介して取得する。データDeは、ビット列から構成される。重みベクトル生成部22は、データDeのビット列に基づいて重みベクトルwを生成する。
 変位算出部23は、前記重みベクトルwの要素により符号化のための予め定められた複数の基底(以下、符号化用基底と称する)を重み付けし、重み付けされた基底の和から構成される変位波形Wdを算出する。変位波形Wdとは、変位の系列から構成される波形、つまり変位の波形を指す。
 図形生成部24は、変位波形Wdに基づいて、予め定められた基準図形Grを記憶装置13の作業データ領域13b内で変形する。これにより図形生成部24は、基準図形Grが変形された図形Gdを生成する。図形出力ユニット25は、図形Gd、または当該図形Gdを含む画像を出力する。
 次に、データ埋め込み装置10の動作について説明する。まず、データ取得ユニット21は、オブジェクト(第1のオブジェクト)に埋め込まれるべきデータ(第1のデータ)Deを入力するためのユーザインタフェースとして機能する。第1他の実施形態において、データDeが埋め込まれるオブジェクトは基準図形Grから構成される、この基準図形Grは線分を含む。
 第1の実施形態では、データ取得ユニット21によってディスプレイ16に表示されたデータが、ユーザの操作によってキーボード17を用いて編集される。データ取得ユニット21は、この編集されたデータをデータDeとして、入出力コントローラ14を介して入力(つまり取得)する。
 重みベクトル生成部22はデータDeのビット列(第1のビット列)に基づいて当該ビット列に対応する重みベクトルwを、次のように生成する。重みベクトル生成部22は、データDeを構成するビットの各々について、例えば、当該ビットが0なら重み-1を、当該ビットが1なら重み+1を生成する。重みベクトル生成部22は、この重みの配列から構成される重みベクトルwを生成する。つまり重みベクトル生成部22は、データDeのビット列を重みベクトルwに変換する。
 重みベクトルwの長さはデータDeのビット列の長さと等しい。この長さをn、データDeのビット列をb1, . . ., bn、行列及びベクトルの転置を表す記号をT、重みベクトルをw=(w1, . . ., wn)Tと表記する。この場合、重みベクトルwのi番目(i=1, . . ., n)の要素wは、次式のように表される。
Figure JPOXMLDOC01-appb-M000001
 図3は、重みベクトル生成部22による重みベクトル生成の例を示す。図3の例では、データDeのビット列は“01001101”であり、その長さ(つまりデータDeのビット数)nは8である。重みベクトル生成部22は、このビット列“01001101”に基づき、図3において矢印30で示すように、重みベクトルw=(-1, +1, -1, -1, +1, +1, -1, -1, +1)を生成する。
 変位算出部23は、重みベクトルwの要素wiにより前記複数の符号化用基底を重み付けし、重み付けされた基底の和から構成される変位波形Wd(より詳細には、変位波形Wdを表すベクトル)を算出する。前記符号化用基底の個数は前記重みベクトルの長さ(つまり、データDeのビット数)nに等しい。前記符号化用基底は長さmのベクトルとして表現される。mはn以上の整数である。
 i番目(i=1, . . ., n)の前記符号化用基底をξi=(ξi,1, . . ., ξi,m)T、前記符号化用基底を横方向に並べて構成した行列をΞ=(ξ1, . . ., ξn)と、それぞれ表記する。また、変位波形Wdも長さmのベクトルとして表現される。変位波形Wdを表すベクトル(以下、変位ベクトルと称する)をd=(d1, . . ., dm)Tと表記する。これらの記号を用いると、変位算出部23によって算出される変位波形Wdを表す変位ベクトルdは次式のように表される。
Figure JPOXMLDOC01-appb-M000002
 図4は、第1の実施形態で適用される符号化用基底ξi(i=1, . . ., n)の例を示す。この例では、n=8である。図4において、紙面の横方向の軸は符号化用基底ξiを表すベクトルの要素の番号を、縦方向の軸は当該要素の値を、それぞれ示す。図4に示す符号化用基底ξ1及びξ2は、それぞれ、波数が16の余弦関数及び波数が16の正弦関数である。図4に示す符号化用基底ξ3及びξ4は、それぞれ、波数が17の余弦関数及び波数が17の正弦関数である。図4に示す符号化用基底ξ5及びξ6は、それぞれ、波数が18の余弦関数及び波数が18の正弦関数である。図4に示す符号化用基底ξ7及びξ8は、それぞれ、波数が19の余弦関数及び波数が19の正弦関数である。
 図5は、変位算出部23によって算出される変位波形Wdの例を示す。図5において、紙面の横方向の軸は変位波形Wdを表す変位ベクトルdの要素の番号j(j=1, . . ., m)を、縦方向の軸は当該要素の値(つまり変位)を示す。
 なお、前記符号化用基底としては線形独立ならばどのようなベクトルを用いても良い。つまり、この制限を逸脱しない限り、正弦関数、余弦関数、及びそれらの線形和で表されるベクトルなど、いかなる符号化用基底を用いても良い。
 図形生成部24は、変位波形Wdによって示される変位に基づいて基準図形Grを変形する。これにより図形生成部24は、基準図形Grが変形された図形Gdを生成する。
 以下、図形生成部24による図形生成の詳細について図6を参照して説明する。図6は、図形生成部24による典型的な図形生成を説明するための図である。第1の実施形態において、基準図形Grは、図6に示すように紙面の横方向の線分(第1の線分)から構成される。図6には、基準図形Grの一部を含む矩形領域61の拡大図も示されている。基準図形Grは記憶装置13の作業データ領域13bに格納された状態で処理される。
 図形生成部24は、変位波形Wdを表す変位ベクトルdのm個の要素にそれぞれ対応して、前記線分(つまり基準図形Gr)上に等間隔でm個の基準点を配置する。これらの基準点(より詳細には、矩形領域61内の基準点)は、図6において黒丸で示されている。図6には、これらのm個の基準点の1つとして、j番目の基準点62が示されている。
 図形生成部24は、前記m個の基準点の各々について変位波形Wdを表す変位ベクトルdの要素の値に対応する変位だけ当該基準点からずれた点を取得する。図6に示されるj番目の基準点62を例に取ると、図形生成部24は、当該基準点62を通る前記線分(基準図形Gr)の法線63の方向に、変位ベクトルdの要素djの値に対応する変位64だけずれた点を取得する。
 図形生成部24は、取得されたm個の点の列をつなぐ多角形(または多角形によって近似される曲線)を、記憶装置13の作業データ領域13b内に図形Gdとして生成する。このように図形生成部24は、変位波形Wdを表す変位ベクトルdに基づいて、当該変位波形Wdの表す変位に対応するように基準図形Gr(第1の線分)を変形することにより図形Gd(変形線分)を生成する。つまり図形生成部24はオブジェクト生成部として機能して、基準図形Grに合わせるように変位波形Wdの長さを伸縮することにより、当該基準図形Grが変形された図形Gdから構成されるオブジェクト(第2のオブジェクト)を生成する。
 図7は、図形生成部24によって生成された図形Gdの例を示す。この図形Gdの基準図形Grからの変形の度合いは、データDeのビット列の内容に対応する。よって、図7に示す図形Gdは、データDeが埋め込まれたオブジェクト(第2のオブジェクト)であるといえる。
 図形出力ユニット25は、図形生成部24によって記憶装置13の作業データ領域13b内に生成された図形Gd(第2のオブジェクト)を出力する。ここでは図形出力ユニット25は、図形Gdを、入出力コントローラ14を介してプリンタ18に出力するものとする。この場合、プリンタ18は、図形出力ユニット25によって出力された図形Gdを、例えば紙面に印刷する。しかし、後続の情報処理のために、図形出力ユニット25が、図形Gdを、入出力コントローラ14を介して外部の記憶装置に出力しても良い。また、図形Gdが、データ埋め込み装置10内で後続の情報処理に供されても良い。
 なお図形出力ユニット25が、図形Gd単体を出力する代わりに、当該図形Gdを含む、例えば帳票画像のような画像を出力しても良い。このような画像は、例えば図形出力ユニット25が、図形Gdと他の任意の罫線、図形及び文字とを作業データ領域13b内で合成することにより生成される。しかし、この画像が、データ埋め込み装置10内またはデータ埋め込み装置10外の別の装置(例えば画像生成部)によって生成されても良い。
 図8は、図7に示される図形Gdを含む帳票画像80の例を示す。図8の例から明らかなように、基準図形Grは帳票の最上段の罫線に対応する。よって帳票画像80の生成は、図形生成部24が、原帳票(つまり基準の帳票)の最上段の罫線(つまり所定部分の線分)を基準図形Gr(第1のオブジェクト)として用い、当該基準図形GrをデータDeの各ビットに対応するように図形Gdに変形して、当該図形Gd(第2のオブジェクト)を生成することと等価である。
 図8に示す帳票画像80の例では、説明の便宜上、図形Gd(つまり図6に示される基準図形Grの変形)の形状を表す波形の振幅が、当該波形を容易に視認可能なように極端に大きく図示されている。しかし実際には、後述するデータ抽出装置90によるデータの抽出に支障がない程度に、図形Gdの波形の振幅は抑えられる。しかも、図形Gdは、原帳票に重畳された図形ではなく、当該原帳票の一部の罫線(基準図形Gr)が変形された図形である。このため、帳票画像80は原帳票のデザインから大きく逸脱することはなく、ユーザに違和感を抱かせるおそれはない。よって第1の実施形態によれば、データが埋め込まれた箇所が視認されるのを防ぎ、秘匿性に優れ、且つ帳票の美観を損ねないデータ埋め込みを実現できる。
 図9は、第1の実施形態に係るデータ抽出装置90の典型的なハードウェア構成を示すブロック図である。第1の実施形態におけるデータ抽出装置90は、PC91を用いて実現される。PC91は、CPU92、記憶装置93、入出力コントローラ94及びシステムバス95を備えている。CPU92、記憶装置93及び入出力コントローラ94は、システムバス95によって相互接続されている。
 CPU92は、データ埋め込み装置10によってデータDeが埋め込まれた画像を入力し、当該入力された画像から当該データDeに対応するデータDdを抽出するための情報処理を実行する。記憶装置93は、ソフトウェア領域93a及び作業データ領域93bを備えている。ソフトウェア領域93aは、前記情報処理のためのデータ抽出ソフトウェアを格納するのに用いられる。作業データ領域93bは、前記情報処理のための作業データを格納するのに用いられる。
 入出力コントローラ94は、撮像デバイス、例えばカメラ96と接続されている。カメラ96は、データ埋め込み装置10によってデータDeが埋め込まれたオブジェクト(例えば印刷物)の画像を取得するのに用いられる。入出力コントローラ94は、カメラ96によって取得された画像を入力する。入出力コントローラ94はまた、抽出されたデータをシリアル出力インタフェースのような出力インタフェース97を介して、データ抽出装置90の外部に出力する。
 図10は、データ抽出装置90の典型的な機能構成を示すブロック図である。この機能構成は、図9に示されるPC91のCPU92が前記データ抽出ソフトウェアを実行することにより実現されるものとする。データ抽出装置90は、画像取得ユニット101、当てはめユニット102、残差算出部103、内積ベクトル算出部104、データ抽出部105及びデータ出力ユニット106を備えている。第1の実施形態において、画像取得ユニット101、当てはめユニット102、残差算出部103、内積ベクトル算出部104、データ抽出部105及びデータ出力ユニット106はソフトウェアモジュールにより構成される。しかし、これらのソフトウェアモジュールの一部または全部がハードウェアモジュールに置き換えられても構わない。
 画像取得ユニット101は、データDdが埋め込まれたオブジェクト(第2のオブジェクト)を含む画像Iinを、図9に示される入出力コントローラ94を介して取得する。当てはめユニット102は、画像Iinに基準図形を当てはめる。残差算出部103は、当てはめユニット102による当てはめの残差の配列から構成される残差ベクトルrを算出する。当てはめの残差については後述する。
 内積ベクトル算出部104は、復号化のための予め定められた複数の基底(以下、復号化用基底と称する)の各々と残差ベクトルrとの内積を算出する。内積ベクトル算出部104は、算出された内積の配列から構成される内積ベクトルpを取得する。
 データ抽出部105は、内積ベクトルpに対応する変換ベクトルtを量子化することにより、データ(第1のデータ)Deに対応するデータ(第2のデータ)Ddを抽出する。内積ベクトルpと変換ベクトルtとの関係については後述する。データ出力ユニット106は、前記抽出されたデータDdを記憶装置93または外部の装置に出力する。
 次に、データ抽出装置90の動作について説明する。今、カメラ96によって印刷物から例えば図8に示す帳票画像80が取得されたものとする。この印刷物から取得された帳票画像80(より詳細には、帳票画像80に含まれている図形Gdから構成されるオブジェクト)には、データ埋め込み装置10によってデータDeが埋め込まれている。カメラ96によって取得された帳票画像80は、データ抽出装置90の入出力コントローラ94によって当該データ抽出装置90内に入力される。
 画像取得ユニット101は、入出力コントローラ94によって入力された帳票画像80を画像Iinとして取得する。つまり画像取得ユニット101は、データDeが埋め込まれている帳票画像80をカメラ96から画像Iinとして取得する。そこで、第1の実施形態における以下の説明では、前記取得された画像Iinを画像Iin_80と表記する。画像取得ユニット101は、取得された画像Iin_80のデータを図1に示される記憶装置93の作業データ領域93bに格納する。なお、画像取得ユニット101が、カメラ96以外の撮像装置、例えばスキャナから画像Iin_80を取得しても良い。また画像取得ユニット101が、画像Iin_80を必ずしも撮像装置から取得する必要はない。画像取得ユニット101が例えば、ファクシミリ受信機から、或いはハイパー・テキスト・トランスファー・プロトコル(HTTP)を適用するネットワークを経由して、画像Iin_80を取得しても良い。つまり、データDeが埋め込まれているオブジェクト(第2のオブジェクト)を含む画像Iin_80を取得できるならば、画像取得ユニット101はいかなる方法を用いても良い。
 当てはめユニット102は、画像取得ユニット101によって取得された画像Iin_80に基準図形を当てはめる。以下、この当てはめユニット102による基準図形の当てはめの詳細について図11乃至図13を参照して説明する。
 図11は、第1の実施形態において画像取得ユニット101によって取得された画像Iin_80の例を示す。図11に示す画像Iin_80は、図8に示される帳票画像80に対応し、したがって図形Gdを含む。当てはめユニット102は、図11に示される画像Iin_80上の検出領域111から、例えば周知のHough変換により、直線121(図12参照)を検出する。この検出領域111は、データ埋め込み装置10によりデータDeが埋め込まれた図形Gdが印刷されていると期待される箇所に設定される、例えば矩形領域である。つまり、検出領域111が設定される箇所は、図形Gdの生成に用いられた基準図形Grの位置に対応する。検出領域111は、当該検出領域111(つまり矩形領域)が有する4つの角(つまり頂点)の画像Iin_80における座標の組の形式で、オペレータまたは開発者により予め定められる。
 図12は、当てはめユニット102によって画像Iin_80から検出される直線121の例を示し、図13は、当該直線121からの典型的な線分当てはめを説明するための図である。当てはめユニット102は図12に示される直線121を検出すると、当該直線121から図13に示される線分132を次のように当てはめる。
 まず、第1の実施形態では、線分132の当てはめのために、図13に示される座標範囲131が予め定められる。当てはめユニット102は、図13に示すように、直線121から座標範囲131内の線分132を当てはめる。この座標範囲131は、データ埋め込み装置10によりデータDeが埋め込まれた図形Gdの左端及び右端が位置すると期待される座標の対の形式で、オペレータまたは開発者により予め定められる。
 画像Iin_80が図8に示される帳票画像80に対応する第1の実施形態では、線分132は基準図形Grに対応する。そこで当てはめユニット102は、線分132を基準図形として用い、当該線分132を画像Iin_80(より詳細には、画像Iin_80内の図形Gd)に当てはめる。つまり当てはめユニット102は、線分132を、直線121から当てはめられた位置に設定する。よって、線分132を画像Iin_80に当てはめることは、直線121(つまり画像Iin_80からHough変換により検出された直線121)から、線分132を当てはめることと等価である。図13は、線分132が画像Iin_80に当てはめられた状態をも示す。
 残差算出部103は、当てはめユニット102による当てはめの残差の配列から構成される残差ベクトルrを算出する。当てはめの残差とは、基準図形として用いられる線分(第1の線分)132からの画像Iin_80内の図形Gd(変形線分)の変位を指す。以下、この残差算出部103による残差ベクトルrの算出の詳細について説明する。
 残差算出部103は、当てはめユニット102によって画像Iin_80内の図形Gdに当てはめられた線分132(つまり基準図形)上に等間隔でm個の基準点(つまりj=1, . . ., mの基準点)を配置する。このm個の基準点の配置は、図形生成部24によるm個の基準点の配置(図6参照)と同様である。
 図14は、残差算出部103による典型的な残差算出を説明するための図である。図14には、画像Iin_80の一部を含む矩形領域141の拡大図も示されている。画像Iin_80に当てはめられた線分132上のj番目の基準点が、図14に示される基準点142であるものとする。
 残差算出部103は、基準点142における線分132の法線143上で画像Iin_80(より詳細には画像Iin_80内の図形Gd)のエッジ144を検出する。そして残差算出部103は、検出されたエッジ144の基準点142(つまりj番目の基準点)からの変位145を当該基準点142の変位rjとして算出し、当該変位rjをj番目の残差として取得する。
 残差算出部103は、上述したような残差の取得を、j=1, . . ., mの全ての基準点について実行する。残差算出部103は、このようにして取得されたj=1, . . ., mの基準点の変位rjをjの順番で並べることにより残差ベクトルr=(r1, . . ., rm)Tを生成する。残差算出部103は、この残差ベクトルrを記憶装置93の作業データ領域93bに格納する。
 内積ベクトル算出部104は、予め定められた複数の復号化用基底の各々と残差ベクトルrとの内積を算出する。内積ベクトル算出部104は、この内積の配列から構成される内積ベクトルpを取得する。つまり内積ベクトル算出部104は、前記複数の復号化用基底の各々と残差ベクトルrとの内積の配列から構成される内積ベクトルpを算出する。
 前記復号化用基底をζ1, . . ., ζn、前記内積ベクトルをp=(p1, . . ., pn)Tと、それぞれ表記するならば、当該内積ベクトルpの要素pi(i=1, . . ., n)は、次式
  pi=ζi T
のように表される。
 また、復号化用基底ζ1, . . ., ζnを横方向に並べて構成した行列をZ=(ζ1, . . ., ζn)と表記するならば、内積ベクトルpを、次式
  p=ZT
のように表すこともできる。
 図15は、内積ベクトル算出部104による内積ベクトルpの算出の典型的な様子を示す。第1の実施形態において、内積ベクトル算出部104は、データ埋め込み装置10の変位算出部23によって用いられる符号化用基底ξ1, . . ., ξnと同一の基底の組を、復号化用基底ζ1, . . ., ζnとして用いる。つまり内積ベクトル算出部104によって用いられるi番目(i=1, . . ., n)の復号化用基底ζiは、符号化用基底ξiに等しい。図15の例では、n=8であり、内積ベクトルpはp=(-100, +100, -100, -100, +100, +100, -100, +100)である。
 データ抽出部105は、内積ベクトル算出部104によって算出された内積ベクトルpに対応する変換ベクトルtを量子化する。この変換ベクトルtは、内積ベクトルpに対して所定の変換を施すことにより生成される。第1の実施形態では、この変換に恒等写像が用いられる。このため、変換ベクトルtは内積ベクトルpと等しい。つまり、t=pである。したがって、図15に示される内積ベクトルpの例では、変換ベクトルtはt=p=(-100, +100, -100, -100, +100, +100, -100, +100)となる。
 データ抽出部105は、変換ベクトルtを量子化することでデータを抽出する。第1の実施形態では、データ抽出部105は、変換ベクトルtを次のように量子化する。まずデータ抽出部105は、変換ベクトルtのi番目(i=1, . . ., n)の要素tiの正負を調べる。もし要素tiが負であるならば、データ抽出部105は、当該要素tiに対応するビットを0と決定する。そうでないなら、データ抽出部105は、要素tiに対応するビットを1と決定する。
 データ抽出部105は、上述した量子化を、i=1, . . ., nの全ての要素tiについて実行する。これによりデータ抽出部105は、画像Iin_80に埋め込まれたデータDeに対応するデータDdを抽出する。つまりデータ抽出部105は、画像Iin_80からデータDdを復号する。
 抽出されたデータDdのビットの列をb’1, . . ., b’nと表記するするならば、ビットb’i(i=1, . . ., n)は、次式のように表される。
Figure JPOXMLDOC01-appb-M000003
 図16は、データ抽出部105による変換ベクトルtの量子化の例を示す図である。図16の例では、変換ベクトルtはt=(-100, +100, -100, -100, +100, +100, -100, +100)である。データ抽出部105は、この変換ベクトルt=(-100, +100, -100, -100, +100, +100, -100, +100)の要素を、前記式に従って図16において矢印160で示すように量子化する。これによりデータ抽出部105は、データDd=(0, 1, 0, 0, 1, 1, 0, 1)を抽出する。このデータDdは、データDe(つまり画像Iin_80に埋め込まれたデータDe)に一致する。
 データ出力ユニット106は、データ抽出部105によって抽出されたデータDeを外部装置または記憶装置93に出力する。つまりデータ出力ユニット106が、データDeを、入出力コントローラ94及び出力インタフェース97を介して外部装置に送信しても良い。またデータ出力ユニット106が、データDeを、記憶装置93の作業データ領域93bに格納して更なる情報処理の用に供しても良い。
 <第2の実施形態>
 次に、第2の実施形態について説明する。第2の実施形態の特徴は、適用する基準図形が線分(第1の線分)ではなくて当該線分(第1の線分)を含む4つの線分から構成される長方形(矩形)である点と、適用される符号化用基底が前記第1の実施形態におけるそれとは異なる点にある。この相違により、第2の実施形態で適用されるデータ埋め込みソフトウェア及びデータ抽出ソフトウェアも、前記第1の実施形態で適用されるそれとは一部の機能が異なる。具体的には、第2の実施形態で適用される、図形生成部、当てはめユニット及び残差算出部それぞれの機能が、前記第1の実施形態におけるそれとは異なる。しかし、これらの相違点を除けば、第2の実施形態で適用されるデータ埋め込み装置及びデータ抽出装置は、前記第1の実施形態におけるそれと等価である。そこで、便宜的に図1、図2、図9及び図10を参照して第2の実施形態について説明する。
 まず、第2の実施形態におけるデータ埋め込み装置10の動作について説明する。第2の実施形態において、データ埋め込み装置10内のデータ取得ユニット21、重みベクトル生成部22及び変位算出部23の動作は、前記第1の実施形態と同様である。但し、変位算出部23は、符号化用基底ξ1,ξ2,ξ3,ξ4,ξ5,ξ6,ξ7及びξ8として、それぞれ、波数が16,18,20,22,24,26及び30の余弦関数を用いる。図17は、第2の実施形態で適用される符号化用基底ξ1,ξ2,ξ3,ξ4,ξ5,ξ6,ξ7及びξ8の例を示す。
 今、変位算出部23が、データDeのビット列に基づいて生成された重みベクトルwと、図17に示す符号化用基底ξ1, . . ., ξ8とを用いて、前述の変位波形Wdを算出したものとする。図形生成部24は、変位波形Wdによって示される変位に基づいて基準図形Grを変形することにより、当該基準図形Grが変形された図形Gd(つまりデータDeが埋め込まれた図形Gdから構成されるオブジェクト)を生成する。
 以下、図形生成部24による図形生成の詳細について図18を参照して説明する。図18は、第2の実施形態で適用される図形生成部24による典型的な図形生成を説明するための図である。第2の実施形態で使用される基準図形Grは、図18において破線で示される長方形である。図18には、基準図形Grの一部を含む矩形領域181の拡大図も示されている。
 図形生成部24は、変位波形Wdを表す変位ベクトルdのm個の要素にそれぞれ対応して、前記長方形(つまり基準図形Gr)上に等間隔でm個の基準点を配置する。これらのm個の基準点は、例えば、前記長方形の左上の角を始点として時計回りに配置されるものとする。これらの基準点(より詳細には、矩形領域181内の基準点)は、図18において黒丸で示されている。図18には、前記m個の基準点の1つとして、j番目の基準点182が示されている。
 図形生成部24は、前記m個の基準点の各々について変位波形Wdを表す変位ベクトルdの要素の値に対応する変位だけ当該基準点からずれた点を取得する。第2の実施形態において、前記基準点からずれた点は、前記変位が正であるならば、前記長方形の外側の点である。前記長方形の外側の点とは、対応する基準点が配置された前記長方形上の辺が、上辺なら上方向に、右辺なら右方向に、下辺なら下方向に、左辺なら左方向に前記基準点からずれた点である。同様に、前記変位が正でないならば、前記基準点からずれた点は前記長方形の内側の点である。図18に示されるj番目の基準点182を例に取ると、図形生成部24は、当該基準点182を通る前記長方形(基準図形Gr)の辺(ここでは右辺)の法線183の方向に、変位ベクトルdの要素djの値に対応する変位184だけずれた点を取得する。
 図形生成部24は、取得されたm個の点の列をつなぐ多角形を図形Gdとして生成する。生成された多角形は、閉曲線と見なすこともできる。
 上述したように図形生成部24は、変位波形Wdを表す変位ベクトルdに基づいて、当該変位波形Wdの表す変位に対応するように前記長方形(基準図形Gr)を変形することにより図形Gdを生成する。図19は、第2の実施形態において図形生成部24によって生成された図形Gdの例を示す。この図形Gdの基準図形Grからの変形の度合いは、データDeのビット列の内容に対応する。よって、図19に示す図形Gdから構成されるオブジェクトは、データDeが埋め込まれた図形から構成されるオブジェクト(第2のオブジェクト)であるといえる。
 第2の実施形態において図形出力ユニット25は、図形生成部24によって生成された図形Gd(図形Gdから構成されるオブジェクト)を含む帳票画像を、入出力コントローラ14を介してプリンタ18に出力する。図20は、図19に示される図形Gdを含む帳票画像200の例を示す。第2の実施形態では、図20に示す帳票画像200は、図形出力ユニット25が図形Gd(第2のオブジェクト)と他の任意の罫線、図形及び文字とを記憶装置13の作業データ領域13b内で合成することにより生成される。帳票画像200は、データ埋め込み装置10内またはデータ埋め込み装置10外の別の装置(例えば画像生成部)によって生成しても良い。
 次に、第2の実施形態におけるデータ抽出装置90の動作について説明する。まず図20に示す帳票画像(つまり図形Gdを含む帳票画像)200が、画像取得ユニット101によって画像Iinとして取得されたものとする。そこで、第2の実施形態における以下の説明では、前記取得された画像Iinを画像Iin_200と表記する。
 当てはめユニット102は、画像Iin_200に基準図形を当てはめる。第2の実施形態では、基準図形として長方形が適用される。当てはめユニット102は、帳票画像200に、前記長方形(つまり基準図形)を当てはめるために、当該帳票画像200から当該長方形を検出する。以下、この当てはめユニット102による基準図形の当てはめの詳細について図21及び図22を参照して説明する。
 図21は、第2の実施形態において画像取得ユニット101によって取得された画像Iin_200と、当該画像Iin_200から前記長方形を検出するのに用いられる4つの検出領域211,212,213及び214の例を示す。検出領域211,212,213及び214は、前記長方形(つまり図形Gdの生成に用いられた基準図形Gr)のそれぞれ上辺、下辺、左辺及び右辺が位置すると期待される例えば矩形領域である。検出領域211乃至214の各々は、当該検出領域(つまり矩形領域)が有する4つの角の帳票画像200における座標の組の形式で、オペレータまたは開発者により予め定められる。
 当てはめユニット10は、図21に示される画像Iin_200上の検出領域211乃至214から、例えばHough変換により、前記4つの辺に対応する直線(線分)を検出する。図22は、当てはめユニット102によって検出される4つの直線221,222,223及び224の例を示す。図22には、直線221及び223の交点225と、直線222及び223の交点226と、直線221及び224の交点227と、直線222及び224の交点228も示されている。
 当てはめユニット10は、検出された4つの直線221乃至224に基づいて、前記4つの辺のうちの互いに隣り合う辺に対応する直線同士の交点225乃至228の座標を算出する。算出された交点225乃至228の座標は、前記長方形の4つの角の座標を表す。当てはめユニット10は、算出された交点225乃至228の座標で表される長方形を基準図形Grとして画像Iin_200に当てはめる。つまり当てはめユニット102は、前記長方形の4つの角が交点225乃至228の座標に一致する位置に、当該長方形を設定する。よって前記長方形(つまり基準図形Gr)を画像Iin_200に当てはめることは、画像Iin_200から4つの直線221乃至224を検出して、当該直線221乃至224の交点225乃至228の座標を算出することと等価である。
 残差算出部103は、当てはめユニット102による当てはめの残差の配列から構成される残差ベクトルrを次のように算出する。まず残差算出部103は、当てはめユニット102によって画像Iin_200に当てはめられた基準図形Gr(つまり長方形)上に等間隔でm個の基準点(つまりj=1, . . ., mの基準点)を配置する。このm個の基準点の配置は、図形生成部24によるm個の基準点の配置(図18参照)と同様である。
 図23は、第2の実施形態における残差算出部103による典型的な残差算出を説明するための図である。図23には、画像Iin_200の一部を含む矩形領域231の拡大図も示されている。画像Iin_200に当てはめられた基準図形Gr(つまり長方形)上のj番目の基準点が、図23に示される基準点232であるものとする。
 残差算出部103は、基準点232における長方形の辺(ここでは右辺)の法線233上で画像Iin_200のエッジ234(より詳細には画像Iin_200内の図形Gdのエッジ234)を検出する。そして残差算出部103は、検出されたエッジ234の基準点232(つまりj番目の基準点)からの変位rjを算出し、当該変位rjをj番目の残差として取得する。前記変位の正負は、第2の実施形態において図形生成部24で扱われる変位のそれと同様に、エッジ234が前記長方形の外側なら正、内側なら負であるものとする。 
 残差算出部103は、上述したような残差の取得を、j=1, . . ., mの全ての基準点について実行する。以降の動作は前記第1の実施形態と同様である。
 第2の実施形態で適用される基準図形Grは長方形である。しかし、線分以外の基準図形Grとしては、長方形に限らず、例えば、正方形、平行四辺形、三角形、五角形、六角形、或いは星型など、どのような多角形でもよい。ここで挙げたいずれの形状の多角形を基準図形Grとして適用しても、当該基準図形Gr上に等間隔に基準点を配置して、当該基準点の各々について当該基準点における法線を定義することができる。このため図形生成部24は、第2の実施形態において適用された方法で基準図形Gr(つまり長方形以外の多角形)を変形して、データDeが埋め込まれた図形Gdから構成されるオブジェクト(第2のオブジェクト)を生成することがきる。同様に残差算出部103は、第2の実施形態において適用された方法で残差ベクトルを算出することができる。
 <第3の実施形態>
 次に、第3の実施形態について説明する。第3の実施形態の特徴は、適用される基準図形が線分ではなくて楕円である点と、適用される符号化用基底が前記第1の実施形態におけるそれとは異なる点にある。この相違により、第3の実施形態で適用されるデータ埋め込みソフトウェア及びデータ抽出ソフトウェアも、前記第1の実施形態で適用されるそれとは一部の機能が異なる。具体的には、第3の実施形態で適用される、図形生成部、当てはめユニット及び残差算出部それぞれの機能が、前記第1の実施形態におけるそれとは異なる。しかし、これらの相違点を除けば、第2の実施形態で適用されるデータ埋め込み装置及びデータ抽出装置は、前記第1の実施形態におけるそれと等価である。そこで、便宜的に図1、図2、図9及び図10を参照して第3の実施形態について説明する。
 まず、第3の実施形態におけるデータ埋め込み装置の動作について説明する。第3の実施形態において、データ取得ユニット21、重みベクトル生成部22及び変位算出部23の動作は、前記第1の実施形態と同様である。但し、変位算出部23は、第1の実施形態と異なり、図17に示す符号化用基底ξ1乃至ξ8を適用する。
 今、変位算出部23が、データDeのビット列に基づいて生成された重みベクトルwと、図17に示す符号化用基底ξ1, . . ., ξ8とを用いて、前述の変位波形Wdを算出したものとする。図形生成部24は、変位波形Wdによって示される変位に基づいて基準図形Grを変形することにより、当該基準図形Grが変形された図形Gd(つまりデータDeが埋め込まれた図形Gdから構成されるオブジェクト)を生成する。
 以下、図形生成部24による図形生成の詳細について図24を参照して説明する。図24は、第3の実施形態で適用される図形生成部24による典型的な図形生成を説明するための図である。第3の実施形態で使用される基準図形Grは、図24において破線で示される楕円形(第1の曲線)である。この楕円形は、図24に示すように、紙面に水平な長軸242及び紙面に垂直な短軸243を有する。
 楕円上の点の座標(x,y)は、パラメータθにより、次式
  (x,y)=(acosθ,asinθ)
のように表される。ここで、aおよびbは、予め任意に定められた長軸半径及び短軸半径であるものとする。またθは0≦θ≦2πの範囲内であるものとする。したがってθは、前記楕円形の右端、上端、左端及び下端において、それぞれ、0,π/2、π及び3π/2となる。
 図形生成部24は、変位波形Wdを表す変位ベクトルdのm個の要素にそれぞれ対応して、前記楕円形(つまり基準図形Gr)上に等間隔でm個の基準点を配置する。これらのm個の基準点は、例えば、前記楕円形上のθ=0の点(つまり右端)を始点として時計回りに配置されるものとする。図24には、前記m個の基準点の1つとして、j番目の基準点241が示されている。
 図形生成部24は、前記m個の基準点の各々について変位波形Wdを表す変位ベクトルdの要素の値に対応する変位だけ当該基準点からずれた点を取得する。第3の実施形態において、前記基準点からずれた点は、図24に示す前記楕円形(基準図形Gr)の中心241と当該基準点とを結ぶ直線上の点である。楕円形の中心241は、当該楕円形の長軸242と短軸243との交点である。前記直線上の点は、前記変位の正負によって異なり、例えば当該変位が正であるならば前記楕円形の外側に前記基準点からずれた点である。これに対し、前記変位が負であるならば、前記直線上の点は、前記楕円形の内側に前記基準点からずれた点である。
 前記基準点からずれた点の取得について、図24に示されるj番目の基準点241を例に、より具体的に説明する。j番目の基準点241におけるθの値は、次式
  θ=2πj/m
により定められる。図形生成部24は、楕円形の中心244と基準点241とを結ぶ直線245上で、変位ベクトルdの要素djの値に対応する変位246だけ、基準点241からずれた点を取得する。図24の例では、変位246は正である。この場合、図形生成部24は、直線245上で楕円形(つまり基準図形Gr)の外側に変位246だけ基準点241からずれた点を取得する。
 図形生成部24は、取得されたm個の点の列をつなぐ多角形(閉曲線)を図形Gd(変形曲線)として生成する。このように図形生成部24は、変位波形Wdを表す変位ベクトルdに基づいて、当該変位波形Wdの表す変位に対応するように前記楕円形(基準図形Gr)を変形することにより図形Gdを生成する。図25は、第3の実施形態において図形生成部24によって生成された図形Gdの例を示す。この図形Gdの基準図形Grからの変形の度合いは、データDeのビット列の内容に対応する。よって、図25に示す図形Gdから構成されるオブジェクトは、データDeが埋め込まれたオブジェクト(第2のオブジェクト)であるといえる。
 第3の実施形態において図形出力ユニット25は、図形生成部24によって生成された図25に示す図形Gd(図形Gdから構成されるオブジェクト)を含む画像を、入出力コントローラ14を介してプリンタ18に出力する。図26は、図25に示される図形Gdを含む画像260の例を示す。第3の実施形態では、図26に示す画像260は、図形出力ユニット25が図形Gdから構成されるオブジェクトと他の任意の図形及び文字とを記憶装置13の作業データ領域13b内で合成することにより生成される。しかし、画像260が、データ埋め込み装置10内またはデータ埋め込み装置10外の別の装置(例えば画像生成部)によって生成されても良い。
 次に、第3の実施形態におけるデータ抽出装置90の動作について説明する。まず図26に示す画像(つまり図形Gdを含む画像)260が、画像取得ユニット101によって画像Iinとして取得されたものとする。そこで、第3の実施形態における以下の説明では、前記取得された画像Iinを画像Iin_260と表記する。
 当てはめユニット102は、画像Iin_260に基準図形を当てはめる。第3の実施形態では、基準図形として楕円形が適用される。当てはめユニット102は、画像Iin_260に、前記楕円形(つまり基準図形)を当てはめるために、当該画像Iin_260から当該楕円形を検出する。つまり当てはめユニット102は、画像Iin_260に基づいて、Hough変換により前記楕円形のパラメータ(中心座標、長軸半径、短軸半径、長軸の傾き)を推定することにより、前記楕円形を検出する。当てはめユニット102は、前記推定された楕円形のパラメータで表される楕円形(つまり検出された楕円形)を基準図形Grとして画像Iin_260に当てはめる。図27は、検出された楕円形が基準図形Grとして画像Iin_260に当てはめられた例を示す。
 残差算出部103は、当てはめユニット102による当てはめの残差の配列から構成される残差ベクトルrを次のように算出する。まず残差算出部103は、当てはめユニット102によって画像Iin_260に当てはめられた基準図形Gr(つまり楕円形)上に等間隔でm個の基準点(つまりj=1, . . ., mの基準点)を配置する。このm個の基準点の配置は、図形生成部24による楕円形上へのm個の基準点の配置と同様である。
 図28は、第3の実施形態における残差算出部103による典型的な残差算出を説明するための図である。図28には、前記m個の基準点の1つとして、j番目の基準点281が示されている。図28には更に、前記楕円形の長軸282、短軸283及び中心284も示されている。
 残差算出部103は、前記m個の基準点の各々について変位波形Wdを表す変位ベクトルdの要素の値に対応する変位だけ当該基準点からずれた点を取得する。図28に示されるj番目の基準点281を例に取ると、図形生成部24は、楕円形の中心244と基準点281とを結ぶ直線285上で画像260_260のエッジ286、つまり画像Iin_260内の図形Gdのエッジ286を検出する。そして残差算出部103は、検出されたエッジ286の基準点281(つまりj番目の基準点)からの変位rjを算出し、当該変位rjをj番目の残差として取得する。前記変位の正負は、第3の実施形態において図形生成部24で扱われる変位のそれと同様に、エッジ286が前記楕円形の外側なら正、内側なら負であるものとする。 
 残差算出部103は、上述したような残差の取得を、j=1, . . ., mの全ての基準点について実行する。以降の動作は前記第1の実施形態と同様である。
 第3の実施形態で適用される基準図形Grは楕円形である。しかし、線分及び多角形以外の基準図形Grとしては、楕円形に限らず、例えば、円形、或いは卵型など、どのような閉曲線でもよい。ここで挙げたいずれの形状の閉曲線を基準図形Grとして適用しても、当該基準図形Gr上に等間隔に基準点を配置することができる。これらの基準点の各々における変位及び残差が、前記閉曲線の中心と当該基準点とを結ぶ直線上に定義されても良いし、当該基準点における前記閉曲線の法線方向の直線上に定義されても良い。
 <第4の実施形態>
 次に、第4の実施形態について説明する。第4の実施形態の特徴は、適用される符号化用基底が前記第1乃至第3の実施形態におけるそれとは異なる点にある。この相違により、第4の実施形態で適用されるデータ抽出部の機能(より詳細には、変換ベクトルの計算方法)は、前記第1乃至第3の実施形態におけるそれとは異なる。しかし、これらの相違点を除けば、第4の実施形態で適用されるデータ埋め込み装置及びデータ抽出装置は、例えば前記第1の実施形態におけるそれと等価である。そこで、便宜的に図1、図2、図9及び図10を参照して第4の実施形態について説明する。
 第4の実施形態において、データ埋め込み装置10の変位算出部23は、符号化用基底ξ1,ξ2,ξ3,ξ4,ξ5,ξ6,ξ7及びξ8として、波数が異なるのごぎり波を用いる。図29は、第4の実施形態で適用される符号化用基底ξ1,ξ2,ξ3,ξ4,ξ5,ξ6,ξ7及びξ8の例を示す。
 第4の実施形態において、データ抽出装置90の内積ベクトル算出部104は、図29に示される符号化用基底ξ1乃至ξ8と同一の基底の組を復号化基底ζ1乃至ζ8として用いる。この場合、第4の実施形態におけるデータ抽出部105の働きは、前記第1の実施形態におけるそれと、次の点で異なる。
 前記第1の実施形態では、データ抽出部105は、内積ベクトルpから変換ベクトルtへの変換に恒等写像を用いる。これに対して第4の実施形態では、データ抽出部105は、符号化用基底ξ1, . . ., ξn(ここでは、n=8)と復号化用基底ζ1, . . ., ζmとの内積が配置された行列ZTΞの逆行列 (ZTΞ)-1を内積ベクトルpに乗ずる線形変換を用いる。この行列ZTΞは次式のように表される。
Figure JPOXMLDOC01-appb-M000004
 ここで、線形変換を用いる理由について説明する。前記第1乃至第3実施形態において変位算出部23は、符号化用基底ξ1, . . ., ξnとして、波数、または関数種別(正弦関数であるか余弦関数であるかの種別)のいずれかが異なる正弦波の組み合わせを用いている。このため、符号化用基底ξ1, . . ., ξnはお互いに直交している。よって内積ベクトル算出部104が、符号化用基底と同じ組み合わせの復号化用基底を用いることで、前記行列ZTΞは次式
  ZTΞ=ΞTΞ=diag(∥ξ12, . . ., ∥ξn2)
のようになる。ここで、diag(∥ξ12, . . ., ∥ξn2)は∥ξ12, . . ., ∥ξn2を対角要素に持つ行列である。
 この場合、内積ベクトル算出部104は、i=1, . . ., nについて、
  p=ZTΞ=ΞTΞw=diag(∥ξ12, . . ., ∥ξn2)w
すなわち
  pi=∥ξi2i
という比例関係を成立させることができる。この比例関係により、内積ベクトルpの要素piの符号は、重みベクトルwの要素wiの符号で定まる。しかも、第1乃至第3の実施形態では、重みベクトルwの要素wiの符号でデータが符号化される。このため、データ抽出装置90内のデータ抽出部105は、内積ベクトルp(=変換ベクトルt)の要素pi(=ti)の符号を調べるだけで符号化されたデータの対応するビットbiを抽出することができる。
 しかしながら、第4の実施形態で適用される符号化用基底は、直交しない基底を含む。このため、重みベクトルwの要素wiと内積ベクトルpの要素piとの間に前述のような比例関係は成立しない。
 そこで第4の実施形態では、データ抽出部105は、内積ベクトルpの変換に次のような線形変換を用いる。つまりデータ抽出部105は、前記行列ZTΞの逆行列(ZTΞ)-1を内積ベクトルpに乗じる。この線形変換(ZTΞ)-1pの結果は、次式
  (ZTΞ)-1p=(ZTΞ)-1TΞw=w
のように表される。従って、(ZTΞ)-1pは重みベクトルwと一致する。よってデータ抽出部105は、(ZTΞ)-1pから容易にデータを抽出することができる。
 第4の実施形態では、符号化用基底として図29に示すのこぎり波が用いられる。しかし、符号化用基底の組み合わせとしては、互いに線形独立な基底の組み合わせならばいかなる基底の組み合わせを用いてもよい。また、復号化用基底の組み合わせには、前記行列ZTΞが正則となる組み合わせならば、いかなる組み合わせを用いても良い。線形独立な基底の組み合わせの例としては、前記第1実施形態で用いられた波数の異なる正弦関数と余弦関数の組み合わせ(図4参照)、前記第2の実施形態で用いられた波数の異なる余弦関数の組み合わせ(図17参照)の他、正弦関数と余弦関数の線形結合の組み合わせが挙げられる。また、前記行列ZTΞ(つまり、符号化用基底と復号化用基底との内積が配置された行列ZTΞ)が正則となる復号化用基底の組み合わせとしては、例えば符号化用基底と同一の組み合わせが挙げられる。符号化用基底と復号化用基底の組み合わせとしては、上述の条件に合致する組み合わせならばいかなる組み合わせを用いても良い。
 <第5の実施形態>
 次に、第5の実施形態について説明する。第5の実施形態の特徴は、データDeが埋め込まれるオブジェクトに、図形(基準図形Gr)ではなくて、画像(原画像Iorg)が用いられる点にある。
 図30は、第5の実施形態に係るデータ埋め込み装置300の典型的なハードウェア構成を示すブロック図である。なお、図30において、図1に示すデータ埋め込み装置10のハードウェア構成と等価な要素には同一参照番号を付してある。図30に示すデータ埋め込み装置300は、例えば第1の実施形態(第1乃至第4の実施形態)で適用されるデータ埋め込み装置10(図1参照)と同様に、パーソナルコンピュータ(PC)11を用いて実現される。但し、第5の実施形態においてPC11の記憶装置13のソフトウェア領域13aに格納されるデータ埋め込みソフトウェアの機能は、第1の実施形態におけるそれとは一部が異なる。
 一方、第5の実施形態で適用されるデータ抽出装置は、例えば前記第1の実施形態におけるそれと、データ抽出ソフトウェアの一部の機能(より詳細には、残差算出部103の機能)を除いてほぼ等価である。そこでデータ抽出装置については、便宜的に図9及び図10を参照する。
 図30に示すデータ埋め込み装置300の入出力コントローラ14は、ディスプレイ16、キーボード17及びプリンタ18だけでなく、スキャナ301とも接続されている。スキャナ301は、前記原画像Iorgとして用いられる画像を例えば印刷物から取得するのに用いられる。なお、入出力コントローラ14が、スキャナ301以外の撮像装置、例えばカメラと接続されていても良い。
 図31は、データ埋め込み装置300の典型的な機能構成を示すブロック図である。図31において、図2に示すデータ埋め込み装置10の機能構成と等価な要素には同一参照番号を付してある。データ埋め込み装置300の機能構成は、図30に示されるPC11のCPU12が前記データ埋め込みソフトウェアを実行することにより実現される。データ埋め込み装置300は、データ埋め込み装置10と同様に、データ取得ユニット21、重みベクトル生成部22及び変位算出部23を備えている。データ埋め込み装置300は更に、データ埋め込み装置10が有する図形生成部24及び図形出力ユニット25に代えて、原画像取得ユニット311、画像変形ユニット312及び画像出力ユニット313を備えている。第5の実施形態において、データ取得ユニット21、重みベクトル生成部22、変位算出部23、原画像取得ユニット311、画像変形ユニット312及び画像出力ユニット313はソフトウェアモジュールにより構成されるものとする。しかし、これらのソフトウェアモジュールの一部または全部がハードウェアモジュールに置き換えられても構わない。
 原画像取得ユニット311は、データDe(つまりデータ取得ユニット21によって取得されたデータDe)が埋め込まれるオブジェクト(第1のオブジェクト)として用いられる原画像Iorgを取得する。画像変形ユニット312は、変位波形Wd(つまり変位算出部23によって算出された変位波形Wd)に基づいて、原画像Iorgを変形することにより、当該原画像Iorgが変形された画像Id(第2のオブジェクト)を生成する。以下、画像Idを変形画像Idと称する。画像出力ユニット313は、この変形画像IdをデータDeが埋め込まれた画像として出力する。
 次に、第5の実施形態におけるデータ埋め込み装置300の動作について説明する。このデータ埋め込み装置300内のデータ取得ユニット21、重みベクトル生成部22及び変位算出部23の動作は、前記第1の実施形態におけるデータ埋め込み装置10内のそれと同様である。
 今、データ埋め込み装置300の変位算出部23が、データDeのビット列に基づいて生成された重みベクトルwと、図17に示す符号化用基底ξ1, . . ., ξ8とを用いて、前述の変位波形Wdを算出したものとする。一方、スキャナ301が、原画像Iorgが印刷された印刷物から当該原画像Iorgを取得したものとする。データ埋め込み装置300の入出力コントローラ14は、このスキャナ301によって取得された原画像Iorgを、当該データ埋め込み装置300内に入力する。原画像取得ユニット311は、データ埋め込み装置300内に入力された原画像Iorgを取得して記憶装置13の作業データ領域13bに格納する。図32は、この原画像Iorgの例を示す。原画像Iorgは、横方向の線分321乃至325を有する。図32の例では、原画像Iorgは帳票画像であり、横方向の線分321乃至325はいずれも横罫線である。また原画像Iorgは、文字列も有する。線分321は、第1の実施形態における基準図形Gr(第1の線分)に対応する。
 データ埋め込み装置300の画像変形ユニット312は、変位波形Wdによって示される変位に基づいて原画像Iorgの少なくとも一部を変形することにより、当該原画像Iorgが変形された画像Id(つまりデータDeが埋め込まれた変形画像Id)を生成する。
 以下、画像変形ユニット312による画像変形の詳細について説明する。図33は、画像変形ユニット312によって変形されるべき原画像Iorgの範囲の例を示す。図33の例では、前記範囲は、予め定められた横方向の座標(x座標)x1及びx2(x2>x1)で規定される。つまり横方向の座標xが座標x1及びx2の範囲に入る原画像Iorgの部分が、変形されるべき原画像Iorgの範囲である。
 ここで原画像Iorgの横方向の画素数(横幅)は1000であり、横方向の座標xは原画像Iorgにおける画素位置で示されるものとする。また、原画像Iorgの左上の角が原点であり、その座標xは0である。また座標x1及びx2は、それぞれ、例えば100及び900であるものとする。
 この場合、画像変形ユニット312は、横方向の座標xが座標x1=100及び座標x2=900の範囲(x1≦x≦x2)に入る原画像Iorg(つまり作業データ領域13b内の原画像Iorg)の部分を、変位波形Wdを表す変位ベクトルdの要素の値に基づいて変形する。この変形されるべき原画像Iorgの部分は、横方向の線分321乃至325のうち、当該線分321乃至325上の横方向の座標xが座標x1=100及び座標x2=900の範囲(x1≦x≦x2)に入る部分を含む。この原画像Iorgの変形は、次のように行われる。
 まず画像変形ユニット312は、原画像Iorg上の座標x(x1≦x≦x2)の値毎にインデックスjを次式に従って算出する。
Figure JPOXMLDOC01-appb-M000005
ここで、floor( )における“floor”は、括弧内の値の小数点以下を切り下げることを表す。
 次に画像変形ユニット312は、前記座標xの値毎に、変位ベクトルdのj番目の要素djの値(つまり変位dj)だけ、作業データ領域13b内の原画像Iorgの対応する部分(つまり座標xの画素列)を縦方向(図33の上または下方向)にずらす。前記j番目の要素djは、算出されたインデックスjで示される。なお、変位djは画素数で示されるものとする。
 第5の実施形態では、座標xにおいて変位djが正であるならば、画像変形ユニット312は、原画像Iorg上で座標xの画素列全体を例えば下側にdj画素ずらす。これに対し、座標xにおいて変位djが負であるならば、画像変形ユニット312は、原画像Iorg上で座標xの画素列全体を上側にdj画素ずらす。画像変形ユニット312は、この座標xの値毎に対応する画素列全体が変位djだけ変形された原画像Iorgを、作業データ領域13bの別の領域内の変形画像Idに複写する。このように画像変形ユニット312はオブジェクト生成部として機能して、変位波形Wdによって示される変位に基づいて、図32に示す原画像Iorg(第1のオブジェクト)が変形された変形画像Id(第2のオブジェクト)を生成する。
 図34は、図33に示される範囲の原画像Iorgの部分を変形することによって生成された変形画像Idの例を示す。変形画像Idは、歪みのある線分(以下、変形線分と称する)341乃至345を含む。この変形線分341乃至345は、原画像Iorgの線分(罫線)321乃至325(図32参照)に対応する。変形線分341は、第1の実施形態における図形Gdにも対応する。なお、第5の実施形態では、座標xが前記範囲(x1≦x≦x2)に入る原画像Iorgの部分が変形される。したがって、この範囲に入る文字列も変形される。しかし、図34では、作図の都合で、文字列が変形された状態は表現されていない。
 変形画像Id内の変形線分341乃至345の、原画像Iorg内の線分321乃至325からの変形の度合いは、データDeのビット列の内容に対応する。つまり、変形画像Idは、データDeが埋め込まれた画像であるといえる。
 画像出力ユニット313は、画像変形ユニット312によって記憶装置13の作業データ領域13b内に生成された変形画像Id(変形画像Idから構成される第2のオブジェクト)を出力する。ここでは画像出力ユニット313は、変形画像Idを、入出力コントローラ14を介してプリンタ18に出力するものとする。この場合、プリンタ18は、画像出力ユニット313によって出力された変形画像Idを、例えば紙面に印刷する。しかし、後続の情報処理のために、画像出力ユニット313が、変形画像Idを、入出力コントローラ14を介して外部の記憶装置に出力しても良い。また、変形画像Idが、データ埋め込み装置10内で後続の情報処理に供されても良い。
 次に第5の実施形態におけるデータ抽出装置90の動作について説明する。まず図34に示す画像Idが、画像取得ユニット101によって画像Iinとして取得されたものとする。
 当てはめユニット102は、画像Iinに基準図形を当てはめる。第5の実施形態では、基準図形として線分が適用される。当てはめユニット102は、画像Iinに、前記線分(つまり基準図形)を当てはめるために、当該画像Iinから1本以上の線分を検出する。以下、画像Iinからの線分の検出について説明する。
 図35は、画像Iinと当該画像Iin上の検出範囲の例を示す。この検出範囲は、画像Iinから1本以上の線分を検出するために当該画像Iin上に設定される。図35の例では、この検出範囲は、画像Iin上の横方向の座標をxとすると、座標xが座標x1及びx2の間に入る画像Iin上の部分(つまりx1≦x≦x2の範囲)である。この検出範囲は、前述の変形されるべき原画像Iorgの範囲と一致する。
 当てはめユニット102は、図35に示す画像Iinの前記検出範囲x1≦x≦x2から、長さが閾値lTH以上の直線(線分)をHough変換により検出する。閾値lTHは、次式
  lTH=c(x2-x1)
によって示される。ここで、cは予め任意に定めた定数であり、例えば0.9である。また、検出された線分の本数をnLとする。更に、検出されたnL本の線分をl1, . . ., lnLとし、k番目の線分をlkとする。図35の画像Iinの例では、図32の原画像Iorgの例からも明らかなように、nLは5である。つまり、図32に示される線分321乃至325に対応する5本の線分が検出される。当てはめユニット102は、検出された5本の線分の各々を基準図形Grとして画像Iinに当てはめる。
 残差算出部103は、当てはめユニット102による当てはめの残差の配列から構成される残差ベクトルrを算出する。以下、この残差算出部103による残差ベクトルrの算出の詳細について説明する。
 まず残差算出部103は、残差ベクトルrの各要素rj(j=1, . . ., m)について、座標xjを次式に従って算出する。
Figure JPOXMLDOC01-appb-M000006
 次に残差算出部103は、検出されたnL本の線分lk(k=1, . . ., nL)の各々について、座標xjにおける当てはめの残差rk,jを算出する。残差算出部103は、nL本の線分lkの全てについて、座標xjにおける当てはめの残差rk,jを算出すると、これらの残差rk,jの平均値rjを次式に従って算出する。
Figure JPOXMLDOC01-appb-M000007
 残差算出部103は、算出された平均値rjを残差ベクトルrのj番目の要素として記憶装置13の作業データ領域13bに格納する。残差算出部103は、上述した残差rk,jの算出と平均値rjの算出とを、j=1, . . ., mの各々について実行する。データ抽出装置90における以降の動作は前記第1の実施形態と同様である。
 前記第5の実施形態では、予め定められた範囲(つまりx1≦x≦x2の範囲)内の原画像Iorgの部分が変形される。しかし前記範囲内の直線(線分)のみが変形されても良い。つまり画像変形ユニット312が、前記範囲内の原画像Iorgの部分から、例えば横方向の全ての直線(線分)をHough変換により検出し、検出された直線のみを、変位波形Wdによって示される変位に基づいて変形しても良い。
 また、前記第5の実施形態では、原画像Iorgが横方向の線分321乃至325を有する帳票画像である。しかし、原画像Iorgは帳票画像以外の画像であっても良く、また原画像Iorgが曲線(閉曲線または開曲線)を有する画像であっても良い。この場合、当てはめユニット102による当てはめに原画像Iorgに対応する画像Iinから検出される曲線を用いても良い。また画像変形ユニット312が、原画像Iorgの予め定められた範囲から検出される輪郭線(より詳細には輪郭画素の系列から構成される輪郭線)を、変位波形Wdによって示される変位に基づいて変形しても良い。
 <第6の実施形態>
 次に、第6の実施形態について説明する。第6の実施形態の特徴は、データ埋め込み装置における重みベクトル生成部及びデータ抽出装置におけるデータ抽出部それぞれの機能が前記第1の実施形態におけるそれと相違する点にある。しかし、これらの相違点を除けば、第6の実施形態で適用されるデータ埋め込み装置及びデータ抽出装置は、前記第1の実施形態におけるそれと等価である。そこで、便宜的に図1、図2、図9及び図10を参照して、第6の実施形態について、前記第1の実施形態と相違する点を中心に説明する。
 まず、第6の実施形態におけるデータ埋め込み装置10の動作について説明する。ここでは、データ取得ユニット21によって取得されたデータDeが、長さがn’=2nのビット列から構成されるものとする。また、この長さがn’=2nのビット列において隣り合うビットをb2i及びb2i+1(i=1, . . ., n)とする。iは前記隣り合うビットb2i及びb2i+1の対の番号を示す。
 重みベクトル生成部22は、長さがn’=2nのビット列において隣り合うビットb2i,b2i+1の対(つまりi番目のビット対)を、例えば次式に従って、-3,-1,+1または+3のいずれかの重みwiに変換する。
Figure JPOXMLDOC01-appb-M000008
 重みベクトル生成部22は、前記重みwiを、重みベクトルwのi番目の要素wiとして設定する。つまり重みベクトル生成部22は、前記i番目のビット対を、前記式に従って重みベクトルwのi番目の要素wiに変換する。
 重みベクトル生成部22は、上述の変換を、i=1, . . ., nの全てのビットb2i,b2i+1の対について実行する。これにより重みベクトル生成部22は、i=1, . . ., nの要素wiの配列から構成される重みベクトルwを生成する。データ埋め込み装置10における以降の動作は、前記第1の実施形態と同様である。
 図36は、上述した重みベクトル生成部22による重みベクトル生成の例を示す。図36の例では、データDeのビット列は前記第1の実施形態と同様に“01001101”であり、その長さn’=2nは8である。つまりn=4である。重みベクトル生成部22は、このビット列“01001101”において隣り合うビットの対に基づき、図36において矢印360で示すように、重みベクトルw=(-1, -3, +3, -1)を生成する。
 次に、第6の実施形態におけるデータ抽出装置90の動作について説明する。第6の実施形態において、データ抽出装置90の画像取得ユニット101、当てはめユニット102、残差算出部103及び内積ベクトル算出部104のそれぞれの動作は、前記第1の実施形態と同様である。
 今、内積ベクトル算出部104により内積ベクトルpが取得されたものとする。データ抽出部105は、内積ベクトルpに対応する変換ベクトルtを、以下に述べるように量子化する。ここでは、前記第1の実施形態と同様に、変換ベクトルtが内積ベクトルpに等しいものとする。
 データ抽出部105は、変換ベクトルtのi番目(i=1, . . ., n)の要素tiを-3,-1,+1及び+3のうちの最も近い値qiに量子化する。つまりデータ抽出部105は、tiが-2よりも小さいならば(ti<-2)、tiをqi=-3に量子化する。またデータ抽出部105は、tiが-2以上で且つ0よりも小さいならば(-2≦ti<0)、tiをqi=-1に量子化する。またデータ抽出部105は、tiが0以上で且つ+2よりも小さいならば(0≦ti<+2)、tiをqi=+1に量子化する。更にデータ抽出部105は、tiが+2以上であるならば(ti≧+2)、tiをqi=+3に量子化する。
 データ抽出部105は、上述したような量子化を、i=1, . . ., nの全ての要素tiについて実行する。これによりデータ抽出部105は、変換ベクトルtの要素tiが量子化された量子化結果qi(i=1, . . ., n)を取得する。
 次にデータ抽出部105は、要素tiに対応する量子化結果qiが-3,-1,+1または+3のいずれであるかを判定する。データ抽出部105は、この判定の結果に基づき、要素tiに対応するi番目のビットb’2i及びb’2i+1の対が、00,01,10または11のいずれであるかを決定する。つまりデータ抽出部105は、qi=-3であるならば、ビットb’2i及びb’2i+1の対が00(b’2i=0,b’2i+1=0)であり、qi=-1であるならば、ビットb’2i及びb’2i+1の対が01(b’2i=0,b’2i+1=1)であると決定する。またデータ抽出部105は、qi=+1であるならば、ビットb’2i及びb’2i+1の対が10(b’2i=1,b’2i+1=0)であり、qi=+3であるならば、ビットb’2i及びb’2i+1の対が11(b’2i=1,b’2i+1=1)であると決定する。
 データ抽出部105は、上述の決定をi=1, . . ., nの全ての量子化結果qiについて実行する。これによりデータ抽出部105は、n個のビットb’2i及びb’2i+1の対の列から構成されるデータDdを抽出する。なおデータ抽出部105が、i番目の要素tiに対応する量子化結果qiを取得する毎に、当該量子化結果qiに基づいて、ビットb’2i及びb’2i+1の対が00,01,10または11のいずれであるかを決定しても良い。
 図37は、上述したデータ抽出部105による変換ベクトルtの量子化の例を示す図である。図37の例では、変換ベクトルtはt=(-1.2, -3.1, +2.8, -0.9)である。データ抽出部105は、この変換ベクトルtの要素t=-1.2,t2=-3.1,t3=+2.8及びt4=-0.9を、図37において矢印371で示すように、それぞれq=-1,q2=-3,q3=+3及びq4=-1に量子化する。次にデータ抽出部105は、q=-1,q2=-3,q3=+3及びq4=-1に基づいて、それぞれ対応するビット対を図37において矢印372で示すように01,00,11及び01と決定する。これによりデータ抽出部105は、これらのビット対の列01001101から構成されるデータDdを抽出する。
 以上説明した少なくとも1つの実施形態によれば、秘匿性に優れ、且つ美観を損ねないデータ埋め込みを実現する、オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法を提供できる。
 本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (9)

  1.  第1の線分または第1の曲線を含む第1のオブジェクトに埋め込まれるべき第1のビット列から構成される第1のデータを取得するように構成されたデータ取得ユニットと、
     前記第1のオブジェクトの少なくとも前記第1の線分または前記第1の曲線を前記第1のビット列に基づいて変形することにより、前記第1の線分または前記第1の曲線に対して前記第1のビット列に対応する変位を有する変形線分または変形曲線を含み且つ前記第1のデータが埋め込まれた第2のオブジェクトを生成するように構成されたオブジェクト生成部と、
     前記第2のオブジェクトを出力するように構成されたオブジェクト出力ユニットと
     を具備するデータ埋め込み装置。
  2.  前記第1のビット列を重みベクトルに変換するように構成された重みベクトル生成部と、
     予め定められた複数の波形から構成される複数の符号化用基底を前記重みベクトルの要素で重み付けすることにより変位の波形を算出するように構成された変位算出部と
     を更に具備し、
     前記オブジェクト生成部は、前記変位の波形で表される変位だけ前記少なくとも第1の線分または第1の曲線を変形するように構成されている
     請求項1記載のデータ埋め込み装置。
  3.  前記複数の符号化用基底が、互いに線形独立な正弦関数の組み合わせ、互いに線形独立な余弦関数の組み合わせ、または互いに線形独立な正弦関数及び余弦関数の組み合わせから構成される請求項2記載のデータ埋め込み装置。
  4.  前記第1のオブジェクトは前記第1の線分または前記第1の曲線を含む原画像から構成されており、
     前記第2のオブジェクトは変形画像から構成されており、
     前記データ埋め込み装置は、前記原画像を取得するように構成された画像取得ユニットを更に具備し、
     前記オブジェクト生成部は、前記原画像の少なくとも前記第1の線分または前記第1の曲線の部分を前記第1のビット列に基づいて変形することにより、前記原画像に対して前記第1のビット列に対応する変位を有し且つ前記第1のデータが埋め込まれた前記変形画像を生成するように構成されている
     請求項1記載のデータ埋め込み装置。
  5.  請求項1に記載のデータ埋め込み装置によって前記第1のデータが埋め込まれた前記第2のオブジェクトを含む第1の画像を取得するように構成された画像取得ユニットと、
     前記第1の画像に前記第1の線分または第1の曲線に対応する第2の線分または第2の曲線を当てはめるように構成された当てはめユニットと、
     前記第1の画像における前記変形線分または前記変形曲線の前記第2の線分または前記第2の曲線からの変位に基づき、前記変位を表す前記当てはめの残差の配列から構成される残差ベクトルを算出するように構成された残差算出部と、
     前記残差ベクトルに基づいて、前記第1のデータに対応する第2のデータを抽出するように構成されたデータ抽出部と
     を具備するデータ抽出装置。
  6.  前記データ埋め込み装置は、前記第1のビット列を重みベクトルに変換するように構成された重みベクトル生成部と、予め定められた複数の波形から構成される複数の符号化用基底を前記重みベクトルの要素で重み付けすることにより変位の波形を算出するように構成された変位算出部とを更に具備し、
     前記データ埋め込み装置の前記オブジェクト生成部は、前記変位の波形で表される変位だけ前記少なくとも第1の線分または第1の曲線を変形するように構成されており、
     前記データ埋め込み装置は、前記複数の符号化用基底に対応する予め定められた複数の復号化用基底と前記残差ベクトルとの内積の配列から構成される内積ベクトルを算出するように構成された内積ベクトル算出部を更に具備し、
     前記データ抽出部は、前記内積ベクトルの恒等写像から構成されるまたは前記内積ベクトルを線形変換することにより取得される変換ベクトルを量子化することにより、前記第2のデータを抽出するように構成されている
     請求項5記載のデータ抽出装置。
  7.  前記当てはめユニットは、前記第1の線分または第1の曲線に対応する前記第1の画像の予め定められた範囲から前記第2の線分または前記第2の曲線を検出するように構成されている請求項5記載のデータ抽出装置。
  8.  第1の線分または第1の曲線を含む第1のオブジェクトに埋め込まれるべき第1のビット列から構成される第1のデータを取得することと、
     前記第1のオブジェクトの少なくとも前記第1の線分または前記第1の曲線を前記第1のビット列に基づいて変形することにより、前記第1の線分または前記第1の曲線に対して前記第1のビット列に対応する変位を有する変形線分または変形曲線を含み且つ前記第1のデータが埋め込まれた第2のオブジェクトを生成することと、
     前記第2のオブジェクトを出力することと
     を具備するデータ埋め込み方法。
  9.  請求項8に記載のデータ埋め込み方法によって前記第1のデータが埋め込まれた前記第2のオブジェクトを含む第1の画像を取得することと、
     前記第1の画像に前記第1の線分または第1の曲線に対応する第2の線分または第2の曲線を当てはめることと、
     前記第1の画像における前記変形線分または前記変形曲線の前記第2の線分または前記第2の曲線からの変位に基づき、前記変位を表す前記当てはめの残差の配列から構成される残差ベクトルを算出することと、
     前記残差ベクトルに基づいて、前記第1のデータに対応する第2のデータを抽出することと
     を具備するデータ抽出方法。
PCT/JP2012/067225 2012-07-05 2012-07-05 オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法 WO2014006726A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201280074313.0A CN104396225B (zh) 2012-07-05 2012-07-05 向对象嵌入数据的装置及方法、以及抽取所嵌入的数据的装置及方法
PCT/JP2012/067225 WO2014006726A1 (ja) 2012-07-05 2012-07-05 オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法
JP2012542257A JP5586705B2 (ja) 2012-07-05 2012-07-05 オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法
US14/589,320 US9569810B2 (en) 2012-07-05 2015-01-05 Apparatus and method for embedding data in object and apparatus and method for extracting embedded data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/067225 WO2014006726A1 (ja) 2012-07-05 2012-07-05 オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/589,320 Continuation US9569810B2 (en) 2012-07-05 2015-01-05 Apparatus and method for embedding data in object and apparatus and method for extracting embedded data

Publications (1)

Publication Number Publication Date
WO2014006726A1 true WO2014006726A1 (ja) 2014-01-09

Family

ID=49881516

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/067225 WO2014006726A1 (ja) 2012-07-05 2012-07-05 オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法

Country Status (4)

Country Link
US (1) US9569810B2 (ja)
JP (1) JP5586705B2 (ja)
CN (1) CN104396225B (ja)
WO (1) WO2014006726A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017516133A (ja) * 2014-04-15 2017-06-15 エーピーディーエヌ(ビー・ヴイ・アイ)・インコーポレイテッド 等高線暗号化および復号
US10282480B2 (en) 2013-10-07 2019-05-07 Apdn (B.V.I) Multimode image and spectral reader
US10920274B2 (en) 2017-02-21 2021-02-16 Apdn (B.V.I.) Inc. Nucleic acid coated submicron particles for authentication
US10995371B2 (en) 2016-10-13 2021-05-04 Apdn (B.V.I.) Inc. Composition and method of DNA marking elastomeric material

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107742145A (zh) * 2017-09-20 2018-02-27 深圳市天朗时代科技有限公司 数据嵌入方法、数据读取方法、装置及可读存储介质
CN114117366B (zh) * 2022-01-25 2022-04-08 合肥高维数据技术有限公司 基于全字符变换的字符变形方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002094768A (ja) * 2000-09-12 2002-03-29 Toshiba Corp ドキュメント管理方法
JP2006259795A (ja) * 2005-03-15 2006-09-28 Toshiba Corp 文字認識用の帳票、文字認識装置、文字認識プログラムおよび文字認識方法
JP2008277890A (ja) * 2007-04-25 2008-11-13 Sharp Corp 画像処理装置
JP2008306473A (ja) * 2007-06-07 2008-12-18 Sharp Corp 画像処理装置
JP2010098721A (ja) * 2008-10-20 2010-04-30 Toshiba Corp 印刷処理装置及び印刷処理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2938338B2 (ja) 1994-03-14 1999-08-23 株式会社デンソー 二次元コード
JP3628312B2 (ja) 2001-07-18 2005-03-09 沖電気工業株式会社 透かし情報埋め込み装置,及び,透かし情報検出装置
US7408680B2 (en) * 2001-09-26 2008-08-05 Canon Kabushiki Kaisha Image processing apparatus and method
JP2007194934A (ja) 2006-01-19 2007-08-02 Sharp Corp 画像形成装置、符号化データ埋め込みシステム、印刷装置、印刷物、画像形成プログラム、および記録媒体
JP2007279828A (ja) 2006-04-03 2007-10-25 Toshiba Corp 帳票処理装置、帳票様式作成装置、帳票、帳票処理用のプログラム、帳票様式作成用のプログラム
JP5005490B2 (ja) * 2006-12-15 2012-08-22 株式会社リコー 画像処理方法、画像処理装置及び画像処理プログラム
CN102087736B (zh) * 2009-12-08 2012-07-18 北京大学 一种在公章图像中隐式嵌入信息及检测的方法和系统
US8630444B2 (en) * 2009-12-30 2014-01-14 Mitsubishi Electric Research Laboratories, Inc. Method for embedding messages into structure shapes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002094768A (ja) * 2000-09-12 2002-03-29 Toshiba Corp ドキュメント管理方法
JP2006259795A (ja) * 2005-03-15 2006-09-28 Toshiba Corp 文字認識用の帳票、文字認識装置、文字認識プログラムおよび文字認識方法
JP2008277890A (ja) * 2007-04-25 2008-11-13 Sharp Corp 画像処理装置
JP2008306473A (ja) * 2007-06-07 2008-12-18 Sharp Corp 画像処理装置
JP2010098721A (ja) * 2008-10-20 2010-04-30 Toshiba Corp 印刷処理装置及び印刷処理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282480B2 (en) 2013-10-07 2019-05-07 Apdn (B.V.I) Multimode image and spectral reader
JP2017516133A (ja) * 2014-04-15 2017-06-15 エーピーディーエヌ(ビー・ヴイ・アイ)・インコーポレイテッド 等高線暗号化および復号
US10995371B2 (en) 2016-10-13 2021-05-04 Apdn (B.V.I.) Inc. Composition and method of DNA marking elastomeric material
US10920274B2 (en) 2017-02-21 2021-02-16 Apdn (B.V.I.) Inc. Nucleic acid coated submicron particles for authentication

Also Published As

Publication number Publication date
CN104396225A (zh) 2015-03-04
US9569810B2 (en) 2017-02-14
JPWO2014006726A1 (ja) 2016-06-02
CN104396225B (zh) 2017-05-31
JP5586705B2 (ja) 2014-09-10
US20150110342A1 (en) 2015-04-23

Similar Documents

Publication Publication Date Title
JP5586705B2 (ja) オブジェクトにデータを埋め込む装置及び方法、並びに埋め込まれたデータを抽出する装置及び方法
EP3815048B1 (en) Generating signal bearing art using stipple, voronoi and delaunay methods and reading same
US10424038B2 (en) Signal encoding outside of guard band region surrounding text characters, including varying encoding strength
CN106447590B (zh) 数字图像中水印的加入及提取方法
Kang et al. Transfer of adversarial robustness between perturbation types
Ross et al. Visual cryptography for biometric privacy
JP4000316B2 (ja) 埋め込み型図形符号化を用いたハーフトーン化による図形コードの生成
JP4035717B2 (ja) 画像処理装置及び画像処理方法
KR100817773B1 (ko) 화상 처리 장치, 화상 형성 장치, 화상 처리 방법 및 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP2008085920A (ja) 電子透かし埋め込み装置および検出装置
US20070104350A1 (en) Watermarked information embedding apparatus
JPWO2004084125A1 (ja) ドットパターンを用いた情報入出力方法
SK10072003A3 (sk) Dátový kanál pozadia na papierovom alebo inom nosiči
Murali et al. An efficient ROI based copyright protection scheme for digital images with SVD and orthogonal polynomials transformation
CN101122995A (zh) 二值图像中数字水印的嵌入、提取方法和装置
KR20070078044A (ko) 화상 처리 장치, 화상 형성 장치, 지문 화상, 인쇄물, 화상처리 방법, 화상 형성 방법 및 프로그램
US8339677B2 (en) Image processing system, image processing apparatus, and image processing method
Bhattacharyya et al. DCT difference modulation (DCTDM) image steganography
WO2015140562A1 (en) Steganographic document alteration
Qin et al. Print-camera resistant image watermarking with deep noise simulation and constrained learning
Cu et al. Hiding security feature into text content for securing documents using generated font
JP4469301B2 (ja) 情報埋め込み装置、印刷用媒体、および、情報読み取り装置
Zheng et al. A novel steganography-based pattern for print matter anti-counterfeiting by smartphone cameras
JP4922965B2 (ja) 電子透かし生成装置、電子透かし生成方法、電子透かし生成プログラム、電子透かし検出装置、及び電子透かし検出プログラム
JP2006237858A (ja) 画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、および記録媒体

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2012542257

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 12880564

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: 12880564

Country of ref document: EP

Kind code of ref document: A1