WO2021172092A1 - 情報処理装置、情報処理方法、及びプログラム - Google Patents
情報処理装置、情報処理方法、及びプログラム Download PDFInfo
- Publication number
- WO2021172092A1 WO2021172092A1 PCT/JP2021/005678 JP2021005678W WO2021172092A1 WO 2021172092 A1 WO2021172092 A1 WO 2021172092A1 JP 2021005678 W JP2021005678 W JP 2021005678W WO 2021172092 A1 WO2021172092 A1 WO 2021172092A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- recognition process
- recognition
- information processing
- priority
- processing device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
Definitions
- This technology relates to information processing devices, information processing methods, and programs applicable to object recognition.
- Patent Document 1 discloses an information processing system capable of displaying information using a table as a display surface and executing various processes according to a user's operation on the displayed information.
- the information processing system it is possible to determine the display area of the display object displayed on the display surface according to the information of the real object on the display surface. This makes it possible to display information more appropriately and efficiently according to the environment in which the information is to be displayed and the status of the displayed information.
- the purpose of this technology is to provide an information processing device, an information processing method, and a program capable of executing a new recognition process with a reduced processing load.
- the information processing device includes a recognition unit and a setting unit.
- the recognition unit executes a first recognition process or a second recognition process capable of recognizing with higher accuracy than the first recognition process on the detection result of the sensor, and each of the one or more objects. Recognize.
- the setting unit sets the first recognition process or the second recognition process as the execution recognition process executed by the recognition unit for each of the recognized one or more objects.
- a first recognition process or a second recognition process capable of highly accurate recognition for each of one or more recognized objects is executed as an execution recognition process by the recognition unit. Set. This makes it possible to realize a new recognition process that suppresses the processing load.
- the setting unit may update the execution recognition process set for each of the one or more objects at predetermined time intervals.
- the setting unit may update the execution recognition process set for each of the one or more objects at each timing when the recognition unit recognizes the one or more objects.
- the setting unit performs the execution recognition process for each of the one or more objects so that the number of the objects whose second recognition process is set as the execution recognition process is equal to or less than a predetermined upper limit number. May be set.
- the setting unit may set the execution recognition process for each of the one or more objects based on the object information regarding each of the one or more objects.
- the object information may include at least one of the position of the object, the state of the object, or the movement of the object.
- the object information includes the amount of activity of the object, the distance from the predetermined position of the object, the posture of the object, the presence or absence of an input operation by the object, or the related object related to the object. It may contain at least one of the information.
- the object information may include a recognition result by the recognition unit for each of the one or more objects.
- the setting unit calculates a priority for each of the one or more objects based on the object information about each of the one or more objects, and the one or more based on the calculated priority.
- the execution recognition process may be set for each of the objects.
- the setting unit may set the second recognition process as the execution recognition process for the object having a relatively high priority among the one or more objects.
- the setting unit may set the second recognition process as the execution recognition process in descending order of priority for each of the one or more objects.
- the priority is lower than the predetermined threshold value for the object in which the second recognition process is set as the execution recognition process and the priority level is higher than the predetermined threshold value.
- the setting of the second recognition process may be maintained until.
- the setting unit may set the second recognition process as the execution recognition process by giving priority to the object for which a predetermined state has been recognized.
- the setting unit may calculate the priority of the object for which a predetermined state is recognized to be relatively high.
- the first recognition process may be a recognition process using a rule-based algorithm.
- the second recognition process may be a recognition process using a machine learning algorithm.
- the second recognition process may have a larger processing load than the first recognition process.
- Each of the above-mentioned one or more objects may be a predetermined part of the human body.
- the information processing method is an information processing method executed by a computer system, and includes a recognition step and a setting step.
- a recognition step a first recognition process or a second recognition process capable of recognizing with higher accuracy than the first recognition process is executed on the detection result of the sensor, and each of the one or more objects. Recognize.
- the first recognition process or the second recognition process is set as the execution recognition process executed by the recognition step for each of the recognized one or more objects.
- a program causes a computer system to perform the following steps.
- FIG. 1 is a schematic diagram for explaining a configuration example of an object recognition system according to an embodiment of the present technology.
- the object recognition system 100 includes a sensor 10 and an information processing device 20.
- the sensor 10 and the information processing device 20 are communicably connected to each other via a wire or a wireless device.
- the connection form between each device is not limited, and for example, wireless LAN communication such as WiFi and short-range wireless communication such as Bluetooth (registered trademark) can be used.
- the sensor 10 executes sensing for a predetermined sensing region and outputs a sensing result (detection result).
- a sensing result for example, any sensor capable of outputting the position, state, movement, etc. of each of one or more objects 1 existing in the sensing region as a sensor value may be used.
- the sensor 10 an arbitrary image sensor, an arbitrary depth sensor, or the like can be used.
- the image includes both a still image and a moving image (video).
- Examples of the image sensor capable of acquiring a two-dimensional image include a visible light camera and an infrared camera.
- the depth sensor capable of acquiring three-dimensional information include a stereo camera, a ToF (Time of Flight) sensor, a structured light type depth sensor, and the like.
- an ultrasonic sensor or the like may be used as a sensor for acquiring the state of an object.
- any ranging device such as a laser ranging sensor or LiDAR (Light Detection and Ranging, Laser Imaging Detection and Ranging) or any sensor device such as a contact sensor, a sonar, a luminometer, or a biosensor is used. good.
- the information processing device 20 has hardware necessary for configuring a computer, such as a processor such as a CPU, GPU, and DSP, a memory such as a ROM and a RAM, and a storage device such as an HDD (see FIG. 28).
- a computer such as a processor such as a CPU, GPU, and DSP, a memory such as a ROM and a RAM, and a storage device such as an HDD (see FIG. 28).
- the information processing method according to the present technology is executed when the CPU loads and executes the program according to the present technology recorded in advance in the ROM or the like into the RAM.
- the information processing device 20 can be realized by an arbitrary computer such as a PC (Personal Computer).
- hardware such as FPGA and ASIC may be used.
- the recognition unit 21 as a functional block and the setting unit 22 are configured by the CPU or the like executing a predetermined program.
- the program is installed in the information processing apparatus 20 via, for example, various recording media. Alternatively, the program may be installed via the Internet or the like.
- the type of recording medium on which the program is recorded is not limited, and any computer-readable recording medium may be used. For example, any non-transient storage medium that can be read by a computer may be used.
- the recognition unit 21 can recognize each of one or more objects 1 and output the recognition result (recognition information) by executing the recognition process on the detection result of the sensor 10.
- the recognition process can be said to be a recognition method.
- the recognition result by the recognition unit 21 includes arbitrary information such as, for example, the position of the object 1, the state of the object 1, and the movement of the object 1. For example, it is possible to output various information such as the amount of activity of the object 1, the distance of the object 1 from a predetermined position, the posture of the object 1, and the presence / absence of an input operation by the object 1 as a recognition result. ..
- a predetermined recognition algorithm is executed by inputting the data of the extracted object area, and the recognition result is output.
- the recognition algorithm may be executed by inputting the entire two-dimensional image data, three-dimensional depth image data, etc., and the recognition result for each of one or more objects 1 may be output. ..
- a recognition process using a rule-based algorithm is executed.
- the data in the object area is recognized by a process of performing matching processing with the model image of the object 1 or a process of specifying a position in the data of the object area using a marker image or the like. It is possible to generate information. Alternatively, it is also possible to generate recognition information by referring to the table information from the data of the object area.
- any recognition process using a rule-based algorithm may be adopted.
- a recognition process using a machine learning algorithm may be executed. For example, it is possible to use an arbitrary machine learning algorithm using DNN (Deep Neural Network) or the like.
- the machine learning algorithm by executing a machine learning algorithm with data in an object region as an input, it is possible to generate various estimation information and output it as a recognition result.
- AI artificial intelligence
- deep learning deep learning
- the label of the recognition information to be acquired is set in the data of the object area for learning, and the data set for learning is generated.
- a program incorporating trained parameters is generated as a trained model.
- the trained model outputs the recognition result for the input of the data of the object area. For example, it is possible to specify the three-dimensional position of each feature point in the object by inputting the three-dimensional information of the object area.
- the skeleton estimation is also called a bone estimation or a skeleton estimation.
- the recognition process using the rule-based algorithm may be described as the rule-based recognition process.
- the recognition process using the machine learning algorithm may be described as the machine learning-based recognition process.
- any algorithm for executing the recognition process may be used.
- a coordinate value for example, an XYZ coordinate value defined by an absolute coordinate system (world coordinate system) is used.
- a coordinate value for example, xyz coordinate value or uvd coordinate value
- a relative coordinate system with a predetermined point as a reference may be used.
- the reference origin may be set arbitrarily.
- the recognition unit 21 may execute the first recognition process or the second recognition process capable of recognizing with higher accuracy than the first recognition process on the detection result of the sensor 10. It is possible. That is, the recognition unit 21 can execute two different types of recognition processing.
- a case where a rule-based recognition process is used as the first recognition process and a machine learning-based recognition process is used as the second recognition process will be described as an example.
- Two types of rule-based recognition processes having different recognition accuracys may be set as the first recognition process and the second recognition process.
- two types of machine learning-based recognition processes having different recognition accuracys may be set as the first recognition process and the second recognition process.
- the high-precision second recognition process has a larger processing load than the low-precision first recognition process.
- the setting unit 22 performs a first recognition process (rule-based recognition process) or a second recognition process as execution recognition process executed by the recognition unit 21 for each of one or more recognized objects 1.
- (Machine learning-based recognition processing) is set. That is, in the present embodiment, the recognition process (execution recognition process) executed at the next timing for each of the one or more objects 1 recognized by the recognition unit 21 is the first recognition process (rule-based). It is appropriately selected and set from the recognition process) and the second recognition process (machine learning-based recognition process).
- the setting unit 22 sets the execution recognition process to be executed at the next timing based on the recognition result by the recognition unit 21 for each of the one or more objects 1.
- execution recognition processing may be set for each of one or more objects 1 based on arbitrary object information regarding each of one or more objects 1.
- Arbitrary object information for each of the one or more objects 1 includes a recognition result by the recognition unit 21 for each of the one or more objects 1. Therefore, the object information includes various information exemplified as the recognition result above.
- information other than the recognition result by the recognition unit 21 may be used as the object information.
- the information for setting the execution recognition process may be generated as the object information by a process different from the recognition process.
- the detection result output from the sensor 10 may be used as the object information and may be used for setting the execution recognition process.
- the information of the related object related to the object 1 may be used as the object information.
- the object 1 when the object 1 is a predetermined part of the human body, information about the owner (that is, the person) of the part may be used. For example, information about other parts of the person, gaze, facial expression, body temperature, etc. may be used as object information. In this case, the owner of the part corresponds to the related object related to the object 1.
- FIG. 2 is a schematic diagram showing an operation example of the object recognition system.
- the number of recognition processes (number of recognition processes / second) executed by the recognition unit 21 per second is defined as the frame rate of the recognition process.
- the frame rate of the recognition process is set, for example, in the range of 30 fps to 1000 fps.
- the frame rate of the recognition process is not limited to this, and may be set arbitrarily.
- the frame rate of the sensor 10 may be set as the frame rate of the recognition process, and the recognition process may be executed in synchronization with the sensing. Further, the frame rate of the recognition process may be specified by the user who uses the object recognition system 100.
- the recognition process by the recognition unit 21 and the setting of the execution recognition process by the setting unit 22 are executed in each frame. That is, every time the recognition unit 21 recognizes one or more objects 1, the execution recognition process set for each of the one or more objects 1 is updated. Therefore, assuming that the set number of times (set number of times / second) of the execution recognition process executed by the setting unit 22 per second is the frame rate of the setting process, the frame rate of the recognition process and the frame rate of the setting process are equal to each other.
- the example shown in FIG. 2 is an example of an operation of updating the execution recognition process set for each of one or more objects at predetermined time intervals. Of course, it is not limited to such an operation.
- the frame rate of the recognition process and the frame rate of the setting process may be set differently from each other.
- the setting of the execution recognition process may be executed every time the recognition process by the recognition unit 21 is executed a predetermined number of times.
- the recognition process is executed in the front frame (t-1) based on the detection result of the sensor 10. Based on the recognition result of the recognition process, the execution recognition process is set for each of the recognized objects 1 or more.
- the recognition unit 21 executes the recognition process based on the detection result of the sensor 10.
- the execution recognition process set in the previous frame (t-1) is executed for the object 1. NS.
- the execution recognition process is set again for each of the one or more recognized objects 1.
- the recognition process is executed by the recognition unit 21 based on the detection result of the sensor 10.
- the execution recognition process set in the current frame (t) is executed for the object 1. Further, in the next frame (t + 1), the execution recognition process is set again for each of the recognized objects 1 or more. As for the recognition process in the previous frame (t-1), the execution recognition process set in the previous frame (t-2) is used.
- the setting of the execution recognition process is initialized by, for example, initializing the system.
- the recognition unit 21 executes the recognition process based on the detection result output from the sensor 10, and recognizes one or more objects 1.
- the recognition process for the initial operation is used.
- a second recognition process with high accuracy is set.
- the recognition process for the initial operation a first recognition process with low accuracy is set.
- the first recognition process is executed for all the object regions.
- the second recognition process is executed for as many object areas as possible within a range not exceeding the usable processing amount, and other objects are executed.
- the first recognition process may be executed for the object area.
- the recognition process for the initial operation may be appropriately set according to the order in which the object area is extracted and the position of the object area.
- a recognition process different from any of the first recognition process and the second recognition process may be executed.
- any method may be adopted as a method for determining whether or not the object 1 to be recognized is the object 1 recognized in the previous frame. For example, in each frame, the object region extracted from the detection result of the sensor 10 is compared with the recognition result in the previous frame, so that the object region is the same object as the object 1 recognized in the previous frame. It is possible to determine whether or not it is an object region of. For example, an ID (identification information) is assigned to each of one or more objects recognized in the first frame. If it is determined that the object area extracted from the detection result in the next frame is the same object area of the object 1 as the object 1 recognized in the previous frame, the same ID is assigned. And take over the ID.
- ID identification information
- the execution recognition process set in the previous frame makes it possible to execute the recognition process for the same object 1.
- a new ID is assigned to the newly recognized object.
- the execution recognition process set for each of the one or more objects 1 is updated at each timing when the recognition unit 21 recognizes the one or more objects 1.
- the first recognition process with low performance and low load (rule-based recognition process) and the second recognition process with high performance and high load (machine learning-based recognition process) can be performed on one or more objects 1.
- an upper limit value may be set for the number of objects 1 in which the second recognition process (machine learning-based recognition process) is set as the execution recognition process.
- one or more objects 1 so that the number of objects 1 for which the second recognition process (machine learning-based recognition process) is set as the execution recognition process by the setting unit 22 is equal to or less than a predetermined upper limit number.
- Execution recognition processing may be set for each of the above. This makes it possible to execute efficient recognition processing while sufficiently suppressing the processing load.
- FIG. 3 is a schematic diagram showing a configuration example of the information presentation system 150.
- the information presentation system 150 can also be called an information processing system or a display control system.
- three variation examples are shown as configuration examples of the information presentation system 150.
- the information presentation system 150 can display various images in a predetermined display area so that the user 2 can operate them. For example, any image such as a content image such as a video, a map, a window for displaying an application, various GUIs, a hologram image, and a virtual object image such as AR (Augmented Reality) may be displayed.
- the display of images can be said to be the display of graphics.
- the user 2 can perform various input operations on the displayed image, for example, by using his / her own hand.
- the hand includes the finger.
- any input operation such as a touch operation, a drag operation, a scroll operation, and a pinch operation may be executed. For example, it is possible to perform an input operation by changing the posture of the hand (finger).
- the input operation includes various actions (gestures) performed by the user in order to execute a predetermined process.
- the present invention is not limited to the case where a predetermined process is actually executed according to the input operation. That is, when a movement such as a touch operation or a pinch operation is determined, the movement such as the touch operation is included in the input operation even if a predetermined process is not executed according to the movement.
- the movement such as the touch operation is included in the input operation. For example, suppose that a touch and drag operation is performed in an attempt to move an icon or the like. However, it is assumed that the icon movement process is not executed when the icon movement is not associated with the touch and drag operations on the application side, or when the touch position is deviated. Even in such a case, the touch and drag operations performed by the user shall be included in the input operation.
- the information presentation system 150 can execute various processes in response to an input operation using the hand of the user 2.
- the display of the image displayed in the display area is controlled according to the input operation.
- arbitrary processing such as switching the display of the image, moving the image, enlarging / reducing the image, displaying the drawn image (drawing control), and the like may be executed.
- various processes other than image display control may be executed.
- the user 2 can use various services such as sending / receiving e-mails and posting SNS by performing input operations on the screens of various applications displayed in the display area.
- the information presentation system 150 includes a projector 25, a sensor 30, and an information processing device 40.
- the devices are connected to each other so as to be able to communicate with each other by any connection form.
- the projector 25 is installed so as to be able to display various images in a predetermined display area.
- the present technology can be applied even when a display device other than the projector 25 is used.
- the present technology can be applied to a system in which the user 2 performs an input operation on an image displayed by a touch panel, a display such as a liquid crystal display, an HMD (Head Mounted Display), or the like. ..
- the sensor 30 and the information processing device 40 can construct the object recognition system 100 shown in FIG.
- the sensing area of the sensor 10 is set corresponding to the display area of the projector 25. Typically, the sensing area is set to include the entire display area.
- the information processing device 40 includes a recognition unit 21 and a setting unit 22 shown in FIG.
- a display area and a sensing area are set on the top surface of the table 35.
- the sensor 30 and the projector 25 are installed on the upper side of the top surface. Since the image is projected from the upper side, it is possible to superimpose the image on a real object or the like arranged on the top surface.
- the top surface of the table 35 is made of a transparent material such as a glass plate.
- the projector 25 is arranged on the lower side of the top surface, and the image is projected from the lower side.
- the sensor 30 is arranged on the upper side of the top surface.
- a display area and a sensing area are set on the wall 36.
- the projector 25 and the sensor 30 are installed on the wall 36.
- various variations can be adopted as a configuration example of the information presentation system 150 according to the present technology. Of course, any configuration other than the configuration shown in FIG. 3 may be adopted.
- FIG. 4 is a schematic diagram showing a functional block diagram of the information processing device 40.
- a processor such as a CPU executes a program related to the present technology
- a processing execution unit 41 and a recognition processing unit 42 are configured as functional blocks.
- the process execution unit 41 executes various processes in response to an input operation using the hand of the user 2. For example, image data, image display control signals, and the like are displayed on the projector 25. In addition, any processing may be executed.
- the recognition processing unit 42 includes a hand recognition unit 43, a priority calculation unit 44, a recognition processing setting unit 45, and a priority definition unit 46.
- the hand recognition unit 43 corresponds to the recognition unit 21 shown in FIG. In the present embodiment, the user's hand is set as one or more objects 1. Then, the first recognition process (rule-based recognition process) and the second recognition process (machine learning-based recognition process) are used in combination to execute the recognition process for one or more hands.
- the priority calculation unit 44, the recognition process setting unit 45, and the priority definition unit 46 correspond to the setting unit 22 shown in FIG.
- the priority calculation unit 44, the recognition process setting unit 45, and the priority definition unit 46 are interlocked with each other to perform the first recognition process (rule-based recognition process) for one or more hands.
- a second recognition process (machine learning-based recognition process) is set as the execution recognition process.
- the priority calculation unit 44 calculates the priority for each of the one or more objects based on the object information for each of the one or more objects. In the present embodiment, the priority is calculated based on the object information (including the recognition result by the hand recognition unit 43) for each of the one or more hands.
- the recognition process setting unit 45 sets the execution recognition process for each of one or more objects based on the calculated priority.
- the execution recognition process is set for each of the one or more hands based on the calculated priority.
- a second recognition process (machine learning base) is performed for an object (hand) having a relatively high priority among one or more objects (hands).
- Recognition process is set as the execution recognition process.
- a second recognition process (machine learning-based recognition process) is set as an execution recognition process in descending order of priority for each of one or more objects (hands).
- the order of priority is within the range of the upper limit number or less.
- the second recognition process (machine learning-based recognition process) is set as the execution recognition process. Any other method may be used as the method for setting the execution recognition process based on the priority.
- the priority definition unit 46 defines various parameters related to a calculation method for calculating the priority based on the object information. For example, parameters are defined for each application provided to the user 2 via the information presentation system 150. For example, a plurality of elements (parameters) for calculating the priority are defined from the object information. Then, the priority setting value is defined for the state of the object and the like for each element. For example, when "movement of an object" is defined as an element for calculation, each of a plurality of states related to "movement of the object” such as "stationary”, “movement at a constant speed", and "reciprocating motion" is performed on the element. Define the priority setting value. In addition, a coefficient is set for each of the plurality of elements.
- the priority can be calculated by the following formula.
- (Priority) Coefficient a ⁇ (Priority setting value for element a) + Coefficient b ⁇ (Priority setting value for element b) + Coefficient c ⁇ (Priority setting value for element c) + Coefficient d ⁇ (Element d)
- Priority setting value for By appropriately setting the coefficient, it is possible to weight each element for calculating the priority.
- elements and coefficients for priority calculation so that a second recognition process (machine learning-based recognition process) is preferentially set as an execution recognition process for an object having a high importance as a recognition target. May be defined as appropriate.
- the elements for calculating the priority are defined in advance, and the coefficient of each element may be changed by the priority definition unit 46 according to the application or the like. Alternatively, it may be defined for each application including elements for calculation and priority setting values.
- the hand of the user 2 is set as the object 1 to be recognized.
- the sensing area are necessarily used for operation.
- detecting the hand used for the operation with higher accuracy leads to improvement of the operability of the user 2 (improvement of the operation experience).
- a parameter called priority is defined, and the priority is calculated numerically for each of one or more hands.
- the elements and coefficients for calculating the priority are defined so that the hand actually used for the operation can be recognized with high accuracy by the user 2.
- the elements and coefficients for priority calculation so that the second recognition process (machine learning-based recognition process) is set as the execution recognition process for the hand actually used for the operation by the user 2. Is defined as appropriate.
- priority setting value is normalized to the range of 0 to 1. Of course, it is not limited to this.
- FIG. 5 is a schematic diagram for explaining the “hand activity amount”.
- FIG. 5A when the hand 3 is moving, it is possible to specify the "activity amount of the hand" by the distance.
- FIG. 5B when the hand 3 is rotating, it is possible to define the "hand activity amount” by the rotation angle.
- FIG. 6 is a diagram for explaining “distance from a predetermined position of the hand”.
- the priority setting value is set according to the distance from the predetermined position. For example, the closer to a predetermined point of interest, the higher the priority setting value.
- the points of interest are, for example, the center of the screen, the position of a UI component such as a button, the position of a certain object, and the like, which may be set for each application.
- the button 1 and the button 2 are set as the points of interest 5.
- the priority setting value is set according to the distance between the position of the hand 3 and the position of the attention point 5.
- the center position of the hand 3 is set as the position of the hand 3.
- the position of the point of interest 5 is defined by a fixed value (for example, an XY coordinate value) for the point of interest 5 in which the position of the enter button, the close button, or the like is fixed.
- a fixed value for example, an XY coordinate value
- the position of the point of interest 5 at the time of priority calculation is used.
- the highest priority setting value (1.0) is set for the distance between the center position of the hand 3 and the attention point 5 in the state where the hand 3 and the attention point 5 are in contact with each other.
- the minimum priority setting value (0.0) is set.
- a value included in the range of 0 to 1 is defined as a priority setting value so as to be inversely proportional to the distance between the point of interest 5 and the center position of the hand 3. ..
- the priority setting value may be adjusted according to the importance of the point of interest 5. For example, the attention point 5 having a low importance may be defined so that the priority setting value becomes low even if the distance is the same by multiplying the attention point 5 by a coefficient less than 1. By appropriately adjusting the value of the coefficient less than 1, it becomes possible to define the priority setting value according to the importance of the point of interest 5.
- FIG. 7 is a diagram for explaining the “hand posture”.
- a pistol posture a state in which only two fingers of the thumb and index finger are extended, hereinafter referred to as a pistol posture
- FIGS. 7A to 7D with respect to the pistol posture.
- a high priority setting value (1.0) is defined.
- a priority setting value (0.5) and a priority setting value lower than the pistol posture are defined in (described as posture). Of course, it is not limited to such a setting.
- a high priority setting value is set for the pinch posture. Then, a slightly higher priority setting value is set for the index finger posture, and a lower priority setting is set for the par posture. For other postures, the priority setting value is set to 0. Such a definition may be adopted.
- FIG. 8 is a diagram for explaining “presence or absence of manual input operation”.
- a priority setting value is set for the presence or absence of an input operation from the user 2. For example, set a high priority setting value for a specific input operation. For example, as shown in FIG. 8A, a high priority setting value is set when a touch and drag input operation is performed on the UI component of the application. Further, for example, as shown in FIG. 8B, a high priority setting value is set when the UI component is enlarged / reduced by a pinch operation.
- the presence or absence of a predetermined input operation may be determined based only on the recognition result by the hand recognition unit 43. That is, the presence or absence of an input operation may be determined only by the predetermined movement (gesture) of the hand 3.
- a predetermined process when executed according to a predetermined movement (gesture) of the hand 3 by an application or the like, it may be determined that there is a predetermined input operation. That is, it is determined that there is a predetermined input operation when the icon is selected or enlarged / reduced in response to the touch operation or pinch operation as well as the movement of the hand 3 which is determined to be a touch operation or pinch operation. May be done. Then, in the case of the input operation defined by the priority definition unit 46, the priority setting value set for the input operation is used to calculate the priority. In this case, for example, the determination can be made by acquiring information on whether or not a predetermined process is executed from the application side.
- FIG. 9 is a diagram for explaining “information on related objects related to the hand”.
- the owner of the hand 3 that is, the two users themselves is the related object.
- the priority setting value is defined for the tracking result of the line of sight of the user 2.
- FIG. 9A the more the tip of the line of sight and the position of the hand 3 match, the higher the possibility that the hand 3 is used for the operation, and therefore a higher priority setting value is defined.
- FIG. 9B when the tip of the line of sight is directed in a direction completely different from that of the hand, it is highly likely that the hand is just placed, so the priority setting value is defined as 0. NS.
- any definition may be adopted.
- the line-of-sight tracking is detected by, for example, another sensor whose eye is the sensing target of the user 2.
- information on various other related objects may be used.
- a plurality of information on other related objects may be defined, and priority setting values may be defined.
- FIG. 10 is a schematic diagram for explaining an example of a first recognition process (rule-based recognition process) and a second recognition process (machine learning-based recognition process) with the hand 3 as the object 1. ..
- the process of executing the recognition process and detecting the input operation based on the three-dimensional depth image data detected by the sensor 30 is exemplified.
- coarse depth detection, arm detection, hand area depth calculation, tip detection, fingertip area depth calculation, finger ridge detection and touch detection, and operation detection are executed in order. Will be done.
- the apparent tip, the center position of the hand 3, and the like are calculated from the depth image of the hand area (corresponding to the object area), and the presence or absence of touch operation or the like is detected.
- NS the presence or absence of touch operation or the like.
- the rule-based recognition process can be executed with a relatively light amount of processing, but the position that is not visible on the depth image cannot be calculated. Therefore, when the fingertip is hidden from the sensor 30, the detection accuracy of the position of the fingertip or the like is lowered. That is, it becomes a weak recognition process for occlusion (a state in which the object in the foreground hides (invisible) the object behind).
- occlusion a state in which the object in the foreground hides (invisible) the object behind.
- it is recognized whether or not it is the hand 3 based on the area and shape of the silhouette it is often the case that the object and the hand 3 are erroneously recognized.
- the hand pose estimation is executed by estimating the 3D coordinates of 14 feature points.
- the fingertip region depth calculation, the detection of the finger ridge portion, and the touch detection are executed for each of the five fingers based on the estimated hand pose.
- the hand posture is calculated based on the estimated hand pose, and the 3D angle of the palm and the bending angle of the finger are calculated.
- the presence or absence of touch operation or the like is detected based on the results of detection and touch detection of the ridge portion of each of the five fingers, the 3D angle of the palm, and the bending angle of the fingers.
- the hand 3 can be identified with extremely high accuracy.
- the performance is basically better in the machine learning-based recognition process. Therefore, in order to recognize the operation of the user 2 with high accuracy, it is effective to use the machine learning-based recognition process.
- the permissible number (upper limit number) of the hands 3 capable of executing the recognition process is determined for each performance of the information processing device 40 to be used.
- the present technology uses both rule-based recognition processing and machine learning-based recognition processing. Then, a rule-based recognition process or a machine learning-based recognition process can be efficiently assigned as an execution recognition process to each of the plurality of moves 3 based on the priority.
- hand posture detection for determining the “hand posture”, which is an element for calculating the priority may be executed based on the result of the hand region depth calculation.
- the closest hand posture may be identifiable from among a plurality of types of "hand postures" defined as elements for calculating the priority by the priority definition unit 46.
- the hand-posture figure detection may be performed on a machine learning basis or on a rule basis.
- the hand posture detection algorithm may be set based on the desired recognition accuracy, the amount of processing that can be used, and the like.
- the hand posture detection does not necessarily have to be executed for each frame in which the recognition process is performed, and may be performed at a speed at which the information processing device 40 to be used can sufficiently calculate. For example, it is possible to execute at a frame rate slower than the recognition process.
- by executing the hand posture detection for each frame in which the recognition process is performed it is possible to calculate the priority with high accuracy.
- FIG. 12 is a schematic diagram showing an operation example of the information presentation system.
- hand recognition by the hand recognition unit 43 priority calculation by the priority calculation unit 44, and execution recognition processing setting by the recognition processing setting unit 45 are executed.
- the front frame (t-1) hand recognition is executed based on the detection result of the sensor 30.
- the priority is calculated for each of one or more recognized hands 3.
- object information other than the recognition result for example, the result of hand posture detection illustrated in FIG. 11 and various object information related to the element for calculating the priority may be used.
- the execution recognition process is set for each of the one or more moves 3.
- the execution recognition process set in the previous frame (t-1) is executed for the hand 3 recognized in the previous frame (t-1).
- a priority is calculated for each of the recognized hands 3 or more, and the execution recognition process is set based on the calculated priority.
- the next frame (t + 1) which is the next frame, hand recognition is executed based on the detection result of the sensor 30.
- the execution recognition process set in the current frame (t) is executed for the hand 3 recognized in the current frame (t).
- next frame (t + 1) a priority is calculated for each of the recognized hands 3 or more, and the execution recognition process is set based on the calculated priority.
- the execution recognition process set in the previous frame (t-2) is used for hand recognition in the previous frame (t-1). In this way, the hand 3 existing from the previous frame is preferentially processed, and the execution recognition process set in the previous frame is executed.
- FIG. 13 is a flowchart showing a setting example of priority calculation and execution recognition processing for one or more hands 3 recognized by hand recognition.
- the priority calculation process is executed for each of the hands 3 of 1 or more. It is determined whether all hands have been processed (step 101). That is, it is determined whether or not the priority calculation is completed for all the recognized moves 3. If all the hands have not been processed (No in step 101), the following processing is executed for each of the unprocessed hands 3. It is determined whether or not all the defined priority calculation elements have been processed (step 102). If all the elements have not been processed (No in step 102), it is determined whether or not to use the elements for the priority calculation for the elements that have not been processed (step 103).
- step 103 If it is determined that the element is not used for priority calculation (No in step 103), the element is processed and the process returns to step 102. If it is determined to be used for priority calculation (Yes in step 103), the product of the defined coefficient and priority setting value (coefficient x priority setting value) is calculated for the element and integrated as the priority. (Step 104). As a result, the element is processed, and the process returns to step 102. For example, for each application, a flag or the like for whether or not to use for priority calculation is defined for an element for priority calculation, and it is determined whether or not to use for priority based on the flag or the like. May be done.
- each element is defined in the priority setting value (0.0) with respect to the state of the hand or the like, it may be determined that the element is not used for the priority calculation.
- the element can be easily defined as an element not used for the priority calculation.
- coefficient x priority set value is integrated for all the elements used and output as the integration result. Then, the priority in this frame is calculated based on the integration result and the priority calculated in the previous frame (step 105). For example, the priority of this frame can be calculated by the following formula.
- (Priority) w ⁇ (Priority of previous frame) + (1-w) ⁇ (Integration result) w: Coefficient in the range of 0 to 1. For example, if the priority of the previous frame is to be reflected more, the coefficient w is increased. On the other hand, if it is desired to newly calculate the priority for each frame, the coefficient w is set to 0. Such a setting is possible. Assuming that the coefficient w is 0.5, the average of the priority in the previous frame and the integration result is calculated as the priority in this frame. In addition, an arbitrary calculation method based on the two values may be used. Alternatively, the priority may be calculated without using the priority calculated in the previous frame.
- step 105 the priority of the hand 3 existing in the previous frame is updated.
- the integration result of (coefficient ⁇ priority set value) of each element is calculated as the priority.
- the priority calculation process ends and the execution recognition process setting is executed (step 106).
- an allowable number (P) of hands 3 having a high priority are taken out, and a second recognition process (machine learning-based recognition process) is set as an execution recognition process.
- a first recognition process (rule-based recognition process) is set as the execution recognition process.
- the second recognition process (machine learning-based recognition process) is set with priority given to the calculated hand 3 having the highest priority.
- a new hand 3 is detected in each frame. For example, when the hand region extracted from the three-dimensional depth image data is compared with the recognition result of the previous frame, it is determined that the corresponding hand 3 does not exist in the previous frame. In this case, for example, it is determined whether or not the number of hands 3 for which the second recognition process (machine learning-based recognition process) is set as the execution recognition process is less than the allowable number (P). If the number of hands 3 for which the second recognition process (machine learning-based recognition process) is set is less than the allowable number (P), the second recognition process (machine learning) is performed for the newly detected hand. Hand recognition is executed by the base recognition process).
- the first recognition process (machine learning-based recognition process) is set has reached the permissible number (P)
- the first recognition process (for the newly detected hand 3) Hand recognition is executed by rule-based recognition processing). After that, the process shown in FIG. 13 is executed, the priority of the newly detected hand 3 is updated for each frame, and the execution recognition process is set based on the updated priority.
- FIG. 14 is a flowchart showing another example of setting the execution recognition process.
- the process shown in FIG. 14 can be executed.
- a second recognition process (machine learning-based recognition process) is set, and the number (K) of hands 3 whose priority is equal to or higher than a predetermined threshold value is calculated (step 201).
- the second recognition process (machine learning-based recognition process) is set as the execution recognition process in the previous frame, and the priority calculated in step 105 of FIG. 13 is predetermined.
- the number of hands 3 that is equal to or greater than the threshold value of is calculated.
- step 202 It is determined whether or not the calculated number of hands (K) is less than the permissible number (P) in which the second recognition process (machine learning-based recognition process) can be set (step 202). That is, it is determined whether or not the number of hands 3 for which the second recognition process (machine learning-based recognition process) is set in the previous frame has reached the permissible number (P). If the calculated number of hands 3 (K) is not less than the permissible number (P) in which the second recognition process (machine learning-based recognition process) can be set (No in step 202), the second recognition A process (machine learning-based recognition process) is set, and a second recognition process is set for the hand 3 whose priority is equal to or higher than the threshold value.
- a first recognition process (rule-based recognition process) is set as the execution recognition process (step 203). If the calculated number of hands (K) is less than the permissible number (P) in which the second recognition process (machine learning-based recognition process) can be set (Yes in step 202), the second recognition process (Machine learning-based recognition process) is set, and a second recognition process is set for the move 3 whose priority is equal to or higher than the threshold value (step 204). As a result, a second recognition process (machine learning-based recognition process) is set for K hands 3 out of the allowable number P.
- PK hands having a high priority are taken out, and a second recognition process (machine learning-based recognition process) is set as the execution recognition process. Further, for the remaining hands, a first recognition process (rule-based recognition process) is set as the execution recognition process (step 205).
- a predetermined threshold value is set for the priority.
- a second recognition process (machine learning-based recognition process) is set, and the setting of the execution recognition process may be maintained for the hand 3 whose priority is equal to or higher than the threshold value. If the priority of the hand 3 for which the second recognition process (machine learning-based recognition process) is set is less than the threshold value, the remaining move in step 205 is executed and recognized based on the priority. The processing settings are updated. Therefore, a second recognition process (machine learning-based recognition process) is set, and the second recognition process is performed until the priority is lower than the predetermined threshold value for the hand 3 whose priority is equal to or higher than the threshold value. It is possible to maintain the setting of (machine learning-based recognition processing).
- the threshold value related to the priority can be defined for each application by the priority definition unit 46. For example, the threshold value can be set based on the maximum value of the integration result of (coefficient ⁇ priority setting value).
- FIG. 15 is a schematic diagram showing an example of an application image of a map application.
- an application image of a map hereinafter, may be simply referred to as a map
- a depth sensor is arranged as a sensor 20 on the upper side of the table 35.
- Each user 2 can perform various input operations using his / her own hands (left hand 6 and right hand 7). As shown in FIGS. 16A to 16D, in this embodiment, it is assumed that the following input operations can be performed on the map application. Drag operation with index finger posture ... Draw line Drag operation with 5 fingers in par posture ... Scroll map Pinch in / pinch out operation with 2 fingers ... Enlarge / reduce map Tap operation ... Predetermined location on map Information display In addition, any input operation may be adopted as a feasible input operation.
- the permissible number of hands (upper limit number) in which the second recognition process (machine learning-based recognition process) can be set as the execution recognition process is two. That is, it is assumed that the second recognition process (machine learning-based recognition process) can be set up to a maximum of two out of four hands, that is, a total of eight hands.
- FIG. 17 is an example of elements and coefficients for calculating priority defined by the priority definition unit 46.
- the elements for calculating the priority are "hand activity amount”, “distance from the predetermined position of the hand”, “hand posture”, “presence or absence of input operation by hand”, and "related to the hand”.
- Information on related objects to be used is defined. In this embodiment, it is determined whether or not there is a predetermined input operation on the application. That is, when the process is actually executed in response to a predetermined operation or the like by the user 2, it is determined that there is a predetermined input operation. Further, as the "information on the related object related to the hand", the tracking information of the line of sight illustrated in FIG. 9 is defined. As shown in FIG.
- the coefficient of "hand posture” is set to half the value of other factors in consideration of the characteristics of the map application.
- the coefficient of "presence or absence of manual input operation” is doubled as that of other elements.
- the coefficient is 0 for the tracking information which is "information on the related object related to the hand”. Therefore, the element of "information on related objects related to the hand” is not used.
- the threshold value for priority is defined in 2.0. As a result, the priority is always equal to or higher than the threshold value for the hand that has been subjected to the input operation in which the priority coefficient is 1.0 and is recognized by the second recognition process (machine learning-based recognition process). Therefore, even if the priority is exceeded by another hand, the setting of the second recognition process is maintained, so that the operation is not hindered and high operability is exhibited.
- FIG. 18 is a diagram for explaining the definition of “distance from a predetermined position of the hand”.
- many tappable places are scattered throughout the map 50, and pinch-in / pinch-out operations and drag operations can be performed anywhere on the map 50. Therefore, we do not pay attention to a specific UI component, but at least it is assumed that the hand in the center of the table exists with some operation intention than the hand at the end, and the center point CP of the table 35 is the point of interest. Therefore, the closer to the center point CP of the table 35, the higher the priority setting value is defined. For example, the following equation can be used.
- (Priority set value) 1.0- (Distance from center) / (Predetermined threshold value)
- a circle is set as a recognition-required area at the center point CP of the table 35.
- the radius of the circle can be used as a threshold value.
- the threshold value may be set based on the size of the table 35, for example, the maximum value or the minimum value of the distance from the center to the edge of the table 35.
- FIG. 19 is a diagram for explaining the definition of “hand posture”.
- a condition such as touching the map 50 with a specific hand posture is set as an execution condition of a predetermined process.
- the par posture, the index finger posture, the pinch posture, and other postures are classified, and the priority setting value is defined.
- the pinch posture is a posture in which only the thumb and index finger are extended and the other fingers are bent, which is a necessary condition for the pinch-in / pinch-out operation. This operation is easier to hide from the sensor 30 than other operations and requires touch position accuracy, so we want to recognize it on a machine learning basis.
- a priority setting value of 1.0 is defined for a pinch posture having a high probability of performing a pinch-in / pinch-out operation.
- 0.0 is defined for the index finger posture
- 0.5 is defined for the par posture. This is because the index finger posture is relatively stable in recognition of the fingertip even on a rule basis, and therefore the need for recognition on a machine learning basis is lower than that in the par posture.
- FIG. 20 is a diagram for explaining a definition of “presence or absence of manual input operation”.
- the priority setting value 0.5
- a priority setting value 1.0
- a priority setting value 0.0
- the enlargement / reduction of the map is an operation that requires accuracy as described above, the priority setting value is set high.
- the drag corresponding to line drawing and scrolling is also set to 0.5 because we want the accuracy as much as possible.
- the process corresponding to the operation with two fingers is executed.
- a pinch posture a posture in which only the thumb and index finger are extended and the other fingers are bent
- enlargement / reduction is executed.
- FIG. 21A when the posture is recognized as a pinch posture and the user is dragging with a two-point touch, enlargement / reduction is executed.
- FIG. 21A when the posture is recognized as a pinch posture and the user is dragging with a two-point touch, enlargement / reduction is executed.
- FIG. 21A when the posture is recognized as a pinch posture and the user is dragging with a two-point touch
- FIG. 22 is a schematic view showing an example of the hand state of each user 2.
- User 2a User 2a is resting both hands and is not performing any operation.
- the priority (integration result) is 0.0.
- the priority (integration result) is 0.0.
- [User 2c] The user 2c is resting with his left hand 6c in the par position and is not performing any operation.
- the information display of the tapped position is executed by the tap operation of the index finger posture.
- the priority (integration result) is 0.25.
- the priority (integration result) is 0.7.
- the priority setting value of the index finger posture of the right hand is 0, and the tap operation is also 0. That is, both are ignored, so the priority is not very high.
- the priority (integration result) is 1.45.
- the right hand 7d has the same tap operation as the user 2c's right hand 7c, but in a par posture. Also close to the center of the table. Therefore, the priority is higher than that of the user 2c's right hand 7c.
- FIG. 22 shows the priority calculated for the left hand 6 and the right hand 7 of each user 2.
- the permissible number of hands for which the second recognition process (machine learning-based recognition process) can be set is two. Therefore, the second recognition process (machine learning-based recognition process) is assigned to the right hand 7b that is performing the enlargement / reduction operation of the user 2b and the right hand 7d that is performing the tap operation in the par posture of the user 2d. In this way, it is possible to accurately extract hands with high operation importance, and it is possible to recognize these hands with high accuracy by the second recognition process (machine learning-based recognition process). .. It can also be seen that it is possible to eliminate the hands that are just resting and extract the hands that are being operated.
- the priority (integration result) is 2, which is higher than the priority of 1.45 on the right hand 7d of the user 2d.
- the priority (integration result) is 1.05, which is high, but is lower than 1.45, which is the priority of the user 2d's right hand 7d.
- a second recognition process (machine learning-based recognition process) is assigned to the right hand 7b performing the enlargement / reduction operation of the user 2b and the right hand 7c performing the drag operation of the user 2c. Be done. That is, the setting of the second recognition process (machine learning-based recognition process) can be switched from the right hand 7d performing the tap operation of the user 2d to the right hand 7c performing the drag operation of the user 2c. In this way, it is possible to set a second recognition process (machine learning-based recognition process) for a drag operation that requires higher recognition accuracy than a tap operation.
- the priority calculation amount not only the "hand activity amount” but also other elements are defined, so that the second recognition process (machine learning) is performed for the right hand 7a of the user 2a who is moving wastefully.
- the base recognition process is not set, and it is possible to remove it from the hands with high operation importance.
- a second recognition process (machine learning-based recognition process) is assigned to the right hand 7b performing the enlargement / reduction operation of the user 2b and the right hand 7c performing the drag operation of the user 2c. Be done. That is, the setting of the second recognition process (machine learning-based recognition process) is maintained for these two hands. This is because the priority of the right hand 7c performing the drag operation of the user 2c is equal to or higher than the priority threshold value (2.0). For hands whose priority is equal to or higher than the threshold value, the setting of the second recognition process (machine learning-based recognition process) is maintained even if a new hand with a higher priority appears.
- the priority threshold value 2.0
- the recognition process of the first recognition process (rule base) is assigned to the right hand 7d of the user 2d who actively performs the tap operation having a priority of 2.05. If either the right hand 7b of the user 2b or the right hand 7c of the user 2c falls below the threshold value, the second recognition process (machine learning-based recognition process) is assigned to the right hand 7d of the user 2d for the first time. ..
- the recognition unit executes the first recognition process or the second recognition process capable of highly accurate recognition for each of the recognized objects 1 or more.
- the maximum number of fingers that can be detected is basically inversely proportional to the processing load and recognition performance of hand recognition. For example, when a recognition process having a low processing load and a low recognition performance is used, a relatively large number of detections can be tolerated.
- the system automatically determines that the first recognition process and the second recognition process are set without the user being aware of it.
- the user can voluntarily switch the settings of the first recognition process and the second recognition process.
- the settings of the first recognition process and the second recognition process may be switched according to the user's instruction by the operation, the posture, the gesture, the voice, or the like with respect to the application.
- "presence or absence of manual input operation” is defined as an element for calculating the priority
- a specific touch operation priority setting value 1.0
- other operations priority
- the setting value 0.0 is defined.
- Specific touch operations include, for example, touch operations on specific buttons and specific objects, as shown in FIGS. 25B and 25C. Of course, it is not limited to this. If the user wants highly accurate recognition of his / her hand, he / she may perform a specific touch operation. As a result, for example, "by touching a specific button and a specific object, the hand can be recognized with higher accuracy, and various operations other than touch can be started.” It is possible to realize an application experience such as. In the calculation of the priority, a large number of priorities of the previous frame are left, and the priority is set so as to gradually decrease after performing a specific touch operation.
- the priority is maintained for a while after the specific touch operation is performed, and when a new hand appears for the specific touch operation, it is possible to transfer the high-precision recognition to the hand. For example, if you want to keep machine learning-based recognition processing for a specific time (for example, 10 seconds after a specific touch operation, keep high-precision recognition even if a new hand performing a specific touch operation appears. (Available), after a specific touch operation, the coefficient and the priority threshold may be adjusted so that the priority decreases but does not fall below the priority threshold during a specific time. Of course, depending on the priority of the other hand, the recognition process may not be switched.
- the gesture in the air that does not depend on a specific place enables the user to explicitly switch the recognition process.
- a “hand posture” is defined as an element for calculating the priority
- a priority setting value (1.0) is set for several Goover repetitions.
- the priority setting value 1.0 is set for waiting for 3 seconds with rock-paper-scissors.
- the priority setting value 0.0 is set.
- the second recognition process may be set as the execution recognition process, giving priority to the object whose predetermined state (position, posture, input operation, combination thereof, etc.) is recognized. Further, it may be calculated so that the priority of the object for which a predetermined state (position, posture, input operation, combination thereof, etc.) is recognized is relatively high. This makes it possible to provide a new operation experience for the user.
- visual feedback may be executed so that the recognition process currently set for the user can be grasped.
- a display on which the set recognition process can be grasped is projected or AR-displayed on or near the user's hand.
- the color coding shown in FIG. 27A, the change of the pointer type shown in FIG. 27B, the image display according to the setting of one of the recognition processes shown in FIG. 27C, and such visual feedback can be considered.
- any other feedback may be performed.
- feedback may be executed by voice, vibration, or the like.
- the permissible number (upper limit number) of objects for which the second recognition process can be set can be arbitrarily set according to the performance of the information processing apparatus.
- the system may automatically determine the permissible number. For example, suppose that the frame rate of recognition processing is specified by the user. In this case, the system side simulates the recognition process while increasing the number of hands to be processed, such as 0, 1, and 2. Then, when the frame rate falls below the frame rate specified by the user, a number one less than the number at that time is set as an allowable number. Of course, other methods may be adopted. Further, the allowable number may be dynamically changed according to the load state of the information processing apparatus and the like.
- FIG. 28 is a block diagram showing a hardware configuration example of the information processing device 20 (40).
- the information processing device 20 (40) includes a CPU 61, a ROM (Read Only Memory) 62, a RAM 63, an input / output interface 65, and a bus 64 that connects them to each other.
- a display unit 66, an input unit 67, a storage unit 68, a communication unit 69, a drive unit 70, and the like are connected to the input / output interface 65.
- the display unit 66 is a display device using, for example, a liquid crystal display, an EL, or the like.
- the input unit 67 is, for example, a keyboard, a pointing device, a touch panel, or other operating device.
- the input unit 67 includes a touch panel
- the touch panel can be integrated with the display unit 66.
- the storage unit 68 is a non-volatile storage device, for example, an HDD, a flash memory, or other solid-state memory.
- the drive unit 70 is a device capable of driving a removable recording medium 71 such as an optical recording medium or a magnetic recording tape.
- the communication unit 69 is a modem, router, or other communication device for communicating with another device that can be connected to a LAN, WAN, or the like.
- the communication unit 69 may communicate using either wire or wireless.
- the communication unit 69 is often used separately from the information processing device 20 (40).
- Information processing by the information processing device 20 (40) having the above hardware configuration is performed by cooperation between the software stored in the storage unit 68 or the ROM 62 or the like and the hardware resources of the information processing device 20 (40). It will be realized. Specifically, the information processing method according to the present technology is realized by loading the program constituting the software stored in the ROM 62 or the like into the RAM 63 and executing the program. The program is installed in the information processing apparatus 20 (40) via, for example, the recording medium 61. Alternatively, the program may be installed in the information processing apparatus 20 (40) via a global network or the like. In addition, any non-transient storage medium that can be read by a computer may be used.
- the information processing device according to the present technology may be integrally configured with other devices such as sensors and display devices. That is, the sensor, display device, or the like may be equipped with the function of the information processing device according to the present technology. In this case, the sensor or the display device itself is an embodiment of the concession processing device according to the present technology.
- the application of the object recognition system 100 illustrated in FIG. 1 is not limited to the application to the information presentation system 150 illustrated in FIG. 3 and the like. It is possible to apply the object recognition system according to the present technology to any system in any field that requires recognition of an object.
- the information processing method and program according to the present technology may be executed and the information processing device according to the present technology may be constructed by the cooperation of a plurality of computers connected so as to be communicable via a network or the like. That is, the information processing method and program according to the present technology can be executed not only in a computer system composed of a single computer but also in a computer system in which a plurality of computers operate in conjunction with each other.
- the system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether or not all the components are in the same housing.
- a plurality of devices housed in separate housings and connected via a network, and one device in which a plurality of modules are housed in one housing are both systems.
- the information processing method and program execution related to this technology by a computer system are performed when, for example, recognition of an object based on the detection result of a sensor, setting of execution recognition processing, etc. are executed by a single computer, and each Includes both when the process is performed by different computers. Further, the execution of each process by a predetermined computer includes causing another computer to execute a part or all of the process and acquire the result. That is, the information processing method and program according to the present technology can be applied to a cloud computing configuration in which one function is shared by a plurality of devices via a network and jointly processed.
- expressions using "twist” such as “greater than A” and “less than A” include both the concept including the case equivalent to A and the concept not including the case equivalent to A. It is an expression that includes the concept. For example, “greater than A” is not limited to the case where the equivalent of A is not included, and “greater than or equal to A” is also included. Further, “less than A” is not limited to “less than A”, but also includes “less than or equal to A”. When implementing the present technology, specific settings and the like may be appropriately adopted from the concepts included in “greater than A” and “less than A” so that the effects described above can be exhibited.
- the present technology can also adopt the following configurations.
- a recognition unit that recognizes each of one or more objects by executing a first recognition process or a second recognition process capable of recognizing with higher accuracy than the first recognition process on the detection result of the sensor.
- Information including a setting unit for setting the first recognition process or the second recognition process as an execution recognition process executed by the recognition unit for each of the recognized one or more objects. Processing equipment.
- the setting unit is an information processing device that updates the execution recognition process set for each of the one or more objects at predetermined time intervals.
- the setting unit is an information processing device that updates the execution recognition process set for each of the one or more objects at each timing when the recognition unit recognizes the one or more objects.
- the information processing device performs the execution recognition process for each of the one or more objects so that the number of the objects whose second recognition process is set as the execution recognition process is equal to or less than a predetermined upper limit number. Information processing device to set.
- the information processing device is an information processing device that sets the execution recognition process for each of the one or more objects based on the object information about each of the one or more objects.
- the information processing device is an information processing device including at least one of the position of the object, the state of the object, and the movement of the object. (7) The information processing device according to (5) or (6).
- the object information includes the amount of activity of the object, the distance from the predetermined position of the object, the posture of the object, the presence or absence of an input operation by the object, or the related object related to the object.
- An information processing device that contains at least one piece of information.
- the object information is an information processing device including a recognition result by the recognition unit for each of the one or more objects.
- the setting unit calculates a priority for each of the one or more objects based on the object information about each of the one or more objects, and the one or more based on the calculated priority.
- An information processing device that sets the execution recognition process for each of the objects.
- the setting unit is an information processing device that sets the second recognition process as the execution recognition process for the object having a relatively high priority among the one or more objects.
- the setting unit is an information processing device that sets the second recognition process as the execution recognition process in descending order of priority for each of the one or more objects.
- the priority is lower than the predetermined threshold value for the object in which the second recognition process is set as the execution recognition process and the priority is higher than the predetermined threshold value.
- An information processing device that maintains the setting of the second recognition process until.
- the setting unit is an information processing device that prioritizes the object for which a predetermined state has been recognized and sets the second recognition process as the execution recognition process.
- the setting unit is an information processing device that calculates the priority of the object for which a predetermined state is recognized to be relatively high.
- the first recognition process is a recognition process using a rule-based algorithm.
- the second recognition process is an information processing device that is a recognition process using a machine learning algorithm.
- the second recognition process is an information processing device having a larger processing load than the first recognition process.
- Each of the above-mentioned one or more objects is an information processing device which is a predetermined part of the human body.
- An information processing method executed by a computer system. A recognition step of executing a first recognition process or a second recognition process capable of recognizing with higher accuracy than the first recognition process on the detection result of the sensor, and recognizing each of one or more objects.
- Processing method (19) A recognition step of executing a first recognition process or a second recognition process capable of recognizing with higher accuracy than the first recognition process on the detection result of the sensor, and recognizing each of one or more objects.
- the computer system is provided with a setting step of setting the first recognition process or the second recognition process as the execution recognition process executed by the recognition step for each of the recognized one or more objects.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本技術の一形態に係る情報処理装置は、認識部と、設定部とを具備する。前記認識部は、センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する。前記設定部は、認識された前記1以上の対象物の各々に対して、前記認識部により実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する。これにより、処理負荷を抑えた新たな認識処理を実行することが可能となる。
Description
本技術は、物体認識に適用可能な情報処理装置、情報処理方法、及びプログラムに関する。
特許文献1には、テーブルを表示面として情報を表示し、表示された情報に対するユーザの操作に応じて、種々の処理を実行することが可能な情報処理システムについて開示されている。
当該情報処理システムでは、表示面上の実オブジェクトの情報に応じて、表示面に表示される表示オブジェクトの表示領域を決定することが可能である。
これにより、情報を表示しようとする環境や、表示されている情報の状況に応じて、より適切かつ効率的に情報を表示することが可能となる。
当該情報処理システムでは、表示面上の実オブジェクトの情報に応じて、表示面に表示される表示オブジェクトの表示領域を決定することが可能である。
これにより、情報を表示しようとする環境や、表示されている情報の状況に応じて、より適切かつ効率的に情報を表示することが可能となる。
特許文献1に記載の情報処理システム等では、ユーザの操作等を高精度で認識することが重要である。しかしながら高精度の認識処理は処理負荷が大きく、認識精度の向上に対して問題となることも多い。
以上のような事情に鑑み、本技術の目的は、処理負荷を抑えた新たな認識処理を実行することが可能な情報処理装置、情報処理方法、及びプログラムを提供することにある。
上記目的を達成するため、本技術の一形態に係る情報処理装置は、認識部と、設定部とを具備する。
前記認識部は、センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する。
前記設定部は、認識された前記1以上の対象物の各々に対して、前記認識部により実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する。
前記認識部は、センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する。
前記設定部は、認識された前記1以上の対象物の各々に対して、前記認識部により実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する。
この情報処理装置では、認識された1以上の対象物の各々に対して、第1の認識処理又は高精度の認識が可能な第2の認識処理が、認識部により実行される実行認識処理として設定される。これにより、処理負荷を抑えた新たな認識処理を実現することが可能となる。
前記設定部は、所定の時間間隔で、前記1以上の対象物の各々に設定される前記実行認識処理を更新してもよい。
前記設定部は、前記認識部により前記1以上の対象物が認識されるタイミングごとに、前記1以上の対象物の各々に設定される前記実行認識処理を更新してもよい。
前記設定部は、前記第2の認識処理が前記実行認識処理として設定される前記対象物の数が、所定の上限数以下となるように、前記1以上の対象物の各々に対して前記実行認識処理を設定してもよい。
前記設定部は、前記1以上の対象物の各々に関する対象物情報に基づいて、前記1以上の対象物の各々に対して前記実行認識処理を設定してもよい。
前記対象物情報は、前記対象物の位置、前記対象物の状態、又は前記対象物の動きのうちの少なくとも1つを含んでもよい。
前記対象物情報は、前記対象物の活動量、前記対象物の所定の位置からの距離、前記対象物の姿勢、前記対象物による入力操作の有無、又は前記対象物に関連する関連対象物の情報のうちの少なくとも1つを含んでもよい。
前記対象物情報は、前記1以上の対象物の各々に対する前記認識部による認識結果を含んでもよい。
前記設定部は、前記1以上の対象物の各々に関する対象物情報に基づいて前記1以上の対象物の各々に対して優先度を算出し、算出された前記優先度に基づいて前記1以上の対象物の各々に対して前記実行認識処理を設定してもよい。
前記設定部は、前記1以上の対象物のうち前記優先度が相対的に高い前記対象物に対して、前記第2の認識処理を前記実行認識処理として設定してもよい。
前記設定部は、前記1以上の対象物の各々に対して前記優先度が高い順に、前記第2の認識処理を前記実行認識処理として設定してもよい。
前記設定部は、前記第2の認識処理が前記実行認識処理として設定されており前記優先度が所定の閾値よりも高い前記対象物に対して、前記優先度が前記所定の閾値よりも低くなるまで前記第2の認識処理の設定を維持してもよい。
前記設定部は、所定の状態が認識された前記対象物を優先して、前記第2の認識処理を前記実行認識処理として設定してもよい。
前記設定部は、所定の状態が認識された前記対象物の前記優先度を相対的に高く算出してもよい。
前記第1の認識処理は、ルールベースアルゴリズムを用いた認識処理であってもよい。この場合、前記第2の認識処理は、機械学習アルゴリズムを用いた認識処理であってもよい。
前記第2の認識処理は、第1の認識処理よりも処理負荷が大きくてもよい。
前記1以上の対象物の各々は、人体の所定の部位であってもよい。
本技術の一形態に係る情報処理方法は、コンピュータシステムにより実行される情報処理方法であって、認識ステップと、設定ステップとを具備する。
前記認識ステップは、センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する。
前記設定ステップは、認識された前記1以上の対象物の各々に対して、前記認識ステップにより実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する。
前記認識ステップは、センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する。
前記設定ステップは、認識された前記1以上の対象物の各々に対して、前記認識ステップにより実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する。
本技術の一形態に係るプログラムは、コンピュータシステムに以下のステップを実行させる。
センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する認識ステップ。
認識された前記1以上の対象物の各々に対して、前記認識ステップにより実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定するステップ。
センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する認識ステップ。
認識された前記1以上の対象物の各々に対して、前記認識ステップにより実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定するステップ。
以下、本技術に係る実施形態を、図面を参照しながら説明する。
[物体認識システム]
図1は、本技術の一実施形態に係る物体認識システムの構成例を説明するための模式的な図である。
物体認識システム100は、センサ10と、情報処理装置20とを有する。
センサ10と、情報処理装置20とは、有線又は無線を介して、通信可能に接続されている。各デバイス間の接続形態は限定されず、例えばWiFi等の無線LAN通信や、Bluetooth(登録商標)等の近距離無線通信を利用することが可能である。
図1は、本技術の一実施形態に係る物体認識システムの構成例を説明するための模式的な図である。
物体認識システム100は、センサ10と、情報処理装置20とを有する。
センサ10と、情報処理装置20とは、有線又は無線を介して、通信可能に接続されている。各デバイス間の接続形態は限定されず、例えばWiFi等の無線LAN通信や、Bluetooth(登録商標)等の近距離無線通信を利用することが可能である。
センサ10は、所定のセンシング領域に対してセンシングを実行し、センシング結果(検出結果)を出力する。
例えばセンシング領域に存在する1以上の対象物1の各々の位置、状態又は動き等をセンサ値として出力可能な任意のセンサが用いられてよい。
例えばセンサ10として、任意の画像センサや任意のデプスセンサ等を用いることが可能である。なお本開示において画像は、静止画像及び動画像(映像)の両方を含む。
2次元の画像を取得することが可能な画像センサとしては、例えば可視光カメラ、赤外カメラ等が挙げられる。
3次元情報を取得することが可能なデプスセンサとしては、ステレオカメラ、ToF(Time of Flight)センサ、ストラクチャライト(Structured Light)方式のデプスセンサ等が挙げられる。
また、物体の状態を取得するセンサとして、超音波センサ等が用いられてもよい。
その他、レーザ測距センサ、LiDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)等の任意の測距デバイスや、接触センサ、ソナー、照度計、生体センサ等の任意のセンサデバイスが用いられてもよい。
例えばセンシング領域に存在する1以上の対象物1の各々の位置、状態又は動き等をセンサ値として出力可能な任意のセンサが用いられてよい。
例えばセンサ10として、任意の画像センサや任意のデプスセンサ等を用いることが可能である。なお本開示において画像は、静止画像及び動画像(映像)の両方を含む。
2次元の画像を取得することが可能な画像センサとしては、例えば可視光カメラ、赤外カメラ等が挙げられる。
3次元情報を取得することが可能なデプスセンサとしては、ステレオカメラ、ToF(Time of Flight)センサ、ストラクチャライト(Structured Light)方式のデプスセンサ等が挙げられる。
また、物体の状態を取得するセンサとして、超音波センサ等が用いられてもよい。
その他、レーザ測距センサ、LiDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)等の任意の測距デバイスや、接触センサ、ソナー、照度計、生体センサ等の任意のセンサデバイスが用いられてもよい。
情報処理装置20は、例えばCPUやGPU、DSP等のプロセッサ、ROMやRAM等のメモリ、HDD等の記憶デバイス等、コンピュータの構成に必要なハードウェアを有する(図28参照)。
例えばCPUがROM等に予め記録されている本技術に係るプログラムをRAMにロードして実行することにより、本技術に係る情報処理方法が実行される。
例えばPC(Personal Computer)等の任意のコンピュータにより、情報処理装置20を実現することが可能である。もちろんFPGA、ASIC等のハードウェアが用いられてもよい。
本実施形態では、CPU等が所定のプログラムを実行することで、機能ブロックとしての認識部21と、設定部22とが構成される。もちろん機能ブロックを実現するために、IC(集積回路)等の専用のハードウェアが用いられてもよい。
プログラムは、例えば種々の記録媒体を介して情報処理装置20にインストールされる。あるいは、インターネット等を介してプログラムのインストールが実行されてもよい。
プログラムが記録される記録媒体の種類等は限定されず、コンピュータが読み取り可能な任意の記録媒体が用いられてよい。例えば、コンピュータが読み取り可能な非一過性の任意の記憶媒体が用いられてよい。
例えばCPUがROM等に予め記録されている本技術に係るプログラムをRAMにロードして実行することにより、本技術に係る情報処理方法が実行される。
例えばPC(Personal Computer)等の任意のコンピュータにより、情報処理装置20を実現することが可能である。もちろんFPGA、ASIC等のハードウェアが用いられてもよい。
本実施形態では、CPU等が所定のプログラムを実行することで、機能ブロックとしての認識部21と、設定部22とが構成される。もちろん機能ブロックを実現するために、IC(集積回路)等の専用のハードウェアが用いられてもよい。
プログラムは、例えば種々の記録媒体を介して情報処理装置20にインストールされる。あるいは、インターネット等を介してプログラムのインストールが実行されてもよい。
プログラムが記録される記録媒体の種類等は限定されず、コンピュータが読み取り可能な任意の記録媒体が用いられてよい。例えば、コンピュータが読み取り可能な非一過性の任意の記憶媒体が用いられてよい。
認識部21は、センサ10の検出結果に対して認識処理を実行することで、1以上の対象物1の各々を認識し、認識結果(認識情報)を出力することが可能である。認識処理は、認識手法とも言える。
認識部21による認識結果としては、例えば対象物1の位置、対象物1の状態、及び対象物1の動き等の任意の情報を含む。例えば、対象物1の活動量、対象物1の所定の位置からの距離、対象物1の姿勢、対象物1による入力操作の有無等、種々の情報を認識結果として出力することが可能である。
例えば、認識処理として、センサ10の検出結果として出力される2次元の画像データや3次元のデプス画像データや点群データ等から、対象物1が存在していると判定される領域(対象物領域)が抽出される。抽出された対象物領域のデータを入力として所定の認識アルゴリズムが実行され、認識結果が出力される。
このような処理に限定されず、2次元の画像データや3次元のデプス画像データ等の全体を入力として認識アルゴリズムが実行され、1以上の対象物1の各々に関する認識結果が出力されてもよい。
認識部21による認識結果としては、例えば対象物1の位置、対象物1の状態、及び対象物1の動き等の任意の情報を含む。例えば、対象物1の活動量、対象物1の所定の位置からの距離、対象物1の姿勢、対象物1による入力操作の有無等、種々の情報を認識結果として出力することが可能である。
例えば、認識処理として、センサ10の検出結果として出力される2次元の画像データや3次元のデプス画像データや点群データ等から、対象物1が存在していると判定される領域(対象物領域)が抽出される。抽出された対象物領域のデータを入力として所定の認識アルゴリズムが実行され、認識結果が出力される。
このような処理に限定されず、2次元の画像データや3次元のデプス画像データ等の全体を入力として認識アルゴリズムが実行され、1以上の対象物1の各々に関する認識結果が出力されてもよい。
認識処理として、例えばルールベースのアルゴリズムを用いた認識処理が実行される。例えば、対象物領域のデータに対して、対象物1のモデル画像とのマッチング処理等を実行する処理や、マーカ画像等を用いて対象物領域のデータ内の位置を特定する処理等により、認識情報を生成することが可能である。あるいは、対象物領域のデータからテーブル情報を参照することで認識情報を生成することも可能である。その他、ルールベースのアルゴリズムを用いた任意の認識処理が採用されてよい。
また認識処理として、機械学習アルゴリズムを用いた認識処理が実行されてもよい。例えばDNN(Deep Neural Network:深層ニューラルネットワーク)等を用いた任意の機械学習アルゴリズムを用いることが可能である。
例えば対象物領域のデータを入力として、機械学習アルゴリズムを実行することで、種々の推定情報を生成することが可能であり、認識結果として出力することが可能となる。例えばディープラーニング(深層学習)を行うAI(人工知能)等を用いることで、物体認識の推定精度を向上させることが可能となる。
例えば、学習用の対象物領域のデータに取得したい認識情報のラベルを設定し、学習用のデータセットを生成する。学習用のデータセットを用いて機械学習アルゴリズムに基づいて学習させることで、学習済パラメータが組み込まれたプログラムが学習済モデルとして生成される。学習済モデルにより、対象物領域のデータの入力に対して認識結果が出力される。
例えば対象物領域の3次元情報を入力として、対象物内の各特徴点の3次元位置を特定するといったことも可能である。また対象物が体の全体や体の一部である場合には、機械学習アルゴリズムにより、骨格推定を実行することも可能である。なお骨格推定は、ボーン推定やスケルトン推定とも呼ばれる。
以下、ルールベースのアルゴリズムを用いた認識処理を、ルールベースの認識処理と記載する場合がある。また機械学習アルゴリズムを用いた認識処理を、機械学習ベースの認識処理と記載する場合がある。
その他、認識処理を実行するための任意のアルゴリズムが用いられてよい。
また認識処理として、機械学習アルゴリズムを用いた認識処理が実行されてもよい。例えばDNN(Deep Neural Network:深層ニューラルネットワーク)等を用いた任意の機械学習アルゴリズムを用いることが可能である。
例えば対象物領域のデータを入力として、機械学習アルゴリズムを実行することで、種々の推定情報を生成することが可能であり、認識結果として出力することが可能となる。例えばディープラーニング(深層学習)を行うAI(人工知能)等を用いることで、物体認識の推定精度を向上させることが可能となる。
例えば、学習用の対象物領域のデータに取得したい認識情報のラベルを設定し、学習用のデータセットを生成する。学習用のデータセットを用いて機械学習アルゴリズムに基づいて学習させることで、学習済パラメータが組み込まれたプログラムが学習済モデルとして生成される。学習済モデルにより、対象物領域のデータの入力に対して認識結果が出力される。
例えば対象物領域の3次元情報を入力として、対象物内の各特徴点の3次元位置を特定するといったことも可能である。また対象物が体の全体や体の一部である場合には、機械学習アルゴリズムにより、骨格推定を実行することも可能である。なお骨格推定は、ボーン推定やスケルトン推定とも呼ばれる。
以下、ルールベースのアルゴリズムを用いた認識処理を、ルールベースの認識処理と記載する場合がある。また機械学習アルゴリズムを用いた認識処理を、機械学習ベースの認識処理と記載する場合がある。
その他、認識処理を実行するための任意のアルゴリズムが用いられてよい。
位置情報としては、例えば、絶対座標系(ワールド座標系)により規定される座標値(例えばXYZ座標値)が用いられる。あるいは、所定の点を基準(原点)とした相対座標系により規定される座標値(例えばxyz座標値又はuvd座標値)が用いられてもよい。相対座標系が用いられる場合、基準となる原点は、任意に設定されてよい。
本実施形態では、認識部21は、センサ10の検出結果に対して、第1の認識処理、又は第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行することが可能である。すなわち、認識部21により、異なる種類の2つの認識処理を実行することが可能である。
以下、第1の認識処理としてルールベースの認識処理が用いられ、第2の認識処理として機械学習ベースの認識処理が用いられる場合を例に挙げる。学習用のデータセットを用いて十分に学習を実行することで、機械学習ベースの認識処理により、精度の高い認識結果を得ることが可能となる。
もちろんこのような設定に限定される訳ではない。認識精度が異なる2種類のルールベースの認識処理が、第1の認識処理及び第2の認識処理として設定されてもよい。また認識精度が異なる2種類の機械学習ベースの認識処理が、第1の認識処理及び第2の認識処理として設定されてもよい。
なお典型的には、高精度の第2の認識処理は、低精度の第1の認識処理と比べて処理負荷が大きくなる
以下、第1の認識処理としてルールベースの認識処理が用いられ、第2の認識処理として機械学習ベースの認識処理が用いられる場合を例に挙げる。学習用のデータセットを用いて十分に学習を実行することで、機械学習ベースの認識処理により、精度の高い認識結果を得ることが可能となる。
もちろんこのような設定に限定される訳ではない。認識精度が異なる2種類のルールベースの認識処理が、第1の認識処理及び第2の認識処理として設定されてもよい。また認識精度が異なる2種類の機械学習ベースの認識処理が、第1の認識処理及び第2の認識処理として設定されてもよい。
なお典型的には、高精度の第2の認識処理は、低精度の第1の認識処理と比べて処理負荷が大きくなる
設定部22は、認識された1以上の対象物1の各々に対して、認識部21により実行される実行認識処理として、第1の認識処理(ルールベースの認識処理)又は第2の認識処理(機械学習ベースの認識処理)を設定する。
すなわち本実施形態では、認識部21により認識された1以上の対象物1の各々に対して、次のタイミングにおいて実行される認識処理(実行認識処理)が、第1の認識処理(ルールベースの認識処理)及び第2の認識処理(機械学習ベースの認識処理)から適宜選択されて設定される。
図1に示す例では、設定部22は、1以上の対象物1の各々に対する認識部21による認識結果に基づいて、次のタイミングにおいて実行される実行認識処理を設定する。
これに限定されず、1以上の対象物1の各々に関する任意の対象物情報に基づいて、1以上の対象物1の各々に対して実行認識処理が設定されてよい。
1以上の対象物1の各々に関する任意の対象物情報は、1以上の対象物1の各々に対する認識部21による認識結果を含む。従って、対象物情報は、上記にて認識結果として例示した種々の情報を含む。
その他、認識部21による認識結果以外の情報が、対象物情報として用いられてもよい。例えば、実行認識処理を設定するための情報が、対象物情報として、認識処理とは別の処理により生成されてもよい。
例えば、センサ10から出力される検出結果が対象物情報として用いられ、実行認識処理の設定に用いられてもよい。
また、対象物1に関連する関連対象物の情報が、対象物情報として用いられてもよい。例えば、対象物1が人体の所定の部位であった場合等において、当該部位の持ち主(すなわち本人)に関する情報が用いられてもよい。例えば本人の他の部位に関する情報や、視線、表情、体温等が、対象物情報として用いられてもよい。この場合、部位の持ち主が、対象物1に関連する関連対象物に相当する。
すなわち本実施形態では、認識部21により認識された1以上の対象物1の各々に対して、次のタイミングにおいて実行される認識処理(実行認識処理)が、第1の認識処理(ルールベースの認識処理)及び第2の認識処理(機械学習ベースの認識処理)から適宜選択されて設定される。
図1に示す例では、設定部22は、1以上の対象物1の各々に対する認識部21による認識結果に基づいて、次のタイミングにおいて実行される実行認識処理を設定する。
これに限定されず、1以上の対象物1の各々に関する任意の対象物情報に基づいて、1以上の対象物1の各々に対して実行認識処理が設定されてよい。
1以上の対象物1の各々に関する任意の対象物情報は、1以上の対象物1の各々に対する認識部21による認識結果を含む。従って、対象物情報は、上記にて認識結果として例示した種々の情報を含む。
その他、認識部21による認識結果以外の情報が、対象物情報として用いられてもよい。例えば、実行認識処理を設定するための情報が、対象物情報として、認識処理とは別の処理により生成されてもよい。
例えば、センサ10から出力される検出結果が対象物情報として用いられ、実行認識処理の設定に用いられてもよい。
また、対象物1に関連する関連対象物の情報が、対象物情報として用いられてもよい。例えば、対象物1が人体の所定の部位であった場合等において、当該部位の持ち主(すなわち本人)に関する情報が用いられてもよい。例えば本人の他の部位に関する情報や、視線、表情、体温等が、対象物情報として用いられてもよい。この場合、部位の持ち主が、対象物1に関連する関連対象物に相当する。
図2は、物体認識システムの動作例を示す模式図である。
1秒間に認識部21により実行される認識処理の回数(認識処理回数/秒)を認識処理のフレームレートとする。認識処理のフレームレートとしては、例えば30fps~1000fpsの範囲で設定される。もちろんこれに限定されず、認識処理のフレームレートは任意に設定されてよい。
例えば、認識処理のフレームレートとして、センサ10のフレームレートが設定され、センシングに同期して認識処理が実行されてもよい。
また物体認識システム100を使用するユーザにより、認識処理のフレームレートが指定可能であってもよい。
1秒間に認識部21により実行される認識処理の回数(認識処理回数/秒)を認識処理のフレームレートとする。認識処理のフレームレートとしては、例えば30fps~1000fpsの範囲で設定される。もちろんこれに限定されず、認識処理のフレームレートは任意に設定されてよい。
例えば、認識処理のフレームレートとして、センサ10のフレームレートが設定され、センシングに同期して認識処理が実行されてもよい。
また物体認識システム100を使用するユーザにより、認識処理のフレームレートが指定可能であってもよい。
図2に示す例では、各フレームにて、認識部21による認識処理と、設定部22による実行認識処理の設定とが実行される。すなわち認識部21により1以上の対象物1が認識されるタイミングごとに、1以上の対象物1の各々に設定される実行認識処理が更新される。
従って、1秒間に設定部22により実行される実行認識処理の設定回数(設定回数/秒)を設定処理のフレームレートとすると、認識処理のフレームレートと、設定処理のフレームレートとが等しくなる。
図2に示す例は、所定の時間間隔で、1以上の対象物の各々に設定される実行認識処理を更新する動作の一例である。
もちろんこのような動作に限定される訳ではない。認識処理のフレームレートと、設定処理のフレームレートとが、互いに異なって設定されてもよい。例えば、認識部21による認識処理が所定の回数実行されるごとに、実行認識処理の設定が実行されてもよい。
従って、1秒間に設定部22により実行される実行認識処理の設定回数(設定回数/秒)を設定処理のフレームレートとすると、認識処理のフレームレートと、設定処理のフレームレートとが等しくなる。
図2に示す例は、所定の時間間隔で、1以上の対象物の各々に設定される実行認識処理を更新する動作の一例である。
もちろんこのような動作に限定される訳ではない。認識処理のフレームレートと、設定処理のフレームレートとが、互いに異なって設定されてもよい。例えば、認識部21による認識処理が所定の回数実行されるごとに、実行認識処理の設定が実行されてもよい。
図2に示す例では、前フレーム(t-1)において、センサ10の検出結果に基づいて、認識処理が実行される。認識処理の認識結果に基づいて、認識された1以上の対象物1の各々に対して、実行認識処理が設定される。
次のフレームである現在フレーム(t)において、センサ10の検出結果に基づいて、認識部21により認識処理が実行される。この際には、前フレーム(t-1)にて認識された対象物1に対しては、当該対象物1に対して前フレーム(t-1)にて設定された実行認識処理が実行される。また現在フレーム(t)にて、認識された1以上の対象物1の各々に対して、改めて実行認識処理が設定される。
次のフレームである次フレーム(t+1)において、センサ10の検出結果に基づいて、認識部21により認識処理が実行される。この際には、現在フレーム(t)にて認識された対象物1に対しては、当該対象物1に対して現在フレーム(t)にて設定された実行認識処理が実行される。また次フレーム(t+1)にて、認識された1以上の対象物1の各々に対して、改めて実行認識処理が設定される。
なお、前フレーム(t-1)での認識処理については、その前のフレーム(t-2)で設定された実行認識処理が用いられる。
次のフレームである現在フレーム(t)において、センサ10の検出結果に基づいて、認識部21により認識処理が実行される。この際には、前フレーム(t-1)にて認識された対象物1に対しては、当該対象物1に対して前フレーム(t-1)にて設定された実行認識処理が実行される。また現在フレーム(t)にて、認識された1以上の対象物1の各々に対して、改めて実行認識処理が設定される。
次のフレームである次フレーム(t+1)において、センサ10の検出結果に基づいて、認識部21により認識処理が実行される。この際には、現在フレーム(t)にて認識された対象物1に対しては、当該対象物1に対して現在フレーム(t)にて設定された実行認識処理が実行される。また次フレーム(t+1)にて、認識された1以上の対象物1の各々に対して、改めて実行認識処理が設定される。
なお、前フレーム(t-1)での認識処理については、その前のフレーム(t-2)で設定された実行認識処理が用いられる。
なお物体認識システム100の初期動作としては、例えばシステムの初期化により、実行認識処理の設定が初期化される。認識部21により、センサ10から出力される検出結果に基づいて認識処理が実行され、1以上の対象物1が認識される。
この際には、例えば、初期動作用の認識処理が用いられる。例えば、初期動作用の認識処理として、精度の高い第2の認識処理が設定される。この場合、最初の認識処理は、全ての対象物領域に対して、第2の認識処理が実行される。
あるいは、初期動作用の認識処理として、精度の低い第1の認識処理が設定される。この場合、最初の認識処理は、全ての対象物領域に対して、第1の認識処理が実行される。
また認識処理の入力となる対象物領域が複数ある場合に、使用可能な処理量を超えない範囲で、可能な限り多くの対象物領域に対して第2の認識処理が実行され、他の対象物領域に対しては、第1の認識処理が実行されてもよい。
あるいは、対象物領域が抽出される順番や、対象物領域の位置に応じて、初期動作用の認識処理が適宜設定されてもよい。
あるいは、初期動作用の認識処理として、第1の認識処理及び第2の認識処理のいずれとも異なる種類の認識処理が実行されてもよい。
この際には、例えば、初期動作用の認識処理が用いられる。例えば、初期動作用の認識処理として、精度の高い第2の認識処理が設定される。この場合、最初の認識処理は、全ての対象物領域に対して、第2の認識処理が実行される。
あるいは、初期動作用の認識処理として、精度の低い第1の認識処理が設定される。この場合、最初の認識処理は、全ての対象物領域に対して、第1の認識処理が実行される。
また認識処理の入力となる対象物領域が複数ある場合に、使用可能な処理量を超えない範囲で、可能な限り多くの対象物領域に対して第2の認識処理が実行され、他の対象物領域に対しては、第1の認識処理が実行されてもよい。
あるいは、対象物領域が抽出される順番や、対象物領域の位置に応じて、初期動作用の認識処理が適宜設定されてもよい。
あるいは、初期動作用の認識処理として、第1の認識処理及び第2の認識処理のいずれとも異なる種類の認識処理が実行されてもよい。
各フレームにおいて、認識対象となる対象物1が、前フレームにおいて認識された対象物1であるか否かを判定する方法としては、任意の方法が採用されてよい。
例えば、各フレームおいて、センサ10の検出結果から抽出された対象物領域について、前フレームにおける認識結果と比較することで、当該対象物領域が前フレームにおいて認識された対象物1と同じ対象物の対象物領域であるか否かを判定することが可能である。
例えば、最初のフレームにて認識された1以上の対象物の各々に対してID(識別情報)を付与する。次フレームにて検出結果から抽出された対象物領域に対して、前フレームにて認識された対象物1と同じ対象物1の対象物領域であると判定された場合は、同じIDを付与してIDの引継ぎを実行する。
これにより、引継がれたIDに基づいて、前フレームにて設定された実行認識処理により、対象物領域に対する認識処理を実行することが可能となる。すなわち前フレームにて設定された実行認識処理により、同じ対象物1に対して認識処理を実行することが可能となる。
各フレームにおいて、新規に認識された対象物については、新たなIDが付与される。
例えば、各フレームおいて、センサ10の検出結果から抽出された対象物領域について、前フレームにおける認識結果と比較することで、当該対象物領域が前フレームにおいて認識された対象物1と同じ対象物の対象物領域であるか否かを判定することが可能である。
例えば、最初のフレームにて認識された1以上の対象物の各々に対してID(識別情報)を付与する。次フレームにて検出結果から抽出された対象物領域に対して、前フレームにて認識された対象物1と同じ対象物1の対象物領域であると判定された場合は、同じIDを付与してIDの引継ぎを実行する。
これにより、引継がれたIDに基づいて、前フレームにて設定された実行認識処理により、対象物領域に対する認識処理を実行することが可能となる。すなわち前フレームにて設定された実行認識処理により、同じ対象物1に対して認識処理を実行することが可能となる。
各フレームにおいて、新規に認識された対象物については、新たなIDが付与される。
このように図2に示す例では、認識部21により1以上の対象物1が認識されるタイミングごとに、1以上の対象物1の各々に設定される実行認識処理が更新される。
これにより、低性能・低負荷の第1の認識処理(ルールベースの認識処理)と、高性能・高負荷の第2の認識処理(機械学習ベースの認識処理)を、1以上の対象物1に対して効率的に割り当てることが可能となる。この結果、処理負荷を抑えた新たな認識処理を実現することが可能となる。
例えば、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される対象物1の数に上限値が設定されてもよい。すなわち設定部22により、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される対象物1の数が、所定の上限数以下となるように、1以上の対象物1の各々に対して実行認識処理が設定されてもよい。これにより、処理負荷を十分に抑えつつ、効率的な認識処理を実行することが可能となる。
これにより、低性能・低負荷の第1の認識処理(ルールベースの認識処理)と、高性能・高負荷の第2の認識処理(機械学習ベースの認識処理)を、1以上の対象物1に対して効率的に割り当てることが可能となる。この結果、処理負荷を抑えた新たな認識処理を実現することが可能となる。
例えば、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される対象物1の数に上限値が設定されてもよい。すなわち設定部22により、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される対象物1の数が、所定の上限数以下となるように、1以上の対象物1の各々に対して実行認識処理が設定されてもよい。これにより、処理負荷を十分に抑えつつ、効率的な認識処理を実行することが可能となる。
[情報提示システム]
本技術に係る物体認識システム100を適用した情報提示システムについて説明する。
図3は、情報提示システム150の構成例を示す模式図である。情報提示システム150を、情報処理システムや表示制御システムと呼ぶことも可能である。
図3では、情報提示システム150の構成例として、3つのバリエーション例が図示されている。
本技術に係る物体認識システム100を適用した情報提示システムについて説明する。
図3は、情報提示システム150の構成例を示す模式図である。情報提示システム150を、情報処理システムや表示制御システムと呼ぶことも可能である。
図3では、情報提示システム150の構成例として、3つのバリエーション例が図示されている。
情報提示システム150は、所定の表示領域に種々の画像を、ユーザ2が操作可能なように表示することが可能である。例えば、映像等のコンテンツ画像、地図、アプリケーションを表示するウィンドウ、種々のGUI、ホログラム画像、AR(Augmented Reality)等の仮想オブジェクト画像等、任意の画像が表示されてよい。画像の表示は、グラフィックスの表示とも言える。
ユーザ2は、表示された画像に対して、例えば自分の手を使って種々の入力操作を行うことが可能である。なお手は、指を含む。
例えば、タッチ操作、ドラッグ操作、スクロール操作、ピンチ操作等、任意の入力操作が実行可能であってよい。
例えば、手(指)の姿勢を変えることで、入力操作を行うことも可能である。例えば、グー(手が閉じられた状態)、チョキ(人差指及び中指のみが伸びている状態)、パー(手が開かれている状態)、ピストル(人差指及び親指のみが伸びている状態)等のジェスチャにより、入力操作を行うことが可能である。
その他、手を空中で水平又は垂直方向等に移動させる、手を振動させる(手を振る)、手を回転させる等の種々の動作が、入力操作として採用されてもよい。またスポーツ等で用いられるハンドシグナル等の様々な動作が入力操作として採用されてよい。
どのような手の動作が入力操作として使用可能であるかは、例えば本情報提示システム150を介してユーザ2に提供されるアプリケーションごとに適宜定義されてよい。
なお本開示において、入力操作は、所定の処理を実行させるためにユーザにより行われる種々の動作(ジェスチャ)を含む。なお入力操作に応じて、実際に所定の処理が実行される場合に限定される訳ではない。すなわちタッチ操作やピンチ操作等の動きが判定された場合に、その動きに応じて所定の処理が実行されない場合でも、当該タッチ操作等の動きは入力操作に含まれる。
もちろんタッチ操作等に応じて所定の処理が実行された場合も、タッチ操作等の動きは入力操作に含まれる。
例えば、アイコン等を移動させようとして、タッチ及びドラッグ操作が行われたとする。しかしながらアプリケーション側でアイコンの移動と、タッチ及びドラッグ操作とが関連付けられていない場合や、タッチの位置がずれている場合等、アイコンの移動処理が実行されなかったとする。このような場合でも、ユーザにより行われたタッチ及びドラッグ操作は、入力操作に含まれるものとする。
ユーザ2は、表示された画像に対して、例えば自分の手を使って種々の入力操作を行うことが可能である。なお手は、指を含む。
例えば、タッチ操作、ドラッグ操作、スクロール操作、ピンチ操作等、任意の入力操作が実行可能であってよい。
例えば、手(指)の姿勢を変えることで、入力操作を行うことも可能である。例えば、グー(手が閉じられた状態)、チョキ(人差指及び中指のみが伸びている状態)、パー(手が開かれている状態)、ピストル(人差指及び親指のみが伸びている状態)等のジェスチャにより、入力操作を行うことが可能である。
その他、手を空中で水平又は垂直方向等に移動させる、手を振動させる(手を振る)、手を回転させる等の種々の動作が、入力操作として採用されてもよい。またスポーツ等で用いられるハンドシグナル等の様々な動作が入力操作として採用されてよい。
どのような手の動作が入力操作として使用可能であるかは、例えば本情報提示システム150を介してユーザ2に提供されるアプリケーションごとに適宜定義されてよい。
なお本開示において、入力操作は、所定の処理を実行させるためにユーザにより行われる種々の動作(ジェスチャ)を含む。なお入力操作に応じて、実際に所定の処理が実行される場合に限定される訳ではない。すなわちタッチ操作やピンチ操作等の動きが判定された場合に、その動きに応じて所定の処理が実行されない場合でも、当該タッチ操作等の動きは入力操作に含まれる。
もちろんタッチ操作等に応じて所定の処理が実行された場合も、タッチ操作等の動きは入力操作に含まれる。
例えば、アイコン等を移動させようとして、タッチ及びドラッグ操作が行われたとする。しかしながらアプリケーション側でアイコンの移動と、タッチ及びドラッグ操作とが関連付けられていない場合や、タッチの位置がずれている場合等、アイコンの移動処理が実行されなかったとする。このような場合でも、ユーザにより行われたタッチ及びドラッグ操作は、入力操作に含まれるものとする。
情報提示システム150は、ユーザ2の手を用いた入力操作に応じて、種々の処理を実行することが可能である。例えば、入力操作に応じて、表示領域に表示される画像の表示が制御される。例えば、画像の表示の切り替え、画像の移動、画像の拡大・縮小、描画画像の表示(描画制御)等、任意の処理が実行されてよい。
もちろん、画像の表示制御以外の種々の処理が実行されてよい。例えば、アプリケーションに対して操作入力に応じたイベントを送信するといったことも可能である。例えば、ユーザ2は、表示領域に表示される各種アプリケーションの画面に対して入力操作を行うことで、メールの送信・受信や、SNSの投稿等、種々のサービス利用することが可能となる。
もちろん、画像の表示制御以外の種々の処理が実行されてよい。例えば、アプリケーションに対して操作入力に応じたイベントを送信するといったことも可能である。例えば、ユーザ2は、表示領域に表示される各種アプリケーションの画面に対して入力操作を行うことで、メールの送信・受信や、SNSの投稿等、種々のサービス利用することが可能となる。
図3A~Cに示す例では、情報提示システム150は、プロジェクタ25と、センサ30と、情報処理装置40とを有する。各デバイスは、任意の接続形態により、互いに通信可能に接続されている。
プロジェクタ25は、所定の表示領域に対して、種々の画像を表示可能に設置される。
なお、プロジェクタ25以外の表示デバイスが用いられる場合でも、本技術は適用可能である。例えばタッチパネル、液晶ディスプレイ等のディスプレイ、HMD(Head Mounted Display)等により表示される画像に対して、ユーザ2が入力操作を行うようなシステムに対しても、本技術を適用することが可能である。
プロジェクタ25は、所定の表示領域に対して、種々の画像を表示可能に設置される。
なお、プロジェクタ25以外の表示デバイスが用いられる場合でも、本技術は適用可能である。例えばタッチパネル、液晶ディスプレイ等のディスプレイ、HMD(Head Mounted Display)等により表示される画像に対して、ユーザ2が入力操作を行うようなシステムに対しても、本技術を適用することが可能である。
センサ30及び情報処理装置40は、図1に示す物体認識システム100を構築することが可能である。
センサ10のセンシング領域は、プロジェクタ25の表示領域に対応して設定される。典型的には、表示領域の全体を含むようにセンシング領域が設定される。
情報処理装置40には、図1に示す認識部21及び設定部22が構成される。
センサ10のセンシング領域は、プロジェクタ25の表示領域に対応して設定される。典型的には、表示領域の全体を含むようにセンシング領域が設定される。
情報処理装置40には、図1に示す認識部21及び設定部22が構成される。
図3Aに示す例では、テーブル35の天面に表示領域及びセンシング領域が設定される。そして天面の上方側に、センサ30とプロジェクタ25とが設置される。上方側から画像が投影されるので、天面に配置された実物体等に画像を重畳させることが可能となる。
図3Bに示す例では、テーブル35の天面が、ガラス板等の透明な材質により構成されている。そして、天面の下方側にプロジェクタ25が配置され、下方側から画像が投影される。センサ30は、天面の上方側に配置される。
図3Cに示す例では、壁36に表示領域及びセンシング領域が設定される。壁36に対して、プロジェクタ25及びセンサ30が設置される。
このように、本技術に係る情報提示システム150の構成例として、種々のバリエーションを採用することが可能である。もちろん、図3に示す構成以外の任意の構成が採用されてよい。
図3Bに示す例では、テーブル35の天面が、ガラス板等の透明な材質により構成されている。そして、天面の下方側にプロジェクタ25が配置され、下方側から画像が投影される。センサ30は、天面の上方側に配置される。
図3Cに示す例では、壁36に表示領域及びセンシング領域が設定される。壁36に対して、プロジェクタ25及びセンサ30が設置される。
このように、本技術に係る情報提示システム150の構成例として、種々のバリエーションを採用することが可能である。もちろん、図3に示す構成以外の任意の構成が採用されてよい。
図4は、情報処理装置40の機能的なブロック図を示す模式図である。例えば、CPU等のプロセッサが本技術に係るプログラムを実行することで、機能ブロックとして、処理実行部41と、認識処理部42とが構成される。
処理実行部41は、ユーザ2の手を用いた入力操作に応じて、種々の処理を実行する。例えば、画像データ、及び画像表示の制御信号等が、プロジェクタ25に表示される。その他、任意の処理が実行可能であってよい。
処理実行部41は、ユーザ2の手を用いた入力操作に応じて、種々の処理を実行する。例えば、画像データ、及び画像表示の制御信号等が、プロジェクタ25に表示される。その他、任意の処理が実行可能であってよい。
認識処理部42は、手認識部43、優先度算出部44、認識処理設定部45、及び優先度定義部46を含む。
手認識部43は、図1に示す認識部21に相当する。本実施形態では、1以上の対象物1として、ユーザの手が設定される。そして第1の認識処理(ルールベースの認識処理)と第2の認識処理(機械学習ベースの認識処理)とを併用して、1以上の手に対して認識処理が実行される。
優先度算出部44、認識処理設定部45、優先度定義部46は、図1に示す設定部22に相当する。すなわち本実施形態では、優先度算出部44、認識処理設定部45、及び優先度定義部46が連動することで、1以上の手に対して、第1の認識処理(ルールベースの認識処理)又は第2の認識処理(機械学習ベースの認識処理)が、実行認識処理として設定される。
優先度算出部44は、1以上の対象物の各々に関する対象物情報に基づいて1以上の対象物の各々に対して優先度を算出する。本実施形態では、1以上の手の各々に関する対象物情報(手認識部43による認識結果を含む)に基づいて、優先度が算出される。
認識処理設定部45は、算出された優先度に基づいて、1以上の対象物の各々に対して実行認識処理を設定する。本実施形態では、算出された優先度に基づいて、1以上の手の各々に対して実行認識処理が設定される。
優先度に基づいた実行認識処理の設定方法としては、例えば1以上の対象物(手)のうち優先度が相対的に高い対象物(手)に対して、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される。
例えば、1以上の対象物(手)の各々に対して優先度が高い順に、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される。
第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される対象物(手)について上限数が設定されている場合は、上限数以下となる範囲で、優先度が高い順に、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される。
優先度に基づいた実行認識処理の設定方法として、他の任意の方法が用いられてよい。
手認識部43は、図1に示す認識部21に相当する。本実施形態では、1以上の対象物1として、ユーザの手が設定される。そして第1の認識処理(ルールベースの認識処理)と第2の認識処理(機械学習ベースの認識処理)とを併用して、1以上の手に対して認識処理が実行される。
優先度算出部44、認識処理設定部45、優先度定義部46は、図1に示す設定部22に相当する。すなわち本実施形態では、優先度算出部44、認識処理設定部45、及び優先度定義部46が連動することで、1以上の手に対して、第1の認識処理(ルールベースの認識処理)又は第2の認識処理(機械学習ベースの認識処理)が、実行認識処理として設定される。
優先度算出部44は、1以上の対象物の各々に関する対象物情報に基づいて1以上の対象物の各々に対して優先度を算出する。本実施形態では、1以上の手の各々に関する対象物情報(手認識部43による認識結果を含む)に基づいて、優先度が算出される。
認識処理設定部45は、算出された優先度に基づいて、1以上の対象物の各々に対して実行認識処理を設定する。本実施形態では、算出された優先度に基づいて、1以上の手の各々に対して実行認識処理が設定される。
優先度に基づいた実行認識処理の設定方法としては、例えば1以上の対象物(手)のうち優先度が相対的に高い対象物(手)に対して、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される。
例えば、1以上の対象物(手)の各々に対して優先度が高い順に、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される。
第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される対象物(手)について上限数が設定されている場合は、上限数以下となる範囲で、優先度が高い順に、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定される。
優先度に基づいた実行認識処理の設定方法として、他の任意の方法が用いられてよい。
優先度定義部46には、対象物情報に基づいて優先度を算出する算出方法に関する種々のパラメータが定義されている。例えば本情報提示システム150を介してユーザ2に提供されるアプリケーションごとに、パラメータが定義される。
例えば、対象物情報の中から優先度算出用の複数の要素(パラメータ)を定義する。そして、各要素に関して対象物の状態等に対して優先度設定値を定義する。例えば算出用の要素として「対象物の動き」が定義された場合、当該要素について「静止」「一定速度の移動」「往復運動」等、「対象物の動き」に関する複数の状態の各々に、優先度設定値を定義する。
また、複数の要素の各々に対して、係数を設定する。
例えばこれらの定義情報に基づいて、以下の式により優先度を算出することが可能である。
(優先度)=係数a×(要素aに関する優先度設定値)+係数b×(要素bに関する優先度設定値)+係数c×(要素cに関する優先度設定値)+係数d×(要素dに関する優先度設定値)
係数を適宜設定することで、優先度算出用の各要素に対して、重み付けを行うことが可能である。例えば、認識対象として重要度の高い対象物に対して、第2の認識処理(機械学習ベースの認識処理)が優先的に実行認識処理として設定されるように、優先度算出用の要素及び係数が適宜定義されればよい。
例えば、優先度算出用の要素は予め定義されており、優先度定義部46により、アプリケーション等に応じて、各要素の係数が変更可能であってもよい。あるいは、アプリケーションごとに、算出用の要素や優先度設定値も含めて定義付けされてもよい。
例えば、対象物情報の中から優先度算出用の複数の要素(パラメータ)を定義する。そして、各要素に関して対象物の状態等に対して優先度設定値を定義する。例えば算出用の要素として「対象物の動き」が定義された場合、当該要素について「静止」「一定速度の移動」「往復運動」等、「対象物の動き」に関する複数の状態の各々に、優先度設定値を定義する。
また、複数の要素の各々に対して、係数を設定する。
例えばこれらの定義情報に基づいて、以下の式により優先度を算出することが可能である。
(優先度)=係数a×(要素aに関する優先度設定値)+係数b×(要素bに関する優先度設定値)+係数c×(要素cに関する優先度設定値)+係数d×(要素dに関する優先度設定値)
係数を適宜設定することで、優先度算出用の各要素に対して、重み付けを行うことが可能である。例えば、認識対象として重要度の高い対象物に対して、第2の認識処理(機械学習ベースの認識処理)が優先的に実行認識処理として設定されるように、優先度算出用の要素及び係数が適宜定義されればよい。
例えば、優先度算出用の要素は予め定義されており、優先度定義部46により、アプリケーション等に応じて、各要素の係数が変更可能であってもよい。あるいは、アプリケーションごとに、算出用の要素や優先度設定値も含めて定義付けされてもよい。
本実施形態では、ユーザ2の手が、認識対象となる対象物1として設定される。
例えば、センシング領域に存在しているすべての手が、必ずしも操作に使われているとは限らない。例えば、ただ存在しているだけで、何もしていない手もしばしば存在する。そのような手と操作に使っている手とを比較したときに、操作に使っている手の方をより精度高く検出したほうが、ユーザ2の操作性の向上(操作体験の向上)に繋がる。
本実施形態では、優先度というパラメータを定義し、1以上の手の各々について当該優先度を数値で算出する。これにより、優先度が高いほど操作への重要性が高く、優先して第2の認識処理(機械学習ベースの認識処理)を実行すべき手であると判断することが可能となる。
従って、例えば、各フレームにて、ユーザ2により実際に操作に使われている手が高精度に認識可能なように、優先度算出用の要素及び係数が定義される。言い換えればユーザ2により実際に操作に使われている手に対して、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定されるように、優先度算出用の要素及び係数が適宜定義される。
例えば、センシング領域に存在しているすべての手が、必ずしも操作に使われているとは限らない。例えば、ただ存在しているだけで、何もしていない手もしばしば存在する。そのような手と操作に使っている手とを比較したときに、操作に使っている手の方をより精度高く検出したほうが、ユーザ2の操作性の向上(操作体験の向上)に繋がる。
本実施形態では、優先度というパラメータを定義し、1以上の手の各々について当該優先度を数値で算出する。これにより、優先度が高いほど操作への重要性が高く、優先して第2の認識処理(機械学習ベースの認識処理)を実行すべき手であると判断することが可能となる。
従って、例えば、各フレームにて、ユーザ2により実際に操作に使われている手が高精度に認識可能なように、優先度算出用の要素及び係数が定義される。言い換えればユーザ2により実際に操作に使われている手に対して、第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定されるように、優先度算出用の要素及び係数が適宜定義される。
図5~9は、本実施形態における優先度算出用の要素例を説明するための模式図である。
例えば、「手の活動量」、「手の所定の位置からの距離」、「手の姿勢」、「手による入力操作の有無」「手に関連する関連対象物の情報」を、優先度算出用の要素として設定することが可能である。
以下の説明では、優先度設定値は0~1の範囲に正規化される。もちろんこれに限定される訳ではない。
例えば、「手の活動量」、「手の所定の位置からの距離」、「手の姿勢」、「手による入力操作の有無」「手に関連する関連対象物の情報」を、優先度算出用の要素として設定することが可能である。
以下の説明では、優先度設定値は0~1の範囲に正規化される。もちろんこれに限定される訳ではない。
図5は、「手の活動量」について説明するための模式図である。
手3が活発に動いているほど優先度設定値を高くする。手3が動いているほど、入力操作等に使われている可能性が高く、逆に動いていないときは、ただ置いてあるだけの可能性が高い。このような観点から、優先度設定値を設定することが可能である。
例えば図5Aに示すように、手3が移動している場合は、その距離により「手の活動量」を規定することが可能である。図5Bに示すように、手3が回転している場合には、回転角度により「手の活動量」を規定することが可能である。図5Cに示すように手3の形状が変化している場合には、シルエット(影)の面積により、「手の活動量」を規定することが可能である。
図5A~Cでは、移動、回転、形状変化について、同等の活動量であると判定され、同等の優先度設定値(0.33)が定義されている。もちろんこれは一例であり、任意の定義が採用されてよい。
手3が活発に動いているほど優先度設定値を高くする。手3が動いているほど、入力操作等に使われている可能性が高く、逆に動いていないときは、ただ置いてあるだけの可能性が高い。このような観点から、優先度設定値を設定することが可能である。
例えば図5Aに示すように、手3が移動している場合は、その距離により「手の活動量」を規定することが可能である。図5Bに示すように、手3が回転している場合には、回転角度により「手の活動量」を規定することが可能である。図5Cに示すように手3の形状が変化している場合には、シルエット(影)の面積により、「手の活動量」を規定することが可能である。
図5A~Cでは、移動、回転、形状変化について、同等の活動量であると判定され、同等の優先度設定値(0.33)が定義されている。もちろんこれは一例であり、任意の定義が採用されてよい。
図6は、「手の所定の位置からの距離」について説明するための図である。
所定の位置からの距離に応じて優先度設定値を設定する。例えば所定の注目点に近いほど優先度設定値を高くする。注目点としては、例えば、画面の中心や、ボタン等のUIコンポーネントの位置、ある物体の位置等であり、アプリケーションごとに設定されてよい。
図6に示す例では、ボタン1やボタン2が、注目点5として設定される。そして、手3の位置と注目点5の位置との距離に応じて、優先度設定値が設定される。
例えば、手3の中心位置を手3の位置とする。注目点5の位置については、例えば決定ボタンや閉じるボタン等の位置が固定されている注目点5に対しては、固定値(例えばXY座標値)により定義される。スライダ等の位置が動的に変化する注目点5に対しては、優先度算出時の注目点5の位置が用いられる。
例えば、手3と注目点5とが接触する状態の手3の中心位置と注目点5との距離以下に対して、優先度設定値は最高値(1.0)が設定される。手3の中心位置と注目点5との距離が所定の閾値以上となる場合に対しては、優先度設定値は最低値(0.0)が設定される。接触する距離から所定の閾値までの距離に関しては、注目点5と手3の中心位置との距離に反比例するように、0~1の範囲に含まれる値が、優先度設定値として定義される。
なお注目点5の重要度により、優先度設定値が調整されてもよい。例えば重要度が低い注目点5については、1未満の係数をかけることで、同じ距離であっても優先度設定値が低くなるように定義されてもよい。1未満の係数の値を適宜調整することで、注目点5の重要度に応じた優先度設定値を定義することが可能となる。
所定の位置からの距離に応じて優先度設定値を設定する。例えば所定の注目点に近いほど優先度設定値を高くする。注目点としては、例えば、画面の中心や、ボタン等のUIコンポーネントの位置、ある物体の位置等であり、アプリケーションごとに設定されてよい。
図6に示す例では、ボタン1やボタン2が、注目点5として設定される。そして、手3の位置と注目点5の位置との距離に応じて、優先度設定値が設定される。
例えば、手3の中心位置を手3の位置とする。注目点5の位置については、例えば決定ボタンや閉じるボタン等の位置が固定されている注目点5に対しては、固定値(例えばXY座標値)により定義される。スライダ等の位置が動的に変化する注目点5に対しては、優先度算出時の注目点5の位置が用いられる。
例えば、手3と注目点5とが接触する状態の手3の中心位置と注目点5との距離以下に対して、優先度設定値は最高値(1.0)が設定される。手3の中心位置と注目点5との距離が所定の閾値以上となる場合に対しては、優先度設定値は最低値(0.0)が設定される。接触する距離から所定の閾値までの距離に関しては、注目点5と手3の中心位置との距離に反比例するように、0~1の範囲に含まれる値が、優先度設定値として定義される。
なお注目点5の重要度により、優先度設定値が調整されてもよい。例えば重要度が低い注目点5については、1未満の係数をかけることで、同じ距離であっても優先度設定値が低くなるように定義されてもよい。1未満の係数の値を適宜調整することで、注目点5の重要度に応じた優先度設定値を定義することが可能となる。
図7は、「手の姿勢」について説明するための図である。
例えばピストルのような姿勢(親指及び人差し指の2本の指のみを伸ばした状態、以下ピストル姿勢と記載する)を主に使用するアプリケーションでは、図7A~Dに示すように、ピストル姿勢に対して高い優先度設定値(1.0)が定義される。その他の、親指と人差し指とでのピンチ姿勢には優先度設定値(0.8)、掌を広げたパー姿勢には優先度設定値(00.0)、人差し指1本の姿勢(以下、人差し指姿勢と記載する)には優先度設定値(0.5)と、ピストル姿勢よりも低い優先度設定値が定義される。
もちろんこのような設定に限定されない。ピンチイン/ピンチアウトの入力操作を精度よく認識したい場合等においては、ピンチ姿勢に対して高い優先度設定値が設定される。そして人差し指姿勢に対してやや高い優先度設定値が設定され、パー姿勢に対して低い優先度設定が設定される。それ以外の姿勢に対しては、優先度設定値は0とする。このような定義が採用されてもよい。
例えばピストルのような姿勢(親指及び人差し指の2本の指のみを伸ばした状態、以下ピストル姿勢と記載する)を主に使用するアプリケーションでは、図7A~Dに示すように、ピストル姿勢に対して高い優先度設定値(1.0)が定義される。その他の、親指と人差し指とでのピンチ姿勢には優先度設定値(0.8)、掌を広げたパー姿勢には優先度設定値(00.0)、人差し指1本の姿勢(以下、人差し指姿勢と記載する)には優先度設定値(0.5)と、ピストル姿勢よりも低い優先度設定値が定義される。
もちろんこのような設定に限定されない。ピンチイン/ピンチアウトの入力操作を精度よく認識したい場合等においては、ピンチ姿勢に対して高い優先度設定値が設定される。そして人差し指姿勢に対してやや高い優先度設定値が設定され、パー姿勢に対して低い優先度設定が設定される。それ以外の姿勢に対しては、優先度設定値は0とする。このような定義が採用されてもよい。
図8は、「手による入力操作の有無」について説明するための図である。
ユーザ2からの入力操作の有無に対して優先度設定値が設定される。例えば特定の入力操作に対して高い優先度設定値を設定する。例えば、図8Aに示すように、アプリケーションのUIコンポーネントに対してタッチ及びドラッグの入力操作が行われる場合に対して、高い優先度設定値が設定される。また例えば図8Bに示すように、ピンチ操作によりUIコンポーネントの拡大/縮小が行われる場合に対して、高い優先度設定値が設定される。
なお、所定の入力操作の有無の判定は、手認識部43による認識結果のみに基づいて判定されてもよい。すなわち所定の手3の動き(ジェスチャ)のみで、入力操作の有無が判定されてもよい。一方、アプリケーション等により、所定の手3の動き(ジェスチャ)に応じて所定の処理が実行された場合に、所定の入力操作が有りと判定されてもよい。
すなわちタッチ操作やピンチ操作と判定される手3の動きのみならず、当該タッチ操作やピンチ操作に応じて、アイコンの選択や拡大/縮小が実行された場合に、所定の入力操作が有りと判定されてもよい。そして優先度定義部46にて定義された入力操作である場合には、入力操作に対して設定された優先度設定値が用いられて優先度が算出される。この場合、例えばアプリケーション側から所定の処理の実行の有無に関する情報を取得することで、判定が可能となる。
例えばアプリケーション側で入力操作に応じた処理が実行されている場合には、その手3が操作に使われていることが明確に判定可能である。従って、操作に使われている手3に対して精度よく高い優先度設定値を定義することが可能となる。
アプリケーション側での操作に応じた処理の実行の有無を判定することは、アプリケーション上における所定の入力操作の有無を判定することともいえる。
ユーザ2からの入力操作の有無に対して優先度設定値が設定される。例えば特定の入力操作に対して高い優先度設定値を設定する。例えば、図8Aに示すように、アプリケーションのUIコンポーネントに対してタッチ及びドラッグの入力操作が行われる場合に対して、高い優先度設定値が設定される。また例えば図8Bに示すように、ピンチ操作によりUIコンポーネントの拡大/縮小が行われる場合に対して、高い優先度設定値が設定される。
なお、所定の入力操作の有無の判定は、手認識部43による認識結果のみに基づいて判定されてもよい。すなわち所定の手3の動き(ジェスチャ)のみで、入力操作の有無が判定されてもよい。一方、アプリケーション等により、所定の手3の動き(ジェスチャ)に応じて所定の処理が実行された場合に、所定の入力操作が有りと判定されてもよい。
すなわちタッチ操作やピンチ操作と判定される手3の動きのみならず、当該タッチ操作やピンチ操作に応じて、アイコンの選択や拡大/縮小が実行された場合に、所定の入力操作が有りと判定されてもよい。そして優先度定義部46にて定義された入力操作である場合には、入力操作に対して設定された優先度設定値が用いられて優先度が算出される。この場合、例えばアプリケーション側から所定の処理の実行の有無に関する情報を取得することで、判定が可能となる。
例えばアプリケーション側で入力操作に応じた処理が実行されている場合には、その手3が操作に使われていることが明確に判定可能である。従って、操作に使われている手3に対して精度よく高い優先度設定値を定義することが可能となる。
アプリケーション側での操作に応じた処理の実行の有無を判定することは、アプリケーション上における所定の入力操作の有無を判定することともいえる。
図9は、「手に関連する関連対象物の情報」について説明するための図である。
例えば、図9に示すように、手3の持ち主、すなわちユーザ2本人を関連対象物とする。そしてユーザ2の視線のトラッキング結果に対して、優先度設定値を定義する。例えば、図9Aに示すように、視線の先と手3の位置が一致しているほど、その手3が操作に使われている可能性が高いので、高い優先度設定値が定義される。図9Bに示すように、視線の先が手とは全く異なる方向に向いている場合には、手はただ置かれているだけである可能性が高いので、優先度設定値は0に定義される。その他、任意の定義が採用されてよい。
視線のトラッキングは、例えばユーザ2の目をセンシング対象とする他のセンサにより検出される。視線のトラッキングのみならず、他の種々の関連対象物の情報が用いられてもよい。また、他の関連対象物の情報が複数定義され、優先度設定値が定義されてもよい。
例えば、図9に示すように、手3の持ち主、すなわちユーザ2本人を関連対象物とする。そしてユーザ2の視線のトラッキング結果に対して、優先度設定値を定義する。例えば、図9Aに示すように、視線の先と手3の位置が一致しているほど、その手3が操作に使われている可能性が高いので、高い優先度設定値が定義される。図9Bに示すように、視線の先が手とは全く異なる方向に向いている場合には、手はただ置かれているだけである可能性が高いので、優先度設定値は0に定義される。その他、任意の定義が採用されてよい。
視線のトラッキングは、例えばユーザ2の目をセンシング対象とする他のセンサにより検出される。視線のトラッキングのみならず、他の種々の関連対象物の情報が用いられてもよい。また、他の関連対象物の情報が複数定義され、優先度設定値が定義されてもよい。
優先度算出用の要素として定義された「手の活動量」、「手の所定の位置からの距離」、「手の姿勢」、「手による入力操作の有無」「手に関連する関連対象物の情報」の各々に対して、係数a~eを定義する。これらの定義情報に基づいて、以下の式により優先度を算出することが可能である。
(優先度)=係数a×(「手の活動量」に関する優先度設定値)+係数b×(「手の所定の位置からの距離」に関する優先度設定値)+係数c×(「手の姿勢」に関する優先度設定値)+係数d×(「手による入力操作の有無」に関する優先度設定値)+係数e×(「手に関連する関連対象物の情報」に関する優先度設定値)
なお、アプリケーションごとに係数を定義する際に、無視したい要素については係数を0にする。また、当然のことながら優先度定義部46により定義されていない要素は、優先度の算出に用いられない。
(優先度)=係数a×(「手の活動量」に関する優先度設定値)+係数b×(「手の所定の位置からの距離」に関する優先度設定値)+係数c×(「手の姿勢」に関する優先度設定値)+係数d×(「手による入力操作の有無」に関する優先度設定値)+係数e×(「手に関連する関連対象物の情報」に関する優先度設定値)
なお、アプリケーションごとに係数を定義する際に、無視したい要素については係数を0にする。また、当然のことながら優先度定義部46により定義されていない要素は、優先度の算出に用いられない。
図10は、手3を対象物1とした第1の認識処理(ルールベースの認識処理)、及び第2の認識処理(機械学習ベースの認識処理)の例を説明するための模式図である。図10に示す例では、センサ30により検出された3次元のデプス画像データに基づいて、認識処理を実行し入力操作を検出するまでの処理が例示されている。
第1の認識処理(ルールベースの認識処理)では、粗いデプス検出、腕検出、手領域デプス計算、突端検出、指先領域デプス計算、指の尾根部分の検出及びタッチ検出、操作検出が順番に実行される。
図10に例示する第1の認識処理では、手領域(対象物領域に相当)のデプス画像内から、見かけ上の突端や手3の中心位置等が計算され、タッチ操作等の有無が検出される。
このようにルールベースの認識処理は、比較的軽い処理量で実行可能であるが、デプス画像上に見えていない位置は計算できない。従って、センサ30から指先が隠れてしまっている場合等では、指先の位置等の検出精度が低くなってしまう。すなわちオクルージョン(手前にある物体が背後にある物体を隠している(見えない)状態)に対して弱い認識処理となってしまう。
また、シルエットの面積や形状の条件で手3かどうかという認識を行うため、しばしば物体と手3を誤認識してしまうこともある。
第1の認識処理(ルールベースの認識処理)では、粗いデプス検出、腕検出、手領域デプス計算、突端検出、指先領域デプス計算、指の尾根部分の検出及びタッチ検出、操作検出が順番に実行される。
図10に例示する第1の認識処理では、手領域(対象物領域に相当)のデプス画像内から、見かけ上の突端や手3の中心位置等が計算され、タッチ操作等の有無が検出される。
このようにルールベースの認識処理は、比較的軽い処理量で実行可能であるが、デプス画像上に見えていない位置は計算できない。従って、センサ30から指先が隠れてしまっている場合等では、指先の位置等の検出精度が低くなってしまう。すなわちオクルージョン(手前にある物体が背後にある物体を隠している(見えない)状態)に対して弱い認識処理となってしまう。
また、シルエットの面積や形状の条件で手3かどうかという認識を行うため、しばしば物体と手3を誤認識してしまうこともある。
第2の認識処理(機械学習ベースの認識処理)では、粗いデプス検出、腕検出、手領域デプス計算、CNN(Convolutional Neural Network)によるハンドポーズ推定が実行される。なお、ハンドポーズ推定は、特徴点14点の3D座標を推定することで実行される。
また第2の認識処理では、推定されたハンドポーズに基づいて5本の指の各々に対して、指先領域デプス計算、指の尾根部分の検出及びタッチ検出が実行される。また推定されたハンドポーズに基づいて、手姿勢が計算され、掌の3D角度及び指の曲げ角度が算出される。
5本の指の各々の指の尾根部分の検出及びタッチ検出の結果と、掌の3D角度及び指の曲げ角度とに基づいて、タッチ操作等の有無が検出される。
機械学習ベースの認識処理では、機械学習ベースで手3と物体との判別を行うため、非常に高い精度で手3を識別可能である。また事前に設定した手3の上の特徴点を推定可能であり、センサ30から隠れているかに関わらず、全ての指先や関節、手中心の位置を認識することが可能である。すなわちオクルージョンに対して強い認識処理となる。
機械学習ベースであるので、学習データを適正に準備し十分に学習させることで、高い精度で認識を行うことが可能となる。
一方で、機械学習ベースの認識処理は処理負荷が大きいため、多くの手3が存在している場合、全ての手3に対して同時に認識処理を実行することが難しい。
また第2の認識処理では、推定されたハンドポーズに基づいて5本の指の各々に対して、指先領域デプス計算、指の尾根部分の検出及びタッチ検出が実行される。また推定されたハンドポーズに基づいて、手姿勢が計算され、掌の3D角度及び指の曲げ角度が算出される。
5本の指の各々の指の尾根部分の検出及びタッチ検出の結果と、掌の3D角度及び指の曲げ角度とに基づいて、タッチ操作等の有無が検出される。
機械学習ベースの認識処理では、機械学習ベースで手3と物体との判別を行うため、非常に高い精度で手3を識別可能である。また事前に設定した手3の上の特徴点を推定可能であり、センサ30から隠れているかに関わらず、全ての指先や関節、手中心の位置を認識することが可能である。すなわちオクルージョンに対して強い認識処理となる。
機械学習ベースであるので、学習データを適正に準備し十分に学習させることで、高い精度で認識を行うことが可能となる。
一方で、機械学習ベースの認識処理は処理負荷が大きいため、多くの手3が存在している場合、全ての手3に対して同時に認識処理を実行することが難しい。
ルールベースの認識処理と機械学習ベースの認識処理とを比較すると、基本的に性能は、機械学習ベースの認識処理の方が良好である。従ってユーザ2の操作等を高精度に認識するためには、機械学習ベースの認識処理を用いることが有効である。
一方で、機械学習ベースの認識処理は処理負荷が大きいため、認識処理を実行可能な手3の許容数(上限数)が、使用する情報処理装置40の性能ごとに決まってしまう。
このような状況に対して、本技術では、ルールベースの認識処理と機械学習ベースの認識処理とが併用される。そして複数の手3の各々に対して、優先度に基づいて、ルールベースの認識処理又は機械学習ベースの認識処理が実行認識処理として効率的に割り当てることが可能となっている。
一方で、機械学習ベースの認識処理は処理負荷が大きいため、認識処理を実行可能な手3の許容数(上限数)が、使用する情報処理装置40の性能ごとに決まってしまう。
このような状況に対して、本技術では、ルールベースの認識処理と機械学習ベースの認識処理とが併用される。そして複数の手3の各々に対して、優先度に基づいて、ルールベースの認識処理又は機械学習ベースの認識処理が実行認識処理として効率的に割り当てることが可能となっている。
図11に例示するように、手領域デプス計算の結果に基づいて、優先度算出用の要素である「手の姿勢」を判定するための手姿勢検出が実行されてもよい。この処理は、優先度定義部46にて、優先度算出用の要素として定義された「手の姿勢」の複数の種類の中から、最も近い手姿勢が識別可能であればよい。
当該手姿勢姿検出は、機械学習ベースで実行されてもよいし、ルールベースで実行されてもよい。例えば、所望の認識精度及び使用可能な処理量等に基づいて、手姿勢検出のアルゴリズムが設定されればよい。
当該手姿勢検出は、必ずしも認識処理が行われるフレームごとに実行する必要はなく、使用する情報処理装置40で十分に計算の回る速度で行えばよい。例えば認識処理よりも遅いフレームレートで実行することも可能である。
一方で、当該手姿勢検出を、認識処理が行われるフレームごとで実行することで、高い精度で優先度を算出することが可能となる。
当該手姿勢姿検出は、機械学習ベースで実行されてもよいし、ルールベースで実行されてもよい。例えば、所望の認識精度及び使用可能な処理量等に基づいて、手姿勢検出のアルゴリズムが設定されればよい。
当該手姿勢検出は、必ずしも認識処理が行われるフレームごとに実行する必要はなく、使用する情報処理装置40で十分に計算の回る速度で行えばよい。例えば認識処理よりも遅いフレームレートで実行することも可能である。
一方で、当該手姿勢検出を、認識処理が行われるフレームごとで実行することで、高い精度で優先度を算出することが可能となる。
図12は、情報提示システムの動作例を示す模式図である。
図12に示す例では、各フレームにて、手認識部43による手認識と、優先度算出部44による優先度算出と、認識処理設定部45による実行認識処理の設定が実行される。
前フレーム(t-1)において、センサ30の検出結果に基づいて、手認識が実行される。手認識の認識結果に基づいて、認識された1以上の手3の各々に対して、優先度が算出される。この際に、認識結果以外の対象物情報、例えば図11で例示した手姿勢検出の結果や、優先度算出用の要素に関する種々の対象物情報が用いられてよい。
算出された優先度に基づいて、1以上の手3の各々に対して、実行認識処理が設定される。
次のフレームである現在フレーム(t)において、センサ30の検出結果に基づいて、手認識が実行される。この際には、前フレーム(t-1)にて認識された手3に対しては、当該手3に対して前フレーム(t-1)にて設定された実行認識処理が実行される。そして、現在フレーム(t)において、認識された1以上の手3の各々に対して優先度が算出され、算出された優先度に基づいて実行認識処理が設定される。
次のフレームである次フレーム(t+1)において、センサ30の検出結果に基づいて、手認識が実行される。この際には、現在フレーム(t)にて認識された手3に対しては、当該手3に対して現在フレーム(t)にて設定された実行認識処理が実行される。そして、次フレーム(t+1)において、認識された1以上の手3の各々に対して優先度が算出され、算出された優先度に基づいて実行認識処理が設定される。
なお、前フレーム(t-1)での手認識については、その前のフレーム(t-2)で設定された実行認識処理が用いられる。
このように前フレームから存在している手3を優先的に処理し、前フレームにて設定された実行認識処理が実行される。
図12に示す例では、各フレームにて、手認識部43による手認識と、優先度算出部44による優先度算出と、認識処理設定部45による実行認識処理の設定が実行される。
前フレーム(t-1)において、センサ30の検出結果に基づいて、手認識が実行される。手認識の認識結果に基づいて、認識された1以上の手3の各々に対して、優先度が算出される。この際に、認識結果以外の対象物情報、例えば図11で例示した手姿勢検出の結果や、優先度算出用の要素に関する種々の対象物情報が用いられてよい。
算出された優先度に基づいて、1以上の手3の各々に対して、実行認識処理が設定される。
次のフレームである現在フレーム(t)において、センサ30の検出結果に基づいて、手認識が実行される。この際には、前フレーム(t-1)にて認識された手3に対しては、当該手3に対して前フレーム(t-1)にて設定された実行認識処理が実行される。そして、現在フレーム(t)において、認識された1以上の手3の各々に対して優先度が算出され、算出された優先度に基づいて実行認識処理が設定される。
次のフレームである次フレーム(t+1)において、センサ30の検出結果に基づいて、手認識が実行される。この際には、現在フレーム(t)にて認識された手3に対しては、当該手3に対して現在フレーム(t)にて設定された実行認識処理が実行される。そして、次フレーム(t+1)において、認識された1以上の手3の各々に対して優先度が算出され、算出された優先度に基づいて実行認識処理が設定される。
なお、前フレーム(t-1)での手認識については、その前のフレーム(t-2)で設定された実行認識処理が用いられる。
このように前フレームから存在している手3を優先的に処理し、前フレームにて設定された実行認識処理が実行される。
図13は、手認識により認識された1以上の手3に対する、優先度算出及び実行認識処理の設定例を示すフローチャートである。
まず1以上の手3の各々に対して優先度算出処理が実行される。
全ての手が処理されたか否かが判定される(ステップ101)。すなわち認識された全ての手3に対して、優先度の算出が完了したか否かが判定される。
全ての手が処理されていない場合は(ステップ101のNo)、処理が済んでいない手3の各々に対して、以下の処理が実行される。
定義されている全ての優先度算出用の要素が処理されたか否かが判定される(ステップ102)。全ての要素が処理されていない場合は(ステップ102のNo)、処理が済んでいない要素について、当該要素を優先度算出に使用するか否かが判定される(ステップ103)。
優先度算出に使用しないと判定された場合は(ステップ103のNo)、当該要素は処理済となり、ステップ102に戻る。
優先度算出に使用すると判定された場合は(ステップ103のYes)、当該要素について、定義されている係数及び優先度設定値の積(係数×優先度設定値)が算出され、優先度として積算される(ステップ104)。これにより当該要素は処理済となり、ステップ102に戻る。
例えば、アプリケーションごとに、優先度算出用の要素に対して優先度算出に使用するか否かのフラグ等が定義されており、当該フラグ等に基づいて、優先度に使用するか否かが判定されてもよい。
あるいは、各要素について手の状態等に対して優先度設定値(0.0)に定義されている状態の場合には、その要素は優先度算出に使用しないと判定されてもよい。この場合、例えば、優先度設定値を全て(0.0)とすることで、当該要素は優先度算出に使用しない要素として簡単に定義することが可能となる。
全ての要素が処理された場合は、使用される全ての要素について、(係数×優先度設定値)が積算され、積算結果として出力される。そして当該積算結果と、前フレームにて算出された優先度とに基づいて、本フレームにおける優先度が算出される(ステップ105)。
例えば、以下の式により本フレームの優先度を算出することが可能である。
(優先度)=w×(前フレームの優先度)+(1-w)×(積算結果)
w:0~1の範囲の係数
例えば、前フレームの優先度をより反映させたい場合には係数wを大きくする。一方で、毎フレームごと新規に優先度を算出したい場合は、係数wを0にする。このような設定が可能となる。係数wを0.5とすると、前フレームでの優先度と積算結果の平均が、本フレームおける優先度として算出される。
その他、2つの値に基づいた任意の算出方法が用いられてもよい。あるいは、前フレームにて算出された優先度を用いることなく優先度が算出されてもよい。
ステップ105において、前フレームに存在していた手3については、優先度が更新される。
前フレームに存在しなかった新規の手3については、各要素の(係数×優先度設定値)の積算結果が優先度として算出される。
全ての手が処理された場合は(ステップ101のYes)、優先度算出処理は終了し、実行認識処理の設定が実行される(ステップ106)。
本実施形態では、優先度の大きい手3を許容数(P)個取り出し、実行認識処理として、第2の認識処理(機械学習ベースの認識処理)を設定する。残りの手3に対しては、実行認識処理として、第1の認識処理(ルールベースの認識処理)を設定する。
このように図13に示す例では、算出された優先度の大きい手3から優先して第2の認識処理(機械学習ベースの認識処理)が設定される。
まず1以上の手3の各々に対して優先度算出処理が実行される。
全ての手が処理されたか否かが判定される(ステップ101)。すなわち認識された全ての手3に対して、優先度の算出が完了したか否かが判定される。
全ての手が処理されていない場合は(ステップ101のNo)、処理が済んでいない手3の各々に対して、以下の処理が実行される。
定義されている全ての優先度算出用の要素が処理されたか否かが判定される(ステップ102)。全ての要素が処理されていない場合は(ステップ102のNo)、処理が済んでいない要素について、当該要素を優先度算出に使用するか否かが判定される(ステップ103)。
優先度算出に使用しないと判定された場合は(ステップ103のNo)、当該要素は処理済となり、ステップ102に戻る。
優先度算出に使用すると判定された場合は(ステップ103のYes)、当該要素について、定義されている係数及び優先度設定値の積(係数×優先度設定値)が算出され、優先度として積算される(ステップ104)。これにより当該要素は処理済となり、ステップ102に戻る。
例えば、アプリケーションごとに、優先度算出用の要素に対して優先度算出に使用するか否かのフラグ等が定義されており、当該フラグ等に基づいて、優先度に使用するか否かが判定されてもよい。
あるいは、各要素について手の状態等に対して優先度設定値(0.0)に定義されている状態の場合には、その要素は優先度算出に使用しないと判定されてもよい。この場合、例えば、優先度設定値を全て(0.0)とすることで、当該要素は優先度算出に使用しない要素として簡単に定義することが可能となる。
全ての要素が処理された場合は、使用される全ての要素について、(係数×優先度設定値)が積算され、積算結果として出力される。そして当該積算結果と、前フレームにて算出された優先度とに基づいて、本フレームにおける優先度が算出される(ステップ105)。
例えば、以下の式により本フレームの優先度を算出することが可能である。
(優先度)=w×(前フレームの優先度)+(1-w)×(積算結果)
w:0~1の範囲の係数
例えば、前フレームの優先度をより反映させたい場合には係数wを大きくする。一方で、毎フレームごと新規に優先度を算出したい場合は、係数wを0にする。このような設定が可能となる。係数wを0.5とすると、前フレームでの優先度と積算結果の平均が、本フレームおける優先度として算出される。
その他、2つの値に基づいた任意の算出方法が用いられてもよい。あるいは、前フレームにて算出された優先度を用いることなく優先度が算出されてもよい。
ステップ105において、前フレームに存在していた手3については、優先度が更新される。
前フレームに存在しなかった新規の手3については、各要素の(係数×優先度設定値)の積算結果が優先度として算出される。
全ての手が処理された場合は(ステップ101のYes)、優先度算出処理は終了し、実行認識処理の設定が実行される(ステップ106)。
本実施形態では、優先度の大きい手3を許容数(P)個取り出し、実行認識処理として、第2の認識処理(機械学習ベースの認識処理)を設定する。残りの手3に対しては、実行認識処理として、第1の認識処理(ルールベースの認識処理)を設定する。
このように図13に示す例では、算出された優先度の大きい手3から優先して第2の認識処理(機械学習ベースの認識処理)が設定される。
なお、各フレームにおいて新規に手3が検出されたとする。例えば3次元のデプス画像データから抽出された手領域について、前フレームの認識結果と比較した場合に、前フレームには該当する手3が存在しないと判定されたとする。
この場合、例えば第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定されている手3の数が、許容数(P)未満であるか否かが判定される。
第2の認識処理(機械学習ベースの認識処理)が設定された手3の数が許容数(P)未満である場合は、新たに検出された手に対して第2の認識処理(機械学習ベースの認識処理)により手認識が実行される。
第2の認識処理(機械学習ベースの認識処理)が設定された手3の数が許容数(P)に達している場合は、新たに検出された手3に対して第1の認識処理(ルールベースの認識処理)により手認識が実行される。
その後、図13に示す処理が実行され、新たに検出された手3についてもフレームごとに優先度が更新され、更新された優先度に基づいて実行認識処理が設定される。
この場合、例えば第2の認識処理(機械学習ベースの認識処理)が実行認識処理として設定されている手3の数が、許容数(P)未満であるか否かが判定される。
第2の認識処理(機械学習ベースの認識処理)が設定された手3の数が許容数(P)未満である場合は、新たに検出された手に対して第2の認識処理(機械学習ベースの認識処理)により手認識が実行される。
第2の認識処理(機械学習ベースの認識処理)が設定された手3の数が許容数(P)に達している場合は、新たに検出された手3に対して第1の認識処理(ルールベースの認識処理)により手認識が実行される。
その後、図13に示す処理が実行され、新たに検出された手3についてもフレームごとに優先度が更新され、更新された優先度に基づいて実行認識処理が設定される。
図14は、実行認識処理の設定の他の例を示すフローチャートである。例えば、図13に示すステップ106に代えて、図14に示す処理を実行することが可能である。
第2の認識処理(機械学習ベースの認識処理)が設定されており、優先度が所定の閾値以上の手3の数(K)が算出される(ステップ201)。
本実施形態では前フレームにて実行認識処理として第2の認識処理(機械学習ベースの認識処理)が設定されている手3であって、図13のステップ105にて算出された優先度が所定の閾値以上となる手3の数が算出される。
算出された手の数(K)が、第2の認識処理(機械学習ベースの認識処理)を設定可能な許容数(P)未満であるか否かが判定される(ステップ202)。すなわち前フレームにて第2の認識処理(機械学習ベースの認識処理)が設定されている手3の数が、許容数(P)に達しているか否かが判定される。
算出された手3の数(K)が、第2の認識処理(機械学習ベースの認識処理)を設定可能な許容数(P)未満ではない場合は(ステップ202のNo)、第2の認識処理(機械学習ベースの認識処理)が設定されており、優先度が閾値以上の手3に対して、第2の認識処理が設定される。残りの手に対しては、実行認識処理として、第1の認識処理(ルールベースの認識処理)が設定される(ステップ203)。
算出された手の数(K)が、第2の認識処理(機械学習ベースの認識処理)を設定可能な許容数(P)未満である場合は(ステップ202のYes)、第2の認識処理(機械学習ベースの認識処理)が設定されており、優先度が閾値以上の手3に対して、第2の認識処理が設定される(ステップ204)。これにより許容数PのうちK個の手3に対して、第2の認識処理(機械学習ベースの認識処理)が設定される。
残りの手の中から優先度の大きい手を、(P―K)個取り出し、実行認識処理として、第2の認識処理(機械学習ベースの認識処理)を設定する。さらに残った手に対しては、実行認識処理として、第1の認識処理(ルールベースの認識処理)が設定される(ステップ205)。
第2の認識処理(機械学習ベースの認識処理)が設定されており、優先度が所定の閾値以上の手3の数(K)が算出される(ステップ201)。
本実施形態では前フレームにて実行認識処理として第2の認識処理(機械学習ベースの認識処理)が設定されている手3であって、図13のステップ105にて算出された優先度が所定の閾値以上となる手3の数が算出される。
算出された手の数(K)が、第2の認識処理(機械学習ベースの認識処理)を設定可能な許容数(P)未満であるか否かが判定される(ステップ202)。すなわち前フレームにて第2の認識処理(機械学習ベースの認識処理)が設定されている手3の数が、許容数(P)に達しているか否かが判定される。
算出された手3の数(K)が、第2の認識処理(機械学習ベースの認識処理)を設定可能な許容数(P)未満ではない場合は(ステップ202のNo)、第2の認識処理(機械学習ベースの認識処理)が設定されており、優先度が閾値以上の手3に対して、第2の認識処理が設定される。残りの手に対しては、実行認識処理として、第1の認識処理(ルールベースの認識処理)が設定される(ステップ203)。
算出された手の数(K)が、第2の認識処理(機械学習ベースの認識処理)を設定可能な許容数(P)未満である場合は(ステップ202のYes)、第2の認識処理(機械学習ベースの認識処理)が設定されており、優先度が閾値以上の手3に対して、第2の認識処理が設定される(ステップ204)。これにより許容数PのうちK個の手3に対して、第2の認識処理(機械学習ベースの認識処理)が設定される。
残りの手の中から優先度の大きい手を、(P―K)個取り出し、実行認識処理として、第2の認識処理(機械学習ベースの認識処理)を設定する。さらに残った手に対しては、実行認識処理として、第1の認識処理(ルールベースの認識処理)が設定される(ステップ205)。
このように、優先度に対して所定の閾値を設定する。そして第2の認識処理(機械学習ベースの認識処理)が設定されており、優先度が閾値以上の手3については、実行認識処理の設定が維持されてもよい。
なお、第2の認識処理(機械学習ベースの認識処理)が設定されている手3について、優先度が閾値未満となった場合は、ステップ205の残りの手として、優先度に基づいて実行認識処理の設定が更新される。
従って、第2の認識処理(機械学習ベースの認識処理)が設定されており、優先度が閾値以上の手3に対して、優先度が所定の閾値よりも低くなるまで、第2の認識処理(機械学習ベースの認識処理)の設定を維持することが可能となる。
例えば、前フレームにて第1の認識処理(ルールベースの認識処理)が設定された手3、あるいは本フレームにて新規に検出され第1の認識処理(ルールベースの認識処理)により設定された手3の中で、優先度が上回るような手3が出てきたとする。この場合でも、優先度が閾値以上であれば、第2の認識処理(機械学習ベースの認識処理)の設定が維持される。すなわち第2の認識処理(機械学習ベースの認識処理)が設定されており、優先度が閾値以上の手3に対して、優先的に第2の認識処理(機械学習ベースの認識処理)が設定される。
これにより操作中の手3に対して、認識処理が突然切り替わって、操作が妨げられてしまうといったことを防止することが可能となる。例えば操作中である手3として第2の認識処理(機械学習ベースの認識処理)が設定されている状況で、さらに優先度が上回る手3が出現した瞬間に、第2の認識処理から第1の認識処理へ認識処理が切替えられるとする。この場合、ユーザ2の入力操作に対する処理の精度が突然低くなってしまう場合等があり得る。そうするとユーザ2にとっての操作性が著しく低下してしまう可能性も高い。このような問題を防止することが可能となる。
なお、優先度に関する閾値は、優先度定義部46にて、アプリケーションごとに定義することが可能である。例えば、閾値は、(係数×優先度設定値)の積算結果の最大値に基づいて設定することが可能である。
なお、第2の認識処理(機械学習ベースの認識処理)が設定されている手3について、優先度が閾値未満となった場合は、ステップ205の残りの手として、優先度に基づいて実行認識処理の設定が更新される。
従って、第2の認識処理(機械学習ベースの認識処理)が設定されており、優先度が閾値以上の手3に対して、優先度が所定の閾値よりも低くなるまで、第2の認識処理(機械学習ベースの認識処理)の設定を維持することが可能となる。
例えば、前フレームにて第1の認識処理(ルールベースの認識処理)が設定された手3、あるいは本フレームにて新規に検出され第1の認識処理(ルールベースの認識処理)により設定された手3の中で、優先度が上回るような手3が出てきたとする。この場合でも、優先度が閾値以上であれば、第2の認識処理(機械学習ベースの認識処理)の設定が維持される。すなわち第2の認識処理(機械学習ベースの認識処理)が設定されており、優先度が閾値以上の手3に対して、優先的に第2の認識処理(機械学習ベースの認識処理)が設定される。
これにより操作中の手3に対して、認識処理が突然切り替わって、操作が妨げられてしまうといったことを防止することが可能となる。例えば操作中である手3として第2の認識処理(機械学習ベースの認識処理)が設定されている状況で、さらに優先度が上回る手3が出現した瞬間に、第2の認識処理から第1の認識処理へ認識処理が切替えられるとする。この場合、ユーザ2の入力操作に対する処理の精度が突然低くなってしまう場合等があり得る。そうするとユーザ2にとっての操作性が著しく低下してしまう可能性も高い。このような問題を防止することが可能となる。
なお、優先度に関する閾値は、優先度定義部46にて、アプリケーションごとに定義することが可能である。例えば、閾値は、(係数×優先度設定値)の積算結果の最大値に基づいて設定することが可能である。
[地図アプリケーションの操作]
本技術に係る情報提示システム150の一実施例として、ユーザ2に対する地図アプリケーションの提供、及びユーザ2による操作について説明する。
図15は、地図アプリケーションのアプリケーション画像の一例を示す模式図である。
例えば情報提示システム150として、図3Bに示す構成が採用され、矩形のテーブル35の天面に、下方側から地図のアプリケーション画像(以下、単に地図と記載する場合がある)50が表示される。またテーブル35の上方側にセンサ20としてデプスセンサが配置される。
天面の周りには、4人のユーザ2(2a~2d)が存在しており、全員で1つの地図50を共有し、同時に閲覧することが可能である。
各ユーザ2は、自分の両手(左手6及び右手7)を用いて種々の入力操作を行うことが可能である。
図16A~Dに示すように、本実施例では、地図アプリケーションに対して以下の入力操作が可能であるとする。
人差し指姿勢でのドラッグ操作…線の描画
パー姿勢で5本の指でのドラッグ操作…地図のスクロール
2本指でのピンチイン/ピンチアウト操作…地図の拡大/縮小
タップ操作…地図上の所定の場所の情報表示
その他、実行可能な入力操作として、任意の入力操作が採用されてよい。
本実施例において、第2の認識処理(機械学習ベースの認識処理)を実行認識処理として設定可能な手の許容数(上限数)は、2個とする。すなわち4人の両手、すなわち合計8個の手のうち、最大2個まで第2の認識処理(機械学習ベースの認識処理)を設定可能であるとする。
本技術に係る情報提示システム150の一実施例として、ユーザ2に対する地図アプリケーションの提供、及びユーザ2による操作について説明する。
図15は、地図アプリケーションのアプリケーション画像の一例を示す模式図である。
例えば情報提示システム150として、図3Bに示す構成が採用され、矩形のテーブル35の天面に、下方側から地図のアプリケーション画像(以下、単に地図と記載する場合がある)50が表示される。またテーブル35の上方側にセンサ20としてデプスセンサが配置される。
天面の周りには、4人のユーザ2(2a~2d)が存在しており、全員で1つの地図50を共有し、同時に閲覧することが可能である。
各ユーザ2は、自分の両手(左手6及び右手7)を用いて種々の入力操作を行うことが可能である。
図16A~Dに示すように、本実施例では、地図アプリケーションに対して以下の入力操作が可能であるとする。
人差し指姿勢でのドラッグ操作…線の描画
パー姿勢で5本の指でのドラッグ操作…地図のスクロール
2本指でのピンチイン/ピンチアウト操作…地図の拡大/縮小
タップ操作…地図上の所定の場所の情報表示
その他、実行可能な入力操作として、任意の入力操作が採用されてよい。
本実施例において、第2の認識処理(機械学習ベースの認識処理)を実行認識処理として設定可能な手の許容数(上限数)は、2個とする。すなわち4人の両手、すなわち合計8個の手のうち、最大2個まで第2の認識処理(機械学習ベースの認識処理)を設定可能であるとする。
図17は、優先度定義部46にて定義される優先度算出用の要素及び係数の一例である。
本実施例では、優先度算出用の要素として、「手の活動量」、「手の所定の位置からの距離」、「手の姿勢」、「手による入力操作の有無」、「手に関連する関連対象物の情報」が定義される。
なお本実施例では、アプリケーション上における所定の入力操作の有無が判定される。すなわちユーザ2による所定の操作等に応じて実際に処理が実行された場合に、所定の入力操作が有りと判定される。
また「手に関連する関連対象物の情報」としては、図9に例示する視線のトラッキング情報が定義される。
図17に示すように、地図アプリケーションの特性を考慮して、「手の姿勢」の係数が他の要素よりも半分の値に設定される。また、「手による入力操作の有無」の係数が他の要素よりも2倍の値にされている。また「手に関連する関連対象物の情報」であるトラッキング情報について係数は0となっている。従って「手に関連する関連対象物の情報」の要素は、使用されない。
また優先度に関する閾値は、2.0に定義されているとする。これにより、優先度係数が1.0となる入力操作が行われており第2の認識処理(機械学習ベースの認識処理)で認識されている手については、必ず優先度は閾値以上となる。従って、他の手に優先度で上回られても、第2の認識処理の設定が維持されるので操作が妨げられるといったことはなく、高い操作性が発揮される。
本実施例では、優先度算出用の要素として、「手の活動量」、「手の所定の位置からの距離」、「手の姿勢」、「手による入力操作の有無」、「手に関連する関連対象物の情報」が定義される。
なお本実施例では、アプリケーション上における所定の入力操作の有無が判定される。すなわちユーザ2による所定の操作等に応じて実際に処理が実行された場合に、所定の入力操作が有りと判定される。
また「手に関連する関連対象物の情報」としては、図9に例示する視線のトラッキング情報が定義される。
図17に示すように、地図アプリケーションの特性を考慮して、「手の姿勢」の係数が他の要素よりも半分の値に設定される。また、「手による入力操作の有無」の係数が他の要素よりも2倍の値にされている。また「手に関連する関連対象物の情報」であるトラッキング情報について係数は0となっている。従って「手に関連する関連対象物の情報」の要素は、使用されない。
また優先度に関する閾値は、2.0に定義されているとする。これにより、優先度係数が1.0となる入力操作が行われており第2の認識処理(機械学習ベースの認識処理)で認識されている手については、必ず優先度は閾値以上となる。従って、他の手に優先度で上回られても、第2の認識処理の設定が維持されるので操作が妨げられるといったことはなく、高い操作性が発揮される。
図18は、「手の所定の位置からの距離」についての定義を説明するための図である。
本地図アプリケーションでは、タップ可能な場所は地図50全体に多く散らばって存在しており、ピンチイン/ピンチアウト操作やドラッグ操作は地図50のどこでも可能である。そのため、特定のUIコンポーネントには注目しないが、少なくともテーブル中央にある手は端にある手よりも何らかの操作意図をもって存在していると仮定し、テーブル35の中心点CPを注目点とする。従って、テーブル35の中心点CPに近いほど、優先度設定値が高くなるように定義する。
例えば、以下の式を用いることが可能である。
(優先度設定値)=1.0-(中心からの距離)/(所定の閾値)
例えば、テーブル35の中心点CPに、要認識領域として円を設定する。そしてその円の半径を、閾値として用いることが可能である。テーブル35の大きさ、例えば中心からテーブル35の縁部までの距離の最大値や最小値等に基づいて、閾値が設定されてもよい。
本地図アプリケーションでは、タップ可能な場所は地図50全体に多く散らばって存在しており、ピンチイン/ピンチアウト操作やドラッグ操作は地図50のどこでも可能である。そのため、特定のUIコンポーネントには注目しないが、少なくともテーブル中央にある手は端にある手よりも何らかの操作意図をもって存在していると仮定し、テーブル35の中心点CPを注目点とする。従って、テーブル35の中心点CPに近いほど、優先度設定値が高くなるように定義する。
例えば、以下の式を用いることが可能である。
(優先度設定値)=1.0-(中心からの距離)/(所定の閾値)
例えば、テーブル35の中心点CPに、要認識領域として円を設定する。そしてその円の半径を、閾値として用いることが可能である。テーブル35の大きさ、例えば中心からテーブル35の縁部までの距離の最大値や最小値等に基づいて、閾値が設定されてもよい。
図19は、「手の姿勢」についての定義を説明するための図である。
本地図アプリケーションでは、図16に示す入力操作を行うことが可能である。すなわち本アプリケーションでは、所定の処理の実行条件として、特定の手姿勢で地図50をタッチするといった条件が設定されている。
図19に示すように、パー姿勢、人差し指姿勢、ピンチ姿勢、及びそれ以外の姿勢が分類され、優先度設定値が定義される。
ピンチ姿勢は、親指と人差し指のみを伸ばし、他の指を折り曲げた姿勢で、ピンチイン/ピンチアウト操作に必要な条件である。この操作は他の操作よりセンサ30から隠れやすく、タッチ位置精度を要するため、機械学習ベースで認識したい。そのため、ピンチイン/ピンチアウト操作をしている確率の高いピンチ姿勢に対しては、1.0の優先度設定値が定義される。
また、人差し指姿勢に対しては0.0が定義され、パー姿勢に対しては0.5が定義される。これは人差し指姿勢は、ルールベースでも比較的指先の認識が安定するため、機械学習ベースで認識する必要性がパー姿勢に比べて低いためである。
本地図アプリケーションでは、図16に示す入力操作を行うことが可能である。すなわち本アプリケーションでは、所定の処理の実行条件として、特定の手姿勢で地図50をタッチするといった条件が設定されている。
図19に示すように、パー姿勢、人差し指姿勢、ピンチ姿勢、及びそれ以外の姿勢が分類され、優先度設定値が定義される。
ピンチ姿勢は、親指と人差し指のみを伸ばし、他の指を折り曲げた姿勢で、ピンチイン/ピンチアウト操作に必要な条件である。この操作は他の操作よりセンサ30から隠れやすく、タッチ位置精度を要するため、機械学習ベースで認識したい。そのため、ピンチイン/ピンチアウト操作をしている確率の高いピンチ姿勢に対しては、1.0の優先度設定値が定義される。
また、人差し指姿勢に対しては0.0が定義され、パー姿勢に対しては0.5が定義される。これは人差し指姿勢は、ルールベースでも比較的指先の認識が安定するため、機械学習ベースで認識する必要性がパー姿勢に比べて低いためである。
図20は、「手による入力操作の有無」についての定義を説明するための図である。
図20に示すように、図16に示す入力操作のうち、人差し指姿勢でのドラッグ操作(線の描画)及びパー姿勢で5本の指でのドラッグ操作(地図のスクロール)がドラッグ操作として包括的に定義され、優先度設定値(0.5)が定義される。またピンチイン/ピンチアウト操作(地図の拡大/縮小)に対して、優先度設定値(1.0)が定義される。その他の操作については、優先度設定値(0.0)が定義される。
地図の拡大/縮小は前述のように精度を要する操作のため、優先度設定値が高く設定される。線描画やスクロールに対応するドラッグについても、できるだけ精度がほしいため、0.5となっている。その他の操作、例えばタップに関しては、大きく位置精度を必要としない、かつ非常に短い時間スパンの操作のため無視するようになっている。
なお、地図の拡大・縮小のピンチイン/ピンチアウト操作に関して、タッチパネル等では2点でのタッチ操作及び所定の方向に沿ったドラッグ操作を、処理の発動条件として設定することが可能である。
カメラベースでの認識(画像(デブス画像)を用いた認識)においても、同様の条件を設定することが可能である。この場合、各指のタッチ認識の精度がタッチパネルほど高くできない場合も考えられる。この場合、1本の指でタッチ操作を行う際に、隣の指がタッチ面に非常に近接し、2本指でのタッチ操作であると誤認識されてしまう可能性もある。そうすると、2本指での操作に対応する処理が実行されてしまう。例えば、1本の指でのタッチ操作を行っているにもかかわらず、突然地図の拡大/縮小が実行されてしまうといったこともあり得る。
このような可能性に対処するために、例えば地図の拡大/縮小の処理の発動条件に、ピンチ姿勢(親指と人差し指のみを伸ばし、他の指を折り曲げた姿勢)であることを加えることも有効である。
例えば、図21Aに示すように、ピンチ姿勢と認識されてかつ2点タッチでドラッグしているときは拡大/縮小が実行される。一方、図21Bに示すように、パー姿勢と認識されている場合は、2点タッチが認識されたとしても無操作、あるいは個別の1点タッチとして処理が実行される。
これにより、よりユーザの意図に沿った処理が実行可能となり、高い操作性が発揮される。
図20に示すように、図16に示す入力操作のうち、人差し指姿勢でのドラッグ操作(線の描画)及びパー姿勢で5本の指でのドラッグ操作(地図のスクロール)がドラッグ操作として包括的に定義され、優先度設定値(0.5)が定義される。またピンチイン/ピンチアウト操作(地図の拡大/縮小)に対して、優先度設定値(1.0)が定義される。その他の操作については、優先度設定値(0.0)が定義される。
地図の拡大/縮小は前述のように精度を要する操作のため、優先度設定値が高く設定される。線描画やスクロールに対応するドラッグについても、できるだけ精度がほしいため、0.5となっている。その他の操作、例えばタップに関しては、大きく位置精度を必要としない、かつ非常に短い時間スパンの操作のため無視するようになっている。
なお、地図の拡大・縮小のピンチイン/ピンチアウト操作に関して、タッチパネル等では2点でのタッチ操作及び所定の方向に沿ったドラッグ操作を、処理の発動条件として設定することが可能である。
カメラベースでの認識(画像(デブス画像)を用いた認識)においても、同様の条件を設定することが可能である。この場合、各指のタッチ認識の精度がタッチパネルほど高くできない場合も考えられる。この場合、1本の指でタッチ操作を行う際に、隣の指がタッチ面に非常に近接し、2本指でのタッチ操作であると誤認識されてしまう可能性もある。そうすると、2本指での操作に対応する処理が実行されてしまう。例えば、1本の指でのタッチ操作を行っているにもかかわらず、突然地図の拡大/縮小が実行されてしまうといったこともあり得る。
このような可能性に対処するために、例えば地図の拡大/縮小の処理の発動条件に、ピンチ姿勢(親指と人差し指のみを伸ばし、他の指を折り曲げた姿勢)であることを加えることも有効である。
例えば、図21Aに示すように、ピンチ姿勢と認識されてかつ2点タッチでドラッグしているときは拡大/縮小が実行される。一方、図21Bに示すように、パー姿勢と認識されている場合は、2点タッチが認識されたとしても無操作、あるいは個別の1点タッチとして処理が実行される。
これにより、よりユーザの意図に沿った処理が実行可能となり、高い操作性が発揮される。
以下、優先度の算出の具体例を示す。なお「手の活動量」については、動きの大きさに応じて、0~1の優先度設定値が設定されている。また本例では、(係数×優先度設定値)の積算結果がそのまま優先度として用いられるものとする。
図22は、各ユーザ2の手の状態の一例を示す模式図である。
[ユーザ2a]
ユーザ2aは、両手を休ませており、何も操作を行っていない。
(左手6a)
手は動いておらず、(係数×優先度設定値)=(1×0)=0となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、その他の姿勢であり、(係数×優先度設定値)=(0.5×0)=0となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.0となる。
このように全然動いていない手については、自動的に優先度が低くなるように算出することが可能である。
(右手7a)
手は動いておらず、(係数×優先度設定値)=(1×0)=0となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、その他の姿勢であり、(係数×優先度設定値)=(0.5×0)=0となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.0となる。
図22は、各ユーザ2の手の状態の一例を示す模式図である。
[ユーザ2a]
ユーザ2aは、両手を休ませており、何も操作を行っていない。
(左手6a)
手は動いておらず、(係数×優先度設定値)=(1×0)=0となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、その他の姿勢であり、(係数×優先度設定値)=(0.5×0)=0となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.0となる。
このように全然動いていない手については、自動的に優先度が低くなるように算出することが可能である。
(右手7a)
手は動いておらず、(係数×優先度設定値)=(1×0)=0となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、その他の姿勢であり、(係数×優先度設定値)=(0.5×0)=0となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.0となる。
[ユーザ2b]
ユーザ2bは、左手6bがパー姿勢のままで休んでおり、何も操作を行っていない。右手7bについては、ピンチ操作により実際に地図の拡大/縮小が実行されている。
(左手6b)
手は動いておらず、(係数×優先度設定値)=(1×0)=0となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、パー姿勢であり、(係数×優先度設定値)=(0.5×0.5)=0.25となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.25となる。
(右手7b)
手は動いており、(係数×優先度設定値)=(1×0.5)=0.5となる。
手の位置はテーブル中心に近く、(係数×優先度設定値)=(1×0.8)=0.8となる。
姿勢は、ピンチ姿勢であり、(係数×優先度設定値)=(0.5×1)=0.5となる。
拡大/縮小操作中であり、(係数×優先度設定値)=(2×1)=2となる。
優先度(積算結果)は3.8となる。
本実施例では、所定の入力操作の有無の比重が半分以上となり、他の要素に比べて非常に大きい。一方で、他の要素については、実際の入力操作が行われる前でも(係数×優先度設定値)が積算可能である。従って他の要素により、入力操作の前からそれを予期して第2の認識処理(機械学習ベースの認識処理)により認識されるようにするといったことが可能となる。
ユーザ2bは、左手6bがパー姿勢のままで休んでおり、何も操作を行っていない。右手7bについては、ピンチ操作により実際に地図の拡大/縮小が実行されている。
(左手6b)
手は動いておらず、(係数×優先度設定値)=(1×0)=0となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、パー姿勢であり、(係数×優先度設定値)=(0.5×0.5)=0.25となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.25となる。
(右手7b)
手は動いており、(係数×優先度設定値)=(1×0.5)=0.5となる。
手の位置はテーブル中心に近く、(係数×優先度設定値)=(1×0.8)=0.8となる。
姿勢は、ピンチ姿勢であり、(係数×優先度設定値)=(0.5×1)=0.5となる。
拡大/縮小操作中であり、(係数×優先度設定値)=(2×1)=2となる。
優先度(積算結果)は3.8となる。
本実施例では、所定の入力操作の有無の比重が半分以上となり、他の要素に比べて非常に大きい。一方で、他の要素については、実際の入力操作が行われる前でも(係数×優先度設定値)が積算可能である。従って他の要素により、入力操作の前からそれを予期して第2の認識処理(機械学習ベースの認識処理)により認識されるようにするといったことが可能となる。
[ユーザ2c]
ユーザ2cは、左手6cがパー姿勢のままで休んでおり、何も操作を行っていない。右手7cについては、人差し指姿勢のタップ操作により、タップされた位置の情報表示が実行されている。
(左手6c)
手は動いておらず、(係数×優先度設定値)=(1×0)=0となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、パー姿勢であり、(係数×優先度設定値)=(0.5×0.5)=0.25となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.25となる。
(右手7c)
手は動いており、(係数×優先度設定値)=(1×0.5)=0.5となる。
手の位置はテーブルの端気味であり、(係数×優先度設定値)=(1×0.2)=0.2となる。
姿勢は、人差し指姿勢であり、(係数×優先度設定値)=(0.5×0)=0となる。
タップ操作が行われており、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.7となる。
右手の人差し指姿勢の優先度設定値は0であり、タップ操作も0である。すなわち両方とも無視されてしまうため、優先度はあまり高くならない。
ユーザ2cは、左手6cがパー姿勢のままで休んでおり、何も操作を行っていない。右手7cについては、人差し指姿勢のタップ操作により、タップされた位置の情報表示が実行されている。
(左手6c)
手は動いておらず、(係数×優先度設定値)=(1×0)=0となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、パー姿勢であり、(係数×優先度設定値)=(0.5×0.5)=0.25となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.25となる。
(右手7c)
手は動いており、(係数×優先度設定値)=(1×0.5)=0.5となる。
手の位置はテーブルの端気味であり、(係数×優先度設定値)=(1×0.2)=0.2となる。
姿勢は、人差し指姿勢であり、(係数×優先度設定値)=(0.5×0)=0となる。
タップ操作が行われており、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.7となる。
右手の人差し指姿勢の優先度設定値は0であり、タップ操作も0である。すなわち両方とも無視されてしまうため、優先度はあまり高くならない。
[ユーザ2d]
ユーザ2dは、左手6dが休んでおり、何も操作を行っていない。右手7dについては、パー姿勢のタップ操作により、タップされた位置の情報表示が実行されている。
(左手)
手は動いておらず、(係数×優先度設定値)=(1×0)=0となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、その他の姿勢であり、(係数×優先度設定値)=(0.5×0)=0となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.0となる。
(右手7d)
手は動いており、(係数×優先度設定値)=(1×0.5)=0.5となる。
手の位置はテーブル中心に近く、(係数×優先度設定値)=(1×0.7)=0.7となる。
姿勢は、パー姿勢であり、(係数×優先度設定値)=(0.5×0.5)=0.25となる。
タップ操作が行われており、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は1.45となる。
右手7dについて、ユーザ2cの右手7cと同様のタップ操作であるが、パー姿勢である。またテーブル中心に近い。従って、優先度は、ユーザ2cの右手7cよりも高くなる。
ユーザ2dは、左手6dが休んでおり、何も操作を行っていない。右手7dについては、パー姿勢のタップ操作により、タップされた位置の情報表示が実行されている。
(左手)
手は動いておらず、(係数×優先度設定値)=(1×0)=0となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、その他の姿勢であり、(係数×優先度設定値)=(0.5×0)=0となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は0.0となる。
(右手7d)
手は動いており、(係数×優先度設定値)=(1×0.5)=0.5となる。
手の位置はテーブル中心に近く、(係数×優先度設定値)=(1×0.7)=0.7となる。
姿勢は、パー姿勢であり、(係数×優先度設定値)=(0.5×0.5)=0.25となる。
タップ操作が行われており、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は1.45となる。
右手7dについて、ユーザ2cの右手7cと同様のタップ操作であるが、パー姿勢である。またテーブル中心に近い。従って、優先度は、ユーザ2cの右手7cよりも高くなる。
図22には、各ユーザ2の左手6及び右手7に対して算出される優先度が図示されている。本例では、第2の認識処理(機械学習ベースの認識処理)を設定可能な手の許容数は2個である。従って、ユーザ2bの拡大/縮小操作をしている右手7bと、ユーザ2dのパー姿勢でタップ操作をしている右手7dに、第2の認識処理(機械学習ベースの認識処理)が割り当てられる。
このように、操作重要度の高い手を精度よく抽出することが可能となり、これらの手を第2の認識処理(機械学習ベースの認識処理)により高い精度で認識することが可能となっている。また休んでいるだけの手を排除して、操作している手を抽出することが可能であることもわかる。
このように、操作重要度の高い手を精度よく抽出することが可能となり、これらの手を第2の認識処理(機械学習ベースの認識処理)により高い精度で認識することが可能となっている。また休んでいるだけの手を排除して、操作している手を抽出することが可能であることもわかる。
図22に示す状態から、図23に示すように、ユーザ2cが右手7cで人差し指姿勢でのドラッグ操作を行ったとする。またユーザ2aは、それまで休めていた右手7aを、操作ではなく無駄に大きく動かしたとする。
(ユーザ2cの右手7c)
手は大きく動いており、(係数×優先度設定値)=(1×0.8)=0.8となる。
手の位置はテーブルの端気味であり、(係数×優先度設定値)=(1×0.2)=0.2となる。
姿勢は、人差し指姿勢であり、(係数×優先度設定値)=(0.5×0)=0となる。
ドラッグ操作が行われており、(係数×優先度設定値)=(2×0.5)=1となる。
優先度(積算結果)は2となり、ユーザ2dの右手7dの優先度である1.45より高くなる。
(ユーザ2aの右手7a)
手は大きく動いており、(係数×優先度設定値)=(1×0.8)=0.8となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、パー姿勢であり、(係数×優先度設定値)=(0.5×0.5)=0.25となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は1.05となり高くなるが、ユーザ2dの右手7dの優先度である1.45よりも低い値となる。
(ユーザ2cの右手7c)
手は大きく動いており、(係数×優先度設定値)=(1×0.8)=0.8となる。
手の位置はテーブルの端気味であり、(係数×優先度設定値)=(1×0.2)=0.2となる。
姿勢は、人差し指姿勢であり、(係数×優先度設定値)=(0.5×0)=0となる。
ドラッグ操作が行われており、(係数×優先度設定値)=(2×0.5)=1となる。
優先度(積算結果)は2となり、ユーザ2dの右手7dの優先度である1.45より高くなる。
(ユーザ2aの右手7a)
手は大きく動いており、(係数×優先度設定値)=(1×0.8)=0.8となる。
手の位置はテーブルの端であり、(係数×優先度設定値)=(1×0)=0となる。
姿勢は、パー姿勢であり、(係数×優先度設定値)=(0.5×0.5)=0.25となる。
入力操作はなく、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は1.05となり高くなるが、ユーザ2dの右手7dの優先度である1.45よりも低い値となる。
図23に示すように、ユーザ2bの拡大/縮小操作をしている右手7bと、ユーザ2cのドラッグ操作を行っている右手7cに、第2の認識処理(機械学習ベースの認識処理)が割り当てられる。すなわちユーザ2dのタップ操作をしている右手7dから、ユーザ2cのドラッグ操作を行っている右手7cに、第2の認識処理(機械学習ベースの認識処理)の設定が切り替えらえる。
このように、タップ操作よりも高い認識精度を要するドラッグ操作に対して、第2の認識処理(機械学習ベースの認識処理)を設定することが可能となる。
また優先度算出量の要素として、「手の活動量」のみならず他の要素も定義されているので、無駄に動かしているユーザ2aの右手7aに対して、第2の認識処理(機械学習ベースの認識処理)が設定されてしまうことはなく、操作重要度の高い手から外することが可能である。
このように、タップ操作よりも高い認識精度を要するドラッグ操作に対して、第2の認識処理(機械学習ベースの認識処理)を設定することが可能となる。
また優先度算出量の要素として、「手の活動量」のみならず他の要素も定義されているので、無駄に動かしているユーザ2aの右手7aに対して、第2の認識処理(機械学習ベースの認識処理)が設定されてしまうことはなく、操作重要度の高い手から外することが可能である。
図23に示す状態から、図24に示すように、ユーザ2dが右手7dを使ってテーブル中心付近で、活発にタップ操作を行い始めたとする。
(ユーザ2dの右手7d)
手は非常に活発に動いており、(係数×優先度設定値)=(1×0.9)=0.9となる。
手の位置はテーブル中心に非常に近く、(係数×優先度設定値)=(1×0.9)=0.9となる。
姿勢は、パー姿勢であり、(係数×優先度設定値)=(0.5×0.5)=0.25となる。
タップ操作が行われており、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は2.05となり、ユーザ2cの右手7cの優先度である2.0より高くなる。
(ユーザ2dの右手7d)
手は非常に活発に動いており、(係数×優先度設定値)=(1×0.9)=0.9となる。
手の位置はテーブル中心に非常に近く、(係数×優先度設定値)=(1×0.9)=0.9となる。
姿勢は、パー姿勢であり、(係数×優先度設定値)=(0.5×0.5)=0.25となる。
タップ操作が行われており、(係数×優先度設定値)=(2×0)=0となる。
優先度(積算結果)は2.05となり、ユーザ2cの右手7cの優先度である2.0より高くなる。
図24に示すように、ユーザ2bの拡大/縮小操作をしている右手7bと、ユーザ2cのドラッグ操作を行っている右手7cに、第2の認識処理(機械学習ベースの認識処理)が割り当てられる。すなわちこれら2個の手に対して、第2の認識処理(機械学習ベースの認識処理)の設定が維持される。
これは、ユーザ2cのドラッグ操作を行っている右手7cの優先度が、優先度の閾値(2.0)以上であるためである。優先度が閾値以上になっている手については、新たに優先度のより大きい手が出現したとしても、第2の認識処理(機械学習ベースの認識処理)の設定が維持される。
従って、優先度が2.05となった活発にタップ操作を行うユーザ2dの右手7dについては、第1の認識処理(ルールべース)の認識処理が割り当てられる。もしユーザ2bの右手7b、及びユーザ2cの右手7cのいずれかの優先度が閾値を下回ったら、そのとき初めてユーザ2dの右手7dに第2の認識処理(機械学習ベースの認識処理)が割り当てられる。
このように閾値によって認識処理をキープすることによって、ある操作をしている最中に突然認識処理が切り替わって、検出座標にずれが生じるといったことを防ぐことができる。
以上、本技術に係る情報処理装置では、認識された1以上の対象物1の各々に対して、第1の認識処理又は高精度の認識が可能な第2の認識処理が、認識部により実行される実行認識処理として設定される。これにより、処理負荷を抑えた新たな認識処理を実現することが可能となる。
例えば、画像センサで複数ユーザの手の突端位置を検出し、通常のテーブル上に投影したGUIに対して操作を行うことが可能である。しかしながらシステムで同時に検出可能な手指の本数には上限があり、検出上限より多くの手が存在した場合、どの手が認識されるのかをコントロールできないという問題が発生し得る。
検出可能な手指の上限数は基本的に手認識の処理負荷・認識性能と反比例している。例えば、処理負荷が低く、認識性能も低い認識処理を使用する場合、比較的多くの検出数を許容できる。一方で、認識性能が高く、また処理負荷も高い認識処理を利用した場合、上限が少なくなり、上記問題が発生しやすくなる。
本技術を用いることで、例えば性能(例えば精度や認識可能な点数)と処理負荷とにトレードオフの存在する2種類の手指位置の認識処理を、ユーザの手の状態に応じて自動的に切り替えることが可能となる。例えばユーザに対して認識処理の切り替えを意識させることなく、アプリケーション等の利用を実現させることが可能となる。この結果、処理負荷の抑制と、ユーザの操作性の向上とを両立することが可能となる。
また、本技術を用いることで、認識範囲に多くの手が存在していても、高性能・高負荷の認識処理と低性能・低負荷の認識処理とを併用し、各々の手の状態に応じて効率的に割り当てることが可能となる。これによりユーザの所望の操作を損なわずに、処理負荷を最適化することも可能となる。
これは、ユーザ2cのドラッグ操作を行っている右手7cの優先度が、優先度の閾値(2.0)以上であるためである。優先度が閾値以上になっている手については、新たに優先度のより大きい手が出現したとしても、第2の認識処理(機械学習ベースの認識処理)の設定が維持される。
従って、優先度が2.05となった活発にタップ操作を行うユーザ2dの右手7dについては、第1の認識処理(ルールべース)の認識処理が割り当てられる。もしユーザ2bの右手7b、及びユーザ2cの右手7cのいずれかの優先度が閾値を下回ったら、そのとき初めてユーザ2dの右手7dに第2の認識処理(機械学習ベースの認識処理)が割り当てられる。
このように閾値によって認識処理をキープすることによって、ある操作をしている最中に突然認識処理が切り替わって、検出座標にずれが生じるといったことを防ぐことができる。
以上、本技術に係る情報処理装置では、認識された1以上の対象物1の各々に対して、第1の認識処理又は高精度の認識が可能な第2の認識処理が、認識部により実行される実行認識処理として設定される。これにより、処理負荷を抑えた新たな認識処理を実現することが可能となる。
例えば、画像センサで複数ユーザの手の突端位置を検出し、通常のテーブル上に投影したGUIに対して操作を行うことが可能である。しかしながらシステムで同時に検出可能な手指の本数には上限があり、検出上限より多くの手が存在した場合、どの手が認識されるのかをコントロールできないという問題が発生し得る。
検出可能な手指の上限数は基本的に手認識の処理負荷・認識性能と反比例している。例えば、処理負荷が低く、認識性能も低い認識処理を使用する場合、比較的多くの検出数を許容できる。一方で、認識性能が高く、また処理負荷も高い認識処理を利用した場合、上限が少なくなり、上記問題が発生しやすくなる。
本技術を用いることで、例えば性能(例えば精度や認識可能な点数)と処理負荷とにトレードオフの存在する2種類の手指位置の認識処理を、ユーザの手の状態に応じて自動的に切り替えることが可能となる。例えばユーザに対して認識処理の切り替えを意識させることなく、アプリケーション等の利用を実現させることが可能となる。この結果、処理負荷の抑制と、ユーザの操作性の向上とを両立することが可能となる。
また、本技術を用いることで、認識範囲に多くの手が存在していても、高性能・高負荷の認識処理と低性能・低負荷の認識処理とを併用し、各々の手の状態に応じて効率的に割り当てることが可能となる。これによりユーザの所望の操作を損なわずに、処理負荷を最適化することも可能となる。
<その他の実施形態>
本技術は、以上説明した実施形態に限定されず、他の種々の実施形態を実現することができる。
本技術は、以上説明した実施形態に限定されず、他の種々の実施形態を実現することができる。
上記の実施形態では、システム側が自動的に判断することで、ユーザが意識することなく、第1の認識処理及び第2の認識処理の設定が実行された。
本技術の実施に関して、ユーザが自主的に第1の認識処理及び第2の認識処理の設定を切り替えることも可能である。
例えば、アプリケーションに対する操作、姿勢、ジェスチャ、音声等によるユーザの指示に応じて、第1の認識処理及び第2の認識処理の設定が切替えられてもよい。
例えば、図25Aに示す例では、優先度算出用の要素として「手による入力操作の有無」が定義され、特定のタッチ操作(優先度設定値1.0)、及びそれ以外の操作(優先度設定値0.0)が定義されている。
これにより特定のタッチ操作が行われた場合に、優先度が上がるようになっている。特定のタッチ操作としては、例えば、図25B及びCに示すように、特定のボタンや特定の物体へのタッチ操作が挙げられる。もちろんこれに限定される訳ではない。
ユーザは、自分の手に対して高精度の認識を望む場合は、特定のタッチ操作を行えばよい。これにより、例えば、「特定のボタン及び特定の物体に触ることで、(その手がより精度の高い認識をされるようになり、その認識を利用した)タッチ以外の様々な操作を開始できる」といったアプリケーション体験を実現することが可能となる。
なお、優先度の算出において、前フレームの優先度を多く残すようにして、特定のタッチ操作をした後に優先度がゆるやかに減少していくように設定する。これにより、特定のタッチ操作をした後しばらくの間優先度が保たれ、特定のタッチ操作を手が新たに現れた場合は、その手に高精度の認識を譲ることが可能となる。
例えば、特定の時間の間は機械学習ベースの認識処理をキープしたいという場合(例えば、特定のタッチ操作後10秒は、特定のタッチ操作をする手が新たに現れても高精度の認識をキープ可能)は、特定のタッチ操作の後、特定の時間の間に優先度が減少しながらも優先度の閾値は下回らないように、係数や優先度の閾値を調整すればよい。
もちろん、他の手の優先度によっては、認識処理が切り替わらない場合もあり得る。
本技術の実施に関して、ユーザが自主的に第1の認識処理及び第2の認識処理の設定を切り替えることも可能である。
例えば、アプリケーションに対する操作、姿勢、ジェスチャ、音声等によるユーザの指示に応じて、第1の認識処理及び第2の認識処理の設定が切替えられてもよい。
例えば、図25Aに示す例では、優先度算出用の要素として「手による入力操作の有無」が定義され、特定のタッチ操作(優先度設定値1.0)、及びそれ以外の操作(優先度設定値0.0)が定義されている。
これにより特定のタッチ操作が行われた場合に、優先度が上がるようになっている。特定のタッチ操作としては、例えば、図25B及びCに示すように、特定のボタンや特定の物体へのタッチ操作が挙げられる。もちろんこれに限定される訳ではない。
ユーザは、自分の手に対して高精度の認識を望む場合は、特定のタッチ操作を行えばよい。これにより、例えば、「特定のボタン及び特定の物体に触ることで、(その手がより精度の高い認識をされるようになり、その認識を利用した)タッチ以外の様々な操作を開始できる」といったアプリケーション体験を実現することが可能となる。
なお、優先度の算出において、前フレームの優先度を多く残すようにして、特定のタッチ操作をした後に優先度がゆるやかに減少していくように設定する。これにより、特定のタッチ操作をした後しばらくの間優先度が保たれ、特定のタッチ操作を手が新たに現れた場合は、その手に高精度の認識を譲ることが可能となる。
例えば、特定の時間の間は機械学習ベースの認識処理をキープしたいという場合(例えば、特定のタッチ操作後10秒は、特定のタッチ操作をする手が新たに現れても高精度の認識をキープ可能)は、特定のタッチ操作の後、特定の時間の間に優先度が減少しながらも優先度の閾値は下回らないように、係数や優先度の閾値を調整すればよい。
もちろん、他の手の優先度によっては、認識処理が切り替わらない場合もあり得る。
図26に示す例では、特定の場所に依存しない空中でのジェスチャにより、ユーザによる明示的な認識処理の切り替えが可能となる。
例えば、図26A~Cに示すように、優先度算出用の要素として「手の姿勢」が定義され、数回のグーバーの繰り返しに対して優先度設定値(1.0)が設定される。またチョキで3秒待つに対して優先度設定値1.0が設定される。それ以外の姿勢については、優先度設定値0.0は設定される。
ユーザは、これらのジェスチャを行うことで、自分の手に対しての優先度を向上させることが可能となり、第1の認識処理から第2の認識処理への切り替えを実行することが可能となる。もちろん、他の手の優先度によっては、認識処理が切り替わらない場合もあり得る。
例えば、図26A~Cに示すように、優先度算出用の要素として「手の姿勢」が定義され、数回のグーバーの繰り返しに対して優先度設定値(1.0)が設定される。またチョキで3秒待つに対して優先度設定値1.0が設定される。それ以外の姿勢については、優先度設定値0.0は設定される。
ユーザは、これらのジェスチャを行うことで、自分の手に対しての優先度を向上させることが可能となり、第1の認識処理から第2の認識処理への切り替えを実行することが可能となる。もちろん、他の手の優先度によっては、認識処理が切り替わらない場合もあり得る。
このように、所定の状態(位置、姿勢、入力操作、これらの組み合わせ等)が認識された対象物を優先して、第2の認識処理が実行認識処理として設定されてもよい。また所定の状態(位置、姿勢、入力操作、これらの組み合わせ等)が認識された対象物の優先度が相対的に高くなるように算出されてもよい。
これによりユーザにとって新しい操作体験を提供することが可能となる。
これによりユーザにとって新しい操作体験を提供することが可能となる。
ユーザが意図的に認識処理を切り替え可能である場合、ユーザに現在設定されている認識処理が把握可能なように、視覚的なフィードバックが実行されてもよい。
例えば図27に示すように、ユーザの手の上や手の付近に、設定されている認識処理が把握可能な表示を、プロジェクションあるいはAR表示する。
例えば、図27Aに示す色分け、図27Bに示すポインタの種類の変更、図27Cに示すどちらか一方の認識処理の設定に応じた画像表示、このような視覚的なフィードバックが考えられる。もちろん、その他、任意のフィードバックが実行されてよい。例えば、音声や振動等によりフィードバックが実行されてもよい。
認識処理についてフィードバックが実行されることで、ユーザが自分の手に対する現在の認識状態をよりコントロールしやすくなる。
例えば図27に示すように、ユーザの手の上や手の付近に、設定されている認識処理が把握可能な表示を、プロジェクションあるいはAR表示する。
例えば、図27Aに示す色分け、図27Bに示すポインタの種類の変更、図27Cに示すどちらか一方の認識処理の設定に応じた画像表示、このような視覚的なフィードバックが考えられる。もちろん、その他、任意のフィードバックが実行されてよい。例えば、音声や振動等によりフィードバックが実行されてもよい。
認識処理についてフィードバックが実行されることで、ユーザが自分の手に対する現在の認識状態をよりコントロールしやすくなる。
第2の認識処理が設定可能な対象物の許容数(上限数)は、情報処理装置の性能に合わせて、任意に設定することが可能である。
あるいは、システム側で、許容数が自動的に判定されてもよい。
例えば、ユーザにより、認識処理のフレームレートが指定されるとする。この場合、システム側で、0個、1個、2個と、処理する手の数を増やしながら認識処理をシミュレートする。そして、ユーザが指定したフレームレートを下回った場合に、そのときの数から1個少ない数を、許容数として設定する。
もちろん、他の方法が採用されてもよい。また情報処理装置の負荷状態等に応じて、許容数が動的に変更可能であってもよい。
あるいは、システム側で、許容数が自動的に判定されてもよい。
例えば、ユーザにより、認識処理のフレームレートが指定されるとする。この場合、システム側で、0個、1個、2個と、処理する手の数を増やしながら認識処理をシミュレートする。そして、ユーザが指定したフレームレートを下回った場合に、そのときの数から1個少ない数を、許容数として設定する。
もちろん、他の方法が採用されてもよい。また情報処理装置の負荷状態等に応じて、許容数が動的に変更可能であってもよい。
図28は、情報処理装置20(40)のハードウェア構成例を示すブロック図である。
情報処理装置20(40)は、CPU61、ROM(Read Only Memory)62、RAM63、入出力インタフェース65、及びこれらを互いに接続するバス64を備える。入出力インタフェース65には、表示部66、入力部67、記憶部68、通信部69、及びドライブ部70等が接続される。
表示部66は、例えば液晶、EL等を用いた表示デバイスである。入力部67は、例えばキーボード、ポインティングデバイス、タッチパネル、その他の操作装置である。入力部67がタッチパネルを含む場合、そのタッチパネルは表示部66と一体となり得る。
記憶部68は、不揮発性の記憶デバイスであり、例えばHDD、フラッシュメモリ、その他の固体メモリである。ドライブ部70は、例えば光学記録媒体、磁気記録テープ等、リムーバブルの記録媒体71を駆動することが可能なデバイスである。
通信部69は、LAN、WAN等に接続可能な、他のデバイスと通信するためのモデム、ルータ、その他の通信機器である。通信部69は、有線及び無線のどちらを利用して通信するものであってもよい。通信部69は、情報処理装置20(40)とは別体で使用される場合が多い。
上記のようなハードウェア構成を有する情報処理装置20(40)による情報処理は、記憶部68またはROM62等に記憶されたソフトウェアと、情報処理装置20(40)のハードウェア資源との協働により実現される。具体的には、ROM62等に記憶された、ソフトウェアを構成するプログラムをRAM63にロードして実行することにより、本技術に係る情報処理方法が実現される。
プログラムは、例えば記録媒体61を介して情報処理装置20(40)にインストールされる。あるいは、グローバルネットワーク等を介してプログラムが情報処理装置20(40)にインストールされてもよい。その他、コンピュータ読み取り可能な非一過性の任意の記憶媒体が用いられてよい。
情報処理装置20(40)は、CPU61、ROM(Read Only Memory)62、RAM63、入出力インタフェース65、及びこれらを互いに接続するバス64を備える。入出力インタフェース65には、表示部66、入力部67、記憶部68、通信部69、及びドライブ部70等が接続される。
表示部66は、例えば液晶、EL等を用いた表示デバイスである。入力部67は、例えばキーボード、ポインティングデバイス、タッチパネル、その他の操作装置である。入力部67がタッチパネルを含む場合、そのタッチパネルは表示部66と一体となり得る。
記憶部68は、不揮発性の記憶デバイスであり、例えばHDD、フラッシュメモリ、その他の固体メモリである。ドライブ部70は、例えば光学記録媒体、磁気記録テープ等、リムーバブルの記録媒体71を駆動することが可能なデバイスである。
通信部69は、LAN、WAN等に接続可能な、他のデバイスと通信するためのモデム、ルータ、その他の通信機器である。通信部69は、有線及び無線のどちらを利用して通信するものであってもよい。通信部69は、情報処理装置20(40)とは別体で使用される場合が多い。
上記のようなハードウェア構成を有する情報処理装置20(40)による情報処理は、記憶部68またはROM62等に記憶されたソフトウェアと、情報処理装置20(40)のハードウェア資源との協働により実現される。具体的には、ROM62等に記憶された、ソフトウェアを構成するプログラムをRAM63にロードして実行することにより、本技術に係る情報処理方法が実現される。
プログラムは、例えば記録媒体61を介して情報処理装置20(40)にインストールされる。あるいは、グローバルネットワーク等を介してプログラムが情報処理装置20(40)にインストールされてもよい。その他、コンピュータ読み取り可能な非一過性の任意の記憶媒体が用いられてよい。
本技術に係る情報処理装置が、センサや表示デバイス等の、他のデバイスと一体的に構成されてもよい。すなわちセンサや表示デバイス等に、本技術に係る情報処理装置の機能が搭載されてもよい。この場合、当該センサや表示デバイス自体が、本技術に係る譲歩処理装置の一実施形態となる。
図1に例示した物体認識システム100の適用が、図3等に例示した情報提示システム150への適用に限定される訳ではない。対象物に対する認識が必要な任意の分野の任意のシステムに対して、本技術に係る物体認識システムを適用することが可能である。
ネットワーク等を介して通信可能に接続された複数のコンピュータが協働することで、本技術に係る情報処理方法及びプログラムが実行され、本技術に係る情報処理装置が構築されてもよい。
すなわち本技術に係る情報処理方法、及びプログラムは、単体のコンピュータにより構成されたコンピュータシステムのみならず、複数のコンピュータが連動して動作するコンピュータシステムにおいても実行可能である。なお本開示において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれもシステムである。
コンピュータシステムによる本技術に係る情報処理方法、及びプログラムの実行は、例えばセンサの検出結果に基づいた対象物の認識や、実行認識処理の設定等が、単体のコンピュータにより実行される場合、及び各処理が異なるコンピュータにより実行される場合の両方を含む。また所定のコンピュータによる各処理の実行は、当該処理の一部または全部を他のコンピュータに実行させその結果を取得することを含む。
すなわち本技術に係る情報処理方法及びプログラムは、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成にも適用することが可能である。
すなわち本技術に係る情報処理方法、及びプログラムは、単体のコンピュータにより構成されたコンピュータシステムのみならず、複数のコンピュータが連動して動作するコンピュータシステムにおいても実行可能である。なお本開示において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれもシステムである。
コンピュータシステムによる本技術に係る情報処理方法、及びプログラムの実行は、例えばセンサの検出結果に基づいた対象物の認識や、実行認識処理の設定等が、単体のコンピュータにより実行される場合、及び各処理が異なるコンピュータにより実行される場合の両方を含む。また所定のコンピュータによる各処理の実行は、当該処理の一部または全部を他のコンピュータに実行させその結果を取得することを含む。
すなわち本技術に係る情報処理方法及びプログラムは、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成にも適用することが可能である。
各図面を参照して説明した物体認識システム、情報提示システム、センサ、表示デバイス、情報処理装置、アプリケーション画像等の各構成、認識フロー、優先度算出フロー、実行認識処理の設定フロー等はあくまで一実施形態であり、本技術の趣旨を逸脱しない範囲で、任意に変形可能である。すなわち本技術を実施するための他の任意の構成やアルゴリズム等が採用されてよい。
本開示において、「Aより大きい」「Aより小さい」といった「より」を使った表現は、Aと同等である場合を含む概念と、Aと同等である場合を含なまい概念の両方を包括的に含む表現である。例えば「Aより大きい」は、Aと同等は含まない場合に限定されず、「A以上」も含む。また「Aより小さい」は、「A未満」に限定されず、「A以下」も含む。
本技術を実施する際には、上記で説明した効果が発揮されるように、「Aより大きい」及び「Aより小さい」に含まれる概念から、具体的な設定等を適宜採用すればよい。
本技術を実施する際には、上記で説明した効果が発揮されるように、「Aより大きい」及び「Aより小さい」に含まれる概念から、具体的な設定等を適宜採用すればよい。
本開示において、「中心」「中央」「均一」「等しい」「同じ」「直交」「平行」「対称」「延在」「軸方向」「円柱形状」「円筒形状」「リング形状」「円環形状」等の、形状、サイズ、位置関係、状態等を規定する概念は、「実質的に中心」「実質的に中央」「実質的に均一」「実質的に等しい」「実質的に同じ」「実質的に直交」「実質的に平行」「実質的に対称」「実質的に延在」「実質的に軸方向」「実質的に円柱形状」「実質的に円筒形状」「実質的にリング形状」「実質的に円環形状」等を含む概念とする。
例えば「完全に中心」「完全に中央」「完全に均一」「完全に等しい」「完全に同じ」「完全に直交」「完全に平行」「完全に対称」「完全に延在」「完全に軸方向」「完全に円柱形状」「完全に円筒形状」「完全にリング形状」「完全に円環形状」等を基準とした所定の範囲(例えば±10%の範囲)に含まれる状態も含まれる。
従って、「略」の文言が付加されていない場合でも、いわゆる「略」を付加して表現される概念が含まれ得る。反対に、「略」を付加して表現された状態について、完全な状態が排除される訳ではない。
例えば「完全に中心」「完全に中央」「完全に均一」「完全に等しい」「完全に同じ」「完全に直交」「完全に平行」「完全に対称」「完全に延在」「完全に軸方向」「完全に円柱形状」「完全に円筒形状」「完全にリング形状」「完全に円環形状」等を基準とした所定の範囲(例えば±10%の範囲)に含まれる状態も含まれる。
従って、「略」の文言が付加されていない場合でも、いわゆる「略」を付加して表現される概念が含まれ得る。反対に、「略」を付加して表現された状態について、完全な状態が排除される訳ではない。
以上説明した本技術に係る特徴部分のうち、少なくとも2つの特徴部分を組み合わせることも可能である。すなわち各実施形態で説明した種々の特徴部分は、各実施形態の区別なく、任意に組み合わされてもよい。また上記で記載した種々の効果は、あくまで例示であって限定されるものではなく、また他の効果が発揮されてもよい。
なお、本技術は以下のような構成も採ることができる。
(1)
センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する認識部と、
認識された前記1以上の対象物の各々に対して、前記認識部により実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する設定部と
を具備する情報処理装置。
(2)(1)に記載の情報処理装置であって、
前記設定部は、所定の時間間隔で、前記1以上の対象物の各々に設定される前記実行認識処理を更新する
情報処理装置。
(3)(1)又は(2)に記載の情報処理装置であって、
前記設定部は、前記認識部により前記1以上の対象物が認識されるタイミングごとに、前記1以上の対象物の各々に設定される前記実行認識処理を更新する
情報処理装置。
(4)(1)から(3)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、前記第2の認識処理が前記実行認識処理として設定される前記対象物の数が、所定の上限数以下となるように、前記1以上の対象物の各々に対して前記実行認識処理を設定する
情報処理装置。
(5)(1)から(4)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、前記1以上の対象物の各々に関する対象物情報に基づいて、前記1以上の対象物の各々に対して前記実行認識処理を設定する
情報処理装置。
(6)(5)に記載の情報処理装置であって、
前記対象物情報は、前記対象物の位置、前記対象物の状態、又は前記対象物の動きのうちの少なくとも1つを含む
情報処理装置。
(7)(5)又は(6)に記載の情報処理装置であって、
前記対象物情報は、前記対象物の活動量、前記対象物の所定の位置からの距離、前記対象物の姿勢、前記対象物による入力操作の有無、又は前記対象物に関連する関連対象物の情報のうちの少なくとも1つを含む
情報処理装置。
(8)(5)から(7)のうちいずれか1つに記載の情報処理装置であって、
前記対象物情報は、前記1以上の対象物の各々に対する前記認識部による認識結果を含む
情報処理装置。
(9)(5)から(8)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、前記1以上の対象物の各々に関する対象物情報に基づいて前記1以上の対象物の各々に対して優先度を算出し、算出された前記優先度に基づいて前記1以上の対象物の各々に対して前記実行認識処理を設定する
情報処理装置。
(10)(9)に記載の情報処理装置であって、
前記設定部は、前記1以上の対象物のうち前記優先度が相対的に高い前記対象物に対して、前記第2の認識処理を前記実行認識処理として設定する
情報処理装置。
(11)(9)又は(10)に記載の情報処理装置であって、
前記設定部は、前記1以上の対象物の各々に対して前記優先度が高い順に、前記第2の認識処理を前記実行認識処理として設定する
情報処理装置。
(12)(9)から(11)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、前記第2の認識処理が前記実行認識処理として設定されており前記優先度が所定の閾値よりも高い前記対象物に対して、前記優先度が前記所定の閾値よりも低くなるまで前記第2の認識処理の設定を維持する
情報処理装置。
(13)(1)から(12)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、所定の状態が認識された前記対象物を優先して、前記第2の認識処理を前記実行認識処理として設定する
情報処理装置。
(14)(9)から(12)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、所定の状態が認識された前記対象物の前記優先度を相対的に高く算出する
情報処理装置。
(15)(1)から(14)のうちいずれか1つに記載の情報処理装置であって、
前記第1の認識処理は、ルールベースアルゴリズムを用いた認識処理であり、
前記第2の認識処理は、機械学習アルゴリズムを用いた認識処理である
情報処理装置。
(16)(1)から(15)のうちいずれか1つに記載の情報処理装置であって、
前記第2の認識処理は、第1の認識処理よりも処理負荷が大きい
情報処理装置。
(17)(1)から(16)のうちいずれか1つに記載の情報処理装置であって、
前記1以上の対象物の各々は、人体の所定の部位である
情報処理装置。
(18)
コンピュータシステムにより実行される情報処理方法であって、
センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する認識ステップと、
認識された前記1以上の対象物の各々に対して、前記認識ステップにより実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する設定ステップと
を具備する情報処理方法。
(19)
センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する認識ステップと、
認識された前記1以上の対象物の各々に対して、前記認識ステップにより実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する設定ステップと
をコンピュータシステムに実行させるプログラム。
(1)
センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する認識部と、
認識された前記1以上の対象物の各々に対して、前記認識部により実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する設定部と
を具備する情報処理装置。
(2)(1)に記載の情報処理装置であって、
前記設定部は、所定の時間間隔で、前記1以上の対象物の各々に設定される前記実行認識処理を更新する
情報処理装置。
(3)(1)又は(2)に記載の情報処理装置であって、
前記設定部は、前記認識部により前記1以上の対象物が認識されるタイミングごとに、前記1以上の対象物の各々に設定される前記実行認識処理を更新する
情報処理装置。
(4)(1)から(3)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、前記第2の認識処理が前記実行認識処理として設定される前記対象物の数が、所定の上限数以下となるように、前記1以上の対象物の各々に対して前記実行認識処理を設定する
情報処理装置。
(5)(1)から(4)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、前記1以上の対象物の各々に関する対象物情報に基づいて、前記1以上の対象物の各々に対して前記実行認識処理を設定する
情報処理装置。
(6)(5)に記載の情報処理装置であって、
前記対象物情報は、前記対象物の位置、前記対象物の状態、又は前記対象物の動きのうちの少なくとも1つを含む
情報処理装置。
(7)(5)又は(6)に記載の情報処理装置であって、
前記対象物情報は、前記対象物の活動量、前記対象物の所定の位置からの距離、前記対象物の姿勢、前記対象物による入力操作の有無、又は前記対象物に関連する関連対象物の情報のうちの少なくとも1つを含む
情報処理装置。
(8)(5)から(7)のうちいずれか1つに記載の情報処理装置であって、
前記対象物情報は、前記1以上の対象物の各々に対する前記認識部による認識結果を含む
情報処理装置。
(9)(5)から(8)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、前記1以上の対象物の各々に関する対象物情報に基づいて前記1以上の対象物の各々に対して優先度を算出し、算出された前記優先度に基づいて前記1以上の対象物の各々に対して前記実行認識処理を設定する
情報処理装置。
(10)(9)に記載の情報処理装置であって、
前記設定部は、前記1以上の対象物のうち前記優先度が相対的に高い前記対象物に対して、前記第2の認識処理を前記実行認識処理として設定する
情報処理装置。
(11)(9)又は(10)に記載の情報処理装置であって、
前記設定部は、前記1以上の対象物の各々に対して前記優先度が高い順に、前記第2の認識処理を前記実行認識処理として設定する
情報処理装置。
(12)(9)から(11)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、前記第2の認識処理が前記実行認識処理として設定されており前記優先度が所定の閾値よりも高い前記対象物に対して、前記優先度が前記所定の閾値よりも低くなるまで前記第2の認識処理の設定を維持する
情報処理装置。
(13)(1)から(12)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、所定の状態が認識された前記対象物を優先して、前記第2の認識処理を前記実行認識処理として設定する
情報処理装置。
(14)(9)から(12)のうちいずれか1つに記載の情報処理装置であって、
前記設定部は、所定の状態が認識された前記対象物の前記優先度を相対的に高く算出する
情報処理装置。
(15)(1)から(14)のうちいずれか1つに記載の情報処理装置であって、
前記第1の認識処理は、ルールベースアルゴリズムを用いた認識処理であり、
前記第2の認識処理は、機械学習アルゴリズムを用いた認識処理である
情報処理装置。
(16)(1)から(15)のうちいずれか1つに記載の情報処理装置であって、
前記第2の認識処理は、第1の認識処理よりも処理負荷が大きい
情報処理装置。
(17)(1)から(16)のうちいずれか1つに記載の情報処理装置であって、
前記1以上の対象物の各々は、人体の所定の部位である
情報処理装置。
(18)
コンピュータシステムにより実行される情報処理方法であって、
センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する認識ステップと、
認識された前記1以上の対象物の各々に対して、前記認識ステップにより実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する設定ステップと
を具備する情報処理方法。
(19)
センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する認識ステップと、
認識された前記1以上の対象物の各々に対して、前記認識ステップにより実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する設定ステップと
をコンピュータシステムに実行させるプログラム。
0…優先度設定値
1…対象物
2…ユーザ
3…手
6…左手
7…右手
10、30…センサ
20、40…情報処理装置
21…認識部
22…設定部
25…プロジェクタ
41…処理実行部
42…認識処理部
43…手認識部
44…優先度算出部
45…認識処理設定部
46…優先度定義部
50…地図
100…物体認識システム
150…情報提示システム
1…対象物
2…ユーザ
3…手
6…左手
7…右手
10、30…センサ
20、40…情報処理装置
21…認識部
22…設定部
25…プロジェクタ
41…処理実行部
42…認識処理部
43…手認識部
44…優先度算出部
45…認識処理設定部
46…優先度定義部
50…地図
100…物体認識システム
150…情報提示システム
Claims (19)
- センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する認識部と、
認識された前記1以上の対象物の各々に対して、前記認識部により実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する設定部と
を具備する情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記設定部は、所定の時間間隔で、前記1以上の対象物の各々に設定される前記実行認識処理を更新する
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記設定部は、前記認識部により前記1以上の対象物が認識されるタイミングごとに、前記1以上の対象物の各々に設定される前記実行認識処理を更新する
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記設定部は、前記第2の認識処理が前記実行認識処理として設定される前記対象物の数が、所定の上限数以下となるように、前記1以上の対象物の各々に対して前記実行認識処理を設定する
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記設定部は、前記1以上の対象物の各々に関する対象物情報に基づいて、前記1以上の対象物の各々に対して前記実行認識処理を設定する
情報処理装置。 - 請求項5に記載の情報処理装置であって、
前記対象物情報は、前記対象物の位置、前記対象物の状態、又は前記対象物の動きのうちの少なくとも1つを含む
情報処理装置。 - 請求項5に記載の情報処理装置であって、
前記対象物情報は、前記対象物の活動量、前記対象物の所定の位置からの距離、前記対象物の姿勢、前記対象物による入力操作の有無、又は前記対象物に関連する関連対象物の情報のうちの少なくとも1つを含む
情報処理装置。 - 請求項5に記載の情報処理装置であって、
前記対象物情報は、前記1以上の対象物の各々に対する前記認識部による認識結果を含む
情報処理装置。 - 請求項5に記載の情報処理装置であって、
前記設定部は、前記1以上の対象物の各々に関する対象物情報に基づいて前記1以上の対象物の各々に対して優先度を算出し、算出された前記優先度に基づいて前記1以上の対象物の各々に対して前記実行認識処理を設定する
情報処理装置。 - 請求項9に記載の情報処理装置であって、
前記設定部は、前記1以上の対象物のうち前記優先度が相対的に高い前記対象物に対して、前記第2の認識処理を前記実行認識処理として設定する
情報処理装置。 - 請求項9に記載の情報処理装置であって、
前記設定部は、前記1以上の対象物の各々に対して前記優先度が高い順に、前記第2の認識処理を前記実行認識処理として設定する
情報処理装置。 - 請求項9に記載の情報処理装置であって、
前記設定部は、前記第2の認識処理が前記実行認識処理として設定されており前記優先度が所定の閾値よりも高い前記対象物に対して、前記優先度が前記所定の閾値よりも低くなるまで前記第2の認識処理の設定を維持する
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記設定部は、所定の状態が認識された前記対象物を優先して、前記第2の認識処理を前記実行認識処理として設定する
情報処理装置。 - 請求項9に記載の情報処理装置であって、
前記設定部は、所定の状態が認識された前記対象物の前記優先度を相対的に高く算出する
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記第1の認識処理は、ルールベースアルゴリズムを用いた認識処理であり、
前記第2の認識処理は、機械学習アルゴリズムを用いた認識処理である
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記第2の認識処理は、第1の認識処理よりも処理負荷が大きい
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記1以上の対象物の各々は、人体の所定の部位である
情報処理装置。 - コンピュータシステムにより実行される情報処理方法であって、
センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する認識ステップと、
認識された前記1以上の対象物の各々に対して、前記認識ステップにより実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する設定ステップと
を具備する情報処理方法。 - センサの検出結果に対して第1の認識処理、又は前記第1の認識処理よりも高精度の認識が可能な第2の認識処理を実行し、1以上の対象物の各々を認識する認識ステップと、
認識された前記1以上の対象物の各々に対して、前記認識ステップにより実行される実行認識処理として、前記第1の認識処理又は前記第2の認識処理を設定する設定ステップと
をコンピュータシステムに実行させるプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-032074 | 2020-02-27 | ||
JP2020032074A JP2021135793A (ja) | 2020-02-27 | 2020-02-27 | 情報処理装置、情報処理方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021172092A1 true WO2021172092A1 (ja) | 2021-09-02 |
Family
ID=77490062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/005678 WO2021172092A1 (ja) | 2020-02-27 | 2021-02-16 | 情報処理装置、情報処理方法、及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2021135793A (ja) |
WO (1) | WO2021172092A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013118218A1 (ja) * | 2012-02-09 | 2013-08-15 | パナソニック株式会社 | 画像認識装置、画像認識方法、プログラムおよび集積回路 |
JP2018136803A (ja) * | 2017-02-23 | 2018-08-30 | 株式会社日立製作所 | 画像認識システム |
JP2019159659A (ja) * | 2018-03-12 | 2019-09-19 | パナソニックIpマネジメント株式会社 | 情報処理装置 |
JP2020027380A (ja) * | 2018-08-10 | 2020-02-20 | 株式会社Jvcケンウッド | 認識処理装置、認識処理方法及び認識処理プログラム |
-
2020
- 2020-02-27 JP JP2020032074A patent/JP2021135793A/ja active Pending
-
2021
- 2021-02-16 WO PCT/JP2021/005678 patent/WO2021172092A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013118218A1 (ja) * | 2012-02-09 | 2013-08-15 | パナソニック株式会社 | 画像認識装置、画像認識方法、プログラムおよび集積回路 |
JP2018136803A (ja) * | 2017-02-23 | 2018-08-30 | 株式会社日立製作所 | 画像認識システム |
JP2019159659A (ja) * | 2018-03-12 | 2019-09-19 | パナソニックIpマネジメント株式会社 | 情報処理装置 |
JP2020027380A (ja) * | 2018-08-10 | 2020-02-20 | 株式会社Jvcケンウッド | 認識処理装置、認識処理方法及び認識処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2021135793A (ja) | 2021-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220121344A1 (en) | Methods for interacting with virtual controls and/or an affordance for moving virtual objects in virtual environments | |
US11983326B2 (en) | Hand gesture input for wearable system | |
US10120454B2 (en) | Gesture recognition control device | |
WO2018113740A1 (en) | Combining virtual reality and augmented reality | |
TW202105133A (zh) | 在人工實境環境中使用周邊裝置的虛擬使用者介面 | |
KR101844390B1 (ko) | 사용자 인터페이스 제어를 위한 시스템 및 기법 | |
US11443453B2 (en) | Method and device for detecting planes and/or quadtrees for use as a virtual substrate | |
JP2022118183A (ja) | デジタルデバイスとの対話のための直接的なポインティング検出のためのシステムおよび方法 | |
US10930075B2 (en) | User interface discovery and interaction for three-dimensional virtual environments | |
US10521101B2 (en) | Scroll mode for touch/pointing control | |
US20200142495A1 (en) | Gesture recognition control device | |
KR20140100547A (ko) | 모바일 장치상의 풀 3d 상호작용 | |
Matulic et al. | Phonetroller: Visual representations of fingers for precise touch input with mobile phones in vr | |
US20230085330A1 (en) | Touchless image-based input interface | |
US11886643B2 (en) | Information processing apparatus and information processing method | |
US10073609B2 (en) | Information-processing device, storage medium, information-processing method and information-processing system for controlling movement of a display area | |
WO2017141540A1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
WO2021172092A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
Jo et al. | Enhancing virtual and augmented reality interactions with a mediapipe-based hand gesture recognition user interface | |
US11782548B1 (en) | Speed adapted touch detection | |
US20230042447A1 (en) | Method and Device for Managing Interactions Directed to a User Interface with a Physical Object | |
EP4321974A1 (en) | Gesture locomotion in an artifical reality environment | |
US20220415094A1 (en) | Method and system for estimating gesture of user from two-dimensional image, and non-transitory computer-readable recording medium | |
WO2023283145A1 (en) | Method and device for dynamically selecting an operation modality for an object |
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: 21759890 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21759890 Country of ref document: EP Kind code of ref document: A1 |