WO2015194132A1 - 情報処理装置、ベクトルデータ処理方法、及び、記録媒体 - Google Patents
情報処理装置、ベクトルデータ処理方法、及び、記録媒体 Download PDFInfo
- Publication number
- WO2015194132A1 WO2015194132A1 PCT/JP2015/002923 JP2015002923W WO2015194132A1 WO 2015194132 A1 WO2015194132 A1 WO 2015194132A1 JP 2015002923 W JP2015002923 W JP 2015002923W WO 2015194132 A1 WO2015194132 A1 WO 2015194132A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- vector data
- calculation
- dimension
- predetermined
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/008—Vector quantisation
Definitions
- the present invention relates to an information processing apparatus, a vector data processing method, and a recording medium.
- the image collation process for determining the coincidence of a plurality of images is generally performed by comparing feature amounts extracted from the images.
- each of the plurality of images is compared with the input image by comparing the feature amounts of the plurality of images stored in the database with the feature amounts obtained from the input image.
- a feature amount is represented by multidimensional vector data called a feature vector.
- FIG. 19 is a diagram showing an example of distance calculation between vector data in a general collation process.
- the comparison of vector data is typically performed by calculating a difference for each element of two vector data to be compared and comparing a value obtained by collecting them with a threshold value.
- the aggregated difference is called a distance
- the calculation of the distance between two vector data is called a distance calculation.
- a value obtained by summing the absolute values of the differences between the values of each element is used as the distance. That is, when the two vector data are a and b, the distance between the vector data a and b is calculated by ⁇
- a [j] and b [j] indicate the j-th element of the vector data a and b, respectively, and ⁇ indicates the accumulation for all elements.
- a predetermined comparison threshold it is determined that the two vector data match.
- the value is larger than a predetermined comparison threshold value, it may be determined that the two vector data do not match.
- distance calculation is performed between each vector data included in the database and the vector data to be searched.
- FIG. 20 shows an example of a general verification processing program.
- the number of vector data in the database is 12, and the number of elements of the vector data is 8.
- u [i] [j] is the jth element of the ith vector data in the database
- v [j] is the jth element of the vector data to be searched.
- T is a comparison threshold value.
- the length of search time becomes a problem. In order to shorten the search time, it is important to calculate the distance between vector data at high speed.
- FIG. 21 is a diagram illustrating an application example of the abort determination in a general collation process.
- the abort determination a distance in the middle of accumulating only the differences of some elements in the vector data is compared with a predetermined abort threshold. If the intermediate distance is equal to or greater than the abort threshold (when the abort condition is satisfied), it is determined that further distance calculation is unnecessary as shown in FIG. 21, and the distance calculation is terminated (censoring process).
- FIG. 22 is an example of a program to which the abort determination is applied in a general collation process.
- the censoring process is performed when the midway distance is equal to or greater than the censoring threshold T (line numbers 7 and 8).
- the comparison threshold T is used as the abort threshold.
- FIG. 23 is a diagram illustrating an example of elements for which difference calculation is performed when censoring determination is applied in a general collation process.
- the elements indicated by diagonal lines are elements for which difference calculation has not been performed (difference calculation is not required), and other elements Represents an element for which difference calculation has been performed (difference calculation is required).
- the difference calculation is performed on all the dimensions for the vector data u [2], but the difference calculation is performed only on the first dimension for the other vector data. That is, the difference calculation is performed 19 times for 19 elements.
- Patent Document 1 An example of a system that performs such truncation determination in vector data distance calculation in image collation is disclosed in Patent Document 1, for example.
- FIG. 24 is a diagram illustrating an application example of a vector instruction in general collation processing.
- the vector instruction processes the same processing for a plurality of data with a single instruction (vector operation) in the CPU, and can be processed in a shorter time than when the same instruction is used for each of a plurality of data.
- the distance calculation between vector data can be speeded up by calculating a difference for each element using a vector command. In the example of FIG. 24, calculation for four elements is performed with one vector instruction.
- FIG. 25 is a diagram illustrating an application example of the abort determination and the vector instruction in general collation processing.
- calculation for a plurality of elements is performed by a vector instruction, and the abort determination is performed using the result. Since abortion determination is not performed in the middle of a vector instruction, useless calculation is performed even for dimensions that do not require difference calculation, such as the shaded area in the thick frame in FIG.
- FIG. 26 is a diagram illustrating an example of elements for which a difference calculation is performed when an abort determination and a vector instruction are applied in a general collation process.
- the elements in the thick frame represent elements for which the difference calculation is performed at once by the vector instruction.
- the number of elements that need to be calculated is 19 but the difference is calculated for 52 elements by 13 vector instructions. That is, although the number of instructions is reduced to 13, the calculation for the 33 elements indicated by the diagonal lines in the thick frame is wasted.
- An object of the present invention is to solve the above-described problems and provide an information processing apparatus, a vector data processing method, and a recording medium that execute a collation process between vector data at high speed.
- An information processing apparatus is an information processing apparatus that performs a predetermined operation on each dimension of vector data having a plurality of dimensions on the plurality of vector data.
- a vector data processing method is a vector data processing method for performing a predetermined operation on each dimension of vector data having a plurality of dimensions with respect to the plurality of vector data. Performing the batch operation for executing the predetermined calculation related to each of the specific dimensions by vector calculation on different vector data of the plurality of vector data, and performing the predetermined calculation related to each of the dimensions other than the specific dimension, Individual calculation processing is performed for vector data satisfying a predetermined condition among the plurality of vector data.
- the computer-readable recording medium is a recording medium that stores a computer program that performs a predetermined operation on each dimension of vector data having a plurality of dimensions on the plurality of vector data. Then, the computer performs the predetermined calculation related to each of the specific dimensions of the plurality of dimensions by performing a vector calculation on different vector data of the plurality of vector data, and relates to each of the dimensions other than the specific dimension.
- a program for executing processing for performing the predetermined calculation on vector data satisfying a predetermined condition among the plurality of vector data is stored.
- the effect of the present invention is that the matching process between vector data can be executed at high speed.
- the vector data has a plurality of dimensions.
- a dimension number is assigned to each dimension of the vector data in order from the top.
- ⁇ ⁇ Matching between vector data is performed based on the distance between vectors.
- the calculation of the distance between the vectors is performed by a predetermined calculation (calculation of the difference and the accumulated value of the difference, comparison between the accumulated value and the truncation threshold) between the elements of each dimension. It is assumed that the order in which the predetermined calculation for each dimension is performed is determined in advance, for example, the order of dimension numbers.
- FIG. 2 is a block diagram showing the configuration of the collation apparatus 100 in the first embodiment of the present invention.
- the collation device 100 is an embodiment of the information processing device of the present invention.
- the collation apparatus 100 includes a data input unit 110, a target data storage unit 120, a data set storage unit 130, a calculation method selection unit 140, a batch calculation unit 150, an individual calculation unit 160, and a distance storage.
- Unit 170, result storage unit 180, and result output unit 190 are included in the first embodiment of the present invention.
- the data input unit 110 receives input of target vector data (target vector data) from a user or the like.
- the target data storage unit 120 stores target vector data.
- the data set storage unit 130 stores a set of vector data (vector data set) to be compared with the target vector data.
- the vector data set is registered in advance by a user or the like.
- the calculation method selection unit 140 calculates a plurality of dimensions of the vector data by using the collective calculation unit 150 to perform the predetermined calculation (specific dimension) and using the individual calculation unit 160 to perform the predetermined calculation. It is divided into a dimension to be performed (a dimension other than a specific dimension). Then, the calculation method selection unit 140 assigns the divided dimensions to the batch calculation unit 150 and the individual calculation unit 160.
- the calculation method selection unit 140 assigns, to the batch calculation unit 150, a dimension in which the order in which the above-described predetermined calculation is performed is equal to or less than a predetermined value set in advance by a user or the like among a plurality of dimensions, and sets the predetermined value.
- the exceeding dimension is assigned to the individual calculation unit 160.
- the calculation method selection unit 140 assigns a dimension whose dimension number is equal to or smaller than the predetermined value to the collective calculation unit 150, and individually calculates a dimension exceeding the predetermined value. Assigned to the unit 160.
- the batch calculation unit 150 and the individual calculation unit 160 each perform the above-described predetermined calculation between the vector data in the vector data set and the target vector data for the dimension assigned by the calculation method selection unit 140. .
- the distance storage unit 170 stores the cumulative value of the differences calculated for each dimension by the collective calculation unit 150 and the individual calculation unit 160 for each vector data in the vector data set.
- the result storage unit 180 stores the comparison result between the distance between each vector data and the target vector data and the comparison threshold value by the batch calculation unit 150 and the individual calculation unit 160.
- the result output unit 190 outputs the collation result to the user or the like.
- FIG. 3 is a diagram showing a configuration of the collective operation unit 150 in the first embodiment of the present invention.
- the collective calculation unit 150 includes a dimension control unit 151, an in-set data control unit 152, and a multiple element calculation unit 153.
- the dimension control unit 151 selects one dimension at a time from the set of dimensions (dimension set) assigned to the batch calculation unit 150. Typically, the dimension control unit 151 selects one dimension at a time from the beginning to the end of the assigned dimension set, and ends the process when reaching the end (reference numeral 1501 in FIG. 3).
- the intra-set data control unit 152 selects a plurality of vector data from the vector data set. Typically, the number of vector data selected at a time is the same as the number of data that can be processed simultaneously by one vector instruction. Typically, the intra-set data control unit 152 selects vector data in order from the first vector data to the last vector data in the vector data set, and when the processing of the last vector data is completed. The process ends (FIG.
- the multiple element calculation unit 153 collectively performs a predetermined calculation related to the selected dimension on the selected vector data using a vector command. That is, the multiple element calculation unit 153 calculates a difference between elements of the selected dimension between each of the selected vector data and the target vector data, and accumulates the difference in the distance storage unit 170. In addition, the multiple element calculation unit 153 compares the accumulated value with the comparison threshold for each of the selected plurality of vector data, and stores the comparison result in the result storage unit 180.
- FIG. 4 is a diagram showing a configuration of the individual calculation unit 160 in the first embodiment of the present invention.
- the individual calculation unit 160 includes a dimension control unit 161, an in-set data control unit 162, an abort determination unit 163, and a single element calculation unit 164.
- the dimension control unit 161 selects dimensions one by one from the dimension set assigned to the individual calculation unit 160. Typically, the dimension control unit 161 selects one dimension at a time from the beginning to the end of the assigned dimension set, and ends the process when reaching the end (reference numeral 1601 in FIG. 4).
- the intra-set data control unit 162 selects vector data one by one from the vector data set. Typically, the intra-set data control unit 162 sequentially selects vector data from the first vector data to the last vector data in the set, and ends when the processing of the last vector data is completed (see FIG. 4, reference numeral 1602).
- the abort determination unit 163 performs abort determination for one selected vector data.
- the abort determination unit 163 compares the accumulated difference value with the abort threshold, and determines whether the difference satisfies the abort condition.
- the single element operation unit 164 performs an operation related to the selected dimension with respect to the selected vector data. That is, the single element calculation unit 164 calculates a difference between elements of the selected dimension between the selected vector data and the target vector data, and accumulates the difference in the distance storage unit 170.
- the single element calculation unit 164 compares the accumulated value with the comparison threshold for one selected vector data, and stores the comparison result in the result storage unit 180.
- FIG. 5 is a diagram showing an example of the storage format of the vector data set on the storage medium in the first embodiment of the present invention.
- m indicates the number of vector data.
- one vector instruction performs an operation on elements of the same dimension of different vector data in a vector data set. Therefore, as a storage format of the vector data set in the storage medium, a format in which different vector data elements related to the same dimension are continuously stored as shown in FIG.
- the collation device 100 may be a computer that includes a CPU and a storage medium that stores a program, and operates by control based on the program.
- FIG. 6 is a block diagram showing a configuration of the collation device 100 realized by a computer according to the first embodiment of the present invention.
- the collation apparatus 100 includes a CPU 101, a storage means (storage medium) 102 such as a hard disk or a memory, a communication means 103 that performs data communication with other devices, an input means 104 such as a keyboard, and an output means 105 such as a display. .
- the CPU 101 executes computer programs for realizing the functions of the data input unit 110, the calculation method selection unit 140, the collective calculation unit 150, the individual calculation unit 160, and the result output unit 190.
- the storage unit 102 stores data of the target data storage unit 120, the data set storage unit 130, the distance storage unit 170, and the result storage unit 180. Further, the target data storage unit 120, the data set storage unit 130, the distance storage unit 170, and the result storage unit 180 may be configured as individual storage media or a single storage medium.
- the input unit 104 receives input of target vector data or a vector data set.
- the output unit 105 outputs the collation result. Further, the communication unit 103 may accept input of target vector data from another device, or may output a collation result to another device.
- each component of the verification device 100 shown in FIG. 2 may be an independent logic circuit.
- FIG. 7 is a flowchart showing the operation of the collation apparatus 100 in the first embodiment of the present invention.
- the data input unit 110 receives input of target vector data from a user or the like (step S1).
- the data input unit 110 stores the target vector data in the target data storage unit 120.
- the calculation method selection unit 140 divides the dimension of the vector data into a dimension for performing a predetermined calculation using the batch calculation unit 150 and a dimension for performing a predetermined calculation using the individual calculation unit 160. It assigns to the individual calculating part 160 (step S2).
- the batch calculation unit 150 performs batch processing between each vector data in the vector data set stored in the data set storage unit 130 and target vector data stored in the target data storage unit 120 for the assigned dimension. Arithmetic processing is performed (step S3).
- FIG. 8 is a flowchart showing batch calculation processing in the first embodiment of the present invention.
- the dimension control unit 151 selects one dimension from the dimension set assigned to the batch calculation unit 150 (step S31).
- the in-set data control unit 152 selects a plurality of vector data from the vector data set (step S32).
- the number of vector data to be selected the number of data (vector length) that can be processed simultaneously by one vector instruction or a number less than that is used.
- the multi-element calculation unit 153 simultaneously performs a predetermined calculation related to the selected dimension on the plurality of selected vector data using a vector command (step S33).
- the multiple element calculation unit 153 calculates a difference between elements of the selected dimension between each of the selected vector data and the target vector data, and accumulates the difference in the distance storage unit 170. In addition, the multiple element calculation unit 153 compares the accumulated value with the comparison threshold for each of the selected plurality of vector data, and stores the comparison result in the result storage unit 180. In addition, the multi-element calculation unit 153 compares the accumulated value with the abort threshold value, and when there is no need to store the difference and the comparison result (when the abort condition is satisfied), the multiple element calculation unit 153 stores Mask processing such as omission of storage may be performed.
- step S32 is repeated for all vector data in the vector data set (step S34).
- step S31 is repeated for all dimensions in the dimension set assigned to the batch calculation unit 150 (step S35).
- the collective operation unit 150 performs a predetermined operation on a plurality of selected vector data at a time by using a vector instruction. The calculation is performed regardless of whether the truncation condition is satisfied (whether the calculation is unnecessary).
- the individual calculation unit 160 performs, for the assigned dimension, between each vector data in the vector data set stored in the data set storage unit 130 and the target vector data stored in the target data storage unit 120.
- an individual calculation process is performed (step S4).
- FIG. 9 is a flowchart showing the individual calculation processing in the first embodiment of the present invention.
- the dimension control unit 161 selects one dimension from the dimension set assigned to the individual calculation unit 160 (step S41).
- the in-set data control unit 162 selects one vector data from the vector data set (step S42).
- the abort determination unit 163 refers to the distance storage unit 170, and determines whether the selected vector data satisfies the abort condition as a result of the calculation for other dimensions so far (step S43). Here, the abort determination unit 163 determines that the abort condition is satisfied when the cumulative value of the differences of the selected vector data is equal to or greater than the abort threshold.
- step S43 If the abort condition is satisfied in step S43 (step S43 / Y), the process returns to step S42.
- step S44 When the censoring condition is not satisfied in step S43 (step S43 / N), the single element calculation unit 164 performs a predetermined calculation related to the selected dimension for the selected vector data (step S44).
- the single element calculation unit 164 calculates a difference between elements of the selected dimension between the selected vector data and the target vector data, and accumulates the difference in the distance storage unit 170. In addition, the single element calculation unit 164 compares the accumulated value with the comparison threshold for one selected vector data, and stores the comparison result in the result storage unit 180.
- step S42 is repeated for all data in the vector data set (step S45).
- step S41 is repeated for all dimensions in the dimension set assigned to the individual calculation unit 160 (step S46).
- the individual calculation unit 160 performs the calculation only on the elements of the vector data that do not satisfy the truncation condition.
- the result output unit 190 outputs the comparison result stored in the result storage unit 180 to the user or the like as a verification result (step S5).
- the distance between vector data increases as the number of dimensions in which differences are accumulated increases. Therefore, when the number of dimensions for which the difference calculation has been completed is small, the accumulated value of the difference often does not satisfy the truncation condition (the ratio requiring the calculation is large). In addition, when the number of dimensions for which the difference calculation has been completed is large, the accumulated value of the difference often satisfies the truncation condition (the ratio that requires calculation is small).
- the batch computation unit 150 is used to perform batch computation using vector instructions, so that computation on a plurality of vector data can be made more efficient.
- the individual computation unit 160 by using the individual computation unit 160, the difference calculation is performed only for elements that do not satisfy the truncation condition, so no wasteful computation is performed. Thus, the number of useless operations is reduced while using vector instructions.
- FIG. 10 shows an example of the program of the collation device 100 in the first embodiment of the present invention.
- the number of vector data in the vector data set is 12, and the number of elements of each vector data is 8, as in the program of FIG.
- u [j] [i] is the j-th element of the i-th vector data of the vector data set
- v [j] is the j-th element of the target vector data.
- the first double loop (line numbers 4 to 10) is the processing of the batch operation unit 150, and the second double loop (line numbers 12 to 12). 20) corresponds to the processing of the individual calculation unit 160.
- “#Pragma ⁇ ⁇ ⁇ ⁇ vector” and “#Pragma novector” specify whether to compile for vector operation.
- a variable K designates which of the collective operation unit 150 and the individual operation unit 160 is selected for each dimension. In the example of FIG. 10, except for the first dimension, since it is known that the ratio that requires a predetermined calculation is sufficiently small (the probability that the calculation is determined to be unnecessary is high due to the censoring determination), K is set to 1. Is set.
- T is a comparison threshold, and when the distance d is smaller than T, it is determined that the i-th vector data in the vector data set and the target vector data match.
- T may be a variable or a constant.
- the comparison threshold T is also used as the abort threshold.
- the vector data set u is transposed with respect to the program of FIG. Further, unlike the program of FIG. 20, the loop related to the dimension exists outside the loop related to the vector data in the vector data set.
- FIG. 11 is a diagram illustrating an example of elements on which an operation is performed in the first embodiment of the present invention.
- elements indicated by diagonal lines are elements that do not require a predetermined operation, and elements within the thick frame are subjected to a predetermined operation at once using a vector instruction by the batch operation unit 150.
- the other elements represent elements that have been subjected to a predetermined calculation by the individual calculation unit 160.
- a predetermined operation is performed using a vector command in the direction of different vector data in the vector data set.
- abortion determination For the elements of the second and subsequent dimensions, a predetermined calculation is performed while performing abortion determination. And about 19 elements which need a predetermined calculation, the calculation is performed by ten instructions. As a result, the number of useless operations is reduced, and collation processing is executed at high speed.
- the number of vector data in the vector data set is 12.
- the number of vector data is large, and in particular, when the ratio that requires calculation is sufficiently small except for the first dimension, the degree of speed-up becomes larger than when the present invention is not used. .
- the present invention is not limited to this, and other methods may be used as the predetermined calculation as long as the distance between the vector data can be calculated based on the calculation result for each dimension. Moreover, as long as it can be used for collation between vector data, values other than distance may be calculated.
- FIG. 12 is a block diagram showing another configuration relating to the collective calculation unit 150 and the individual calculation unit 160 in the first embodiment of the present invention.
- the dimension control units 151 and 161 are included in the batch calculation unit 150 and the individual calculation unit 160, respectively.
- the present invention is not limited to this, and a common dimension control unit 151 may exist outside the batch calculation unit 150 and the individual calculation unit 160 as shown in FIG.
- the process of the calculation method selection unit 140 is performed.
- the calculation method selection unit 140 selects whether to use the batch calculation unit 150 or the individual calculation unit 160 for the dimension selected by the dimension control unit 151.
- the batch calculation unit 150 and the individual calculation unit 160 calculate a difference for the selected dimension. Thereby, the dimension control part 151 can be shared.
- FIG. 1 is a block diagram showing a characteristic configuration of the first embodiment of the present invention.
- the collation apparatus 100 (information processing apparatus) performs a predetermined calculation related to each dimension of vector data having a plurality of dimensions on the plurality of vector data.
- the collation device 100 includes a batch calculation unit 150 and an individual calculation unit 160.
- the batch calculation unit 150 performs a predetermined calculation related to each specific dimension of the plurality of dimensions by a vector calculation on different vector data of the plurality of vector data.
- the individual calculation unit 160 performs a predetermined calculation related to each dimension other than the specific dimension for vector data satisfying a predetermined condition among a plurality of vector data.
- the collation process between vector data can be executed at high speed.
- the reason is that the batch calculation unit 150 performs a predetermined calculation related to a specific dimension among a plurality of dimensions by vector calculation for different vector data, and the individual calculation unit 160 performs a predetermined calculation related to a dimension other than the specific dimension. This is because it is performed for vector data satisfying the above condition.
- FIG. 13 is a diagram showing a configuration of the individual calculation unit 160 in the second embodiment of the present invention.
- the individual calculation unit 160 includes an in-set data control unit 165, an abort determination unit 166, a dimension control unit 167, an abort determination unit 168, and a single element calculation unit 169.
- the present invention is such that the calculation for each dimension assigned to the individual calculation unit 160 is continuously performed on the selected vector data in the vector data set. This is different from the first embodiment.
- the in-set data control unit 165 selects vector data one by one from the vector data set.
- the abort determination unit 166 performs abort determination for one selected vector data.
- the dimension control unit 167 selects one dimension at a time from the dimension set assigned to the individual calculation unit 160.
- the abort determination unit 168 performs abort determination for the selected dimension.
- the single element calculation unit 169 performs a calculation related to the selected dimension for the selected one vector data. If the abortion determination units 166 and 168 determine that the calculation is not necessary, the process returns to the in-set data control unit 165.
- the dimension control unit selects the next dimension as in the first embodiment of the present invention. Processing is not performed, and the processing amount related to the dimension control unit can be reduced. Therefore, when the calculation amount of the predetermined calculation related to the collation process is relatively small and the ratio of the total processing amount of the dimension control unit is large, the collation process is further speeded up.
- FIG. 14 is a diagram showing an example of a storage format of a vector data set on a storage medium in the second embodiment of the present invention.
- n indicates the number of dimensions.
- the individual calculation unit 160 continuously performs calculations for different dimensions in the same vector data. Therefore, the storage format of the vector data set in the storage medium is preferably a format in which elements of each dimension in the same vector data are continuously stored as shown in FIG.
- the collective operation unit 150 performs the same operation as that of the first embodiment of the present invention, a format in which elements of different vector data related to the same dimension are continuously stored as shown in FIG. Is desirable. Therefore, in the second embodiment of the present invention, the data set storage unit 130 stores the vector data set in both the formats of FIG. 5 and FIG. 14 and uses the batch calculation unit 150 and the individual calculation unit 160 separately. Also good.
- FIG. 15 is an example of a program of the collation apparatus 100 in the second embodiment of the present invention.
- the inner side and the outer side of the second double loop (row numbers 12 to 23) corresponding to the processing of the individual calculation unit 160 are switched, Censoring determination (line numbers 17 and 18) is performed in the loop for the dimension (inner loop). If the number of dimensions of the vector data is large and a sufficient number of operations are performed before it is determined that the operation is not required by the abort determination, the inner loop may be executed with a vector instruction.
- the collation process can be further speeded up as compared with the first embodiment of the present invention.
- the reason is that the individual calculation unit 160 continuously performs the calculation for each dimension assigned to the individual calculation unit 160 for the selected vector data in the vector data set.
- FIG. 16 is a block diagram showing a configuration of the collation device 100 in the third embodiment of the present invention.
- the verification apparatus 100 includes a calculation number measurement unit 210 and a selection method determination unit 220 (or Dimension determination unit).
- the number-of-calculations measurement unit 210 measures the number of times that a predetermined calculation has been performed in the individual calculation unit 160 and the number of times that the calculation has not been performed due to the abort determination for each dimension. For each dimension, the selection method determination unit 220 selects a selection method (batch calculation unit 150) by the calculation method selection unit 140 based on the number of times the individual calculation unit 160 performs a predetermined calculation and the ratio of the number of times to the number of vector data. , Which of the individual calculation units 160 is to be selected). For example, the selection method determination unit 220 may calculate the calculation method selection unit 150 so as to select the collective calculation unit 150 for a certain dimension when the number and ratio of the calculations are large (when it is greater than or equal to a predetermined value). 140 is instructed.
- FIG. 17 is an example of a program of the collation device 100 in the third embodiment of the present invention.
- the selection method is determined so that the batch calculation unit 150 is selected for a dimension in which the number of calculations by the individual calculation unit 160 is C or more (line numbers 25 to 28).
- the number-of-calculations measurement unit 210 may measure, for each dimension, the number of times wasteful calculations are performed in the batch calculation unit 150 instead of the number of calculations performed in the individual calculation unit 160.
- the selection method determination unit 220 instructs the calculation method selection unit 140 to select the individual calculation unit 160 for a dimension having a large ratio of wasteful calculations performed in the batch calculation unit 150.
- the selection method by the calculation method selection unit 140 may be determined using the calculation time in the batch calculation unit 150 or the individual calculation unit 160 instead of the number of times the batch calculation unit 150 or the individual calculation unit 160 performs the calculation. Good.
- FIG. 18 is a block diagram showing another configuration of the collation device 100 in the third embodiment of the present invention.
- the 18 includes a time measurement unit 211 instead of the calculation count measurement unit 210.
- the time measuring unit 211 measures the processing time of the batch calculation unit 150 and the individual calculation unit 160 for each dimension.
- the selection method determination unit 220 determines the selection method by the calculation method selection unit 140 for each dimension based on the processing time of the batch calculation unit 150 and the individual calculation unit 160. For example, when the processing time becomes long because the selection method of a certain dimension is changed from the individual calculation unit 160 to the batch calculation unit 150, the selection method determination unit 220 returns the selection method to the individual calculation unit 160 again. .
- the collation process can be further speeded up as compared with the first embodiment of the present invention.
- the reason is that the selection method determination unit 220 determines the selection method by the calculation method selection unit 140 on the basis of the number and ratio of the predetermined calculation performed by the individual calculation unit 160 for each dimension.
- the process for vector data may be a process other than the collation as long as the predetermined calculation related to each dimension of the multi-dimensional vector data is performed on the plurality of vector data.
- the present invention can be used for collation with a database using feature vectors, such as an image search system.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Algebra (AREA)
- Evolutionary Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
Abstract
Description
本発明の第1の実施の形態について説明する。
次に、本発明の第2の実施の形態について説明する。
次に、本発明の第3の実施の形態について説明する。
101 CPU
102 記憶手段
103 通信手段
104 入力手段
105 出力手段
110 データ入力部
120 対象データ格納部
130 データ集合格納部
140 演算方法選択部
150 一括演算部
151 次元制御部
152 集合内データ制御部
153 複数要素演算部
160 個別演算部
161 次元制御部
162 集合内データ制御部
163 打ち切り判定部
164 単要素演算部
165 集合内データ制御部
166 打ち切り判定部
167 次元制御部
168 打ち切り判定部
169 単要素演算部
170 距離格納部
180 結果格納部
190 結果出力部
210 演算回数測定部
211 時間測定部
220 選択方法決定部
Claims (10)
- 複数次元を有するベクトルデータの各々の各次元に係る所定演算を、複数のベクトルデータに対して行う情報処理装置であって、
前記複数次元の内の特定次元の各々に係る前記所定演算を、前記複数のベクトルデータの内の異なるベクトルデータに対するベクトル演算により行う一括演算手段と、
前記特定次元以外の次元の各々に係る前記所定演算を、前記複数のベクトルデータの内の、所定の条件を満たすベクトルデータについて行う個別演算手段と、
を備えた情報処理装置。 - 前記特定次元は、前記複数次元の内の、前記所定演算が行われる順番が所定値以下の次元である、
請求項1に記載の情報処理装置。 - さらに、前記一括演算手段、及び、前記個別演算手段の内の少なくとも一方における、前記所定演算の実行状況に応じて、前記特定次元を決定する次元決定手段を備えた、
請求項1または2に記載の情報処理装置。 - 前記次元決定手段は、前記特定次元以外の一の次元について、前記個別演算手段において前記所定演算が行われた回数または割合が所定値以上の場合、当該一の次元を前記特定次元に含める、
請求項3に記載の情報処理装置。 - 前記所定演算は、ベクトルデータ間の各次元の差分、及び、差分の累積値の計算を含み、
前記個別演算手段は、前記所定の条件として、前記差分の累積値が所定の打ち切り閾値未満のベクトルデータについて、前記所定演算を行う、
請求項1乃至4のいずれかに記載の情報処理装置。 - 複数次元を有するベクトルデータの各々の各次元に係る所定演算を、複数のベクトルデータに対して行うベクトルデータ処理方法であって、
前記複数次元の内の特定次元の各々に係る前記所定演算を、前記複数のベクトルデータの内の異なるベクトルデータに対するベクトル演算により実行する一括演算処理を行い、
前記特定次元以外の次元の各々に係る前記所定演算を、前記複数のベクトルデータの内の、所定の条件を満たすベクトルデータについて実行する個別演算処理を行う、
ベクトルデータ処理方法。 - 前記特定次元は、前記複数次元の内の、前記所定演算が行われる順番が所定値以下の次元である、
請求項6に記載のベクトルデータ処理方法。 - さらに、前記一括演算処理、及び、前記個別演算処理の内の少なくとも一方における、前記所定演算の実行状況に応じて、前記特定次元を決定する、
請求項6または7に記載のベクトルデータ処理方法。 - 前記特定次元以外の一の次元について、前記個別演算処理において前記所定演算が行われた回数または割合が所定値以上の場合、当該一の次元を前記特定次元に含める、
請求項8に記載のベクトルデータ処理方法。 - 複数次元を有するベクトルデータの各々の各次元に係る所定演算を、複数のベクトルデータに対して行うコンピュータのプログラムを格納する記録媒体であって、
前記コンピュータに、
前記複数次元の内の特定次元の各々に係る前記所定演算を、前記複数のベクトルデータの内の異なるベクトルデータに対するベクトル演算により行い、
前記特定次元以外の次元の各々に係る前記所定演算を、前記複数のベクトルデータの内の、所定の条件を満たすベクトルデータについて行う、
処理を実行させるプログラムを格納する、コンピュータが読み取り可能な記録媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016529021A JP6631516B2 (ja) | 2014-06-19 | 2015-06-11 | 情報処理装置、ベクトルデータ処理方法、及び、プログラム |
EP15810354.9A EP3159806A4 (en) | 2014-06-19 | 2015-06-11 | Information processing device, vector data processing method, and recording medium |
US15/315,469 US10459902B2 (en) | 2014-06-19 | 2015-06-11 | Information processing device, vector data processing method, and recording medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014-125864 | 2014-06-19 | ||
JP2014125864 | 2014-06-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015194132A1 true WO2015194132A1 (ja) | 2015-12-23 |
Family
ID=54935141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/002923 WO2015194132A1 (ja) | 2014-06-19 | 2015-06-11 | 情報処理装置、ベクトルデータ処理方法、及び、記録媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10459902B2 (ja) |
EP (1) | EP3159806A4 (ja) |
JP (1) | JP6631516B2 (ja) |
WO (1) | WO2015194132A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11205283A (ja) * | 1998-01-09 | 1999-07-30 | Oki Electric Ind Co Ltd | 相関値算出装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5551039A (en) * | 1992-02-03 | 1996-08-27 | Thinking Machines Corporation | Compiling a source code vector instruction by generating a subgrid loop for iteratively processing array elements by plural processing elements |
FI110743B (fi) | 1999-06-28 | 2003-03-14 | Valtion Teknillinen | Menetelmä ja järjestelmä liike-estimoinnin suorittamiseksi |
EP1204032A4 (en) * | 1999-12-21 | 2008-06-11 | Matsushita Electric Ind Co Ltd | CREATION OF A VECTORIAL INDEX, SEARCH FOR SIMILAR VECTORS AND CORRESPONDING DEVICES |
US6701424B1 (en) * | 2000-04-07 | 2004-03-02 | Nintendo Co., Ltd. | Method and apparatus for efficient loading and storing of vectors |
US6788303B2 (en) * | 2001-02-27 | 2004-09-07 | 3Dlabs Inc., Ltd | Vector instruction set |
JP2004194108A (ja) * | 2002-12-12 | 2004-07-08 | Sony Corp | 情報処理装置および情報処理方法、記録媒体、並びにプログラム |
JP4087421B2 (ja) | 2006-10-11 | 2008-05-21 | シャープ株式会社 | パターン認識装置、パターン認識方法、パターン認識プログラム、および記録媒体 |
JP4941791B2 (ja) * | 2007-04-23 | 2012-05-30 | 日本電気株式会社 | 2次元パターンのマッチング方法、特徴抽出方法、これらに用いる装置及びプログラム |
CN102144256B (zh) | 2008-07-17 | 2013-08-28 | 诺基亚公司 | 用于针对矢量量化器的快速最近邻搜索的方法和设备 |
CN102292724B (zh) * | 2009-01-23 | 2015-06-17 | 日本电气株式会社 | 匹配加权信息提取装置 |
-
2015
- 2015-06-11 JP JP2016529021A patent/JP6631516B2/ja active Active
- 2015-06-11 WO PCT/JP2015/002923 patent/WO2015194132A1/ja active Application Filing
- 2015-06-11 EP EP15810354.9A patent/EP3159806A4/en not_active Withdrawn
- 2015-06-11 US US15/315,469 patent/US10459902B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11205283A (ja) * | 1998-01-09 | 1999-07-30 | Oki Electric Ind Co Ltd | 相関値算出装置 |
Also Published As
Publication number | Publication date |
---|---|
JP6631516B2 (ja) | 2020-01-15 |
US20170199907A1 (en) | 2017-07-13 |
JPWO2015194132A1 (ja) | 2017-04-27 |
EP3159806A4 (en) | 2018-05-02 |
EP3159806A1 (en) | 2017-04-26 |
US10459902B2 (en) | 2019-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681503B (zh) | 信息处理方法及装置 | |
WO2018227800A1 (zh) | 一种神经网络训练方法及装置 | |
US10678896B2 (en) | Methods and apparatuses for updating user authentication data | |
US8595155B2 (en) | Kernel regression system, method, and program | |
US20140321738A1 (en) | Dictionary creation device, image processing device, image processing system, dictionary creation method, image processing method, and program | |
JP6529096B2 (ja) | シミュレートシステム、シミュレート方法およびシミュレート用プログラム | |
JP2014102578A (ja) | 情報処理装置、制御方法、プログラム、及び記録媒体 | |
WO2017188419A1 (ja) | 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体 | |
US20190213610A1 (en) | Evaluation device and evaluation method | |
US20180060448A1 (en) | Computer and method of creating graph data | |
US20180018570A1 (en) | Information processing system, change point detection method, and recording medium | |
WO2015194132A1 (ja) | 情報処理装置、ベクトルデータ処理方法、及び、記録媒体 | |
US11537910B2 (en) | Method, system, and computer program product for determining causality | |
JP6835407B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
WO2015163322A1 (ja) | データ分析装置、データ分析方法およびプログラム | |
KR102413588B1 (ko) | 학습 데이터에 따른 객체 인식 모델 추천 방법, 시스템 및 컴퓨터 프로그램 | |
US20140114930A1 (en) | Reliability calculation apparatus, reliability calculation method, and computer-readable recording medium | |
JP7348945B2 (ja) | 情報処理方法、および、情報処理システム | |
US20200302577A1 (en) | Image processing method, image processing apparatus, and medium | |
JP7062923B2 (ja) | 可視化方法、可視化装置及び可視化プログラム | |
JPWO2021053815A5 (ja) | 学習装置、学習方法、推論装置、推論方法、及び、プログラム | |
JP7502211B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP7515322B2 (ja) | 設定管理装置、設定管理方法、及び、設定管理プログラム | |
US11494375B2 (en) | Method and apparatus for analyzing cause of product defect | |
JP7478069B2 (ja) | 情報処理装置、情報処理方法、およびプログラム |
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: 15810354 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2016529021 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15315469 Country of ref document: US |
|
REEP | Request for entry into the european phase |
Ref document number: 2015810354 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2015810354 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |