WO2012032747A1 - 特徴点選択システム、特徴点選択方法および特徴点選択プログラム - Google Patents

特徴点選択システム、特徴点選択方法および特徴点選択プログラム Download PDF

Info

Publication number
WO2012032747A1
WO2012032747A1 PCT/JP2011/004917 JP2011004917W WO2012032747A1 WO 2012032747 A1 WO2012032747 A1 WO 2012032747A1 JP 2011004917 W JP2011004917 W JP 2011004917W WO 2012032747 A1 WO2012032747 A1 WO 2012032747A1
Authority
WO
WIPO (PCT)
Prior art keywords
feature point
point set
feature
recognition error
recognition
Prior art date
Application number
PCT/JP2011/004917
Other languages
English (en)
French (fr)
Inventor
石山 塁
秀堅 本谷
文彦 坂上
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2012532853A priority Critical patent/JPWO2012032747A1/ja
Publication of WO2012032747A1 publication Critical patent/WO2012032747A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries

Definitions

  • the present invention relates to a feature point selection system, a feature point selection method, and a feature point selection program for selecting a preferred feature point from a plurality of feature points on a three-dimensional shape model.
  • the process of recognizing the object shown in the image and the state of the object is called a recognition task.
  • the recognition task there is a process of estimating the orientation (hereinafter referred to as posture) of an individual from the image of the individual (for example, a human face) or identifying the individual.
  • An example of a recognition task will be shown taking object posture estimation as an example.
  • the three-dimensional position of the feature point in the three-dimensional shape model of the object is stored in advance. In general, in a system in which an individual to be recognized is newly registered after the system is operated, the feature point position is common to all individuals.
  • the position of the feature point is detected from the image to be recognized (in this example, the image representing the object whose posture is to be estimated), and is associated with the three-dimensional position of the feature point stored in advance. . Then, the posture of the object is estimated from the correspondence between the position of the feature point in the recognition target image and the position of the feature point on the three-dimensional shape model.
  • a method for estimating the posture of an object from this correspondence is known as a method for solving a perspective n-point problem.
  • the feature points on the three-dimensional shape model stored in advance are part of the recognition target object, and it is easy to specify the position in the image.
  • the position of the part was determined manually in consideration of the fact that it was considered important.
  • the manual feature point determination will be described in more detail.
  • recognition algorithms such as posture estimation can improve recognition performance as the number of feature points used increases.
  • the calculation amount of the recognition task increases.
  • the amount of calculation for extracting feature points from the recognition target image increases. Therefore, it is practically important to reduce the number of feature points.
  • first condition it is necessary that the feature point is an important feature in the recognition task (in other words, it has a great influence on accuracy).
  • second condition it is necessary that the feature point can be accurately extracted from the image.
  • feature points that satisfy both the first condition and the second condition are manually determined from points on the three-dimensional shape model.
  • Non-Patent Document 1 describes a method for generating feature points based on entropy.
  • the definition of the feature points used for the recognition task has been determined manually.
  • the feature point extraction from the recognition target image is performed by cutting out each part from the recognition target image and comparing it with a previously learned determination pattern, and determining the position determined to be the most characteristic point as the feature point position. To do.
  • Non-Patent Document 2 describes a technique for extracting feature points necessary for obtaining corresponding points between images using a SIFT (Scale-Invariant Feature Transform) algorithm.
  • SIFT Scale-Invariant Feature Transform
  • the SIFT algorithm enables block detection by multi-resolution analysis and correlation between images using a grayscale histogram.
  • feature amounts of feature points are also calculated.
  • the feature amount of the pattern for determination given in learning is stored in advance, and it is determined whether it is a feature point by comparing it with the feature amount of the feature point extracted from the recognition target image, and its position is extracted. can do.
  • Non-Patent Document 3 describes using generalized learning vector quantization (GLVQ: GeneralizedGeneralLearning Vector Quantization).
  • GLVQ GeneralizedGeneralLearning Vector Quantization
  • face pattern detection is performed, but if a pattern is replaced with a feature point from the face, the feature point can be detected.
  • SVM Small Vector Vector Machine
  • the appearance of the feature points represented on the recognition target image changes depending on the posture of the object and the lighting conditions.
  • the importance in the first condition and the accuracy of feature point extraction in the second condition are the type of recognition object (shape and appearance), the characteristics of the method for extracting feature points from the image, the recognition task (posture estimation and individual This depends on various factors such as the characteristics of the technique used for identification and the like, and the shooting conditions of the recognition target image. For this reason, it is difficult to quantify the importance in the first condition and the accuracy of feature point extraction in the second condition until a system for performing a recognition task is created and operated. For this reason, system developers have subjectively estimated such importance and accuracy. Therefore, it is difficult for an experienced developer to select an appropriate feature point that satisfies the first and second conditions from the three-dimensional shape model, and the recognition task algorithm itself has the maximum capability. It was difficult to obtain recognition performance.
  • the following method can be considered as a feature point selection method. That is, when a three-dimensional shape model and a plurality of feature point candidates on the three-dimensional shape model are specified, a learning image used for learning determination data in the feature point extractor is recognized from the three-dimensional shape model, An evaluation image used for task evaluation is generated. Then, a local region corresponding to the feature point and a local region not corresponding to the feature point are cut out from the learning image, and the determination data is learned using the local region corresponding to the feature point and the local region not corresponding to the feature point. Further, the feature point position is extracted from the evaluation image using the determination data obtained by learning. Based on the feature point position, a function (cost function) that represents the recognition error when the recognition task is executed is calculated, and the feature point whose function value is reduced is selected from the extracted feature point positions. select. By this method, a feature point is obtained.
  • a set of feature points that reduce the recognition error is selected, and further, the number of feature points to be selected is reduced from the set of feature points (in other words, (Excluding some feature points), a method of repeatedly selecting a set of feature points with a small recognition error is conceivable. In this way, a method of sequentially reducing the number of feature points to the number of feature points to be finally selected and selecting the number of feature points to be finally selected can be considered. Furthermore, it is conceivable to predict a recognition error when some feature points are excluded from a set of feature points.
  • the initial stage of optimization of the feature point set ie, selecting
  • the appropriate feature points may be excluded, and the feature points may be sequentially reduced while the appropriate feature points are excluded. For example, if there are many points with relatively low importance, the feature points that cannot be evaluated with high importance will differ in the importance of feature points at the initial stage of optimization. Is difficult to appear, and it may be difficult to select and may be excluded. Then, when the number of feature points to be finally selected is selected, feature points that cannot be evaluated with high importance in the initial stage are leaked from the set of feature points.
  • the present invention can select an appropriate feature point suitable for the recognition algorithm in the recognition task, and an important feature point (a feature point that affects the accuracy of the recognition task) can be selected from the finally selected feature points. It is an object of the present invention to provide a feature point selection system, a feature point selection method, and a feature point selection program that can prevent leakage from a set.
  • the feature point selection system is a feature point set that is a set of feature points from a feature point candidate that is a set of points that are candidate feature points suitable for a recognition task, and has a feature number of features that are determined.
  • a recognition task is executed using feature points included in the feature point set for each feature point set selecting means for selecting a plurality of feature point sets including points, and for each feature point set selected by the feature point set selecting means
  • the recognition error calculation means for calculating the recognition error and the minimum value of the recognition error for each feature point set selected by the feature point set selection means is larger than the recognition error when the recognition task is executed using the feature point candidates
  • calculate the reciprocal of the exponential function of the recognition error increase from the recognition error when the recognition task is executed using the feature point candidates, and Select a feature point set according to the feature, update the number of feature points when the feature point set selection means selects the feature point set, and feature points suitable for the recognition task when a predetermined condition is met
  • a feature point selection unit that determines feature
  • the feature point selection method is a feature point set that is a set of feature points from a feature point candidate that is a set of feature points suitable for a recognition task, and has a predetermined number of feature points.
  • Select a plurality of feature point sets that include the feature point calculate the recognition error when executing the recognition task using the feature points included in the feature point set for each selected feature point set, and select the selected feature point set
  • Recognition error when executing a recognition task using feature point candidates for each feature point set when the minimum recognition error for each feature is greater than the recognition error when executing the recognition task using feature point candidates
  • a predetermined condition is satisfied, a feature point suitable for the recognition task is selected, and when one feature point set is selected, a feature point candidate is determined based on the feature point set, and the feature point set is again set. It is characterized in
  • a feature point selection program is a feature point set that is a set of feature points from a feature point candidate that is a set of points that are candidates for feature points suitable for a recognition task. For each feature point set selected by the feature point set selection process and feature point set selection process for selecting a plurality of feature point sets including the feature points of the number of feature points, a recognition task is performed using the feature points included in the feature point set.
  • the recognition error calculation process for calculating the recognition error when executed, and the minimum value of the recognition error for each feature point set selected by the feature point set selection process when the recognition task is executed using the feature point candidates
  • the recognition error is larger than the recognition error
  • the reciprocal of the exponential function of the recognition error increase from the recognition error when the recognition task is executed using the feature point candidate for each feature point set
  • select one feature point set according to the magnitude of the result of the calculation update the number of feature points when selecting the feature point set in the feature point set selection process, and the predetermined condition is met
  • the feature point set selection process performs a feature based on the feature point set.
  • a feature is that point candidates are determined and a plurality of feature point sets are selected again.
  • the present invention it is possible to select an appropriate feature point suitable for the recognition algorithm in the recognition task, and it is possible to prevent an important feature point from leaking from the finally selected set of feature points.
  • the process of selecting the feature point set is an explanatory view schematically showing.
  • FIG. 1 is a block diagram illustrating an example of a feature point selection system according to the first embodiment of this invention.
  • the feature point selection system according to the first embodiment includes a feature point extraction learning / evaluation data generation unit 41 (hereinafter referred to as a special extraction learning / evaluation data generation unit 41), a feature point extractor learning unit 45, and a feature.
  • a point position detection unit 46, a feature point set selection unit 51, a recognition error calculation unit 52, and a feature point selection unit 53 are provided.
  • the special lottery learning / evaluation data generation unit 41 includes a learning data generation unit 42, a learning pattern generation unit 43, and an evaluation data generation unit 44.
  • Special lottery learning / evaluation data generation means 41 receives a 3D shape model, information specifying a plurality of feature points on the 3D shape model, and the size of a template (local region) used in the recognition task.
  • the size of the template is referred to as a template size. It is assumed that a texture is pasted on the 3D shape model.
  • the special extraction learning / evaluation data generation means 41 generates images (learning data and evaluation data) obtained by variously changing the orientation (orientation) of the input 3D shape model, the position of illumination with respect to the 3D shape model, and the like. ) Generate as an image.
  • the feature point extractor determines whether the pattern is a feature point. Further, the feature point extractor learns internal data for performing such determination in advance.
  • Various pattern identification methods and feature extraction operators can be used for the feature point extractor.
  • the SIFT feature value described in Non-Patent Document 2 can be used.
  • the SIFT feature extraction operator is applied to the position corresponding to the feature point of the learning data to extract the SIFT feature amount.
  • the SIFT feature value is stored as internal data.
  • a SIFT feature value is extracted from the image, and internal data is compared to determine whether the template corresponds to a feature point.
  • a pattern identification method such as GLVQ described in Non-Patent Document 3 can be used. In this embodiment, these methods will be described in detail.
  • a plurality of templates corresponding to feature points and a template not corresponding to feature points are input, and internal data is generated from the templates. Then, when a template is input in a recognition task or the like, the feature point extractor determines whether or not the template corresponds to a feature point by comparing it with internal data.
  • An image used by the feature point extractor to extract a template for learning internal data is referred to as learning data. Further, an image prepared for evaluating whether or not the feature point extractor after the internal data learning appropriately performs the determination on the input template is referred to as evaluation data.
  • the learning data generating means 42 of the special lottery learning / evaluation data generating means 41 generates the above learning data.
  • the evaluation data generation means 44 of the special lottery learning / evaluation data generation means 41 generates the above-described evaluation data.
  • Each of the learning data generation means 42 and the evaluation data generation means 44 generates an image in which the posture (orientation) of the 3D shape model, the position of illumination with respect to the 3D shape model, and the like are variously changed as a CG (Computer Graphics) image. .
  • CG Computer Graphics
  • the learning data generation means 42 and the evaluation data generation means 44 perform CG images (learning data and evaluation data) by performing the same processing except that the conditions at the time of image generation are different. A plurality of learning data and evaluation data may be generated.
  • the learning data generating means 42 specifies a feature point corresponding to the feature point designated by the input information from the learning data.
  • the evaluation data generation unit 44 specifies a feature point corresponding to the feature point specified by the input information from the evaluation data.
  • the learning pattern generation unit 43 of the special extraction learning / evaluation data generation unit 41 cuts out a plurality of templates corresponding to feature points and a plurality of templates not corresponding to feature points from the learning data.
  • a template corresponding to a feature point a plurality of templates determined by the template size may be cut out from the learning data with the feature point in the learning data or a point in the vicinity thereof as the center.
  • a template that does not correspond to a feature point a plurality of templates that are centered on points around the feature point and do not include the feature point may be cut out from the learning data.
  • the feature point specified by the learning data generation unit 42 may be used as the feature point in the learning data.
  • Feature point extractor learning means 45 learns internal data of the feature point extractor. That is, internal data of a feature point extractor for determining whether or not a given pattern is a feature point is generated.
  • the feature point extractor learning means 45 learns internal data with reference to a plurality of templates corresponding to feature points and a plurality of templates not corresponding to feature points.
  • the feature point position detection means 46 extracts the position of the feature point from the evaluation data generated by the evaluation data generation means 44 using the internal data learned by the feature point extractor learning means 45, and obtains the feature point position information. Input to the feature point set selection means 51. Specifically, the feature point position detection unit 46 cuts out a template size image for determining whether or not the feature point extractor is a feature point from each position of the evaluation data. Then, by using the internal data learned by the feature point extractor learning means 45, it is determined whether the feature point is present by determining whether the image of the template size corresponds to the feature point.
  • the optimum feature point set is determined from the feature point group at the feature point position determined by the feature point position detecting means 46. Note that the number of feature points specified at the time of inputting the 3D shape model and the number of feature points at the feature point positions determined by the feature point position detecting means 46 are the same.
  • the feature point group at the feature point position determined by the feature point position detecting unit 46 may be referred to as an initial feature point candidate.
  • the feature point set selection means 51 uses the feature point group at the feature point position determined by the feature point position detection means 46 as a feature point candidate, and selects some feature points from the feature point candidates. A plurality of feature points selected from the feature point candidates are referred to as a feature point set. When the number of feature points to be included in the feature point set is determined, the feature point set selection unit 51 selects not only one set of feature point sets including the number of feature points but also various ways that can be selected.
  • the recognition error calculation unit 52 calculates a recognition error when executing the recognition task for each feature point set determined by the feature point set selection unit 51 using the position of the feature point included in the feature point set.
  • the type of recognition task is not particularly limited.
  • the recognition error calculation unit 52 may perform posture estimation or individual identification such as face identification as a recognition task. Further, for example, facial expression recognition processing (facial expression estimation) or age estimation processing for a face image may be performed as a recognition task.
  • the recognition error calculation means 52 is realized by a CPU of a computer that executes a recognition task, for example. Further, a process in which the feature point extractor learning unit 45 learns internal data, and a process in which the recognition error calculation unit 52 compares the template with the internal data to determine whether the template corresponds to a feature point. This is an operation as a feature point extractor.
  • the feature point extractor learning unit 45 and the recognition error calculation unit 52 are realized by a CPU of a computer that operates as a feature point extractor used in a recognition task, for example.
  • the recognition error calculation means 52 also performs a process for obtaining a recognition error caused by the recognition result of the recognition task every time the recognition task is performed using the feature point set.
  • the recognition error is the difference between the recognition result obtained in the recognition task and the correct answer.
  • the recognition error calculation means 52 determines the difference between the posture (orientation) obtained as a result of posture estimation using the feature point set for the evaluation data and the correct posture. May be calculated as a recognition error.
  • face recognition is performed as a recognition task, information specifying a 3D shape model and a plurality of feature points on the 3D shape model is input for a plurality of persons, and evaluation data for each person is created. Then, as a result of performing face recognition on the evaluation data using the feature point set, the ratio of persons who failed to recognize the face may be calculated as a recognition error.
  • the feature point selection means 53 determines one feature point set from among the feature point sets determined by the feature point set using the recognition error of each feature point set.
  • the feature point set selection unit 51 selects one feature point from the feature point candidates by using one feature point set determined by the feature point selection unit 53 as a feature point candidate. That is, a feature point set is selected. Also at this time, the feature point set selection means 51 selects not only one set of feature point sets but also various ways that can be selected.
  • the feature point set selection unit 51 selects a plurality of feature point sets
  • the recognition error calculation unit 52 calculates a recognition error for each feature point set
  • the feature point selection unit 53 selects the plurality of feature point sets. The selection of one feature point set is repeated. Then, when the feature point selection means 53 selects one feature point set from a plurality of feature point sets, if the number of feature points included in the feature point set finally becomes the number of feature points desired by the user, The feature point selection means 53 determines a feature point group included in the feature point set as an appropriate feature point that matches the recognition algorithm in the recognition task.
  • the above repeating process corresponds to the repeating process of steps S21 to S26 (see FIG. 3) described later.
  • the feature point selection unit 51 next selects the feature point set when selecting the feature point set. Determine the number of feature points to include in the set. For example, when one feature point set is selected from a plurality of feature point sets, the feature point set selection unit 51 then uses a value obtained by subtracting a certain number from the number of feature points included in the feature point set. Determined as the number of feature points to include in the point set. A certain number of values to be subtracted may be determined in advance.
  • the feature point set selection unit 51 is not included in the feature point set for one feature point set selected by the feature point selection unit 53 with a certain probability, but is included in the initial feature point candidates. Include feature points. For example, feature points included in the initial feature point candidates may be added to one feature point set selected by the feature point selection unit 53. Alternatively, some feature points in one feature point set selected by the feature point selection unit 53 may be replaced with feature points included in the initial feature point candidates. For example, the number of feature points to be newly included with a certain probability for one feature point set selected by the feature point selection unit 53 may be determined in advance.
  • the feature point is included in the feature point set selected by the feature point selecting unit 53.
  • the feature points to be replaced may be selected at random.
  • the feature point set selecting unit 51 includes the feature point including the feature point. A part of the feature point group is selected from the set as a feature point set. In the following description, a case where the feature point set selecting unit 51 adds feature points with a certain probability to one feature point set selected by the feature point selecting unit 53 will be described as an example.
  • the feature point selection unit 53 selects one feature point set from a plurality of feature point sets including 90 feature points, and then the feature point set selection unit 51 selects the feature point set. , It is determined that a feature point including 89 feature points is selected.
  • the feature point set selection means 51 may select each feature point set consisting of 89 feature points from the one feature point set (the number of feature points is 90). However, the feature point set selection unit 51 does not perform such an operation every time, but with a certain probability, the feature point set selection unit 51 performs initial feature points on one feature point set (the number of feature points is 90 in the above example). Feature points randomly selected from the candidates (for example, five feature points) are added.
  • the feature point set selecting unit 51 sets the feature point set after adding the feature points (in this example, a feature point set including 95 feature points) as feature point candidates, and from among the feature point candidates, Then, a part of the feature point group is selected as a feature point set.
  • the feature point selecting unit 53 sets the next feature point.
  • the number determined as the number of feature points at the time of selecting a set may be increased.
  • the increase in the number of feature points may be determined in advance, for example.
  • the feature point set selection unit 51 sets the feature point selection unit 53.
  • the number of feature points determined by (89) is also increased to 92, for example, and a feature point set including 92 feature points may be selected from 95 feature point candidates.
  • the feature point selecting unit 53 selects the feature when the next feature point set is selected.
  • a case where the number determined as the score is also increased will be described as an example.
  • the feature point set selection means 51 may determine whether or not to add a feature point to the selected feature point set as follows. For example, if the above “fixed probability” is K (0 ⁇ K ⁇ 1), the feature point set selection unit 51 generates a random number in a range greater than 0 and less than 1, and the value is less than K. If there is, a feature point may be added to one feature point set selected by the feature point selection unit 53, and the feature point set after the feature point addition may be used as a new feature point candidate. If the generated random number is a value larger than K, one feature point set selected by the feature point selection means 53 may be used as a new feature point candidate as it is. Note that the method using random numbers in this way is an example of a method of adding feature points with a certain probability to the feature point set selected by the feature point selection means 53, and other methods may be used.
  • the feature point set selecting unit 51, the recognition error calculating unit 52, and the feature point selecting unit 53 perform an iterative process, and the feature point selecting unit 53 selects one feature point set from a plurality of feature point sets.
  • the feature point selection unit 53 identifies the feature point group included in the feature point set as a recognition task. It has been explained that it is determined as an appropriate feature point that matches the recognition algorithm.
  • the feature point set selection unit 51 selects the number of feature points desired by the user from among the feature point group at the feature point position determined by the feature point position detection unit 46 when selecting a plurality of feature point sets for the first time. You may select as each feature point set which can choose.
  • the number of feature point sets that can be selected becomes enormous.
  • the number of initial feature point candidates is N and the user's desired number of feature points is M
  • the number of feature point sets that can be selected is N C M.
  • M is smaller than N
  • the value of N C M becomes enormous, making it difficult to determine the optimum number of feature points desired by the user in a realistic calculation time. Therefore, as described above, it is preferable to select a feature point set from the initial feature point candidates while gradually reducing the number of feature points to determine a desired number of feature points of the user.
  • the feature point selection unit 53 selects a feature point set consisting of a certain number of feature points
  • the feature point set selection unit 51 can select a feature point set including a certain number of feature points. Select.
  • the minimum recognition error is the recognition error when the recognition task is performed using the feature point set previously selected by the feature point selection unit 53 (when the feature point selection unit 53 selects the feature point set for the first time).
  • the feature point set is selected as follows. That is, the recognition error increment a i is obtained for each feature point set i.
  • the recognition error increment a i is recognized when the recognition task is performed using the feature point set previously selected by the feature point selection unit 53 based on the recognition error when the recognition task is performed using the feature point set i. This is a value obtained by subtracting an error (a recognition error when a recognition task is performed using an initial feature point candidate when the feature point selection unit 53 selects a feature point set for the first time). Then, the feature point selection means 53 calculates a value P i calculated by the following equation (1) using the recognition error increment a i obtained for each feature point set i.
  • P i is the reciprocal of the exponential function of the recognition error increase amount a i .
  • this Pi is a predetermined number times the selection probability of the feature point set i.
  • the feature point selection unit 53 selects one feature point set.
  • Figure 2 is a probability that the feature point selection unit 53 according to P i for each feature point set, the process of selecting the feature point set is an explanatory view schematically showing.
  • the feature point selection unit 53 generates a random number in a range greater than 0 and less than or equal to P 1 + P 2 + P 3 .
  • the feature point selection unit 53 selects a feature point set 1 if the random number value is greater P 1 or less than 0, the random number value is the feature point set 2 if large P 1 + P 2 less than P 1 selected, random number if greater P 1 + P 2 + P 3 or less than P 1 + P 2, selects a feature point set 3.
  • the feature point selection unit 53 likely to be selected as the value of P i is large, it selects one under the condition, a feature point set that difficult to be selected as the value of P i is small.
  • a case where random numbers are used has been described as an example, but a feature point set may be selected by another method.
  • ⁇ P i is the total sum of P i calculated for each feature point set.
  • the value of T in equation (1) is, for example, the number of times that the feature point selection unit 53 selects a feature point set increases, and the number of feature points included in the selected feature point set is the final value. In particular, it may be reduced as the number of feature points desired by the user approaches.
  • the value of T when the feature point selection unit 53 selects the feature point set is the tth time is represented as T t .
  • T t + 1 when the number of times that the feature point selection unit 53 selects the feature point set is t + 1 is obtained by the following equation (2).
  • is a constant of 1 or less, and particularly preferably less than 1. Specifically, ⁇ is preferably a constant of about 0.8 to 0.9.
  • variable T corresponds to the temperature in the optimization by simulated annealing (here, the optimization of the feature point set), and hereinafter, the variable T may be referred to as temperature.
  • the expression (2) corresponds to a cooling function in optimization by simulated annealing, and hereinafter, the expression (2) may be referred to as a cooling function.
  • the feature point selection unit 53 determines whether the number of feature points included in the feature point set selected by the feature point set selection unit 51 is large, if the temperature T is high, the possibility of selecting an inappropriate feature point becomes too high. Therefore, until the number of feature points included in the feature point set selected by the feature point set selection unit 51 is reduced to some extent (that is, until the number of feature points becomes smaller than a predetermined threshold), the feature point selection unit 53 The feature point set that minimizes the recognition error is selected even when the recognition error is larger than the recognition error when the feature point selection unit 53 performs the recognition task using the feature point set selected last time. It is preferable.
  • the number of feature points included in the feature point set selected by the feature point set selection unit 51 is smaller than the threshold, and the minimum recognition error is recognized using the feature point set previously selected by the feature point selection unit 53. If the recognition error is greater than when performing a task, with a probability corresponding to P i of each feature point set, it is preferable to select one feature point set. If the minimum recognition error is equal to or less than the recognition error when the feature point selection unit 53 performs the recognition task using the feature point set selected last time, the feature point selection unit 53 causes the feature point to minimize the recognition error. Select a set.
  • Special extraction / evaluation data generation means 41 (learning data generation means 42, learning pattern generation means 43 and evaluation data generation means 44), feature point extractor learning means 45, feature point position detection means 46, feature point set selection means 51
  • the recognition error calculation unit 52 and the feature point selection unit 53 are realized by a CPU of a computer that operates according to a feature point selection program, for example.
  • the CPU may read a feature point selection program from a storage device (not shown) of the feature point selection system, and operate as each of the means according to the program.
  • each means may be realized by a separate dedicated circuit.
  • FIG. 3 is a flowchart illustrating an example of processing progress of the first embodiment.
  • the learning data generation means 42 receives the 3D shape model.
  • a plurality of learning data is generated by generating, as a CG image, a plurality of images in which the posture and the position of the illumination with respect to the 3D shape model are variously changed (step S11).
  • a plurality of images generated in step S11 is a learning data group.
  • the 3D shape model input in step S11 may be a 3D shape model of one individual or a 3D shape model of a plurality of individuals.
  • a 3D shape model of a single person's face may be input, or a 3D shape model of a plurality of human faces may be input.
  • the 3D shape model of the face is illustrated, but the 3D shape model may be a model other than the face.
  • the number of feature points specified by the input information may be large, for example, 10,000 or more.
  • what is necessary is just to designate the point etc. where the edge appears strongly as such a feature point, for example.
  • the learning data generating means 42 specifies each feature point in the learning data corresponding to each feature point specified by the input information (step S12). Subsequently, the learning pattern generation unit 43 cuts out a plurality of templates corresponding to feature points and a plurality of templates not corresponding to feature points from the learning data group (step S13). The learning pattern generation unit 43 cuts out the template centered on each feature point specified in step S12 and its neighboring points as a template corresponding to the feature point. In addition, a template that does not include a feature point around the feature point specified in step S12 is cut out as a template that does not correspond to the feature point. The size of any template is the size specified by the template size.
  • the feature point extractor learning unit 45 refers to the “plural templates corresponding to the feature points” and “plural templates not corresponding to the feature points” cut out in step S13, for each feature point.
  • the internal data of the point extractor is learned (step S14).
  • the evaluation data generation unit 44 generates a plurality of images in which the posture of the 3D shape model input to the special extraction learning / evaluation data generation unit 41 and the position of illumination with respect to the 3D shape model are changed as CG images. As a result, a plurality of evaluation data is generated (step S15). A plurality of images generated in step S14 is an evaluation data group. In step S15, evaluation data is generated by changing the orientation of the 3D shape model and the conditions of the illumination position from those at the time of learning data generation (step S11).
  • the feature point position detection unit 46 cuts out a template from the evaluation data generated by the evaluation data generation unit 44, compares the template with internal data, and determines whether the template corresponds to a feature point. By this determination, it is determined which part in the evaluation data is the feature point (step S16).
  • the feature point group at the feature point position determined by the feature point position detection means 46 in step S16 is an initial feature point candidate, and an appropriate feature point that matches the recognition algorithm is selected from the initial feature point candidates in the subsequent processing. Is done.
  • the number of feature points designated for the special extraction learning / evaluation data generation means 41 is equal to the number of feature point positions determined in step S16.
  • the learning data generation unit 42 and the evaluation data generation unit 44 generate learning data and evaluation data as a CG image from the 3D shape model is described as an example.
  • the actual image may be used as learning data or evaluation data.
  • the feature point selection system may not include the learning data generation unit 42 and the evaluation data generation unit 44.
  • the feature point position data used in the recognition task may be acquired from a feature point extractor outside the feature point selection system and used. That is, position data of feature points detected by an external feature point extractor may be acquired, and feature point groups corresponding to the position data may be used as initial feature point candidates.
  • the feature point selection system may not include the feature point extractor learning unit 45 and the feature point position detection unit 46.
  • the subsequent processing is performed using the feature point at the feature point position determined in step S16 as the initial feature point candidate will be described as an example.
  • the feature point selection system performs the following processing after performing the processing up to step S16.
  • the feature point set selection unit 51 sets a feature point group at the feature point position determined by the feature point position detection unit 46 as a feature point candidate, and selects a feature point set from the feature point candidates (step S21).
  • the feature point set selection unit 51 obtains a number obtained by subtracting a certain number from the number of feature points as initial feature point candidates, and selects a feature point set including the number of feature points. .
  • the feature point set selection unit 51 selects each feature point set that can be selected under the condition that the number of feature points is determined. However, the feature point set selection unit 51 moves to step S21. The feature point set is selected one by one. As will be described later, the loop processing of steps S21, S22, and S23 is repeated until there is no unselected feature point set, and the feature point set selection means 51 is moved to step S21 a plurality of times by this repeated processing, so that Select each set as you can choose. The number of feature points of each feature point set selected in the repetition processing of steps S21 to S23 is common.
  • the feature point set selection unit 51 selects each feature point set that can be selected. As described above, it is preferable to select each feature point set. However, if the number of feature point sets increases and the amount of calculation increases, the feature point set selection unit 51 uses the determined number of feature points. A plurality of partial feature point sets may be selected at random from among the various feature point sets that can be selected in. As described in the second embodiment, a desirable method is to preferentially exclude feature points having a large amount of increase in recognition error when the combination is made by removing specific points from the current candidate. It is preferable to weight the probability of selecting a point and decide whether to include it in the feature point set for each feature point. Note that, in the first embodiment, as described above, a case where each feature point set that can be selected is selected is taken as an example.
  • the feature point set selection unit 51 selects initial feature point candidates when selecting a plurality of feature point sets for the first time (that is, when initially performing the repeated processing of steps S21 to S23).
  • the feature point set including a desired number of feature points of the user may be selected from among the methods.
  • the number of initial feature point candidates is large, such as 10,000, while the number of feature points desired by the user is significantly smaller than the initial feature point candidates (for example, 10)
  • the feature point set The number of Then, the number of repetitions of steps S21 to S23 becomes enormous and takes too much processing time.
  • a feature point set including a slightly smaller number of feature points than the number of initial feature point candidates may be selected for each.
  • the number of feature points slightly smaller than the number of feature points included in the feature point set selected in step S24 may be determined as the number of feature points after update. The amount of decrease in the number of feature points may be determined in advance.
  • the recognition error calculation means 52 executes a recognition task on the evaluation data generated in step S15 using each feature point belonging to the feature point set (step S21).
  • the type of the recognition task may be a recognition task that is executed using the feature point after the feature point selection according to the present invention is confirmed. For example, posture estimation, individual identification, facial expression estimation, age estimation, etc. may be mentioned, but other recognition tasks may be performed.
  • it is determined whether or not the template corresponds to the feature point based on the template obtained from the evaluation data and the internal data of the feature point extractor learned in step S14. An example of recognition task processing will be described later.
  • the recognition task execution means 52 executes the recognition task and calculates a recognition error for the feature point set selected in step S21.
  • the feature point set selection unit 51 determines whether there is a combination of feature points not selected as a feature point set from the feature point candidates (step S23). That is, it is determined whether there is a feature point set that has not yet been selected and whose recognition error has not been calculated in step S22. If there is an unselected feature point set (Yes in step S23), the feature point set selecting unit 51 and the recognition error calculating unit 52 repeat the processing of steps 21 to S23. As a result, a recognition error is calculated for each selectable feature point set.
  • step S23 if there is no unselected feature point set (No in step S23), the feature point selection means 53 selects the feature point set that minimizes the recognition error (step S24). Since the recognition error of the feature point set selected in step S24 is the smallest among the feature point sets selected in step S21, it can be said that the feature point set is preferable for the recognition algorithm of the recognition task. it can.
  • step S24 it is a principle to select a feature point set that minimizes the recognition error.
  • the minimum recognition error is determined by using the feature point set selected by the feature point selection unit 53 in the previous step S24.
  • Recognition error when performing the recognition task (when the feature point selection means 53 first moves to step S24 to select a feature point set, the recognition error when the recognition task is performed using the initial feature point candidates ), A recognition error increase a i is calculated for each feature point set selected in step S21, and a value P i calculated by the above equation (1) is calculated.
  • a i is based on the recognition error calculated for the feature point set selected in the previous step S24 (recognition error when performing the recognition task using the initial feature point candidates when the process first moves to step S24).
  • the increase amount to the recognition error calculated for the feature point set of interest is as previously described, the value obtained by a predetermined number of times the selection probability p i of the feature point set i corresponding to P i (.SIGMA.P i times).
  • the value of T when the number of times that the feature point selection means 53 has shifted to the process of selecting a feature point set (step S24) is the tth time is expressed as Tt, and the procedure proceeds to step 24.
  • Tt the value of T at the time t + 1 is T t + 1 and ⁇ is a constant equal to or less than 1 (preferably less than 1)
  • the temperature T in the equation (1) is, for example, the above equation (2 ) For each execution of step S24.
  • the number of feature points included in the feature point set selected by the feature point set selection unit 51 is large, if the temperature T is high, the possibility of selecting inappropriate feature points becomes too high. Therefore, until the number of feature points included in the feature point set selected by the feature point set selection unit 51 becomes smaller than a predetermined threshold, the smallest recognition error among the recognition errors of each feature point set is steps S21 to S26. It is preferable to select the feature point set that minimizes the recognition error even when the recognition task is larger than the recognition error when the recognition task is performed with the feature point set selected in the previous step S24 in the repetitive processing.
  • the feature point selection unit 53 determines whether the number of feature points belonging to the feature point set selected in step S24 has reached the number of feature points desired by the user (in other words, the number of feature points to be finally selected). It is determined whether or not (step S25). If the number of feature points belonging to the feature point set selected in step S24 is equal to the number of feature points desired by the user (Yes in step S25), the feature point selection means 53 will select the feature points belonging to the feature point set, The feature point suitable for the recognition algorithm is determined, and the process ends. At this time, information of the feature point group may be output. Note that the number of feature points desired by the user may be stored in advance by the feature point selection unit 53, for example. Alternatively, it may be input from the outside in advance before the processing after step S11 is started.
  • the feature point selection unit 53 stops the repeat processing of steps S21 to S26 and performs processing. Exit. At this time, the feature point selection means 53 selects a feature point belonging to the feature point set having the smallest recognition error from among the plurality of feature point sets selected in the most recent iterations of steps S21 to S23. It may be determined as a feature point.
  • the feature point selection means 53 determines a value obtained by subtracting a certain number from the number of feature points belonging to the feature point set selected in step S24 as a new feature point number. The value to be subtracted may be determined in advance.
  • the feature point selection system repeats the processing after step S21.
  • the feature point set selecting means 51 uses the one feature point set selected in step S24 as a feature point candidate and is updated in step S26 from the feature point candidates.
  • a feature point set including feature points having the same number of feature points is selected.
  • the recognition error calculation means 52 executes a recognition task for the evaluation data using the feature points belonging to the feature point set, and calculates the recognition error at that time (step S22). It is determined whether or not all feature point sets including the feature points having the number of feature points updated in step S26 are selected (step S23), all the feature point sets are selected, and a recognition error is calculated for each feature point set. Until then, the process of repeating steps S21 to S23 is performed.
  • the feature point set selection means 51 has a certain probability and the feature point set includes the feature point set selected by the feature point selection means 53 in step S24. Feature points that are not included but are included in the initial feature point candidates are included.
  • the feature point set selection unit 51 randomly adds feature points that are not included in the feature point set but are included in the initial feature point candidates to the feature point set selected in step S24.
  • the processing to be executed is executed with a certain probability.
  • the number of feature points to be added may be determined in advance.
  • the feature point set selection unit 51 determines the number of feature points updated in step S26 (when the next feature point set is selected).
  • the number of feature points included in the feature point set may also be increased (in this example, it is assumed to be increased). However, the number of feature points is set to be smaller than the number of feature points obtained in the feature point set after adding the feature points.
  • whether or not the feature point set selection means 51 adds a feature point to the feature point set selected in step S24 is, for example, a random number as described above. It may be determined using.
  • the feature point set selection unit 51 adds the feature point in the repetition processing of steps S21 to S23.
  • the selected feature point set is used as a feature point candidate, and feature point sets including feature points corresponding to the determined number of feature points are selected from the feature point candidates.
  • the feature point set selection unit 51 does not perform the feature point addition process for the feature point set as described above when the process returns from step S26 to step S21, the feature point set selection unit 51 performs step S21.
  • the feature point set selected in the previous step S24 is used as the feature point candidate, and the feature point set including the feature points for the number of feature points updated in step S26 is selected from the feature point candidates. Select each one.
  • step S23 When it is determined in step S23 that there is no unselected feature point, the process proceeds to step S24, and the same operation as described above may be performed. If the number of feature points belonging to the feature point set selected in step S24 has decreased to the number of feature points to be finally selected (Yes in step S25), the process is terminated.
  • Posture estimation is an error (reprojection error) between “the position of the feature point extracted from the image” and “the position of the feature point on the image in a certain posture calculated from the feature point on the 3D shape model”. Is a process of calculating an attitude that minimizes.
  • reprojection error epsilon a is represented by the formula (3) below.
  • Equation (3) x i is the position of the feature point extracted from the image (evaluation data) using the learned internal data of the feature point extractor.
  • X i is the position of the feature point on the 3D shape model corresponding to the feature point.
  • A is an internal parameter matrix of the camera and may be set to a realistic value as the internal parameter matrix of the camera.
  • an internal parameter matrix of the camera that captures the image may be used as A.
  • M is a posture parameter matrix of the target object expressed by the following equation (5).
  • R represents the target rotation
  • T represents the three-dimensional position of the object.
  • This affine transformation model P a, characteristic point X on the 3D shape model is projected as a feature point x on the image.
  • x with a tilde is a homogeneous expression of x. Because the third element of the vector in formula (7) is always constant, by using a partial matrix P a2 with two lines on the P a, it can be expressed as equation (8) shown below.
  • P a2 can be calculated by the least square method if four or more feature points are given. Further, the attitude parameter M can be calculated from the obtained Pa2 .
  • the recognition error calculation means 52 calculates the matrix P a2 using X (position of the feature point on the 3D shape model) and x (position of the feature point extracted from the evaluation data) and Expression (8). Then, the rotation R and the three-dimensional position T of the object in the posture parameter matrix M are obtained from the Pa 2 and the equation (6), and set as initial values.
  • the feature point X on the 3D shape model is projected as the feature point x on the image.
  • is a scalar quantity representing indefiniteness of a constant multiple.
  • Recognition error calculating unit 52 to optimize the process repeated reprojection error epsilon a represented by the formula (3), the pose estimation.
  • P Pj be a camera matrix calculated using the posture parameters obtained from the j-th iteration result.
  • the updated value of the orientation parameter using ⁇ , ⁇ , ⁇ , ⁇ t x , ⁇ t y, a Delta] t z, the following equation (10) holds.
  • Recognition error calculation means 52 [Delta] [phi by equation (10), ⁇ , ⁇ , ⁇ t x, ⁇ t y, calculate the Delta] t z.
  • the recognition error calculation means 52 uses three or more pairs of corresponding points, obtains an update parameter using the least square method, and updates the camera matrix by the following equation (11) using the update parameter.
  • P is a function for calculating a camera matrix from each parameter. From the initial value of the above until the update parameters is sufficiently small, the recognition error calculating unit 52, Equation (10), by repeating the calculation of equation (11), an attitude such that the re-projection error epsilon a minimized A projection matrix P p (in other words, p 1 , p 2 , p 3 ) to be expressed may be obtained. This ⁇ a is a recognition error.
  • the feature point selection unit 53, epsilon a selects a feature point set that minimizes.
  • smallest epsilon a is, if the increase from the epsilon a in the feature point set selected in the previous step S24, for each feature point set as described previously, to calculate the P i in the formula (1) , P i is selected probabilistically according to Pi.
  • the recognition error calculation unit 52 calculates ⁇ a as the recognition error, but may calculate a value other than ⁇ a as the recognition error.
  • the recognition error calculation unit 52 may calculate ⁇ 1 of the following equation (12) as the recognition error.
  • X with a hat symbol is a true value of X
  • R and T are measurement results obtained by posture estimation.
  • the recognition performance is improved by using the feature point extraction error of the feature point indicated by i and reducing the weight of the feature point having a large error. It can also be improved. In this case, it is common to use the inverse of the variance of the feature point extraction error for each term.
  • the feature point extraction error is a difference between the position of the feature point obtained based on the template cut out from the evaluation data and the position of the correct feature point corresponding to the specified feature point on the 3D shape model.
  • the recognition task is actually executed for each feature point set, and the difference between the recognition result obtained as a result and the correct answer (recognition error), or the recognition error increase amount a i (see Expression (1)). ), A feature point set is selected in step S24. Therefore, it is possible to select a plurality of feature points appropriate for the recognition algorithm of the recognition task that is actually executed using the feature points.
  • step S24 of the flowchart shown in FIG. 3 it is assumed that the feature point set that minimizes the recognition error is always selected, and the feature point is added to the feature point set when returning from step S26 to step S21. Suppose you don't. Then, the feature points that do not belong to the feature point set selected in step S24 are not selected in the subsequent processing. For this reason, feature points that cannot be evaluated highly at an early stage where the number of feature points belonging to the feature point set is large are likely to be omitted from selection candidates at an early stage.
  • step S24 when the smallest recognition error among the recognition errors for each feature point set is larger than the recognition error for the feature point set selected in the previous step S24, the above equation ( 1) to calculate the P i for each feature point set, likely to be selected as the value of P i is large, one selected under the condition, a feature point set that difficult to be selected as the value of P i is small To do. With respect to the value is less feature point set of P i, but less likely to be selected, since leave room chosen, hardly leak characteristic point which can not appreciate the importance in many early stage number of feature points can do.
  • the feature point set selection means 51 is a feature point that is not included in the feature point set with respect to the feature point set selected in step S24 with a certain probability. To be included.
  • the feature point set is selected as a feature point candidate from the feature point candidates. Therefore, even if a feature point that cannot be evaluated with high importance in the initial stage with a large number of feature points is leaked from the feature point set selected in step S24, such a feature point is included in step S21.
  • the feature point set can be selected again. In other words, important feature points that have been once leaked can be restored again, so that important feature points can be easily left in the final selection result.
  • steps S21 to S26 is repeated while reducing the number of feature points in step S26. Therefore, although the number of feature points may increase with a certain probability, the number of feature points to be included in the feature point set is sequentially decreased to finally determine the feature points to be selected. By doing in this way, the calculation amount until determining the feature point finally selected can be suppressed.
  • the internal data (internal data of the feature point extractor) is learned for each designated feature point on the 3D shape model based on the template cut out from the learning data generated from the 3D shape model. Then, using the evaluation data generated from the 3D shape model, it is possible to evaluate the recognition error when performing the recognition task by performing the feature point determination based on the internal data, and through both the feature point determination and the recognition task, A feature point that can execute the recognition task with high accuracy can be obtained.
  • the feature point position is common to all individuals, but in this embodiment, a feature point suitable for each individual is selected. Can do.
  • the feature point for each individual had to be determined in advance, which is preferable for each individual to be recognized
  • it becomes necessary to determine the feature points in advance That is, the target item itself is required in advance. Therefore, it has been impossible to select a preferable feature point for each individual or to learn a feature point extractor specialized for each individual.
  • the present invention if a 3D shape model of one individual and a plurality of feature points on the 3D shape model are specified, learning data and evaluation data are created from the 3D shape model, and the feature is based on the learning data.
  • the internal data of the point extractor can be learned.
  • An appropriate feature point can be selected for one individual by repeating the recognition task using the evaluation data and selecting the feature point set in step S24 using the recognition error. .
  • the internal data of the feature points can be learned. Therefore, according to the present invention, it is possible to select an appropriate feature point for each individual or to learn a feature point extractor. For example, if a mole unique to a person is used as a feature point, it is considered that the accuracy of posture estimation and individual identification (face identification) of the person can be improved. Can be selected as a preferred feature point.
  • feature points that are important in common to a plurality of individuals are selected instead of individual feature points.
  • learning of feature point extractors that can be used in common may be specified to execute the operation of the present invention.
  • a process of selecting feature points for each individual may be performed, and among the feature points for each individual, a common feature point (similar feature point between individuals) may be selected. Further, similar feature points may be set between individual individuals, the internal data of the feature point extractor may be learned from the feature points, and the evaluation using the evaluation data may be performed individually for each individual. This also applies to the embodiments described later.
  • the feature point selection means 53 may execute step S24 when the repetition process of steps S21 to S23 is executed P times. In this case, since the P feature point sets are selected by the feature point set selecting unit 51, the feature point selecting unit 53 may select one feature point set from among the P feature point sets. .
  • the number of repetitions P of the above steps S21 to S23 may be determined as follows.
  • the relationship between the recognition task total execution time corresponding to the number of repetitions P of steps S21 to S23 and the recognition error is as shown in FIG. That is, when the number of repetitions P is increased, the total execution time of the recognition task increases, but the recognition error decreases as the execution time increases, and the recognition error converges when it decreases to some extent. Therefore, by determining P when the recognition error converges, it is possible to reduce the recognition error as much as possible while shortening the processing time as much as possible. This P may be determined in advance.
  • the feature point selection system may include repetition number determining means (not shown).
  • the feature point selection system changes P, executes the flowchart shown in FIG. 3 for each P, and the iteration number determining means (not shown) determines P when the recognition error converges. Thereafter, when the process of selecting feature points is performed, the repetition process of steps S21 to S23 in the flowchart shown in FIG. 3 may be executed a determined number of times.
  • the feature point set selection means 51 may select a feature point set such that a predetermined feature point is fixedly included in the feature point set. That is, if the number of feature points belonging to the feature point set selected in step S21 is m, and the number of feature points determined to be included in the feature point set in advance is Z, mZ pieces. A feature point may be selected from feature point candidates and a feature point set including m feature points may be determined. However, m> Z. Further, m is updated so as to decrease in step S26, and when returning from step S26 to step S221, it is determined to increase with a certain probability.
  • the feature points fixedly included in the feature point set may be predicted by the user as important feature points and set by the user manually. This setting mode is not limited.
  • step S21 Z feature points to be fixedly included in the feature point set are determined, the remaining mZ feature points are selected in step S21, and the repetition process of steps S21 to S23 is repeated P times. May be. Alternatively, the process of steps S21 to S23 may be repeated until all mZ feature point combinations that are not fixed are selected.
  • step S24 when the number of feature points belonging to the feature point set selected in step S24 is reduced to the number of feature points to be finally selected (user desired feature point) (in step S25). Yes), the case of terminating the process has been described.
  • Another criterion may be used as a criterion for ending the processing by stopping the repeated processing of steps S21 to S26.
  • other criteria for ending the process will be described.
  • the number of feature points included in the feature point set to be selected may increase with a certain probability, and the process proceeds to step S26.
  • the number of feature points included in the feature point set is updated so that the value becomes smaller. Therefore, as a whole, as the number of repetitions of the processes of steps S21 to S26 increases, the number of feature points belonging to the selected feature point set tends to decrease.
  • the recognition error when the recognition task is executed using the feature points belonging to the feature point set tends to increase.
  • the feature point selection means 51 determines that the minimum value of the recognition error for each feature point set calculated in the most recent iteration of steps S21 to S23 is equal to or greater than a predetermined threshold value (threshold value for recognition error). In such a case, it may be determined to end the process without proceeding to step S26. In this case, the feature point selection unit 51 selects a feature point belonging to the feature point set having the smallest recognition error from among the plurality of feature point sets selected in the most recent repetitive processing of steps S21 to S23. The feature point is determined and the process ends. At this time, feature points belonging to the feature point set selected in the most recent step S24 may be determined as feature points suitable for the recognition algorithm.
  • a predetermined threshold value threshold value for recognition error
  • the feature point selection means 51 uses the feature calculated in the latest iterative process in steps S21 to S23 with respect to the minimum value of the recognition error for each feature point set calculated in the previous iterative process in steps S21 to S23.
  • a predetermined threshold value threshold value regarding the increase amount of the recognition error
  • the processing is not performed without proceeding to step S26. You may decide to end.
  • the feature point selection means 51 uses, as a recognition algorithm, a feature point belonging to the feature point set with the smallest recognition error among the plurality of feature point sets selected in the most recent iteration of steps S21 to S23. It is determined as an appropriate feature point, and the process is terminated. At this time, feature points belonging to the feature point set selected in the most recent step S24 may be determined as feature points suitable for the recognition algorithm.
  • Embodiment 2 a recognition task such as posture estimation is executed for all feature point sets excluding feature points from feature point candidates, and recognition errors are calculated.
  • the recognition task is not executed for each feature point set, but is used for selecting the feature point set for which the recognition error is to be evaluated. Is used to estimate the value of the recognition error in the feature point set obtained by excluding any feature point from the feature point set using the recognition error value of the feature point set that has already been evaluated. Thus, the amount of calculation can be reduced by estimating the recognition error of the feature point set.
  • the feature point set selection unit 51 that selects a feature point set from feature point candidates adds a feature point to the feature point set or excludes a feature point from the feature point candidate.
  • the feature points are selected at random.
  • FIG. 5 is a block diagram showing an example of a feature point selection system according to the second embodiment of the present invention.
  • FIG. 6 is a flowchart illustrating an example of processing progress of the second embodiment.
  • the feature point selection system includes feature point importance degree estimation means 54 in addition to the components of the first embodiment.
  • the processing content of step S21 performed by the feature point set selection unit 51 and the processing content of step S22 performed by the recognition error calculation unit 52 are different from those of the first embodiment. Processes other than steps S21, S22, and S31 shown in FIG. 6 are the same as those in the first embodiment (see FIG. 3).
  • posture estimation is performed by the calculation for minimizing the recognition error ⁇ a described in the first embodiment (repetition calculation of Expression (10) and Expression (11)). Can be done.
  • the Hessian approximation method is applied to the ⁇ a minimization calculation, and the recognition error calculated in the previous iterative process is not performed without performing the iterative calculation of Expressions (10) and (11).
  • the value of ⁇ a in the feature point set obtained by removing an arbitrary q point from the feature point set at that time is calculated. As a result, it is possible to reduce the amount of calculation of the minimum of the epsilon a.
  • the amount of calculation can be reduced by applying the Hessian approximation method.
  • the Hessian approximation method can be applied to the case where the number of feature points included in the feature point set is decreased by q or increased by q.
  • the case where the number of feature points is reduced by q is taken as an example. I will explain.
  • Pose estimation is a recognition error function epsilon a process for obtaining the posture parameter ⁇ that minimizes. This is generally nonlinear optimization, and is minimized by a general method such as Gauss-Newton method or Levenberg-Marquard method. Further, in these methods, it is used to calculate the primary-secondary differential value of epsilon a.
  • the recognition error calculating unit 52 finally epsilon a the epsilon a when minimized, theta, and using the primary-secondary differential value, after reducing the feature point epsilon a is calculated to predict which feature points should be reduced without performing posture estimation.
  • m be the number of feature points in the current feature point set (the feature point set selected in the previous step S24), and q be the number of feature points to be reduced. However, q is a smaller number than m, specifically, 2 or 3 is assumed.
  • S m a feature point set that is the current feature point set and whose posture estimation has already been performed and ⁇ a has been calculated
  • S mq a feature point set that is the current feature point set and whose posture estimation has already been performed and ⁇ a has been calculated
  • S mq be the set.
  • a set of q feature points to be removed is defined as S q .
  • Recognition error calculating unit 52 a feature point set S m comprising m feature points, feature point set including a m-q-number of feature points S m-q and sets the feature point comprises a q-number of feature points S q And divide into A S m-q ⁇ S m.
  • the posture estimation recognition error ⁇ a based on the current feature point set S m is represented as a cost function f + . Then, this cost function is decomposed as shown in Expression (13).
  • z i with a tilde is the position on the image of the feature point i determined by the learned feature point extractor.
  • Z i ( ⁇ ) is the position of the feature point i on the image calculated from the feature point i on the 3D shape model when the posture is ⁇ , and the correct position of the feature point i in the posture ⁇ It corresponds to. Note that these images are evaluation data generated by the evaluation data generation unit 44.
  • ⁇ i is a matrix having the variance of the feature point extraction error of the feature point i as a diagonal component.
  • the feature point extraction error may be calculated by, for example, the feature point position detection unit 46.
  • Formula (13) can be expressed as the following Formula (14).
  • f + is a recognition error (value of ⁇ a ) for all feature points of the current feature point set S m .
  • f ⁇ is a cost function after removing q feature points, and is expressed as the following equation (15).
  • f ⁇ is a recognition error corresponding to the feature point set S m ⁇ q excluding the q point ( a value obtained by integrating ⁇ a only for the feature point excluding the q point).
  • ⁇ f is a cost function corresponding to q points to be removed, and is expressed as the following Expression (16).
  • ⁇ f is a recognition error corresponding to the excluded q points ( a value obtained by accumulating ⁇ a only for the q feature points).
  • Hessian of each term of the equation (14) is represented by H + , H ⁇ , ⁇ H, the following equation (17) is obtained.
  • Hessian is a matrix representing the second derivative of f by ⁇ .
  • g is a first derivative of ⁇ a with ⁇ .
  • ⁇ + with a hat symbol is a posture parameter (already calculated posture parameter) when posture is estimated with a feature point set S m including the current m feature points.
  • ⁇ ⁇ with a hat symbol is a posture parameter when the posture is estimated with the feature point set S mq excluding q feature points, and is to be excluded from calculation in order to reduce processing time. Is.
  • f ⁇ ( ⁇ ⁇ ) with a hat symbol is a recognition error ⁇ a when posture estimation is performed with the feature point set S mq excluding q feature points, and is calculated to reduce the processing time. It is intended to be excluded.
  • ⁇ g ( ⁇ + ) with a hat symbol is a first-order differential value of a recognition error in a posture parameter value when posture estimation is performed using a feature point set S m including the current m feature points. This has already been calculated in the process of posture estimation processing.
  • H ⁇ ⁇ 1 is an inverse matrix of second-order differential values of recognition errors in posture parameter values when posture estimation is performed using the feature point set S m ⁇ q excluding q feature points. Although it is preferable not to calculate this value, it is known that if the number of feature points m is sufficiently larger than q, even if approximated by H + (that is, replaced), there is not much difference. H + is already calculated in the process of posture estimation processing. If the Gauss-Newton method or Marquardt method is used to calculate ⁇ + with a hat symbol, H + is already calculated.
  • the cost function value after removing S q can be approximately calculated without minimizing ⁇ a according to the following procedure.
  • the recognition error calculation means 52 performs the minimization process by performing the following process.
  • the recognition error calculation unit 52 executes the following processing while changing S q in m C q ways.
  • the recognition error calculation means 52 calculates the following equation (20).
  • the recognition error calculation means 52 removes S q that minimizes f ⁇ ( ⁇ ⁇ ), and creates S m ⁇ q .
  • the recognition error calculating unit 52 is actually f - by minimizing, with a circumflex theta - the finding.
  • the feature point importance degree estimation unit 54 performs the following process before the process of step S21 by the feature point set selection unit 51. That is, the probability regarding which feature point is selected as the feature point to be included in the feature point set before step S21 is determined from the current feature point candidate (here, the feature point set selected in the previous step S24). A determination is made based on the amount of increase or decrease in recognition error when points are excluded or added (step S31). In other words, the feature point importance degree estimation unit 54 adds feature points other than the feature point set to the feature point set when the feature point is added to or excluded from the feature point set selected in the previous step S24. And the probability that feature points belonging to the feature point set will be excluded are determined based on the amount of increase / decrease in recognition error after addition or exclusion of feature points.
  • each feature point of the initial feature point candidate is selected as a feature point belonging to the current feature point set (the feature point set selected in the previous step S24) with a value of “1” or “0”
  • a vector in which the values are arranged is represented as w.
  • this vector and elements of this vector may be referred to as “weight”.
  • weight When referring to the whole feature point as “weight”, it indicates a vector, and when paying attention to each feature point as “weight”, it indicates a vector element. Even if the value of the element of the vector w is randomly changed to “0” or “1”, there is a low probability that a new weight (a vector defining a feature point set) effective for reducing the recognition error is obtained.
  • the vector representing the current feature point set is set to w a, and the neighborhood space of w a is efficiently searched using the reduction degree of the recognition error function (cost function) f as an index, and then a new weight (vector w b It is preferable to determine.
  • an approximate solution of the recognition error function used in the sequential prediction method (the above-described method for predicting the recognition error) is used.
  • this approximate solution it is possible to estimate the amount of change in the recognition error function f when each feature point included in the current feature point set is removed. Further, when the feature points that are not included in the current feature point set and whose vector element value is “0” are restored (that is, the weight value is “1”).
  • the amount of change in the recognition error function f can be estimated. Reviving means that a feature point that has once leaked from the feature point set is included in the feature point set.
  • the feature point set selection means 51 probabilistically weights each feature so that the value of the recognition error function f becomes smaller based on these estimated values (estimated values of changes in the recognition error function f). A change in the weight of the point, that is, whether or not to include each feature point in the feature point set is determined (step S21).
  • the number of initial feature point candidates is N, and the number of feature points belonging to the current feature point set is M.
  • the number of vector elements is N.
  • the vector w a represents the current feature point set
  • the value of M elements corresponding to the feature points belonging to the feature point set is "1”.
  • K feature points are eliminated, and K feature points are restored from NM feature points that are not currently selected.
  • Excluding K feature points from the feature point set means that the value of K elements corresponding to the feature points is set to “0” in the vector w b representing the feature point set after replacement of the feature points.
  • restoring K feature points from NM feature points that have not been selected means that the value of K elements corresponding to the feature points in the vector w b is set to “1”. It means to do.
  • the feature point set selection means 51 determines the number K of feature points to be replaced at this time with a random number of 1 to M / 2. That is, a random number is generated in the range of 1 to M / 2, and the value of the generated random number is determined as the number of feature points to be replaced.
  • the feature point set selection means 51 determines the feature points to be excluded with the probability distribution shown in the following equation (26).
  • I in Expression (26) represents the order of vector elements (in other words, the order of feature points).
  • w i (t) is the i-th element of the vector representing the feature point set selected in the t-th step S24 in the iterative processing of steps S31 to S26 in FIG.
  • P (w i (t + 1) 0
  • w i (t) 1) excludes feature points corresponding to w i (t) currently included in the feature point set (ie, element Represents the probability of setting the value to 0).
  • w i (t) 1).
  • F i ⁇ is an approximate value of the recognition error function when the i-th feature point (here, the feature point included in the current feature point set) is excluded, and the feature point importance degree estimation means 54 Is derived from the aforementioned equation (19).
  • w i (t) 1) using f i ⁇ .
  • the operation in which the feature point importance degree estimation unit 54 calculates P (w i (t + 1) 0
  • w i (t) 1), the value of the element w i is set to “ Change from “1” to “0”. That is, the feature point corresponding to w i is excluded from the feature point set. In step S21, the feature point set selection unit 51 performs this process for each feature point included in the current feature point set.
  • Equation (26) has a high probability at a feature point where the recognition error function becomes small when removed from the current feature point set, and a low probability at a feature point where the recognition error function becomes large when removed. Therefore, by following the equation (26), the feature point set selection unit 51 positively removes feature points that have a recognition error function that becomes small when removed. Also, feature points that are not so are not easily removed from the feature point set.
  • the feature point set selection means 51 selects the feature points to be restored by replacing the feature point sets according to the probability distribution shown in the following equation (27).
  • w i (t) 0) is a feature point corresponding to w i (t) that is not currently included in the feature point set. It represents the probability that the point set will be restored (that is, the value of the element is 1).
  • w i (t) 0).
  • F i + is an approximate value of the recognition error function when the i-th feature point (here, a feature point not included in the current feature point set) is restored.
  • the feature point importance degree estimation means 54 calculates f i + by calculation of the following equation (28).
  • w i (t) 0) using f i + .
  • the operation in which the feature point importance degree estimation unit 54 calculates P (w i (t + 1) 1
  • f ⁇ is the cost before adding the i-th feature point to the feature point set
  • ⁇ ⁇ is an estimation parameter before restoring the feature point.
  • w i (t) 0), the value of the element w i is set to “ Change from “0” to “1”. That is, the feature point corresponding to w i is restored and included in the feature point set. In step S21, the feature point set selection unit 51 performs this process for each feature point not included in the current feature point set.
  • the feature point importance degree estimation means 54 calculates f i ⁇ and f i + in step S31, and further calculates the probabilities shown on the left side of the equations (26) and (27).
  • the feature point set selection unit 51 uses the probability to exclude the feature points included in the current feature point set as described above, Performs processing to restore points that are not included in the point set.
  • the temperature T is a parameter for simulated annealing for avoiding a local solution in the optimization of feature points.
  • the value of the initial temperature T 0 is set to a value that is 10% or less of the cost of the optimal solution. do it. If the process for selecting the optimum solution for the feature point has not been performed yet, the value of the initial temperature T 0 may be set to a value that is 10% or less of a 0 , for example.
  • FIG. 7 is a block diagram showing an example of the minimum configuration of the present invention.
  • the feature point selection system of the present invention includes a feature point set selection unit 51, a recognition error calculation unit 52, and a feature point selection unit 53.
  • the feature point set selection means 51 is a feature point set that is a set of feature points from a feature point candidate that is a set of points that are candidate feature points suitable for the recognition task, and has a predetermined number of feature points. Select multiple feature point sets that contain.
  • the recognition error calculation unit 52 calculates a recognition error when the recognition task is executed using the feature points included in the feature point set for each feature point set selected by the feature point set selection unit 51.
  • the feature point selection unit 53 determines the feature when the minimum value of the recognition error for each feature point set selected by the feature point set selection unit 51 is larger than the recognition error when the recognition task is executed using the feature point candidates. For each point set, calculate the reciprocal of the exponential function of the recognition error increase from the recognition error when the recognition task is executed using the feature point candidates, and depending on the magnitude of the value of the calculation result, The feature point set is selected, the feature point set selection unit updates the number of feature points when selecting the feature point set, and selects a feature point suitable for the recognition task when a predetermined condition is satisfied.
  • the feature point set selection unit 51 determines feature point candidates based on the feature point set, and selects a plurality of feature point sets again.
  • a feature point set that is a set of feature points from a feature point candidate that is a set of feature points that are suitable for a recognition task, and that includes feature points of a predetermined number of feature points A recognition error when the recognition task is executed using a feature point included in the feature point set for each feature point set selected by the feature point set selection unit;
  • the recognition error calculation means to calculate and the minimum value of the recognition error for each feature point set selected by the feature point set selection means is larger than the recognition error when the recognition task is executed using the feature point candidates
  • the feature point set selection unit updates the number of feature points when selecting the feature point set, and a feature suitable for the recognition task when a predetermined condition is satisfied Feature point selection means for selecting points, and when the feature point selection means selects a feature point set
  • the recognition task is the posture estimation of the individual, and the recognition error calculating means calculates the recognition error and posture parameters of posture estimation calculated for the feature point set including the feature points of the number of feature points before update, and their derivatives.
  • the feature point selection system according to supplementary note 1, wherein a recognition error in the case of using a feature point included in a feature point set selected based on the number of feature points after the update using a value is approximately calculated.
  • the recognition task is the posture estimation of the individual, and the feature point set selecting means includes the feature included in the feature point set selected by the feature point selecting means when the feature point selecting means selects the feature point set.
  • the recognition error when the point is deleted from the feature point set is approximately calculated using the posture estimation recognition error and posture parameters calculated for the feature point set and their differential values, and the reciprocal of the recognition error is calculated.
  • the feature point is excluded from the feature point set according to the exclusion probability calculated using the feature point, and is not included in the feature point set selected by the feature point selection unit, but is included in the first feature point candidate
  • the recognition error when added to the feature point set is determined using the posture estimation recognition error and posture parameters calculated for the feature point set and their differential values.
  • the feature described in Supplementary Note 1 or Supplementary Note 2 wherein a feature point candidate is determined by adding the feature point to the feature point set according to an additional probability calculated in a similar manner and using the reciprocal of the recognition error. Point selection system.
  • the feature point selection means is configured such that the number of feature points of the selected feature point set has decreased to a predetermined number, or the recognition error in the selected feature point set exceeds a certain amount from the recognition error in the previously selected feature point set. Based on the number of feature points determined at that time when the predetermined condition is satisfied, assuming that the predetermined condition is that the recognition error in the selected feature point set is equal to or greater than a predetermined threshold.
  • the feature point group included in the feature point set that minimizes the recognition error among the plurality of feature point sets selected in the above is selected as any one of the supplementary notes 1 to 3 that are selected as the feature points suitable for the recognition task.
  • a feature point set that is a set of feature points from a feature point candidate that is a set of feature points that are suitable for a recognition task, and that includes feature points of a predetermined number of feature points Select multiple sets, calculate the recognition error when the recognition task is executed using the feature points included in the feature point set for each selected feature point set, and minimize the recognition error for each selected feature point set When the value is larger than the recognition error when the recognition task is executed using the feature point candidate, for each feature point set, from the recognition error when the recognition task is executed using the feature point candidate.
  • a feature point selection method characterized by selecting.
  • a feature point candidate that is a set of feature points suitable for a recognition task
  • a feature point set that is a set of feature points and that has a predetermined number of feature points Recognition when the recognition task is executed using the feature points included in the feature point set for each feature point set selected in the feature point set selection process.
  • a recognition error when a recognition error calculation process for calculating an error and a minimum value of a recognition error for each feature point set selected in the feature point set selection process execute the recognition task using the feature point candidates If larger, calculate the reciprocal of the exponential function of the recognition error increase from the recognition error when the recognition task is executed using the feature point candidates for each feature point set
  • the number of feature points when the feature point set is selected in the feature point set selection process is updated, and a predetermined condition is satisfied
  • a feature point selection process for selecting a feature point suitable for the recognition task is executed and a feature point set is selected by the feature point selection process, a feature point is selected based on the feature point set by the feature point set selection process.
  • a feature point selection program for determining candidates and selecting a plurality of feature point sets again.
  • the recognition error calculation process uses the recognition error and posture parameters of posture estimation calculated for the feature point set including the feature points of the number of feature points before the update, and their differential values, and the features after the update
  • the feature point set is related to the feature points included in the feature point set selected by the feature point selection process by the feature point set selection process.
  • the recognition error when deleted from the feature point is calculated approximately using the recognition error and posture parameters of posture estimation calculated for the feature point set and their differential values, and the exclusion probability calculated using the reciprocal of the recognition error.
  • the feature points are excluded from the feature point set in accordance with the feature point set, and are not included in the feature point set selected by the feature point selection process, but the feature points included in the first feature point candidate are added to the feature point set.
  • the recognition error in the case of having been calculated approximately using the recognition error and posture parameters of posture estimation calculated for the feature point set and their differential values,
  • the recognition according to the additional probabilities were calculated using the reciprocal of the error, the by the feature point to be added to the feature point set, the feature point selection program according to Appendix 9 or Appendix 10 gives predetermined feature point candidates.
  • the number of feature points of the selected feature point set has been reduced to a predetermined number, or the recognition error in the selected feature point set is determined based on the recognition error in the previously selected feature point set.
  • the predetermined condition is satisfied when the predetermined condition is that a certain amount has been increased or the recognition error in the selected feature point set is equal to or greater than a predetermined threshold,
  • the feature point group included in the feature point set that minimizes the recognition error is selected as a feature point suitable for the recognition task.
  • a feature point set which is a set of feature points from a feature point candidate which is a set of feature points suitable for a recognition task, and which includes feature points of a predetermined number of feature points
  • the recognition error calculation unit to be calculated and the minimum value of the recognition error for each feature point set selected by the feature point set selection unit is larger than the recognition error when the recognition task is executed using the feature point candidates
  • the reciprocal of the exponential function of the recognition error increase amount from the recognition error when the recognition task is executed using the feature point candidates is calculated, and the value of the calculation result is large.
  • the feature point set selection unit updates the number of feature points when the feature point set is selected, and when a predetermined condition is satisfied, a feature point suitable for the recognition task is selected.
  • a feature point selection system characterized by multiple selection.
  • the recognition task is individual posture estimation, and the recognition error calculation unit calculates the recognition error and posture parameters of posture estimation calculated for the feature point set including the feature points of the number of feature points before update, and their derivatives.
  • the feature point selection system according to appendix 13 wherein a recognition error is approximately calculated using a value and using a feature point included in a feature point set selected based on the number of feature points after update.
  • the recognition task is the posture estimation of an individual, and the feature point set selection unit includes features included in the feature point set selected by the feature point selection unit when the feature point selection unit selects the feature point set.
  • the recognition error when the point is deleted from the feature point set is approximately calculated using the posture estimation recognition error and posture parameters calculated for the feature point set and their differential values, and the reciprocal of the recognition error is calculated.
  • the feature point is excluded from the feature point set according to the exclusion probability calculated using the feature point, and is not included in the feature point set selected by the feature point selection unit, but is included in the first feature point candidate ,
  • the recognition error when added to the feature point set is approximated by using the posture estimation recognition error and posture parameters calculated for the feature point set and their differential values.
  • the feature point selection system according to appendix 13 or appendix 14, wherein a feature point candidate is determined by adding the feature point to the feature point set according to an additional probability calculated using the reciprocal of the recognition error. .
  • the feature point selection unit determines that the number of feature points of the selected feature point set has decreased to a predetermined number, or that the recognition error in the selected feature point set is greater than a certain amount from the recognition error in the previously selected feature point set. Based on the number of feature points determined at that time when the predetermined condition is satisfied, assuming that the predetermined condition is that the recognition error in the selected feature point set is equal to or greater than a predetermined threshold.
  • the feature point group included in the feature point set having the smallest recognition error among the plurality of feature point sets selected in the above is selected as any one of supplementary note 13 to supplementary note 15 for selecting the feature point suitable for the recognition task.
  • the present invention is preferably applied to a system for determining feature points used in an apparatus for performing recognition tasks such as individual posture estimation and individual identification.

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)

Abstract

 認識タスクにおける認識アルゴリズムに合う適切な特徴点を選ぶことができ、また、重要な特徴点が最終的に選択した特徴点の集合から漏れにくくすることができる特徴点選択システムを提供する。特徴点セット選択手段51は、特徴点候補から特徴点セットを複数選択する。認識誤差算出手段52は、特徴点セット毎に認識誤差を算出する。特徴点選択手段53は、特徴点セット毎の認識誤差の最小値が、特徴点候補を用いたときの認識誤差より大きい場合に、特徴点セット毎に、特徴点候補を用いたときの認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果に応じて、一つの特徴点セットを選択し、特徴点セット選択手段が特徴点セットを選択する際の特徴点数を更新する。特徴点セット選択手段51は、その特徴点セットに基づいて、再度、特徴点セットを複数選択する。

Description

特徴点選択システム、特徴点選択方法および特徴点選択プログラム
 本発明は、3次元形状モデル上の複数の特徴点の中から好ましい特徴点を選択する特徴点選択システム、特徴点選択方法および特徴点選択プログラムに関する。
 画像に示された物体やその物体の状態を認識する処理を認識タスクと呼ぶ。認識タスクの例として、個体(例えば人の顔)の画像から、その個体の向き(以下、姿勢と記す。)を推定したり、その個体を識別したりする処理が挙げられる。物体の姿勢推定を例にして認識タスクの例を示す。まず、予め物体の3次元形状モデルにおける特徴点の3次元位置を記憶しておく。一般に、システム稼働後に認識対象の個体が新たに登録されるシステムにおいて、特徴点位置は全個体で共通とされる。特徴点の記憶後、認識対象の画像(本例では、姿勢推定しようとする物体が表された画像)から、特徴点の位置を検出し、予め記憶していた特徴点の3次元位置と対応付ける。そして、認識対象画像における特徴点の位置と、3次元形状モデル上における特徴点の位置との対応関係から物体の姿勢推定を行う。この対応関係から物体の姿勢を推定する方法は、透視n点問題の解法として知られている。
 上記のような処理において、予め記憶される3次元形状モデル上の特徴点は、予め認識対象物体の一部であり画像の中で位置を特定することが容易であること、および、認識タスクにおいてその部位の位置が重要であると考えられることを考慮して人手で定められていた。人手による特徴点決定について、より詳細に説明する。姿勢推定等の認識アルゴリズムは、一般に、用いる特徴点の数が多いほど認識性能を向上できる。しかし、多数の特徴点を用いると、認識タスクの計算量は増大する。さらに、認識対象画像から特徴点を抽出するための計算量も増大する。そのため、特徴点の数を絞り込むことが実用上重要である。少数の特徴点で認識タスクにおける認識性能を向上させるためには、以下のような条件を満たす特徴点を決めておく必要がある。第1条件として、認識タスクにおいて重要な特徴点であること(換言すれば、精度に与える影響が大きいこと)が必要である。さらに、第2条件として、画像から特徴点として精度良く抽出できることが必要である。一般的に、第1条件および第2条件を両方とも満たす特徴点が3次元形状モデル上の点から人手で決められている。
 3次元モデル上の特徴点を自動的に決定する手法としては、例えば、非特許文献1に、エントロピーに基づいて特徴点を生成する方法が記載されている。しかしながら、上記の第1条件・第2条件を考慮し、認識タスクにとって有用な少数の特徴点に絞り込むことができなかった。このため、認識タスクに使用する特徴点の定義は人手によって決定されていた。
 また、認識対象画像からの特徴点抽出は、認識対象画像から各部分をそれぞれ切り出し、予め学習しておいた判定用パターンと比較し、最も特徴点らしいと判定された位置を特徴点位置と決定することにより行う。
 非特許文献2には、画像間の対応点を求めるために必要な特徴点を、SIFT(Scale-Invariant Feature Transform )アルゴリズムによって抽出する技術が記載されている。SIFTアルゴリズムは、多重解像度解析による塊検出と、濃淡勾配のヒストグラムを利用した画像間の対応付けを可能とする。SIFTアルゴリズムでは、特徴点の特徴量も算出する。予め学習において与えられた判定用パターンの特徴量を記憶しておき、認識対象の画像から抽出された特徴点の特徴量と比較することで、特徴点かどうかの判定を行い、その位置を抽出することができる。
 また、この判定を行う技術として、多くのパターン識別法を利用することもできる。その一例として、一般化学習ベクトル量子化(GLVQ:Generalized Learning Vector Quantization)を用いることが非特許文献3に記載されている。非特許文献3では顔のパターン検出を行っているが、パターンを顔から特徴点に置き換えれば特徴点の検出を行うことができる。また、機械学習の手法としてSVM(Support Vector Machine)も知られている。
 認識対象画像上に表される特徴点の見え方は、物体の姿勢や照明条件によって変化する。画像から切り出された部分が特徴点に該当するか否かを正しく判断するためには、判定用パターンを学習しておく必要がある。そのため、様々な条件で物体の学習用画像を多数撮影しておき、その多数の学習用画像それぞれにおいて正しい特徴点の位置を人手で入力して判定用パターンを学習させていた。
Joshua Cates, Miriah Meyer, P.Thomas Fletcher, Ross Whitaker, "Entropy-Based Particle Systems for Shape Correspondence",Proceedings of the MICCAI,2006年 藤吉弘亘、「Gradientベースの特徴抽出 -SIFTとHOG-」、情報処理学会研究報告 CVIM160、pp.211-224、2007年 細井利憲、鈴木哲明、佐藤敦、「一般化学習ベクトル量子化による顔検出」、Technical report of IEICE. PRMU,Vol.102,No.651(20030213),pp.47-52
 上記の第1条件における重要度や第2条件における特徴点抽出の精度は、認識対象物体の種類(形状や見え方)、画像から特徴点を抽出する方法の特性、認識タスク(姿勢推定や個体識別等)に用いる手法の特性、認識対象画像の撮影条件等の様々な要因に依存する。そのため、認識タスクを行うシステムを作り上げて稼働させるまで、第1条件における重要度や第2条件における特徴点抽出の精度は定量化することが難しかった。そのため、そのような重要度や精度をシステム開発者が主観的に見積もっていた。従って、熟達した開発者でなければ、3次元形状モデル上から、上記の第1条件および第2条件を満たす適切な特徴点を選択することが困難であり、認識タスクのアルゴリズム自体が持つ最大限の認識性能を得ることが困難であった。
 また、特徴点選択方法として、以下に示す方法が考えられる。すなわち、3次元形状モデルおよびその3次元形状モデル上の複数の特徴点候補が指定されると、その3次元形状モデルから、特徴点抽出器における判定用データの学習に用いる学習用画像と、認識タスクの評価に用いる評価用画像とを生成する。そして、特徴点に該当する局所領域および特徴点に該当しない局所領域を学習用画像から切り出し、特徴点に該当する局所領域および特徴点に該当しない局所領域により、判定用データを学習する。さらに、学習により得られた判定用データを用いて評価用画像から特徴点位置を抽出する。その特徴点位置に基づいて、認識タスクを実行したときの認識誤差を表す関数(コスト関数)を計算し、その関数の値が小さくなる特徴点を、抽出された複数の特徴点位置の中から選択する。この方法により、特徴点が得られる。
 また、抽出された特徴点位置の中から、認識誤差が少なくなる特徴点の集合を選択し、さらに、その特徴点の集合の中から、選択する特徴点の数を少なくして(換言すれば、一部の特徴点を除外して)、認識誤差が少なくなる特徴点の集合を選択することを繰り返す方法が考えられる。このように、逐次的に特徴点の数を、最終的に選択したい特徴点の数にまで逐次的に減らしていき、最終的に選択したい数の特徴点を選択する方法も考えられる。さらに、ある特徴点の集合から、一部の特徴点を除外したときの認識誤差を予測することも考えられる。
 しかし、認識誤差が少なくなる特徴点の集合を探索するようにして、逐次的に特徴点の数を減らしながら特徴点を決定した場合、特徴点の集合の最適化の初期段階(すなわち、選択する特徴点の数がまだ多数残っている状態)で、適切な特徴点を除外してしまって、適切な特徴点を除外したまま、特徴点を逐次的に減らしていってしまう場合が生じる。例えば、比較的重要度が低い点が多数残っている場合には、重要度を高く評価することができないような特徴点に関しては、最適化の初期段階で、特徴点の重要度の優劣の差が現れにくいために、選択することが困難となり、除外されてしまう場合がある。すると、最終的に選択したい数の特徴点を選択したときに、初期段階で重要度を高く評価できなかった特徴点が特徴点の集合から漏れてしまう。
 そこで、本発明は、認識タスクにおける認識アルゴリズムに合う適切な特徴点を選ぶことができ、また、重要な特徴点(認識タスクの精度に影響を与える特徴点)が最終的に選択した特徴点の集合から漏れにくくすることができる特徴点選択システム、特徴点選択方法および特徴点選択プログラムを提供することを目的とする。
 本発明による特徴点選択システムは、認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択手段と、特徴点セット選択手段に選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて認識タスクを実行した場合における認識誤差を算出する認識誤差算出手段と、特徴点セット選択手段に選択された特徴点セット毎の認識誤差の最小値が、特徴点候補を用いて認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、特徴点候補を用いて認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択手段が特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに認識タスクに適した特徴点を選択する特徴点選択手段とを備え、特徴点セット選択手段が、特徴点選択手段が特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択することを特徴とする。
 また、本発明による特徴点選択方法は、認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択し、選択した特徴点セット毎に、特徴点セットに含まれる特徴点を用いて認識タスクを実行した場合における認識誤差を算出し、選択した特徴点セット毎の認識誤差の最小値が、特徴点候補を用いて認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、特徴点候補を用いて認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、複数の特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに認識タスクに適した特徴点を選択し、その一つの特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択することを特徴とする。
 また、本発明による特徴点選択プログラムは、コンピュータに、認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択処理、特徴点セット選択処理で選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて認識タスクを実行した場合における認識誤差を算出する認識誤差算出処理、および、特徴点セット選択処理で選択された特徴点セット毎の認識誤差の最小値が、特徴点候補を用いて認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、特徴点候補を用いて認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択処理で特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに認識タスクに適した特徴点を選択する特徴点選択処理を実行させ、特徴点選択処理で特徴点セットを選択させたときに、特徴点セット選択処理で、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択させることを特徴とする。
 本発明によれば、認識タスクにおける認識アルゴリズムに合う適切な特徴点を選ぶことができ、また、重要な特徴点が最終的に選択した特徴点の集合から漏れにくくすることができる。
本発明の第1の実施形態の特徴点選択システムの例を示すブロック図である。 特徴点選択手段が特徴点セット毎のPに応じた確率で、特徴点セットを選択する処理を模式的に表す説明図である。 第1の実施形態の処理経過の例を示すフローチャートである。 認識タスクの総実行時間と認識誤差との関係を示す説明図である。 本発明の第2の実施形態の特徴点選択システムの例を示すブロック図である。 第2の実施形態の処理経過の例を示すフローチャートである。 本発明の最小構成の例を示すブロック図である。
 以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
 図1は、本発明の第1の実施形態の特徴点選択システムの例を示すブロック図である。第1の実施形態の特徴点選択システムは、特徴点抽出学習・評価データ生成手段41(以下、特抽学習・評価データ生成手段41と記す。)と、特徴点抽出器学習手段45と、特徴点位置検出手段46と、特徴点セット選択手段51と、認識誤差算出手段52と、特徴点選択手段53とを備える。また、特抽学習・評価データ生成手段41は、学習データ生成手段42と、学習パターン生成手段43と、評価データ生成手段44とを有する。
 特抽学習・評価データ生成手段41は、3D形状モデルと、その3D形状モデル上の複数の特徴点を指定する情報と、認識タスクで用いられるテンプレート(局所領域)の大きさとが入力される。また、テンプレートの大きさをテンプレートサイズと記す。3D形状モデルにはテクスチャが貼り付けられているものとする。特抽学習・評価データ生成手段41は、入力された3D形状モデルの姿勢(向き)や、3D形状モデルに対する照明の位置等を様々に変更した画像(学習データおよび評価データ)をCG(Computer Graphics )画像として生成する。
 ここで、特徴点抽出器と、学習データおよび評価データとについて説明する。特徴点抽出器は、あるパターンが入力されたときにそのパターンが特徴点であるか否かを判定する。また、特徴点抽出器は、そのような判定を行うための内部データを予め学習しておく。特徴点抽出器には様々なパターン識別法や特徴抽出演算子を利用可能である。
 一例として、非特許文献2に記載のSIFT特徴量を用いることができる。この場合、学習の際、学習データの特徴点に該当する位置に対してSIFT特徴抽出演算子を適用し、SIFT特徴量を抽出する。そして、そのSIFT特徴量を内部データとして記憶しておく。認識タスク等において、ある認識対象となる画像が入力されると、その画像からSIFT特徴量を抽出し、内部データを比較することにより、そのテンプレートが特徴点に該当するか否かを判定する。また、別の方法として、非特許文献3に記載のGLVQのようなパターン識別法を用いることもできる。本実施形態では、これらの方法について詳しく説明する。学習においては、特徴点に該当するテンプレートと、特徴点に該当しないテンプレートをそれぞれ複数入力され、そのテンプレートから内部データを生成する。そして、特徴点抽出器は、認識タスク等において、あるテンプレートが入力されると、内部データと比較することにより、そのテンプレートが特徴点に該当するか否かを判定する。特徴点抽出器が内部データを学習するためのテンプレートを切り出すために用いられる画像を学習データと記す。また、内部データ学習後の特徴点抽出器が入力されたテンプレートに対する判定を適切に行うか否かを評価するために用意される画像を評価データと記す。
 特抽学習・評価データ生成手段41の学習データ生成手段42は、上記の学習データを生成する。また、特抽学習・評価データ生成手段41の評価データ生成手段44は、上記の評価データを生成する。学習データ生成手段42および評価データ生成手段44は、いずれも、3D形状モデルの姿勢(向き)や、3D形状モデルに対する照明の位置等を様々に変更した画像をCG(Computer Graphics )画像として生成する。ただし、3D形状モデルの姿勢(向き)や3D形状モデルに対する照明の位置等の条件は、学習データ生成時と評価データ生成時で異なるようにする。学習データ生成手段42および評価データ生成手段44は、画像生成時の条件が異なる点を除き、同様の処理を行ってそれぞれCG画像(学習データ、評価データ)を生成する。学習データや評価データは複数生成されてもよい。
 また、学習データ生成手段42は、入力された情報によって指定される特徴点に対応する特徴点を学習データ中から特定する。同様に、評価データ生成手段44は、入力された情報によって指定される特徴点に対応する特徴点を評価データ中から特定する。
 特抽学習・評価データ生成手段41の学習パターン生成手段43は、学習データから、特徴点に該当するテンプレートと、特徴点に該当しないテンプレートを複数切り出す。特徴点に該当するテンプレートとして、学習データにおける特徴点やその近辺の点を中心とし、テンプレートサイズによって決まるテンプレートを学習データから複数切り出せばよい。また、特徴点に該当しないテンプレートとして、その特徴点の周囲の点を中心とするテンプレートであって特徴点を含まないテンプレートを学習データから複数切り出せばよい。このとき、学習データ中の特徴点として、学習データ生成手段42が特定した特徴点を用いればよい。
 特徴点抽出器学習手段45は、特徴点抽出器の内部データを学習する。すなわち、与えられるパターンが特徴点であるか否かを判定するための特徴点抽出器の内部データを生成する。特徴点抽出器学習手段45は、特徴点に該当する複数のテンプレートおよび特徴点に該当しない複数のテンプレートを参照して内部データを学習する。
 特徴点位置検出手段46は、特徴点抽出器学習手段45で学習した内部データを用いて、評価データ生成手段44が生成した評価データから特徴点の位置を抽出し、その特徴点位置の情報を特徴点セット選択手段51に入力する。具体的には、特徴点位置検出手段46は、特徴点抽出器が特徴点であるか否かを判定するテンプレートサイズの画像を評価データの各位置から切り出す。そして、特徴点抽出器学習手段45が学習した内部データを用いて、そのテンプレートサイズの画像が特徴点に該当するか否かを判定することによって、どこに特徴点があるのかを決定する。
 特徴点位置検出手段46によって判定された特徴点位置における特徴点群の中から、最適な特徴点の集合が定められる。なお、3D形状モデルの入力時に指定される特徴点の数と、特徴点位置検出手段46によって判定された特徴点位置における特徴点の数は同数である。以下、特徴点位置検出手段46によって判定された特徴点位置における特徴点群を初期特徴点候補と記す場合がある。
 特徴点セット選択手段51は、特徴点位置検出手段46によって判定された特徴点位置における特徴点群を特徴点の候補とし、その特徴点の候補の中から一部の特徴点を選択する。この特徴点の候補から選択される複数の特徴点を特徴点セットと記す。特徴点セットに含める特徴点の数が定められると、特徴点セット選択手段51は、その数の特徴点を含む特徴点セットを一組だけでなく、選び得る各通り選択する。
 認識誤差算出手段52は、特徴点セット選択手段51が定めた各特徴点セットについて、特徴点セットに含まれる特徴点の位置を用いて認識タスクを実行したときの認識誤差を算出する。認識タスクの種類は特に限定されない。例えば、認識誤差算出手段52は、認識タスクとして、姿勢推定を行っても、あるいは、顔識別等の個体識別を行ってもよい。また、例えば、認識タスクとして、顔画像に対する表情認識処理(表情推定)や年齢推定処理を行ってもよい。
 認識誤差算出手段52は、例えば、認識タスクを実行するコンピュータのCPUによって実現される。また、特徴点抽出器学習手段45が内部データを学習する処理、および、認識誤差算出手段52がテンプレートと内部データとを比較してテンプレートが特徴点に該当するか否かを判定する処理は、特徴点抽出器としての動作である。特徴点抽出器学習手段45および認識誤差算出手段52は、例えば、認識タスクにおいて用いられる特徴点抽出器として動作するコンピュータのCPUによって実現される。
 認識誤差算出手段52は、特徴点セットを用いて認識タスクを行う毎に、その認識タスクの認識結果で生じた認識誤差を求める処理も行う。認識誤差は、認識タスクで得られた認識結果と、正解との差である。例えば、認識タスクが姿勢推定であるとすると、認識誤差算出手段52は、評価データに対して特徴点セットを用いて姿勢推定を行った結果得た姿勢(向き)と正解となる姿勢との差を認識誤差として計算すればよい。また、認識タスクとして顔識別を行う場合、複数の人物について3D形状モデルおよびその3D形状モデル上の複数の特徴点を指定する情報を入力しておき、各人物の評価データを作成しておく。そして、その評価データに対して特徴点セットを用いて顔認識を行った結果、顔認識に失敗した人物の割合を認識誤差として計算してもよい。
 特徴点選択手段53は、特徴点セットが定めた特徴点セットの中から、各特徴点セットの認識誤差を用いて、一つの特徴点セットを定める。
 特徴点セット選択手段51は、特徴点選択手段53によって定められた一つの特徴点セットを特徴点の候補として、その特徴点の候補の中から一部の特徴点を選択する。すなわち、特徴点セットを選択する。このときにも、特徴点セット選択手段51は、特徴点セットを一組だけでなく、選び得る各通り選択する。
 この結果、特徴点セット選択手段51による複数の特徴点セットの選択、認識誤差算出手段52による特徴点セット毎の認識誤差の算出、特徴点選択手段53による、その複数の特徴点セットの中からの一つの特徴点セットの選択が繰り返されることになる。そして、特徴点選択手段53が複数の特徴点セットから一つの特徴点セットを選択したときに、その特徴点セットに含まれる特徴点数が最終的にユーザの所望する特徴点数になっていれば、特徴点選択手段53は、その特徴点セットに含まれる特徴点群を、認識タスクにおける認識アルゴリズムに合う適切な特徴点として決定する。なお、上記の繰り返し処理は、後述のステップS21~S26(図3参照)の繰り返し処理に相当する。
 そして、特徴点選択手段53は、複数の特徴点セットの中からの一つの特徴点セットを選択したときに、次に、特徴点セット選択手段51が特徴点セットを選択する際にその特徴点セットに含めるべき特徴点の数を定める。例えば、複数の特徴点セットの中からの一つの特徴点セットを選択したときに、その特徴点セットに含まれる特徴点数から一定数を減算した値を、次に特徴点セット選択手段51が特徴点セットに含める特徴点数として定める。この減算する一定数の値は、予め定めておけばよい。
 ただし、特徴点セット選択手段51は、一定の確率で、特徴点選択手段53が選択した一つの特徴点セットに対して、その特徴点セットには含まれていないが、初期特徴点候補に含まれる特徴点を含めるようにする。例えば、特徴点選択手段53が選択した一つの特徴点セットに対して、初期特徴点候補に含まれる特徴点を追加してもよい。あるいは、特徴点選択手段53が選択した一つの特徴点セット内の一部の特徴点を、初期特徴点候補に含まれる特徴点に入れ替えてもよい。特徴点選択手段53が選択した一つの特徴点セットに対して、一定の確率で新たに含めるようにする特徴点の個数は、例えば、予め定めておけばよい。また、特徴点選択手段53が選択した一つの特徴点セットに対して、一定の確率で新たに特徴点を含める場合、その特徴点は、特徴点選択手段53が選択した特徴点セットには含まれていないが初期特徴点候補に含まれる特徴点の中からランダムに選択すればよい。また、特徴点選択手段53が選択した一つの特徴点セット内の一部の特徴点を他の特徴点に入れ替える場合にも、入れ替える特徴点はランダムに選択すればよい。このように、特徴点選択手段53が選択した一つの特徴点セットに対して、ランダムに特徴点を含めるようにした場合には、特徴点セット選択手段51は、その特徴点を含めた特徴点セットの中から、その一部の特徴点群を特徴点セットとして選択していく。以下の説明では、特徴点選択手段53が選択した一つの特徴点セットに対して、特徴点セット選択手段51が一定の確率で特徴点を追加する場合を例にして説明する。
 例えば、90個の特徴点を含む複数の特徴点セットの中から、特徴点選択手段53が、1つの特徴点セットを選択し、次に特徴点セット選択手段51が特徴点セットを選択する場合、89個の特徴点を含む特徴点を選択すると定めたとする。特徴点セット選択手段51は、その1つの特徴点セット(特徴点数は90個)から、89個の特徴点からなる特徴点セットを各通り選択していけばよい。ただし、特徴点セット選択手段51は、毎回このような動作をするのではなく、一定の確率で、その1つの特徴点セット(上記の例では特徴点数は90個)に対して、初期特徴点候補からランダム選択した特徴点(例えば、5個の特徴点)を追加する。そして、特徴点セット選択手段51は、その特徴点を追加した後の特徴点セット(本例では95個の特徴点を含む特徴点セット)を特徴点の候補とし、その特徴点候補の中から、その一部の特徴点群を特徴点セットとして選択していく。
 また、このように、一定の確率のもとで、特徴点セット選択手段51が、選択された特徴点セットに対して特徴点を追加した場合には、特徴点選択手段53が次回の特徴点セット選択時における特徴点数として定めた数も、増加させてもよい。この特徴点数の増加数は、例えば、予め定めておけばよい。例えば、上記の例のように、特徴点セット選択手段51が、90個の特徴点からなる特徴点セットに特徴点を追加した場合には、特徴点セット選択手段51は、特徴点選択手段53が定めた特徴点数(89個)も増加させて、例えば、92個とし、95個の特徴点候補の中から、92個の特徴点を含む特徴点セットを各通り選択していけばよい。以下の説明では、このように、特徴点セット選択手段51が、選択された特徴点セットに対して特徴点を追加した場合には、特徴点選択手段53が次回の特徴点セット選択時における特徴点数として定めた数も増加させる場合を例にして説明する。
 また、特徴点セット選択手段51は、選択された特徴点セットに対して特徴点を追加するか否かを、以下のように判定すればよい。例えば、上記の「一定の確率」がK(0<K<1)であるとすると、特徴点セット選択手段51は、0より大きく1未満の範囲で乱数を発生させ、その値がK以下であれば、特徴点選択手段53に選択された一つの特徴点セットに対して特徴点を追加し、特徴点追加後の特徴点セットを新たな特徴点候補とすればよい。また、発生させた乱数がKより大きい値であれば、特徴点選択手段53に選択された一つの特徴点セットをそのまま新たな特徴点候補とすればよい。なお、このように乱数を用いる方法は、特徴点選択手段53に選択された特徴点セットに対して一定の確率で特徴点を追加する方法の一例であり、他の方法を用いてもよい。
 また、上記の説明では、特徴点セット選択手段51、認識誤差算出手段52および特徴点選択手段53による繰り返し処理を行い、特徴点選択手段53が複数の特徴点セットから一つの特徴点セットを選択したときに、その特徴点セットに含まれる特徴点数が最終的にユーザの所望する特徴点数になっていれば、特徴点選択手段53は、その特徴点セットに含まれる特徴点群を、認識タスクにおける認識アルゴリズムに合う適切な特徴点として決定するものとして説明した。特徴点セット選択手段51は、最初に複数の特徴点セットを選択するときに、特徴点位置検出手段46によって判定された特徴点位置における特徴点群の中から、ユーザの所望する数の特徴点を含む特徴点セットを選び得る各通り選択してもよい。
 ただし、多数の初期特徴点候補の中から、一度の処理で少数の特徴点からなる特徴点セットを選択すると、選択し得る特徴点セットの数が膨大になる。例えば、初期特徴点候補の数をNとし、ユーザの所望の特徴点数をMとすると、選択し得る特徴点セットの数は、となる。ここで、MがNに比べて小さいと、の値は膨大となり、現実的な計算時間でユーザの所望数の最適な特徴点を決定することが困難になる。よって、既に説明したように、初期特徴点候補から、段階的に特徴点数を削減しながら、特徴点セットを選択していき、ユーザの所望数の特徴点を決定することが好ましい。
 次に、特徴点選択手段53について、より詳細に説明する。特徴点選択手段53は、特徴点セット選択手段51がある個数の特徴点からなる特徴点セットを選び得る各通り選択した場合、その特徴点セットの中から、認識誤差が最小となる特徴点セットを選択する。ただし、その最小となる認識誤差が、特徴点選択手段53が前回選択した特徴点セットを用いて認識タスクを行ったときの認識誤差(特徴点選択手段53が初回に特徴点セットを選択する場合には、初期特徴点候補を用いて認識タスクを行ったときの認識誤差)よりも大きくなる場合には、以下のように特徴点セットを選択する。すなわち、各特徴点セットiについて、認識誤差の増加分aを求める。認識誤差の増加分aは、特徴点セットiを用いて認識タスクを行ったときの認識誤差から、特徴点選択手段53が前回選択した特徴点セットを用いて認識タスクを行ったときの認識誤差(特徴点選択手段53が初回に特徴点セットを選択する場合には、初期特徴点候補を用いて認識タスクを行ったときの認識誤差)を減算した値である。そして、特徴点選択手段53は、各特徴点セットiについて求めた認識誤差の増加分aを用いて、以下に示す式(1)で算出される値Pを計算する。
Figure JPOXMLDOC01-appb-M000001
 式(1)から分かるように、Pは、認識誤差の増加量aの指数関数の逆数である。また、後述するように、このPは、特徴点セットiの選択確率を所定数倍したものである。
 そして、特徴点選択手段53は、各特徴点セットのPに応じた確率で、特徴点セットを一つ選択する。図2は、特徴点選択手段53が特徴点セット毎のPに応じた確率で、特徴点セットを選択する処理を模式的に表す説明図である。図2に示す例では、説明を簡単にするため、特徴点セットが特徴点セット1~3の3つであり、特徴点セット毎にP,P,Pを求めた場合を示している。特徴点選択手段53は、例えば、0より大きくP+P+P以下の範囲で乱数を発生させる。そして、特徴点選択手段53は、その乱数値が0より大きくP以下であれば特徴点セット1を選択し、乱数値がPより大きくP+P以下であれば特徴点セット2を選択し、乱数値がP+Pより大きくP+P+P以下であれば、特徴点セット3を選択する。このように選択することで、各特徴点セットのPに比例した確率で、特徴点セットを一つ選択することができる。このように、特徴点選択手段53は、Pの値が大きいほど選択されやすく、Pの値が小さいほど選択されにくくするという条件のもとで、特徴点セットを一つ選択する。ここでは、乱数を用いた場合を例に説明したが、他の方法で、特徴点セットを選択してもよい。
 上記の特徴点セット毎に算出したPは、特徴点セットの選択確率を所定数倍した値である。すなわち、特徴点セットiの選択確率をpとすると、特徴点セット毎の選択確率pの総和は1となるので、p=(1/ΣP)Pである。よって、式(1)のPは、特徴点セットの選択確率pをΣP倍した値である。ここで、ΣPは、特徴点セット毎に算出したPの総和である。
 また、式(1)におけるTの値は、例えば、特徴点選択手段53が特徴点セットを選択する処理の回数が増えていき、選択される特徴点セットに含まれる特徴点数の数が、最終的にユーザが所望する特徴点数に近づくにつれて小さくしていけばよい。例えば、特徴点選択手段53が特徴点セットを選択する処理の回数がt回目の時におけるTの値をTと表すことにする。この場合、特徴点選択手段53が特徴点セットを選択する処理の回数がt+1回目になったときのTt+1は、以下に示す式(2)によって求めればよい。
 Tt+1=γ・T         式(2)
 式(2)において、γは1以下の定数であり、特に、1未満とすることが好ましい。具体的には、γは0.8~0.9程度の定数とすることが好ましい。
 上記の変数Tは、シミュレーテッドアニーリング(Simulated Annealing )による最適化(ここでは特徴点セットの最適化)における温度に相当するということが言え、以下、変数Tを温度と称する場合がある。また、式(2)は、シミュレーテッドアニーリングによる最適化における冷却関数に相当するということが言え、以下、式(2)を冷却関数と称する場合がある。
 ただし、特徴点セット選択手段51が選択する特徴点セットに含まれる特徴点数が多いときには、温度Tが高いと、不適切な特徴点を選択する可能性が高くなりすぎる。そこで、特徴点セット選択手段51が選択する特徴点セットに含まれる特徴点数がある程度小さくなるまでは(すなわち、特徴点数に関して予め定めた閾値より小さくなるまでは)、特徴点選択手段53は、最小となる認識誤差が、特徴点選択手段53が前回選択した特徴点セットを用いて認識タスクを行ったときの認識誤差より大きい場合であっても、認識誤差が最小となる特徴点セットを選択することが好ましい。そして、特徴点セット選択手段51が選択する特徴点セットに含まれる特徴点数が閾値より小さくなっていて、最小となる認識誤差が、特徴点選択手段53が前回選択した特徴点セットを用いて認識タスクを行ったときの認識誤差より大きい場合には、各特徴点セットのPに応じた確率で、特徴点セットを一つ選択することが好ましい。最小となる認識誤差が、特徴点選択手段53が前回選択した特徴点セットを用いて認識タスクを行ったときの認識誤差以下ならば、特徴点選択手段53は、認識誤差が最小となる特徴点セットを選択する。
 特抽学習・評価データ生成手段41(学習データ生成手段42、学習パターン生成手段43および評価データ生成手段44)、特徴点抽出器学習手段45、特徴点位置検出手段46、特徴点セット選択手段51、認識誤差算出手段52、特徴点選択手段53は、例えば、特徴点選択プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、特徴点選択システムの記憶装置(図示せず。)から特徴点選択プログラムを読み込み、そのプログラムに従って、上記の各手段として動作してもよい。あるいは、各手段がそれぞれ別々の専用回路によって実現されていてもよい。
 次に、動作について説明する。
 図3は、第1の実施形態の処理経過の例を示すフローチャートである。特抽学習・評価データ生成手段41に3D形状モデルと、その3D形状モデル上の複数の特徴点を指定する情報と、テンプレートサイズが入力されると、学習データ生成手段42は、その3D形状モデルの姿勢や、3D形状モデルに対する照明の位置を様々に変化させた複数の画像をCG画像として生成することにより、複数の学習データを生成する(ステップS11)。ステップS11で生成する複数の画像が学習データ群である。また、ステップS11で入力される3D形状モデルは、一つの個体の3D形状モデルであっても、複数の個体の3D形状モデルであってもよい。例えば、一人の人物の顔の3D形状モデルが入力されても、複数の人物の顔の3D形状モデルが入力されてもよい。また、ここでは、顔の3D形状モデルを例示したが、3D形状モデルは顔以外のモデルであってもよい。なお、入力された情報によって指定される特徴点の数は、例えば10000個以上等のように多数であってもよい。また、このような特徴点として、例えば、エッジが強く現れている点等を指定すればよい。
 次に、学習データ生成手段42は、入力された情報によって指定される各特徴点に対応する学習データ中の各特徴点を特定する(ステップS12)。続いて、学習パターン生成手段43が、学習データ群から、特徴点に該当するテンプレートおよび特徴点に該当しないテンプレートをそれぞれ複数切り出す(ステップS13)。学習パターン生成手段43は、ステップS12で特定された各特徴点およびその近辺の点を中心とするテンプレートを、特徴点に該当するテンプレートとして切り出す。また、ステップS12で特定された各特徴点の周囲の点を中心とし特徴点を含まないテンプレートを、特徴点に該当しないテンプレートとして切り出す。いずれのテンプレートの大きさも、テンプレートサイズによって指定された大きさである。
 次に、特徴点抽出器学習手段45は、ステップS13で切り出された「特徴点に該当する複数のテンプレート」および「特徴点に該当しない複数のテンプレート」を参照して、特徴点毎に、特徴点抽出器の内部データを学習する(ステップS14)。
 また、評価データ生成手段44は、特抽学習・評価データ生成手段41に入力された3D形状モデルの姿勢や、3D形状モデルに対する照明の位置を様々に変化させた複数の画像をCG画像として生成することにより、複数の評価データを生成する(ステップS15)。ステップS14で生成する複数の画像が評価データ群である。ステップS15では、3D形状モデルの姿勢や、照明位置の条件を学習データ生成時(ステップS11)とは変えて評価データを生成する。
 特徴点位置検出手段46は、評価データ生成手段44に生成された評価データからテンプレートを切り出し、テンプレートと内部データとを比較して、そのテンプレートが特徴点に該当するか否かを判定する。この判定により、評価データにおけるどの部分が特徴点であるかを判定する(ステップS16)。
 ステップS16で特徴点位置検出手段46によって判定された特徴点位置における特徴点群が、初期特徴点候補であり、以降の処理で、初期特徴点候補から、認識アルゴリズムに合う適切な特徴点が選択される。
 また、特抽学習・評価データ生成手段41に対して指定された複数の特徴点の数と、ステップS16で判定される特徴点位置の数は同数となる。
 なお、本実施形態では、学習データ生成手段42および評価データ生成手段44が3D形状モデルからCG画像として学習データや評価データを生成する場合を例に説明しているが、その3次元形状モデルを撮影した実際の画像が入手可能な場合には、その実際の画像を学習データや評価データとして用いてもよい。その場合、特徴点選択システムは、学習データ生成手段42や評価データ生成手段44を備えていなくてよい。さらに、認識タスクで用いる特徴点の位置データを特徴点選択システムの外部の特徴点抽出器から取得して利用してもよい。すなわち、外部の特徴点抽出器が検出した特徴点の位置データを取得して、その位置データに対応する特徴点群を初期特徴点候補としてもよい。この場合、特徴点選択システムは、特徴点抽出器学習手段45および特徴点位置検出手段46を備えていなくてもよい。なお、本実施形態では、ステップS16で判定した特徴点位置における特徴点を初期特徴点候補として、以降の処理を行う場合を例にして説明する。
 特徴点選択システムは、ステップS16までの処理を行った後、以下の処理を行う。まず、特徴点セット選択手段51は、特徴点位置検出手段46によって判定された特徴点位置における特徴点群を特徴点の候補とし、その特徴点の候補から特徴点セットを選択する(ステップS21)。最初にステップS21に移行した場合には、特徴点セット選択手段51は、初期特徴点候補となる特徴点数から一定数を減算した数を求め、その数の特徴点を含む特徴点セットを選択する。
 なお、特徴点セット選択手段51は、特徴点数が定められているという条件のもとで、特徴点セットを選び得る各通り選択するが、特徴点セット選択手段51は、ステップS21に移行する毎に、1つずつ特徴点セットを選択する。後述するように、ステップS21、S22,S23のループ処理を未選択の特徴点セットがなくなるまで繰り返し、この繰り返し処理でステップS21に複数回移行することで、特徴点セット選択手段51は、特徴点セットを選び得る各通り選択する。このステップS21~S23の繰り返し処理において選択される各特徴点セットの特徴点数は共通である。
 本実施形態では、特徴点セット選択手段51が、特徴点セットを選び得る各通り選択する場合を例に説明する。このように、特徴点セットを各通り選択することが好ましいが、特徴点セットの数が多くなり計算量が多くなるのであれば、特徴点セット選択手段51は、定められた特徴点数のもとで選択し得る各通りの特徴点セットの中から、一部の特徴点セットをランダムに複数個選択してもよい。望ましい方法は、第2の実施形態で説明するように、現在の候補から特定の点を除去した組み合わせにした場合に、認識誤差の増大量が多い特徴点を優先的に除外するように、特徴点を選択する確率に重みを付けて特徴点毎に特徴点セットに含めるかどうかを決定することがこのましい。なお、第1の実施形態では、上述のように、選び得る各通りの特徴点セットを選択する場合を例にする。
 また、既に説明したように、特徴点セット選択手段51は、最初に複数の特徴点セットを選択するときに(すなわち、最初にステップS21~S23の繰り返し処理を行うときに)、初期特徴点候補の中から、ユーザの所望する数の特徴点を含む特徴点セットを選び得る各通り選択してもよい。しかし、例えば、初期特徴点候補の数が10000個等のように多く、一方、ユーザの所望する特徴点数が初期特徴点候補に対して大幅に少ない場合(例えば、10個等)、特徴点セットの数が膨大になる。すると、ステップS21~S23の繰り返し処理の回数も膨大となり、処理時間がかかりすぎてしまう。そこで、最初にステップS21~S23の繰り返し処理を行う場合には、初期特徴点候補の数よりも僅かに少ない数の特徴点を含む特徴点セットを各通り選択すればよい。また、後述のステップS26では、ステップS24で選択される特徴点セットに含まれる特徴点数より僅かに少ない数の特徴点数を、更新後の特徴点数として定めればよい。この特徴点数の減少量は、予め定めておけばよい。
 ステップS21で特徴点セットが選択されると、認識誤差算出手段52は、その特徴点セットに属する各特徴点を用いて、ステップS15で生成された評価データに対して認識タスクを実行する(ステップS22)。認識タスクの種類は、本発明による特徴点選択が確定した後に、その特徴点を用いて実行する認識タスクであればよい。例えば、姿勢推定、個体識別、表情推定、年齢推定等が挙げられるが、他の認識タスクを行ってもよい。認識タスクの処理過程において、評価データから得られるテンプレートと、ステップS14で学習された特徴点抽出器の内部データとにより、そのテンプレートが特徴点に該当するか否かを判定する。認識タスクの処理の例については後述する。
 また、認識タスク実行手段52は、認識タスクを実行するとともに、ステップS21で選択された特徴点セットについて認識誤差も計算する。
 続いて、特徴点セット選択手段51は、特徴点の候補から特徴点セットとして選択されていない特徴点の組み合わせがあるか否かを判定する(ステップS23)。すなわち、未だ選択されておらず、ステップS22で認識誤差が計算されていない特徴点セットがあるか否かを判定する。未選択の特徴点セットがあれば(ステップS23におけるYes)、特徴点セット選択手段51および認識誤差算出手段52は、ステップ21~S23の処理を繰り返す。この結果、選び得る各通りの特徴点セットについて認識誤差が算出される。
 ステップS23において、未選択の特徴点セットがなければ(ステップS23におけるNo)、特徴点選択手段53は、認識誤差が最小となる特徴点セットを選択する(ステップS24)。ステップS24で選択された特徴点セットの認識誤差が、ステップS21で選択された各特徴点セットの中で最小となっているので、その特徴点セットが認識タスクの認識アルゴリズムにとって好ましいと言うことができる。
 ただし、一般に、認識タスクに用いる特徴点の数を削減すると、認識誤差は大きくなる。従って、ステップS21で選択した各特徴点セットの中で最小の認識誤差であっても、特徴点数を削減する前の特徴点セットを用いた場合の選択誤差よりも大きくなる。ステップS24では、認識誤差が最小となる特徴点セットを選択することを原則とするが、その最小となる認識誤差が、特徴点選択手段53が前回のステップS24で選択した特徴点セットを用いて認識タスクを行ったときの認識誤差(特徴点選択手段53が最初にステップS24に移行して特徴点セットを選択する場合には、初期特徴点候補を用いて認識タスクを行ったときの認識誤差)よりも大きい場合には、ステップS21で選択した各特徴点セットについて認識誤差の増加分aを計算し、前述の式(1)で算出される値Pを計算する。なお、aは、前回のステップS24で選択した特徴点セットについて算出した認識誤差(最初にステップS24に移行した場合には初期特徴点候補を用いて認識タスクを行ったときの認識誤差)から、着目している特徴点セットについて算出した認識誤差への増加量である。また、Pは、既に説明したように、Pに対応する特徴点セットiの選択確率pを所定数倍(ΣP倍)した値である。
 また、既に説明したように、特徴点選択手段53が特徴点セットを選択する処理(ステップS24)に移行した回数がt回目のときのTの値をTと表すこととし、ステップ24に移行した回数がt+1回目のときのTの値をTt+1とし、γを1以下の定数(1未満であることが好ましい)とすると、式(1)における温度Tは、例えば、前述の式(2)によって、ステップS24の実行時毎に計算すればよい。
 また、特徴点セット選択手段51が選択する特徴点セットに含まれる特徴点数が多いときには、温度Tが高いと、不適切な特徴点を選択する可能性が高くなりすぎる。よって、特徴点セット選択手段51が選択する特徴点セットに含まれる特徴点数が予め定めた閾値より小さくなるまでは、各特徴点セットの認識誤差のうち最小となる認識誤差が、ステップS21~S26の繰り返し処理における前回のステップS24で選択した特徴点セットで認識タスクを行ったときの認識誤差より大きい場合であっても、認識誤差が最小となる特徴点セットを選択することが好ましい。
 ステップS24の後、特徴点選択手段53は、ステップS24で選択した特徴点セットに属する特徴点の数が、ユーザの所望の特徴点数(換言すれば、最終的に選択する特徴点数)になったか否かを判定する(ステップS25)。ステップS24で選択した特徴点セットに属する特徴点の数がユーザの所望の特徴点数になっていれば(ステップS25におけるYes)、特徴点選択手段53は、その特徴点セットに属する特徴点を、認識アルゴリズムに適した特徴点として決定し、処理を終了する。このとき、その特徴点群の情報を出力してもよい。なお、ユーザの所望の特徴点数は、例えば、予め特徴点選択手段53が記憶していてもよい。あるいは、ステップS11以降の処理の開始前に、事前に外部から入力されていてもよい。
 このように、ステップS24で選択した特徴点セットに属する特徴点の数がユーザの所望の特徴点数になった場合、特徴点選択手段53は、ステップS21~S26の繰り返し処理を停止して、処理を終了する。このとき、特徴点選択手段53は、直近のステップS21~S23の繰り返し処理で選択された複数の特徴点セットのうち、認識誤差が最小となる特徴点セットに属する特徴点を認識アルゴリズムに適切な特徴点として決定してもよい。
 ステップS24で選択した特徴点セットに属する特徴点の数がユーザの所望の特徴点数になっていなければ(具体的には、ユーザの所望の特徴点数よりも多ければ)、特徴点選択手段53は、ステップS21に戻ったときに特徴点セット選択手段51が特徴点セットに含める特徴点の数を更新する(ステップS26)。ステップS26では、特徴点選択手段53は、ステップS24で選択した特徴点セットに属する特徴点の数から一定数を減算した値を、新たな特徴点数として定めればよい。この減算する値は予め定めておけばよい。
 ステップS26の後、特徴点選択システムは、ステップS21以降の処理を繰り返す。ステップS26からステップS21に戻ったときには、特徴点セット選択手段51は、ステップS24で選択された一つの特徴点セットを特徴点の候補として、その特徴点の候補の中から、ステップS26で更新された特徴点数の特徴点を含む特徴点セットを選択する。そして、認識誤差算出手段52が、その特徴点セットに属する特徴点を用いて評価データに対する認識タスクを実行し、そのときの認識誤差を算出する(ステップS22)。ステップS26で更新された特徴点数の特徴点を含む特徴点セットが全て選択された否かを判定し(ステップS23)、その特徴点セットが全て選択し、各特徴点セットについて認識誤差を算出するまで、ステップS21~23の繰り返し処理を行う。
 ただし、ステップS26からステップS21に戻ったときに、特徴点セット選択手段51は、一定の確率で、ステップS24で特徴点選択手段53が選択した特徴点セットに対して、その特徴点セットには含まれていないが、初期特徴点候補に含まれる特徴点を含める。本例では、特徴点セット選択手段51は、ステップS24で選択された特徴点セットに対して、その特徴点セットには含まれていないが、初期特徴点候補に含まれる特徴点をランダムに追加する処理を、一定の確率で実行する。追加する特徴点の個数は、予め定めておけばよい。また、このように、ステップS24で選択された特徴点セットに対して、特徴点を追加する場合、特徴点セット選択手段51は、ステップS26で更新された特徴点数(次の特徴点セット選択時に特徴点セットに含める特徴点の数)も増加させてよい(本例では増加させるものとする)。ただし、この特徴点数は、特徴点を追加後の特徴点セットに得する特徴点数よりも小さくなるようにする。ステップS26からステップS21に戻ったときに、ステップS24で選択された特徴点セットに対して特徴点セット選択手段51が特徴点を追加するか否かは、既に説明したように、例えば、乱数を用いて決定すればよい。
 なお、ここでは、ステップS24で選択された特徴点セットに対して、一定の確率で特徴点を追加する場合を例にしているが、ステップS24で選択された特徴点セット内の一部の特徴点を他の特徴点に入れ替えてもよい。
 上記の一定の確率のもとで、特徴点セット選択手段51が特徴点セットに特徴点を追加した場合は、特徴点セット選択手段51は、ステップS21~S23の繰り返し処理において、特徴点が追加された特徴点セットを特徴点の候補として、その特徴点の候補の中から、定めた特徴点数分の特徴点を含む特徴点セットをそれぞれ選択していく。また、ステップS26からステップS21に戻ったときに、特徴点セット選択手段51が、上記のような特徴点セットに対する特徴点追加処理を行わない場合には、特徴点セット選択手段51は、ステップS21~S23の繰り返し処理において、前のステップS24で選択された特徴点セットを特徴点候補として、その特徴点の候補の中から、ステップS26で更新された特徴点数分の特徴点を含む特徴点セットをそれぞれ選択していく。
 ステップS23で、未選択の特徴点がないと判定したときには、ステップS24に移行し、既に説明した動作と同様の動作を行えばよい。そして、ステップS24で選択した特徴点セットに属する特徴点の数が、最終的に選択しようとする特徴点数まで減少したならば(ステップS25におけるYes)、処理を終了する。
 次に、ステップS22において、認識誤差算出手段52が実行する認識タスクの実行例を説明する。ここでは、認識タスクとして姿勢推定を行う場合を例にして説明する。姿勢推定は、「画像から抽出された特徴点の位置」と「3D形状モデル上の特徴点から計算される、ある姿勢における画像上の特徴点の位置」との間の誤差(再投影誤差)が最小となるような姿勢を計算する処理である。再投影誤差をεとすると、再投影誤差εは、以下に示す式(3)で表される。
Figure JPOXMLDOC01-appb-M000002
 式(3)において、xは特徴点抽出器の学習済みの内部データを用いて画像(評価データ)から抽出された特徴点の位置である。また、Xはその特徴点に対応する3D形状モデル上の特徴点の位置である。また、透視カメラモデルPを以下の式(4)のように定義すると、式(3)におけるp,p,pは、P=[p p pとなる値である。p,p,pから姿勢を計算することができるので、εが最小となるようなp,p,pを求めることが姿勢推定であるということができる。
Figure JPOXMLDOC01-appb-M000003
 ただし、Aは、カメラの内部パラメータ行列であり、カメラの内部パラメータ行列として現実的な値に定めておけばよい。また、特徴点確定後に実際に画像を撮影して認識タスクを行うときに、その画像を撮影するカメラの内部パラメータ行列をAとして用いてもよい。Mは、以下の式(5)で表される対象物体の姿勢パラメータ行列である。式(5)において、Rは対象の回転を表しており、Tは物体の3次元位置を表している。
Figure JPOXMLDOC01-appb-M000004
 また、アフィンカメラモデルPを以下の式(6)のように定義する。
Figure JPOXMLDOC01-appb-M000005
 このアフィン変換モデルPにより、3D形状モデル上の特徴点Xは画像上の特徴点xとして投影される。
Figure JPOXMLDOC01-appb-M000006
 式(7)において、チルダを付したxは、xの斉次表現である。式(7)ではベクトルの第3要素が常に一定であるため、Pの上2行を持つ部分行列Pa2を用いて、以下に示す式(8)のように表すことができる。
 x=Pa2X     式(8)
 Pa2は8の要素を持つため、4点以上の特徴点が与えられれば、Pa2を最小二乗法で計算できる。また、求められたPa2から姿勢パラメータMを計算することができる。認識誤差算出手段52は、X(3D形状モデル上の特徴点の位置)およびx(評価データから抽出される特徴点の位置)および式(8)を用いて行列Pa2を計算する。そして、そのPa2および式(6)とにより、姿勢パラメータ行列Mにおける回転Rおよび物体の3次元位置T)を求め、これを初期値とする。
 また、式(4)に示す透視カメラモデルPを用いて、3D形状モデル上の特徴点Xは画像上の特徴点xとして投影される。
Figure JPOXMLDOC01-appb-M000007
 ここで、λは定数倍の不定性を表すスカラ量である。
 認識誤差算出手段52は、式(3)で表される再投影誤差εを繰り返し法により最適化することで、姿勢推定を行う。j回目の反復結果により得られる姿勢パラメータを用いて計算されるカメラ行列をPPjとする。このとき、各姿勢パラメータの更新値を、Δφ,Δθ,Δψ,Δt,Δt,Δtを用いて、以下の式(10)が成立する。認識誤差算出手段52は、式(10)によりΔφ,Δθ,Δψ,Δt,Δt,Δtを計算する。
Figure JPOXMLDOC01-appb-M000008
 認識誤差算出手段52は、3組以上の対応点組を用い、最小二乗法を用いて更新パラメータを求め、その更新パラメータを用いて、以下の式(11)によりカメラ行列を更新する。
Figure JPOXMLDOC01-appb-M000009
 式(11)において、Pは各パラメータよりカメラ行列を計算する関数である。前述の初期値から更新パラメータが十分に小さくなるまで、認識誤差算出手段52は、式(10)、式(11)の計算を繰り返すことにより、再投影誤差εを最小にするような姿勢を表す投影行列P(換言すればp,p,p)を求めればよい。このεが認識誤差である。ステップS24において、特徴点選択手段53は、εが最小となる特徴点セットを選択する。ただし、最小となるεが、前回のステップS24で選択した特徴点セットにおけるεより増加していれば、既に説明したように特徴点セット毎に、式(1)でPを計算し、Pに応じて確率的に特徴点セットを選択する。
 上記の例では、認識誤差算出手段52は、認識誤差としてεを計算したが、認識誤差としてε以外の値を計算してもよい。例えば、認識誤差算出手段52は、認識誤差として、以下の式(12)のεを計算してもよい。
Figure JPOXMLDOC01-appb-M000010
 式(12)においてハット記号を付したXは、Xの真値であり、R,Tは姿勢推定により得られた測定結果である。式(12)においてiで示す特徴点に関する各項の積算を行う際に、iで示す特徴点の特徴点抽出誤差を利用し、誤差の大きい特徴点の重みを小さくすることによって、認識性能を向上させることもできる。この場合、各項に特徴点抽出誤差の分散の逆数を用いることが一般的である。なお、特徴点抽出誤差とは、評価データから切り出したテンプレートに基づいて求めた特徴点の位置と、3D形状モデル上の指定された特徴点に対応する正しい特徴点の位置との差である。
 本実施形態によれば、特徴点セット毎に実際に認識タスクを実行し、その結果得られる認識結果と正解との差(認識誤差)や、認識誤差の増加量a(式(1)参照)を利用して、ステップS24で特徴点セットを選択していく。よって、実際に特徴点を用いて実行する認識タスクの認識アルゴリズムに適切な複数の特徴点を選ぶことができる。
 また、仮に、図3に示すフローチャートのステップS24において、常に、認識誤差が最小となる特徴点セットを選択するものとし、ステップS26からステップS21に戻ったときに特徴点セットに対する特徴点の追加を行うことがないとする。すると、ステップS24で選択された特徴点セットに属さない特徴点は、その後の処理で選択されることはない。このため、特徴点セットに属する特徴点数が多い初期段階で重要度を高く評価することができないような特徴点は、早い段階で選択候補から漏れてしまいやすい。
 一方、本実施形態では、ステップS24において、各特徴点セットについての認識誤差のうち最小となる認識誤差が、前回のステップS24で選択した特徴点セットについての認識誤差より大きい場合、前述の式(1)によりPを特徴点セット毎に計算し、Pの値が大きいほど選択されやすく、Pの値が小さいほど選択されにくくするという条件のもとで、特徴点セットを一つ選択する。Pの値が小さい特徴点セットに関しては、選択されにくいものの、選択される余地を残しているので、特徴点数が多い初期段階で重要度を高く評価することができないような特徴点を漏れにくくすることができる。
 また、ステップS26からステップS21に戻ったときに、特徴点セット選択手段51は、一定の確率で、ステップS24で選択された特徴点セットに対して、その特徴点セットに含まれていない特徴点を含ませるようにする。そして、ステップS21~S23の繰り返し処理におけるステップS21では、その特徴点セットを特徴点の候補として、その特徴点の候補の中から特徴点セットを各通り選択していく。従って、特徴点数が多い初期段階で重要度を高く評価することができないような特徴点がステップS24で選択される特徴点セットから漏れてしまったとしても、ステップS21でそのような特徴点を含む特徴点セットを再度選択することができる。換言すれば、一旦漏れてしまった重要な特徴点を再度復活させるようにして、重要な特徴点を最終的な選択結果に残しやすくすることができる。
 また、上記の例では、ステップS26で特徴点数を削減しながら、ステップS21~S26の繰り返し処理を行う。よって、一定の確率で特徴点数が増加することもあるが、特徴点セットに含める特徴点数を逐次的に減少させるようにして、最終的に選択する特徴点を決定する。このようにすることで、最終的に選択する特徴点を決定するまでの計算量を抑えることができる。
 また、一つの個体の3D形状モデルおよびその3D形状モデル上の複数の特徴点を指定することによって、特定の個体にとって適切な特徴点を選択したり、特徴点抽出器の内部データを生成したりすることができる。
 また、本実施形態では、3D形状モデルから生成した学習データから切り出したテンプレートに基づいて、3D形状モデル上の指定された各特徴点について内部データ(特徴点抽出器の内部データ)を学習する。そして、3D形状モデルから生成した評価データを用いて、その内部データによる特徴点判定を行って認識タスクを実行したときの認識誤差を評価することができ、特徴点判定および認識タスクの両者を通じて、精度よく認識タスクを実行することができる特徴点を得ることができる。
 また、一般に、システム稼働後に認識対象の個体が新たに登録されるシステムにおいて、特徴点位置は全個体で共通とされていたが、本実施形態では、個体毎に適した特徴点を選択することができる。一般的なシステムでは、個体毎に特徴点抽出器の内部データを学習するためには、事前に個体毎の特徴点を決めておかなければならなかったため、認識対象となる個々の個体毎に好ましい特徴点を定めるために、事前に特徴点を定める必要が生じてしまう。すなわち、目的とする事項そのものが事前に必要となってしまう。そのため、個体毎に好ましい特徴点を選択することや、個体毎に特化した特徴点抽出器の学習は行えなかった。それに対し、本発明では、一つの個体の3D形状モデルおよびその3D形状モデル上の複数の特徴点を指定すれば、その3D形状モデルから学習データおよび評価データを作成し、学習データに基づいて特徴点抽出器の内部データの学習を行うことができる。そして、評価データを用いて認識タスクを実行し認識誤差を利用してステップS24で特徴点セットを選択していくことを繰り返すことによって、一つの個体に関して、適切な特徴点を選択することができる。また、その特徴点の内部データは学習できている。よって、本発明によれば、個体毎に、適切な特徴点を選択したり、特徴点抽出器の学習を行ったりすることができる。例えば、ある人物に固有の黒子を特徴点とすれば、その人物の姿勢推定や個体識別(顔識別)の精度を高められると考えられるが、本発明によればそのような個体固有の特徴点を、好ましい特徴点として選択することができる。
 また、複数の個体の3D形状モデルやその3D形状モデル上における複数の特徴点を指定することによって、個体に特化した特徴点ではなく、複数の個体において共通に重要である特徴点を選択したり、共通で利用可能な特徴点抽出器の学習を行ったりすることもできる。この場合、例えば、各個体間で類似しているものとして対応付けられている特徴点を指定して、本発明の動作を実行させればよい。
 また、個体毎に特徴点を選択する処理を行い、個体毎の特徴点のうち、共通の特徴点(個体間で類似する特徴点)を選択してもよい。また、各個体間で類似する特徴点をしておき、その特徴点により特徴点抽出器の内部データを学習させ、評価データを用いた評価は、個体毎に個別に行うこととしてもよい。この点は、後述の実施形態でも同様である。
 次に、本実施形態の変形例について説明する。
 初期特徴点候補の数をNとし、最初にステップS21に移行したときに定める特徴点数をmとすると、ステップS21~S23の繰り返し処理を回行うことになる。そして、ステップS21~S26の処理を繰り返して、最終的に得る特徴点セットの精度を高めるためには、処理の開始時に指定する特徴点の数Nを大きくしておく必要があるが、そうするとステップS21~S23の繰り返し数が多くなり、処理時間が長くなってしまう。
 そこで、ステップS16からステップS21に移行したときや、ステップS26からステップS21に移行したときに、その後に行うステップS21~S23の繰り返し処理の回数を固定回数(ここではP回とする。)に定めておいてもよい。そして、ステップS21~S23の繰り返し処理をP回実行したときに、特徴点選択手段53がステップS24を実行してもよい。この場合、特徴点セット選択手段51によってP個の特徴点セットが選択されているので、特徴点選択手段53は、そのP個の特徴点セットの中から一つの特徴点セットを選択すればよい。
 また、上記のステップS21~S23の処理の繰り返し回数Pを以下のように決定してもよい。ステップS21~S23の繰り返し数Pに応じた認識タスクの総実行時間と、認識誤差の関係は、図4に示すようになる。すなわち、繰り返し数Pの値を増やすと認識タスクの総実行時間が増えるが、実行時間の増加につれて認識誤差は減少し、ある程度まで減少すると認識誤差は収束する。従って、認識誤差が収束するときのPを定めておくことにより、処理時間をできるだけ短くしつつ、できるだけ認識誤差を少なくすることができる。このPは、予め想定して決定してもよい。あるいは、特徴点選択システムが繰り返し数決定手段(図示せず)を備えていてもよい。この場合、特徴点選択システムがPを変化させて、それぞれのPについて図3に示すフローチャートを実行し、繰り返し数決定手段(図示せず)が、認識誤差が収束するときのPを決定する。その後、特徴点を選択する処理を行うときには、図3に示すフローチャート中のステップS21~S23の繰り返し処理を、決定された回数だけ実行すればよい。
 また、特徴点セット選択手段51は、予め定められた特徴点が固定的に特徴点セットの中に含まれるようにして、特徴点セットを選択してもよい。すなわち、ステップS21で選択される特徴点セットに属する特徴点の数をm個とし、予め固定的に特徴点セットに含められると定められた特徴点の数をZとすると、m-Z個の特徴点を、特徴点候補の中から選択し、m個の特徴点を含む特徴点セットを定めればよい。ただし、m>Zである。また、mは、ステップS26で減少するように更新され、ステップS26からステップS221に戻ったときには、一定の確率で増加するように定められる。特徴点セットに固定的に含まれる特徴点は、ユーザが重要な特徴点であると予測し、ユーザが人手で設定しておけばよい。この設定態様は限定されない。このように、特徴点セットに固定的に含めるZ個の特徴点を定めておき、残りのm-Z個の特徴点をステップS21で選択して、ステップS21~S23の繰り返し処理をP回繰り返してもよい。あるいは、固定的でないm-Z個の特徴点の組み合わせが全て選択されるまでステップS21~S23の繰り返し処理を行ってもよい。
 また、上記の実施形態では、ステップS24で選択した特徴点セットに属する特徴点の数が、最終的に選択しようとする特徴点数(ユーザの所望の特徴点数)まで減少したときに(ステップS25におけるYes)、処理を終了する場合を説明した。ステップS21~S26の繰り返し処理を停止して、処理を終了する基準として他の基準を用いてもよい。以下、処理を終了する他の基準について説明する。
 上記の例において、ステップS21~S26の繰り返し処理では、ステップS26からステップS21に戻ったときに、選択する特徴点セットに含める特徴点数を一定の確率で増加することがある、ステップS26に移行する毎に、特徴点セットに含める特徴点数を値が小さくなるように更新する。従って、全体としては、ステップS21~S26の処理の繰り返し数が増えると、選択される特徴点セットに属する特徴点の数は減少していく傾向になる。そして、特徴点セットに属する特徴点の数が少なくなると、その特徴点セットに属する特徴点を用いて認識タスクを実行したときの認識誤差が増加していく傾向がある。そこで、ステップS25において、特徴点選択手段51は、直近のステップS21~S23の繰り返し処理で計算された特徴点セット毎の認識誤差の最小値が、予め定められた閾値(認識誤差に関する閾値)以上になった場合、ステップS26に移行せずに、処理を終了すると決定してもよい。この場合、特徴点選択手段51は、直近のステップS21~S23の繰り返し処理で選択された複数の特徴点セットのうち、認識誤差が最小となる特徴点セットに属する特徴点を認識アルゴリズムに適切な特徴点として決定し、処理を終了する。また、このとき、直近のステップS24で選択した特徴点セットに属する特徴点を認識アルゴリズムに適切な特徴点として決定してもよい。
 また、あるいは、特徴点選択手段51は、前回のステップS21~S23の繰り返し処理で計算された特徴点セット毎の認識誤差の最小値に対する、直近のステップS21~S23の繰り返し処理で計算された特徴点セット毎の認識誤差の最小値の増加量を計算し、その増加量が予め定められた閾値(認識誤差の増加量に関する閾値)以上になった場合、ステップS26に移行せずに、処理を終了すると決定してもよい。この場合にも、特徴点選択手段51は、直近のステップS21~S23の繰り返し処理で選択された複数の特徴点セットのうち、認識誤差が最小となる特徴点セットに属する特徴点を認識アルゴリズムに適切な特徴点として決定し、処理を終了する。また、このとき、直近のステップS24で選択した特徴点セットに属する特徴点を認識アルゴリズムに適切な特徴点として決定してもよい。
実施形態2.
 第1の実施形態では、特徴点候補から特徴点を除外した特徴点セットの全てについて、姿勢推定等の認識タスクを実行し、認識誤差を計算していた。これに対し、第2の実施形態では、特徴点セット毎に認識タスクを実行するのではなく、認識誤差を評価しようとしている特徴点セットを選択する元になった、前回の繰り返し処理で認識誤差が既に評価された特徴点セットの認識誤差の値を利用して、その特徴点セットから任意の特徴点を除外した特徴点セットでの認識誤差の値を推定する技術を利用する。このように特徴点セットの認識誤差を推定することで、計算量を少なくすることができる。
 また、第1の実施形態では、特徴点候補から特徴点セットを選択する特徴点セット選択手段51は、特徴点セットに対して特徴点を追加したり、特徴点候補から特徴点を除外して特徴点セットを選択したりする際に、それらの特徴点をランダムに選択する。これに対し、第2の実施形態では、特徴点候補全てを用いたときの認識誤差およびその微分値に基づいて、所定の特徴点を特徴点候補から除外または追加して生成される特徴点セットを認識タスクに用いたときの認識誤差を推定する。そして、特徴点候補の各特徴点の重要度を予め予測しておくことにより、重要度の高い特徴点を優先して選択した特徴点セットを生成する。この方式により、より適切な特徴点を選択することができる。
 図5は、本発明の第2の実施形態の特徴点選択システムの例を示すブロック図である。図6は、第2の実施形態の処理経過の例を示すフローチャートである。
 第2の実施形態の特徴点選択システムは、第1の実施形態の構成要素に加えて、特徴点重要度推定手段54を備える。また、第2の実施形態では、特徴点セット選択手段51が行うステップS21の処理内容と、認識誤差算出手段52が行うステップS22の処理内容がそれぞれ第1の実施形態と異なる。図6に示すステップS21,S22,S31以外の処理は、第1の実施形態(図3参照)と同様である。
 第2の実施形態においても、認識タスクとして姿勢推定を行う場合、第1の実施形態で説明した認識誤差εの最小化計算(式(10)および式(11)の繰り返し計算)により姿勢推定を行える。ただし、第2の実施形態では、εの最小化計算にHessian近似法を適用し、式(10)および式(11)の繰り返し計算を行わずに、前回の繰り返し処理において計算した認識誤差の値を用いて、そのときの特徴点セットから任意のq点を除いた特徴点セットにおけるεの値を計算する。この結果、εの最小化の計算量を少なくすることができる。
 第1の実施形態で説明したεの最小化計算を用いると、認識誤差算出手段52は、現在の特徴点セット(ここでは特徴点数がm個とする。)からq個の特徴点を削減する際に、この最小化計算を回繰り返すことになる。例えば、m=10000であり、q=1であるとすると、10000個から1つの特徴点を削減する際に10000回最小化計算を行うこととなり、q≧2のときにはさらに計算量が増える。Hessian近似法を適用することでこの計算量を削減することができる。Hessian近似法は、特徴点セットに含める特徴点の数をq個ずつ減少させる場合でも、q個ずつ増加させる場合でも適用できるが、ここでは特徴点の数をq個ずつ削減する場合を例にして説明する。
 以下、式(10)で示したΔφ,Δθ,Δψ,Δt,Δt,Δtをベクトルとして並べて表した姿勢パラメータをθとする。姿勢推定は、認識誤差関数εを最小化する姿勢パラメータθを求める処理である。これは一般に非線形最適化となり、Gauss-Newton法、Levenberg-Marquard 法等の一般的な方法で最小化を行う。また、これらの手法では、εの1次・2次微分値を計算に用いている。第2の実施形態では、認識誤差算出手段52は、最終的にεを最小化したときのε,θ、および1次・2次微分値を使って、特徴点を削減した後のεを計算し、姿勢推定を行わずにどの特徴点を削減すればよいのかを予見する。
 現在の特徴点セット(前回のステップS24で選択された特徴点セット)内の特徴点の数をmとし、削減しようとしている特徴点の数をqとする。ただし、qはmに比べて小さい数であり、具体的には2,3を想定する。また、現在の特徴点セットであり、既に姿勢推定が行われεが計算済みとなっている特徴点セットをSとし、その特徴点セットSからq個の特徴点を除いた特徴点のセットをSm-qとする。そして、除こうとしているq個の特徴点のセットをSとする。認識誤差算出手段52は、m個の特徴点を含む特徴点セットSを、m-q個の特徴点を含む特徴点セットSm-qとq個の特徴点を含む特徴点セットSとに分ける。Sm-q⊂Sである。
 また、現在の特徴点セットSによる姿勢推定の認識誤差εをコスト関数fと表すこととする。すると、このコスト関数は式(13)のように分解する。
Figure JPOXMLDOC01-appb-M000011
 式(13)において、チルダを付したzは、学習済みの特徴点抽出器によって判定した特徴点iの画像上の位置である。また、z(θ)は、姿勢がθであるときの、3D形状モデル上の特徴点iから計算される画像上での特徴点iの位置であり、姿勢θにおける特徴点iの正解位置に該当する。なお、これらの画像は評価データ生成手段44に生成された評価データである。
 また、Σは、特徴点iの特徴点抽出誤差の分散を対角成分とする行列である。なお、特徴点抽出誤差は、例えば、特徴点位置検出手段46が計算すればよい。
 また、式(13)は以下の式(14)のように表すことができる。
 f=f+δf     式(14)
 fは、現在の特徴点セットSの全特徴点の分の認識誤差(εの値)である。fは、q個の特徴点を取り除いた後のコスト関数であり、以下の式(15)のように表される。fは、q点を除いた特徴点セットSm-qの分の認識誤差(εの積算をq点を除いた特徴点についてのみ行った値)である。
Figure JPOXMLDOC01-appb-M000012
 δfは、取り除くq個の点に対応するコスト関数であり、以下の式(16)のように表される。δfは、除いたq点の分の認識誤差(εの積算をq点の特徴点についてのみ行った値)である。
Figure JPOXMLDOC01-appb-M000013
 式(14)の各項のHessianをH,H,δHで表すと、以下の式(17)がが得られる。Hessianは、fのθによる2次微分を表す行列である。
 H=H+δH     式(17)
 f+における姿勢の推定値が得られているとする。このとき、以下の式(18)が成立する。ただし、g(・)=df/dθである。
Figure JPOXMLDOC01-appb-M000014
 そして、以下に示す式(19)が成立する。
Figure JPOXMLDOC01-appb-M000015
 式(19)において、gはεのθによる1次微分である。また、ハット記号を付したθは、現在のm個の特徴点を含む特徴点セットSで姿勢推定したときの姿勢パラメータ(既に計算した姿勢パラメータ)である。ハット記号を付したθは、q個の特徴点を除いた特徴点セットSmーqで姿勢推定したときの姿勢パラメータであり、処理時間を削減するために計算の対象外としようとするものである。
 また、ハット記号付きのf(θ)は、q個の特徴点を除いた特徴点セットSm-qで姿勢推定したときの認識誤差εであり、処理時間を削減するために計算の対象外としようとするものである。
 ハット記号付きのδg(θ)は、現在のm個の特徴点を含む特徴点セットSで姿勢推定したときの姿勢パラメータの値における、認識誤差の1次微分値であり、この値は姿勢推定処理の過程ですでに計算されているものである。
 また、H -1は、q個の特徴点を除いた特徴点セットSm-qで姿勢推定したときの姿勢パラメータの値における、認識誤差の2次微分値の逆行列である。この値は、計算しないことが好ましいが、特徴点数mがqに比べて十分に大きい場合にはHで近似しても(すなわち置き換えても)大差ないことが知られている。そして、Hは姿勢推定処理の過程で既に計算されているものである。ハット記号を付したθの計算にGauss-Newton法やMarquardt 法を利用するとHは計算済みとなる。
 HをHに置き換えると、以下の手続により、εを最小化しなくてもSを取り除いた後のコスト関数値を近似的に計算することができる。認識誤差算出手段52は、以下の処理を行うことで、最小化処理を行う。
(1)認識誤差算出手段52は、S通り変化させつつ以下の処理を実行する。
(2)認識誤差算出手段52は、以下の式(20)を計算する。
Figure JPOXMLDOC01-appb-M000016
(3)次に、認識誤差算出手段52は、以下の式(21)を計算する。
Figure JPOXMLDOC01-appb-M000017
(4)次に、認識誤差算出手段52は、f(θ)が最小となるSを取り除いて、Sm-qを作成する。
(5)次に、認識誤差算出手段52は、実際にfを最小化して、ハット記号付きのθを求める。
 上記の(3)の手続では、fの最小化によってハット記号付きのθを計算することなく、右辺の
Figure JPOXMLDOC01-appb-M000018
の値を評価する。
 このように、本実施形態においてHessian近似法を適用することで、認識誤差の最小値計算量を削減する効果が得られる。
 以上の説明では、特徴点の数をq個ずつ削減する場合を例にしたが、特徴点の数をq個ずつ増加させていく場合には、g(・)=df/dθであり、式(19)の代わりに、以下に示す式(22)が成立する。この場合には、追加するSを定めていけばよい。
Figure JPOXMLDOC01-appb-M000019
 以下、式(19)の導出について説明する。まず、f(θ)は、式(23)のように定義される。
Figure JPOXMLDOC01-appb-M000020
 df/dθ=g等のように書くこととする。g(θ)=0より、以下の計算が成り立つ。
Figure JPOXMLDOC01-appb-M000021
 上記の式において、g(θ)=0であり、よって、式(24)が得られる。
Figure JPOXMLDOC01-appb-M000022
 また、以下の計算式が成立し、式(24)を代入することで、以下に示す式(25)(式(19)と同様の式)が得られる。
Figure JPOXMLDOC01-appb-M000023
Figure JPOXMLDOC01-appb-M000024
 特徴点セットの認識誤差を推定する処理の他に、本実施形態では、特徴点セット選択手段51によるステップS21の処理の前に、特徴点重要度推定手段54が、以下の処理を行う。すなわち、ステップS21の前に、特徴点セットに含める特徴点としてどの特徴点を選択するかに関する確率を、現在の特徴点候補(ここでは、前回のステップS24で選択された特徴点セット)から特徴点を除外したり追加したりしたときの認識誤差の増減量に基づいて決定する(ステップS31)。換言すれば、特徴点重要度推定手段54は、前回のステップS24で選択された特徴点セットに特徴点を追加したり除外したり場合における、特徴点セット以外の特徴点が特徴点セットに追加される確率や、特徴点セットに属する特徴点が除外される確率を、特徴点の追加や除外後の認識誤差の増減量に基づいて決定する。
 以下、本実施形態における特徴点重要度推定手段54および特徴点セット選択手段51の動作(ステップS31,S21。図6参照。)について説明する。
 初期特徴点候補の各特徴点が、現在の特徴点セット(前回のステップS24で選択された特徴点セット)に属する特徴点として選択されているか否かを“1”または“0”の値で表し、その値を並べたベクトルをwと表すこととする。また、このベクトル、およびこのベクトルの要素を「重み」と記す場合がある。特徴点全体に着目して「重み」と記す場合には、ベクトルを指し、個々の特徴点に着目して「重み」と記す場合には、ベクトルの要素を指す。ランダムにベクトルwの要素の値を“0”または“1”に変化させても、認識誤差の削減に有効な新たな重み(特徴点セットを規定するベクトル)が得られる確率は低い。現在の特徴点セットを表すベクトルをwとし、wの近傍空間を、認識誤差関数(コスト関数)fの削減度を指標に、効率的に探索したうえで、新たな重み(ベクトルwとする。)を決定することが好ましい。
 そこで、現在の重みwを近傍の重みwへ変化させる際に、逐次予測法(認識誤差を予測する前述の方法)で用いた認識誤差関数の近似解を利用する。この近似解を用いることにより、現在の特徴点セットに含まれている各特徴点に対し、それらの特徴点を取り除いたときの認識誤差関数fの変化量を推定できる。また、現在の特徴点セットに含まれておらず、ベクトルの要素の値が“0”となっている各特徴点に対して、それらを復活させたとき(すなわち、重みの値を“1”に変化させたとき)の認識誤差関数fの変化量を推定できる。なお、復活させるとは、一旦、特徴点セットから漏れた特徴点を、特徴点セットに含めることを意味する。特徴点セット選択手段51は、これらの推定値(認識誤差関数fの変化量の推定値)に基づき、認識誤差関数fの値がより小さくなるように、確率的に重みをつけて、各特徴点の重みの変化、すなわち、各特徴点を特徴点セットに含めるか否かを決定する(ステップS21)。
 初期特徴点候補の数をN個とし、現在の特徴点セットに属する特徴点の数をM個とする。この場合、ベクトルの要素はN個である。そして、現在の特徴点セットを表すベクトルwでは、その特徴点セットに属する特徴点に対応するM個の要素の値が“1”となっている。現在の特徴点セットに属するM個の特徴点のうち、K個の特徴点を排除し、その代わりに現在選択されていないN-M個の特徴点の中からK個の特徴点を復活させることを想定する。特徴点セットからK個の特徴点を排除するということは、特徴点の入れ替え後の特徴点セットを表すベクトルwにおいて、その特徴点に対応するK個の要素の値を“0”にすることを意味する。また、選択されていないN-M個の特徴点の中からK個の特徴点を復活させるということは、ベクトルwにおいて、その特徴点に対応するK個の要素の値を“1”にすることを意味する。特徴点セット選択手段51は、このとき入れ替える特徴点の数Kを、1~M/2の乱数で決定する。すなわち、1~M/2の範囲で乱数を発生させ、発生させた乱数の値を、入れ替える特徴点の数として決定する。
 特徴点セット選択手段51は、排除する特徴点を以下の式(26)に示す確率分布で決定する。
 P(w (t+1)=0|w (t)=1)=1/Zfi- -1     式(26)
 式(26)におけるiは、ベクトル要素の順番(換言すれば特徴点の順番)を表す。また、w (t)は、図6におけるステップS31~S26の繰り返し処理におけるt回目のステップS24で選択された特徴点セットを表すベクトルのi番目の要素である。w (t+1)=0は、その特徴点セットに対して特徴点の入れ替えを行った後のベクトルのi番目の要素を表す。そして、P(w (t+1)=0|w (t)=1)は、現在、特徴点セットに含まれているw (t)に対応する特徴点を排除する(すなわち、要素の値を0にする)確率を表している。
 また、式(26)におけるZは、ΣP(w (t+1)=0|w (t)=1)となるように正規化する正規化定数である。
 また、fi-は、i番目の特徴点(ここでは、現在の特徴点セットに含まれている特徴点)を排除した際の認識誤差関数の近似値であり、特徴点重要度推定手段54が、前述の式(19)から導出する。特徴点重要度推定手段54はさらに、fi-を用いてP(w (t+1)=0|w (t)=1)を計算する。特徴点重要度推定手段54がP(w (t+1)=0|w (t)=1)を計算する動作は、ステップS31(図6参照)に該当する。
 特徴点セット選択手段51は、現在の特徴点セットに含まれる特徴点に関して、ステップS31で計算された確率P(w (t+1)=0|w (t)=1)に基づいて、特徴点セットから除外するか否かを決定する。具体的には、0~1の範囲で乱数を発生させ、その乱数値が確率P(w (t+1)=0|w (t)=1)以下ならば、要素wの値を“1”から“0”にする。すなわち、wに対応する特徴点を特徴点セットから除外する。特徴点セット選択手段51は、ステップS21において、この処理を現在の特徴点セットに含まれる各特徴点に関して行う。
 式(26)の確率分布は、現在の特徴点セットから取り除いた場合に認識誤差関数が小さくなる特徴点では高い確率となり、取り除いた場合に認識誤差関数が大きくなる特徴点では低い確率となる。従って、式(26)に従うことにより、特徴点セット選択手段51は、取り除いた場合に認識誤差関数が小さくなる特徴点を積極的に取り除く。また、そうでない特徴点は、特徴点セットから除去されにくくなる。
 また、特徴点セット選択手段51は、特徴点セットの入れ替えで復活させる特徴点を以下の式(27)に示す確率分布に従って選択する。
 P(w (t+1)=1|w (t)=0)=1/Yfi+ -1     式(27)
 w (t+1)やw (t)の意味は式(26)と同様である。そして、式(27)において、P(w (t+1)=1|w (t)=0)は、現在、特徴点セットに含まれていないw (t)に対応する特徴点を特徴点セットに復活させる(すなわち、要素の値を1にする)確率を表している。
 また、式(27)におけるYは、ΣP(w (t+1)=1|w (t)=0)となるように正規化する正規化定数である。
 また、fi+は、i番目の特徴点(ここでは、現在の特徴点セットに含まれていない特徴点)を復活させた際の認識誤差関数の近似値である。特徴点重要度推定手段54がfi+を以下の式(28)の計算によって計算する。
Figure JPOXMLDOC01-appb-M000025
 特徴点重要度推定手段54は、さらに、fi+を用いてP(w (t+1)=1|w (t)=0)を計算する。特徴点重要度推定手段54がP(w (t+1)=1|w (t)=0)を計算する動作は、ステップS31(図6参照)に該当する。
 ここで、fは、逐次予測法の場合と異なり、i番目の特徴点を特徴点セットに加える前のコストであり、θは、特徴点を復活させる前の推定パラメータである。上式により、特徴点セットに加えたときのコストが小さい点が積極的に特徴点セットに加えられ、そうでない点は特徴点セットに選択されにくくなる。
 特徴点セット選択手段51は、現在の特徴点セットに含まれていない特徴点に関して、ステップS31で計算された確率P(w (t+1)=1|w (t)=0)に基づいて、特徴点セットに復活させるか否かを決定する。具体的には、0~1の範囲で乱数を発生させ、その乱数値が確率P(w (t+1)=1|w (t)=0)以下ならば、要素wの値を“0”から“1”にする。すなわち、wに対応する特徴点を復活させ、特徴点セットに含める。特徴点セット選択手段51は、ステップS21において、この処理を現在の特徴点セットに含まれていない各特徴点に関して行う。
 本実施形態では、特徴点重要度推定手段54がステップS31において、fi-およびfi+を計算し、さらに、式(26)、式(27)の左辺に示す確率を計算する。そして、ステップS31の後のステップS21において、特徴点セット選択手段51が、その確率を用いて、上記のように、現在の特徴点セットに含まれている特徴点を除外したり、現在の特徴点セットに含まれていない点を復活させたりする処理を行う。
 以上の第1の実施形態および第2の実施形態において、温度Tが、特徴点の最適化における局所解を避けるためのシミュレーテッドアニーリングのパラメータである。既に説明したように、Tの設定方法として、前述の式(2)(すなわち、冷却関数Tt+1=γ・T)を用いて設定する方法がある。
 例えば、一定の温度でd回近傍の探索を行い、その後、上記の冷却関数で温度Tを下げることが好ましい。また、例えば、γは0.8~0.9程度の定数とする。また、一旦、特徴点の最適解を選択し、その特徴点の最適解におけるコストが導出されている場合には、初期温度Tの値を、その最適解のコストの10%以下の値とすればよい。まだ、特徴点の最適解を選択する処理を行っていない場合には、初期温度Tの値を、例えば、aの10%以下の値とすればよい。
 高い温度Tから開始し、Tをゆっくり下げていくことで、特徴点の局所解を避けられる可能性が高くなる。しかし、処理時間は長くなる。特に、初期特徴点候補が多い状態から、高い温度で処理を開始すると、処理時間が長くなる。そこで、第1の実施形態によってある程度、特徴点の数を削減し、その結果得られた特徴点セットを元に、第2の実施形態の処理を実行してもよい。
 次に、本発明の特徴点選択システムの最小構成について説明する。図7は、本発明の最小構成の例を示すブロック図である。本発明の特徴点選択システムは、特徴点セット選択手段51と、認識誤差算出手段52と、特徴点選択手段53とを備える。
 特徴点セット選択手段51は、認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する。
 認識誤差算出手段52は、特徴点セット選択手段51に選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて認識タスクを実行した場合における認識誤差を算出する。
 特徴点選択手段53は、特徴点セット選択手段51に選択された特徴点セット毎の認識誤差の最小値が、特徴点候補を用いて認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、特徴点候補を用いて認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択手段が特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに認識タスクに適した特徴点を選択する。
 そして、特徴点セット選択手段51は、特徴点選択手段53が特徴点セットを選択したときに、その特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択する。
 そのような構成により、認識タスクにおける認識アルゴリズムに合う適切な特徴点を選ぶことができ、また、重要な特徴点が最終的に選択した特徴点の集合から漏れにくくすることができる。
 上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択手段と、前記特徴点セット選択手段に選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出する認識誤差算出手段と、前記特徴点セット選択手段に選択された特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択手段が特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択する特徴点選択手段とを備え、特徴点セット選択手段は、特徴点選択手段が特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択することを特徴とする特徴点選択システム。
(付記2)認識タスクは、個体の姿勢推定であり、認識誤差算出手段は、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出する付記1に記載の特徴点選択システム。
(付記3)認識タスクは、個体の姿勢推定であり、特徴点セット選択手段は、特徴点選択手段が特徴点セットを選択したときに、特徴点選択手段が選択した特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、特徴点選択手段が選択した特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定める付記1または付記2に記載の特徴点選択システム。
(付記4)特徴点選択手段は、選択した特徴点セットの特徴点数が所定数まで減少したこと、または、選択した特徴点セットにおける認識誤差が前回選択した特徴点セットにおける認識誤差から一定量以上増加したこと、または、選択した特徴点セットにおける認識誤差が予め定めた閾値以上になったことを所定の条件として、前記所定の条件が成立したときに、その時に定められていた特徴点数に基づいて選択された複数の特徴点セットのうち、認識誤差が最小になる特徴点セットに含まれる特徴点群を、認識タスクに適した特徴点として選択する付記1から付記3のうちのいずれかに記載の特徴点選択システム。
(付記5)認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択し、選択した特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出し、選択した特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、複数の特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択し、前記一つの特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択することを特徴とする特徴点選択方法。
(付記6)認識誤差を算出するときに、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出する付記5に記載の特徴点選択方法。
(付記7)前記一つの特徴点セットを選択した場合、再度、特徴点セットを複数選択するときに、前記一つの特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、前記一つの特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定める付記5または付記6に記載の特徴点選択方法。
(付記8)選択した複数の特徴点セットにおける特徴点数が所定数まで減少したこと、または、選択した特徴点セットにおける認識誤差が前回選択した特徴点セットにおける認識誤差から一定量以上増加したこと、または、選択した特徴点セットにおける認識誤差が予め定めた閾値以上になったことを所定の条件として、前記所定の条件が成立したときに、その時に定められていた特徴点数に基づいて選択された複数の特徴点セットのうち、認識誤差が最小になる特徴点セットに含まれる特徴点群を、認識タスクに適した特徴点として選択する付記5から付記7のうちのいずれか1項に記載の特徴点選択方法。
(付記9)コンピュータに、認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択処理、前記特徴点セット選択処理で選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出する認識誤差算出処理、および、前記特徴点セット選択処理で選択された特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択処理で特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択する特徴点選択処理を実行させ、特徴点選択処理で特徴点セットを選択させたときに、特徴点セット選択処理で、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択させるための特徴点選択プログラム。
(付記10)コンピュータに、認識誤差算出処理で、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出させる付記9記載の特徴点選択プログラム。
(付記11)コンピュータに、特徴点選択処理で特徴点セットを選択させたときに、特徴点セット選択処理で、特徴点選択処理で選択した特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、特徴点選択処理で選択した特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定めさせる付記9または付記10に記載の特徴点選択プログラム。
(付記12)コンピュータに、特徴点選択処理で、選択した特徴点セットの特徴点数が所定数まで減少したこと、または、選択した特徴点セットにおける認識誤差が前回選択した特徴点セットにおける認識誤差から一定量以上増加したこと、または、選択した特徴点セットにおける認識誤差が予め定めた閾値以上になったことを所定の条件として、前記所定の条件が成立したときに、その時に定められていた特徴点数に基づいて選択された複数の特徴点セットのうち、認識誤差が最小になる特徴点セットに含まれる特徴点群を、認識タスクに適した特徴点として選択させる付記9から付記11のうちのいずれか1項に記載の特徴点選択プログラム。
(付記13)認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択部と、前記特徴点セット選択部に選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出する認識誤差算出部と、前記特徴点セット選択部に選択された特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択部が特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択する特徴点選択部とを備え、特徴点セット選択部は、特徴点選択部が特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択することを特徴とする特徴点選択システム。
(付記14)認識タスクは、個体の姿勢推定であり、認識誤差算出部は、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出する付記13に記載の特徴点選択システム。
(付記15)認識タスクは、個体の姿勢推定であり、特徴点セット選択部は、特徴点選択部が特徴点セットを選択したときに、特徴点選択部が選択した特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、特徴点選択部が選択した特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定める付記13または付記14に記載の特徴点選択システム。
(付記16)特徴点選択部は、選択した特徴点セットの特徴点数が所定数まで減少したこと、または、選択した特徴点セットにおける認識誤差が前回選択した特徴点セットにおける認識誤差から一定量以上増加したこと、または、選択した特徴点セットにおける認識誤差が予め定めた閾値以上になったことを所定の条件として、前記所定の条件が成立したときに、その時に定められていた特徴点数に基づいて選択された複数の特徴点セットのうち、認識誤差が最小になる特徴点セットに含まれる特徴点群を、認識タスクに適した特徴点として選択する付記13から付記15のうちのいずれかに記載の特徴点選択システム。
 この出願は、2010年9月6日に出願された日本特許出願2010-199228を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
 本発明は、個体の姿勢推定や個体識別等の認識タスクを行う装置等で用いられる特徴点を決定するシステムに好適に適用される。
 41 特抽学習・評価データ生成手段
 42 学習データ生成手段
 43 学習パターン生成手段
 44 評価データ生成手段
 45 特徴点抽出器学習手段
 46 特徴点位置検出手段
 51 特徴点セット選択手段
 52 認識誤差算出手段
 53 特徴点選択手段
 54 特徴点重要度推定手段

Claims (10)

  1.  認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択手段と、
     前記特徴点セット選択手段に選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出する認識誤差算出手段と、
     前記特徴点セット選択手段に選択された特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択手段が特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択する特徴点選択手段とを備え、
     特徴点セット選択手段は、特徴点選択手段が特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択する
     ことを特徴とする特徴点選択システム。
  2.  認識タスクは、個体の姿勢推定であり、
     認識誤差算出手段は、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出する
     請求項1に記載の特徴点選択システム。
  3.  認識タスクは、個体の姿勢推定であり、
     特徴点セット選択手段は、特徴点選択手段が特徴点セットを選択したときに、
     特徴点選択手段が選択した特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、
     特徴点選択手段が選択した特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定める
     請求項1または請求項2に記載の特徴点選択システム。
  4.  特徴点選択手段は、選択した特徴点セットの特徴点数が所定数まで減少したこと、または、選択した特徴点セットにおける認識誤差が前回選択した特徴点セットにおける認識誤差から一定量以上増加したこと、または、選択した特徴点セットにおける認識誤差が予め定めた閾値以上になったことを所定の条件として、前記所定の条件が成立したときに、その時に定められていた特徴点数に基づいて選択された複数の特徴点セットのうち、認識誤差が最小になる特徴点セットに含まれる特徴点群を、認識タスクに適した特徴点として選択する
     請求項1から請求項3のうちのいずれか1項に記載の特徴点選択システム。
  5.  認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択し、
     選択した特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出し、
     選択した特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、複数の特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択し、
     前記一つの特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択する
     ことを特徴とする特徴点選択方法。
  6.  認識誤差を算出するときに、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出する
     請求項5に記載の特徴点選択方法。
  7.  前記一つの特徴点セットを選択した場合、再度、特徴点セットを複数選択するときに、
     前記一つの特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、
     前記一つの特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定める
     請求項5または請求項6に記載の特徴点選択方法。
  8.  コンピュータに、
     認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択処理、
     前記特徴点セット選択処理で選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出する認識誤差算出処理、および、
     前記特徴点セット選択処理で選択された特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択処理で特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択する特徴点選択処理を実行させ、
     特徴点選択処理で特徴点セットを選択させたときに、特徴点セット選択処理で、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択させる
     ための特徴点選択プログラム。
  9.  コンピュータに、
     認識誤差算出処理で、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出させる
     請求項8に記載の特徴点選択プログラム。
  10.  コンピュータに、
     特徴点選択処理で特徴点セットを選択させたときに、特徴点セット選択処理で、
     特徴点選択処理で選択した特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、特徴点選択処理で選択した特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定めさせる
     請求項8または請求項9に記載の特徴点選択プログラム。
PCT/JP2011/004917 2010-09-06 2011-09-01 特徴点選択システム、特徴点選択方法および特徴点選択プログラム WO2012032747A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012532853A JPWO2012032747A1 (ja) 2010-09-06 2011-09-01 特徴点選択システム、特徴点選択方法および特徴点選択プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-199228 2010-09-06
JP2010199228 2010-09-06

Publications (1)

Publication Number Publication Date
WO2012032747A1 true WO2012032747A1 (ja) 2012-03-15

Family

ID=45810357

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/004917 WO2012032747A1 (ja) 2010-09-06 2011-09-01 特徴点選択システム、特徴点選択方法および特徴点選択プログラム

Country Status (2)

Country Link
JP (1) JPWO2012032747A1 (ja)
WO (1) WO2012032747A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160203390A1 (en) * 2014-12-18 2016-07-14 International Business Machines Corporation Processing apparatus, processing method, and program
JP2018124798A (ja) * 2017-02-01 2018-08-09 東芝テック株式会社 画像探索装置および画像探索プログラム
WO2022044301A1 (en) * 2020-08-28 2022-03-03 Nec Corporation Information processing apparatus, information processing method, and computer readable medium

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002007096A1 (fr) * 2000-07-17 2002-01-24 Mitsubishi Denki Kabushiki Kaisha Dispositif de recherche d'un point caracteristique sur un visage
JP3279913B2 (ja) * 1996-03-18 2002-04-30 株式会社東芝 人物認証装置、特徴点抽出装置及び特徴点抽出方法
JP2006252162A (ja) * 2005-03-10 2006-09-21 Toshiba Corp パターン認識装置及びその方法
JP2006343859A (ja) * 2005-06-07 2006-12-21 Toyota Motor Corp 画像処理装置及び画像処理方法
WO2008100248A2 (en) * 2007-02-13 2008-08-21 Olympus Corporation Feature matching method
JP2009053916A (ja) * 2007-08-27 2009-03-12 Sony Corp 顔画像処理装置及び顔画像処理方法、並びにコンピュータ・プログラム
WO2010104181A1 (ja) * 2009-03-13 2010-09-16 日本電気株式会社 特徴点生成システム、特徴点生成方法および特徴点生成プログラム
JP2010218051A (ja) * 2009-03-13 2010-09-30 Nec Corp 特徴点選択システム、特徴点選択方法および特徴点選択プログラム
WO2011086889A1 (ja) * 2010-01-12 2011-07-21 日本電気株式会社 特徴点選択システム、特徴点選択方法および特徴点選択プログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3279913B2 (ja) * 1996-03-18 2002-04-30 株式会社東芝 人物認証装置、特徴点抽出装置及び特徴点抽出方法
WO2002007096A1 (fr) * 2000-07-17 2002-01-24 Mitsubishi Denki Kabushiki Kaisha Dispositif de recherche d'un point caracteristique sur un visage
JP2006252162A (ja) * 2005-03-10 2006-09-21 Toshiba Corp パターン認識装置及びその方法
JP2006343859A (ja) * 2005-06-07 2006-12-21 Toyota Motor Corp 画像処理装置及び画像処理方法
WO2008100248A2 (en) * 2007-02-13 2008-08-21 Olympus Corporation Feature matching method
JP2009053916A (ja) * 2007-08-27 2009-03-12 Sony Corp 顔画像処理装置及び顔画像処理方法、並びにコンピュータ・プログラム
WO2010104181A1 (ja) * 2009-03-13 2010-09-16 日本電気株式会社 特徴点生成システム、特徴点生成方法および特徴点生成プログラム
JP2010218051A (ja) * 2009-03-13 2010-09-30 Nec Corp 特徴点選択システム、特徴点選択方法および特徴点選択プログラム
WO2011086889A1 (ja) * 2010-01-12 2011-07-21 日本電気株式会社 特徴点選択システム、特徴点選択方法および特徴点選択プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160203390A1 (en) * 2014-12-18 2016-07-14 International Business Machines Corporation Processing apparatus, processing method, and program
US9792533B2 (en) 2014-12-18 2017-10-17 International Business Machines Corporation Processing apparatus, processing method, and program for determining an image taking position
JP2018124798A (ja) * 2017-02-01 2018-08-09 東芝テック株式会社 画像探索装置および画像探索プログラム
WO2022044301A1 (en) * 2020-08-28 2022-03-03 Nec Corporation Information processing apparatus, information processing method, and computer readable medium

Also Published As

Publication number Publication date
JPWO2012032747A1 (ja) 2014-01-20

Similar Documents

Publication Publication Date Title
JP5206517B2 (ja) 特徴点選択システム、特徴点選択方法および特徴点選択プログラム
WO2011086889A1 (ja) 特徴点選択システム、特徴点選択方法および特徴点選択プログラム
JP6483667B2 (ja) ベイズの最適化を実施するためのシステムおよび方法
CN110852349B (zh) 一种图像处理方法、检测方法、相关设备及存储介质
JP2020502665A (ja) ターゲット・ドメイン画像へのソース・ドメイン画像の変換
JP6597914B2 (ja) 画像処理装置、画像処理方法、及びプログラム
WO2012100819A1 (en) Method and system for comparing images
CN110648289B (zh) 图像的加噪处理方法及装置
JP6585654B2 (ja) 判定装置、分析システム、判定方法および判定プログラム
CN112001488A (zh) 训练生成型对抗性网络
KR20120066462A (ko) 얼굴 인식 방법 및 시스템, 얼굴 인식을 위한 학습용 특징 벡터 추출 장치 및 테스트용 특징 벡터 추출 장치
JP2014229115A (ja) 情報処理装置および方法、プログラム、記憶媒体
CN114072809A (zh) 经由神经架构搜索的小且快速的视频处理网络
JP2012234466A (ja) 状態追跡装置、方法、及びプログラム
WO2012032747A1 (ja) 特徴点選択システム、特徴点選択方法および特徴点選択プログラム
CN111445021A (zh) 学习方法、学习设备和计算机可读记录介质
KR101700030B1 (ko) 사전 정보를 이용한 영상 물체 탐색 방법 및 이를 수행하는 장치
JP6955233B2 (ja) 予測モデル作成装置、予測モデル作成方法、および予測モデル作成プログラム
CN112287959A (zh) 目标重识别模型的训练方法以及目标重识别方法和装置
JP2021081795A (ja) 推定システム、推定装置および推定方法
US20220027677A1 (en) Information processing device, information processing method, and storage medium
JP2007249394A (ja) 顔画像認識装置及び顔画像認識プログラム
Kumar et al. UEQMS: UMAP embedded quick mean shift algorithm for high dimensional clustering
JP2018005505A (ja) 画像認識パラメータ設定装置、画像認識パラメータ設定方法、および画像認識パラメータ設定プログラム
Vijayarani et al. An efficient algorithm for facial image classification

Legal Events

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

Ref document number: 11823227

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012532853

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11823227

Country of ref document: EP

Kind code of ref document: A1