WO2023058082A1 - 情報処理装置、情報処理システム、情報処理方法、及び、記録媒体 - Google Patents

情報処理装置、情報処理システム、情報処理方法、及び、記録媒体 Download PDF

Info

Publication number
WO2023058082A1
WO2023058082A1 PCT/JP2021/036589 JP2021036589W WO2023058082A1 WO 2023058082 A1 WO2023058082 A1 WO 2023058082A1 JP 2021036589 W JP2021036589 W JP 2021036589W WO 2023058082 A1 WO2023058082 A1 WO 2023058082A1
Authority
WO
WIPO (PCT)
Prior art keywords
inference
data
target object
unit
primary
Prior art date
Application number
PCT/JP2021/036589
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 PCT/JP2021/036589 priority Critical patent/WO2023058082A1/ja
Priority to JP2023552407A priority patent/JPWO2023058082A5/ja
Publication of WO2023058082A1 publication Critical patent/WO2023058082A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the present invention relates to inference using machine learning.
  • Non-Patent Documents 1 to 3 disclose techniques for object detection tasks using deep-learning.
  • Non-Patent Document 4 discloses a posture estimation task technique for estimating the posture of a person included in an image.
  • Non-Patent Documents 1 to 4 do not disclose any technique related to improving the inference throughput.
  • An object of the present invention is to provide an information processing apparatus or the like that improves the throughput of inference of a target object.
  • An information processing device includes: primary inference means for inferring the first target object by applying inference target data, at least part of which includes the first target object, to the first trained model as primary inference; Classifying the first target object inferred in the primary inference into one of the groups based on the attributes of the first target object, generating aggregated data for each group that is less in quantity than the inference target data, and generating the inference target data aggregating means for generating a correspondence relationship between the position of the first target object in the data and the position of the first target object in the aggregated data; a plurality of secondary inference means for inferring the first target object by applying aggregated data of mutually different groups to the second trained model as secondary inference; object inference means for inferring the first object in the inference object data by using the first object in the result of the secondary inference and the correspondence relationship.
  • An information processing system includes: the above information processing device; a data acquisition device that outputs inference target data to an information processing device; a display device that acquires an inference result from the information processing device and displays the acquired inference result.
  • An information processing method includes: As primary inference, inference target data at least part of which includes the first target object is applied to the first trained model to infer the first target object; Classifying the first target object inferred in the primary inference into one of the groups based on the attributes of the first target object, generating aggregated data for each group that is less in quantity than the inference target data, and generating the inference target generating a correspondence relationship between the position of the first target object in the data and the position of the first target object in the aggregated data; as secondary inference, applying aggregated data of mutually different groups to the second trained model to infer the first target object; The first target object in the inference target data is inferred using the first target object in the secondary inference result and the corresponding relationship.
  • An information processing method includes: An information processing device executes the above information processing method, A data acquisition device outputs inference target data to an information processing device, A display device acquires an inference result from the information processing device and displays the acquired inference result.
  • a recording medium includes a process of applying inference target data, at least part of which includes the first target object, to the first trained model as primary inference to infer the first target object; Classifying the first target object inferred in the primary inference into one of the groups based on the attributes of the first target object, generating aggregated data for each group that is less in quantity than the inference target data, and generating the inference target a process of generating a correspondence relationship between the position of the first target object in the data and the position of the first target object in the consolidated data; As secondary inference, a process of inferring the first target object by applying aggregated data of mutually different groups to the second trained model; A program for causing a computer to execute a process of inferring the first target object in the inference target data using the first target object in the result of the secondary inference and the corresponding relationship is recorded.
  • FIG. 11 is a flowchart showing an example of operation of generating a trained model in the information processing apparatus according to the second embodiment;
  • FIG. 11 is a flow diagram showing an example of an operation of inferring a target object in the information processing apparatus according to the second embodiment;
  • FIG. 5 is a flow diagram showing an example of post-processing in a data aggregating unit;
  • FIG. 10 is a diagram showing an example of a result of primary inference; It is a figure which shows an example of aggregated data.
  • FIG. 10 is a diagram showing an example of a result of secondary inference;
  • FIG. 11 is a flowchart showing an example of operation of generating a trained model in the information processing apparatus according to the second embodiment;
  • FIG. 11 is a flow diagram showing an example of an operation of inferring a target object in the information processing apparatus according to the second embodiment;
  • FIG. 5 is a flow diagram showing an example of post-processing in a data aggregating unit;
  • FIG. 10 is a
  • FIG. 10 is a diagram showing an example of inference of a target object in inference target data; It is a block diagram which shows an example of the hardware constitutions of an information processing apparatus.
  • 1 is a block diagram showing an example of a configuration of an information processing system including an information processing device;
  • FIG. FIG. 12 is a block diagram showing an example of the configuration of an information processing apparatus according to a third embodiment;
  • FIG. FIG. 12 is a flow diagram showing an example of a model switching operation in the information processing apparatus according to the third embodiment;
  • 1 is a block diagram showing an example of the configuration of an information processing apparatus according to a first embodiment;
  • FIG. FIG. 11 is a block diagram showing an example of the configuration of an information processing device that executes secondary inference for each group according to the second embodiment;
  • FIG. 15 is a flow diagram showing an example of an operation of inferring a target object in the information processing apparatus of FIG. 14;
  • FIG. 13 is a block diagram showing an example of the configuration of the information processing device 1C according to the first embodiment of the invention.
  • the information processing device 1C includes an object inference unit 10D, a primary inference unit 20D, a data aggregation unit 30D, and a plurality of secondary inference units 40D.
  • the primary inference unit 20D applies inference target data, at least part of which includes the first target object, to the first trained model to infer the first target object.
  • the data aggregator 30D classifies the first target object inferred in the primary inference into one of groups based on the attributes of the first target object.
  • the data aggregating unit 30D generates aggregated data, which is data whose quantity is smaller than that of the inference target data, for each group. Then, the data aggregation unit 30D generates a correspondence relationship between the position of the first target object in the inference target data and the position of the first target object in the aggregated data.
  • the secondary inference unit 40D infers the first target object by applying aggregated data of mutually different groups to the second trained model.
  • the object inference unit 10D infers the first object in the inference object data by using the first object in the result of the secondary inference and the correspondence relationship.
  • the information processing device 1C configured in this manner generates aggregated data in which inference target data are aggregated for each group of first target objects classified based on the attributes of the first target objects. Then, the information processing device 1C uses the result of the secondary inference using the aggregated data for each group and the corresponding relationship between the inference target data of the target object and the position of the aggregated data to identify the target object in the inference target data. infer.
  • Aggregate data is data that includes target objects in the original data and has a small amount of data. Therefore, the information processing device 1C improves the throughput of inference of the target object. Furthermore, the information processing device 1C performs secondary inference on aggregated data aggregated for each of a plurality of groups classified based on the attributes of the first target object.
  • the information processing device 1C executes secondary inference corresponding to the attribute of the first target object.
  • the information processing device 1C uses secondary inference that uses a lightweight and high-speed trained model or an inference parameter as the secondary inference for a group with a low inference difficulty level. can improve inference throughput while maintaining accuracy.
  • the information processing device 1C can execute inference that avoids deterioration in accuracy by using secondary inference that uses highly accurate trained models or inference parameters for groups with high inference difficulty.
  • the information processing device 1C improves the throughput of inference of the target object while maintaining accuracy.
  • the object detection task is a task for generating a list of pairs of positions and classes (types) of target objects existing in an image.
  • object detection tasks using machine learning especially deep-learning, have been widely used.
  • the object detection task is given, as correct data, a group of images for learning and information on a target object in each image.
  • Target object information is selected according to the specifications of the object detection task.
  • the target object information includes the coordinates of the four vertices (bounding box (BB)) of the rectangular area in which the target object is captured and the class of the target object.
  • the BB and class will be used for explanation, and the object detection task uses the image group for learning and the information of the target object, for example, as a result of machine learning using deep learning, learning
  • the object detection task applies the trained model to an image containing the target object to infer the target object contained in the image, and for each target object contained in the image, BB and class.
  • the object detection task may also output the evaluation result of the object detection result together with BB and class.As the evaluation result, confidence is used. is often used, but not limited to this, and other values may be used.
  • people and vehicle surveillance systems can be built using object detection tasks.
  • a user of the system inputs images from a surveillance camera into an object detection task.
  • the object detection task detects the positions and classes of people and vehicles in images.
  • the user can use the positions and classes of the people and vehicles detected by the object detection task to determine the people and vehicles captured in the image of the surveillance camera.
  • the object detection task may be used in combination with other recognition processes.
  • a license plate recognition system can be built by combining the object detection task of detecting a car license plate with the Optical Character Recognition (OCR) process of recognizing characters on the detected license plate. is.
  • OCR Optical Character Recognition
  • the pose estimation task which estimates the pose of the person included in the image.
  • the pose estimation task includes, for example, a process of extracting keypoints such as eyes, nose, elbows, and knees, and a process of combining the keypoints to generate a human pose.
  • the pose estimation task is not limited to the following, but for example, deep learning may be used for keypoint extraction processing for extracting feature points, and non-deep learning may be used for pose generation processing.
  • keypoints such as the eyes and nose included in the image are inferred by applying the learned model to the image including the target. Then, in the keypoint extraction process, for each inferred keypoint, the coordinates and class of the keypoint and the confidence of the inference are output.
  • High throughput is required for the processing of object detection tasks and posture estimation tasks.
  • surveillance cameras need to acquire images at a relatively high frame rate.
  • surveillance cameras are desired to operate at a frame rate of 10 fps (frame per second) or higher, for example, when targeting fast-moving objects such as cars. Therefore, object detection tasks and the like need to detect objects in high frame rate images captured by surveillance cameras.
  • a configuration is assumed in which the surveillance camera or a peripheral device of the surveillance camera, that is, an edge, executes inference processing in the object detection task.
  • the surveillance camera or a peripheral device of the surveillance camera that is, an edge
  • executes inference processing in the object detection task at the edge, installation space, cooling, power, etc. are constrained, and in many cases only limited computational resources are available. Processing such as object detection tasks requires a certain degree of high throughput even in such an edge environment.
  • the processing of inference using machine learning is a process that requires a high computational load and takes a long time to process.
  • object detection and pose estimation tasks are generally prone to poor throughput performance. Therefore, it is desired to improve the throughput of inference processing in the object detection task and pose estimation task.
  • FIG. 1 is a block diagram showing an example of the configuration of an information processing device 1 according to the second embodiment.
  • Data to be inferred Images (still images or moving images) captured by cameras, etc.
  • inference task object detection task or pose estimation task for images;
  • Inference result a set of "BB or Keypoint, class, and confidence";
  • Object of interest License Plate (LP) or attitude of the vehicle.
  • this embodiment may use data different from an image as data to be processed.
  • this embodiment may use depth data acquired using a depth sensor as data to be processed.
  • this embodiment may use three-dimensional data acquired using lidar (Light Detection and Ranging (LIDAR)) as data to be processed.
  • LIDAR Light Detection and Ranging
  • the inference result in this embodiment is not limited to the set of "BB or Keypoint, class, and confidence".
  • the present embodiment may infer target objects contained in BB.
  • the set of "BB, class, and confidence" may be simply called "BB".
  • FIG. 1 is a block diagram showing an example of the configuration of an information processing device 1 according to the second embodiment.
  • the information processing apparatus 1 includes an object inference unit 10, a primary inference unit 20, a data aggregation unit 30, a secondary inference unit 40, a data storage unit 50, a data generation unit 60, a model generation unit 70, a model A storage unit 80 and a data acquisition unit 90 are included.
  • the number of components and connection relationships shown in FIG. 1 are examples.
  • the information processing device 1 may include multiple data acquisition units 90 .
  • the information processing device 1 may be configured using a computer device including a CPU (Central Processing Unit), a main memory, and a secondary storage device. In this case, the constituent elements of the information processing apparatus 1 shown in FIG. 1 indicate functions realized using a CPU or the like.
  • the hardware configuration will be further explained later.
  • the configuration for controlling the operation of each component is arbitrary.
  • the information processing device 1 may include a control unit (not shown) that controls each component.
  • a given configuration may control the operation of components such as primary reasoner 20 , data aggregator 30 , and secondary reasoner 40 .
  • the object reasoning unit 10 may control the operations of components such as the primary reasoning unit 20, the data aggregating unit 30, and the secondary reasoning unit 40.
  • certain configurations may control other configurations.
  • each component may operate independently by obtaining data from other components.
  • each component may begin operation upon obtaining data from the other component. Therefore, in the following description, the description regarding the control of the operation of the constituent elements will be omitted unless particularly necessary.
  • the data acquisition unit 90 acquires data including an inference target object from a predetermined device.
  • a target object an object to be inferred
  • data including a target object is referred to as "inference target data”.
  • At least part of the inference target data should include the target object. That is, at least part of the inference target data may not include the target object.
  • the device from which the data acquisition unit 90 acquires the inference target data is arbitrary.
  • the data acquisition unit 90 may acquire an image from a surveillance camera as inference target data.
  • the primary inference unit 20 infers a target object in the inference target data. Inference in the primary inference unit 20 is hereinafter referred to as "primary inference". In addition to the target object, the primary inference unit 20 may also infer an object having a predetermined positional relationship with the target object as the target of primary inference. An object having a predetermined positional relationship with the target object is, for example, a surrounding object of the LP, but is not limited to this. Hereinafter, an object having a predetermined positional relationship with the target object will be referred to as a "sub-target object”. In the following description, the primary inference unit 20 infers a target object and a sub-target object.
  • the primary inference unit 20 may not infer sub-objects. Further, in the following description, the target object for inference in the information processing apparatus 1 may be called “first target object”, and the sub-target object may be called “second target object”.
  • the predetermined positional relationship is arbitrary.
  • the operator may set the positional relationship of the sub-target objects corresponding to the target object.
  • a positional relationship is "a target object is contained in a sub-target object" or "a sub-target object contains a target object".
  • the sub-target objects are the front and rear surfaces of the vehicle containing the LP.
  • the front and rear surfaces of the vehicle including the LP may be collectively referred to as "vehicle front and rear surfaces”.
  • this does not limit the positional relationship in the second embodiment.
  • the primary inference unit 20 uses machine learning in primary inference. Specifically, the primary inference unit 20 infers a target object and sub-target objects in the inference target data using a trained model generated using machine learning stored in the model storage unit 80 .
  • the trained model used by the primary inference unit 20 is hereinafter referred to as a "primary inference trained model” or a "first trained model”.
  • the primary inference unit 20 may correct the inference target data when applying the inference target data to the trained model for primary inference. For example, if the inference target data is an image, the primary inference unit 20 may change the size or aspect ratio of the image.
  • Data aggregator 30 uses the target object included in the result of the primary inference to execute the processing described below. However, when the primary inference unit 20 infers a sub-target object in addition to the target object, the data aggregation unit 30 may use the sub-target object in addition to the target object. In the following description, the data aggregator 30 uses target objects and sub-target objects. However, the data aggregating unit 30 does not have to use sub-target objects. In this case, the data aggregating unit 30 may omit operations related to sub-target objects in the following description.
  • the data aggregating unit 30 executes a predetermined process on the target object included in the result of the primary inference.
  • the predetermined processing is discarding BBs, filtering BBs, or adjusting BBs.
  • This processing is hereinafter referred to as "post-processing".
  • the data aggregating unit 30 may perform post-processing on some of the target objects included in the result of the primary inference, or may perform post-processing on all the target objects.
  • the data aggregator 30 may perform post-processing on some or all of the sub-objects included in the primary inference results. In the following description, as an example, the data aggregating unit 30 performs post-processing on all target objects and sub-target objects.
  • the post-processing in the data aggregation unit 30 is not limited to this.
  • the data aggregating unit 30 generates data that includes the area of the target object and the area of the sub-target object in the inference target data and has a smaller amount of data than the inference target data.
  • data generated as data having a smaller amount of data than inference target data will be referred to as “aggregated data”.
  • this processing is referred to as “aggregation”.
  • aggregation means extracting or duplicating regions including target objects and sub-target objects in the result of primary inference from inference target data, collecting the extracted or duplicated regions, It is to generate aggregated data which is data.
  • the amount of data that is less than the inference target data is arbitrary.
  • the operator can make a decision corresponding to the target object and the motion of the inference.
  • aggregated data is data with a smaller number of data than inference target data.
  • the number of data is the number of still images.
  • the data is a moving image with a fixed length of time, the number of data is, for example, the number of moving images.
  • the amount of data is used as the amount of data
  • aggregated data is data with a smaller amount of data than inference target data.
  • the amount of data is, for example, capacity or area.
  • the amount of data is the amount of data for the entire still image.
  • the data is video
  • the amount of data is the duration of the video.
  • the data aggregating unit 30 creates correspondence relationships between the respective positions of the target object and the sub-target objects in the inference target data and the respective positions of the target object and the sub-target objects in the aggregated data.
  • the correspondence between the positions of the target object and the sub-target objects in the inference target data and the positions of the target object and the sub-target objects in the aggregated data will be referred to as "aggregated correspondence”.
  • the data aggregating unit 30 sets the position, orientation, and size of the BB of the target object and the BB of the sub-target object in the inference target data, and the respective positions, orientations, and sizes in the aggregated data, as the aggregation correspondence relationship.
  • the data aggregating unit 30 may generate an image of a size different from the size of the image in the inference target data as the image in the aggregated data.
  • the operator of the information processing device 1 determines the size of the inference target data, the performance of the hardware of the information processing device 1, and the processing performance and calculation accuracy of the trained model used for inference.
  • the size may be set in the data aggregator 30 .
  • Aggregated data is data used for inference by the secondary inference unit 40, which will be described later.
  • Inference target data is data used for inference by the primary inference unit 20 . That is, in the information processing device 1, the primary inference unit 20 and the secondary inference unit 40 may use data of different sizes. For example, when the data is an image, the information processing device 1 may use images of different sizes for the primary inference unit 20 and the secondary inference unit 40 .
  • the post-processed data aggregating unit 30 executes post-processing, which will be described below, before generating aggregated data.
  • the data aggregating unit 30 uses the positional relationship between the target object and the sub-target objects and the results of the primary inference to discard unnecessary sub-target object regions from the results of the primary inference.
  • the data aggregating unit 30 discards a sub-target object included in the result of the primary inference that has a predetermined positional relationship with the sub-target object included in the result of the primary inference.
  • the data aggregation unit 30 may discard the BB of the sub-target object corresponding to the target object inferred as a result of the primary inference.
  • the data aggregating unit 30 uses sub-target objects included in the results of the primary inference for which target objects having a predetermined positional relationship are not included in the results of the primary inference as targets for aggregation.
  • the reason for using this operation will be explained using "positional relationship in which the sub-target object includes the target object" and "BB".
  • the BB of the target object included in the result of the primary inference is included in the aggregated data in the operation of aggregation, which will be explained later. Therefore, even if the BB of the sub-target object including the target object included in the result of the primary inference is not included in the aggregated data, the BB of the target object is included in the aggregated data. Also, when the BB of the sub-target object is included in the aggregated data, the aggregated data will include duplicate BBs as the BB of the target object. This adds unnecessary overhead in secondary reasoning. Therefore, the data aggregation unit 30 discards such sub-target objects. As a result, the information processing apparatus 1 can improve the throughput compared to the case of using the BB of the sub-target object.
  • the BB of a sub-target object whose target object is not included in the primary inference result may include a target object that was not inferred in the primary inference. Therefore, if the BB of such a sub-target object is included in the consolidated data, the information processing device 1 can improve the accuracy of the secondary inference.
  • the data aggregating unit 30 discards sub-target objects whose target objects are included in the result of primary inference among the sub-target objects. In other words, the data aggregating unit 30 selects sub-target objects that have a predetermined positional relationship with the target object as objects to be aggregated, and the sub-target objects that have a predetermined positional relationship are not included in the result of the primary inference. Use As a result of this operation, the data aggregating unit 30 can reduce the amount of aggregated data to be generated while improving the inference accuracy in the secondary inference. As a result, the information processing apparatus 1 can improve throughput and inference speed.
  • the data aggregating unit 30 determines that the BB of the vehicle front and rear surfaces included in the result of the primary inference , BB including LP included in the primary inference result are discarded. In other words, the data aggregating unit 30 consolidates vehicle front and rear BBs for which no LP is inferred in the area among the vehicle front and rear BBs included in the result of the primary inference. In this way, the data aggregating unit 30 generates aggregated data such that both the target object and the sub-target object do not include results of inferred primary inference.
  • the positional relationship between the target object and the sub-target object is not limited to the above and is arbitrary.
  • the data aggregating unit 30 uses the positional relationship set by the operator to determine the positional relationship between the target object and the sub-target object.
  • the data aggregating unit 30 uses a learned model for determining the positional relationship between the target object and the sub-target object stored in a device (not shown). good too.
  • the data aggregating unit 30 may perform an operation other than discarding sub-target objects. For example, when a target object is detected and a sub-target object corresponding to the target object is detected, the data aggregating unit 30 does not discard the BB of the sub-target object and updates the confidence of the BB of the target object. good. For example, when a target object is detected and a sub-target object corresponding to the target object is detected, the data aggregating unit 30 may add or multiply the confidence of the BB of the target object by a predetermined value. may be changed to a predetermined value.
  • the data aggregating unit 30 may filter the primary inference results as post-processing before generating aggregated data.
  • the target of filtering is arbitrary.
  • the data aggregator 30 may use at least one of the confidence corresponding to the BB, the size or aspect ratio of the BB, and the position of the BB in the image to filter the BBs resulting from the primary inference. More specifically, for example, the data aggregator 30 may filter BBs based on comparison of attribute values of the BBs with a predetermined threshold.
  • the attribute value is, for example, size or aspect ratio.
  • the data aggregator 30 may discard BBs of inappropriate size or aspect ratio for inference.
  • the number of thresholds may be plural instead of one.
  • the threshold may be different for each class associated with BB.
  • the threshold may be different depending on whether a sub-target object corresponding to the target object is detected.
  • the data aggregation unit 30 may adjust at least one of the size and aspect ratio of the acquired BB.
  • the position and size of the BB included in the primary inference results may differ from the correct position and size.
  • the BB size may be smaller than the actual target object.
  • the inferred BB tends to be smaller than the actual target object.
  • the data aggregating unit 30 If a BB whose size is smaller than the actual target object is used as it is, the data aggregating unit 30 generates aggregated data including a partially missing target object. As a result, the secondary inference unit 40, which will be described later, makes an inference using the aggregated data including the partially missing target object. As a result, there is a high possibility that the result of the inference in the secondary inference unit 40 will not be correct, that is, the possibility that the inference accuracy will be low. Therefore, as post-processing, the data aggregating unit 30 adds or multiplies a predetermined value to at least one of the height and width of the BB of the target object and the BB of the sub-target object to obtain the size of the BB. may be modified.
  • the data aggregation unit 30 may correct at least one of the height and width of the BB so that the aspect ratio falls within the predetermined range.
  • the data aggregating unit 30 uses different values as the BB correction amount corresponding to at least one of the BB size, class, position in the image, and relative position to a predetermined object in the image. good too.
  • the data aggregating unit 30 determines whether or not the sub-target object corresponding to the target object is detected, or the size of the BB of the corresponding sub-target object, etc., as the correction amount of the BB. different values may be used. In these cases, the operator may set each value used by the data aggregating unit 30 in advance.
  • the data aggregating unit 30 does not have to execute "post-processing". However, whether post-processing is executed or not, the data aggregating unit 30 executes the same operation as the aggregating operation described below. Therefore, in the following description, for the sake of convenience, the operations described below, including the case where post-processing is not performed, will be described as "after post-processing" operations. In other words, when post-processing is not executed, the information processing apparatus 1 may operate using the result of primary inference without post-processing as the operation "after post-processing" in the following description.
  • the aggregated data aggregation unit 30 generates aggregated data in which regions of target objects and sub-target objects in the result of primary inference after post-processing are gathered. Specifically, the data aggregating unit 30 extracts or duplicates the region of the target object and the region of the sub-target object in the result of primary inference after post-processing in the inference target data, and collects the extracted or duplicated regions as aggregated data. Generate.
  • the data aggregating unit 30 may generate one piece of aggregated data from a plurality of pieces of inference target data, or may generate a plurality of pieces of aggregated data from a plurality of pieces of inference object data. However, even in the case of multiple, the quantity of aggregated data is less than the quantity of inference target data.
  • the inference target data is an image
  • the data aggregating unit 30 may provide a predetermined gap between images in generating aggregated data.
  • the data aggregating unit 30 may perform aggregation without performing post-processing. In this case, the data aggregating unit 30 performs aggregation using the result of the primary inference.
  • the data aggregation unit 30 aggregates at least one of overlapping primary inference results and adjacent primary inference results in the primary inference results after post-processing of the inference target data, and then may be aggregated. For example, the data aggregation unit 30 may aggregate overlapping BBs and BBs within a predetermined distance as a BB that includes all of those BBs. Through such operations, the information processing apparatus 1 can reduce the possibility of double detection of the same object and the possibility of overlooking the target object in the secondary inference.
  • the data aggregating unit 30 may aggregate after changing the size of the target object and the sub-target object in the results of primary inference after post-processing of extraction or duplication.
  • Resize is, for example, enlargement or reduction.
  • the size of the target object and sub-target objects is reduced, the amount of aggregated data generated is reduced.
  • the secondary inference time will be shortened, that is, the possibility that the throughput will be improved.
  • the sizes of the target object and the sub-target objects are increased, the size of the target object in the aggregated data to be generated, that is, the size of the target object in the secondary inference, is increased.
  • the possibility of improving the inference accuracy of the secondary inference increases.
  • the method of changing the size of the target object and sub-target objects is arbitrary.
  • the data aggregating unit 30 determines whether or not to change the size based on the size of the target object and the sub-target object in the result of primary inference after post-processing, and if so, how to change the size. may decide.
  • the data aggregator 30 may use the results of primary inference to determine whether to change the size, and if so, how to change the size.
  • the data aggregating unit 30 may perform predetermined image processing when changing the size.
  • the predetermined image processing in this case is, for example, complementary processing.
  • the data aggregation unit 30 may perform predetermined image processing in addition to or instead of changing the size.
  • the predetermined image processing in this case is, for example, brightness adjustment, brightness adjustment, color adjustment, contrast adjustment, geometric correction, or a combination of some or all of these.
  • the data aggregating unit 30 may adjust parameters related to image processing according to the result of the primary inference.
  • the data aggregating unit 30 generates a correspondence relationship between the target object area in the inference target data and the target object area in the aggregate data as an aggregate correspondence relationship.
  • the area in this case is, for example, the position, orientation and size of the BB.
  • the data aggregating unit 30 similarly determines the regions of the sub-target objects based on the corresponding relationship between the regions of the sub-target objects in the inference target data and the regions of the sub-target objects in the aggregated data. Generate some aggregation correspondence.
  • Secondary reasoning unit 40 A secondary inference unit 40 infers a target object in the aggregated data generated by the data aggregation unit 30 .
  • the inference by the secondary inference unit 40 is hereinafter referred to as "secondary inference”.
  • the secondary inference unit 40 uses machine learning in secondary inference. Specifically, the secondary inference unit 40 uses the learned model stored in the model storage unit 80 to infer the target object in the consolidated data.
  • the trained model used by the secondary inference unit 40 is hereinafter referred to as a "secondary inference trained model” or a "second trained model”. For example, the secondary inference unit 40 infers a set of "BB, class, and confidence" of the target object included in the consolidated data as a result of secondary inference using the trained model for secondary inference.
  • the secondary inference unit 40 may change the size of the aggregated data when applying the aggregated data to the trained model for secondary inference. For example, if the aggregated data is an image, the secondary inference unit 40 may change the size or aspect ratio of the image in the aggregated data before applying it to the trained model for secondary inference.
  • the data generation unit 60 uses a predetermined data set to generate a learning data set used for machine learning.
  • the predetermined data set will be referred to as an "original learning data set".
  • the data included in the original learning data set is arbitrary as long as it is compatible with machine learning techniques.
  • the original training data set is an image group containing correct data regarding the target object.
  • the acquisition source of the original learning data set is arbitrary.
  • the operator may store the original learning data set in the data storage unit 50 in advance.
  • the data generator 60 may acquire an original learning data set from a device (not shown) when generating the learning data set.
  • the data generation unit 60 generates a learning data set used in machine learning for generating a trained model for primary inference.
  • the trained model for primary inference is used in the primary inference unit 20 .
  • a learning data set used in machine learning for generating a trained model for primary inference used by the primary inference unit 20 is referred to as a "primary inference learning data set” or a "first learning data set.”
  • the data generation unit 60 generates a learning data set used for machine learning to generate a trained model for secondary inference.
  • the trained model for secondary inference is used in the secondary inference unit 40 .
  • the learning data set used for machine learning to generate the trained model for secondary inference used by the secondary inference unit 40 is referred to as a "secondary inference learning data set” or a "second learning data set.” .
  • the data generation unit 60 generates correct data of the target object and the sub-target object based on the correct data of the target object and the information of the positional relationship between the target object and the sub-target object included in the original learning data set. to generate The data generator 60 then adds the generated correct data to the original learning data set to generate a primary inference learning data set.
  • the data generating unit 60 generates a larger BB by multiplying the height and width of the BB of the LP included in the original learning data set by a predetermined value. This BB is the correct data for the front and rear surfaces of the vehicle. Then, the data generation unit 60 adds the generated correct data of the front and rear surfaces of the vehicle to the original learning data set to generate the primary inference learning data set.
  • the data generation unit 60 infers the BB of the LP by applying a predetermined trained model to the original training data set as the correct data of the LP. Then, the data generation unit 60 generates a BB obtained by multiplying the BB of the inferred LP by a predetermined value to increase the height and width as correct data for the front and rear surfaces of the vehicle. Then, the data generator 60 adds the generated LP and correct data of the front and rear surfaces of the vehicle to the original learning data set to generate the primary inference learning data set.
  • the data generation unit 60 applies a predetermined trained model to the original learning data set as correct data to infer the BB of the LP and the BB of the front and rear surfaces of the vehicle, and adds the inferred BB to the original learning data set. may be used to generate a primary inference learning data set.
  • the data generator 60 uses the data aggregator 30 to generate aggregated data from the correct data of the original learning data set. Then, the data generation unit 60 adds the correct data and the consolidated data to the original learning data set to generate the secondary inference learning data set. Note that the data generation unit 60 may use the primary inference learning data set instead of the original learning data set to generate the secondary inference learning data set. Alternatively, the data generation unit 60 may generate the secondary inference learning data set using a data set obtained by adding the primary inference learning data set to the original learning data set.
  • the data generation unit 60 When the primary inference unit 20 and the secondary inference unit 40 use the same trained model, the data generation unit 60 generates one learning data set as the primary inference learning data set and the secondary inference learning data set. may be generated. Alternatively, the data generator 60 may generate the primary inference learning data set and the secondary inference learning data set using different original learning data sets.
  • the data generation unit 60 stores the generated primary inference learning data set and secondary inference learning data set in the data storage unit 50 .
  • the data generator 60 may acquire at least one of the primary inference learning data set and the secondary inference learning data set from an external device (not shown). In this case, the data generation unit 60 stores the acquired primary inference learning data set or secondary inference learning data set in the data storage unit 50 .
  • Data storage unit 50 stores a data set for primary inference learning and a data set for secondary inference learning. Furthermore, the data storage unit 50 may store the original training data set.
  • the acquisition source of the original training data set is arbitrary. For example, the operator may store the original learning data set in the data storage unit 50 in advance.
  • the information processing device 1 may use an external storage device (not shown) as the data storage unit 50 . In this case, the information processing device 1 may not include the data storage unit 50 as a physical configuration. Alternatively, the information processing device 1 may acquire at least one of the primary inference learning data set and the secondary inference learning data set generated by a device (not shown) and store the obtained data in the data storage unit 50 . When acquiring both the primary inference learning data set and the secondary inference learning data set, the information processing device 1 does not need to include the data generation unit 60 .
  • Model generator 70 The model generation unit 70 performs machine learning on a predetermined model using the primary inference learning data set stored in the data storage unit 50, and generates a primary inference trained model used by the primary inference unit 20. , that is, to generate the first trained model. Furthermore, the model generation unit 70 performs machine learning on a predetermined model using the secondary inference learning data set stored in the data storage unit 50 to generate a secondary inference used by the secondary inference unit 40 . A trained model for inference, that is, a second trained model is generated. Note that the acquisition source of the model used to acquire the trained model is arbitrary. For example, the operator may store the model in the model storage unit 80 in advance. Alternatively, the model generating unit 70 may acquire a model used for generating the trained model from a device (not shown) when generating the trained model.
  • the model generation unit 70 may generate models of the same model type, network structure, size, etc. as the trained model for primary inference and the trained model for secondary inference, or may generate different models.
  • the model generation unit 70 may generate the same model as the trained model for primary inference and the trained model for secondary inference. That is, the model generation unit 70 may generate one model as the trained model for primary inference and the trained model for secondary inference.
  • the model generation unit 70 when the primary inference unit 20 and the secondary inference unit 40 use the same trained model, the model generation unit 70 generates one trained model as a primary inference trained model and a secondary inference trained model. You may Alternatively, the model generation unit 70 generates different models as the trained model for primary inference and the trained model for secondary inference, but having the same model type, network structure, size, etc. good too.
  • the model generation unit 70 may generate models that differ in at least one of the model type, network structure, size, etc., as the primary inference trained model and the secondary inference trained model. For example, when generating both trained models using deep learning, the model generation unit 70 sets the model type, network structure, and size as the primary inference trained model and the secondary inference trained model. At least one may generate different models. For example, the model generation unit 70 may generate a small and lightweight trained model as the trained model for primary inference with respect to the trained model for secondary inference. However, this does not limit the learned model generated by the model generation unit 70 .
  • the machine learning method used by the model generation unit 70 is arbitrary.
  • the model generation unit 70 may generate at least one of the trained model for primary inference and the trained model for secondary inference using deep learning.
  • the model generation unit 70 may use the same machine learning technique used to generate the trained model for primary inference and the machine learning technique used to generate the trained model for secondary inference, or may use different techniques. may be used.
  • the model generation unit 70 generates different trained models as a trained model for primary inference and a trained model for secondary inference.
  • the model generation unit 70 stores the generated trained model for primary inference and the trained model for secondary inference in the model storage unit 80 .
  • the model generation unit 70 may acquire at least one of the trained model for primary inference and the trained model for secondary inference from an external device (not shown). In this case, the model generation unit 70 stores the acquired trained model for primary inference or the acquired trained model for secondary inference in the model storage unit 80 .
  • Model storage unit 80 stores a trained model for primary inference and a trained model for secondary inference.
  • the model storage unit 80 may store the model used by the model generation unit 70 to generate the learned model.
  • the operator may store the model used for generating the learned model in the model storage unit 80 in advance.
  • the information processing apparatus 1 may use an external storage device (not shown) as the model storage unit 80 .
  • the information processing device 1 may not include the model storage unit 80 as a physical configuration.
  • the information processing device 1 may acquire at least one of the primary inference trained model and the secondary inference trained model from a device (not shown) and store the acquired model in the model storage unit 80 .
  • the information processing device 1 does not need to include the data storage unit 50 , the data generation unit 60 , and the model generation unit 70 .
  • the object inference unit 10 uses the target object in the aggregated data, which is the result of the secondary inference in the secondary inference unit 40, and the aggregated correspondence generated by the data aggregation unit 30 in generating the aggregated data, and uses Infer the target object. For example, when the coordinate transformation of BB is stored as an aggregate correspondence, the object inference unit 10 converts the inverse transformation of the coordinate transformation to the coordinates of BB inferred as a result of the secondary inference as the inferred position of BB. By applying, the position of the BB of the target object in the inference target data is calculated.
  • the object inference unit 10 may discard the BB.
  • a value obtained by dividing the area of the intersection of the BB rectangle obtained as a result of the secondary inference and the rectangle on the aggregated data by the area of the BB rectangle obtained as a result of the secondary inference is less than a predetermined threshold, the object reasoning unit 10 may discard the BB. If the above quotient is equal to or greater than a predetermined threshold, the object inference unit 10 may correct the rectangle of BB to the above intersection part.
  • FIG. 2 is a flow chart showing an example of the operation of train model generation in the information processing apparatus 1 according to the second embodiment.
  • the information processing apparatus 1 starts generating a learned model when a predetermined condition is met. For example, the information processing apparatus 1 starts generating a learned model in response to an instruction from an operator. In this case, at the start of the operation, the information processing apparatus 1 may acquire parameters necessary for generating the learned model from the operator.
  • the parameters required to generate a trained model are arbitrary.
  • the parameter is information indicating which learning data set is to be used.
  • the parameters may be parameters related to machine learning processing in the model generation unit 70 .
  • the information processing device 1 may acquire other information in addition to the parameters.
  • the data generator 60 may acquire at least part of the learning data set from the operator. In this case, the data generator 60 saves the acquired learning data set in the data saver 50 .
  • the data generation unit 60 generates a primary inference learning data set using the original learning data set stored in the data storage unit 50 (step S100). For example, the data generation unit 60 generates the primary inference learning data set using the correct data included in the original learning data set. Then, the data generation unit 60 stores the primary inference learning data set in the data storage unit 50 .
  • the model generation unit 70 performs machine learning on a predetermined model using the data set for primary inference learning, and generates a trained model for primary inference (step S101). Then, the model generation unit 70 stores the trained model for primary inference in the model storage unit 80 .
  • the data generation unit 60 generates a secondary inference learning data set using the original learning data set stored in the data storage unit 50 (step S102). For example, the data generation unit 60 may generate consolidated data using the correct data of the original learning data set, and generate a secondary inference learning data set including the correct data and the consolidated data. Then, the data generation unit 60 stores the generated secondary inference learning data set in the data storage unit 50 .
  • the model generation unit 70 performs machine learning on a predetermined model using the data set for secondary inference learning, and generates a trained model for secondary inference (step S103). Then, the model generation unit 70 stores the trained model for secondary inference in the model storage unit 80 . After generating the learned model, the information processing apparatus 1 may notify the operator of the execution result.
  • FIG. 3 is a flowchart showing an example of the inference operation of the target object in the information processing apparatus 1 according to the second embodiment.
  • the model storage unit 80 stores the learned model before the inference operation is started. However, if the model storage unit 80 does not store the trained model, the information processing apparatus 1 executes the operation of "(A) Generation of trained model” to generate the trained model, and then performs the inference. You can start working.
  • the information processing device 1 starts inferring the target object when a predetermined condition is triggered.
  • the information processing apparatus 1 starts inferring a target object in response to an instruction from an operator.
  • the information processing device 1 may acquire parameters from the operator in inferring the target object.
  • the parameters are, for example, designation of the trained model to be used, although not limited to the following.
  • the information processing device 1 may use parameters given in advance.
  • the information processing device 1 may automatically start inferring the target object after the device is activated.
  • the information processing device 1 may perform the operation described below when the data acquisition unit 90 acquires one or a predetermined amount of inference target data.
  • the information processing device 1 may start the inference operation asynchronously with the acquisition of the inference target data in the data acquisition unit 90 .
  • the data acquisition unit 90 may acquire inference target data in advance and store it in a storage unit (not shown).
  • the primary inference unit 20 may acquire the inference target data from the storage unit.
  • the primary inference unit 20 executes primary inference using the inference target data (step S114).
  • the primary inference unit 20 may collect a predetermined amount of inference target data and execute primary inference.
  • a predetermined amount of inference target data collectively executed by the primary inference unit 20 will be referred to as an "inference target data group".
  • the primary inference unit 20 extracts "BB, class, and confidence" from a predetermined amount of inference target data (inference target data group) images as primary inference. Infer the set of tuples.
  • the primary inference unit 20 may infer sub-target objects in the inference target data group.
  • the primary inference unit 20 may determine an inference target data group to be inferred collectively using a condition different from the quantity of inference target data. For example, the primary inference unit 20 may use at least one of the following conditions to determine an inference target data group to be inferred collectively. (a) When the number of BBs inferred in primary inference reaches a predetermined number, (b) if the total size of BBs inferred in primary inference reaches a predetermined value, (c) inferring the number of aggregated data, and if the inferred number of aggregated data reaches a predetermined value; (d) Inference target data for which a predetermined time has passed since the information processing apparatus 1 acquired it.
  • the primary inference unit 20 may perform primary inference on all acquired inference target data.
  • the primary inference unit 20 may perform primary inference on at least part of the inference target data included in the inference target data group in parallel or sequentially. Alternatively, parallel processing and serial processing may be combined.
  • FIG. 5 is a diagram showing an example of the result of primary inference.
  • the inner smaller rectangle is the BB of the LP, which is the target object obtained as a result of primary inference.
  • the large outer rectangle is the BB of the front and rear of the vehicle, which is the sub-target object obtained as a result of the primary inference. Note that FIG. 5 omits the display of classes and confidence.
  • the data aggregating unit 30 performs post-processing on some or all of the primary inference results (step S115). For example, the data aggregating unit 30 performs filtering and adjustment of BBs using information on attributes of BBs and positional relationships between target objects and sub-target objects.
  • FIG. 4 is a flowchart showing an example of post-processing in the data aggregating unit 30. As shown in FIG. More specifically, FIG. 4 is an example of post-processing operation in the data aggregating unit 30 when BB is inferred as a result of the primary inference.
  • the operation when the target object is the LP and the sub-target object is the front and rear surfaces of the vehicle including the LP will be described.
  • the data aggregating unit 30 determines whether or not the BB is the BB of the target object (step S131). Note that the case where the BB is not the target object's BB is the case where the BB is the sub-target object's BB. If the BB is not the BB of the target object (No in step S131), the data aggregating unit 30 determines whether the sub-target object has a predetermined relationship with the target object included in the primary inference result (step S132). ). For example, the data aggregating unit 30 determines whether or not the BB of the sub-target object includes the BB of the target object included in the result of the primary inference.
  • the data aggregating unit 30 determines whether the BB has an appropriate shape to be used as aggregated data. It is determined whether or not (step S133). For example, the data aggregation unit 30 determines whether or not the size and aspect ratio of the BB are within a predetermined threshold range.
  • the data aggregation unit 30 corrects the BB to have an appropriate shape for generating aggregated data (step S134). For example, the data aggregator 30 sets the size and aspect ratio of the BB to appropriate values for generating aggregated data. For example, the data aggregation unit 30 may change the size of the BB by multiplying the height and width of the BB by predetermined values. Alternatively, the data aggregation unit 30 may modify the height and width of the BB so that the aspect ratio of the BB falls within a predetermined range.
  • the data aggregating unit 30 discards the BB (step S135). That is, the data aggregator 30 does not include the BB in the aggregated data. In this way, the data aggregating unit 30 performs post-processing on the results of primary inference.
  • the data aggregating unit 30 generates aggregated data using all post-process primary inference results (step S116). For example, when the inference target data is an image, the data aggregating unit 30 generates an image in which the images of the target object region and the sub-target object regions inferred as a result of the primary inference are collected. Note that the data aggregating unit 30 may generate aggregated data using an area obtained by combining at least a part of overlapping areas and adjacent areas in the result of the primary inference. .
  • FIG. 6 is a diagram showing an example of consolidated data. Note that FIG. 6 omits the display of classes and confidence.
  • the aggregated data in FIG. 6 is an example of aggregated data generated using a total of five data, ie, the data in FIG. 5 and the four data temporally preceding and following the data in FIG.
  • the aggregated data in FIG. 6 is an example when LP is detected in any data in the primary inference for those five data. Note that if the LP is not detected in any data and the front and rear surfaces of the vehicle are detected, the image corresponding to that data is not the LP but the front and rear images of the vehicle. In the example of FIG.
  • the data aggregating unit 30 makes the area of the image to be extracted larger than the area of BB as a result of the primary inference in order to reduce the possibility that a part of the target object is missing.
  • the image of each LP is an image of an area larger than the BB of the LP.
  • the total area of the images as a result of the primary inference is smaller than the area of the images of the consolidated data. Therefore, the image of aggregated data in FIG. 6 includes redundant regions.
  • the black area on the right side of FIG. 6 is the surplus area.
  • the data aggregating unit 30 may add at least part of the primary inference results to be aggregated to the surplus area.
  • the data aggregating unit 30 may generate new aggregated data.
  • the sub-target object in FIG. 5 includes the target object included in the primary inference result. That is, the sub-target object in FIG. 5 is a sub-target object having a predetermined positional relationship with the target object. Therefore, the BB of the sub-target object in FIG. 5 is not included in the consolidated data in FIG.
  • the data aggregating unit 30 determines the correspondence between the positions of the data areas of the target object and the sub-target objects included in the inference target data and the positions of the data areas of the target object and the sub-target objects in the aggregated data. Generate an aggregate correspondence that is a relationship.
  • the secondary inference unit 40 executes secondary inference using the consolidated data (step S118).
  • FIG. 7 is a diagram showing an example of a result of secondary inference. The rectangle in FIG. 7 is the BB of the LP of the target object inferred by the secondary inference unit 40 . Note that FIG. 7 omits the display of classes and confidence.
  • the object inference unit 10 infers the target object in the inference target data using the result of the secondary inference and the aggregate correspondence (step S119).
  • FIG. 8 is a diagram showing an example of inference of a target object in inference target data. Compared to FIG. 5, the position of BB in FIG. 8 is the proper position for LP. If the size of the target object included in the secondary inference result is larger than the size of the aggregated data, the object inference unit 10 may ignore the target object.
  • the information processing device 1 repeats the above operation until a predetermined condition is satisfied. For example, the information processing apparatus 1 may end the operation when receiving a finish instruction from the operator. Alternatively, the information processing apparatus 1 continues until there is no inference object data to be processed, until the amount of processed inference object data reaches a predetermined value, until a predetermined time elapses, or the number of repetitions reaches a predetermined number. The above operations may be repeated until Based on the above operation, the information processing device 1 infers the target object in the inference target data.
  • aggregated data is data that collects the target object areas in the inference target data, and is data that is smaller in quantity than the inference target data. Therefore, the load of secondary inference is lower than the load of using all inference target data. Also, the primary inference should be able to infer the target object with a certain degree of accuracy. That is, the information processing apparatus 1 can use inference with a lower load than secondary inference as the primary inference. As a result, the information processing device 1 can improve throughput in inference.
  • Inference target data is an image.
  • the performance and scale of related inference are the same as the performance and scale of secondary inference in the secondary inference unit 40 .
  • the time required for inference of one image for related inference and secondary inference is unit time. Note that the unit time is set to "1" hereinafter.
  • the time required for inference of one image by the primary inference in the primary inference unit 20 is one tenth (0.1) of the related inference and secondary inference.
  • the data aggregating unit 30 averagely generates one aggregated image from three inference target images. That is, the ratio of the number of inference target images to the number of aggregated images is 3:1.
  • the total number of images is N; (6) Processing other than inference is ignored because the processing time is shorter than inference.
  • the information processing apparatus 1 can make inferences in a shorter time than related inferences.
  • the information processing apparatus 1 can improve the throughput by the related inference.
  • the size of the trained model for secondary inference used for the secondary inference which is the final inference in the information processing apparatus 1, is equivalent to that of the model used for the related inference. Therefore, the accuracy of inference by the information processing apparatus 1 is equivalent to that of related inference.
  • the primary inference unit 20 may infer a second target object that has a predetermined positional relationship with the first target object.
  • the data aggregation unit 30 may generate aggregated data and correspondence using the first target object and the second target object.
  • the information processing apparatus 1 can perform inference using not only the target object for inference in the information processing apparatus 1 but also sub-target objects having a predetermined relationship with the target object. Therefore, the information processing device 1 can improve the accuracy of inference. For example, the information processing device 1 can prevent the target object from being overlooked.
  • the data aggregating unit 30 may use a second target object that is not included in the primary inference result and has a predetermined positional relationship among the second target objects included in the primary inference result.
  • the information processing device 1 can reduce the size of aggregated data.
  • the information processing device 1 can improve throughput.
  • the data aggregating unit 30 may perform predetermined processing such as post-processing on at least part of the first target object included in at least the result of the primary inference before generating the aggregated data.
  • the information processing device 1 can generate more appropriate consolidated data.
  • the information processing device 1 improves the accuracy of inference. For example, the information processing device 1 suppresses overlooking of the target object.
  • the information processing apparatus 1 may perform predetermined processing on at least part of the second target objects included in the result of the primary inference before generating consolidated data.
  • the data aggregation unit 30 adds or multiplies a predetermined value to at least one of the height and width of the BB of the target object and the BB of the sub-target object to correct the size of the BB.
  • the second embodiment is not limited to this.
  • the data aggregating unit 30 multiplies at least one of the height and width of the BB of the target object and the BB of the sub-target object by a predetermined value, and then adds a predetermined value to obtain the BB You can modify the size of
  • the data aggregation unit 30 applies a predetermined linear or nonlinear transformation to at least one of the height and width of the BB of the target object and the BB of the sub-target object to correct the size of the BB.
  • Parameters related to conversion in this case may be given to the data aggregating unit 30 in advance, for example.
  • the data aggregating unit 30 may switch the conversion method and conversion parameters based on attributes of the BB and inference target data or other information.
  • the other information is, for example, the load of the information processing apparatus 1, although not limited to the following.
  • the configuration of the information processing device 1 is not limited to this.
  • the information processing device 1 may include multiple primary inference units 20 .
  • the plurality of primary inference units 20 may make inferences using different parameters.
  • the parameter is, for example, a trained model, data size, or recognition target class.
  • all of the primary inference units 20 may make inferences using the same inference target data.
  • at least some of the primary inference units 20 may make inferences using inference target data different from that of the other primary inference units 20 .
  • the information processing device 1 may include two or more secondary reasoning units 40 .
  • the secondary inference units 40 may make inferences using parameters different from those of the other secondary inference units 40 .
  • the parameter in this case is, for example, the trained model or the size of the data.
  • the data aggregation unit 30 may generate aggregated data corresponding to each secondary inference unit 40 .
  • the data aggregator 30 may generate aggregated data using different parameters for each of the secondary inference units 40 .
  • the data aggregator 30 may divide the result of the primary inference to generate aggregated data, or may divide the generated aggregated data and allocate it to a plurality of secondary inference units 40 .
  • the data aggregation unit 30 may generate or divide aggregated data using, for example, the attributes of BB in the results of primary inference shown below or a combination of these attributes. .
  • the case where the data aggregating unit 30 distributes the aggregated data to the plurality of secondary inference units 40 means the case where the data aggregating unit 30 generates aggregated data corresponding to each of the plurality of secondary inference units 40, and the case where the data aggregating unit 30 This is either the case of dividing the consolidated data generated by the unit 30 .
  • the data aggregating unit 30 may include a part of the results of the primary inference in the plurality of aggregated data to be generated or the plurality of aggregated data after division.
  • the data aggregating unit 30 may use the attributes described above or a combination thereof to determine whether or not to include the result of primary inference in a plurality of aggregated data.
  • a plurality of secondary inference units 40 may infer the same target object.
  • the object inference unit 10 may use the result of the secondary inference and the aggregated correspondence relationship to determine the overlap of the target objects, and use the determination result to perform the operation corresponding to the overlap.
  • the object inference unit 10 may modify the inference result using duplication.
  • the object inference unit 10 may select, as the BB of the target object, the BB with the highest confidence among multiple BBs for the target object inferred redundantly.
  • the object inference unit 10 may average BB rectangle information in a plurality of inference results as the BB rectangle information of the target object. Note that the object inference unit 10 may use weighted averaging based on confidence as the averaging.
  • the accuracy of the inference results depends on the inference difficulty of the input data. If the inference difficulty is low, even a trained model with low inference accuracy can be inferred with high accuracy in many cases.
  • a trained model whose inference accuracy is not high is, for example, a lightweight, high-speed, or low-processing-load model.
  • An inference model with high inference accuracy is a model with a high processing load.
  • inference speed and inference accuracy can be achieved by selectively using trained models for inference according to the characteristics of inference target data such as inference difficulty.
  • inference parameters such as, for example, the size of a Convolutional Neural Network (CNN).
  • the information processing device 1 may classify inference target data or primary inference results into a plurality of groups based on characteristics such as inference difficulty, and may perform secondary inference for each of the classified groups.
  • characteristics such as inference difficulty
  • secondary inference for each of the classified groups.
  • a posture estimation task using keypoints is used as a task to be executed.
  • this embodiment may be used for other tasks such as an object detection task instead of the posture estimation task.
  • the characteristic used for classification is not limited to the inference difficulty level, and other characteristics may be used.
  • FIG. 14 is a block diagram showing an example of the configuration of an information processing device 1D that executes secondary inference for each group.
  • the information processing device 1D includes an object inference unit 10D, a primary inference unit 20D, a data aggregation unit 30D, a plurality of secondary inference units 40D, a data storage unit 50, a data generation unit 60, and a model generation unit 70. , a model storage unit 80 and a data acquisition unit 90 .
  • the data storage unit 50, the data generation unit 60, the model generation unit 70, the model storage unit 80, and the data acquisition unit 90 are the same as the information processing apparatus 1 except that the secondary inference unit 40D is plural, so the details are as follows. detailed description is omitted.
  • the object inference unit 10D uses the result of the secondary inference in the secondary inference unit 40D and the aggregation correspondence generated by the data aggregator 30D in the generation of aggregated data to generate the inference target data. Infer the pose of the target object in More specifically, in this case, the object inference unit 10D infers the orientation of the target object based on the result of the keypoint extraction processing of the orientation estimation task, which is the result of the secondary inference in the secondary inference unit 40D.
  • the object inference unit 10D applies the inverse transformation of the coordinate transformation to the coordinates of each keypoint inferred as a result of the secondary inference, and the inference target data Calculate the coordinates of the keypoint in .
  • the primary inference unit 20D executes primary inference. However, in this case, as an example, the primary inference unit 20D executes the keypoint extraction process as the posture detection task. For example, the primary inference unit 20D outputs the coordinates, class, and confidence of each keypoint included in the inference target data as an inference result. Classes are, for example, eyes or noses, but are not limited to these. Furthermore, the primary inference unit 20D may execute processing for generating an orientation as an orientation detection task.
  • the secondary inference unit 40D executes secondary inference.
  • the secondary inference unit 40D executes the keypoint extraction process as the orientation detection task, similarly to the primary inference unit 20D.
  • the secondary inference unit 40D outputs, for example, the coordinates, class, and confidence of each keypoint included in the inference target data as an inference result.
  • Classes are, for example, eyes or noses, but are not limited to these.
  • the secondary inference unit 40D may execute processing for generating an orientation as an orientation detection task.
  • each of the secondary inference units 40D performs secondary inference on aggregated data of mutually different groups.
  • the secondary inference unit 40D may use the same trained model, or different trained models. The same is true for inference parameters.
  • the information processing device 1D includes, as an example, two secondary inference units 40D.
  • the secondary reasoning unit 40D-1 and the secondary reasoning unit 40D-2 When distinguishing the two secondary reasoning units 40D, they are referred to as the secondary reasoning unit 40D-1 and the secondary reasoning unit 40D-2.
  • the secondary inference unit 40D-1 uses a model with higher accuracy than the model used by the secondary inference unit 40D-2 in the following explanation.
  • the secondary reasoning unit 40D-2 uses a model that is less accurate than the secondary reasoning unit 40D-1 but faster.
  • the secondary inference unit 40D uses aggregated data of different groups.
  • the information processing device 1D may include an arbitrary number of secondary inference units 40D as long as the number is greater than the number of aggregated data generated by the data aggregation unit 30D, that is, the number of groups. For example, if the number of secondary inference units 40D is greater than the number of groups, some of the secondary inference units 40D may perform secondary inference using different trained models for the same consolidated data.
  • the data aggregation unit 30D classifies the first target object inferred in the primary inference into one of the groups based on the attributes of the first target object. Then, the data aggregating unit 30D generates aggregated data, which is data whose quantity is smaller than that of the inference target data, for each group. Then, the data aggregating unit 30D generates a correspondence relationship between the position of the first target object in the inference target data and the position of the first target object in the aggregated data for each aggregated data.
  • the data aggregating unit 30D estimates BB as the attribute of the first target object based on the result of the keypoint extraction process of primary inference.
  • BB estimation in the data aggregator 30D will be described.
  • the data aggregating unit 30D regards the coordinates obtained as a result of primary inference for each keypoint as a 1 ⁇ 1 rectangle, and estimates the BB corresponding to the keypoint.
  • the data aggregation unit 30D may estimate a BB different from this.
  • the data aggregator 30D may combine overlapping or adjacent BBs into one BB.
  • the data aggregating unit 30D may use, for example, a comparison between a predetermined threshold value and the distance between BBs to determine whether or not they are close to each other.
  • the data aggregating unit 30D may perform these processes for each class of primary inference results or across a plurality of classes.
  • the data aggregating unit 30D may use different thresholds for determination for each class.
  • the data aggregator 30D may use different thresholds depending on the result of primary inference or the attribute of BB.
  • the attributes of the BB are, for example, the size of the BB, the position of the BB, the number of keypoints included in the BB, or the class of the BB.
  • the data aggregation unit 30D classifies the primary inference results into groups using the estimated BB, and executes "data aggregation” including "post-processing” and "aggregation” for each group.
  • the data aggregation operation is the same as that of the data aggregation unit 30 .
  • the data aggregating unit 30D divides the primary inference results into two groups, one for the secondary inference unit 40D-1 and one for the secondary inference unit 40D-2, using the estimated BB attribute information. Classify.
  • the data aggregating unit 30D may perform classification before post-processing, during post-processing, or after post-processing.
  • the data aggregating unit 30D may arbitrarily execute the post-processing and the classification in order, or may execute them in parallel. Then, the data aggregating unit 30D generates aggregated data for the primary inference results classified into the same group.
  • the data aggregating unit 30D may classify the target objects of all classes as the target objects to be classified into groups, or classify the target objects of some classes and the sub-target objects of the target objects of another class. may
  • the data aggregation unit 30D may operate as follows.
  • the model processing accuracy of the secondary reasoning unit 40D-1 is higher than that of the secondary reasoning unit 40D-2. Therefore, the data aggregating unit 30D may estimate the inference difficulty level of each BB in the secondary inference, and classify the BBs into groups based on the result. For example, the data aggregation unit 30D classifies BBs with high inference difficulty into the group of the secondary inference unit 40D-1, and classifies BBs with low inference difficulty into the group of the secondary inference unit 40D-2.
  • the classification of the data aggregation unit 30D is not limited to this.
  • the data aggregator 30D may classify based on the size of the BB, or may classify based on the confidence of the BB.
  • the data aggregating unit 30D classifies BBs of small size or BBs of low confidence into the group of the secondary inference unit 40D-1, and classifies BBs of large size or BBs of high confidence into the group of the secondary inference unit 40D-2. can be classified into
  • the data aggregating unit 30D may perform not only the rule-based classification as described above but also machine learning-based classification including deep learning.
  • the data aggregating unit 30D may estimate a BB that includes only an upright posture to have a low inference difficulty level, and may estimate a BB that may include postures other than the upright posture to have a high inference difficulty level.
  • the data aggregating unit 30D may estimate that the posture is upright when the aspect ratio of the rectangle of the BB or the circumscribing rectangle of the keypoint group included in the BB is within a predetermined range.
  • the data aggregating unit 30D may estimate the number of poses in the BB, and perform estimation based on the aspect ratio when there is one pose.
  • the data aggregating unit 30D may, for example, use the maximum number of keypoints included in the BB aggregated for each class as the estimated value of the number of postures.
  • the data aggregating unit 30D may use a value excluding the maximum and minimum values of the keypoints, or a value subjected to statistical processing such as an average value as the estimated value.
  • the data aggregating unit 30D may prioritize the classes and estimate the number of postures.
  • the data aggregation unit 30D may further estimate the number of postures using the confidence of the keypoint.
  • the data aggregating unit 30D may acquire the result of the pose generation processing and estimate the number of poses using the result. .
  • the data aggregating unit 30D may estimate that the inference difficulty is low when the size or area of the BB is larger than a predetermined value.
  • the data aggregating unit 30D estimates the number of postures in the BB, and determines that the inference difficulty is low when the number of estimated postures or the value obtained by dividing the size of the BB by the square of the number of estimated postures is greater than a predetermined value. can be estimated.
  • the data aggregating unit 30D can avoid estimating the inference difficulty level of a BB having a small number of poses but a large size as being low.
  • the data aggregation unit 30D sets at least one of whether to apply size change, a size change method, and a size change parameter to the result of classification. and may be determined using information generated during the course of the classification process.
  • the information generated in the course of the classification processing is, for example, the inference difficulty level in secondary inference, whether or not the posture is upright, the estimated number of postures, or the height and width of the BB.
  • FIG. 15 is a flowchart showing an example of the target object inference operation in the information processing apparatus 1D of FIG.
  • the primary inference unit 20D executes primary inference using the inference target data (step S114D), as in step S114 of FIG. However, in this case, the primary inference unit 20D executes inference processing for the posture estimation task.
  • the data aggregating unit 30D performs post-processing on some or all of the primary inference results (step S115D), as in step S115 of FIG. However, in this case, the data aggregating unit 30D estimates BB from the result of primary inference in addition to the operation of step S115.
  • the data aggregating unit 30D classifies the results of primary inference after post-processing (step S401D). For example, the data aggregating unit 30D estimates an inference difficulty level in the secondary inference for the post-processed primary inference result, and classifies the post-processed primary inference result based on the inference difficulty level. For example, the data aggregating unit 30D classifies primary inference results with high inference difficulty into groups for the secondary inference unit 40D-1, and classifies primary inference results with low inference difficulty into groups for the secondary inference unit 40D-2. classified into groups of The data aggregator 30D may perform classification before or during post-processing.
  • the data aggregating unit 30D uses all post-processing primary inference results to generate aggregated data (step S116D). However, the data aggregating unit 30D generates aggregated data for each classified group. For example, the data aggregating unit 30D generates aggregated data for the secondary inference unit 40D-1 and aggregated data for the secondary inference unit 40D-2 based on the classification result of step S401D.
  • the secondary inference units 40D-1 and 40D-2 each execute secondary inference using the consolidated data (step S118D), similarly to step S118 in FIG. In this case, the secondary inference unit 40D-1 and the secondary inference unit 40D-2 perform inference processing for posture estimation tasks using aggregated data of different groups.
  • the object inference unit 10D infers the target object in the inference target data using the result of the secondary inference and the aggregated correspondence, as in step S119 of FIG. 3 (step S119D). However, in this case, the object inference unit 10D uses the inference results of the secondary inference units 40D-1 and 40D-2 to execute the pose estimation task.
  • the information processing device 1D includes an object inference unit 10D, a primary inference unit 20D, a data aggregation unit 30D, and a plurality of secondary inference units 40D.
  • the primary inference unit 20D applies inference target data, at least part of which includes the first target object, to the first trained model to infer the first target object.
  • the data aggregator 30D classifies the first target object inferred in the primary inference into one of groups based on the attributes of the first target object. Then, the data aggregating unit 30D generates aggregated data, which is data whose quantity is smaller than that of the inference target data, for each group.
  • the data aggregating unit 30D generates an aggregated correspondence relationship, which is a correspondence relationship between the position of the first target object in the inference target data and the position of the first target object in the aggregated data.
  • the secondary inference unit 40D infers the first target object by applying aggregated data of mutually different groups to the second trained model.
  • the object inference unit 10D infers the first target object in the inference target data by using the first target object in the result of the secondary inference and the aggregate correspondence relationship that is the correspondence relationship.
  • the information processing device 1D includes a plurality of secondary reasoning units 40D. Then, the data aggregating unit 30D classifies the results of the primary inference into groups based on the attribute of the first target object such as the inference difficulty level in the secondary inference. Then, the data aggregating unit 30D generates aggregated data for each group. Then, each of the plurality of secondary inference units 40D executes secondary inference using aggregated data for the group. Therefore, the information processing device 1D, for example, for a group with a low inference difficulty level, uses a secondary inference unit 40D that uses a lightweight and high-speed trained model or an inference parameter that is not highly accurate as secondary inference.
  • the information processing device 1D can execute inference while avoiding deterioration in accuracy by using the secondary inference unit 40D that uses highly accurate trained models or inference parameters for groups with high inference difficulty. In this way, the information processing device 1D can improve the throughput of inference of the target object while maintaining accuracy.
  • the secondary inference unit 40D may use different trained models or different inference parameters.
  • the data aggregating unit 30D may estimate the inference difficulty level of each of the secondary inference units 40D and classify the first target object into one of the groups based on the inference difficulty level.
  • the present embodiment is not limited to the pose estimation task, and may use, for example, an object detection task.
  • the data aggregating unit 30D generates information used for classification such as the inference difficulty level, but the present embodiment is not limited to this.
  • the primary inference unit 20D may determine the inference difficulty level in addition to the result of the primary inference and output it to the data aggregation unit 30D. That is, the primary inference unit 20D may infer the inference difficulty level of each of the secondary inference units 40D.
  • the primary inference unit 20D may infer the inference difficulty level for each keypoint in the posture estimation task or each BB in the object detection task in the trained model for primary inference. In this case, the primary inference unit 20D may use the class corresponding to the inference difficulty level as the class output as the primary inference result.
  • the data aggregating unit 30D may classify at least some primary inference results into a plurality of groups.
  • the data aggregating unit 30D may include primary inference results with a very high inference difficulty in a plurality of aggregated data.
  • at least some of the plurality of secondary inference units 40D estimate the same target object included in each of the plurality of aggregated data.
  • the object inference unit 10D infers the target object by integrating the inference results of the plurality of secondary inference units 40D.
  • the information processing device 1D can improve the recognition accuracy of the target object.
  • the object inference unit 10D may correct duplicate inference results by using a technique such as a non-maximum suppression (NMS) method, for example.
  • NMS non-maximum suppression
  • the object inference unit 10D, the primary inference unit 20D, the data aggregation unit 30D, the secondary inference unit 40D, the data storage unit 50, the data generation unit 60, the model generation unit 70, and the model storage unit 80 and the data acquisition unit 90 are included in one device.
  • the information processing device 1D may be configured by connecting devices having functions corresponding to each configuration via a predetermined network.
  • the information processing device 1D may be implemented using cloud computing.
  • each component of the information processing device 1D may be configured by a hardware circuit.
  • a plurality of components may be configured by one piece of hardware.
  • the information processing device 1D may be implemented as a computer device including a CPU, a read only memory (ROM), and a random access memory (RAM).
  • the information processing device 1D may be implemented as a computer device that further includes a network interface circuit (NIC) in addition to the above configuration.
  • the information processing device 1D may be further implemented as a computer device including an arithmetic unit (Arithmetic Logical Unit (ALU)) that executes part or all of the learning and inference calculations.
  • FIG. 9 is a block diagram showing the configuration of a computer device 600, which is an example of the hardware configuration of the information processing devices 1 and 1D.
  • a computer device 600 in FIG. 9 includes a CPU 610, an ALU 611, a ROM 620, a RAM 630, a storage device 640, and a NIC 650, and constitutes a computer device.
  • the CPU 610 reads programs from at least one of the ROM 620 and the storage device 640 . Then, the CPU 610 controls the ALU 611, the RAM 630, the storage device 640, and the NIC 650 based on the read program.
  • the CPU 610 includes an object inference unit 10D, a primary inference unit 20D, a data aggregation unit 30D, a secondary inference unit 40D, a data storage unit 50, a data generation unit 60, a model generation unit 70, and a model storage unit. Each function of the unit 80 and the data acquisition unit 90 is realized.
  • the CPU 610 may use the RAM 630 or storage device 640 as a temporary storage medium for programs when implementing each function. Further, the CPU 610 may read the program included in the storage medium 690 storing the computer-readable program using a storage medium reading device (not shown). Alternatively, CPU 610 may receive a program from an external device (not shown) via NIC 650, store the program in RAM 630 or storage device 640, and operate based on the stored program.
  • the ALU 611 is in charge of predetermined arithmetic processing and part of predetermined processing in the CPU 610 .
  • the ALU 611 is controlled by the CPU 610 to perform some or all of the learning and inference operations.
  • the configuration of ALU 611 is arbitrary.
  • ALU 611 may be a Graphics Processing Unit (GPU) or a Field programmable Gate Array (FPGA).
  • ALU 611 may be, for example, an Application Specific Integrated Circuit (ASIC).
  • Information data, programs, circuit information, etc.
  • Information necessary for the calculation in the ALU 611 is stored in the ROM 620, RAM 630, or storage device 640 in advance.
  • the ROM 620 stores programs executed by the CPU 610 and fixed data.
  • the ROM 620 is, for example, a P-ROM (Programmable-ROM) or flash ROM.
  • RAM 630 temporarily stores programs and data executed by CPU 610 .
  • the RAM 630 is, for example, a D-RAM (Dynamic-RAM).
  • the storage device 640 stores data and programs that the computer device 600 saves for a long time.
  • the storage device 640 may operate as the data storage unit 50 .
  • the storage device 640 may operate as the model storage unit 80 .
  • Storage device 640 may also operate as a temporary storage device for CPU 610 .
  • Storage device 640 may act as a secondary storage device for memories (eg, ROM 620 and RAM 630).
  • the storage device 640 is, for example, a hard disk device, a magneto-optical disk device, a solid state drive (Sloid State Derive (SSD)), or a disk array device.
  • SSD Solid State Derive
  • the ROM 620 and storage device 640 are non-transitory recording media.
  • the RAM 630 is a volatile (transitory) recording medium.
  • the CPU 610 can operate based on programs stored in the ROM 620 , the storage device 640 , or the RAM 630 . That is, the CPU 610 can operate using a non-volatile recording medium or a volatile recording medium.
  • the NIC 650 relays data exchange with an external device (not shown) via the network.
  • the NIC 650 operates as part of the data acquisition section 90 and the object inference section 10D.
  • NIC 650 is, for example, a Local Area Network (LAN) card.
  • LAN Local Area Network
  • the NIC 650 is not limited to wired, and may be wireless.
  • the computer device 600 of FIG. 9 configured in this way can obtain the same effect as the information processing device 1 of FIG. 1 and the information processing device 1D of FIG.
  • the reason is that the CPU 610 of the computer device 600 of FIG. 9 can implement the same functions as the information processing device 1 and the information processing device 1D based on the program.
  • this is because the CPU 610 and ALU 611 of the computer device 600 in FIG. 9 can realize the same functions as the information processing device 1 and the information processing device 1D based on the program.
  • Information processing apparatus 1C shown in FIG. 13 may be configured using computer apparatus 600 in FIG.
  • FIG. 10 is a block diagram showing an example of the configuration of an information processing system 400 including the information processing device 1D.
  • the information processing system 400 includes an information processing device 1D, a data acquisition device 200, and a display device 300.
  • FIG. Information processing system 400 may include a plurality of devices as respective devices.
  • the information processing system 400 may include multiple data acquisition devices 200 .
  • the information processing system 400 may include a device (not shown).
  • the information processing system 400 may include a device that recognizes predetermined information related to the target object using the inference result of the information processing device 1D.
  • a device for recognizing predetermined information related to a target object is, for example, an OCR device.
  • the data acquisition device 200 outputs inference target data to the information processing device 1D.
  • the data acquisition device 200 may output an original learning data set for generating a learning data set to the information processing device 1D.
  • Data acquisition device 200 is, for example, a surveillance camera. In this case, the data acquisition device 200 outputs the captured image to the information processing device 1D as inference target data.
  • the information processing device 1D operates as described above. That is, the information processing device 1D acquires inference target data from the data acquisition device 200 . Then, the information processing device 1D performs inference on the obtained inference target data and outputs the inference result to the display device 300 .
  • the display device 300 acquires an inference result from the information processing device 1D and displays the acquired inference result.
  • the display device 300 is, for example, a liquid crystal display, an organic electroluminescence display, or electronic paper. Specifically, the display device 300 is, for example, a liquid crystal display of a surveillance system. The operator can refer to the display on the display device 300 to confirm the target object.
  • the information processing system 400 includes the information processing device 1D, the data acquisition device 200, and the display device 300.
  • the information processing device 1D operates as described above.
  • the data acquisition device 200 outputs inference target data to the information processing device 1D.
  • the display device 300 acquires an inference result from the information processing device 1D and displays the acquired inference result.
  • the information processing system 400 improves the throughput of inference and displays an inferred target object in the inference target data to an operator or the like.
  • the load of primary inference and secondary inference differs for each trained model used for inference.
  • a trained model with high inference accuracy generally has a high load.
  • throughput decreases.
  • the load of data aggregation differs between post-processing and aggregation processing in data aggregation.
  • the method of generating aggregated data and the format of aggregated data used in data aggregation affect inference accuracy.
  • a method of generating aggregated data used in data aggregation is, for example, a method of grouping areas.
  • the aggregated data format is, for example, size and gap between images.
  • inference parameters In general, there is a trade-off relationship between inference accuracy and throughput. Note that the processing load and throughput are in an inversely proportional relationship. For example, increasing the processing load decreases the throughput, and decreasing the processing load increases the throughput. Therefore, in order to prevent deterioration of inference accuracy while ensuring desired throughput, it is desirable to select and use appropriate inference parameters based on the load or throughput.
  • the third embodiment changes the learned model as the change of the inference parameters. However, this does not limit the third embodiment.
  • the third embodiment may change inference parameters different from those of the trained model according to the load or throughput. Modifying inference parameters is further described below.
  • the information processing apparatus 1B used in the following explanation includes one secondary inference unit 40B as a secondary inference unit. When a plurality of secondary inference units 40B are used as in the information processing device 1D, each configuration of the information processing device 1B may include the same function as the corresponding configuration in the information processing device 1D in the following description.
  • FIG. 11 is a block diagram showing an example of the configuration of an information processing device 1B according to the third embodiment.
  • the information processing device 1B includes an object inference unit 10, a primary inference unit 20B, a data aggregation unit 30B, a secondary inference unit 40B, a data storage unit 50B, a data generation unit 60B, a model generation unit 70B, a model A storage unit 80B and a data acquisition unit 90 are included.
  • the information processing device 1B may be configured using the computer device 600 of FIG. 9, as in the second embodiment.
  • the configuration for determining the load or throughput of the information processing device 1B is arbitrary.
  • a monitor unit (not shown) may determine the load and notify each component.
  • the information processing device 1B may use a monitor of an operating system running on the computer as a configuration for determining the load.
  • a given application running on a computer may measure the processing speed of one or more components as throughput.
  • a predetermined application can process the amount of inference target data processed by the primary inference unit 20B, the amount of aggregated data generated by the data aggregation unit 30B, and the amount of aggregated data processed by the secondary inference unit 40B per unit time. At least one of may be measured.
  • the configuration for controlling the operation of each component according to the load or throughput is arbitrary.
  • the information processing apparatus 1B may include a control unit (not shown) that determines load or throughput and controls each component.
  • a given configuration may determine load or throughput to control operation of components such as primary reasoner 20B, data aggregator 30B, and secondary reasoner 40B.
  • primary reasoning unit 20B, data aggregating unit 30B, and secondary reasoning unit 40B may determine load or throughput and change their associated inference parameters. Therefore, in the following description, unless otherwise necessary, the description of the component that controls the operation corresponding to the load in each component will be omitted.
  • the configuration subject to load or throughput determination and the configuration for switching inference parameters are arbitrary.
  • the load or throughput may be the load or throughput of the entire information processing apparatus 1B.
  • the information processing device 1B adjusts the inference parameters of the primary inference unit 20B, the data aggregation unit 30B, and the secondary inference unit 40B so that the throughput of the entire information processing device 1B is appropriate for the inference target data. You can switch.
  • the load or throughput determination target may be the load or throughput in the configuration of one or a part of the information processing apparatus 1B.
  • the information processing device 1B may switch the inference parameters of a certain configuration in accordance with the load or throughput of the configuration preceding or succeeding the configuration.
  • the primary inference unit 20B may switch the trained model for primary inference according to the load on the data aggregation unit 30B. For example, when the load on the data aggregation unit 30B is high, the primary inference unit 20B uses a trained model with a high load, that is, a trained model with high inference accuracy. Conversely, when the load on the data aggregation unit 30B is low, the primary inference unit 20B uses a trained model with a low load.
  • the secondary inference unit 40B may switch the trained model for secondary inference according to the load on the data aggregation unit 30B.
  • the secondary inference unit 40B uses a trained model with high load, that is, a trained model with high inference accuracy. Conversely, when the load of the data aggregating unit 30B is low, the secondary inference unit 40B uses a trained model with a low load.
  • the object inference unit 10 and the data acquisition unit 90 are the same as the object inference unit 10 and the data acquisition unit 90 of the second embodiment, so detailed description thereof will be omitted.
  • the data generation unit 60B uses the original learning data set to generate a primary inference learning data set and a secondary inference learning data set. Then, the data generation unit 60B stores the generated primary inference learning data set and secondary inference learning data set in the data storage unit 50B. However, in the third embodiment, at least one of the primary reasoning unit 20B and the secondary reasoning unit 40B uses a plurality of trained models. Therefore, the data generator 60B generates a plurality of learning data sets as at least one of the primary inference learning data set and the secondary inference learning data set.
  • the data generation unit 60B applies a general data augmentation method to the original learning data set stored in the data storage unit 50B to generate multiple learning data sets.
  • the method of data augmentation is arbitrary. If the data is an image, the method of data expansion is, for example, left-right flip, top-bottom flip, cropping, combination, enlargement or reduction, brightness adjustment, brightness adjustment, color adjustment, and combinations thereof.
  • the data storage unit 50B stores primary inference learning data sets and secondary inference learning data sets.
  • the primary inference learning data set and the secondary inference learning data set are learning data sets used to generate trained models used by the primary inference unit 20B and the secondary inference unit 40B, respectively.
  • at least one of the primary reasoning unit 20B and the secondary reasoning unit 40B uses a plurality of trained models. Therefore, the data storage unit 50B stores a plurality of learning data sets as at least one of the primary inference learning data set and the secondary inference learning data set.
  • the model generation unit 70B uses the learning data set to generate a trained model for primary inference and a trained model for secondary inference.
  • at least one of the primary reasoning unit 20B and the secondary reasoning unit 40B uses a plurality of trained models. Therefore, the model generation unit 70B generates a plurality of trained models as at least one of the trained model for primary inference and the trained model for secondary inference. Then, the model generation unit 70B stores the generated learned model in the model storage unit 80B.
  • the model generation unit 70B generates a plurality of learning data sets stored in the data storage unit 50B as at least one of the primary inference trained model and the secondary inference trained model. to generate multiple trained models.
  • the model generation unit 70B may generate a plurality of trained models using one learning data set.
  • a plurality of trained models generated by the model generation unit 70B are arbitrary.
  • the model generation unit 70B may generate a model different in any one of the following as the trained model. (1) a learning data set used for learning, (2) network structure of the model; (3) model hyperparameters; (4) weight accuracy included in the model; (5) batch size in the model; (6) the positional relationship of the sub-target object with respect to the target object; (7) The number of sub-target objects for the target object.
  • the model generation unit 70B may generate an index to be used for selecting a trained model for a plurality of generated trained models.
  • the model generation unit 70B generates values such as the processing load, throughput performance, scale, or size of the generated trained model or a comparison result of at least a part of these as an index for selection of the trained model. good too.
  • the model storage unit 80B stores learned models. However, in the third embodiment, at least one of the primary reasoning unit 20B and the secondary reasoning unit 40B uses a plurality of trained models. Therefore, the model storage unit 80B stores a plurality of trained models as at least one of the trained model for primary inference and the trained model for secondary inference.
  • the data aggregating unit 30B like the data aggregating unit 30, generates aggregated data. However, the data aggregating unit 30B may change data aggregating including at least one of post-processing and data aggregating according to a predetermined load or throughput in the information processing apparatus 1B. A change in data aggregation in the data aggregation unit 30B will be further described later.
  • the primary inference unit 20B like the primary inference unit 20, executes primary inference.
  • the secondary inference unit 40B like the secondary inference unit 40, executes secondary inference. Furthermore, at least one of the primary inference unit 20B and the secondary inference unit 40B switches the trained model used for inference according to a predetermined load or throughput in the information processing device 1B. At least one of the primary inference unit 20B and the secondary inference unit 40B may switch between three or more trained models instead of two. When both the primary inference unit 20B and the secondary inference unit 40B switch trained models, the primary inference unit 20B and the secondary inference unit 40B may use the same threshold for determining the load or throughput. , different thresholds may be used.
  • the load and throughput used for determination in the third embodiment are arbitrary.
  • the operator may determine the load or throughput used for determination based on the target object, the learned model, and the like.
  • the information processing apparatus 1B may use at least one of the following items as the load or throughput.
  • Information processing apparatus 1B may use a combination of two or more items instead of one item.
  • Information processing apparatus 1B may use statistical processing such as averaging when using the following values.
  • the information processing device 1B may switch the inference parameters based on other information instead of the load and throughput, or together with the load or throughput.
  • the imaging range of a surveillance camera for a system that detects intruders may include ranges that require different inference accuracy. For example, it is desirable that the range near the entrance has high inference accuracy. On the other hand, in a range far from the entrance, it is desirable to reduce the load required for inference even if the accuracy of inference is low in order to reduce unnecessary power consumption. Therefore, for example, the information processing device 1B normally uses inference parameters with low load.
  • the inference parameter with low load is, for example, a trained model with low load.
  • the information processing apparatus 1B may switch to an inference parameter that increases the inference accuracy.
  • an inference parameter with high inference accuracy is a trained model with high inference accuracy.
  • the information processing device 1B may switch the inference parameters in response to predetermined information such as an event detected by a sensor.
  • Changes in the inference parameters in the primary inference unit 20B and the secondary inference unit 40B include the following changes, including the changes in the learned model described above. However, changes in inference parameters are not limited to the following.
  • Change the trained model used for inference The throughput of the primary reasoning unit 20B and the secondary reasoning unit 40B is improved when a trained model with a low load is used. However, the inference accuracy is low. When using a trained model with high load but high accuracy, the throughput of the primary inference unit 20B and the secondary inference unit 40B decreases. However, the inference accuracy is higher.
  • the information processing device 1B can shorten the time required to obtain the final inference result for the inference target data.
  • the time to obtain the final inference result is latency, for example.
  • the data aggregation unit 30B may change the following inference parameters based on a predetermined load or throughput in the information processing device 1B.
  • Change parameters in data aggregation such as thresholds in BB filtering or BB adjustment or amount of BB modification: When changing the filtering threshold so that the filtering targets are reduced, that is, the amount of data after filtering is reduced, the throughput of the data aggregator 30B is improved. However, the inference accuracy in the secondary inference unit 40B is lowered.
  • the inference accuracy in the secondary inference unit 40B is improved.
  • Change size of aggregated data When reducing the size of aggregated data, the throughput of the data aggregator 30B is improved. However, the inference accuracy in the secondary inference unit 40B is lowered. When the aggregated data size is increased, the throughput of the data aggregator 30B decreases. However, the inference accuracy in the secondary inference unit 40B is improved.
  • the information processing apparatus 1B may change items related to a plurality of components as follows as inference parameters.
  • Change in use of sub-target objects The information processing device 1B may switch whether or not to use the sub-target object according to the load. The throughput of the information processing apparatus 1B is improved when the sub-target object is not used. However, the final inference accuracy is degraded. When using sub-target objects, the throughput of the information processing apparatus 1B is reduced. However, the final inference accuracy is improved.
  • Presence or absence of primary reasoning The information processing device 1B may switch whether to use the primary inference unit 20B according to the load. The throughput of the information processing device 1B is improved when the amount of aggregated data is large and primary inference is not used.
  • the switching of the primary inference included in the inference parameter includes whether or not to execute the primary inference.
  • the behavior of other components when primary inference is not used is arbitrary.
  • the data aggregator 30B may generate aggregated data using inference target data.
  • the secondary inference unit 40B may infer the target object in the inference target data as the secondary inference.
  • the operation of the information processing device 1B according to the third embodiment will be described using the drawings.
  • the average value of the amount of aggregated data generated per unit time by the data aggregation unit 30B is used.
  • the average value of the amount of aggregated data generated per unit time is referred to as "aggregated data generation speed”.
  • the trained model for primary inference used by the primary inference unit 20B is used.
  • the information processing device 1B operates so as to obtain higher inference accuracy under low load conditions.
  • the primary inference unit 20B uses a highly accurate trained model, that is, a trained model with a high load, for primary inference. . Conversely, if the aggregate data generation speed exceeds the threshold, that is, if the load is high, the primary inference unit 20B uses a trained model with a low load, that is, a low-accuracy trained model for primary inference. .
  • FIG. 12 is a flowchart showing an example of the model switching operation in the information processing apparatus 1B according to the third embodiment.
  • FIG. 12 shows an example of the operation of the primary inference unit 20B switching the trained model for primary inference to be used for primary inference in accordance with the aggregate data generation speed.
  • the information processing device 1B calculates the consolidated data generation speed (step S201).
  • the information processing device 1B determines whether or not the consolidated data generation speed exceeds a predetermined threshold (step S202). If the consolidated data generation speed exceeds the threshold (Yes in step S202), the primary inference unit 20B performs primary inference using a trained model with a low load (step S205).
  • the primary inference unit 20B performs primary inference using a highly accurate trained model (step S206).
  • the information processing device 1B repeats the above operation at predetermined intervals.
  • the information processing apparatus 1B uses such an operation to switch the trained model for primary inference used by the primary inference unit 20B according to the throughput or load of the data aggregation unit 30B.
  • the information processing device 1B switches at least one of the inference parameters based on a predetermined load or throughput in the information processing device 1B.
  • the information processing device 1B switches the operation or the data to be handled by at least one of the primary inference unit 20B, the secondary inference unit 40B, and the data aggregating unit 30B based on a predetermined load or throughput in the information processing device 1B.
  • the information processing device 1B selects at least one of a trained model for primary inference used by the primary inference unit 20B and a trained model for secondary inference used by the secondary inference unit 40B. switch.
  • the information processing device 1B switches data aggregation processing in the data aggregation unit 30B based on the load or throughput of the primary inference unit 20B or the secondary inference unit 40B.
  • the information processing device 1B according to the third embodiment changes the inference parameters according to the predetermined load or throughput in the information processing device 1B.
  • the information processing apparatus 1B suppresses a decrease in throughput and avoids the occurrence of data that cannot be processed when the load increases.
  • the information processing device 1B switches the inference parameters so that the load increases.
  • the information processing apparatus 1B achieves inference with appropriate accuracy while ensuring throughput.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Image Analysis (AREA)

Abstract

推論のスループットを向上させるため、本発明の情報処理装置は、一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、第1対象物体を推論する一次推論手段と、前記一次推論において推論された前記第1対象物体を、第1対象物体の属性に基づいていずれかのグループに分類し、グループごとに推論対象データより数量が少ないデータである集約データを生成し、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係を生成するデータ集約手段と、二次推論として、互いに異なるグループの集約データを第2学習済モデルに適用して第1対象物体を推論する複数の二次推論手段と、二次推論の結果における第1対象物体と、対応関係とを用いて、推論対象データにおける第1対象物体を推論する物体推論手段とを含む。

Description

情報処理装置、情報処理システム、情報処理方法、及び、記録媒体
 本発明は、機械学習を用いた推論に関する。
 非特許文献1ないし3には、深層学習(Deep-Learning)を用いた物体検出タスクの技術が、開示されている。非特許文献4には、画像の中に含まれる人間の姿勢を推定する姿勢推定タスクの技術が開示されている。
Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun, "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks", [online], 6 January 2016, Cornel University, [2021年7月20日検索], インターネット<URL:https://arxiv.org/abs/1506.01497> Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg, "SSD: Single Shot MultiBox Detector", [online], 29 December 2016, Cornel University, [2021年7月20日検索, インターネット, <URL:https://arxiv.org/abs/1512.02325> Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, Piotr Dollar, "Focal Loss for Dense Object Detection", [online], 7 February 2018, Cornel University, [2021年7月20日検索], インターネット, <URL:https://arxiv.org/abs/1708.02002> Yadong Pan, Ryo Kawai, Noboru Yoshida, Hiroo Ikeda, Shoji Nishimura, "Training Physical and Geometrical Mid-Points for Multi-person Pose Estimation and Human Detection Under Congestion and Low Resolution", June 21, 2020, The National Center for Biotechnology Information, [2021年09月15日検索], インターネット<URL: https://pubmed.ncbi.nlm.nih.gov/33063050/>
 機械学習を用いた推論の処理、特に物体検出タスク及び姿勢推定タスクの処理は、計算負荷が高く、処理に多くの時間が掛かる処理である。そのため、物体検出タスク及び姿勢推定タスクにおける推論処理のスループットを向上することが望まれている。非特許文献1ないし4は、推論のスループットの向上に関連する技術を開示していない。本発明の目的は、対象物体の推論のスループットを向上させる情報処理装置などを提供することにある。
 本発明の一形態にかかる情報処理装置は、
 一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、第1対象物体を推論する一次推論手段と、
 一次推論において推論された第1対象物体を、第1対象物体の属性に基づいていずれかのグループに分類し、グループごとに推論対象データより数量が少ないデータである集約データを生成し、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係を生成するデータ集約手段と、
 二次推論として、互いに異なるグループの集約データを第2学習済モデルに適用して第1対象物体を推論する複数の二次推論手段と、
 二次推論の結果における第1対象物体と、対応関係とを用いて、推論対象データにおける第1対象物体を推論する物体推論手段と
 を含む。
 本発明の一形態にかかる情報処理システムは、
 上記の情報処理装置と、
 情報処理装置に推論対象データを出力するデータ取得装置と、
 情報処理装置から推論の結果を取得し、取得した推論の結果を表示する表示装置と
 を含む。
 本発明の一形態にかかる情報処理方法は、
 一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、第1対象物体を推論し、
 一次推論において推論された第1対象物体を、第1対象物体の属性に基づいていずれかのグループに分類し、グループごとに推論対象データより数量が少ないデータである集約データを生成し、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係を生成し、
 二次推論として、互いに異なるグループの集約データを第2学習済モデルに適用して第1対象物体を推論し、
 二次推論の結果における第1対象物体と、対応関係とを用いて、推論対象データにおける第1対象物体を推論する。
 本発明の一形態にかかる情報処理方法は、
 情報処理装置が上記の情報処理方法を実行し、
 データ取得装置が、情報処理装置に推論対象データを出力し、
 表示装置が、情報処理装置から推論の結果を取得し、取得した推論の結果を表示する。
 本発明の一形態にかかる記録媒体は、
 一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、第1対象物体を推論する処理と、
 一次推論において推論された第1対象物体を、第1対象物体の属性に基づいていずれかのグループに分類し、グループごとに推論対象データより数量が少ないデータである集約データを生成し、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係を生成する処理と、
 二次推論として、互いに異なるグループの集約データを第2学習済モデルに適用して第1対象物体を推論する処理と、
 二次推論の結果における第1対象物体と、対応関係とを用いて、推論対象データにおける第1対象物体を推論する処理と
 をコンピュータに実行させるプログラムを記録する。
 本発明に基づけば、対象物体の推論のスループットを向上するとの効果を奏することができる。
第2実施形態にかかる情報処理装置の構成の一例を示すブロック図である。 第2実施形態にかかる情報処理装置における学習済モデルの生成の動作の一例を示すフロー図である。 第2実施形態にかかる情報処理装置における対象物体の推論の動作の一例を示すフロー図である。 データ集約部における後処理の一例を示すフロー図である。 一次推論の結果の一例を示す図である。 集約データの一例を示す図である。 二次推論の結果の一例を示す図である。 推論対象データにおける対象物体の推論の一例を示す図である。 情報処理装置のハードウェア構成の一例を示すブロック図である。 情報処理装置を含む情報処理システムの構成の一例を示すブロック図である。 第3実施形態にかかる情報処理装置の構成の一例を示すブロック図である。 第3実施形態にかかる情報処理装置におけるモデルの切り替え動作の一例を示すフロー図である。 第1実施形態にかかる情報処理装置の構成の一例を示すブロック図である。 第2実施形態にかかるグループごとに二次推論を実行する情報処理装置の構成の一例を示すブロック図である。 図14の情報処理装置における対象物体の推論の動作の一例を示すフロー図である。
 以下、本発明における実施形態について、図面を用いて説明する。各図面は、本発明における実施形態を説明するためのものである。ただし、各実施形態は、各図面の記載に限られるわけではない。また、各実施形態は、適宜組み合わせることができる。
 <第1実施形態>
 図13は、本発明における第1実施形態にかかる情報処理装置1Cの構成の一例を示すブロック図である。情報処理装置1Cは、物体推論部10Dと、一次推論部20Dと、データ集約部30Dと、複数の二次推論部40Dとを含む。一次推論部20Dは、一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、第1対象物体を推論する。データ集約部30Dは、一次推論において推論された第1対象物体を、第1対象物体の属性に基づいていずれかのグループに分類する。そして、データ集約部30Dは、グループごとに推論対象データより数量が少ないデータである集約データを生成する。そして、データ集約部30Dは、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係を生成する。二次推論部40Dは、二次推論として、互いに異なるグループの集約データを第2学習済モデルに適用して第1対象物体を推論する。物体推論部10Dは、二次推論の結果における第1対象物体と、対応関係とを用いて、推論対象データにおける第1対象物体を推論する。
 このように構成された情報処理装置1Cは、第1対象物体の属性に基づいて分類した第1対象物体のグループごとに、推論対象データを集約した集約データを生成する。そして、情報処理装置1Cは、グループごとの集約データを用いた二次推論の結果と、対象物体の推論対象データ及び集約データの位置との対応関連とを用いて、推論対象データにおける対象物体を推論する。集約データは、元のデータにおける対象物体を含み、かつ、データの数量が少なくいデータである。そのため、情報処理装置1Cは、対象物体の推論のスループットを向上する。さらに、情報処理装置1Cは、第1対象物体の属性に基づいて分類した複数のグループごとに集約した集約データに対して二次推論を実行する。つまり、情報処理装置1Cは、第1対象物体の属性に対応した二次推論を実行する。例えば、後ほど詳細に説明するが、情報処理装置1Cは、推論難易度が低いグループについては、二次推論として精度が高くないが軽量で高速な学習済モデル又は推論パラメタを用いる二次推論を用いて、精度を維持しつつ推論のスループットを向上できる。一方、情報処理装置1Cは、推論難易度が高いグループについては、精度が高い学習済モデル又は推論パラメタを用いる二次推論を用いて、精度の劣化を回避した推論を実行できる。このように、情報処理装置1Cは、精度を維持しつつ、対象物体の推論のスループットを向上させる。
 <第2実施形態>
機械学習を用いた主要なタスクの一つとして、画像における物体検出(Object Detection)タスクがある。物体検出タスクは、画像の中に存在する対象物体の位置とクラス(種別)との組のリストを生成するタスクである。近年、機械学習の中でも特に深層学習(Deep-Learning)を用いた物体検出タスクが、広く利用されている。物体検出タスクは、機械学習の学習フェーズにおいて、正解データとして、学習用の画像群と、各画像内の対象物体の情報とが与えられる。対象物体の情報は、物体検出タスクの仕様に沿って選択される。例えば、対象物体の情報は、対象物体が映っている矩形領域の4つの頂点の座標(バウンディングボックス(Bounding Box(BB))及び対象物体のクラスを含む。なお、以下の説明でも、対象物体の情報の一例として、BB及びクラスを用いて説明する。そして、物体検出タスクは、学習用の画像群と対象物体の情報とを用いて、例えば、深層学習を用いた機械学習の結果として、学習済モデルを生成する。物体検出タスクは、検出フェーズにおいて、対象物体を含む画像に対して学習済モデルを適用して画像に含まれる対象物体を推論し、画像に含まれる対象物体それぞれについて、BBとクラスとの組を出力する。なお、物体検出タスクは、BB及びクラスとともに、物体検出の結果についての評価結果を出力することもある。評価結果としては、確実性(confidence)が用いられることが多いが、これに限らず、他の値が用いられる場合もある。
 例えば、人及び車の監視システムは、物体検出タスクを用いて構築可能である。例えば、システムの利用者は、監視カメラからの画像を物体検出タスクに入力する。物体検出タスクは、画像における人及び車の位置及びクラスを検出する。そして、利用者は、物体検出タスクが検出した人及び車の位置及びクラスを用いて、監視カメラの画像に映っている人及び車を判定すればよい。また、物体検出タスクは、他の認識処理と組み合わされて用いられることもある。例えば、ナンバープレート認識システムは、車のナンバープレートを検出する物体検出タスクと、検出されたナンバープレート上の文字を認識する光学文字認識(Optical Character Recognition(OCR))処理とを組み合わせて、構築可能である。
 その他のタスクとして、画像の中に含まれる人間の姿勢を推定する姿勢推定タスクがある。姿勢推定タスクは、例えば、目、鼻、肘、及び、膝などの特徴点(keypoint)を抽出する処理と、特徴点同士を組み合わせて人の姿勢を生成する処理とで構成される。姿勢推定タスクは、以下に限定されないが、例えば、特徴点を抽出するkeypoint抽出処理に深層学習を用い、姿勢を生成する処理に非深層学習を用いる場合がある。keypoint抽出処理では、推論フェーズにおいて、対象を含む画像に対して学習済モデルを適用して画像に含まれる目及び鼻などのkeypointが推論される。そして、keypoint抽出処理では、推論された各keypointについて、keypointの座標及びクラスと、推論の確実性(confidence)とが出力される。
 物体検出タスク及び姿勢推定タスクの処理は、高スループットが求められている。例えば、見落としを防ぐために、監視カメラは、ある程度の高いフレームレートで画像を取得する必要がある。特に、車のような高速で移動する物体を対象とする場合、監視カメラは、例えば、10fps(frame per second)又はそれ以上のフレームレートでの動作が望まれている。そのため、物体検出タスクなどは、監視カメラが取得した高いフレームレートの画像における物体を検出する必要がある。
 さらに、監視カメラが取得した画像における物体を検出するシステムでは、監視カメラ又は監視カメラの周辺の機器、すなわち、エッジが、物体検出タスクにおける推論処理を実行する構成が想定される。しかし、エッジでは、設置場所、冷却、及び、電力等が制約され、限られた計算リソースしか利用できない場合が多い。物体検出タスクなどの処理は、そのようなエッジ環境においても、ある程度の高いスループットが求められている。
 しかし、機械学習を用いた推論の処理、特に物体検出タスク及び姿勢推定タスクの処理は、計算負荷が高く、処理に多くの時間が掛かる処理である。その結果、物体検出タスク及び姿勢推定タスクは、一般的に、スループット性能が低くなりやすい。そこで、物体検出タスク及び姿勢推定タスクにおける推論処理のスループットを向上することが望まれている。
 そこで、第2実施形態は、以下で詳細に説明する構成を用いて、推論のスループットを向上する。図面を用いて、第2実施形態の構成について説明する。図1は、第2実施形態にかかる情報処理装置1の構成の一例を示すブロック図である。なお、本実施形態を含め、以下の説明では、一例として、次のものを用いる。
(1)推論対象のデータ:カメラなどが撮影した画像(静止画又は動画)、
(2)推論のタスク:画像を対象とした物体検出タスク又は姿勢推定タスク、
(3)推論の結果:「BB又はKeypoint、クラス、及び、confidence」の組、
(4)対象物体:車両のライセンスプレート(License Plate(LP))又は姿勢。
 ただし、これらは、本実施形態などを限定するものではない。例えば、本実施形態は、処理の対象のデータとして、画像とは異なるデータを用いてもよい。例えば、本実施形態は、処理対象のデータとして、深度センサを用いて取得された深度データを用いてもよい。あるいは、本実施形態は、処理対象のデータとして、ライダー(Light Detection and Ranging(LIDAR))を用いて取得された3次元データを用いてもよい。あるいは、本実施形態における推論の結果は、「BB又はKeypoint、クラス、及び、confidence」の組に限定されない。例えば、本実施形態は、BBに含まれる対象物体を推論してもよい。なお、以下の説明において、説明の便宜のため、「BB、クラス、及び、confidence」の組を、単に「BB」と呼ぶ場合もある。
 図面を用いて、第2実施形態の構成について説明する。図1は、第2実施形態にかかる情報処理装置1の構成の一例を示すブロック図である。情報処理装置1は、物体推論部10と、一次推論部20と、データ集約部30と、二次推論部40と、データ保存部50と、データ生成部60と、モデル生成部70と、モデル保存部80と、データ取得部90とを含む。図1に示す構成要素の数及び接続関係は、一例である。例えば、情報処理装置1は、複数のデータ取得部90を含んでもよい。情報処理装置1は、CPU(Central Processing Unit)、メインメモリ、及び、二次記憶装置を含むコンピュータ装置を用いて構成されてもよい。この場合、図1に示されている情報処理装置1の構成要素は、CPUなどを用いて実現される機能を示している。ハードウェア構成については、後ほどさらに説明する。
 情報処理装置1において、各構成要素の動作を制御する構成は、任意である。例えば、情報処理装置1は、各構成要素を制御する制御部(図示せず)を含んでもよい。あるいは、所定の構成が、一次推論部20、データ集約部30、及び、二次推論部40などの構成要素の動作を制御してもよい。あるいは、例えば、物体推論部10が、一次推論部20、データ集約部30、及び、二次推論部40などの構成要素の動作を制御してもよい。このように、所定の構成が、他の構成を制御してもよい。あるいは、各構成要素が、独立的に、他の構成要素からデータを取得して動作してもよい。あるいは、各構成要素は、他の構成要素からデータを取得すると動作を開始してもよい。そのため、以下の説明では、特に必要な場合を除いて、構成要素の動作の制御に関する説明を省略する。
 (1)データ取得部90
データ取得部90は、所定の装置から、推論の対象となる物体含むデータを取得する。以下、推論の対象となる物体を、「対象物体」と呼ぶ。また、対象物体を含むデータを、「推論対象データ」と呼ぶ。推論対象データは、少なくとも一部のデータが対象物体を含めばよい。つまり、少なくとも一部の推論対象データは、対象物体を含まなくてもよい。データ取得部90が推論対象データを取得する装置は、任意である。例えば、データ取得部90は、推論対象データとして、監視カメラから画像を取得してもよい。
 (2)一次推論部20
一次推論部20は、推論対象データにおける対象物体を推論する。以下、一次推論部20における推論を「一次推論」と呼ぶ。一次推論部20は、一次推論の対象として、対象物体に加え、対象物体と所定の位置関係にある物体を推論してもよい。対象物体と所定の位置関係にある物体とは、例えば、LPの周辺物体であるが、これに限定されない。以下、対象物体と所定の位置関係にある物体を「サブ対象物体」と呼ぶ。以下の説明では、一次推論部20は、対象物体とサブ対象物体とを推論する。ただし、これは、一次推論部20の動作を限定するものではない。一次推論部20は、サブ対象物体を推論しなくてもよい。また、以下の説明では、情報処理装置1における推論の対象物体を「第1対象物体」と呼び、サブ対象物体を「第2対象物体」と呼ぶ場合もある。
 所定の位置関係は、任意である。オペレータが、対象物体に対応して、サブ対象物体の位置関係を設定すればよい。例えば、位置関係の一例は、「対象物体が、サブ対象物体に包含される」又は「サブ対象物体が、対象物体を包含する」である。例えば、対象物体が車両のLPの場合、サブ対象物体は、LPを包含する車両の前面及び後面である。なお、以下、LPを包含する車両の前面及び後面をまとめて、「車前後面」と呼ぶ場合もある。ただし、これは、第2実施形態における位置関係を限定するものではない。
 一次推論部20は、一次推論において、機械学習を用いる。詳細には、一次推論部20は、モデル保存部80に保存されている機械学習を用いて生成された学習済モデルを用いて、推論対象データにおける対象物体及びサブ対象物体を推論する。以下、一次推論部20が用いる学習済モデルを「一次推論用学習済モデル」又は「第1学習済モデル」と呼ぶ。一次推論部20は、一次推論用学習済モデルに推論対象データを適用するときに、推論対象データを修正してもよい。例えば、推論対象データが画像の場合、一次推論部20は、画像のサイズ又はアスペクト比を変更してもよい。
 (3)データ集約部30
データ集約部30は、一次推論の結果に含まれる対象物体を用いて、以下で説明する処理を実行する。ただし、一次推論部20が対象物体に加えサブ対象物体を推論する場合、データ集約部30は、対象物体に加え、サブ対象物体を用いてもよい。以下の説明では、データ集約部30は、対象物体及びサブ対象物体を用いる。ただし、データ集約部30は、サブ対象物体を用いなくてもよい。この場合、データ集約部30は、以下の説明におけるサブ対象物体に関連する動作を省略すればよい。
 データ集約部30は、一次推論の結果に含まれる対象物体に対して、所定の処理を実行する。例えば、所定の処理は、BBの破棄、BBのフィルタリング、又は、BBの調整である。以下、この処理を「後処理」と呼ぶ。データ集約部30は、一次推論の結果に含まれる対象物体の一部に対して後処理を実行してもよいし、全ての対象物体に対して後処理を実行してもよい。さらに、データ集約部30は、一次推論の結果に含まれるサブ対象物体の一部又は全てに対して、後処理を実行してもよい。以下の説明では、一例として、データ集約部30は、全ての対象物体及びサブ対象物体に対して、後処理を実行する。ただし、データ集約部30における後処理は、これに限定されない。
 さらに、データ集約部30は、推論対象データにおける対象物体の領域及びサブ対象物体の領域を含み、推論対象データよりデータの数量が少ないデータを生成する。以下、推論対象データよりデータの数量が少ないデータとして生成されるデータを、「集約データ」と呼ぶ。また、以下、この処理を「集約」と呼ぶ。つまり、「集約」とは、推論対象データから一次推論の結果における対象物体及びサブ対象物体を含む領域を抽出又は複製し、抽出又は複製した領域を集めて、推論対象データの数量より少ない数量のデータである集約データを生成することである。
 集約データにおいて、推論対象データに対して少なくなるデータの数量は、任意である。オペレータが、対象物体及び推論の動作に対応して決定すればよい。例えば、データの数量としてデータの数を用いる場合、集約データは、推論対象データに対して、データの数が少ないデータである。例えば、データが静止画の場合、データの数は、静止画の枚数である。あるいは、データが固定時間長の動画の場合、データの数は、例えば、動画の本数である。データの数量としてデータの量を用いる場合、集約データは、推論対象データに対して、データの量が少ないデータである。データの量とは、例えば、容量又は面積である。例えば、データが静止画の場合、データの量は、静止画全体のデータの量である。あるいは、データが映像の場合、データの量は、映像の時間長である。
 さらに、データ集約部30は、集約データの生成において、推論対象データにおける対象物体及びサブ対象物体それぞれの位置と、集約データにおける対象物体及びサブ対象物体それぞれの位置との対応関係を生成する。以下、推論対象データにおける対象物体及びサブ対象物体それぞれの位置と、集約データにおける対象物体及びサブ対象物体それぞれの位置との対応関係を、「集約対応関係」と呼ぶ。例えば、BBを推論する場合、データ集約部30は、集約対応関係として、推論対象データにおける対象物体のBB及びサブ対象物体のBBの位置、向き及びサイズと、集約データにおけるそれぞれの位置、向き及びサイズとの座標変換を生成する。
 なお、データが画像の場合、データ集約部30は、集約データにおける画像として、推論対象データにおける画像のサイズとは異なるサイズの画像を生成してもよい。例えば、情報処理装置1のオペレータが、推論対象データのサイズ、情報処理装置1のハードウェアの性能、並びに、推論に用いる学習済モデルの処理性能及び計算精度などに基づいて、集約データにおける画像のサイズをデータ集約部30に設定してもよい。集約データは、後ほど説明する二次推論部40が推論に用いるデータである。また、推論対象データは、一次推論部20が推論に用いるデータである。つまり、情報処理装置1は、一次推論部20と二次推論部40とで、異なるサイズのデータを用いてもよい。例えば、データが画像の場合、情報処理装置1は、一次推論部20と二次推論部40とで、異なるサイズの画像を用いてもよい。
 次に、データ集約部30における後処理及び集約の詳細について説明する。なお、データ集約部30における「後処理」と「集約」とをまとめて「データ集約」と呼ぶ。つまり、「データ集約」の動作は、集約データの生成前における「後処理」の動作と、「集約」の動作とを含む動作である。ただし、データ集約部30は、「後処理」を実行しなくてもよい。この場合、データ集約は、以下の説明における「集約」の動作となる。
 (3-1)後処理
データ集約部30は、集約データの生成前において、以下で説明する後処理を実行する。例えば、データ集約部30は、対象物体とサブ対象物体との位置関係と、一次推論の結果とを用いて、一次推論の結果の中から不要なサブ対象物体の領域を破棄する。例えば、データ集約部30は、一次推論の結果に含まれるサブ対象物体において、そのサブ対象物体と所定の位置関係にある対象物体が一次推論の結果に含まれるサブ対象物体を破棄する。あるいは、データ集約部30は、一次推論の結果として推論された対象物体に対応するサブ対象物体のBBを破棄してもよい。言い換えると、データ集約部30は、一次推論の結果に含まれるサブ対象物体において、所定の位置関係にある対象物体が一次推論の結果に含まれないサブ対象物体を集約の対象として用いる。「サブ対象物体が対象物体を含む位置関係」及び「BB」を用いて、この動作を用いる理由を説明する。
 一次推論の結果に含まれる対象物体のBBは、後ほど説明する集約の動作において、集約データに含まれる。そのため、一次推論の結果に含まれる対象物体を含むサブ対象物体のBBが集約データに含まれない場合でも、対象物体のBBは、集約データに含まれる。また、そのサブ対象物体のBBを集約データに含めた場合、集約データは、対象物体のBBとして、重複したBBを含むこととなる。これは、二次推論における不要な負荷の追加となる。そこで、データ集約部30は、このようなサブ対象物体を破棄する。その結果、情報処理装置1は、このサブ対象物体のBBを用いる場合に比べ、スループットを向上できる。一方、一次推論の結果に対象物体が含まれないサブ対象物体のBBは、一次推論において推論されなかった対象物体を含む可能性がある。そのため、このようなサブ対象物体のBBを集約データに含めると、情報処理装置1は、二次推論の精度を向上できる。
 このように、データ集約部30は、サブ対象物体の中で、対象物体が一次推論の結果に含まれるサブ対象物体を破棄する。言い換えると、データ集約部30は、集約の対象として、対象物体と所定の位置関係にあるサブ対象物体の中で、所定の位置関係にある対象物体が一次推論の結果に含まれないサブ対象物体を用いる。データ集約部30は、この動作の結果として、二次推論における推論精度を向上させながら、生成する集約データの数量を減らすことができる。その結果、情報処理装置1は、スループット、及び、推論の速度を向上できる。
 例えば、サブ対象物体の位置関係が「サブ対象物体である車前後面が対象物体であるLPを包含する」の場合、データ集約部30は、一次推論の結果に含まれる車前後面のBBにおいて、BB内に一次推論の結果に含まれるLPを含む車前後面のBBを破棄する。言い換えると、データ集約部30は、一次推論の結果に含まれる車前後面のBBの中で、領域内にLPが推論されていない車前後面のBBを集約の対象とする。このように、データ集約部30は、対象物体とサブ対象物体との両方が推論された一次推論の結果を含まないように、集約データを生成する。
 対象物体とサブ対象物体との位置関係は、上記に限定されず、任意である。例えば、データ集約部30は、オペレータが設定した位置関係を用いて、対象物体とサブ対象物体との位置関係を判定する。なお、データ集約部30は、対象物体とサブ対象物体との位置関係の判定において、図示しない装置などに保存されている対象物体とサブ対象物体との位置関係を判定する学習済モデルを用いてもよい。
 なお、データ集約部30は、サブ対象物体の破棄とは異なる動作を実行してもよい。例えば、対象物体が検出され、その対象物体に対応するサブ対象物体が検出された場合、データ集約部30は、サブ対象物体のBBを破棄せず、対象物体のBBのconfidenceを更新してもよい。例えば、対象物体が検出され、その対象物体に対応するサブ対象物体が検出された場合、データ集約部30は、対象物体のBBのconfidenceに所定の値を加算又は乗算してもよいし、confidenceの値を所定の値に変更してもよい。
 データ集約部30は、集約データの生成前における後処理として、一次推論の結果をフィルタリングしてもよい。フィルタリングの対象は、任意である。例えば、データ集約部30は、BBに対応するconfidence、BBのサイズ又はアスペクト比、及び、BBの画像内における位置の少なくとも一つを用いて、一次推論の結果のBBをフィルタリングしてもよい。より詳細には、例えば、データ集約部30は、所定の閾値とBBの属性値との比較に基づいて、BBをフィルタリングしてもよい。なお、属性値は、例えば、サイズ又はアスペクト比である。例えば、データ集約部30は、推論に不適切なサイズ又はアスペクト比のBBを破棄してもよい。なお、閾値は、一つではなく、複数でもよい。例えば、閾値は、BBに関連するクラス毎に異なってもよい。あるいは、閾値は、対象物体に対応するサブ対象物体が検出されたか否かに対応して異なってもよい。
 あるいは、データ集約部30は、取得したBBのサイズ及びアスペクト比の少なくとも一方を調整してもよい。一次推論の結果に含まれるBBの位置及びサイズは、正しい位置及びサイズとは異なる可能性がある。例えば、BBサイズは、実際の対象物体より小さい可能性がある。特に、一次推論で使用する学習済モデルが小さくかつ軽量な場合、推論されたBBが実際の対象物体より小さくなる傾向が、顕著となる。
 サイズが実際の対象物体より小さいBBをそのまま使用すると、データ集約部30は、一部が欠けた対象物体を含む集約データを生成する。その結果、後ほど説明する二次推論部40は、一部が欠けた対象物体を含む集約データを用いて推論することになる。その結果、二次推論部40における推論の結果が正しい結果とならない可能性、つまり、推論精度が低くなる可能性が、高くなる。そこで、データ集約部30は、後処理として、対象物体のBB及びサブ対象物体のBBの高さ及び幅の少なくともいずれか一つに所定の値を加える又は所定の値を乗じて、BBのサイズを修正してもよい。あるいは、BBのアスペクト比が所定の範囲から乖離している場合、データ集約部30は、所定の範囲にアスペクト比が入るようBBの高さ及び幅の少なくとも一方を修正してもよい。例えば、データ集約部30は、BBの修正量として、BBサイズ、クラス、画像内の位置、及び、画像内の所定の物体との相対位置の少なくとも一つに対応して、異なる値を用いてもよい。あるいは、対象物体のBBの場合、データ集約部30は、BBの修正量として、対象物体に対応するサブ対象物体が検出されたか否か、又は、対応するサブ対象物体のBBのサイズ等に対応して、異なる値を用いてもよい。これらの場合、オペレータが、予め、データ集約部30が用いるそれぞれの値を設定してもよい。
 なお、データ集約部30は、「後処理」を実行しなくてもよい。ただし、後処理を実行する場合も、後処理を実行しない場合も、データ集約部30は、以下で説明する集約の動作として、同じ動作を実行する。そこで、以下の説明では、説明の便宜のため、後処理を実行しない場合を含め、以下で説明する動作を「後処理後」の動作として説明する。つまり、後処理を実行しない場合、情報処理装置1は、以下の説明における「後処理後」の動作として、後処理を実行しない一次推論の結果を用いて動作すればよい。
 (3-2)集約
データ集約部30は、後処理後の一次推論の結果における対象物体及びサブ対象物体の領域を集めた集約データを生成する。詳細には、データ集約部30は、推論対象データにおける後処理後の一次推論の結果における対象物体の領域及びサブ対象物体の領域を抽出又は複製し、抽出又は複製した領域を集めた集約データを生成する。
 データ集約部30は、複数の推論対象データから一つ集約データを生成してもよいし、複数の推論対象データから複数の集約データを生成してよい。ただし、複数の場合でも、集約データの数量は、推論対象データの数量より少ない。推論対象データが画像の場合、データ集約部30は、集約データの生成において、画像の間に所定の隙間を設けてもよい。なお、既に説明した通り、データ集約部30は、後処理を実行しないで集約を実行してもよい。この場合、データ集約部30は、一次推論の結果を用いて集約を実行する。
 さらに、データ集約部30は、推論対象データにおける後処理後の一次推論の結果において、重複している一次推論の結果、及び、近接する一次推論の結果の少なくとも一方を一つにまとめてから、集約してもよい。例えば、データ集約部30は、重複しているBB、及び、所定の距離内のBBを、それらのBB全てを包含するBBとしてから、集約してもよい。情報処理装置1は、このような動作により、二次推論において同じ物体の二重検出の可能性、及び、対象物体を見落す可能性を低減できる。
 なお、データ集約部30は、抽出又は複製した後処理後の一次推論の結果における対象物体及びサブ対象物体のサイズを変更してから集約してもよい。サイズを変更は、例えば、拡大又は縮小である。対象物体及びサブ対象物体のサイズを小さくする場合、生成する集約データの数量は、少なくなる。その結果、二次推論の時間が短くなる可能性、つまり、スループットが向上する可能性が、高くなる。反対に、対象物体及びサブ対象物体のサイズを大きくする場合、生成する集約データにおける対象物体などのサイズ、つまり、二次推論における対象物体などのサイズが、大きくなる。その結果、二次推論の推論精度が向上する可能性が、高くなる。
 対象物体及びサブ対象物体のサイズの変更のやり方は、任意である。例えば、データ集約部30は、後処理後の一次推論の結果における対象物体及びサブ対象物体のサイズに基づいて、サイズを変更するか否か、及び、変更する場合にどのように変更するかを決定してもよい。あるいは、データ集約部30は、一次推論の結果を用いて、サイズを変更するか否か、変更する場合にどのように変更するかを決定してもよい。
 データ集約部30は、サイズの変更において、所定の画像処理を実行してもよい。この場合の所定の画像処理は、例えば、補完処理である。あるいは、データ集約部30は、サイズを変更に加えて、又は、サイズの変更に替えて、所定の画像処理を実行してもよい。この場合の所定の画像処理は、例えば、明度調整、輝度調整、色調整、コントラスト調整、幾何補正、又は、これらの一部又は全ての組合せである。さらに、データ集約部30は、一次推論の結果に対応して、画像処理に係るパラメタを調整してもよい。
 さらに、データ集約部30は、集約対応関係として、推論対象データにおける対象物体の領域と、集約データにおける対象物体の領域との対応関係を生成する。なお、この場合の領域は、例えば、BBの位置、向き及びサイズである。サブ対象物体の領域を集約する場合、データ集約部30は、サブ対象物体の領域に関しても同様に、推論対象データにおけるサブ対象物体の領域と、集約データにおけるサブ対象物体の領域との対応関係である集約対応関係を生成する。
 (4)二次推論部40
二次推論部40は、データ集約部30が生成した集約データにおける対象物体を推論する。以下、二次推論部40にける推論を「二次推論」と呼ぶ。二次推論部40は、二次推論において、機械学習を用いる。詳細には、二次推論部40は、モデル保存部80に保存されている学習済モデルを用いて、集約データにおける対象物体を推論する。以下、二次推論部40が用いる学習済モデルを「二次推論用学習済モデル」又は「第2学習済モデル」と呼ぶ。例えば、二次推論部40は、二次推論用学習済モデルを用いて、二次推論の結果として、集約データに含まれる対象物体の「BB、クラス、及び、confidence」の組を推論する。
 二次推論部40は、二次推論用学習済モデルに集約データを適用するときに、集約データのサイズを変更してもよい。例えば、集約データが画像の場合、二次推論部40は、集約データにおける画像のサイズ又はアスペクト比を変更してから、二次推論用学習済モデルに適用してもよい。
 (5)データ生成部60
データ生成部60は、所定のデータセットを用いて、機械学習に用いる学習用データセットを生成する。以下、所定のデータセットを、「オリジナル学習用データセット」と呼ぶ。オリジナル学習用データセットに含まれるデータは、機械学習の手法に対応したデータであれば任意である。例えば、オリジナル学習用データセットは、対象物体に関する正解データを含む画像群である。なお、オリジナル学習用データセットの取得元は、任意である。例えば、オペレータが、予め、データ保存部50にオリジナル学習用データセットを保存してもよい。あるいは、データ生成部60が、学習用データセットの生成において、図示しない装置からオリジナル学習用データセットを取得してもよい。
 詳細には、データ生成部60は、一次推論用学習済モデルを生成する機械学習において用いられる学習用データセットを生成する。一次推論用学習済モデルは、一次推論部20において用いられる。以下、一次推論部20が用いる一次推論用学習済モデルを生成する機械学習において用いられる学習用データセットを、「一次推論学習用データセット」又は「第1学習用データセット」と呼ぶ。さらに、データ生成部60は、二次推論用学習済モデルを生成する機械学習に用いられる学習用データセットを生成する。二次推論用学習済モデルは、二次推論部40において用いられる。以下、二次推論部40が用いる二次推論用学習済モデルを生成する機械学習に用いられる学習用データセットを、「二次推論学習用データセット」又は「第2学習用データセット」と呼ぶ。
 例えば、データ生成部60は、オリジナル学習用データセットに含まれる対象物体の正解データ、及び、対象物体とサブ対象物体との位置関係の情報とに基づいて、対象物体及びサブ対象物体の正解データを生成する。そして、データ生成部60は、オリジナル学習用データセットに、生成した正解データを加えて、一次推論学習用データセットを生成する。例えば、データ生成部60は、オリジナル学習用データセットに含まれるLPのBBに対して高さ及び幅に所定の値を乗じて大きくしたBBを生成する。このBBは、車前後面の正解データである。そして、データ生成部60は、生成した車前後面の正解データをオリジナル学習用データセットに加えて、一次推論学習用データセットを生成する。
 あるいは、データ生成部60は、LPの正解データとして、オリジナル学習用データセットに所定の学習済モデルを適用して、LPのBBを推論する。そして、データ生成部60は、車前後面の正解データとして、推論したLPのBBに対して高さ及び幅に所定の値を乗じて大きくしたBBを生成する。そして、データ生成部60は、生成したLP及び車前後面の正解データをオリジナル学習用データセットに加えて、一次推論学習用データセットを生成する。あるいは、データ生成部60は、正解データとしてオリジナル学習用データセットに所定の学習済モデルを適用してLPのBB及び車前後面のBBを推論し、推論したBBをオリジナル学習用データセットに加えて、一次推論学習用データセットを生成してもよい。
 あるいは、例えば、データ生成部60は、データ集約部30を用いて、オリジナル学習用データセットの正解データから集約データを生成する。そして、データ生成部60は、オリジナル学習用データセットに正解データと集約データとを加えて、二次推論学習用データセットを生成する。なお、データ生成部60は、オリジナル学習用データセットに代えて一次推論学習用データセットを用いて、二次推論学習用データセットを生成してもよい。又は、データ生成部60は、オリジナル学習用データセットに一次推論学習用データセットを加えたデータセットを用いて、二次推論学習用データセットを生成してもよい。
 なお、一次推論部20及び二次推論部40が同じ学習済モデルを用いる場合、データ生成部60は、一次推論学習用データセット及び二次推論学習用データセットとして、一つの学習用データセットを生成してもよい。あるいは、データ生成部60は、異なるオリジナル学習用データセットを用いて、一次推論学習用データセット及び二次推論学習用データセットを生成してもよい。
 そして、データ生成部60は、生成した一次推論学習用データセット及び二次推論学習用データセットをデータ保存部50に保存する。ただし、データ生成部60は、一次推論学習用データセット及び二次推論学習用データセットの少なくとも一方を図示しない外部の装置から取得してもよい。この場合、データ生成部60は、取得した一次推論学習用データセット又は二次推論学習用データセットをデータ保存部50に保存する。
 (6)データ保存部50
データ保存部50は、一次推論学習用データセット及び二次推論学習用データセットを保存する。さらに、データ保存部50は、オリジナル学習用データセットを保存してもよい。オリジナル学習用データセットの取得元は、任意である。例えば、オペレータが、予め、データ保存部50に、オリジナル学習用データセットを保存してもよい。
 情報処理装置1は、データ保存部50として、図示しない外部の記憶装置を用いてもよい。この場合、情報処理装置1は、物理的構成として、データ保存部50を含まなくてもよい。あるいは、情報処理装置1は、図示しない装置などにおいて生成された一次推論学習用データセット及び二次推論学習用データセットの少なくとも一方を取得して、データ保存部50に保存してもよい。一次推論学習用データセット及び二次推論学習用データセットの両方を取得する場合、情報処理装置1は、データ生成部60を含まなくてもよい。
 (7)モデル生成部70
モデル生成部70は、所定のモデルに対して、データ保存部50に保存されている一次推論学習用データセットを用いた機械学習を実行して、一次推論部20が用いる一次推論用学習済モデル、つまり第1学習済モデルを生成する。さらに、モデル生成部70は、所定のモデルに対して、データ保存部50に保存されている二次推論学習用データセットを用いた機械学習を実行して、二次推論部40が用いる二次推論用学習済モデル、つまり第2学習済モデルを生成する。なお、学習済モデルの取得に用いられるモデルの取得元は、任意である。例えば、オペレータが、予め、モデル保存部80にモデルを保存してもよい。あるいは、モデル生成部70は、学習済モデルの生成において、図示しない装置から学習済モデルの生成に用いるモデルを取得してもよい。
 モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、モデルの種類、ネットワーク構造、及び、サイズなどが同様のモデルを生成してもよいし、異なるモデルを生成してもよい。例えば、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、同じモデルを生成してもよい。つまり、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、一つのモデルを生成してもよい。例えば、一次推論部20及び二次推論部40が同じ学習済モデルを用いる場合、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、一つの学習済モデルを生成してもよい。あるいは、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、異なるモデルであるが、モデルの種類、ネットワーク構造、及び、サイズなどが同等であるモデルを生成してもよい。
 あるいは、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、モデルの種類、ネットワーク構造、及び、サイズなどの少なくとも一つが異なるモデルを生成してもよい。例えば、深層学習を用いて両方の学習済モデルを生成する場合、モデル生成部70は、一次推論用学習済モデル及び二次推論用学習済モデルとして、モデルの種類、ネットワーク構造、及び、サイズの少なくとも一つが異なるモデルを生成してもよい。例えば、モデル生成部70は、一次推論用学習済モデルとして、二次推論用学習済モデルに対して、小さくて軽量な学習済モデルを生成してもよい。ただし、これは、モデル生成部70が生成する学習済モデルを限定するものではない。
 モデル生成部70が用いる機械学習の手法は、任意である。例えば、モデル生成部70は、深層学習を用いて、一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方を生成してもよい。モデル生成部70は、一次推論用学習済モデルの生成に用いる機械学習の手法と、二次推論用学習済モデルの生成に用いる機械学習の手法として、同じ手法を用いてもよいし、異なる手法を用いてもよい。なお、第2実施形態の説明では、一例として、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、異なる学習済モデルを生成する。
 そして、モデル生成部70は、生成した一次推論用学習済モデル及び二次推論用学習済モデルを、モデル保存部80に保存する。ただし、モデル生成部70は、一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方を図示しない外部の装置から取得してもよい。この場合、モデル生成部70は、取得した一次推論用学習済モデル又は二次推論用学習済モデルをモデル保存部80に保存する。
 (8)モデル保存部80
モデル保存部80は、一次推論用学習済モデル及び二次推論用学習済モデルを保存する。モデル保存部80は、モデル生成部70が学習済モデルの生成に用いるモデルを保存してもよい。例えば、オペレータが、予め、モデル保存部80に、学習済モデルの生成に用いるモデルを保存してもよい。情報処理装置1は、モデル保存部80として、図示しない外部の記憶装置を用いてもよい。この場合、情報処理装置1は、物理的構成として、モデル保存部80を含まなくてもよい。あるいは、情報処理装置1は、図示しない装置などから一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方を取得して、取得したモデルをモデル保存部80に保存してもよい。一次推論用学習済モデル及び二次推論用学習済モデルの両方を取得する場合、情報処理装置1は、データ保存部50、データ生成部60、及び、モデル生成部70を含まなくてもよい。
 (9)物体推論部10
物体推論部10は、二次推論部40における二次推論の結果である集約データにおける対象物体と、データ集約部30が集約データの生成において生成した集約対応関係とを用いて、推論対象データにおける対象物体を推論する。例えば、集約対応関係としてBBの座標変換が保存されている場合、物体推論部10は、BBの推論位置として、その座標変換の逆変換を、二次推論の結果として推論されたBBの座標に適用して、推論対象データにおける対象物体のBBの位置を算出する。例えば、二次推論の結果として得られたBBの矩形が、集約データにおける矩形からはみ出している場合、物体推論部10は、そのBBを破棄してもよい。あるいは、例えば、二次推論の結果として得られたBBの矩形と集約データ上での矩形との積集合部分の面積を、二次推論の結果として得られたBBの矩形の面積で除した値が、所定の閾値未満の場合、物体推論部10は、そのBBを破棄してもよい。なお、上記の商が所定の閾値以上の場合、物体推論部10は、そのBBの矩形を上記の積集合部分に修正してもよい。
 (A)学習済モデルの生成の動作
図2は、第2実施形態にかかる情報処理装置1における学習済モデルの生成の動作の一例を示すフロー図である。情報処理装置1は、所定の条件を契機に、学習済モデルの生成を開始する。例えば、情報処理装置1は、オペレータからの指示を契機に、学習済モデルの生成を開始する。この場合、動作の開始において、情報処理装置1は、オペレータから学習済モデルの生成に必要なパラメタを取得してもよい。
 学習済モデルの生成に必要なパラメタは、任意である。例えば、データ保存部50が複数の学習用データセットを保存する場合、パラメタは、どの学習用データセットを使用するかを示す情報である。あるいは、パラメタは、モデル生成部70における機械学習の処理に係るパラメタでもよい。なお、情報処理装置1は、パラメタに加え、他の情報を取得してもよい。例えば、データ生成部60は、オペレータから、学習用データセットの少なくとも一部を取得してもよい。この場合、データ生成部60は、取得した学習用データセットを、データ保存部50に保存する。
 データ生成部60は、データ保存部50に保存されているオリジナル学習用データセットを用いて、一次推論学習用データセットを生成する(ステップS100)。例えば、データ生成部60は、オリジナル学習用データセットに含まれる正解データを用いて、一次推論学習用データセットを生成する。そして、データ生成部60は、一次推論学習用データセットをデータ保存部50に保存する。モデル生成部70は、一次推論学習用データセットを用いて所定のモデルにおける機械学習を実行し、一次推論用学習済モデルを生成する(ステップS101)。そして、モデル生成部70は、一次推論用学習済モデルをモデル保存部80に保存部する。
 データ生成部60は、データ保存部50に保存されているオリジナル学習用データセットを用いて、二次推論学習用データセットを生成する(ステップS102)。例えば、データ生成部60は、オリジナル学習用データセットの正解データを用いて集約データを生成し、正解データと集約データとを含む二次推論学習用データセットを生成してもよい。そして、データ生成部60は、生成した二次推論学習用データセットをデータ保存部50に保存する。モデル生成部70は、二次推論学習用データセットを用いて所定のモデルにおける機械学習を実行し、二次推論用学習済モデルを生成する(ステップS103)。そして、モデル生成部70は、二次推論用学習済モデルを、モデル保存部80に保存する。なお、学習済モデルの生成後、情報処理装置1は、実行結果をオペレータに通知してもよい。
 (B)推論の動作
図3は、第2実施形態にかかる情報処理装置1における対象物体の推論の動作の一例を示すフロー図である。なお、推論の動作の開始前には、モデル保存部80は、学習済モデルを保存している。ただし、モデル保存部80が学習済モデルを保存していない場合、情報処理装置1は、「(A)学習済モデルの生成」の動作を実行して学習済モデルを生成してから、推論の動作を開始してもよい。
 情報処理装置1は、所定の条件を契機に、対象物体の推論を開始する。例えば、情報処理装置1は、オペレータからの指示を契機に、対象物体の推論を開始する。情報処理装置1は、対象物体の推論において、オペレータからパラメタを取得してもよい。なお、パラメタは、以下に限定されないが、例えば、使用する学習済モデルの指定である。ただし、情報処理装置1は、予め与えられたパラメタを使用してもよい。あるいは、情報処理装置1は、装置起動後、自動的に対象物体の推論を開始してもよい。あるいは、情報処理装置1は、データ取得部90が一つ又は所定の数量の推論対象データを取得すると、以下で説明する動作を実行してもよい。ただし、情報処理装置1は、データ取得部90における推論対象データの取得とは非同期に推論の動作を開始してもよい。なお、データ取得部90は、予め、推論対象データを取得して、図示しない保存部に保存してもよい。この場合、一次推論部20は、その保存部から推論対象データを取得してもよい。
 一次推論部20は、推論対象データを用いて、一次推論を実行する(ステップS114)。一次推論部20は、所定の数量の推論対象データをまとめて、一次推論を実行してもよい。以下、一次推論部20がまとめて一次推論の実行する所定の数量の推論対象データを「推論対象データ群」と呼ぶ。例えば、推論対象データが対象物体を含む画像の場合、一次推論部20は、一次推論として、所定の数量の推論対象データ(推論対象データ群)の画像から「BB、クラス、及び、confidence」の組の集合を推論する。さらに、一次推論部20は、推論対象データ群における、サブ対象物体を推論してもよい。
 一次推論部20は、推論対象データの数量とは異なる条件を用いて、まとめて推論する推論対象データ群を決めてもよい。例えば、一次推論部20は、次の条件の少なくとも一つを用いて、まとめて推論する推論対象データ群を決めてもよい。
(a)一次推論において推論したBBの数が所定の数に達した場合、
(b)一次推論において推論したBBのサイズの合計が所定の値に達した場合、
(c)集約データの数を推論し、推論した集約データの数が所定の値に達した場合、
(d)情報処理装置1が取得してから所定の時間が経過した推論対象データ。
ただし、一次推論部20は、取得済みの全ての推論対象データに対して、一次推論を実行してもよい。推論対象データ群に対して一次推論を実行する場合、一次推論部20は、推論対象データ群に含まれる少なくとも一部の推論対象データに対する一次推論を並列処理してもよいし、逐次処理してもよいし、並列処理と逐次処理とを組み合わせて処理してもよい。
 図5は、一次推論の結果の一例を示す図である。図5において、二つの矩形のうち、内側の小さい矩形は、一次推論の結果として得られた対象物体であるLPのBBである。外側の大きな矩形は、一次推論の結果として得られたサブ対象物体である車前後面のBBである。なお、図5は、クラス及びconfidenceの表示を省略している。図3を参照した説明に戻る。
 データ集約部30は、一部又は全ての一次推論の結果に対し後処理を実行する(ステップS115)。例えば、データ集約部30は、BBの属性、及び、対象物体とサブ対象物体の位置関係の情報を用いて、BBのフィルタリング及び調整を実行する。図4は、データ集約部30における後処理の一例を示すフロー図である。より詳細には、図4は、一次推論の結果としてBBが推論された場合におけるデータ集約部30における後処理の動作の一例である。以下、図4を参照して、対象物体がLPであり、サブ対象物体がLPを含む車前後面である場合の動作を説明する。
 データ集約部30は、BBが対象物体のBBであるか否かを判定する(ステップS131)。なお、BBが対象物体のBBでない場合とは、BBがサブ対象物体のBBの場合である。BBが対象物体のBBでない場合(ステップS131でNo)、データ集約部30は、サブ対象物体が、一次推論の結果に含まれる対象物体と所定の関係にあるか否かを判定する(ステップS132)。例えば、データ集約部30は、サブ対象物体のBBが、一次推論の結果に含まれる対象物体のBBを含むか否かを判定する。対象物体のBBの場合(ステップS131でYes)、又は、サブ対象物体が所定の関係にない場合(ステップS132でNo)、データ集約部30は、BBが集約データとして用いるのに適切な形状か否かを判定する(ステップS133)。例えば、データ集約部30は、BBのサイズ及びアスペクト比が所定の閾値の範囲内か否かを判定する。
 BBが適切な形状の場合(ステップS133でYes)、データ集約部30は、BBを、集約データの生成に適切な形状に修正する(ステップS134)。例えば、データ集約部30は、BBのサイズ及びアスペクト比を集約データの生成に適切な値とする。例えば、データ集約部30は、BBの高さ及び幅に所定の値を乗じてBBのサイズを変更してもよい。あるいは、データ集約部30は、BBのアスペクト比を所定の範囲となるように、BBの高さ及び幅を修正してもよい。サブ対象物体が所定の関係の場合(ステップS132でYes)、又は、BBが適切な形状でない場合(ステップS133でNO)、データ集約部30は、そのBBを破棄する(ステップS135)。つまり、データ集約部30は、そのBBを集約データに含めない。このように、データ集約部30は、一次推論の結果に対して、後処理を実行する。図3を参照した説明に戻る。
 データ集約部30は、後処理後の全ての一次推論の結果を用いて、集約データを生成する(ステップS116)。例えば、推論対象データが画像の場合、データ集約部30は、一次推論の結果として推論された対象物体の領域及びサブ対象物体の領域の画像を集めた画像を生成する。なお、データ集約部30は、一次推論の結果において、重複している領域、及び、近接している領域の少なくとも一部を一つにまとめた領域を用いて、集約データを生成してもよい。
 図6は、集約データの一例を示す図である。なお、図6は、クラス及びconfidenceの表示を省略している。図6の集約データは、図5のデータ及び図5に対して時間的に前後する4つのデータの計5つデータを用いて生成された集約データの一例である。さらに、図6の集約データは、それら5つのデータに対する一次推論において、いずれのデータにおいても、LPが検出された場合の例である。なお、いずれかのデータにおいてLPが検出されず、車前後面が検出された場合、そのデータに対応する画像は、LPではなく車前後面の画像となる。図6の例では、データ集約部30は、対象物体の一部が欠ける可能性を低くするため、抽出する画像の領域を、一次推論の結果のBBの領域より大きくしている。例えば、各LPの画像は、LPのBBより大きな領域の画像となっている。なお、図6に示した例は、一次推論の結果の画像の面積の合計が、集約データの画像の面積より少ない。そのため、図6の集約データの画像は、余剰領域を含む。図6の右側の黒い領域が、余剰領域である。例えば、さらに一次推論の結果を集約する場合、データ集約部30は、集約する一次推論の結果の少なくとも一部を、余剰領域に追加してもよい。追加する一次推論の結果が余剰領域に入りきらない場合、データ集約部30は、新しい集約データを生成すればよい。なお、図5におけるサブ対象物体は、内部に一次推論の結果に含まれる対象物体を含む。つまり、図5のサブ対象物体は、対象物体と所定の位置関係にあるサブ対象物体である。そのため、図5のサブ対象物体のBBは、図6の集約データに含まれていない。図3を参照した説明に戻る。
 さらに、データ集約部30は、集約データの生成において、推論対象データに含まれる対象物体及びサブ対象物体のデータ領域の位置と、集約データにおける対象物体及びサブ対象物体のデータ領域の位置との対応関係である集約対応関係を生成する。二次推論部40は、集約データを用いて、二次推論を実行する(ステップS118)。図7は、二次推論の結果の一例を示す図である。図7における矩形が、二次推論部40が推論した対象物体のLPのBBである。なお、図7は、クラス及びconfidenceの表示を省略している。図3を参照した説明に戻る。
 物体推論部10は、二次推論の結果と、集約対応関係とを用いて、推論対象データにおける対象物体を推論する(ステップS119)。図8は、推論対象データにおける対象物体の推論の一例を示す図である。図5と比較すると、図8におけるBBの位置は、LPに対して適切な位置となっている。なお、物体推論部10は、二次推論の結果に含まれる対象物体のサイズが、集約データに集約されたデータのサイズより大きい場合、その対象物体を無視してもよい。図3を参照した説明に戻る。
 情報処理装置1は、所定の条件を満足するまで、上記の動作を繰り返す。例えば、情報処理装置1は、オペレータから終了の指示を取得すると、動作を終了してもよい。あるいは、情報処理装置1は、処理対象の推論対象データがなくなるまで、処理した推論対象データの数量が所定の値となるまで、所定の時間の経過まで、又は、繰り返し数が所定の数となるまで、上記の動作を繰り返してもよい。上記の動作に基づいて、情報処理装置1は、推論対象データにおける対象物体を推論する。
 ここまで説明した通り、集約データは、推論対象データにおける対象物体の領域を集めたデータであり、推論対象データより数量が少ないデータである。そのため、二次推論の負荷は、推論対象データを全て用いる場合の負荷より低い。また、一次推論は、ある程度の精度で対象物体を推論できればよい。つまり、情報処理装置1は、一次推論として、二次推論より負荷の低い推論を用いることができる。その結果、情報処理装置1は、推論におけるスループットを向上できる。
 具体的な例を用いて、情報処理装置1における推論のスループットの向上について、説明する。情報処理装置1と比較する推論として、推論対象データに二次推論用学習済モデルと同等のモデルを適用する推論を用いる。以下、同等のモデルを適用する推論を、「関連推論」と呼ぶ。なお、以下の説明では、前提として、次のことを仮定する。
(1)推論対象データは、画像である。
(2)関連推論の性能及び規模は、二次推論部40における二次推論の性能及び規模と同じである。なお、関連推論及び二次推論が一枚の画像の推論に必要な時間は、単位時間である。なお、以下、単位時間は「1」とする。
(3)一次推論部20における一次推論が一枚の画像の推論に必要な時間は、関連推論及び二次推論の10分の1(0.1)である。
(4)データ集約部30は、平均的に、3枚の推論対象の画像から1枚の集約した画像を生成する。つまり、推論対象の画像の数と、集約結果の画像の数との比は、3:1である。
(5)画像の総数は、Nである。
(6)推論以外の処理は、推論に対して処理時間が小さいため、無視する。
 この場合、関連推論の推論時間は、「N×1=N」である。情報処理装置1における一次推論の推論時間は、「N×0.1=0.1N」である。二次推論の推論時間は、「N/3×1=N/3」である。つまり、情報処理装置1の推論時間は、「約0.43N(=0.1N+N/3)」である。このように、情報処理装置1は、関連推論より、短い時間で推論できる。その結果、情報処理装置1は、関連推論より、スループットを向上できる。また、情報処理装置1における最終的な推論である二次推論に用いる二次推論用学習済モデルの規模は、関連推論に用いるモデルと同等である。そのため、情報処理装置1の推論の精度は、関連推論と同等の精度となる。
 なお、軽量なモデルは、重量なモデルに対して、高速である一方精度が低くなる傾向にある。例えば、上記の例では、一次推論部20における一次推論の精度は、二次推論部40における二次推論より精度が低くなる傾向にある。そこで、一次推論部20は、第1対象物体と所定の位置関係にある第2対象物体を推論してもよい。この場合、データ集約部30は、第1対象物体と、第2対象物体とを用いて、集約データと対応関係とを生成してもよい。上記の動作を用いて、情報処理装置1は、情報処理装置1における推論の対象物体だけではなく、対象物体と所定の関係にあるサブ対象物体を用いた推論を実行できる。そのため、情報処理装置1は、推論の精度を向上できる。例えば、情報処理装置1は、対象物体の見落としを抑制できる。
 さらに、データ集約部30は、一次推論の結果に含まれる第2対象物体において、所定の位置関係にある第1対象物体が一次推論の結果に含まれない第2対象物体を用いてもよい。上記の動作を用いて、情報処理装置1は、集約データのサイズを削減できる。その結果、情報処理装置1は、スループットを向上できる。さらに、データ集約部30は、集約データの生成前に、少なくとも一次推論の結果に含まれる第1対象物体の少なくとも一部に対して、後処理など所定の処理を実行してもよい。上記動作を用いて、情報処理装置1は、より適切な集約データを生成できる。その結果、情報処理装置1は、推論の精度を向上する。例えば、情報処理装置1は、対象物体の見落としを抑制する。なお、サブ対象物体を用いる場合、情報処理装置1は、集約データの生成前に、一次推論の結果に含まれる第2対象物体の少なくとも一部に対して所定の処理を実行してもよい。
 データ集約部30は、対象物体のBB及びサブ対象物体のBBの高さ及び幅の少なくともいずれか一つに所定の値を加える又は所定の値を乗じて、BBのサイズを修正した。しかし、第2実施形態は、これに限定されるものではない。他の例として、データ集約部30は、対象物体のBB及びサブ対象物体のBBの高さ及び幅の少なくともいずれか一つに所定の値を乗じた後、所定の値を加えることで、BBのサイズを修正してもよい。あるいは、データ集約部30は、対象物体のBB及びサブ対象物体のBBの高さ及び幅の少なくともいずれか一つに、所定の線形又は非線形の変換を適用して、BBのサイズを修正してもよい。この場合の変換に係るパラメタは、例えば、データ集約部30に予め与えられておいてもよい。あるいは、データ集約部30は、BB及び推論対象データの属性、又は、他の情報に基づいて、変換方法、及び、変換に係るパラメタを切り替えてもよい。他の情報は、以下に限らないが、例えば、情報処理装置1の負荷である。
 ここまでの説明では、一次推論部20及び二次推論部40が一つの場合の例を用いて説明した。しかし、情報処理装置1の構成は、これに限定されない。例えば、情報処理装置1は、複数の一次推論部20を含んでもよい。この場合、複数の一次推論部20は、それぞれ、異なるパラメタを用いて推論してもよい。パラメタは、例えば、学習済みモデル、データのサイズ、又は、認識対象クラスである。さらに、複数の一次推論部20の全てが、同じ推論対象データを用いて推論してもよい。あるいは、少なくとも一部の一次推論部20が、他の一次推論部20とは異なる推論対象データを用いて推論してもよい。
 あるいは、例えば、情報処理装置1は、2つ以上の二次推論部40を含んでもよい。二次推論部40が複数の場合、少なくとも一部の二次推論部40は、他の二次推論部40とは異なるパラメタを用いて推論してもよい。この場合のパラメタは、例えば、学習済みモデル、又は、データのサイズである。二次推論部40が複数の場合、データ集約部30は、それぞれの二次推論部40に対応した、集約データを生成してもよい。複数の二次推論部40それぞれに対応した集約データを生成する場合、データ集約部30は、二次推論部40それぞれに対して異なるパラメタを用いて集約データを生成してもよい。
 あるいは、データ集約部30は、一次推論の結果を分割して集約データを生成して、又は、生成した集約データを分割して、複数の二次推論部40に割り振ってもよい。複数の二次推論部40に振り分ける場合、データ集約部30は、例えば、次に示す一次推論の結果におけるBBの属性又はこれらの属性の組み合わせを用いて、集約データを生成又は分割してもよい。なお、データ集約部30が複数の二次推論部40に集約データを振り分ける場合とは、データ集約部30が複数の二次推論部40それぞれに対応した集約データを生成する場合、及び、データ集約部30が生成した集約データを分割する場合とどちらかである。
(1)BBのサイズ又はアスペクト比、
(2)BBのクラス、
(3)BBのconfidence、
(4)BBの一次推論の結果における位置、
(5)BBが対象物体のBBの場合、対応するサブ対象物体が検出されたか否か。
 データ集約部30は、一次推論の結果の一部を、生成する複数の集約データ、又は、分割後の複数の集約データに含めてもよい。データ集約部30は、一次推論の結果を複数の集約データに含めるか否かの判定として、上述した属性又はその組み合わせを用いてもよい。なお、一次推論の結果を複数の集約データに含める場合、複数の二次推論部40が、同じ対象物体を推論する可能性がある。この場合、物体推論部10が、二次推論の結果と集約対応関係とを用いて対象物体の重複を判定し、判定結果を用いて重複に対応した動作を実行すればよい。例えば、物体推論部10は、重複を用いて推論の結果を修正してもよい。例えば、物体推論部10は、対象物体のBBとして、重複して推論された対象物体に対する複数のBBの中で、最もconfidenceが高いBBを選択してもよい。あるいは、物体推論部10は、対象物体のBBの矩形情報として、複数の推論の結果におけるBBの矩形情報を平均化してもよい。なお、物体推論部10は、平均化として、confidenceに基づいた加重平均を用いてもよい。
 推論結果の精度は、入力データに対する推論難易度に依存する。推論難易度が低いデータであれば、推論の精度が高くない学習済みモデルであっても高い精度で推論できる場合が多くなる。なお、推論の精度が高くない学習済みモデルとは、例えば、軽量、高速、又は、処理負荷が低いモデルである。一方、推論難易度が高いデータの場合、推論の精度が高くない学習済モデルを用いると、高い推論精度の実現が難しい。十分な推論精度を達成するためには、推論の精度が高い推論モデルを用いる必要がある。推論の精度が高い推論モデルとは、処理負荷が高いモデルである。そのため、推論難易度のような推論対象データの特性に対応して推論に用いる学習済モデルを使い分けることで、推論速度と推論精度との両立の実現が期待される。同様のことは、例えば、畳み込みニューラルネットワーク(Convolutional Neural Network(CNN))のサイズのような推論パラメタにも言える。
 そこで、情報処理装置1は、推論難易度などの特性に基づいて推論対象データ又は一次推論の結果を複数のグループに分類し、分類したグループそれぞれを二次推論してもよい。以下、このような場合について説明する。なお、以下の説明では、実行するタスクとして、keypointを用いる姿勢推定タスクを用いる。ただし、これは、本実施形態を限定するものではない。例えば、本実施形態は、以下の説明において、姿勢推定タスクに替えて物体検出タスクなど他のタスクに用いてもよい。また、分類に用いる特性は、推論難易度に限らず、他の特性でもよい。
 図14は、グループごとに二次推論を実行する情報処理装置1Dの構成の一例を示すブロック図である。情報処理装置1Dは、物体推論部10Dと、一次推論部20Dと、データ集約部30Dと、複数の二次推論部40Dと、データ保存部50と、データ生成部60と、モデル生成部70と、モデル保存部80と、データ取得部90とを含む。なお、データ保存部50、データ生成部60、モデル生成部70、モデル保存部80及びデータ取得部90は、二次推論部40Dが複数となる点を除き情報処理装置1と同様のため、詳細な説明を省略する。
 物体推論部10Dは、物体推論部10と同様に、二次推論部40Dにおける二次推論の結果と、データ集約部30Dが集約データの生成において生成した集約対応関係とを用いて、推論対象データにおける対象物体の姿勢を推論する。より詳細には、今の場合、物体推論部10Dは、二次推論部40Dにおける二次推論の結果である姿勢推定タスクのkeypoint抽出処理の結果に基づいて、対象物体の姿勢を推論する。例えば、集約対応関係としてBBの座標変換を取得した場合、物体推論部10Dは、その座標変換の逆変換を、二次推論の結果として推論された各keypointの座標に適用して、推論対象データにおけるkeypointの座標を算出する。
 一次推論部20Dは、一次推論部20と同様に、一次推論を実行する。ただし、今の場合、一例として、一次推論部20Dは、姿勢検出タスクとして、keypoint抽出処理を実行する。例えば、一次推論部20Dは、推論結果として、推論対象データに含まれる各keypointの座標とクラスとconfidenceとを出力する。クラスは、例えば、目又は鼻であるが、これに限らない。さらに、一次推論部20Dは、姿勢検出タスクとして、姿勢を生成する処理を実行してもよい。
 二次推論部40Dは、二次推論部40と同様に、二次推論を実行する。例えば、今の場合、二次推論部40Dは、一次推論部20Dと同様に、姿勢検出タスクとして、keypoint抽出処理を実行する。二次推論部40Dは、例えば、推論結果として、推論対象データに含まれる各keypointの座標とクラスとconfidenceとを出力する。クラスは、例えば、目又は鼻であるが、これに限らない。さらに、二次推論部40Dは、姿勢検出タスクとして、姿勢を生成する処理を実行してもよい。ただし、二次推論部40Dは、それぞれ、互いに異なるグループの集約データを対象として二次推論を実行する。
 二次推論部40Dは、同じ学習済モデルを用いてもよいし、互いに異なる学習済モデルを用いてもよい。推論のパラメタに関しても、同様である。なお、以下の説明では、情報処理装置1Dは、一例として、2つの二次推論部40Dを含むとする。2つの二次推論部40Dを区別する場合、二次推論部40D-1及び二次推論部40D-2と呼ぶ。また、説明の便宜のため、以下の説明では、二次推論部40D-1は、二次推論部40D-2が用いるモデルより、精度が高いモデルを用いる。言い換えると、二次推論部40D-2は、二次推論部40D-1より精度が低いが高速なモデルを用いる。なお、二次推論部40Dは、それぞれが互いに異なるグループの集約データを用いる。そのため、情報処理装置1Dは、データ集約部30Dが生成する集約データの数、つまり、グループの数より多ければ、任意の数の二次推論部40Dを含んでもよい。例えば、二次推論部40Dの数がグループの数より多い場合、一部の二次推論部40Dは、同じ集約データに対して異なる学習済モデルを用いて二次推論を実行してもよい。
 データ集約部30Dは、第1対象物体の属性に基づいて、一次推論において推論された第1対象物体をいずれかのグループに分類する。そして、データ集約部30Dは、グループごとに推論対象データより数量が少ないデータである集約データを生成する。そして、データ集約部30Dは、各集約データに対して、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係を生成する。
 例えば、データ集約部30Dは、第1対象物体の属性として、一次推論のkeypoint抽出処理の結果に基づいてBBを推定する。データ集約部30DにおけるBBの推定の一例を説明する。データ集約部30Dは、各keypointについて、一次推論の結果として得られた座標を1×1の矩形とみなし、keypointに対応するBBを推定する。ただし、データ集約部30Dは、これとは異なるBBを推定してもよい。さらに、データ集約部30Dは、重複している、又は、近接するBBをまとめて一つのBBにしてもよい。データ集約部30Dは、近接しているか否かの判定として、例えば、所定の閾値とBB間の距離との比較を用いてもよい。データ集約部30Dは、これらの処理を一次推論の結果のクラスごとに行ってもよいし、複数のクラスにまたがって行ってもよい。データ集約部30Dは、クラスごとに、判定の用いる閾値として異なる閾値を用いてもよい。例えば、データ集約部30Dは、一次推論の結果又はBBの属性に対応して異なる閾値を用いてもよい。なお、BBの属性は、例えば、BBの大きさ、BBの位置、BBに含まれるkeypointの数、又は、BBのクラスである。
 そして、データ集約部30Dは、推定したBBを用いて一次推論の結果をグループに分類し、グループごとに「後処理」と「集約」を含む「データ集約」を実行する。データ集約の動作は、データ集約部30と同様である。例えば、今の場合、データ集約部30Dは、推定したBBの属性の情報を用いて、一次推論の結果を二次推論部40D-1向けと二次推論部40D-2向けの2つのグループに分類する。なお、データ集約部30Dは、分類を、後処理の前で行ってもよいし、後処理の途中で行ってもよいし、後処理の後に行ってもよい。つまり、データ集約部30Dは、後処理と分類とを任意に順番に実行してもよいし、並列に実行してもよい。そして、データ集約部30Dは、同じグループに分類した一次推論の結果を対象として集約データを生成する。データ集約部30Dは、グループに分類する対象物として、すべてのクラスの対象物体を分類してもよいし、一部のクラスの対象物体と別のクラスの対象物体のサブ対象物体とを分類してもよい。
 例えば、データ集約部30Dは、次のように動作してもよい。二次推論部40D-1のモデルの処理の精度は、二次推論部40D-2より高い。そこで、データ集約部30Dは、各BBの二次推論での推論難易度を推定し、その結果に基づいてグループに分類してもよい。例えば、データ集約部30Dは、推論難易度が高いBBを二次推論部40D-1のグループに分類し、推論難易度が低いBBを二次推論部40D-2のグループに分類する。ただし、データ集約部30Dの分類は、これに限らない。例えば、データ集約部30Dは、BBのサイズに基づいて分類してもよいし、BBのconfidenceに基づいて分類してもよい。データ集約部30Dは、例えば、サイズが小さいBB又はconfidenceが低いBBを二次推論部40D-1のグループに分類し、サイズが大きいBB又はconfidenceが高いBBを二次推論部40D-2のグループに分類してもよい。ただし、データ集約部30Dは、上記のようなルールベースの分類に限らず、深層学習を含む機械学習をベースとした分類を実行してもよい。
 次に、データ集約部30Dにおける、二次推論での推論難易度の推定の一例を説明する。データ集約部30Dは、例えば、直立姿勢のみを含むBBを推論難易度が低いと推定し、直立以外の姿勢を含む可能性があるBBを推論難易度が高いと推定してもよい。推定の判定として、例えば、データ集約部30Dは、BBの矩形、又は、BBに含まれるkeypoint群の外接矩形のアスペクト比が所定の範囲内の場合に、直立姿勢であると推定してもよい。さらに、データ集約部30Dは、BB内の姿勢の数を推定し、姿勢が一つの場合に、アスペクト比に基づく推定を行ってもよい。この場合、データ集約部30Dは、例えば、クラス毎に集計したBB内に含まれるkeypointの数の最大値を姿勢の数の推定値としてもよい。あるいは、データ集約部30Dは、keypointの最大値及び最小値を除外した値、又は、平均値などの統計処理を施した値を推定値としてもよい。データ集約部30Dは、クラス間に優先度付けを行って姿勢数を推定してもよい。データ集約部30Dは、さらに、keypointのconfidenceを用いて姿勢の数を推定してもよい。あるいは、物体推論部10Dが姿勢推定タスクの姿勢生成処理を実行する場合、データ集約部30Dは、その姿勢生成処理の結果を取得して、その結果を用いて姿勢の数を推定してもよい。
 あるいは、データ集約部30Dは、BBのサイズ又は面積が所定の値よりも大きい場合に、推論難易度が低いと推定してもよい。あるいは、データ集約部30Dは、BB内の姿勢数を推定し、推定姿勢数又は推定姿勢数の二乗でBBのサイズを除した値が所定の値よりも大きい場合に、推論難易度が低いと推定してもよい。この推定を用いる場合、データ集約部30Dは、含む姿勢数は少ないが、サイズが大きいBBの推論難易度を低いと推定することを回避できる。
 集約時の対象物体及びサブ対象物体のサイズを変更において、データ集約部30Dは、サイズ変更を適用するか否か、サイズ変更の方式、及び、サイズ変更のパラメタの少なくとも一つを、分類の結果及び分類処理の過程で生成した情報を用いて決定してもよい。なお、分類処理の過程で生成した情報とは、例えば、二次推論での推論難易度、直立姿勢か否か、推定姿勢数、又は、BBの高さ及び幅である。
 次に、図面を用いて、情報処理装置1Dの動作を説明する。図15は、図14の情報処理装置1Dにおける対象物体の推論の動作の一例を示すフロー図である。一次推論部20Dは、図3のステップS114と同様に、推論対象データを用いて一次推論を実行する(ステップS114D)。ただし、今の場合、一次推論部20Dは、姿勢推定タスクの推論処理を実行する。データ集約部30Dは、図3のステップS115と同様に、一部又は全ての一次推論の結果に対し後処理を実行する(ステップS115D)。ただし、今の場合、データ集約部30Dは、ステップS115の動作に加え、一次推論の結果からBBを推定する。データ集約部30Dは、後処理後の一次推論の結果の分類を行う(ステップS401D)。データ集約部30Dは、例えば、後処理後の一次推論の結果について二次推論での推論難易度を推定し、推論難易度に基づいて後処理後の一次推論の結果を分類する。例えば、データ集約部30Dは、推論難易度が高い一次推論の結果を二次推論部40D-1向けのグループに分類し、推論難易度が低い一次推論の結果を二次推論部40D-2向けのグループに分類する。データ集約部30Dは、後処理の前又は途中で分類を実行してもよい。
 そして、データ集約部30Dは、図3のステップS116と同様に、後処理後の全ての一次推論の結果を用いて、集約データを生成する(ステップS116D)。ただし、データ集約部30Dは、分類したグループごとに集約データを生成する。例えば、データ集約部30Dは、ステップS401Dの分類結果に基づき、二次推論部40D-1向けの集約データと、二次推論部40D-2向けの集約データとを生成する。二次推論部40D-1及び二次推論部40D-2は、それぞれ、図3のステップS118と同様に、集約データを用いて、二次推論を実行する(ステップS118D)。今の場合、二次推論部40D-1及び二次推論部40D-2は、互いに異なるグループの集約データを用いた姿勢推定タスクの推論処理を行う。そして、物体推論部10Dは、図3のステップS119と同様に、二次推論の結果と、集約対応関係とを用いて、推論対象データにおける対象物体を推論する(ステップS119D)。ただし、今の場合、物体推論部10Dは、二次推論部40D-1及び二次推論部40D-2の推論結果を用いて、姿勢推定タスクを実行する。
 上記までの説明のように、情報処理装置1Dは、物体推論部10Dと、一次推論部20Dと、データ集約部30Dと、複数の二次推論部40Dとを含む。一次推論部20Dは、一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、第1対象物体を推論する。データ集約部30Dは、一次推論において推論された第1対象物体を、第1対象物体の属性に基づいていずれかのグループに分類する。そして、データ集約部30Dは、グループごとに推論対象データより数量が少ないデータである集約データを生成する。さらに、データ集約部30Dは、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係である集約対応関係を生成する。二次推論部40Dは、二次推論として、互いに異なるグループの集約データを第2学習済モデルに適用して第1対象物体を推論する。物体推論部10Dは、二次推論の結果における第1対象物体と、対応関係である集約対応関係とを用いて、推論対象データにおける第1対象物体を推論する。
 このように、情報処理装置1Dは、複数の二次推論部40Dを含む。そして、データ集約部30Dは、二次推論における推論難易度のような第1対象物体の属性に基づいて、一次推論の結果をグループに分類する。そして、データ集約部30Dは、グループごとに集約データを生成する。そして、複数の二次推論部40Dは、それぞれがグループに対した集約データを用いて二次推論を実行する。そのため、情報処理装置1Dは、例えば、推論難易度が低いグループについては、二次推論として精度が高くないが軽量で高速な学習済モデル又は推論パラメタを用いる二次推論部40Dを用いて、精度を維持しつつ推論速度を向上させることができる。一方、情報処理装置1Dは、推論難易度が高いグループについては、精度が高い学習済モデル又は推論パラメタを用いる二次推論部40Dを用いて、精度の劣化を回避した推論を実行できる。このように、情報処理装置1Dは、精度を維持しつつ、対象物体の推論のスループットを向上させることができる。このように、二次推論部40Dは、互いに異なる学習済モデル、又は、互いに異なる推論パラメタを用いてもよい。また、データ集約部30Dは、二次推論部40Dそれぞれにおける推論難易度を推定し、推論難易度に基づいて第1対象物体をいずれかのグループに分類してもよい。
 [バリエーション]
ここまでの説明では、一次推論及び二次推論として、姿勢推定タスクの推論を用いる例を示した。しかし、本実施形態は、姿勢推定タスクに限定されず、例えば、物体検出タスクを用いてもよい。また、上記の説明では、データ集約部30Dが推論難易度など分類に用いる情報を生成しているが、本実施形態は、これに限定されない。例えば、一次推論部20Dが、一次推論の結果に加え、推論難易度を判定して、データ集約部30Dに出力してもよい。つまり、一次推論部20Dは、二次推論部40Dそれぞれにおける推論難易度を推論してもよい。例えば、一次推論部20Dは、一次推論の学習済モデルにおいて、姿勢推定タスクにおける各keypoint、又は、物体検出タスクにおけるBB毎に、推論難易度を推論してもよい。この場合、一次推論部20Dは、一次推論の結果として出力するクラスとして、推論難易度の対応したクラスを用いてもよい。
 また、データ集約部30Dは、少なくとも一部の一次推論の結果を複数のグループに分類してもよい。例えば、データ集約部30Dは、推論難易度が非常に高い一次推論の結果を複数の集約データに含めてもよい。この場合、少なくとも一部の複数の二次推論部40Dは、複数の集約データそれぞれに含まれた同一の対象物体を推定する。そして、物体推論部10Dは、複数の二次推論部40Dの推論結果を統合して対象物体を推論する。このような動作を用いて、情報処理装置1Dは、対象物体の認識精度を改善できる。ただし、この場合、一つの物体に関して、複数の推論結果が得られる可能性がある。そこで、物体推論部10Dは、例えば、非最大抑制法(Non-Maximum Suppression(NMS))のような技術を用い、重複する推論結果を修正してもよい。
 [ハードウェア構成]
次に、情報処理装置1及び1Dのハードウェアについて、情報処理装置1Dを用いて説明する。上記の説明では、物体推論部10D、一次推論部20Dと、データ集約部30Dと、二次推論部40Dと、データ保存部50と、データ生成部60と、モデル生成部70と、モデル保存部80と、データ取得部90とが一つの装置に含まれる例を用いて説明した。しかし、第2実施形態は、これに限定されない。例えば、情報処理装置1Dは、各構成に相当する機能を備えた装置を、所定のネットワークを介して接続して、構成されてもよい。例えば、情報処理装置1Dは、クラウドコンピューティングを用いて実現されてもよい。あるいは、情報処理装置1Dの各構成部は、ハードウェア回路で構成されてもよい。あるいは、情報処理装置1Dにおいて、複数の構成部が、1つのハードウェアで構成されてもよい。
 あるいは、情報処理装置1Dは、CPUと、読み取り専用メモリ(Read Only Memory(ROM))と、ランダム・アクセス・メモリ(Random Access Memory(RAM))とを含むコンピュータ装置として実現されてもよい。情報処理装置1Dは、上記構成に加え、さらに、ネットワークインターフェース回路(Network Interface Circuit(NIC))を含むコンピュータ装置として実現されてもよい。あるいは、情報処理装置1Dは、さらに、学習及び推論の一部又は全ての演算を実行する演算ユニット(Arithmetic Logical Unit(ALU))を含むコンピュータ装置として実現されてもよい。図9は、情報処理装置1及び1Dのハードウェア構成の一例であるコンピュータ装置600の構成を示すブロック図である。図9のコンピュータ装置600は、CPU610と、ALU611と、ROM620と、RAM630と、記憶装置640と、NIC650とを含み、コンピュータ装置を構成している。
 CPU610は、ROM620及び記憶装置640の少なくとも一方からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、ALU611と、RAM630と、記憶装置640と、NIC650とを制御する。そして、CPU610は、物体推論部10Dと、一次推論部20Dと、データ集約部30Dと、二次推論部40Dと、データ保存部50と、データ生成部60と、モデル生成部70と、モデル保存部80と、データ取得部90としての各機能を実現する。
 CPU610は、各機能を実現する際に、RAM630又は記憶装置640を、プログラムの一時記憶媒体として使用してもよい。また、CPU610は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体690が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでもよい。あるいは、CPU610は、NIC650を介して、図示しない外部の装置からプログラムを受け取り、RAM630又は記憶装置640に保存して、保存したプログラムを基に動作してもよい。
 ALU611は、所定の演算処理、及び、CPU610における所定の処理の一部を担当する。例えば、ALU611は、CPU610に制御されて、学習及び推論の一部又は全ての演算を実行する。ALU611の構成は任意である。例えば、ALU611は、グラフィックス・プロセッシング・ユニット(Graphics Processing Unit(GPU))、又は、フィールド・プログラマブル・ゲート・アレイ(Field programmable Gate Array(FPGA))でもよい。あるいは、ALU611は、例えば、特定用途向け集積回路(Application Specific Integrated Circuit(ASIC))でもよい。なお、ALU611における演算に必要な情報(データ、プログラム、及び、回路情報等)は、予め、ROM620、RAM630、又は、記憶装置640に保存されている。
 ROM620は、CPU610が実行するプログラム及び固定的なデータを記憶する。ROM620は、例えば、P-ROM(Programmable-ROM)又はフラッシュROMである。RAM630は、CPU610が実行するプログラム及びデータを一時的に記憶する。RAM630は、例えば、D-RAM(Dynamic-RAM)である。記憶装置640は、コンピュータ装置600が長期的に保存するデータ及びプログラムを記憶する。記憶装置640は、データ保存部50として動作してもよい。また、記憶装置640は、モデル保存部80として動作してもよい。また、記憶装置640は、CPU610の一時記憶装置として動作してもよい。記憶装置640は、メモリ(例えば、ROM620及びRAM630)に対する、二次記憶装置として動作してもよい。記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、ソリッドステートドライブ(Sloid State Derive(SSD))又はディスクアレイ装置である。
 ROM620と記憶装置640とは、不揮発性(non-transitory)の記録媒体である。一方、RAM630は、揮発性(transitory)の記録媒体である。そして、CPU610は、ROM620、記憶装置640、又は、RAM630に記憶されているプログラムを基に動作可能である。つまり、CPU610は、不揮発性記録媒体又は揮発性記録媒体を用いて動作可能である。
 NIC650は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。NIC650は、データ取得部90及び物体推論部10Dの一部として動作する。NIC650は、例えば、ローカルエリアネットワーク(Local Area Network(LAN))カードである。NIC650は、有線に限らず、無線を用いてもよい。
 このように構成された図9のコンピュータ装置600は、図1の情報処理装置1及び図14の情報処理装置1Dと同様の効果を得ることができる。その理由は、図9のコンピュータ装置600のCPU610が、プログラムに基づいて情報処理装置1及び情報処理装置1Dと同様の機能を実現できるためである。あるいは、図9のコンピュータ装置600のCPU610及びALU611が、プログラムに基づいて、情報処理装置1及び情報処理装置1Dと同様の機能を実現できるためである。なお、図13に示されている情報処理装置1Cが、図9のコンピュータ装置600を用いて構成されてもよい。
 [システム]
情報処理装置1Dを用いて、情報処理装置1、1C、又は、1Dを含むシステムの一例を説明する。図10は、情報処理装置1Dを含む情報処理システム400の構成の一例を示すブロック図である。情報処理システム400は、情報処理装置1Dと、データ取得装置200と、表示装置300とを含む。情報処理システム400は、それぞれの装置として、複数の装置を含んでもよい。例えば、情報処理システム400は、複数のデータ取得装置200を含んでもよい。なお、情報処理システム400は、図示しない装置を含んでもよい。例えば、情報処理システム400は、情報処理装置1Dの推論結果を用いて、対象物体に関連する所定の情報を認識する装置を含んでもよい。対象物体に関連する所定の情報を認識する装置は、例えば、OCR装置である。
 データ取得装置200は、情報処理装置1Dに、推論対象データを出力する。なお、データ取得装置200は、情報処理装置1Dに、学習用データセットを生成するためのオリジナル学習用データセットを出力してもよい。データ取得装置200は、例えば、監視カメラである。この場合、データ取得装置200は、推論対象データとして、撮影した画像を情報処理装置1Dに出力する。情報処理装置1Dは、これまでの説明の通りに動作する。つまり、情報処理装置1Dは、データ取得装置200から推論対象データを取得する。そして、情報処理装置1Dは、取得した推論対象データに推論を実行し、推論結果を表示装置300に出力する。表示装置300は、情報処理装置1Dから推論結果を取得し、取得した推論結果を表示する。表示装置300は、例えば、液晶ディスプレイ、有機エレクトロルミネッセンス・ディスプレイ、又は、電子ペーパーである。具体的には、表示装置300は、例えば、監視システムの液晶ディスプレイである。オペレータは、表示装置300の表示を参照して、対象物体を確認できる。
 このように、情報処理システム400は、情報処理装置1Dと、データ取得装置200と、表示装置300とを含む。情報処理装置1Dは、上記のように動作する。データ取得装置200は、情報処理装置1Dに推論対象データを出力する。表示装置300は、情報処理装置1Dから推論の結果を取得し、取得した推論の結果を表示する。上記の構成を用いて、情報処理システム400は、推論のスループットを向上し、オペレータなどに対して推論対象データにおいて推論した対象物体を表示する。
 <第3実施形態>
一次推論及び二次推論の負荷は、推論に用いる学習済モデルごとに異なる。例えば、推論の精度が高い学習済モデルは、一般的に負荷が高い。しかし、負荷が高い学習済モデルを用いる場合、スループットは低下する。あるいは、データ集約の負荷は、データ集約における後処理と集約の処理とに対応して異なる。あるいは、データ集約において用いられる集約データの生成方法及び集約データの形式は、推論精度に影響する。なお、データ集約において用いられる集約データの生成方法は、例えば、領域のまとめ方である。あるいは、集約データの形式は、例えば、サイズ、及び画像間の隙間である。
 このように、一次推論、二次推論、及び、データ集約の少なくとも一つの変更は、情報処理装置1、1C及び1Dにおけるスループットと推論精度とに影響する。以下、一次推論、二次推論、及び、データ集約を、まとめて「推論パラメタ」と呼ぶ。そして、一般的に、推論精度とスループットとは、トレードオフの関係にある。なお、処理の負荷とスループットとは、反比例の関係にある。例えば、処理の負荷を高くするとスループットは低下し、処理の負荷を低くするとスループットは向上する。そのため、所望のスループットを確保しながら、推論精度の低下を防ぐためには、負荷又はスループットに基づいて、適切な推論パラメタを選択して用いることが望ましい。
 そこで、第3実施形態として、負荷又はスループットに基づいて、推論パラメタの少なくとも一つを変更する実施形態を説明する。以下、図面を用いて、第3実施形態について説明する。第3実施形態の説明において、第2実施形態と同様の構成及び動作には同じの符号を付し、その詳細な説明を省略する場合もある。なお、以下の説明では、第3実施形態は、推論パラメタの変更として、学習済モデルを変更する。ただし、これは、第3実施形態を限定するものではない。第3実施形態は、負荷又はスループットに応じて、学習済モデルとは異なる推論パラメタを変更してもよい。推論パラメタの変更については、後ほどさらに説明する。また、説明の便宜のため、以下の説明に用いる情報処理装置1Bは、二次推論部として、一つの二次推論部40Bを含む。情報処理装置1Dのように複数の二次推論部40Bを用いる場合、以下の説明において、情報処理装置1Bの各構成が、情報処理装置1Dにおける対応する構成と同様の機能を含めばよい。
 図11は、第3実施形態にかかる情報処理装置1Bの構成の一例を示すブロック図である。情報処理装置1Bは、物体推論部10と、一次推論部20Bと、データ集約部30Bと、二次推論部40Bと、データ保存部50Bと、データ生成部60Bと、モデル生成部70Bと、モデル保存部80Bと、データ取得部90とを含む。情報処理装置1Bは、第2実施形態と同様に、図9のコンピュータ装置600を用いて構成されてもよい。
 なお、情報処理装置1Bの負荷又はスループットを判定する構成は、任意である。例えば、図示しないモニタ部が、負荷を判定して、各構成要素に通知してもよい。例えば、情報処理装置1Bがコンピュータの場合、情報処理装置1Bは、負荷を判定する構成として、コンピュータで動作するオペレーティングシステムのモニタを用いてもよい。あるいは、コンピュータ上で動作する所定のアプリケーションが、スループットとして、一つ又は複数の構成要素の処理速度を計測してもよい。例えば、所定のアプリケーションが、単位時間における、一次推論部20Bが処理する推論対象データの数量、データ集約部30Bが生成する集約データの数量、及び、二次推論部40Bが処理する集約データの数量の少なくとも一つを計測してもよい。
 また、情報処理装置1Bにおいて、負荷又はスループットに対応して、各構成要素の動作を制御する構成は、任意である。例えば、情報処理装置1Bは、負荷又はスループットを判定して、各構成要素を制御する制御部(図示せず)を含んでもよい。あるいは、所定の構成が、負荷又はスループットを判定して、一次推論部20B、データ集約部30B、及び、二次推論部40Bなどの構成要素の動作を制御してもよい。あるいは、例えば、一次推論部20B、データ集約部30B、及び、二次推論部40Bが、負荷又はスループットを判定し、それぞれに関連する推論パラメタを変更してもよい。そのため、以下の説明では、特に必要な場合を除いて、各構成要素における、負荷に対応した動作を制御する構成要素に関する説明を省略する。
 さらに、負荷又はスループットの判定の対象となる構成、及び、推論パラメタを切り替える構成は、任意である。例えば、負荷又はスループットは、情報処理装置1Bの全体における負荷又はスループットでもよい。例えば、情報処理装置1Bは、推論対象データに対して情報処理装置1B全体としてのスループットが適切となるように、一次推論部20B、データ集約部30B、及び、二次推論部40Bの推論パラメタを切り替えてもよい。あるいは、負荷又はスループットの判定対象は、情報処理装置1Bの一つ又は一部の構成における負荷又はスループットでもよい。例えば、情報処理装置1Bは、ある構成の推論パラメタを、その構成の前段又は後段の構成の負荷又はスループットに対応して切り替えてもよい。
 例えば、一次推論部20Bは、データ集約部30Bの負荷に対応して、一次推論用学習済モデルを切り替えてもよい。例えば、データ集約部30Bの負荷が高い場合、一次推論部20Bは、負荷が高い学習済モデル、つまり推論精度が高い学習済モデルを用いる。反対に、データ集約部30Bの負荷が低い場合、一次推論部20Bは、負荷が低い学習済モデルを用いる。あるいは、二次推論部40Bは、データ集約部30Bの負荷に対応して、二次推論用学習済モデルを切り替えてもよい。例えば、データ集約部30Bの負荷が高い場合、二次推論部40Bは、負荷が高い学習済モデル、つまり推論精度が高い学習済モデルを用いる。反対に、データ集約部30Bの負荷が低い場合、二次推論部40Bは、負荷が低い学習済モデルを用いる。次に、各構成について説明する。なお、物体推論部10及びデータ取得部90は、第2実施形態の物体推論部10及びデータ取得部90と同様のため、詳細な説明を省略する。
 データ生成部60Bは、データ生成部60と同様に、オリジナル学習用データセットを用いて、一次推論学習用データセット及び二次推論学習用データセットを生成する。そして、データ生成部60Bは、生成した一次推論学習用データセット及び二次推論学習用データセットをデータ保存部50Bに保存する。ただし、第3実施形態において、一次推論部20B及び二次推論部40Bの少なくとも一方は、複数の学習済モデルを用いる。そのため、データ生成部60Bは、一次推論学習用データセット及び二次推論学習用データセットの少なくとも一方として、複数の学習用データセットを生成する。
 例えば、データ生成部60Bは、データ保存部50Bに保存されているオリジナル学習用データセットに、一般的なデータ拡張(data augmentation)の手法を適用して、複数の学習用データセットを生成してもよい。データ拡張の手法は、任意である。データが画像の場合、データ拡張の手法は、例えば、左右反転、上下反転、部分切り出し(cropping)、結合、拡大又は縮小、明度調整、輝度調整、色調整、及び、これらの組合せである。
 データ保存部50Bは、データ保存部50と同様に、一次推論学習用データセット及び二次推論学習用データセットを保存する。一次推論学習用データセット及び二次推論学習用データセットのそれぞれは、一次推論部20B及び二次推論部40Bが使用する学習済モデルの生成に用いられる学習用データセットである。ただし、第3実施形態において、一次推論部20B及び二次推論部40Bの少なくとも一方は、複数の学習済モデルを用いる。そのため、データ保存部50Bは、一次推論学習用データセット及び二次推論学習用データセットの少なくとも一方として、複数の学習用データセットを保存する。
 モデル生成部70Bは、モデル生成部70と同様に、学習用データセットを用いて一次推論用学習済モデル及び二次推論用学習済モデルを生成する。ただし、第3実施形態において、一次推論部20B及び二次推論部40Bの少なくとも一方は、複数の学習済モデルを用いる。そのため、モデル生成部70Bは、一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方の学習済モデルとして、複数の学習済モデルを生成する。そして、モデル生成部70Bは、生成した学習済モデルをモデル保存部80Bに保存する。具体的には、モデル生成部70Bは、一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方の学習済モデルとして、データ保存部50Bに保存されている複数の学習用データセットを用いて、複数の学習済モデルを生成する。ただし、モデル生成部70Bは、一つの学習用データセットを用いて、複数の学習済モデルを生成してもよい。
 モデル生成部70Bが生成する複数の学習済モデルは、任意である。例えば、モデル生成部70Bは、学習済モデルとして、次に示すいずれか一つが異なるモデルを生成してもよい。
(1)学習に用いる学習用データセット、
(2)モデルのネットワーク構造、
(3)モデルのハイパーパラメタ、
(4)モデルに含まれる重み精度、
(5)モデルにおけるバッチサイズ、
(6)対象物体に対するサブ対象物体の位置関係、
(7)対象物体に対するサブ対象物体の数。
モデル生成部70Bは、生成した複数の学習済モデルに対して、学習済モデルの選択に用いる指標を生成してもよい。例えば、モデル生成部70Bは、学習済モデルの選択の指標として、生成した学習済モデルの処理負荷、スループット性能、規模、又は、サイズなどの値又はこれらの少なくとも一部の比較結果を生成してもよい。
 モデル保存部80Bは、モデル保存部80と同様に、学習済モデルを保存する。ただし、第3実施形態において、一次推論部20B及び二次推論部40Bの少なくとも一方は、複数の学習済モデルを用いる。そのため、モデル保存部80Bは、一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方の学習済モデルとして、複数の学習済モデルを保存する。
 データ集約部30Bは、データ集約部30と同様に、集約データを生成する。ただし、データ集約部30Bは、情報処理装置1Bにおける所定の負荷又はスループットに対応して、後処理及びデータの集約の処理の少なくとも一方を含むデータ集約を変更してもよい。なお、データ集約部30Bにおけるデータ集約の変更については、後ほどさらに説明する。
 一次推論部20Bは、一次推論部20と同様に、一次推論を実行する。二次推論部40Bは、二次推論部40と同様に、二次推論を実行する。さらに、一次推論部20B及び二次推論部40Bの少なくとも一方は、情報処理装置1Bにおける所定の負荷又はスループットに対応して、推論に用いる学習済モデルを切り替える。一次推論部20B及び二次推論部40Bの少なくとも一方は、2つではなく3つ以上の学習済モデルを切り替えてもよい。一次推論部20B及び二次推論部40Bの両方が学習済モデルを切り替える場合、一次推論部20B及び二次推論部40Bは、負荷又はスループットの判定の用いる閾値として、同じ閾値を用いてもよいし、異なる閾値を用いてもよい。
 第3実施形態が判定に用いる負荷及びスループットは、任意である。オペレータが、対象物体及び学習済モデルなどに基づいて、判定に用いる負荷又はスループットを決定すればよい。例えば、情報処理装置1Bは、負荷又はスループットとして、以下の少なくともいずれ一つの項目を用いてもよい。情報処理装置1Bは、一つの項目ではなく、2つ以上の項目の組合せを用いてもよい。情報処理装置1Bは、以下の値を用いる場合に、平均などの統計処理を用いてもよい。
(1)情報処理装置1Bを構成する演算に関連するハードウェアリソース、
(1-1)CPU及びALUの少なくとも一つの使用率又は稼働率、
(1-2)情報処理装置1Bにおける構成の少なくとも一つにおける処理のためのデータキューの長さ、又は、処理待ち時間、
(1-3)情報処理装置1Bに含まれる温度、又は、消費電力を検出するセンサの測定値、
(2)推論対象データのサイズ、
(3)後処理の対象となるBBの数又は面積など、一次推論部20Bにおける一次推論の結果、
(4)後処理後のBBの数又は面積などデータ集約部30Bにおける後処理の結果、
(5)集約データのサイズなどデータ集約部30Bにおける集約の結果、
(6)推論対象データのサイズと、集約データのサイズとの比、
(7)二次推論に含まれるBBの数又は面積など二次推論部40Bにおける二次推論の結果、
(8)一次推論及び二次推論の少なくとも一方の処理時間。なお、処理時間は、実測された時間でもよいし、予め設定された推論対象データのサイズと処理時間との関係を用いて算出された時間でもよい。
 情報処理装置1Bは、負荷及びスループットに替えて、又は、負荷又はスループットとともに、別の情報に基づいて、推論パラメタを切り替えてもよい。例えば、侵入者を検知するシステムの監視カメラの撮影範囲には、必要となる推論精度が異なる範囲が含まれる場合がある。例えば、入口の近傍の範囲は、推論の精度が高いことが望ましい。一方、入口から遠い範囲は、不要な消費電力を削減するため、推論の精度は低くても推論に必要な負荷を低くすることが望ましい。そこで、例えば、情報処理装置1Bは、通常は、負荷が低い推論パラメタを用いる。なお、負荷が低い推論パラメタとは、例えば、負荷が低い学習済モデルである。そして、例えば、人感センサが人の所定範囲への侵入又は入口近傍への接近を検出した場合に、情報処理装置1Bは、推論精度が高くなる推論パラメタに切り替えてもよい。例えば、推論精度が高くなる推論パラメタは、推論精度が高い学習済モデルである。このように、情報処理装置1Bは、センサが検出したイベントのような所定の情報に対応して、推論パラメタを切り替えてもよい。
 一次推論部20B及び二次推論部40Bにおける推論パラメタの変更は、上記の説明における学習済モデルの変更を含め、次のような変更がある。ただし、推論パラメタの変更は、下記に限定されない。
(1)推論に使用する学習済モデルの変更:
負荷が低い学習済モデルを用いる場合、一次推論部20B及び二次推論部40Bのスループットは向上する。ただし、推論精度は、低くなる。負荷が高いが精度が高い学習済モデルを用いる場合、一次推論部20B及び二次推論部40Bのスループットは、低下する。ただし、推論精度は、高くなる。
(2)まとめて一次推論を実行する所定の数量の変更:
まとめて一次推論を実行する所定の数量を減らす場合、情報処理装置1Bは、推論対象データに対する最終的な推論結果を得るまでの時間を短くすることができる。最終的な推論結果を得るまでの時間は、例えば、レイテンシ(latency)である。
 次に、データ集約部30Bに関連する推論パラメタ(特に、データ集約)の変更を説明する。データ集約部30Bは、情報処理装置1Bにおける所定の負荷又はスループットに基づいて、次のような推論パラメタを変更してもよい。
(1)BBのフィルタリング又はBB調整における閾値又はBBの修正量のようなデータ集約におけるパラメタの変更:
フィルタリング対象が少なくなるように、つまり、フィルタリング後のデータの数量が少なくなるようにフィルタリングの閾値を変更する場合、データ集約部30Bのスループットは、向上する。ただし、二次推論部40Bにおける推論精度は、低下する。フィルタリング対象が多くなるように、つまり、フィルタリング後のデータの数量が多くなるようにフィルタリングの閾値を変更する場合、データ集約部30Bのスループットは、低下する。ただし、二次推論部40Bにおける推論精度は、向上する。
(2)集約データにおいて複製するデータの間に設ける隙間の変更:
隙間を狭くする場合、データ集約部30Bのスループットは、向上する。ただし、二次推論部40Bにおける推論精度は、低下する。隙間を広くする場合、データ集約部30Bのスループットは、低下する。ただし、二次推論部40Bにおける推論精度は、向上する。
(3)領域のまとめ方:
(3-1)重複している領域及び近接する領域をまとめるか否かの変更:
領域をまとめない場合、データ集約部30Bのスループットは、向上する。ただし、二次推論部40Bにおける推論精度は、低下する。領域をまとめる場合、データ集約部30Bのスループットは、低下する。ただし、二次推論部40Bにおける推論精度は、向上する。
(3-2)近接と判定する距離の変更:
近接と判定する距離を短くする場合、データ集約部30Bのスループットは、向上する。ただし、二次推論部40Bにおける推論精度は、低下する。近接と判定する距離を長くする場合、データ集約部30Bのスループットは、低下する。ただし、二次推論部40Bにおける推論精度は、向上する。
(4)集約データのサイズの変更:
集約データのサイズを小さくする場合、データ集約部30Bのスループットは、向上する。ただし、二次推論部40Bにおける推論精度は、低下する。集約データのサイズを大きくする場合、データ集約部30Bのスループットは、低下する。ただし、二次推論部40Bにおける推論精度は、向上する。
 情報処理装置1Bは、推論パラメタとして、次のような複数の構成要素に関連する項目を変更してもよい。
(1)サブ対象物体の利用の変更:
情報処理装置1Bは、負荷に応じて、サブ対象物体を使用するか否かを切り替えてもよい。サブ対象物体を使用しない場合、情報処理装置1Bのスループットは、向上する。ただし、最終的な推論精度は、低下する。サブ対象物体を使用する場合、情報処理装置1Bのスループットは、低下する。ただし、最終的な推論精度は、向上する。
(2)一次推論の有無:
情報処理装置1Bは、負荷に応じて、一次推論部20Bを使用するか否かを切り替えてもよい。集約データの数量が多い状況で、一次推論を使用しない場合、情報処理装置1Bのスループットは、向上する。集約データの数量が多い状況で、一次推論を使用する場合、情報処理装置1Bのスループットは、低下する。このように、推論パラメタに含まれる一次推論の切り替えは、一次推論の実行の有無を含む。なお、一次推論を使用しない場合におけるその他の構成要素の動作は、任意である。例えば、一次推論を使用しない場合、データ集約部30Bは、推論対象データを用いて集約データを生成してもよい。あるいは、一次推論を使用しない場合、二次推論部40Bは、二次推論として、推論対象データにおける対象物体を推論してもよい。
 次に、図面を用いて、第3実施形態にかかる情報処理装置1Bの動作を説明する。以下の説明では、負荷の一例として、データ集約部30Bが単位時間当たりに生成する集約データの数量の平均値を用いる。以下、単位時間当たりに生成する集約データの数量の平均値を、「集約データ生成速度」と呼ぶ。また、変更する推論パラメタとして、一次推論部20Bが用いる一次推論用学習済モデルを用いる。情報処理装置1Bは、負荷が低い状況において、より高い推論精度を得られるように動作する。具体的には、集約データ生成速度が閾値以下の場合、つまり、負荷が低い場合、一次推論部20Bは、一次推論に、高精度の学習済モデル、つまり、負荷が高い学習済モデルを使用する。反対に、集約データ生成速度が閾値を超えている場合、つまり、負荷が高い場合、一次推論部20Bは、一次推論に、負荷が低い学習済モデル、つまり、低精度の学習済モデルを使用する。
 図12は、第3実施形態にかかる情報処理装置1Bにおけるモデルの切り替え動作の一例を示すフロー図である。図12は、集約データ生成速度に対応して、一次推論部20Bが、一次推論に用いる一次推論用学習済モデルを切り替える動作の一例である。情報処理装置1Bは、集約データ生成速度を算出する(ステップS201)。情報処理装置1Bは、集約データ生成速度が所定の閾値を超えているか否かを判定する(ステップS202)。集約データ生成速度が閾値を超えている場合(ステップS202でYes)、一次推論部20Bは、一次推論として、負荷が低い学習済モデルを用いて一次推論を実行する(ステップS205)。集約データ生成速度が閾値以下の場合(ステップS202でNo)、一次推論部20Bは、一次推論として、精度が高い学習済モデルを用いて一次推論を実行する(ステップS206)。情報処理装置1Bは、所定の間隔で上記動作を繰り返す。情報処理装置1Bは、このような動作を用いて、データ集約部30Bのスループット又は負荷に対応して一次推論部20Bが用いる一次推論用学習済モデルを切り替える。
 このように、情報処理装置1Bは、情報処理装置1Bにおける所定の負荷又はスループットに基づいて、推論パラメタの少なくとも一つを切り替える。例えば、情報処理装置1Bは、情報処理装置1Bにおける所定の負荷又はスループットに基づいて、一次推論部20B、二次推論部40B、及び、データ集約部30Bの少なくとも一つの動作又は扱うデータを切り替える。例えば、情報処理装置1Bは、データ集約部30Bの負荷又はスループットに基づいて、一次推論部20Bが用いる一次推論用学習済モデル及び二次推論部40Bが用いる二次推論用学習済モデルの少なくとも一方を切り替える。あるいは、情報処理装置1Bは、一次推論部20B又は二次推論部40Bの負荷又はスループットに基づいて、データ集約部30Bにおけるデータ集約の処理を切り替える。このように、第3実施形態にかかる情報処理装置1Bは、情報処理装置1Bにおける所定の負荷又はスループットに応じて推論パラメタを変更する。
 このような動作を用いて、情報処理装置1Bは、負荷が増大したときに、スループットの低下を抑制し、処理できないデータの発生を回避する。一方、負荷が低くなると、情報処理装置1Bは、負荷が高くなるように推論パラメタを切り替える。このような動作を用いて、情報処理装置1Bは、スループットを確保しながら適切な精度の推論を実現する。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1  情報処理装置
1B 情報処理装置
1C 情報処理装置
1D 情報処理装置
10 物体推論部
10D 物体推論部
20 一次推論部
20B 一次推論部
20D 一次推論部
30 データ集約部
30B データ集約部
30D データ集約部
40 二次推論部
40B 二次推論部
40D 二次推論部
50 データ保存部
50B データ保存部
60 データ生成部
60B データ生成部
70 モデル生成部
70B モデル生成部
80 モデル保存部
80B モデル保存部
90 データ取得部
200 データ取得装置
300 表示装置
400 情報処理システム
600 コンピュータ装置
610 CPU
611 ALU
620 ROM
630 RAM
640 記憶装置
650 NIC
690 記憶媒体

Claims (8)

  1.  一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、前記第1対象物体を推論する一次推論手段と、
     前記一次推論において推論された前記第1対象物体を、前記第1対象物体の属性に基づいていずれかのグループに分類し、前記グループごとに前記推論対象データより数量が少ないデータである集約データを生成し、前記推論対象データにおける前記第1対象物体の位置と、前記集約データにおける前記第1対象物体の位置との対応関係を生成するデータ集約手段と、
     二次推論として、互いに異なる前記グループの前記集約データを第2学習済モデルに適用して前記第1対象物体を推論する複数の二次推論手段と、
     前記二次推論の結果における前記第1対象物体と、前記対応関係とを用いて、前記推論対象データにおける前記第1対象物体を推論する物体推論手段と
     を含む情報処理装置。
  2.  前記二次推論手段は、互いに異なる学習済モデル、又は、互いに異なる推論パラメタを用いる
     請求項1に記載の情報処理装置。
  3.  前記データ集約手段は、前記二次推論手段それぞれにおける推論難易度を推定し、前記推論難易度に基づいて前記第1対象物体をいずれかの前記グループに分類する
     請求項1又は2に記載の情報処理装置。
  4.  前記一次推論手段は、前記二次推論手段それぞれにおける前記推論難易度を推論する
     請求項3に記載の情報処理装置。
  5.  請求項1ないし4のいずれか1項に記載の情報処理装置と、
     前記情報処理装置に前記推論対象データを出力するデータ取得装置と、
     前記情報処理装置から推論の結果を取得し、取得した推論の結果を表示する表示装置と
     を含む情報処理システム。
  6.  一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、前記第1対象物体を推論し、
     前記一次推論において推論された前記第1対象物体を、前記第1対象物体の属性に基づいていずれかのグループに分類し、前記グループごとに前記推論対象データより数量が少ないデータである集約データを生成し、前記推論対象データにおける前記第1対象物体の位置と、前記集約データにおける前記第1対象物体の位置との対応関係を生成し、
     二次推論として、互いに異なる前記グループの前記集約データを第2学習済モデルに適用して前記第1対象物体を推論し、
     前記二次推論の結果における前記第1対象物体と、前記対応関係とを用いて、前記推論対象データにおける前記第1対象物体を推論する
     情報処理方法。
  7.  情報処理装置が、請求項6に記載の情報処理方法を実行し、
     データ取得装置が、前記情報処理装置に前記推論対象データを出力し、
     表示装置が、前記情報処理装置から推論の結果を取得し、取得した推論の結果を表示する
     情報処理方法。
  8.  一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、前記第1対象物体を推論する処理と、
     前記一次推論において推論された前記第1対象物体を、前記第1対象物体の属性に基づいていずれかのグループに分類し、前記グループごとに前記推論対象データより数量が少ないデータである集約データを生成し、前記推論対象データにおける前記第1対象物体の位置と、前記集約データにおける前記第1対象物体の位置との対応関係を生成する処理と、
     二次推論として、互いに異なる前記グループの前記集約データを第2学習済モデルに適用して前記第1対象物体を推論する処理と、
     前記二次推論の結果における前記第1対象物体と、前記対応関係とを用いて、前記推論対象データにおける前記第1対象物体を推論する処理と
     をコンピュータに実行させるプログラムを記録する記録媒体。
PCT/JP2021/036589 2021-10-04 2021-10-04 情報処理装置、情報処理システム、情報処理方法、及び、記録媒体 WO2023058082A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2021/036589 WO2023058082A1 (ja) 2021-10-04 2021-10-04 情報処理装置、情報処理システム、情報処理方法、及び、記録媒体
JP2023552407A JPWO2023058082A5 (ja) 2021-10-04 情報処理装置、情報処理システム、情報処理方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/036589 WO2023058082A1 (ja) 2021-10-04 2021-10-04 情報処理装置、情報処理システム、情報処理方法、及び、記録媒体

Publications (1)

Publication Number Publication Date
WO2023058082A1 true WO2023058082A1 (ja) 2023-04-13

Family

ID=85803259

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/036589 WO2023058082A1 (ja) 2021-10-04 2021-10-04 情報処理装置、情報処理システム、情報処理方法、及び、記録媒体

Country Status (1)

Country Link
WO (1) WO2023058082A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018200531A (ja) * 2017-05-26 2018-12-20 富士通株式会社 教師データ生成装置、教師データ生成方法、教師データ生成プログラム、及び物体検出システム
US20190294177A1 (en) * 2018-03-20 2019-09-26 Phantom AI, Inc. Data augmentation using computer simulated objects for autonomous control systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018200531A (ja) * 2017-05-26 2018-12-20 富士通株式会社 教師データ生成装置、教師データ生成方法、教師データ生成プログラム、及び物体検出システム
US20190294177A1 (en) * 2018-03-20 2019-09-26 Phantom AI, Inc. Data augmentation using computer simulated objects for autonomous control systems

Also Published As

Publication number Publication date
JPWO2023058082A1 (ja) 2023-04-13

Similar Documents

Publication Publication Date Title
US10540586B2 (en) Method and system for tracking an object
US10636164B2 (en) Object detection method and apparatus based on dynamic vision sensor
CN109918969B (zh) 人脸检测方法及装置、计算机装置和计算机可读存储介质
KR102476022B1 (ko) 얼굴검출 방법 및 그 장치
EP3306527B1 (en) A method of cropping an image, an apparatus for cropping an image, a program and a storage medium
US9025868B2 (en) Method and system for image processing to determine a region of interest
US11270137B2 (en) Event detector and method of generating textural image based on event count decay factor and net polarity
JP7215390B2 (ja) 路上障害物検知装置、路上障害物検知方法、及び路上障害物検知プログラム
CN105912126B (zh) 一种手势运动映射到界面的增益自适应调整方法
US20220254135A1 (en) Image classification in a sequence of frames
CN110443107B (zh) 用于对象检测的图像处理方法和系统
US20240135552A1 (en) Object feature extraction device, object feature extraction method, and non-transitory computer-readable medium
US11301702B2 (en) Object detection for event cameras
CN110288560B (zh) 一种图像模糊检测方法及装置
Li et al. Event stream super-resolution via spatiotemporal constraint learning
WO2019171779A1 (ja) 物体検出装置、物体検出方法、およびプログラム
KR20080079443A (ko) 영상으로부터의 객체 검출 방법 및 장치
WO2023058082A1 (ja) 情報処理装置、情報処理システム、情報処理方法、及び、記録媒体
CN117057398A (zh) 用于训练卷积神经网络的方法
JP2022142119A (ja) 情報処理装置、情報処理システム、情報処理方法、及び、プログラム
US20220180529A1 (en) Image processing apparatus, image processing method, and non-transitory computer-readable medium
Chacon-Murguia et al. Adaptive fuzzy weighted color histogram and HOG appearance model for object tracking with a dynamic trained neural network prediction
CN107967691B (zh) 一种视觉里程计算方法和装置
JP7400982B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP2012226403A (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: 21959826

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023552407

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE