Information processing apparatus and information processing method
Claim Score by NHIP
Abstract
In an information processing apparatus that processes data using cascade-connected weak classifiers, processing specification information specifying the processing content of each of the weak classifiers is stored. The weak classifiers to be used in processing the data are selected from the weak classifiers by referring to a table in which is specified information for determining the weak classifiers to be used based on a condition for processing the data. The data is then processed by the selected weak classifiers based on the processing specification information that corresponds to those weak classifiers, and an object is extracted from the data using an obtained evaluation value. Through this, a combination of extraction process speed and extraction accuracy can be changed in a flexible manner when extracting a specific object from image data.

Term
Projected expiry 22 January 2030.
- Priority
- Filed
- Published
- Today
- Projected expiry
14 claims: 3 independent, 11 dependent
- 1An information processing apparatus comprising:a plurality of weak classifiers that are cascade-connected and that process data;a first storage unit that stores processing specification information specifying the processing content of each of the weak classifiers;a second storage unit that stores a table in which is specified information for determining which of the weak classifiers are to be used in processing the data based on a condition for processing the data;a selection unit that selects the weak classifiers to be used in processing the data from among the weak classifiers by referring to the table;and an extraction unit that extracts an object from the data using an evaluation value obtained by the weak classifiers processing the data based on the processing specification information corresponding to the weak classifiers selected by the selection unit.
- 13Broadest claimClaim Score 72, broad(NHIP)An information processing method for an information processing apparatus that processes data using a plurality of weak classifiers that are cascade-connected, the method comprising the steps of:selecting weak classifiers to be used in the processing of the data by referring to a table in which is specified information for determining the weak classifiers to be used in processing the data, based on a condition for processing the data;processing the data using the weak classifiers based on the processing specification information that corresponds to the weak classifiers selected in the step of selecting, from among the processing specification information specifying the processing content of each of the weak classifiers;and extracting an object from the data using an evaluation value obtained in the step of processing.
- 14A program stored in a computer-readable medium, for executing an information processing method for an information processing apparatus that processes data using a plurality of weak classifiers that are cascade-connected, the method comprising the steps of:selecting weak classifiers to be used in the processing of the data by referring to a table in which is specified information for determining the weak classifiers to be used in processing the data, based on a condition for processing the data;processing the data using the weak classifiers based on the processing specification information that corresponds to the weak classifiers selected in the step of selecting, from among the processing specification information specifying the processing content of each of the weak classifiers;and extracting an object from the data using an evaluation value obtained in the step of processing.
Independent claims3
239 paragraphs in 5 sections, as filed
TECHNICAL FIELD
p-0002The present invention relates to an information processing technique for processing data using multiple weak classifiers that are cascade-connected.
BACKGROUND ART
p-0003In recent years, various methods for extracting specific objects, such as human faces, from image data have been proposed, and are being put to actual use.
p-0004Among such methods, the method disclosed in Viola, P. & Jones, M.'s “Rapid Object Detection using a Boosted Cascade of Simple Features” (Proc. of Computer Vision and Pattern Recognition, December 2001, IEEE Computer Society, pp. 511-518) is garnering attention due to its high speed (this document shall be referred to as Document 1 hereinafter). This method cascade-connects classifiers made up of multiple weak classifier groups generated using a learning algorithm with boosting, and carries out processing while performing terminating judgment for each classifier. Note that the details of learning algorithms with boosting are disclosed in, for example, Yoav Freund and Robert E. Schapire's “A decision-theoretic generalization of on-line learning and an application to boosting” (in Eurocolt '95, Computational Learning and Theory; Springer-Verlag, 1995, pp. 23-37).
p-0005<figref idrefs="DRAWINGS">FIG. 24</figref> illustrates the overall structure used for this technique. <b>2401</b> to <b>240</b><i>n </i>(where n is a natural number) are classifiers (also called “stages”) generated through learning, and each classifier is configured of, for example, multiple rectangular filters whose processing load is low. Each of the rectangular filters used at this time are generally called “weak classifiers” due to the fact their classification capabilities are not very high.
p-0006<figref idrefs="DRAWINGS">FIG. 25</figref> is a diagram illustrating a rectangular filter for extracting a specific object. <b>2501</b><i>a </i>to <b>2501</b><i>c </i>are examples of image blocks from which extraction is to be performed using the rectangular filters, and are partial images of a predetermined size cut out from the overall image data.
p-0007<figref idrefs="DRAWINGS">FIG. 26</figref>, meanwhile, is a diagram expressing image data to be processed. In this diagram, <b>2601</b> indicates a single frame's worth of the image data to be processed. Meanwhile, <b>2602</b> indicates a processing block, which is the unit of processing used when the single frame's worth of the image data to be processed is actually processed; the processing block is a partial image whose size corresponds to the size of rectangular filters <b>2502</b><i>a </i>to <b>2502</b><i>c</i>. Characteristics of a local region within the partial image are extracted by using the rectangular filters <b>2502</b><i>a </i>to <b>2502</b><i>c </i>to calculate the differences between the sum of region data indicated by the white regions and black regions.
p-0008A specific object within the image data <b>2601</b> is extracted by sequentially scanning the entirety of the image data <b>2601</b> using a predetermined step size based on the partial image <b>2602</b> and processing the image data using the unit of processing.
p-0009Each of the classifiers <b>2401</b> to <b>240</b><i>n </i>accumulate evaluation values that are the output of the determination results for each rectangular filter, and determine whether or not the specific object is present by performing a thresholding process using an identification threshold. As described above, the classifiers <b>2401</b> to <b>240</b><i>n </i>are cascade-connected, and each classifier advances the processing to the following classifier only when it has been determined that the specific object is present in the partial image <b>2602</b> of the unit of processing.
p-0010In this manner, the stated method determines whether the partial image of the unit of processing is the specific object or is not the specific object at each classifier, also called a stage; in the case where it is determined that the partial image is not the specific object, the computations are ended immediately. With actual image data, the partial image is often determined to not be the specific object in the initial stages, and therefore a high-speed extraction process can be implemented.
p-0011Here, consider a case where a function for extracting a specific object using a method such as that described in Document 1 is implemented in an embedded device or the like. Such a case requires the tradeoff between the extraction accuracy and the extraction process speed to be adjusted based on the purpose of the extraction and the computational performance of the embedded device.
p-0012A case where a unit implemented through hardware (or an integrated circuit) is installed, as a common device, in multiple embedded devices whose specifications differ from one another can be given as one example. In such a case, it is desirable to adjust the tradeoff between the extraction accuracy and the extraction process speed based on the operational clocks, use conditions, and so on of the embedded devices in which the unit is installed.
p-0013Furthermore, even when the unit is installed in identical embedded devices, there are cases where the required extraction accuracy and extraction process time differ depending on the type of applications installed in the embedded devices. The performance of the embedded devices can also be optimized in such cases if the tradeoff between the extraction accuracy and the extraction process speed can be adjusted.
p-0014Such situations have conventionally been addressed by reducing the resolution of the image data to be processed, broadening the step size used when scanning the image data to be processed based on the partial image, and so on. For example, Document discloses a method for changing the step size.
p-0015However, when addressing situations such as these, there is a problem that the tradeoff between the extraction accuracy and the extraction process speed cannot be flexibly realized. For example, when attempting to control the extraction process speed by changing the resolution, it is necessary to convert the resolution of the inputted image data to the corresponding resolution. It is further necessary to prepare multiple classifiers that correspond to each resolution.
p-0016Moreover, even when the step size is changed, there is a limit on the types (for example, setting the step size to a unit of n pixels) of tradeoff points (that is, an appropriate combination of extraction accuracy and extraction process speed), resulting in the problem that control cannot be implemented in a flexible manner.
p-0017Such a situation can conceivably be addressed as disclosed in Japanese Patent Laid-Open No. 2005-100121, which takes into consideration the amount of computations performed by the embedded device to which the unit is to be applied. Here, learning is performed in advance using multiple classifiers, and a group of classifiers suited to the embedded device is selected from multiple groups of classifiers when performing the extraction process. However, in this case, it is necessary to prepare multiple differing classifier groups for each tradeoff point in advance, resulting in the problem that an increased amount of resources, such as memory and so on, will be required. This is particularly problematic in cases where the amount of parameter information is high, such as when a large number of classifiers are to be configured.
DISCLOSURE OF INVENTION
p-0018Having been conceived in light of the abovementioned problems, it is an object of the present invention to make it possible to flexibly change the combination of extraction process speed and extraction accuracy when extracting a specific object from inputted data using multiple cascade-connected weak classifiers.
p-0019In order to achieve the above object, an information processing apparatus according to the present invention is configured comprising: a plurality of weak classifiers that are cascade-connected and that process data; a first storage unit that stores information specifying the processing content of each of the weak classifiers; a second storage unit that stores a table in which is specified a prerequisite condition for processing the data and information for determining which of the weak classifiers are to be used in processing the data, for each prerequisite condition; a selection unit that selects the weak classifiers to be used in processing the data from among the weak classifiers by referring to the table; and an extraction unit that extracts an object from the data using an evaluation value obtained by the weak classifiers processing the data based on the information defining the processing details corresponding to the weak classifiers selected by the selection unit.
p-0020According to the present invention, it is possible to flexibly change the combination of extraction process speed and extraction accuracy when extracting a specific object from inputted data using multiple cascade-connected weak classifiers.
p-0021Further features of the present invention will become apparent from the following description of an exemplary embodiment (with reference to the attached drawings).
BRIEF DESCRIPTION OF THE DRAWINGS
p-0022The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
p-0023<figref idrefs="DRAWINGS">FIG. 1</figref> is a diagram illustrating an example of the configuration of an information processing apparatus according to a first embodiment of the present invention.
p-0024<figref idrefs="DRAWINGS">FIG. 2</figref> is a diagram illustrating the details of an identification processing unit.
p-0025<figref idrefs="DRAWINGS">FIG. 3</figref> is a diagram illustrating, in detail, the configuration of a rectangular filter computation unit.
p-0026<figref idrefs="DRAWINGS">FIG. 4</figref> is a diagram illustrating an example of parameter information.
p-0027<figref idrefs="DRAWINGS">FIG. 5</figref> is a flowchart illustrating operations performed by a pattern identification apparatus according to the first embodiment of the present invention.
p-0028<figref idrefs="DRAWINGS">FIG. 6</figref> is a diagram schematically illustrating the relationship between the total number of weak classifiers and the extraction accuracy.
p-0029<figref idrefs="DRAWINGS">FIG. 7</figref> is a diagram illustrating an example of a table that associates operational clocks with the total number of weak classifiers used.
p-0030<figref idrefs="DRAWINGS">FIG. 8</figref> is a diagram illustrating a method for calculating a rectangular block from SAT data.
p-0031<figref idrefs="DRAWINGS">FIG. 9</figref> is a flowchart illustrating operations performed by a pattern identification apparatus according to a second embodiment of the present invention.
p-0032<figref idrefs="DRAWINGS">FIG. 10</figref> is a diagram schematically illustrating the relationship between the number of weak classifiers obtained using a learning algorithm with boosting and the reliability level of the corresponding weak classifiers.
p-0033<figref idrefs="DRAWINGS">FIG. 11</figref> is a diagram illustrating an example of a table that associates operational clocks with the total number of weak classifiers used.
p-0034<figref idrefs="DRAWINGS">FIG. 12</figref> is a flowchart illustrating operations performed by a pattern identification apparatus according to a third embodiment of the present invention.
p-0035<figref idrefs="DRAWINGS">FIG. 13</figref> is a diagram illustrating an example of a table that associates the extracted number of extraction target objects in the previous frame with the total number of weak classifiers used.
p-0036<figref idrefs="DRAWINGS">FIG. 14</figref> is a flowchart illustrating operations performed by a pattern identification apparatus according to a fourth embodiment of the present invention.
p-0037<figref idrefs="DRAWINGS">FIG. 15</figref> is a diagram illustrating an image capturing mode.
p-0038<figref idrefs="DRAWINGS">FIG. 16</figref> is a diagram illustrating an example of a table that associates image capturing modes with the total number of weak classifiers used.
p-0039<figref idrefs="DRAWINGS">FIG. 17</figref> is a diagram illustrating an example of a table that associates operational modes with the total number of weak classifiers used.
p-0040<figref idrefs="DRAWINGS">FIG. 18</figref> is a diagram schematically illustrating parameter information that defines the operations of weak classifiers and the usage status thereof.
p-0041<figref idrefs="DRAWINGS">FIG. 19</figref> is a diagram illustrating an example of a memory map.
p-0042<figref idrefs="DRAWINGS">FIG. 20</figref> is a flowchart illustrating operations performed by a pattern identification apparatus according to a seventh embodiment of the present invention.
p-0043<figref idrefs="DRAWINGS">FIG. 21</figref> is a diagram illustrating a portion of a process execution determination unit in the pattern identification apparatus according to the seventh embodiment of the present invention.
p-0044<figref idrefs="DRAWINGS">FIG. 22</figref> is a diagram illustrating an example of a table that associates operational clocks with the total number of weak classifiers used.
p-0045<figref idrefs="DRAWINGS">FIG. 23</figref> is a diagram illustrating an example of a table for determining extraction conditions in the case where there are two extraction modes.
p-0046<figref idrefs="DRAWINGS">FIG. 24</figref> is a diagram illustrating a method that cascade-connects multiple classifiers and carries out processing while performing terminating judgment for each classifier.
p-0047<figref idrefs="DRAWINGS">FIG. 25</figref> is a diagram illustrating an example of a rectangular filter for extracting a specific object.
p-0048<figref idrefs="DRAWINGS">FIG. 26</figref> is a diagram expressing image data to be processed.
BEST MODE FOR CARRYING OUT THE INVENTION
p-0049Hereinafter, various embodiments of the present invention shall be described in detail with reference to the drawings.
First Embodiment
Hardware Configuration of Pattern Identification Apparatus
p-0050<figref idrefs="DRAWINGS">FIG. 1</figref> is a diagram illustrating an example of the hardware configuration of an information processing apparatus (a pattern identification apparatus <b>100</b>) according to a first embodiment of the present invention. The pattern identification apparatus <b>100</b> has functionality for extracting a specific object (an image pattern) from image data.
p-0051In <figref idrefs="DRAWINGS">FIG. 1</figref>, <b>101</b> is an image input unit, and is configured of an optical system, a photoelectric conversion device, a driver circuit that controls the photoelectric conversion device, an AD converter, a signal processing circuit that performs various types of image correction, a frame buffer, and so on. The photoelectric conversion device described here includes a CCD (Charge-Coupled Device), a CMOS (Complimentary Metal Oxide Semiconductor) sensor, or the like.
p-0052<b>102</b> is a pre-processing unit that performs various types of pre-processes that enable the extraction process to be carried out effectively. To be more specific, the pre-processing unit <b>102</b> uses hardware to perform image data conversions such as color conversion processes, contrast correction processes, and so on based on a color-conversion table, contrast correction information, and so on.
p-0053<b>103</b> is an identification processing unit, and is a hardware block that executes processes essential to implementing an information processing method according to the present embodiment. Details regarding the identification processing unit <b>103</b> shall be given later with reference to <figref idrefs="DRAWINGS">FIG. 2</figref>.
p-0054<b>106</b> is a DMAC (Direct Memory Access Controller). The DMAC <b>106</b> performs functions such as data transfer between various processing devices connected to an image bus <b>104</b>, and between the devices connected to the image bus <b>104</b> and a RAM <b>110</b> and ROM <b>109</b> connected to a CPU (Central Processing Unit) bus <b>107</b>.
p-0055<b>105</b> is a bridge that provides a bridging function for the image bus <b>104</b> and the CPU bus <b>107</b>. <b>108</b> is a CPU that controls the overall operations of the pattern identification apparatus <b>100</b>. <b>109</b> is a ROM (Read Only Memory) that stores commands that regulate the operations of the CPU <b>108</b> and data necessary for various computations.
p-0056<b>110</b> is a memory (RAM, or Random Access Memory) necessary for the operations of the CPU <b>108</b>. The RAM <b>110</b> is configured of a comparatively high-capacity memory, such as a DRAM (Dynamic RAM) or the like.
p-0057The CPU <b>108</b> is capable of accessing the various processing units connected to the image bus <b>104</b> via the bridge <b>105</b>. By separating the image bus <b>104</b> and the CPU bus <b>107</b>, it is possible to operate the various processing units (<b>101</b> to <b>103</b>) implemented through hardware and the CPU <b>108</b> simultaneously.
p-0058<b>111</b> is an interface unit, and is an input/output interface by which an operator specifies the operations of the pattern identification apparatus <b>100</b>.
p-0059<Detailed Configuration of Identification Processing Unit <b>103</b>>
p-0060<figref idrefs="DRAWINGS">FIG. 2</figref> is a diagram illustrating the details of the identification processing unit <b>103</b>. <b>201</b> is a rectangular filter computation unit that executes a predetermined rectangular filter computation process on image data <b>210</b> that is to be processed and that is stored in a RAM <b>204</b>. The RAM <b>204</b> is a memory that stores the image data <b>210</b> that is to be processed, and is configured of a high-speed, low-latency memory. <b>205</b> is a ROM, and stores parameter information <b>211</b> that specifies the computational details of each rectangular filter.
p-0061The rectangular filter computation unit <b>201</b> accesses the image data <b>210</b> in the RAM <b>204</b> in accordance with rectangular coordinate information (described later) in the parameter information <b>211</b> stored in the ROM <b>205</b>, and sequentially executes computational processing and weak classification processing using the rectangular filters generated through learning performed in advance.
p-0062<b>202</b> is a process number counter, and is configured of a counter or the like that counts the number of the rectangular filter that is currently being used for processing and the number of the stage in which the processing is currently being performed. <b>203</b> is a processing execution determination unit, and controls the rectangular filter computation unit <b>201</b> in accordance with a rectangular filter process number counter and a stage process number counter provided in the process number counter <b>202</b> as well as the presence/absence and ending conditions of the execution of a rectangular filter specified externally.
p-0063In other words, the rectangular filter specified by the processing execution determination unit <b>203</b> from the multiple rectangular filters obtained in advance through learning is used in the actual processing performed by the rectangular filter computation unit <b>201</b>.
p-0064<b>206</b> is an internal local bus for the identification processing unit <b>103</b>, and is assumed to be connected to the image bus <b>104</b> via a bridge (not shown). The CPU <b>108</b> accesses the various devices (<b>201</b> to <b>205</b>) connected to the internal local bus <b>206</b> via the bridge.
p-0065<Detailed Configuration of Rectangular Filter Computation Unit <b>201</b>>
p-0066<figref idrefs="DRAWINGS">FIG. 3</figref> is a diagram illustrating, in detail, the configuration of the rectangular filter computation unit <b>201</b>. <figref idrefs="DRAWINGS">FIG. 3</figref> corresponds to the diagram in <figref idrefs="DRAWINGS">FIG. 24</figref> that illustrates the details of <b>2401</b> to <b>240</b><i>n</i>. <b>311</b> to <b>31</b><i>k </i>are each classifiers, and the multiple rectangular filters execute the computational processes and weak classification processing in accordance with the parameter information <b>211</b> stored in the ROM <b>205</b>. <b>320</b> is a classification processing unit that performs a thresholding process, using an identification threshold, on the cumulative values of evaluation values, the evaluation values being the results of the weak classification processing performed by the respective rectangular filters <b>311</b> to <b>31</b><i>k</i>; the classification processing unit <b>320</b> then determines whether or not the extraction target object is present.
p-0067<Configuration of Parameter Information <b>211</b>>
p-0068<figref idrefs="DRAWINGS">FIG. 4</figref> is a diagram illustrating an example of parameter information <b>211</b> stored in the ROM <b>205</b>. <figref idrefs="DRAWINGS">FIG. 4</figref> illustrates an example of parameter information necessary for the processing in a single stage.
p-0069In <figref idrefs="DRAWINGS">FIG. 4</figref>, rectangular coordinates <b>402</b> indicates coordinate data of four vertices corresponding to a single rectangular block. This coordinate data corresponds to the coordinate values within the extraction target object. The rectangular coordinates <b>402</b> have coordinate data in groups corresponding to a rectangle number <b>401</b>.
p-0070A filter threshold <b>404</b> is a threshold for performing weak classification on the output of the target rectangular filter. Reliability level <b>403</b> indicates the reliability level (percent contribution) of the evaluation value that is the result obtained from the target rectangular filter. Each rectangular filter <b>311</b> to <b>31</b><i>k </i>has, as its output, a value obtained by multiplying the result of weak classification on the result of the rectangular filter computation process using the filter threshold (1 or −1) by the reliability level. An identification threshold <b>405</b> is a threshold by which the classification processing unit <b>320</b> executes an identification process.
p-0071The above parameter information <b>211</b> is stored for each of the rectangular filters (thus in <figref idrefs="DRAWINGS">FIG. 4</figref>, k pieces of parameter information <b>211</b> are stored), and is furthermore stored for each of the stages as well.
p-0072<Flow of Processing in Pattern Identification Apparatus <b>100</b>>
p-0073Hereinafter, operations performed by the pattern identification apparatus <b>100</b> according to the present embodiment shall be described in detail using the flowchart shown in <figref idrefs="DRAWINGS">FIG. 5</figref>. <figref idrefs="DRAWINGS">FIG. 5</figref> illustrates the operations of the CPU <b>108</b> and the identification processing unit <b>103</b> using a single flowchart. The flow indicated by “identification process” in <figref idrefs="DRAWINGS">FIG. 5</figref> (that is, Steps S<b>508</b> to S<b>518</b>) corresponds to the operations of the identification processing unit <b>103</b>.
p-0074First, in Step S<b>501</b>, the CPU <b>108</b> executes various initialization processes prior to commencing the identification process. The internal registers/memories of the various processing units (<b>101</b> to <b>103</b>) are initialized in accordance with initialization instructions from the CPU <b>108</b>.
p-0075Then, in Step S<b>502</b>, the rectangular filters to be used in the actual processing are specified, and the details of the rectangular filter processes to be performed in each stage are determined. To be more specific, the number of rectangular filters used in the processing are specified on a stage-by-stage basis.
p-0076In Step S<b>503</b>, the stages used for the actual processing are specified. To be more specific, the number of stages used in the processing is specified. Here, the number of rectangular filters and the number of stages used in the processing are determined in accordance with the operational clocks of the pattern identification apparatus <b>100</b>.
p-0077<figref idrefs="DRAWINGS">FIG. 6</figref> is a diagram schematically illustrating the relationship between the total number of weak classifiers (rectangular filters) and the extraction accuracy. The total number of weak classifiers indicates the sum of the weak classifiers included in each stage, whereas “misdetection” indicates the degree of mistaken detections.
p-0078As shown in <figref idrefs="DRAWINGS">FIG. 6</figref>, generally speaking, increasing the total number of weak classifiers reduces the misdetections, thereby increasing the extraction accuracy. Meanwhile, because the total number of weak classifiers can be thought of as being generally proportional to the extraction processing time, the tradeoff between the extraction process speed and the extraction accuracy can be adjusted in an extremely easy manner by controlling the total number of weak classifiers.
p-0079<figref idrefs="DRAWINGS">FIG. 7</figref> is an example of a table that associates operational blocks with the total number of weak classifiers used. In <figref idrefs="DRAWINGS">FIG. 7</figref>, N<b>1</b> to N<b>3</b> indicate the number of stages in the cases of operational clocks <b>1</b> to <b>3</b>, respectively, and S<sub>xy </sub>(x: clock type; y: stage number) indicates the number of weak classifiers within each stage.
p-0080A value that is less than or equal to the number of stages and number of weak classifiers generated through learning is set for each of N<b>1</b> to N<b>3</b> and S<sub>xy</sub>. Furthermore, TH<sub>xy </sub>(x: clock type; y: stage number) is the identification threshold for each stage. Classifiers generated using a learning algorithm with boosting perform identification using a cumulative value indicated by Equation (1).
p-0081<br />Σ<sub>i=1</sub><sup>T</sup>α<sub>i</sub>h<sub>i</sub>(x) (1)
p-0082T: number of weak classifiers; α<sub>i</sub>: reliability level of weak classifier i; h<sub>i</sub>(x): determination result for weak classifier output
p-0083Here, T is the number of weak classifiers that are actually used; in the case where the number of weak classifiers has been reduced, T is the post-reduction number. The value of T may differ from stage to stage.
p-0084α<sub>i </sub>indicates the reliability of the weak classifiers, and is a value determined through learning of the weak classifiers. α<sub>i </sub>can also be called the percent contribution of the weak classifiers with respect to the classifier.
p-0085h<sub>i</sub>(x) is an evaluation value, which is the output of the weak classifiers, and is the result of weakly classifying the output of the rectangular filters <b>2502</b><i>a </i>to <b>2502</b><i>c </i>shown in <figref idrefs="DRAWINGS">FIG. 25</figref> using a filter threshold (±1 is outputted). In the case where the number of weak classifiers has decreased, the value of T shown in Equation (1) changes compared to the value during learning, and thus it is necessary to prepare a new identification threshold Th<sub>xy </sub>for each predetermined condition. Note that the identification threshold shown in <figref idrefs="DRAWINGS">FIG. 4</figref> is used as-is in the case where the value of T is the same during learning and during execution.
p-0086The table shown in <figref idrefs="DRAWINGS">FIG. 7</figref> is created in advance using an external workstation or the like, and is stored, in advance, in the ROM <b>109</b> or the like. In other words, the table is created so that many weak classifiers are used when the operational clock is high and few weak classifiers are used when the operational clock is low.
p-0087Note that the combination of the reduction in the number of stages and the reduction of the weak classifiers within stages may be determined using a conventionally-proposed optimization method or the like. For example, a desired combination may be created in advance based on the relationship between the extraction accuracy and the extraction processing time using a test data set. It is possible to more flexibly determine the tradeoff points by setting the number of stages and the number of weak classifiers within stages independent of each other.
p-0088Furthermore, when determining the number of weak classifiers, the number of weak classifiers can be reduced while also suppressing a drop in the extraction accuracy by utilizing the reliability level of the weak classifiers. Weak classifiers with a low reliability level have little influence on the identification, and generally speaking, the reliability level drops toward the later stages. For this reason, in the case where, for example, weak classifiers are included in serially-connected classifiers and the reliability level of weak classifiers included in the latter classifiers is less than or equal to a predetermined value, a method that, for example, reduces all of the multiple classifiers may be used. Using the reliability level makes it possible to achieve an effect in that optimization becomes easy.
p-0089In Steps S<b>502</b> and S<b>503</b>, the table shown in <figref idrefs="DRAWINGS">FIG. 7</figref> is referred to, and the number of rectangular filters used in the actual processing, the number of stages, the identification threshold, and so on are set in a register (not shown) included in the processing execution determination unit <b>203</b>.
p-0090When the various settings for the identification process have ended, the image input unit <b>101</b> is activated in Step S<b>504</b>, and the pre-processing unit <b>102</b> is activated in Step S<b>506</b>. These respective units then perform the following processes.
p-0091First, the image input unit <b>101</b> stores one frame's worth of image data obtained by the photoelectric conversion device in an internal buffer (not shown).
p-0092When this storage ends, the image input unit <b>101</b> sends an interrupt to the CPU <b>108</b> indicating that the acquisition of the image data has ended. Upon detecting the interrupt, the CPU <b>108</b> activates the DMAC <b>106</b> and transfers the acquired image data to an internal memory (not shown) in the pre-processing unit <b>102</b>.
p-0093Having received the image data, the pre-processing unit <b>102</b> commences the pre-processing. To be more specific, the pre-processing unit <b>102</b> executes image data conversion processes, such as a color conversion process, a contrast correction process, and so on based on a pre-set color conversion table, contrast correction information, and the like. The pre-processing unit <b>102</b> sends an interrupt signal to the CPU <b>108</b> when the image data conversion processes end.
p-0094Next, in Step S<b>506</b>, the CPU <b>108</b> detects the interrupt signal sent by the pre-processing unit <b>102</b>, and generates Summed Area Table data (called “SAT data” hereinafter) based on the post-conversion process image data. SAT data is a data format suited to processing rectangular-type filters such as those shown in <figref idrefs="DRAWINGS">FIG. 25</figref> at high speed. Note that the SAT data is disclosed in the aforementioned Document 1, and as SAT data is not related to the features of the present invention, detailed descriptions thereof shall be omitted.
p-0095<figref idrefs="DRAWINGS">FIG. 8</figref> is a diagram illustrating a method for calculating a rectangular block from SAT data. The sum of the data within a rectangular region <b>802</b> in an input data region <b>801</b> can be calculated through the equation S<b>4</b>+S<b>1</b>−(S<b>2</b>+S<b>3</b>), using the values S<b>1</b> to S<b>4</b> of four points within the SAT data region (the same coordinate positions as the input data). By referring to the SAT data, a rectangular filter calculation process can be performed with, for example, six data reads, in the case of the rectangular filter indicated by <b>2502</b><i>a </i>in <figref idrefs="DRAWINGS">FIG. 25</figref>.
p-0096In Step S<b>507</b>, the CPU <b>108</b> transfers the generated SAT data, storing it in the RAM <b>204</b> of the identification processing unit <b>103</b> as the image data to be processed. The identification process performed by the identification processing unit <b>103</b> is commenced when this transfer of the SAT data to the RAM <b>204</b> ends.
p-0097<Flow of Identification Process in Identification Processing Unit <b>103</b>>
p-0098Hereinafter, the flow of the identification process (hardware processing) performed by the identification processing unit <b>103</b> as indicated in Steps S<b>508</b> to S<b>518</b> shall be described.
p-0099In Step S<b>508</b>, a processing block, which will be used as the unit of processing, is specified in the image data stored in the RAM <b>204</b>. The processing block is the partial image indicated by <b>2602</b> in <figref idrefs="DRAWINGS">FIG. 26</figref>; an extraction target object included in a single frame of image data is extracted by performing the extraction while scanning the window in single-pixel or single-line units.
p-0100In Step S<b>509</b>, the rectangular filter computation unit <b>201</b> reads out the parameter information <b>211</b> from the ROM <b>205</b>. Then, in Step S<b>510</b>, the rectangular filter computation unit <b>201</b> executes the rectangular filter computation process, referring to predetermined image data in the processing block. As described earlier, the rectangular filter computation process calculates a difference value for multiple rectangular filters with respect to the processing block.
p-0101Next, in Step S<b>511</b>, the output of the rectangular filter obtained in Step S<b>509</b> is compared with a rectangular filter threshold stored for that filter in the ROM <b>205</b>. In the case where the output of the rectangular filter exceeds the filter threshold, an evaluation value obtained by totaling the reliability levels of the rectangular filters is added to the cumulative value for the output of that rectangular filter.
p-0102However, in the case where the output of the rectangular filter is less than or equal to the filter threshold, the evaluation value obtained by totaling the reliability levels of the rectangular filters is subtracted from the cumulative value for the output of that rectangular filter.
p-0103When a single rectangular filter computation (weak classifier computation) process ends, the process number counter <b>202</b> updates the rectangular filter process number counter in Step S<b>512</b>.
p-0104Next, in Step S<b>513</b>, it is determined whether the rectangular filter computation process has ended for all weak classifier chains within a single stage. Here, the processing execution determination unit <b>203</b> compares the number of rectangular filters specified by in Step S<b>502</b> with the value of the rectangular filter process number counter outputted by the process number counter <b>202</b>, and determines whether or not the rectangular filter computation processes within the stage has ended.
p-0105In the case where it has been determined in Step S<b>513</b> that the rectangular filter computation processes have not ended for all of the rectangular filters, the procedure returns to Step S<b>509</b>, where the rectangular filter computation process is executed for the next filter.
p-0106Meanwhile, in the case where it has been determined in Step S<b>513</b> that the rectangular filter computation processes have ended for all rectangular filters, the procedure advances to Step S<b>514</b>, where the classification processing unit <b>320</b> identifies the cumulative value and determines whether or not to terminate the stage.
p-0107Here, it is determined whether or not an extraction target object is present in the processing block by comparing the cumulative value with the identification threshold <b>405</b> set in Step S<b>502</b>. In the case where the result of the identification performed by the classification processing unit <b>320</b> indicates that the extraction target object is not present, the identification process is terminated.
p-0108When terminating the identification process, the fact that the extraction target object is not present in that processing block (that is, that the object is not an extraction target object) is recorded in Step S<b>517</b>.
p-0109However, in the case where the result of the identification performed by the classification processing unit <b>320</b> indicates that the extraction target object is present, the procedure advances to Step S<b>515</b>, where the stage number counter of the process number counter <b>202</b> is updated.
p-0110In Step S<b>516</b>, the processing execution determination unit <b>203</b> compares the stage process number counter with the number of stages specified in Step S<b>503</b>. In the case where it is determined, based on the result of the comparison performed in Step S<b>516</b>, that the specified stage number has not been reached, the procedure returns to Step S<b>509</b>, where the rectangular filter computation processes for the next stage are commenced.
p-0111However, in the case where it is determined, based on the result of the comparison performed in Step S<b>516</b>, that the specified stage number has been reached, the procedure advances to Step S<b>517</b>, where it is recorded that the extraction target object is present in that processing block.
p-0112In Step S<b>518</b>, it is determined whether or not the identification process has been executed for all processing blocks within the image data to be processed. In the case where it has been determined that the identification process has not ended for all processing blocks within the image data to be processed, the procedure returns to Step S<b>508</b>, where a processing block adjacent by one pixel or one line is selected, and the same process is repeated thereon.
p-0113However, in the case where it has been determined in Step S<b>518</b> that the identification process has ended for all processing block in the image data to be processed, the procedure advances to Step S<b>519</b>, where it is determined whether or not to execute the identification process on the image data of the next frame. In the case where the identification process is to be executed on the image data of the next frame, the procedure returns to Step S<b>504</b>, and the processing from Step S<b>504</b> to Step S<b>518</b> is repeated. However, the processing ends in the case where it has been determined that the identification process is not to be executed on the image data of the next frame.
p-0114As described thus far, the present embodiment has a configuration in which the number of weak classifiers and the number of stages (this corresponds to a number indicating the processing order) to be used are specified in accordance with the operational clock of the pattern identification apparatus that executes the identification process. Accordingly, the pattern identification apparatus that executes the identification process does not execute a rectangular filter computation process for stages that come after the specified number of stages when carrying out the identification process.
p-0115In other words, even when the identification processing unit is installed in multiple embedded devices having different specifications, the extraction accuracy and extraction process speed can be adjusted in accordance with the operational clocks of the embedded devices by using this configuration, in which the number of weak classifiers can be controlled in accordance with the operational clock.
Second Embodiment
p-0116Although the above first embodiment describes a configuration in which the tradeoff between the extraction accuracy and the extraction process speed is adjusted by specifying the number of weak classifiers or the number of stages used, the present invention is not limited thereto. For example, a configuration in which the tradeoff between the extraction accuracy and the extraction process speed is adjusted by specifying whether or not to execute each individual weak classifier based on the reliability level may be used.
p-0117Hereinafter, the details of a pattern identification apparatus according to the present embodiment, used for adjusting the tradeoff between the extraction accuracy and the extraction process speed, shall be described. It should be noted that the hardware configuration of the pattern identification apparatus according to the present embodiment, the details of the configuration of the rectangular filter computation unit <b>201</b>, the configuration of the parameter information <b>211</b>, and so on are the same as those described in the above first embodiment, and therefore descriptions thereof shall be omitted here.
p-0118<figref idrefs="DRAWINGS">FIG. 9</figref> is a flowchart illustrating operations performed by the pattern identification apparatus <b>100</b> according to the second embodiment of the present invention. Only items that differ from those in the first embodiment shall be described here.
p-0119In Step S<b>902</b>, the weak classifiers to be used are determined. <figref idrefs="DRAWINGS">FIG. 10</figref> is a diagram schematically illustrating the relationship between the number of weak classifiers obtained using a learning algorithm with boosting and the reliability level of the corresponding weak classifiers.
p-0120Generally speaking, increasing the number of weak classifiers leads to a decrease in the corresponding reliability level of the weak classifiers, but this decrease is not constant; rather, the decrease fluctuates up and down, resulting in an average decrease.
p-0121Accordingly, in Step S<b>902</b>, when determining the weak classifiers to be used, the weak classifiers are set through classification based on a predetermined reliability level. For example, in the case shown in <figref idrefs="DRAWINGS">FIG. 10</figref>, weak classifiers having reliability levels that exceed a threshold Th are used in the actual processing, and weak classifiers less than or equal to Th are not used for the rectangular filter computation process.
p-0122By specifying the weak classifiers to be used in such a manner, it is possible to specify weak classifiers with higher reliability levels (classifiers with higher percent contribution) compared to the case of uniformly determining the weak classifiers to be used based on the number of processes, as in the first embodiment.
p-0123Here, the reliability level of a weak classifier chain generated through learning is determined, and mask information that specifies weak classifiers that fulfill predetermined conditions as “weak classifiers to be used” and specifies weak classifiers that do not fulfill predetermined conditions as “weak classifiers not to be used” is generated in advance. In other words, the “mask information” discussed here is information that denotes whether or not a weak classifier is to be used.
p-0124<figref idrefs="DRAWINGS">FIG. 11</figref> is a diagram illustrating an example of a table that associates operational clocks with the total number of weak classifiers used. In <figref idrefs="DRAWINGS">FIG. 11</figref>, N<b>1</b> to N<b>3</b> and Th<sub>xy </sub>(x: clock type; y: stage number) are the same variables as in the first embodiment. M<sub>xy </sub>(x: clock type; y: stage number) is the mask information specifying whether or not each weak classifier is to execute processing, and is expressed as a binary bit string. An example of M<sub>xy </sub>is shown below. The example shown here is for a case where whether or not each of 32 weak classifiers is to execute processing is allocated in ascending order starting with the MSB (Most Significant Bit).
p-0125<br />M11=11111111111111111010100101010000
p-0126With respect to each bit, weak classifiers to which 1 is allocated are actually used in the rectangular filter computation processes, whereas weak classifiers to which 0 is allocated are not used during the rectangular filter computation processes. For example, the first weak classifier is used in the rectangular filter computation processes, whereas the thirty-second weak classifier is not used.
p-0127In Step S<b>902</b>, a predetermined M<sub>xy </sub>is selected in accordance with the operational clock and is set in a register (not shown) in the processing execution determination unit <b>203</b>.
p-0128The processes indicated by Steps S<b>903</b> to S<b>907</b> are the same as the processes indicated by Steps S<b>703</b> to S<b>707</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>, and thus descriptions thereof shall be omitted.
p-0129Furthermore, with respect to the operations of the identification processing unit <b>103</b>, processes indicated by Steps S<b>908</b> to S<b>919</b>, only the processes that are different from those indicated by Steps S<b>708</b> to S<b>719</b> in <figref idrefs="DRAWINGS">FIG. 7</figref> shall be described.
p-0130In Step S<b>920</b>, the processing execution determination unit <b>203</b> determines the weak classifiers to be used. The processing execution determination unit <b>203</b> determines whether or not a weak classifier is to be used in the rectangular filter computation process based on the rectangular filter process number counter counted by the process number counter <b>202</b> and the mask information M<sub>xy </sub>set in Step S<b>902</b>.
p-0131In other words, the corresponding bit position in M<sub>xy </sub>is determined based on the value of the rectangular filter process number counter, and it is then determined whether the value of that bit is 0 or 1. In the case where it has been determined that the value of the bit position corresponding to the value of the rectangular filter process number counter is 1, that weak classifier is determined to be a “weak classifier to be used”, and the rectangular filter computation process and weak classification process are executed in Steps S<b>909</b> to S<b>911</b>.
p-0132In Step S<b>912</b>, the rectangular filter process number counter is updated regardless of whether or not the weak classifier was used. In Step S<b>913</b>, it is then determined whether or not the rectangular filter computation process has ended for all weak classifier chains within a single stage. This determination is carried out based on a comparison between the number of weak classifiers generated in advance through learning and the rectangular filter process number counter.
p-0133The processes in the following Steps S<b>913</b> to S<b>919</b> are the same as the processes in Steps S<b>513</b> to S<b>519</b> in <figref idrefs="DRAWINGS">FIG. 5</figref>, and thus descriptions thereof shall be omitted.
p-0134As described thus far, the present embodiment has a configuration in which the number of weak classifiers to be used is specified in accordance with the operational clock of the pattern identification apparatus that executes the identification process. Through this, even when the identification processing unit, which is implemented through hardware as a common device, is installed in multiple embedded devices having different specifications, the extraction accuracy and extraction process speed can be adjusted in accordance with the operational clocks of the embedded devices.
p-0135Furthermore, the present embodiment has a configuration in which, when specifying the weak classifiers to be used, the specification is carried out in accordance with the reliability levels of the weak classifiers. This makes it possible to suppress a drop in the extraction accuracy more so than in the above first embodiment.
Third Embodiment
p-0136Although the above first and second embodiments describe adjusting the tradeoff between the extraction accuracy and the extraction process speed by changing the number of weak classifiers to be used in accordance with the operational clock of the pattern identification apparatus, the present invention is not limited thereto. For example, the tradeoff between the extraction accuracy and the extraction process speed may be adjusted by dynamically changing the number of weak classifiers to be used in accordance with the extraction state of the extraction target object.
p-0137Hereinafter, the details of a pattern identification apparatus according to the present embodiment, used for adjusting the tradeoff between the extraction accuracy and the extraction process speed, shall be described. It should be noted that the hardware configuration of the pattern identification apparatus according to the present embodiment, the details of the configuration of the rectangular filter computation unit <b>201</b>, the configuration of the parameter information <b>211</b>, and so on are the same as those described in the above first embodiment, and therefore descriptions thereof shall be omitted here.
p-0138<figref idrefs="DRAWINGS">FIG. 12</figref> is a flowchart illustrating operations performed by a pattern identification apparatus <b>100</b> according to the third embodiment of the present invention. For the sake of simplicity, only the differences from the second embodiment shall be described hereinafter.
p-0139The processes indicated by Steps S<b>1201</b> to S<b>1220</b> are the same as the processes indicated by Steps S<b>901</b> to S<b>920</b> in <figref idrefs="DRAWINGS">FIG. 9</figref>. However, the processes in Steps S<b>1202</b>, S<b>1203</b>, and S<b>1217</b> have different processing details from those of Steps S<b>902</b>, S<b>903</b>, and S<b>917</b>, respectively, shown in <figref idrefs="DRAWINGS">FIG. 9</figref>.
p-0140In Step S<b>1221</b>, the number of extraction target objects that have been extracted in the previous frame is read out. Then, in Steps S<b>1202</b> and S<b>1203</b>, the number of weak classifiers and number of stages to be used are determined based on the number of extraction target objects in the previous frame, read out as described here. For example, in the case where the number of extraction target objects that have been extracted in the previous frame is high, the number of weak classifiers to be used is reduced.
p-0141<figref idrefs="DRAWINGS">FIG. 13</figref> is a diagram illustrating an example of a table, held by the pattern identification apparatus of the present embodiment, that associates the extracted number of extraction target objects in the previous frame with the total number of weak classifiers used. In <figref idrefs="DRAWINGS">FIG. 13</figref>, N<b>1</b> to N<b>3</b> and Th<sub>xy </sub>(x: clock type; y: stage number) and M<sub>xy </sub>(x: clock type; y: stage number) correspond to the variables indicated in <figref idrefs="DRAWINGS">FIG. 11</figref> in the second embodiment.
p-0142Three parameters, corresponding to the extracted number of extraction target objects in the previous frame, are stored in the table shown in <figref idrefs="DRAWINGS">FIG. 13</figref>. D<b>1</b> and D<b>2</b> in <figref idrefs="DRAWINGS">FIG. 13</figref> correspond to the number of extraction target objects that have been extracted. The present embodiment is configured so that the total number of weak classifiers decreases when the number of extraction target objects that have been extracted is high. Note that the table shown in <figref idrefs="DRAWINGS">FIG. 13</figref> is stored in the ROM <b>109</b>.
p-0143In Steps S<b>1202</b> and S<b>1203</b>, the number of extraction target objects that have been extracted in the previous frame (Step S<b>1221</b>) is compared with the conditions denoted in the table (D<b>1</b>, D<b>2</b>). Through this, the number of stages and so on to be used is changed.
p-0144In other words, when the number of extraction target objects has changed, the total number of weak classifiers corresponding thereto and the parameters (N<b>1</b> to N<b>3</b>, TH<sub>xy</sub>, and M<sub>xy</sub>) are set in the register in the processing execution determination unit <b>203</b> in Steps S<b>1202</b> and S<b>1203</b>.
p-0145The identification process is executed in Steps S<b>1204</b> to S<b>1220</b> in accordance with the parameters set here.
p-0146Although the processes in Steps S<b>1204</b> to S<b>1220</b> are equivalent to the processes in Steps S<b>904</b> to S<b>920</b> in the second embodiment, the present embodiment differs in that the number of extraction target objects that have been extracted is counted in Step S<b>1217</b>.
p-0147In Step S<b>1217</b>, the recorded number of extraction target objects (a post-frame processing count value) is read out and used in Step S<b>1221</b> during the identification process for the next frame. That counter is reset after its value is read out in Step S<b>1221</b>.
p-0148As described thus far, the present embodiment has a configuration in which the number of weak classifiers to be used is dynamically changed in accordance with the results of the extraction from the previous frame. Through this, a highly-accurate extraction using many weak classifiers is executed when the number of extraction target objects that have been extracted in the previous frame is low. Meanwhile, the number of weak classifiers is reduced and processing is executed with priority on the extraction process speed when the number of extraction target objects that have been extracted in the previous frame is high. As a result, a proper extraction process can be implemented even in the case where it is necessary to execute the extraction process on a moving image in real time within a predetermined amount of time.
Fourth Embodiment
p-0149Although the above third embodiment describes adjusting the tradeoff between the extraction accuracy and the extraction process speed by changing the number of weak classifiers to be used in accordance with the extraction results from the previous frame, the present invention is not limited thereto. For example, the tradeoff between the extraction accuracy and the extraction process speed may be adjusted by changing the number of weak classifiers to be used in accordance with the extraction state of the current frame being processed.
p-0150The configuration of a pattern identification apparatus according to the present embodiment shall be described hereinafter. It should be noted that the hardware configuration of the pattern identification apparatus according to the present embodiment, the details of the configuration of the rectangular filter computation unit <b>201</b>, the configuration of the parameter information <b>211</b>, and so on are the same as those described in the above first embodiment, and therefore descriptions thereof shall be omitted here.
p-0151<figref idrefs="DRAWINGS">FIG. 14</figref> is a flowchart illustrating operations performed by a pattern identification apparatus <b>100</b> according to the fourth embodiment of the present invention. For the sake of simplicity, only the differences from the third embodiment shall be described hereinafter.
p-0152The processes indicated by Steps S<b>1401</b> to S<b>1421</b> are generally equivalent to the processes indicated by Steps S<b>1201</b> to S<b>1221</b> in <figref idrefs="DRAWINGS">FIG. 12</figref>; however, in the present embodiment, the order of the processes and the processing details on Step S<b>1421</b> are different. When SAT data is stored in the RAM <b>204</b> as image data to be processed in Steps S<b>1404</b> to S<b>1407</b>, the identification process is commenced for the frame to be processed.
p-0153In Step S<b>1421</b>, the number of extraction target objects that have been extracted up until the present time is read out. The read-out value is a counter value that is incremented in Step S<b>1417</b> with each extraction of an extraction target object. Note that this counter is initialized when the first processing block in the frame is processed in Step S<b>1421</b>.
p-0154In Steps S<b>1402</b> and S<b>1403</b>, the weak classifiers to be used are determined in accordance with the read-out count value (the number of extraction target objects that have been extracted in the frame). The determination of the weak classifiers is carried out by referring to the table shown in <figref idrefs="DRAWINGS">FIG. 13</figref>, in the same manner as in the third embodiment.
p-0155In other words, it is determined whether or not a change has occurred in the conditions shown in the table, and in the case where a change has been determined to have occurred, the corresponding parameters are set in Steps S<b>1402</b> and S<b>1403</b>.
p-0156In Steps S<b>1408</b> to S<b>1418</b>, the identification process is executed on the processing block, and in the case where an extraction target object has been extracted, the counter that counts the number of extractions is updated in Step S<b>1417</b>. When the processing for the processing block, which is a partial image, ends, the number of weak classifiers to be used is re-set in Steps S<b>1421</b>, S<b>1402</b>, and S<b>1403</b>, based on the table.
p-0157As described thus far, in the present embodiment, the number of weak classifiers is re-set in processing blocks units, the processing blocks being partial images. In other words, the number of weak classifiers is dynamically changed in processing block units based on the number of extraction target objects that have been extracted in the currently-processed frame. Through this, in the case where the number of extraction target objects within the currently-processed frame has increased and there is a chance that there will be no leeway in terms of extraction processing time, it is possible to reduce the number of weak classifiers and place priority on shortening the extraction processing time when processing the subsequent processing blocks.
p-0158As a result, a proper identification process can be executed even in the case where it is necessary to execute the identification process on a moving image in real time within a predetermined amount of time.
Fifth Embodiment
p-0159Although the above first and second embodiments describe adjusting the tradeoff between the extraction accuracy and the extraction process speed by changing the number of weak classifiers to be used in accordance with the operational clock, the present invention is not limited thereto. For example, a configuration that changes the number of weak classifiers used in the processing in accordance with an image capturing mode specified by a user may be used.
p-0160Hereinafter, the details of the configuration of a pattern identification apparatus according to the present embodiment, used for adjusting the tradeoff between the extraction accuracy and the extraction process speed, shall be described. It should be noted that the hardware configuration of the pattern identification apparatus according to the present embodiment, the details of the configuration of the rectangular filter computation unit <b>201</b>, the configuration of the parameter information <b>211</b>, and so on are the same as those described in the above first embodiment, and therefore descriptions thereof shall be omitted here.
p-0161In addition, descriptions of the operation of the pattern identification apparatus <b>100</b> shall be carried out using the flowchart in the above second embodiment (<figref idrefs="DRAWINGS">FIG. 9</figref>).
p-0162With a camera, it is generally possible to set multiple image capturing modes in accordance with the subject to be shot. <figref idrefs="DRAWINGS">FIG. 15</figref> is a diagram illustrating an example of such an image capturing mode, and illustrates typical compositions used when shooting in a portrait mode, indicated by <b>15</b><i>a</i>, and a standard mode, indicated by <b>15</b><i>b. </i>
p-0163<b>1501</b> and <b>1502</b> schematically express the subjects. In the portrait mode, few subjects <b>1501</b> are shot at a comparatively large size, and the background behind the subject is blurred in the shooting (for example, the optical system of the image input unit <b>101</b> is controlled to reduce the depth of field).
p-0164It is therefore possible to predict the composition to some degree based on the image capturing mode. In other words, it is possible to predict the number of extraction target objects in the case where the subject is to be detected from the composition. For example, because the number of subjects is low and the background region is blurry in the portrait mode, the number of extraction target objects to be extracted is low.
p-0165In the present embodiment, the tradeoff between the extraction accuracy and the extraction process speed is adjusted based on this viewpoint. To be more specific, in the case where a user has specified an image capturing mode using the I/F unit <b>111</b>, the number of weak classifiers to be actually used is determined in Steps S<b>902</b> and S<b>903</b> based on the specified image capturing mode.
p-0166<figref idrefs="DRAWINGS">FIG. 16</figref> is a diagram illustrating an example of a table that associates image capturing modes with the total number of weak classifiers used; this table is used when determining the weak classifiers to be used in Steps S<b>902</b> and S<b>903</b>.
p-0167N<b>1</b> to N<b>2</b> and Th<sub>xy </sub>(x: clock type; y: stage number) and M<sub>xy </sub>(x: clock type; y: stage number) are the same as in the table described in the second embodiment (<figref idrefs="DRAWINGS">FIG. 11</figref>). In this case, N<b>1</b>>N<b>2</b>, and 1 or the like is specified for all bits in M<sub>1y</sub>.
p-0168In other words, when using the portrait mode, identification is performed using more weak classifiers (all weak classifiers generated in advance through learning), whereas the number of weak classifiers is reduced in all other cases. Note that this table is stored in the ROM <b>109</b>. In the other steps, the identification process is executed in accordance with the conditions set here. These other steps are the same as those in the second embodiment and thus descriptions thereof shall be omitted.
p-0169As described thus far, the present embodiment has a configuration in which a highly-accurate identification process using all the weak classifiers determined during learning is performed in the portrait mode, and the number of weak classifiers is reduced and a fast process is performed in the standard mode.
p-0170Through this, it is possible to control the number of weak classifiers used in accordance with the image capturing mode, and thus possible to suitably adjust the tradeoff between the extraction accuracy and the extraction process speed.
Sixth Embodiment
p-0171Although the above fifth embodiment describes a configuration in which the number of weak classifiers to be used is controlled in accordance with the image capturing mode, the present invention is not limited thereto. For example, a configuration that changes the number of weak classifiers to be used in accordance with an operational mode specified by a user may be used.
p-0172Depending on the operational mode of the image capturing apparatus, there are cases where the extraction target object is extracted in real time in parallel with the generation of image data, and cases where the extraction target object is not extracted in real time from image data that has been stored in a storage unit of the image capturing apparatus after the generation of the image data. In general, the former is called an online mode, and the latter is called an offline mode. The online mode corresponds to imaging operations, whereas the offline mode corresponds to, for example, an operational mode where some kind of editing, queries, or the like is to be performed on post-imaging image data.
p-0173For this reason, the extraction process speed is given priority in the online mode, whereas the extraction accuracy is given priority in the offline mode. In the present embodiment, the number of weak classifiers to be used is controlled in accordance with the operational mode of the pattern identification apparatus in such a manner. Note that the operations of the present embodiment shall also be described using the flowchart of the second embodiment (<figref idrefs="DRAWINGS">FIG. 9</figref>).
p-0174To be more specific, in the case where a user has specified an operational mode using the I/F unit <b>111</b>, the number of weak classifiers to be used is determined in accordance with the specified operational mode in Steps S<b>902</b> and S<b>903</b>.
p-0175<figref idrefs="DRAWINGS">FIG. 17</figref> is a diagram illustrating an example of a table that associates operational modes with the total number of weak classifiers used; this table is used when determining the weak classifiers to be used in Steps S<b>902</b> and S<b>903</b>.
p-0176N<b>1</b> to N<b>2</b> and Th<sub>xy </sub>(x: clock type; y: stage number) and M<sub>xy </sub>(x: clock type; y: stage number) are the same as in the table described in the second embodiment (<figref idrefs="DRAWINGS">FIG. 11</figref>).
p-0177In <figref idrefs="DRAWINGS">FIG. 17</figref>, parameters are set so that the identification process is performed using all the weak classifiers generated during learning when in the offline mode, and is performed with a reduced number of weak classifiers when in the online mode. Note that this table is stored in the ROM <b>109</b>. In the other steps, the identification process is executed in accordance with the conditions set here. These other steps are the same as those in the second embodiment and thus descriptions thereof shall be omitted.
p-0178As described thus far, the present embodiment has a configuration in which a highly-accurate identification process using all the weak classifiers determined during learning is performed in the offline mode, and the number of weak classifiers is reduced and a fast identification process is performed in the online mode.
p-0179Through this, it is possible to control the number of weak classifiers used in accordance with the operational mode, and thus possible to suitably adjust the tradeoff between the extraction accuracy and the extraction process speed.
Seventh Embodiment
p-0180The above first through sixth embodiments have a configuration in which the parameter information <b>211</b> that defines the operations of the weak classifier is stored in the ROM <b>205</b> when adjusting the tradeoff between the extraction accuracy and the extraction process speed. However, the present invention is not limited thereto.
p-0181In the present embodiment, a case where the parameter information that defines the operations of the weak classifiers is stored between an unchangeable storage unit (for example, a ROM) and a changeable storage unit (for example, a RAM) shall be described.
p-0182<figref idrefs="DRAWINGS">FIG. 18</figref> is a diagram schematically illustrating parameter information, stored in the ROM <b>205</b> and the RAM <b>204</b>, that defines the operations of weak classifiers, and the usage status thereof. <b>18</b><i>a </i>in <figref idrefs="DRAWINGS">FIG. 18</figref> illustrates a state where the parameter information of weak classifiers generated through learning is stored in the ROM <b>205</b>.
p-0183Each box indicates a parameter information data set that defines a single rectangular filter, stored in a predetermined region in the ROM <b>205</b>. In other words, the parameter information for a single rectangular filter indicated in <figref idrefs="DRAWINGS">FIG. 4</figref> is stored in a single box. The parameter information for multiple rectangular filters to be processed in order is stored in the order in which the boxes are arranged, starting from the left.
p-0184<b>18</b><i>b </i>in <figref idrefs="DRAWINGS">FIG. 18</figref> indicates the actual operations of the weak classifiers as described in the first embodiment. Each hashed box indicates that the rectangular filter corresponding to that box is a rectangular filter that is used in the actual processing. In this case, the number of weak classifiers (rectangular filters) is controlled by prematurely ending the chain of rectangular filters generated through learning.
p-0185<b>18</b><i>c </i>in <figref idrefs="DRAWINGS">FIG. 18</figref> indicates the actual operations of the weak classifiers as described in the second embodiment. In this case, the number of weak classifiers (rectangular filters) actually used is controlled by performing processing that skips specific rectangular filters that have low reliability levels.
p-0186The operations indicated by <b>18</b><i>d </i>and <b>18</b><i>e </i>in <figref idrefs="DRAWINGS">FIG. 18</figref> represent the features of the present embodiment. In other words, in this configuration, the parameter information for configuring the rectangular filters is held not only in the ROM <b>205</b>, but also in the RAM <b>204</b>. Furthermore, the rectangular filter computation processing is executed using the parameter information stored in the RAM <b>204</b> after a predetermined position (called a “branching point” hereinafter) or in a predetermined section.
p-0187<figref idrefs="DRAWINGS">FIG. 19</figref> is a diagram illustrating an example of a memory map for the ROM <b>205</b> and the RAM <b>204</b>, as viewed from the rectangular filter computation unit <b>201</b>. The parameter information generated in advance through learning is stored in the range from ADR<b>0</b> to (ADR<b>1</b>-<b>1</b>).
p-0188Meanwhile, the addresses from ADR<b>1</b> and on are secured by the RAM <b>204</b>, making it possible to store additional parameter information and the like for improving the performance of the pattern identification apparatus after the apparatus has been shipped. In the case where the parameter information referred to is changed from the ROM <b>205</b> to the RAM <b>204</b>, the address value of the RAM <b>204</b> region (that is, the value after ADR<b>1</b>) is set in a pointer register, which shall be described later, at this branching point.
p-0189Hereinafter, details of the present embodiment shall be described using the flowchart shown in <figref idrefs="DRAWINGS">FIG. 20</figref>. For the sake of simplicity, only the differences from the first embodiment shall be described hereinafter.
p-0190In Step S<b>2002</b>, the conditions for specifying the rectangular filter chain to use for processing are set based on the operational clock. To be more specific, the rectangular filter number at which the branch occurs (equivalent to the rectangular filter number) and the address at which the corresponding parameter information is stored are set in a register within the processing execution determination unit <b>203</b>. Note that hereinafter, the point at which parameter information is loaded from physically different storage locations shall be called a “branch”.
p-0191<figref idrefs="DRAWINGS">FIG. 21</figref> is a diagram illustrating a portion of the process execution determination unit <b>203</b> that is unique to the present embodiment. <b>2111</b> to <b>211</b><i>n </i>are pointer addresses, and make up a register that stores the starting addresses that refer to parameter information that specifies rectangular filters. <b>2121</b> to <b>212</b><i>n </i>are registers that specify branch points in the rectangular filter chain, and correspond to the numbers of the rectangular filters.
p-0192<b>2130</b> is a comparator that compares the branch point registers with a processed register counter and determines a branch point. When it has been determined that a branch point has been reached, the comparator <b>2130</b> outputs an address load signal and an address.
p-0193<b>2140</b> is a selector that selects a branch destination address, corresponding to the branch point, from the pointer addresses <b>2111</b> to <b>211</b><i>n</i>, based on the output of the comparator. In Step S<b>2002</b>, the branch point registers <b>2121</b> to <b>212</b><i>n </i>and the pointer addresses <b>2111</b> to <b>211</b><i>n </i>are set.
p-0194In the examples indicated in d or e of <figref idrefs="DRAWINGS">FIG. 18</figref>, a single branch point register and a single pointer address is set for each stage.
p-0195<figref idrefs="DRAWINGS">FIG. 22</figref> is a diagram illustrating an example of a table according to the present embodiment that associates operational clocks with the total number of weak classifiers used. In <figref idrefs="DRAWINGS">FIG. 22</figref>, N<b>1</b> to N<b>3</b> and Th<sub>xy </sub>(x: clock type; y: stage number) are the same variables as in the first embodiment.
p-0196AD<sub>xy </sub>(x: clock type; y: stage number) is pointer information specifying the branch destination address, and P<sub>xy </sub>(x: clock type; y: stage number) is the rectangular filter number at which the branch occurs.
p-0197In Step S<b>2002</b>, the stated table is referred to in accordance with the operational clock, AD<sub>y </sub>is set in the pointer addresses <b>2111</b> to <b>211</b><i>n</i>, and P<sub>xy </sub>is set in the branch point registers <b>2121</b> to <b>212</b><i>n. </i>
p-0198In the example shown in d of <figref idrefs="DRAWINGS">FIG. 18</figref>, the parameter information of the rectangular filter is furthermore added to the parameter information of the rectangular filter that has been generated in advance through learning and that has been implemented as hardware using the ROM <b>205</b>. In Step S<b>2021</b>, the parameter information of the additional rectangular filter for improving the extraction accuracy is loaded into the RAM <b>204</b>, which is the branch destination address specified in Step S<b>2002</b>.
p-0199The parameter information of this additional rectangular filter is data stored in the ROM <b>205</b> or the like, and is transferred to the RAM <b>204</b> by the CPU <b>108</b> in this step.
p-0200When the identification processing unit <b>103</b> is operating using a high-speed operational clock, there is leeway with regards to the processing time, and thus increasing the number of rectangular filters in this manner leads to an improvement in extraction accuracy.
p-0201In the example shown in e of <figref idrefs="DRAWINGS">FIG. 18</figref>, part of the parameter information of the rectangular filter generated in advance through learning and implemented as hardware using the ROM is switched. In Step S<b>2021</b>, the parameter information of an exchanged rectangular filter for improving the extraction accuracy or the extraction process speed is loaded into the RAM <b>204</b>, which is the branch destination address specified in Step S<b>2002</b>. This parameter information is data stored in the ROM <b>109</b> or the like, and is transferred to the RAM <b>204</b> by the CPU <b>108</b> in this step.
p-0202Through such a configuration, it is possible to switch part of the parameter information of a rectangular filter even if the identification processing unit <b>103</b> is implemented as hardware and the details in the ROM <b>205</b> have been finalized. The parameter information that is inserted in this switch may be parameter information newly learned so as to improve the performance, or may be parameter information newly learned in addition as a condition for restraining the extraction process speed. Accordingly, it is possible to adjust the tradeoff between the extraction accuracy and the extraction process speed by switching part of the parameter information.
p-0203In Step S<b>2003</b>, the number of stages is determined based on the operational clock. This process is the same as that in Step S<b>503</b>.
p-0204Next, in Steps S<b>2004</b> to S<b>2007</b>, the image data to be processed is transferred to the RAM <b>204</b>. In Step S<b>2008</b>, the processing block is determined, and in Step S<b>2009</b>, the readout of the parameter information is commenced.
p-0205Then, a cumulative value is calculated based on the evaluation value, which is the result of a predetermined rectangular filter computation process (Step S<b>2010</b> to Step S<b>2011</b>). In Step S<b>2012</b>, the number of rectangular filters that have been processed is updated.
p-0206In Step S<b>2020</b>, the branch of the rectangular filter chain is determined. To be more specific, this determination is carried out by comparing the filter process number counter with the specified branch point filter number using the comparator <b>2130</b> discussed earlier with reference to <figref idrefs="DRAWINGS">FIG. 21</figref>.
p-0207When a branch point has been determined, a new reference destination start address is set for the parameter information in Step S<b>2021</b>. To be more specific, the pointer address <b>2111</b> indicated in <figref idrefs="DRAWINGS">FIG. 21</figref> is loaded into a memory access address counter (not shown) in the rectangular filter computation unit <b>201</b> in accordance with an address load signal.
p-0208Thereafter, the processing is carried out while referring to the region set here for the parameter information necessary in the rectangular filter computational process. It is assumed here that the start address of the RAM <b>204</b> is stored (Step S<b>2002</b>) in the pointer address <b>2111</b>.
p-0209The rectangular filter computation unit <b>201</b> continues the processing while reading out, in order, the parameter information that specifies the rectangular filters, using the address that has been re-set here as the starting address (Steps S<b>2009</b> to S<b>2013</b>).
p-0210Note that the type, from <b>18</b><i>d </i>and <b>18</b><i>e </i>in <figref idrefs="DRAWINGS">FIG. 18</figref>, is determined based on the relationship between the number of weak classifiers generated in advance and stored in the ROM <b>205</b> and the number of weak classifiers specified for use in extraction, and thus are identical with respect to the configuration.
p-0211The following Steps S<b>2013</b> to S<b>2019</b> are the same as Steps S<b>513</b> to S<b>519</b> in the first embodiment, and thus descriptions thereof shall be omitted.
p-0212According to the present embodiment described thus far, the chain of weak classifiers can be switched with flexibility, in accordance with predetermined preconditions.
p-0213Although the present embodiment describes loading parameter information for adding to or changing the already-existing parameter information in Step S<b>2021</b>, it should be noted that the configuration may be such that the information is loaded at each stage. In such a case, the parameter information is loaded into the RAM <b>204</b> upon it being determined that a stage has ended (Step S<b>2013</b>). Because the RAM <b>204</b> is shared between stages when there are plural stages, this configuration makes it possible to implement the present embodiment with a smaller RAM <b>204</b>.
p-0214Furthermore, although the examples shown in <b>18</b><i>d </i>and <b>18</b><i>e </i>of <figref idrefs="DRAWINGS">FIG. 18</figref> illustrated a case where there is a single branching point, the branching point is not limited to a single point; plural points may be present as well. In addition, although the present embodiment discusses branching the weak classifier chain in weak classifier units within a stage, the embodiment is not limited thereto, and the configuration may be such that the branching occurs in stage units. In other words, the storage destinations of all parameter information necessary in all the rectangular filter computation processes in a specific stage may be the RAM <b>204</b>.
p-0215According to the present embodiment as described thus far, it is possible to achieve an increase in performance and tradeoff adjustment even after the identification processing unit <b>103</b> has been created as a piece of hardware. Furthermore, it is possible to implement the invention on a smaller scale than when using a configuration that holds all the parameter information in a RAM.
Eighth Embodiment
p-0216Although the above fifth and sixth embodiments describe a configuration in which the number of weak classifiers to be used is determined in accordance with the image capturing mode, the operational mode, or the like, the present invention is not limited thereto, and may be configured such that the user directly selects the extraction conditions. In such a case, the user specifies the extraction mode via the I/F unit <b>111</b>.
p-0217<figref idrefs="DRAWINGS">FIG. 23</figref> is a diagram illustrating an example of a table for determining extraction conditions in the case where there are two extraction modes. N<b>1</b> to N<b>2</b> and Th<sub>xy </sub>(x: clock type; y: stage number) and M<sub>xy </sub>(x: clock type; y: stage number) are the same as in the second embodiment. By creating such a table in advance, it is possible for the user to directly adjust the tradeoff between the extraction accuracy and the extraction process speed.
p-0218In addition, each of the above embodiments discusses applying the method disclosed in Document 1 to the present invention, but the present invention is not limited thereto. The present invention can be applied to various identification processes that carry out identification based on multiple cascade-connected weak classifiers can be applied as well.
p-0219In addition, each of the above embodiments discusses using rectangular filters as the weak classifiers, but the present invention is not limited thereto, and can be applied to other various weak classifiers as well.
p-0220Moreover, while each of the above embodiments discusses changing the number of stages and the number of rectangular filters within stages, the present invention is not limited thereto. The configuration may be such that the number of stages is fixed and only the number of weak classifiers within a stage is changed. Also, depending on the algorithm, there are also cases where there is only one stage, but the present invention can be applied in such a scheme as well.
p-0221In addition, while each of the above embodiments describes a case in which a specific object is extracted from image data, the present invention is not limited thereto; it is also possible to apply the present invention to a device that identifies a specific object (a pattern) from a one-dimensional signal such as an audio signal.
p-0222Furthermore, although the above second embodiment describes a configuration in which mask information that specifies the weak classifiers to be used in advance is created based on the reliability level, the present invention is not limited thereto. For example, the configuration may be such that a reliability level threshold is directly set in the processing execution determination unit <b>203</b>, rather than the mask information M<sub>xy </sub>shown in <figref idrefs="DRAWINGS">FIG. 11</figref> being set in the processing execution determination unit <b>203</b>. Furthermore, the configuration may be such that the reliability level of the parameter information and the reliability level that is set are compared each time in Step S<b>902</b>, and it is determined whether or not to use the corresponding rectangular filter.
p-0223Finally, although each of the above embodiments describes the identification processing unit <b>103</b> as being implemented as a hardware device, it should be noted that the configuration may be such that the identification processing unit <b>103</b> is implemented as software using a DSP (Digital Signal Processor) or the like.
Other Embodiments
p-0224The present invention may be applied to a system configured of a plurality of devices (e.g., a host computer, an interface device, a reader, a printer, and so on) or to an apparatus configured of a single device (e.g., a copy machine, a facsimile device, and so on).
p-0225Furthermore, it goes without saying that the object of the present invention can also be achieved by supplying, to a system or apparatus, a storage medium in which the program code for software that realizes the functions of the aforementioned embodiments has been stored. In this case, the program code stored in the recording medium is loaded and executed by a computer (or CPU or MPU) of the system or apparatus, whereby the foregoing functions are achieved. Note that in such a case, the present invention is configured of the storage medium in which the program code is stored.
p-0226Examples of the recording medium that can be used to supply the program code include floppy (registered trademark) disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tape, non-volatile memory cards, and ROMs.
p-0227However, the invention is not intended to be limited to the case where the functions of the aforementioned embodiments are implemented by a computer reading out the program code and executing the program code. It goes without saying that the present invention also includes the case where, for example, the OS (operating system) running on the computer performs part or all of the actual processing based on the instructions of the program code, and the functions of the above-described embodiments are implemented by that processing.
p-0228Furthermore, the case where the functions of the aforementioned embodiments are implemented after the program code read out from the recording medium has been written into a memory provided in a function expansion board installed in the computer or a function expansion unit connected to the computer is also included. That is, after the program code has been written into a memory, a CPU or the like included in the function expansion board or the function expansion unit performs part or all of the actual processing based on the instructions of the program code, and the functions are implemented by that processing.
p-0229While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
p-0230This application claims the benefit of Japanese Application No. 2007-285401 filed on Nov. 1, 2007, which is hereby incorporated by reference herein in its entirety.
Contents5
23 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2011150341A1 | Cited by | United States of America | Pre-grant |
| US8700860B2 | Cited by | United States of America | Applicant |
| US9020211B2 | Cited by | United States of America | Search report |
| US9014483B2 | Cited by | United States of America | Applicant |
| US2011091115A1 | Cited by | United States of America | Pre-grant |
| US8849035B2 | Cited by | United States of America | Applicant |
| US8515180B2 | Cited by | United States of America | Applicant |
| US2012297169A1 | Cited by | United States of America | Pre-grant |
| US2011093667A1 | Cited by | United States of America | Pre-grant |
| US8615135B2 | Cited by | United States of America | Applicant |
| US2011091113A1 | Cited by | United States of America | Pre-grant |
| US8594432B2 | Cited by | United States of America | Applicant |
| US2010329565A1 | Cited by | United States of America | Pre-grant |
| US9053388B2 | Cited by | United States of America | Applicant |
| US2011158542A1 | Cited by | United States of America | Pre-grant |
| US2011058741A1 | Cited by | United States of America | Pre-grant |
| US8873112B2 | Cited by | United States of America | Applicant |
| US9754174B2 | Cited by | United States of America | Applicant |
| US2006228005A1 | Cites | United States of America | Pre-grant |
| US2009157707A1 | Cites | United States of America | Pre-grant |
| US5508823A | Cites | United States of America | Pre-grant |
| US7699423B2 | Cites | United States of America | Pre-grant |
| US7835541B2 | Cites | United States of America | Pre-grant |
| US7876965B2 | Cites | United States of America | Pre-grant |
| US7881524B2 | Cites | United States of America | Pre-grant |
| US8155396B2 | Cites | United States of America | Pre-grant |
7 members in 4 offices
Priority claims8
| Document | Office | Kind | Date |
|---|---|---|---|
| 2007285401 | Japan | A | |
| 2007285401 | Japan | A | |
| 2008070158 | Japan | W | |
| 2008070158 | Japan | W | |
| 2007285401 | – | – | – |
| JP20070285401 | – | – | – |
| PCTJP2008070158 | – | – | – |
| WO2008JP70158 | – | – | – |
Members7
| Document | Office | Kind | |
|---|---|---|---|
| WO2009057815A1 | World Intellectual Property Organization (WIPO) | A1 | |
| JP2009116400A | Japan | A | |
| US2010209010A1 | United States of America | A1 | |
| CN101842809A | China | A | |
| CN101842809B | China | B | |
| JP5101993B2 | Japan | B2 | |
| US8655057B2 | United States of America | B2 |
52 transactions on the USPTO file
Allowed after 1 non-final rejection and 1 RCE.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Maintenance Fee Reminder MailedREM. | REM. | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Miscellaneous Communication to ApplicantMM327 | MM327 | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Reasons for AllowanceEX.R | EX.R | |
| Miscellaneous Communication to Applicant - No Action CountM327 | M327 | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Sent to Classification ContractorPGPC | PGPC | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Notice of DO/EO Acceptance MailedM903 | M903 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Cleared by OIPE CSRL194 | L194 | |
| Request for Foreign Priority (Priority Papers May Be Included)RQPR | RQPR | |
| Preliminary AmendmentA.PE | A.PE | |
| 371 Completion Date371COMP | 371COMP | |
| Initial Exam Team nnIEXX | IEXX |
9 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 20100209010
- Publication, DOCDB
- 2010209010
- Publication, EPODOC
- US2010209010
- Application
- 12682028
- Application, DOCDB
- 68202808
- Application, EPODOC
- US20080682028
Titles
- English
- INFORMATION PROCESSING APPARATUS AND INFORMATION PROCESSING METHOD
Patent term adjustment
- A delay
- +436 daysthe office missed an examination deadline
- B delay
- +105 dayspendency past three years
- Applicant delay
- −91 days
- Net adjustment
- 450 days
Classification
- CPC, 3
- G06V10/7747
- G06V10/94
- G06F18/2148
- IPC, 1
- G06K9 68
- USPC, 1
- 382226000