WO2021153577A1 - 視線検出装置のキャリブレーション - Google Patents

視線検出装置のキャリブレーション Download PDF

Info

Publication number
WO2021153577A1
WO2021153577A1 PCT/JP2021/002733 JP2021002733W WO2021153577A1 WO 2021153577 A1 WO2021153577 A1 WO 2021153577A1 JP 2021002733 W JP2021002733 W JP 2021002733W WO 2021153577 A1 WO2021153577 A1 WO 2021153577A1
Authority
WO
WIPO (PCT)
Prior art keywords
line
calibration
sight
user
correction
Prior art date
Application number
PCT/JP2021/002733
Other languages
English (en)
French (fr)
Inventor
野田 卓郎
安田 亮平
Original Assignee
ソニーグループ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Publication of WO2021153577A1 publication Critical patent/WO2021153577A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators

Definitions

  • the present technology relates to a line-of-sight detection device applicable to line-of-sight detection, an information processing method, and a computer-readable recording medium.
  • a technique for detecting a user's line of sight has been developed by using an image of the user's eye and a measurement result of eye movement. Further, in order to improve the accuracy of the line-of-sight detection, a line-of-sight calibration that corrects individual differences in the line-of-sight of the user has been proposed. For example, a method of displaying a dedicated marker and performing line-of-sight calibration is known. In this method, the user's line of sight is guided to a dedicated marker, and data for line-of-sight calibration is generated based on the user's line of sight when gazing at the marker. The user's line of sight is corrected using this data.
  • Patent Document 1 describes an information processing system that performs line-of-sight calibration in a normal user operation.
  • the position of the user's gaze target such as an icon or area to be operated by the user or a device used by the user is detected.
  • the line-of-sight calibration is performed based on the deviation between the position of the gaze target and the line-of-sight position, and the line-of-sight of the user is corrected.
  • This makes it possible to perform line-of-sight calibration while performing an operation for achieving the original purpose of the device (paragraphs [0017] [0045] [0066] [0078] of Patent Document 1 and the like).
  • an object of the present technology is to provide a line-of-sight detection device, an information processing method, and a computer-readable recording medium capable of preventing a decrease in line-of-sight detection accuracy.
  • the line-of-sight detection device includes a line-of-sight detection unit, a calibration unit, a determination unit, and a correction control unit.
  • the line-of-sight detection unit acquires the detection result of the user's line of sight with respect to the display area from the sensor.
  • the calibration unit corrects the detection result of the user's line of sight based on the user's line of sight with respect to at least one first object in which the display parameters in the display area are fixed in advance, and the display.
  • a second calibration is performed that corrects the result of the first calibration based on the user's line of sight with respect to at least one second object whose display parameters in the region dynamically change.
  • the determination unit determines the occurrence of a specific change with respect to the second calibration.
  • the correction control unit controls correction by at least one of the first calibration and the second calibration based on the occurrence of the specific change.
  • the first calibration and the second calibration are executed.
  • the detection result of the user's line of sight using the sensor is corrected based on the line of sight to the first object whose display parameters are fixed.
  • the result of the first calibration is corrected based on the line of sight to the second object whose display parameters fluctuate.
  • the occurrence of a specific change is determined, and according to the result, control regarding correction by at least one of the first calibration and the second calibration is performed.
  • the correction by each calibration can be controlled, and it is possible to prevent a decrease in the line-of-sight detection accuracy.
  • the first calibration is a process of generating first calibration data based on the user's line of sight with respect to the at least one first object, and corrects the detection result of the user's line of sight using the first calibration data. Processing may be included.
  • the second calibration is a process of generating the second calibration data based on the line of sight of the user with respect to the at least one second object, and the result of the first calibration using the second calibration data. It may include a process of correcting the above.
  • the correction control unit performs at least one of control related to re-execution of the first calibration data generation process or control related to the correction process using the second calibration data based on the occurrence of the specific change. You may.
  • the specific change may include a change in the user's gaze tendency with respect to the display object displayed in the display area.
  • the correction control unit may adjust the degree of correction when correcting the result of the first calibration using the second calibration data according to the content of the change in the gaze tendency.
  • the determination unit changes the type, shape, size, color, and operation of the display object with respect to the at least one second object used for correction by the second calibration. May be determined.
  • the determination unit determines the distance between the display object and the user's viewpoint with respect to the distance between the at least one second object used for correction by the second calibration and the user's viewpoint as a change in the gaze tendency.
  • the occurrence of the change in may be determined.
  • the determination unit may determine the occurrence of a change in the operation input method for the display object as the change in the gaze tendency.
  • the second calibration data may be data recorded in association with a vector that is the result of the first calibration for each of the at least one second object and a correction amount for the vector.
  • the correction control unit may set a weighting coefficient for adjusting the correction amount of the second calibration data as the correction degree.
  • the correction control unit sets the weighting coefficient so that when the occurrence of the change in the gaze tendency is determined, the degree of correction is lower than in the case where the occurrence of the change in the gaze tendency is not determined. good.
  • the calibration unit may record the second calibration data in association with information regarding the gaze tendency of the user when generating the second calibration data.
  • the determination unit may determine the occurrence of the change in the gaze tendency based on the information regarding the gaze tendency of the user.
  • the correction control unit may delete the second calibration data according to the content of the change in the gaze tendency.
  • the second calibration data may be data recorded in association with a vector that is the result of the first calibration for each of the at least one second object and a correction amount for the vector.
  • the specific change may include a change in the correction amount of the second calibration data.
  • the correction control unit may generate a flag requesting re-execution of the first calibration data generation process based on the change in the correction amount of the second calibration data.
  • the correction control unit may perform a notification process for notifying that the process for generating the first calibration data needs to be re-executed based on the flag.
  • correction control unit performs the notification process at at least one timing of the timing when the task performed by the user is completed, the timing when the task is executed, or the timing before the execution of the application using the line of sight is performed. good.
  • the calibration unit may execute a process of generating the first calibration data in response to a response input of the user to the notification process.
  • the change of the correction amount occurs. May be determined.
  • the calibration unit may be able to perform the first calibration and the second calibration for each of the user's right and left eyes.
  • the determination unit may determine the change in the correction amount of the second calibration data for each of the right eye and the left eye of the user.
  • the correction control unit may generate the flag when a change in the correction amount of the second calibration data is determined for at least one of the user's right eye and left eye.
  • the correction control unit may discard the flag when it is determined that the change in the correction amount of the second calibration data has not occurred after the flag is generated.
  • the information processing method is an information processing method executed by a computer system, and includes acquiring a detection result of a user's line of sight with respect to a display area from a sensor.
  • the first calibration that corrects the detection result of the user's line of sight based on the user's line of sight with respect to at least one first object in which the display parameters in the display area are fixed in advance, and the display parameters in the display area move.
  • a second calibration is performed that corrects the result of the first calibration based on the user's line of sight with respect to at least one second object that changes.
  • the occurrence of a particular change with respect to the second calibration is determined. Based on the occurrence of the specific change, control regarding correction by at least one of the first calibration and the second calibration is performed.
  • a computer-readable recording medium records a program that causes a computer system to perform the following steps.
  • the first calibration that corrects the detection result of the user's line of sight based on the user's line of sight with respect to at least one first object in which the display parameters in the display area are fixed in advance, and the display parameters in the display area move.
  • a step of performing a second calibration that corrects the result of the first calibration based on the line of sight of the user with respect to at least one second object that changes substantially.
  • FIG. 1 is a perspective view showing the appearance of a head-mounted display (HMD) according to the first embodiment of the present technology.
  • FIG. 2 is a block diagram showing a configuration example of the HMD 100 shown in FIG.
  • the HMD 100 is used by being worn on the user's head, and functions as a display device that displays an image in the user's field of view.
  • a user wearing the HMD 100 can experience, for example, virtual reality (VR) or augmented reality (Augmented Reality).
  • the HMD 100 is configured to detect the line of sight of the user. Specifically, a line-of-sight vector representing the line-of-sight direction of the user is detected. By using this line-of-sight vector, it is possible to input operations using the user's line of sight.
  • the HMD 100 corresponds to the line-of-sight detection device according to the present embodiment.
  • the HMD 100 has a base portion 10 and a mounting band 11.
  • the base portion 10 is a member arranged in front of the left and right eyes of the user.
  • the base portion 10 is configured to cover the user's field of view, and functions as a housing for accommodating a display 16 or the like for displaying an image.
  • the wearing band 11 is worn on the user's head.
  • the wearing band 11 has a temporal band 11a and a parietal band 11b.
  • the temporal band 11a is connected to the base portion 10 and is worn so as to surround the user's head from the temporal region to the occipital region.
  • the parietal band 11b is connected to the temporal band 11a and is worn so as to surround the user's head from the temporal region to the parietal region. This makes it possible to hold the substrate portion 10 in front of the user's eyes.
  • the HMD 100 further includes an inward camera 12, an operation sensor 13, a communication unit 14, an operation input unit 15, a display 16, a storage unit 17, and a controller 18.
  • the inward camera 12 captures the user's eyeball.
  • the eyeball image obtained by capturing the user's eyeball is used for the line-of-sight detection described later.
  • the inward camera 12 is configured by using, for example, left-eye and right-eye cameras arranged inside the substrate portion 10 so that the user's left eye and right eye can be photographed.
  • a digital camera including an image sensor such as a CMOS (Complementary Metal-Oxide Semiconductor) sensor or a CCD (Charge Coupled Device) sensor is used.
  • an infrared camera equipped with an infrared light source such as an infrared LED may be used.
  • the specific configuration of the inward camera 12 is not limited.
  • the inward-facing camera 12 functions as a sensor used to detect the line of sight of the user.
  • the motion sensor 13 is a sensor that detects information regarding the motion of the HMD 100.
  • the motion sensor 13 is fixedly arranged at a predetermined position of the substrate portion 10, for example, and detects the inclination, rotation, or the like of the HMD 100. Therefore, it can be said that the motion sensor 13 is a sensor that detects information regarding the movement of the head of the user wearing the HMD 100.
  • an inertial measurement unit (IMU) or the like is used as the motion sensor 13, for example.
  • the inertial measurement unit is a sensor that detects three-dimensional angular velocity and acceleration with, for example, a three-axis gyro and an accelerometer.
  • a 9-axis sensor or the like equipped with a 3-axis gyro or an acceleration as well as a 3-axis speedometer may be used as the motion sensor 13.
  • the type of the motion sensor 13 is not limited, and any sensor capable of detecting the motion of the HMD 100 may be used.
  • the sensors mounted on the HMD100 are not limited.
  • an external sensor or the like that detects information outside the HMD 100 may be provided.
  • a digital camera (outward facing camera) or the like that captures the front of the HMD 100 (the front of the user) is used.
  • a stereo camera capable of detecting depth information in real space a camera equipped with a TOF (Time of Flight) sensor, or the like may be used as an external sensor.
  • TOF Time of Flight
  • a radar sensor, a LiDAR sensor, or the like may be mounted as an external sensor.
  • the communication unit 14 is a module for executing network communication, short-range wireless communication, etc. with other devices.
  • a wireless LAN module such as WiFi
  • a communication module such as Bluetooth (registered trademark) are provided.
  • a communication module or the like capable of communicating by a wired connection may be provided.
  • the operation input unit 15 is an input device (not shown) for performing operation input performed by the user by hand or the like.
  • the input device for example, a device (game controller or the like) provided with a selection button, an analog stick, a switch, or the like is used.
  • the type of input device is not limited, and for example, a mouse, a keyboard, or the like may be used.
  • a signal or the like representing a user's operation input performed by using the operation input unit 15 may be read via the communication unit 14.
  • the display 16 is provided on the substrate portion 10 so as to cover at least a part of the user's field of view.
  • the user will visually recognize the image displayed in the display area of the display 16.
  • two displays 16 are arranged in the user's field of view to display images for the left eye and for the right eye.
  • a configuration may be adopted in which images for the left eye and for the right eye are displayed using a single display 16.
  • a lens for adjusting the focus may be provided between the display 16 and the left eye and the right eye of the user.
  • the display 16 for example, an organic EL display, an LCD (Liquid Crystal Display, liquid crystal display element) display, or the like is used.
  • the specific configuration of the display 16 is not limited.
  • the storage unit 17 is a non-volatile storage device.
  • a recording medium using a solid-state element such as an SSD (Solid State Drive) or a magnetic recording medium such as an HDD (Hard Disk Drive) is used.
  • the type of recording medium used as the storage unit 17 is not limited, and for example, any recording medium for recording data non-temporarily may be used.
  • the control program 20, the first calibration data 21, and the second calibration data 22 are stored in the storage unit 17.
  • the storage unit 17 corresponds to a computer-readable recording medium on which the program is recorded.
  • the control program 20 is a program for controlling the overall operation of the HMD 100.
  • the control program 20 corresponds to a program recorded on a recording medium.
  • the first calibration data 21 and the second calibration data 22 are data used for line-of-sight calibration for calibrating the user's line-of-sight vector.
  • a database of the first calibration data 21 including the plurality of first calibration data 21 and a database of the second calibration data 22 including the plurality of second calibration data 22 are constructed.
  • the information stored in the storage unit 17 is not limited.
  • the line-of-sight calibration is a process of correcting the target line-of-sight vector by using the difference between the line-of-sight vector detected by the HMD 100 and the direction of the gaze object estimated to be actually gaze by the user as a correction amount (calibration data). Is. This makes it possible to reduce the line-of-sight error detected by the HMD 100.
  • the line-of-sight calibration includes both a process of generating calibration data and a process of correcting a line-of-sight vector using the calibration data.
  • the first calibration data 21 described above is data used for correction in the first calibration
  • the second calibration data 22 is data used for correction in the second calibration.
  • the first calibration and the second calibration will be specifically described.
  • the first calibration is a process of correcting the line-of-sight vector detected from the sensor (inward camera 12) based on the calibration data (first calibration data 21) generated with reference to the dedicated marker.
  • the line-of-sight vector detected from the inward camera 12 will be referred to as a detected line-of-sight vector
  • the detected line-of-sight vector corrected using the first calibration data 21 will be referred to as a first line-of-sight vector.
  • the detection line-of-sight vector is calculated by the line-of-sight detection unit 23, which will be described later, based on the output of the inward camera 12.
  • the detected line-of-sight vector corresponds to the detection result of the user's line-of-sight.
  • the first line-of-sight vector corresponds to the result of the first calibration.
  • the marker used for the first calibration is a virtual object displayed in the display area of the display 16.
  • the first calibration data 21 is generated based on the line of sight of the user who gazes at these markers.
  • the first calibration is a process of correcting the detected line-of-sight vector based on the line-of-sight of the user with respect to at least one marker whose display parameters in the display area are fixed in advance.
  • the detection line-of-sight vector is calculated by the line-of-sight detection unit 23, which will be described later.
  • the marker corresponds to the first object
  • the detected line-of-sight vector corresponds to the detection result of the user's line-of-sight.
  • FIG. 3 is a schematic diagram for explaining the first calibration.
  • FIG. 3A is a schematic diagram showing an example of the generation process of the first calibration data 21 in the first calibration.
  • FIG. 3B is a schematic view showing an example of the first calibration data 21.
  • FIG. 3A schematically illustrates an example of a UI screen displayed in the display area 19 of the display 16 when the first calibration data 21 is generated. On this UI screen, a circular virtual object 30 (marker 31) is displayed at a predetermined display position in the display area 19. In the example shown in FIG. 3A, nine display positions are set, and markers 31 are displayed in order at each display position.
  • the user is instructed to gaze at the displayed marker 31, and each time the marker 31 is displayed at each display position, the user's line-of-sight vector (detection line-of-sight vector 40) is detected.
  • the gazing point P representing the detection line-of-sight vector 40 is schematically illustrated by using the mark of X.
  • the position vector 41 of the marker 31 that connects the user's viewpoint (origin of the detected line-of-sight vector 40) and the display position of the marker 31 (for example, the center point Q) is calculated.
  • the correction rotation amount (correction amount) of the detection line-of-sight vector 40 with respect to the position vector 41 is calculated.
  • the corrected rotation amount is, for example, the rotation amount of the three-dimensional vector required to match the position vector 41 and the detection line-of-sight vector 40, such as the oiler angle represented by low, pitch, and yaw, and the rotation amount. Is calculated as a quaternion that expresses.
  • a data set of the detected line-of-sight vector 40 and the correction amount for the detected line-of-sight vector 40 is generated as the first calibration data 21 and recorded in the storage unit 17.
  • the first calibration for generating the first calibration data 21 using the marker 31 having the fixed display parameters can be said to be a static calibration.
  • the method of displaying the marker 31 is not limited.
  • the marker 31 may be displayed so as to move within the display area 19.
  • display parameters such as the movement path (trajectory of the marker 31) and the movement speed of the marker 31 in the display area 19 are fixed in advance.
  • the user is instructed to gaze at the moving marker 31, and a plurality of first calibration data 21 are generated for each position where the marker 31 is moved. In this way, it is also possible to generate the first calibration data 21 with reference to a single marker 31 moving in the display area 19.
  • FIG. 3B a plurality of first calibration data 21 in the user's field of view 5 (region surrounded by a rectangular outer frame) are schematically plotted using arrows.
  • the origin of each arrow corresponds to the detection line-of-sight vector 40 (or the gazing point P of the detection line-of-sight vector 40).
  • the length of the arrow indicates the magnitude of the corrected rotation amount.
  • the direction of the arrow indicates the direction of the corrected rotation amount (rotation direction).
  • a database containing nine first calibration data 21 generated for each of the nine markers 31 shown in FIG. 3A is configured.
  • the circular area in the figure shows a range when the line of sight is tilted by 10, 20 °, and 30 °, with the center of the circle (0 °) when the user is looking at the front.
  • the first calibration data 21 is typically generated before executing an application or the like that utilizes the user's line of sight. For example, at the timing when the user attaches the HMD 100 and starts the application, the first calibration data 21 is generated using the UI screen as shown in FIG. 3A and recorded in the storage unit 17.
  • the timing of performing the process of generating the first calibration data 21 is not limited. For example, it is possible to interrupt the application and generate the first calibration data 21 during the operation of the application that uses the line of sight. .. Further, the recorded first calibration data 21 is appropriately referred to during the operation of the application using the line of sight, and is used for the correction process of the detected line-of-sight vector 40.
  • the process of generating the first calibration data 21 will be referred to as the first data generation process
  • the process of correcting the detected line-of-sight vector 40 using the first calibration data 21 will be referred to as the first line-of-sight correction process.
  • the second calibration is the result of the first calibration based on the calibration data (second calibration data 22) generated based on the gaze object estimated to be gaze by the user during the operation of the application. This is a process for correcting the first line-of-sight vector.
  • the first line-of-sight vector corrected by using the second calibration data 22 will be referred to as a second line-of-sight vector.
  • the second line-of-sight vector is, for example, a line-of-sight vector that is finally output in the HMD 100, and is used for operations such as line-of-sight input by the user.
  • the gaze object used for the second calibration is, for example, a virtual object 30 that is determined to be gaze by the user among the virtual objects 30 displayed in the display area 19 during the operation of an application that uses the line of sight. ..
  • a plurality of virtual objects 30 such as game characters and icons are displayed on the screen displayed during the operation of the application.
  • the display parameters of these virtual objects 30 are controlled to change dynamically according to, for example, changes in the posture and movement of the user, progress of the application, and the like.
  • the virtual object 30 (gaze object) that the user is gazing at is estimated, and the second calibration data 22 is generated based on the line of sight of the user who is gazing at the gaze object.
  • This process is typically performed continuously during the operation of the application. Therefore, it can be said that the second calibration data 22 is the calibration data accumulated during the operation of the application.
  • the second calibration is a process of correcting the first line-of-sight vector based on the line-of-sight of the user with respect to at least one gaze object whose display parameter in the display area 19 changes dynamically.
  • the gaze object corresponds to the second object.
  • FIG. 4 is a schematic diagram for explaining the second calibration.
  • FIG. 4A is a schematic diagram showing an example of the generation process of the second calibration data 22 in the second calibration.
  • FIG. 4B is a schematic view showing an example of the second calibration data 22.
  • FIG. 4A schematically illustrates an example of an application screen displayed in the display area 19 of the display 16 when the second calibration data 22 is generated.
  • the case where only one star-shaped virtual object 30 is displayed will be described, but the following description can be applied even when a plurality of virtual objects 30 are displayed.
  • the gazing point P of the first line-of-sight vector 42 which is the result of the first calibration, is detected in the vicinity of the virtual object 30.
  • the virtual object 30 is determined as the gazing object 32.
  • the star-shaped virtual object 30 is displayed and there is an operation input (button operation by the user, etc.) to select the virtual object 30, the target virtual object 30 is determined as the gaze object 32. Will be done.
  • the method of determining the gaze object 32 is not limited.
  • the correction amount is calculated with reference to the gaze object 32. Specifically, the correction amount (correction rotation amount) of the first line-of-sight vector 42 with respect to the position vector 41 of the gaze object 32 (center point Q) is calculated. Then, the data set of the first line-of-sight vector 42 and the correction amount is recorded in the storage unit 17 as the second calibration data 22. Therefore, the second calibration data 22 is recorded in association with the first line-of-sight vector 42, which is the result of the first calibration for each of at least one gaze object 32, and the correction amount for the first line-of-sight vector 42. It can be said that it is data.
  • the second calibration for generating the second calibration data using the gaze object 32 whose display parameters change dynamically can be said to be the dynamic calibration performed during the execution of the application or the like. Further, since the position where the gaze object 32 (virtual object 30) is displayed is not determined, a plurality of data sets including the correction amount and the estimation vector are formed in a plurality of directions.
  • a plurality of second calibration data 22 in the user's field of view 5 are schematically plotted using arrows.
  • the storage unit 17 is configured with a database including a plurality of second calibration data 22 corresponding to various directions in the field of view.
  • the recorded second calibration data 22 is appropriately referred to during the operation of the application that utilizes the line of sight, and is used for the correction process of the first line of sight vector 42.
  • the process of generating the second calibration data 22 based on the user's line of sight to at least one gaze object and the first line-of-sight vector 42 being corrected by using the second calibration data 22. Processing and is included.
  • the process of generating the second calibration data 22 will be referred to as a second data generation process
  • the process of correcting the first line-of-sight vector 42 using the second calibration data 22 will be referred to as a second line-of-sight correction process. ..
  • the controller 18 controls the operation of each block of the HMD 100.
  • the controller 18 has a hardware configuration necessary for a computer such as a CPU and a memory (RAM, ROM). When the CPU loads the control program 20 stored in the storage unit 17 into the RAM and executes it, various processes are executed.
  • the controller 18 corresponds to an information processing device.
  • controller 18 for example, a PLD (Programmable Logic Device) such as an FPGA (Field Programmable Gate Array) or another device such as an ASIC (Application Specific Integrated Circuit) may be used. Further, for example, a processor such as a GPU (Graphics Processing Unit) may be used as the controller 18.
  • the controller 18 and the storage unit 17 may be provided separately from the HMD100 main body.
  • the control of the HMD 100 may be realized by the communication between the HMD 100 main body and the controller 18 or the like via the communication unit 14 or the like. As a result, the power consumption of the HMD 100 main body is suppressed, and the operating time of the HMD 100 can be improved.
  • the line-of-sight detection unit 23, the first line-of-sight correction processing unit 24, the second line-of-sight correction processing unit 25, and the application control unit are functional blocks. 26 is realized. Further, as the application control unit 26, a calibration data generation unit 27 and an application screen generation unit 28 are realized. Then, the information processing method according to the present embodiment is executed by these functional blocks. In addition, in order to realize each functional block, dedicated hardware such as an IC (integrated circuit) may be appropriately used.
  • the line-of-sight detection unit 23 acquires the detection result (detection line-of-sight vector 40) of the user's line of sight with respect to the display area 19 from the inward camera 12. More specifically, the detection line-of-sight vector 40 is calculated based on the output of the inward camera 12.
  • the line-of-sight detection unit 23 calculates the detection line-of-sight vector 40 by, for example, a line-of-sight detection method using a three-dimensional model (eyeball model) of a human eyeball. In the line-of-sight detection method using an eyeball model, the optical axis of the eyeball (the axis connecting the center of the pupil and the center of the eyeball) is typically estimated.
  • the method for estimating the optical axis vector is not limited, and for example, a pupillary corneal reflex method or a pupillary method using an eyeball image taken by an inward camera 12 can be used.
  • the line of sight of the user (the axis of view of the eyeball) does not always coincide with the optical axis of the eyeball.
  • There are individual differences in the deviation between the optical axis and the visual axis and they are generally tilted by about 4 ° to 8 °.
  • the first line-of-sight correction processing unit 24 executes a first line-of-sight correction process for correcting the detected line-of-sight vector 40 calculated by the line-of-sight detection unit 23 using the first calibration data 21.
  • the first line-of-sight correction process is appropriately executed in accordance with the calculation process of the detected line-of-sight vector 40, for example, during the operation of the application.
  • the first line-of-sight vector 42 calculated by the first line-of-sight correction process is the correction result by static calibration (first calibration).
  • the second line-of-sight correction processing unit 25 executes a second line-of-sight correction process for correcting the first line-of-sight vector 42 calculated by the first line-of-sight correction processing unit 24 using the second calibration data 22.
  • the second line-of-sight correction process is appropriately executed in accordance with the calculation process of the first line-of-sight vector 42, for example, during the operation of the application.
  • the second line-of-sight vector calculated by the second line-of-sight correction process becomes the correction result by dynamic calibration (second calibration) and is used for operation input using the line-of-sight.
  • the second line-of-sight correction processing unit 25 determines the occurrence of a specific change related to the second calibration. Further, the second line-of-sight correction processing unit 25 controls the correction by the second calibration based on the occurrence of a specific change. In the present embodiment, the second line-of-sight correction processing unit 25 controls the correction process (second line-of-sight correction process) using the second calibration data 22 based on the occurrence of a specific change. Specifically, the correction amount when correcting the first line-of-sight vector 42 using the second calibration data 22 is adjusted according to the content of the change. As a result, it is possible to prevent a decrease in the line-of-sight detection accuracy and to realize an appropriate line-of-sight detection even when the scene of the application or the like changes.
  • the specific change regarding the second calibration is a change in the user's gaze tendency with respect to the display object displayed in the display area 19 when the first line-of-sight vector 42 is corrected.
  • the display object is, for example, a virtual object 30 that the user visually recognizes at the timing of performing the second line-of-sight correction process for correcting the first line-of-sight vector 42.
  • the type and display position of the display object, the operation input method by the user, or the like changes during the operation of the application, it is conceivable that the gaze position or the like when the user gazes at the display object changes. Therefore, when the correction process is performed using the second calibration data 22 generated before the correction, the accuracy of the correction may decrease.
  • the second line-of-sight correction processing unit 25 determines the first line-of-sight in the second line-of-sight correction process so that the accuracy of the final line-of-sight detection result (second line-of-sight vector) does not decrease.
  • the amount of correction for the vector 42 and the like are adjusted. Changes in gaze tendency, adjustment of the correction amount, etc. will be described in detail later.
  • the second line-of-sight correction processing unit 25 functions as a determination unit and a correction control unit.
  • the application control unit 26 controls the application executed by the HMD 100. For example, when an application using the line of sight is executed, display control or the like according to the output (second line of sight vector) of the second line of sight correction processing unit 25 is executed. As shown in FIG. 2, the application control unit 26 includes a calibration data generation unit 27 and an application screen generation unit 28.
  • the calibration data generation unit 27 generates the first calibration data 21 and the second calibration data 22. That is, the calibration data generation unit 27 executes the first data generation process and the second data generation process. In the first data generation process, as described with reference to FIG. 3A, a dedicated UI screen including the marker 31 is displayed. In this case, the calibration data generation unit 27 generates the first calibration data 21 (data set of the detection line-of-sight vector 40 and its correction amount) for each marker 31 displayed at each display position, and records it in the storage unit 17.
  • the calibration data generation unit 27 determines, for example, the virtual object 30 existing in the vicinity of the first line-of-sight vector 42 as the gaze object 32.
  • the gaze object 32 may be determined based on the selection operation performed by the user via the operation input unit 15.
  • the calibration data generation unit 27 sequentially generates second calibration data 22 (first line-of-sight vector 42 and its correction amount) for the gaze object 32 determined to be gaze by the user during the operation of the application, and stores the storage unit 27. Record at 17.
  • the calibration data generation unit 27 generates determination information for determining a change in the gaze tendency of the user.
  • the determination information for example, information representing the situation when the second calibration data 22 generation process (second data generation process) is performed is used.
  • information such as the type of the gaze object 32 as the reference of the second calibration data 22, the size in the display area, and the distance from the user's viewpoint is generated as the determination information.
  • the operation input method used by the user operation input using a game controller or the like, operation input by the line of sight, etc. may be generated as determination information.
  • the determination information is recorded in the storage unit 17 together with each of the second calibration data 22 each time the second calibration data 22 is generated.
  • the calibration data generation unit 27 records the second calibration data 22 and the information (determination information) regarding the user's gaze tendency when generating the second calibration data 22 in association with each other. Therefore, in the present embodiment, every time the second data processing is executed, the data set including the first line-of-sight vector 42, the correction amount of the first line-of-sight vector 42, and the determination information is recorded in the storage unit 17. become. Based on this determination information, the occurrence of a change in the user's gaze tendency is determined.
  • the first line-of-sight correction processing unit 24, the second line-of-sight correction processing unit 25, and the calibration data generation unit 27 constitute a calibration unit that performs the first calibration and the second calibration.
  • the first line-of-sight correction process and the second line-of-sight correction process may be configured as one processing block. In this case, the correction control for the second calibration (dynamic calibration) is selectively performed.
  • the application screen generation unit 28 generates an application screen to be displayed on the display 16.
  • the application screen generation unit 28 acquires, for example, information on an application executed by the HMD 100, and generates an image of a virtual object 30 or the like according to the progress of the content, the position / posture of the user's head (HMD100), or the like. do. Further, for example, when the operation input by the line of sight is performed, a cursor or the like representing the gazing point is displayed based on the second line of sight vector calculated by the second line of sight correction processing unit 25. Alternatively, if there is a virtual object 30 (display object) or the like selected by the second line-of-sight vector, highlighting or the like indicating that the object is selected is performed.
  • the application screen generation unit 28 can execute arbitrary display processing required for the operation of the application.
  • FIG. 5 is a schematic diagram for explaining changes in the scene.
  • 5A and 5B are schematic views showing an example of application screens in different scenes, and the types of displayed objects are different.
  • the relative gazing point from the center position Q (display position) of the object changes depending on the expression of the object to be selected will be described.
  • the center of the pointer 33 on each application screen represents the point that the user is actually gazing at (hereinafter, referred to as the actual gazing point R).
  • FIG. 5A three button objects 34 are displayed.
  • the actual gazing point R actually seen by the user is close to the center position Q of the button object 34.
  • FIG. 5B three bird objects 35 are displayed. It is assumed that the center position Q of each bird object 35 coincides with the center position Q of the button object 34 shown in FIG. 5A.
  • the object size (display size) of the bird object 35 is larger than that of the button object 34, and the actual gazing point R may be a point away from the center position Q of the bird object 35.
  • the actual gazing point R is directed toward the head of the bird object 35 and is deviated from the center position Q.
  • the correction by the second calibration data 22 recorded in each scene may not be appropriate except in the scene in which it was recorded.
  • the second calibration data 22 is appropriate. Correction becomes difficult, which may lead to a decrease in line-of-sight detection accuracy.
  • the second calibration data 22 is generated with the button object 34 to which the actual gazing point R is directed as the gazing object 32. It is assumed that the second calibration data 22 is used to correct the line of sight of the user with respect to the bird object 35 (display object 36) displayed on the application screen shown in FIG. 5B.
  • the correction result (second line-of-sight vector) using the second calibration data 22 indicates the vicinity of the center position Q of the bird object 35 away from the actual gazing point R actually seen by the user. Further, even when the user's line of sight to the button object 34 is corrected by using the second calibration data 22 generated with reference to the bird object 35, the correction result indicates a position deviating from the actual injection viewpoint.
  • the gaze tendency may change.
  • the shape of the display object 36 changes without changing the type of the display object 36 (for example, the character is deformed)
  • the gaze tendency may change with the change in the shape.
  • the user's actual gazing point R may change due to a change in the size of the display object 36 (display size in the display area 19, actual size in the virtual space, etc.).
  • the user's actual gazing point of view R may change due to a change in the color (actual color, transparency, brightness, etc.) of the display object 36.
  • the actual gazing point R may change due to a change in the movement of the display object 36 (movement of the character, etc.).
  • the change in the gaze tendency accompanying such a change in the object is determined in advance.
  • the second line-of-sight correction processing unit 25 changes the gaze tendency by at least the type, shape, size, color, and operation of the display object 36 with respect to at least one gaze object 32 used for the second calibration. The occurrence of a change with respect to one is determined. This makes it possible to easily detect the change in the gaze tendency caused by the change in the display object 36.
  • the effect of the user when visually recognizing the display object 36 may change.
  • the actual gazing viewpoint R actually viewed by the user may change as the effect changes.
  • the change in the gaze tendency accompanying such a change in the effect is determined in advance.
  • the second line-of-sight correction processing unit 25 changes the gaze tendency by the display object 36 and the user's viewpoint with respect to the distance between at least one gaze object 32 used for the second calibration and the user's viewpoint.
  • the occurrence of a change in the distance of is determined. That is, the distance in the depth direction of the display object with respect to the distance in the depth direction of each gaze object 32 is determined. This makes it possible to easily detect a change in gaze tendency accompanying a change in efficacy.
  • FIG. 6 is a schematic diagram for explaining a change in the operation input method.
  • 6A and 6B are schematic views showing an example of an application screen of a shooting game, and the operation input method is different from each other.
  • the gaze tendency changes as the user's operation input changes will be described.
  • On each application screen a character object 37 to be shot and a gun object 38 pointed at the character object 37 are displayed.
  • an aiming operation (pointing operation) is performed by the line of sight
  • a shooting operation selection operation
  • a button of a game controller operation input unit 15
  • the line of sight is used as the aiming means of the shooting game
  • the target can be pointed only by looking at the character object 37 that the user wants to aim at. For this reason, the user tends to naturally see a place that is immediately visible by moving the line of sight, for example, a highly attractive place such as the face of the character object 37.
  • an aiming operation (pointing operation) is performed by the line of sight, and an aiming operation using a game controller (operation input unit 15) or the like (not shown) is performed, and the same game controller is performed.
  • the shooting operation is performed using.
  • the game controller for example, a controller equipped with a joystick, a gun-type gun controller, or the like is used.
  • a pointer 33 (aiming) representing a position indicated by the operation of the game controller is displayed. In this case, the user's attention is directed to firmly overlapping the character object 37 and the pointer 33.
  • the user Since it is necessary to operate the position of the pointer 33 in this way, the user consciously looks at the character object 37 so that the pointer 33 and the target overlap. As a result, the user is expected to see a location near the center position Q of the character object 37. In addition, there is a high possibility that the gaze tendency will change when the type of controller held by the user or the type of weapon selected in the game changes.
  • the second line-of-sight correction processing unit 25 determines that a change in the operation input method for the display object 36 has occurred as a change in the gaze tendency. For example, the operation input method when the second calibration data 22 is generated and the operation input method at the timing of performing the correction process are compared. This makes it possible to easily detect a change in the gaze tendency due to a change in the operation input method.
  • the second line-of-sight correction process is controlled when the user's gaze tendency changes.
  • the second line-of-sight correction processing unit 25 adjusts the degree of correction when correcting the first line-of-sight vector 42 using the second calibration data 22 according to the content of the change in the gaze tendency of the user. ..
  • the degree of correction is the degree of correction by the second calibration.
  • the correction degree is the ratio of applying the correction amount recorded as the second calibration data 22 to the correction of the first line-of-sight vector 42. For example, when the degree of correction is high, the ratio of using the correction amount recorded as the second calibration data 22 becomes high. When the degree of correction is low, the ratio of using the correction amount recorded as the second calibration data 22 becomes low, and a line-of-sight vector close to the result of the correction by the first calibration is calculated.
  • a weighting coefficient for adjusting the correction amount of the second calibration data 22 is set as the correction degree.
  • the correction amount (vector rotation amount) recorded as the second calibration data 22 is Euler angles E (yaw, pitch, low).
  • the second line-of-sight correction process is performed using the adjusted correction amount E'adjusted by the weighting coefficient C.
  • the above adjustment can be performed by converting to Euler angles.
  • the weighting coefficient C is set to 0.5. Further, for example, when the degree of correction is desired to be 0%, that is, when the correction by the second calibration is not used, the weighting coefficient C is set to 0. This makes it possible to easily adjust the degree of correction by the second calibration according to the change in the gaze tendency of the user.
  • FIG. 7 is a flowchart showing an example of the basic operation of the HMD 100.
  • FIG. 8 is a flowchart showing an example of the first line-of-sight correction process.
  • FIG. 9 is a flowchart showing an example of the second line-of-sight correction process.
  • the process shown in FIG. 7 is a basic process for correcting the line of sight of the user, for example, a loop process that is continuously executed during the operation of the application.
  • the line-of-sight detection unit 23 shown in FIG. 2 appropriately executes the calculation process of the detected line-of-sight vector 40 using the output of the inward camera 12.
  • the storage unit 17 is configured with a database of the first calibration data 21 and the second calibration data 22 generated in advance.
  • the basic operation of the HMD 100 will be described with reference to FIGS. 7 to 9.
  • the first line-of-sight correction processing unit 24 executes the first line-of-sight correction process (correction process by static calibration) (step 101). That is, the detected line-of-sight vector 40 calculated by the line-of-sight detection unit 23 is corrected using the first calibration data 21.
  • FIG. 8 shows an example of the internal processing of step 101.
  • the first calibration data 21 to be applied to the detected line-of-sight vector 40 to be corrected is selected (step 201). For example, the angular interval between the vector recorded as the first calibration data 21 and the detection line-of-sight vector 40 to be corrected is calculated, and the first calibration data 21 having the smallest angular interval is selected. Alternatively, the first calibration data 21 whose angular interval is equal to or less than a predetermined threshold value is selected. As a result, at least one first calibration data 21 including a vector close to the detection line-of-sight vector 40 is selected.
  • the detection line-of-sight vector 40 is corrected by the first line-of-sight correction processing unit 24 (step 202).
  • the correction amount (correction rotation amount) included in the selected first calibration data 21 is weighted and averaged according to the proximity to the detection line-of-sight vector 40 to calculate the correction rotation amount with respect to the detection line-of-sight vector 40.
  • the detection line-of-sight vector 40 is corrected (deflected) in the direction and magnitude of the corrected rotation amount.
  • the line-of-sight vector along the line-of-sight axis (first line-of-sight vector 42) is calculated.
  • the reciprocal of the angle between the vector included in the first calibration data 21 and the detection line-of-sight vector 40 to be corrected is used as a coefficient, and the sum of them is set to 1.
  • a method of normalizing and using it can be mentioned.
  • the specific content of the first line-of-sight correction process is not limited, and for example, any method capable of appropriately correcting the detected line-of-sight vector 40 may be used.
  • the second line-of-sight correction processing unit 25 executes the second line-of-sight correction process (correction process by dynamic calibration) (step 102). That is, the first line-of-sight vector 42 calculated by the first line-of-sight correction processing unit 24 is corrected using the second calibration data 22.
  • FIG. 9 shows an example of the internal processing of step 102.
  • the second calibration data 22 to be applied to the first line-of-sight vector 42 to be corrected is selected (step 301).
  • the method of selecting the second calibration data 22 is the same as the method of selecting the first calibration data 21 described in step 201, for example.
  • at least one second calibration data 22 including a vector close to the first line-of-sight vector 42 is selected.
  • the second line-of-sight correction processing unit 25 causes a change in the gaze tendency to occur based on the determination information (information about the user's gaze tendency) of the selected second calibration data 22. It is determined (step 302). For example, the information of the gaze object 32 recorded as the determination information is compared with the information of the current display object 36. Specifically, the type, size, distance from the viewpoint, etc. of each object are comparison items. If there is a difference between these comparison items, it is determined that the gaze tendency has changed. Further, for example, the operation input method recorded as the determination information is compared. For example, it is assumed that the user is using the operation by the line of sight at the timing when the second calibration data 22 is generated. In this case, when the current operation input method is changed to the method using a game controller or the like, it is determined that the gaze tendency is changed.
  • the determination regarding the difference in the characteristics (attractiveness and operation system) related to the gaze of the object between the timing when the second calibration data 22 is saved and the timing when the second calibration data 22 is used for correction is determined.
  • Information is compared in real time. If the determination information is different, it is determined that the gaze tendency has changed.
  • the weight coefficient C of the second calibration data 22 is set by the second line-of-sight correction processing unit 25 (step 303).
  • setting the weighting coefficient C is an example of control related to correction by the second calibration.
  • the second line-of-sight correction processing unit 25 sets the weighting coefficient C according to, for example, the content of the difference in the determination information. For example, the value set in the weighting coefficient C is associated and saved for each item used as the determination information or for each degree of difference.
  • the second line-of-sight correction processing unit 25 selects a value that matches the content of the difference and sets it as the weighting coefficient C.
  • the weighting coefficient C is set for each of all the second calibration data 22 selected in step 201, for example.
  • the second line-of-sight correction processing unit 25 has a weighting coefficient C so that when the occurrence of a change in the gaze tendency is determined, the degree of correction is lower than when the occurrence of a change in the gaze tendency is not determined.
  • the weighting factor C is set to a value smaller than 1.
  • the degree of correction is uniformly set to 50%, and the weighting coefficient C is set to 0.5.
  • the degree of correction is uniformly set to 90%, and the weighting coefficient is set to 0.9.
  • the degree of correction is uniformly set to 0%, the weighting coefficient is set to 0, and the second calibration data 22 is not used.
  • the processing of the second calibration data 22 associated with the difference is performed.
  • the strictest of the linked processing methods is adopted. For example, when there is a difference between the above-mentioned shape information and the distance information from the viewpoint, the process associated with the shape information is adopted, and the degree of correction is set to 50%. Further, when there is a difference in the operation input information, the second calibration data 22 is not used regardless of whether or not there is a difference in the shape information and the distance information from the viewpoint.
  • the determination information shape information related to the attractiveness of the object, the distance from the user's viewpoint position to the object, the operation input method, etc.
  • the second calibration data 22 is processed based on a predetermined rule.
  • the weighting coefficient C described above is merely an example, and the method for setting the weighting coefficient C is not limited, and may be appropriately set according to the content of the change in the gaze tendency.
  • the second line-of-sight correction processing unit 25 weighted and averages the correction amount (or the corrected amount after adjustment) of the second calibration data 22 according to the proximity to the first line-of-sight vector 42, thereby performing the first line-of-sight.
  • the correction rotation amount for the vector 42 is calculated.
  • the first line-of-sight vector 42 is corrected (deflected) by the direction and magnitude of the corrected rotation amount.
  • the weighted averaging method is, for example, the same as the method used in the first line-of-sight correction process.
  • the specific content of the second line-of-sight correction process is not limited, and for example, any method capable of appropriately correcting the first line-of-sight vector 42 may be used.
  • the correction amount for correcting the first line-of-sight vector 42 is adjusted according to the change in the gaze tendency, and the second line-of-sight vector finally used for the process using the line of sight is calculated. Will be done.
  • step 101 shown in FIG. 7 is executed again, and the next first line-of-sight correction process is executed.
  • FIG. 10 is a schematic diagram for explaining a change in the display size of the display object 36.
  • the degree of correction may be continuously changed according to a change in the display size of the display object 36 or the like.
  • display objects 36a to 36c having relatively different sizes are shown.
  • the display objects 36a to 36c are objects whose sizes increase in this order.
  • the degree of correction for the display object 36a having the smallest size is set to 100%
  • the degree of correction for the display object 36c having the largest size is set to 25%.
  • the degree of correction for the display object 36b which is an intermediate size, is set to 50%. In this way, when adjusting the correction amount, the correction degree may be dynamically changed according to the relative size of the object.
  • the correction degree is set to 0% and the second calibration data 22 is not used has been described.
  • a process of deleting the second calibration data 22 that does not match the current situation may be executed. For example, in a situation where the user is using the game controller, the correction using the second calibration data 22 generated during the period when the game controller is not used may significantly reduce the accuracy. It is possible to delete such second calibration data 22 and newly use the data generated while using the game controller.
  • the second calibration data 22 may be deleted according to the content of the change in the gaze tendency. As a result, it is possible to accumulate the second calibration data 22 that is in the current situation.
  • the process of deleting the second calibration data 22 is an example of a process of controlling the correction by the second calibration.
  • the caliber data recorded when a small object is viewed may be left without being deleted because it is considered to be highly reliable. It is possible to maintain the line-of-sight detection accuracy at a high level.
  • the degree of correction may be expressed by an indicator or the like to notify the user.
  • the second calibration data 22 is displayed at the scene switching timing.
  • the processing method (setting of the degree of correction, etc.) may be changed.
  • the second calibration data 22 corresponding to each scene may be prepared, and the data to be used may be switched according to the change of the scene.
  • a database of the second calibration data 22 may be configured for each of a plurality of users, and processing may be performed using the corresponding database according to each user.
  • the first calibration and the second calibration are executed.
  • the detection result (detection line-of-sight vector 40) of the user's line-of-sight using the inward-facing camera 12 is corrected based on the line-of-sight to the marker 31 whose display parameters are fixed.
  • the result of the first calibration (first line-of-sight vector 42) is corrected based on the line of sight to the display object whose display parameters fluctuate.
  • the occurrence of a specific change is determined, and the correction related to the correction by the second calibration is performed according to the result. This makes it possible to prevent a decrease in the line-of-sight detection accuracy.
  • FIG. 11 is a block diagram showing a configuration example of the HMD 100 according to the second embodiment.
  • the HMD200 has a first calibration (static calibration) that statically corrects the line of sight and a second calibration (static calibration) that dynamically corrects the line of sight when manipulating an object in an application that uses the line of sight. ) And are executable devices. Further, in the HMD 200, control regarding correction by the first calibration is performed based on the occurrence of a specific change regarding the second calibration. In the present embodiment, as the control related to the correction by the first calibration, the control related to the re-execution of the generation process of the first calibration data 21 is performed based on the occurrence of a specific change. Specifically, when the correction amount exceeds the threshold value, a notification process or the like for notifying that the first data generation process described with reference to FIG. 3 or the like needs to be executed again is executed.
  • the configuration of the HMD 200 is different from that of the HMD 100 described with reference to FIGS. 1 and 2 in that the application control unit 26 is provided with the abnormality determination unit 50.
  • each part of the HMD 200 will be described with reference to the same reference numerals as those of the HMD 100.
  • the process of controlling the correction by the second calibration described above the process of setting the degree of correction, etc.
  • the contents described below can be applied.
  • the abnormality determination unit 50 determines the occurrence of a specific change related to the second calibration.
  • the specific change regarding the second calibration is a change in the correction amount of the second calibration data 22 used for the correction by the second calibration (second line-of-sight correction processing).
  • the correction amount of the second calibration data 22 is calculated using the first line-of-sight vector 42, which is the result of the first calibration. Therefore, if the accuracy of the correction by the first calibration (first line-of-sight correction processing) is lowered, the correction amount of the second calibration data 22 may increase.
  • the abnormality determination unit 50 determines such a change in the correction amount of the second calibration data 22.
  • the abnormality of the first calibration is determined by using the second calibration data 22 used for the second calibration.
  • the abnormality determination unit 50 generates a flag requesting re-execution of the generation process (first data generation process) of the first calibration data 21 based on the change in the correction amount of the second calibration data 22. That is, when it is determined that the correction amount of the second calibration data 22 has changed, a flag requesting re-execution of the first data generation process is generated. It can be said that this flag is, for example, an abnormality detection flag that detects an abnormality related to the first calibration. Using this abnormality detection flag, various processes for prompting the re-execution of the first data generation process are executed.
  • a notification process for notifying that the process for generating the first calibration data 21 needs to be re-executed is executed. For example, when it is determined that the correction amount of the second calibration data 22 has changed and the abnormality detection flag is generated, a notification image or the like requesting re-execution of the first data generation process is generated. Further, the notification process can be executed at any timing after the re-execution flag is generated. The content of the notification process, the timing of performing the notification process, and the like will be described in detail later.
  • the abnormality determination unit 50 realizes the determination unit and the correction control unit.
  • the calibration data generation unit 27 executes the first data generation process, and the new first calibration data 21 is generated. Will be generated.
  • the process of generating the first calibration data 21 is executed in response to the input of the user's response to the notification process. Therefore, the first data generation process is executed only after the user selects it. This makes it possible to re-execute the first data generation process without disturbing the user's work or the like.
  • FIG. 12 is a flowchart showing an example of the basic operation of the HMD200.
  • the process shown in FIG. 12 is a loop process that is continuously executed during the operation of the application or the like.
  • the basic operation of the HMD 200 will be described with reference to FIG.
  • step 401 it is determined whether or not the abnormality detection flag is set (step 401).
  • the generation of the abnormality detection flag is executed in step 408 described later.
  • the notification process for notifying that an abnormality has occurred is executed.
  • the notification process for example, an icon or an indicator indicating that there is an abnormality in the first calibration is displayed at the end of the display area 19.
  • the application for using the line of sight is executed (step 403). For example, in the first loop processing, the application is started, and in the subsequent loop processing, the operation of the already started application is continued.
  • the abnormality detection flag is set, character data or an icon for notifying the abnormality is displayed on the application screen.
  • the first line-of-sight correction process (first calibration) for correcting the detected line-of-sight vector 40 based on the first calibration data 21 is executed, and the first line-of-sight vector 42 is calculated (step 404). ..
  • a second calibration is performed based on the first line-of-sight vector 42 (step 405).
  • the second line-of-sight correction processing unit 25 executes the second line-of-sight correction process, corrects the first line-of-sight vector 42 based on the second calibration data 22 recorded in advance in the storage unit 17, and corrects the second line-of-sight vector 42. Is calculated.
  • the calibration data generation unit 27 executes the second data generation process, and the gaze object 32 and the first line of sight are executed. Second calibration data 22 is newly generated based on the vector 42.
  • the abnormality determination unit 50 calculates the average correction amount of the second calibration data 22 stored in the storage unit 17 (step 406). That is, the average value of the correction amount is calculated with respect to the dynamically accumulated second calibration data 22. For example, the value obtained by dividing the sum of the absolute values (magnitude of the correction rotation amount) of the correction amounts of each second calibration data 22 by the number of the second calibration data 22 is calculated as the average correction amount.
  • the abnormality determination unit 50 determines whether or not the calculated average correction amount exceeds a predetermined threshold value (step 407). For example, when it is determined that the average correction amount exceeds a predetermined threshold value (Yes in step 407), an abnormality detection flag is generated assuming that the correction amount of the second calibration data 22 has changed (step 408).
  • the abnormality detection flag is generated. ..
  • the method of generating the abnormality detection flag is not limited. For example, when the correction amount exceeding the threshold value becomes a predetermined number or more, the abnormality detection flag may be set.
  • the HMD 200 when at least one of the correction amounts of the second calibration data 22 exceeds the threshold value, it may be determined that the change in the correction amount has occurred. This makes it possible to detect an abnormality due to, for example, a sudden misalignment. In this way, in the HMD 200, when the correction amount of the registered second calibration data 22 is too large, it is possible to give a notification or the like prompting the static first calibration to be redone by generating an abnormality detection flag. It will be possible.
  • the average correction amount and the threshold value for determining each correction amount for example, the average value of the correction amounts of the second calibration data 22 recorded in the past is used.
  • a threshold value may be appropriately set according to the line-of-sight detection accuracy and the like. If the average correction amount is greater than or equal to a fixed value (for example, 2 ° as the assumed error of the device), or if it is extremely bad, such as twice that value, there is a possibility of device failure or line-of-sight detection. You may notify that it may not be available.
  • step 409 it is determined whether or not to terminate the application. For example, when the user performs an application termination operation or the like, the termination of the application is determined (Yes in step 409), and the loop processing shown in FIG. 12 ends. If it is determined that the application is not terminated (No in step 409), the process returns to step 401 and the next loop process is started.
  • FIG. 13 is a schematic diagram showing an example of the notification screen. On the screens shown in FIGS. 13A and 13B, a message notifying the re-execution of the first calibration (re-execution of the first data generation process) is displayed. The process of displaying these messages is an example of the notification process.
  • a window 39 for displaying a message is displayed in the center of the display area 19. Further, in the window 39, a button for selecting whether or not to execute calibration (first data generation process) using a dedicated screen is displayed. For example, at the end of the task currently being performed by the user, a window 39 as shown in FIG. 13A may be displayed to ask the user whether or not to execute the calibration. In this way, the abnormality determination unit 50 performs the notification process at the timing when the task performed by the user is completed. This makes it possible to prompt calibration at an appropriate timing without interfering with the user's work. Also, for example, the user's current task may be interrupted to prompt calibration. In this case, the window 39 as shown in FIG. 13A is displayed while the user is performing the task.
  • the message 45 is displayed at the upper end of the display area 19. This message 45 is displayed when the abnormality detection flag is set. For example, even while the user's task on the application screen is being executed, it is possible to notify that static calibration is required while the abnormality detection flag is set. In this way, the abnormality determination unit 50 may perform the notification process at the timing when the task performed by the user is executed. This makes it possible to promptly notify the abnormality of the first calibration.
  • a window 39 as shown in FIG. 13A may be displayed to indicate that static calibration is required.
  • the abnormality determination unit 50 performs the notification process at the timing before the execution of the application using the line of sight. This makes it possible to properly perform the first calibration from the initial stage of using the application.
  • the case where a single line-of-sight vector (detection line-of-sight vector or the like shown in FIG. 3A) is calculated mainly as the line-of-sight direction of the user has been described.
  • the second calibration data 22 for each eye and detect an abnormality in the first calibration when the deviation on one side becomes extremely large.
  • the first line-of-sight correction processing unit 24 and the second line-of-sight correction processing unit 25 are configured to be able to execute the first calibration and the second calibration for each of the user's right eye and left eye.
  • the abnormality determination unit 50 determines a change in the correction amount of the second calibration data 22 for each of the user's right eye and left eye.
  • an abnormality detection flag is generated.
  • information indicating which eye caused the abnormality is added to the abnormality detection flag.
  • the process of generating the abnormality detection flag requesting the regeneration of the first calibration data 21 used for the static first calibration has been described. For example, after the abnormality detection flag is generated, if the correction amount falls below the threshold value, the abnormality detection flag may be dropped. That is, if it is determined that the correction amount of the second calibration data 22 has not changed after the abnormality detection flag is generated, the abnormality detection flag is discarded. As a result, when a temporary misalignment or the like is corrected, the message notification process shown in FIG. 13 is not performed, and unnecessary calibration work can be avoided.
  • the first calibration and the second calibration are executed.
  • the occurrence of a specific change is determined, and the control related to the correction by the first calibration is performed according to the result.
  • the correction by the first calibration can be controlled, and it is possible to prevent a decrease in the line-of-sight detection accuracy.
  • the line-of-sight error increases over the entire field of view.
  • the accuracy of the correction by the first calibration is lowered, and it is necessary to perform the second calibration on the entire field of view of the user.
  • the accuracy of the line-of-sight detection by the first calibration may be lowered due to the deviation from the model due to the time-dependent change of the eyeball or the deformation of the device due to the impact.
  • the static first calibration is affected.
  • the dynamic second calibration is performed on the entire field of view, it takes time until the error is reduced. Normally, the static caliber should be redone, but it had to be re-executed at the user's intention.
  • the HMD200 by determining the change in the correction amount of the second calibration data 22, it is possible to know the occurrence of an abnormal state in the line-of-sight detection (when the shape of the eyeball changes due to a change over time or when the device is deformed). be. Further, by re-doing the static first calibration, it is possible to improve the line-of-sight detection accuracy even if the number of points of the dynamic second calibration is small. Further, by determining the change in the second calibration data 22, it is possible to estimate that, for example, the user wearing the HMD 200 (the person whose line of sight is detected) has changed. This makes it possible to automatically prompt calibration every time the user switches.
  • mainly immersive HMDs have been described.
  • the present technology can be applied to any device capable of detecting the user's line-of-sight vector.
  • an optically transmissive HMD may be used.
  • the user's line-of-sight vector is calculated by an inward-looking camera or the like mounted on the HMD.
  • real space information is acquired using an external camera or the like.
  • the optical transmission type HMD can superimpose virtual objects as if they exist in the real space with reference to the three-dimensional coordinates in the real space, that is, the global coordinate system. By using the optical transmission type HMD, the user can experience the AR space, for example.
  • an input operation using a line of sight may be executed using a display device such as a PC (Personal Computer) display, a stationary monitor used in a medical field, or a TV.
  • a display device such as a PC (Personal Computer) display, a stationary monitor used in a medical field, or a TV.
  • the line-of-sight vector of the user who views the display of the PC or the like is calculated by using a camera or the like that captures the user's face (eyeball).
  • this technology can be applied to the case where an EVF (Electronic View Finder) with a one-eyed line-of-sight detection function mounted on a photographing device or the like, a glasses-type line-of-sight detection device without a display, or the like is used. ..
  • EVF Electronic View Finder
  • the information processing method according to the present technology is executed by a computer such as an HMD operated by the user has been described.
  • the information processing method and the program according to the present technology may be executed by a computer operated by the user and another computer capable of communicating via a network or the like.
  • a computer operated by the user and another computer may be linked to construct a content providing system according to the present technology.
  • 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. Therefore, 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 according to the present technology by the computer system include, for example, acquisition of the detection result of the user's line of sight, execution of the first calibration and the second calibration, and determination of a specific change related to the second calibration. Including the case where the control related to the correction by each calibration is executed by a single computer and the case where each process is executed by a different computer. 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.
  • the information processing method and program related to this technology can be applied to a cloud computing configuration in which one function is shared by a plurality of devices via a network and processed jointly.
  • the present technology can also adopt the following configurations.
  • a line-of-sight detection unit that acquires the detection result of the user's line-of-sight from the sensor to the display area.
  • the first calibration that corrects the detection result of the user's line of sight based on the user's line of sight with respect to at least one first object in which the display parameters in the display area are fixed in advance, and the display parameters in the display area move.
  • a calibration unit that performs a second calibration that corrects the result of the first calibration based on the line of sight of the user with respect to at least one second object that changes in a uniform manner.
  • a determination unit that determines the occurrence of a specific change related to the second calibration A line-of-sight detection device including a correction control unit that controls correction by at least one of the first calibration and the second calibration based on the occurrence of the specific change.
  • the line-of-sight detection device according to (1).
  • the first calibration is a process of generating first calibration data based on the user's line of sight with respect to the at least one first object, and corrects the detection result of the user's line of sight using the first calibration data.
  • the second calibration is a process of generating second calibration data based on the line of sight of the user with respect to the at least one second object, and the second calibration data is used to correct the result of the first calibration.
  • the correction control unit performs at least one of control related to re-execution of the first calibration data generation process or control related to the correction process using the second calibration data based on the occurrence of the specific change.
  • Device. (3) The line-of-sight detection device according to (2).
  • the particular change includes a change in the user's gaze tendency towards a display object displayed in the display area.
  • the correction control unit is a line-of-sight detection device that adjusts the degree of correction when correcting the result of the first calibration using the second calibration data according to the content of the change in the gaze tendency.
  • the line-of-sight detection device according to (3).
  • the determination unit changes the type, shape, size, color, and operation of the display object with respect to the at least one second object used for correction by the second calibration.
  • a line-of-sight detection device that determines the occurrence of.
  • the determination unit determines the distance between the display object and the user's viewpoint with respect to the distance between the at least one second object used for correction by the second calibration and the user's viewpoint as a change in the gaze tendency.
  • a line-of-sight detection device that determines the occurrence of changes in. (6) The line-of-sight detection device according to any one of (3) to (5).
  • the determination unit is a line-of-sight detection device that determines the occurrence of a change in the operation input method for the display object as a change in the gaze tendency.
  • the line-of-sight detection device according to any one of (3) to (6).
  • the second calibration data is data recorded in association with a vector that is the result of the first calibration for each of the at least one second object and a correction amount for the vector.
  • the correction control unit is a line-of-sight detection device that sets a weighting coefficient for adjusting a correction amount of the second calibration data as the correction degree.
  • the line-of-sight detection device according to (7).
  • the correction control unit sets the weighting coefficient so that when the occurrence of the change in the gaze tendency is determined, the degree of correction is lower than when the occurrence of the change in the gaze tendency is not determined.
  • Device. (9) The line-of-sight detection device according to any one of (3) to (8).
  • the calibration unit records the second calibration data in association with the information regarding the gaze tendency of the user when generating the second calibration data.
  • the determination unit is a line-of-sight detection device that determines the occurrence of a change in the gaze tendency based on information on the gaze tendency of the user.
  • the line-of-sight detection device according to any one of (3) to (9).
  • the correction control unit is a line-of-sight detection device that deletes the second calibration data according to the content of the change in the gaze tendency.
  • the line-of-sight detection device according to any one of (2) to (10).
  • the second calibration data is data recorded in association with a vector that is the result of the first calibration for each of the at least one second object and a correction amount for the vector.
  • the specific change includes a change in the correction amount of the second calibration data.
  • the correction control unit is a line-of-sight detection device that generates a flag requesting re-execution of the first calibration data generation process based on a change in the correction amount of the second calibration data.
  • (12) The line-of-sight detection device according to (11).
  • the correction control unit is a line-of-sight detection device that performs a notification process for notifying that the process for generating the first calibration data needs to be re-executed based on the flag.
  • the correction control unit performs the line-of-sight detection at least one of the timing when the task performed by the user is completed, the timing when the task is executed, or the timing before the execution of the application using the line-of-sight. Device.
  • the calibration unit is a line-of-sight detection device that executes a process of generating the first calibration data in response to a response input of the user to the notification process.
  • the line-of-sight detection device according to any one of (11) to (14).
  • the determination unit when the average value of the correction amount of the second calibration data exceeds the threshold value, or when at least one of the correction amounts of the second calibration data exceeds the threshold value, the change of the correction amount occurs.
  • a line-of-sight detection device that determines.
  • the calibration unit can execute the first calibration and the second calibration for each of the user's right eye and left eye.
  • the determination unit determines the change in the correction amount of the second calibration data for each of the right eye and the left eye of the user.
  • the correction control unit is a line-of-sight detection device that generates the flag when a change in the correction amount of the second calibration data is determined for at least one of the user's right eye and left eye.
  • the line-of-sight detection device according to any one of (11) to (16).
  • the correction control unit is a line-of-sight detection device that discards the flag when it is determined that the correction amount of the second calibration data has not changed after the flag is generated.
  • (18) Obtain the detection result of the user's line of sight with respect to the display area from the sensor.
  • the first calibration that corrects the detection result of the user's line of sight based on the user's line of sight with respect to at least one first object in which the display parameters in the display area are fixed in advance, and the display parameters in the display area move.
  • a second calibration is performed to correct the result of the first calibration based on the user's line of sight with respect to at least one second object that changes. Determining the occurrence of a particular change with respect to the second calibration An information processing method in which a computer system executes control regarding correction by at least one of the first calibration and the second calibration based on the occurrence of the specific change.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

視線検出装置は、視線検出部、キャリブレーション部、判定部、及び補正制御部を具備する。視線検出部は、センサからユーザの視線の検出結果を取得する。キャリブレーション部は、表示パラメータが予め固定された少なくとも1つの第1オブジェクトを基準に視線の検出結果を補正する第1キャリブレーション、及び、表示パラメータが動的に変化する少なくとも1つの第2オブジェクトを基準に第1キャリブレーションの結果を補正する第2キャリブレーションを行う。判定部は、第2キャリブレーションに関する特定の変化の発生を判定し、補正制御部は、特定の変化の発生に基づいて、第1及び第2キャリブレーションの少なくとも一方による補正に関する制御を行う。

Description

視線検出装置、情報処理方法、及びコンピュータが読み取り可能な記録媒体
 本技術は、視線検出に適用可能な視線検出装置、情報処理方法、及びコンピュータが読
み取り可能な記録媒体に関する。
 従来、ユーザの眼を撮影した画像や眼球運動の測定結果等を用いて、ユーザの視線を検出する技術が開発されている。また、視線検出の精度を向上するために、ユーザの視線の個人差等を補正する視線キャリブレーションが提案されている。
 例えば、専用のマーカを表示して視線キャリブレーションを行う方法が知られている。この方法では、専用のマーカにユーザの視線を誘導し、マーカを注視する際のユーザの視線に基づいて視線キャリブレーション用のデータが生成される。このデータを用いてユーザの視線が補正される。
 また近年では、専用のマーカを表示することなく、視線キャリブレーションを行う方法が開発されている。例えば、特許文献1には、通常のユーザ操作の中で視線キャリブレーションを行う情報処理システムについて記載されている。この情報処理システムでは、例えばユーザ操作の対象となるアイコンやエリア、あるいはユーザが使用するデバイスといったユーザの注視対象の位置が検出される。この注視対象の位置と視線位置とのずれに基づいて視線キャリブレーションが行われ、ユーザの視線が補正される。これにより、装置本来の目的を遂行する操作の中で視線キャリブレーションを行うことが可能となる(特許文献1の明細書段落[0017][0045][0066][0078]図1等)。
国際公開第2016/139850号
 このような専用のマーカを用いた視線キャリブレーションと、装置の使用中に実行可能な視線キャリブレーションとを組み合わせることで、視線検出精度の向上が期待される。一方で、各キャリブレーションに不具合があると最終的に検出される視線の精度が低下する恐れがある。このため、視線検出精度の低下を防止する技術が求められている。
 以上のような事情に鑑み、本技術の目的は、視線検出精度の低下を防止することが可能な視線検出装置、情報処理方法、及びコンピュータが読み取り可能な記録媒体を提供することにある。
 上記目的を達成するため、本技術の一形態に係る視線検出装置は、視線検出部と、キャリブレーション部と、判定部と、補正制御部とを具備する。
 前記視線検出部は、センサから表示領域に対するユーザの視線の検出結果を取得する。
 前記キャリブレーション部は、前記表示領域における表示パラメータが予め固定された少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて前記ユーザの視線の検出結果を補正する第1キャリブレーション、及び、前記表示領域における表示パラメータが動的に変化する少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて前記第1キャリブレーションの結果を補正する第2キャリブレーションを行う。
 前記判定部は、前記第2キャリブレーションに関する特定の変化の発生を判定する。
 前記補正制御部は、前記特定の変化の発生に基づいて、前記第1キャリブレーション及び前記第2キャリブレーションの少なくとも一方による補正に関する制御を行う。
 この視線検出装置では、第1キャリブレーションと第2キャリブレーションとが実行される。第1キャリブレーションでは、表示パラメータが固定された第1オブジェクトへの視線をもとに、センサを用いたユーザの視線の検出結果が補正される。また、第2キャリブレーションでは、表示パラメータが変動する第2オブジェクトへの視線をもとに、第1キャリブレーションの結果が補正される。この第2キャリブレーションについて、特定の変化の発生が判定され、その結果に応じて、第1キャリブレーション及び第2キャリブレーションの少なくとも一方による補正に関する制御が行われる。これにより、各キャリブレーションによる補正を制御可能となり、視線検出精度の低下を防止することが可能となる。
 前記第1キャリブレーションは、前記少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて第1較正データを生成する処理と、前記第1較正データを用いて前記ユーザの視線の検出結果を補正する処理とを含んでもよい。この場合、前記第2キャリブレーションは、前記少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて第2較正データを生成する処理と、前記第2較正データを用いて前記第1キャリブレーションの結果を補正する処理とを含んでもよい。また、前記補正制御部は、前記特定の変化の発生に基づいて、前記第1較正データの生成処理の再実行に関する制御、又は前記第2較正データを用いた補正処理に関する制御の少なくとも一方を行ってもよい。
 前記特定の変化は、前記表示領域に表示される表示オブジェクトに対する前記ユーザの注視傾向の変化を含んでもよい。この場合、前記補正制御部は、前記注視傾向の変化の内容に応じて、前記第2較正データを用いて前記第1キャリブレーションの結果を補正する際の補正度合を調整してもよい。
 前記判定部は、前記注視傾向の変化として、前記第2キャリブレーションによる補正に用いられる前記少なくとも1つの第2オブジェクトに対する、前記表示オブジェクトの種類、形状、サイズ、色、動作の少なくとも1つに関する変化の発生を判定してもよい。
 前記判定部は、前記注視傾向の変化として、前記第2キャリブレーションによる補正に用いられる前記少なくとも1つの第2オブジェクトと前記ユーザの視点との距離に対する、前記表示オブジェクトと前記ユーザの視点との距離の変化の発生を判定してもよい。
 前記判定部は、前記注視傾向の変化として、前記表示オブジェクトに対する操作入力の方法の変化の発生を判定してもよい。
 前記第2較正データは、前記少なくとも1つの第2オブジェクトの各々に対する前記第1キャリブレーションの結果であるベクトルと、当該ベクトルについての補正量とが関連付けて記録されたデータであってもよい。この場合、前記補正制御部は、前記補正度合として、前記第2較正データの補正量を調整する重み係数を設定してもよい。
 前記補正制御部は、前記注視傾向の変化の発生が判定された場合、前記注視傾向の変化の発生が判定されていない場合よりも前記補正度合が低くなるように前記重み係数を設定してもよい。
 前記キャリブレーション部は、前記第2較正データと、前記第2較正データを生成する際の前記ユーザの注視傾向に関する情報とを関連付けて記録してもよい。この場合、前記判定部は、前記ユーザの注視傾向に関する情報に基づいて、前記注視傾向の変化の発生を判定してもよい。
 前記補正制御部は、前記注視傾向の変化の内容に応じて、前記第2較正データを削除してもよい。
 前記第2較正データは、前記少なくとも1つの第2オブジェクトの各々に対する前記第1キャリブレーションの結果であるベクトルと、当該ベクトルについての補正量とが関連付けて記録されたデータであってもよい。この場合、前記特定の変化は、前記第2較正データの補正量の変化を含んでもよい。また、前記補正制御部は、前記第2較正データの補正量の変化に基づいて、前記第1較正データの生成処理の再実行を要求するフラグを生成してもよい。
 前記補正制御部は、前記フラグに基づいて、前記第1較正データを生成する処理の再実行が必要である旨を通知する通知処理を行ってもよい。
 前記補正制御部は、前記ユーザが行うタスクが終了したタイミング、前記タスクが実行されているタイミング、又は視線を利用したアプリケーションの実行前のタイミングの少なくとも1つのタイミングで、前記通知処理を行ってもよい。
 前記キャリブレーション部は、前記通知処理に対する前記ユーザの応答入力に応じて、前記第1較正データを生成する処理を実行してもよい。
 前記判定部は、前記第2較正データの補正量の平均値が閾値を超えた場合、又は前記第2較正データの補正量の少なくとも1つが閾値を超えた場合、前記補正量の変化が発生したと判定してもよい。
 請求項11に記載の視線検出装置であって、
 前記キャリブレーション部は、前記ユーザの右目及び左目ごとに前記第1キャリブレーション及び前記第2キャリブレーションを実行可能であってもよい。この場合、前記判定部は、前記ユーザの右目及び左目ごとに前記第2較正データの補正量の変化を判定してもよい。また、前記補正制御部は、前記ユーザの右目及び左目の少なくとも一方について前記第2較正データの補正量の変化が判定された場合に、前記フラグを生成してもよい。
 前記補正制御部は、前記フラグが生成された後に、前記第2較正データの補正量の変化が発生していないと判定された場合、前記フラグを破棄してもよい。
 本技術の一形態に係る情報処理方法は、コンピュータシステムにより実行される情報処理方法であって、センサから表示領域に対するユーザの視線の検出結果を取得することを含む。
 前記表示領域における表示パラメータが予め固定された少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて前記ユーザの視線の検出結果を補正する第1キャリブレーション、及び、前記表示領域における表示パラメータが動的に変化する少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて前記第1キャリブレーションの結果を補正する第2キャリブレーションが行われる。
 前記第2キャリブレーションに関する特定の変化の発生が判定される。
 前記特定の変化の発生に基づいて、前記第1キャリブレーション及び前記第2キャリブレーションの少なくとも一方による補正に関する制御が行われる。
 本技術の一形態に係るコンピュータが読み取り可能な記録媒体は、コンピュータシステムに以下のステップを実行させるプログラムを記録する。
 センサから表示領域に対するユーザの視線の検出結果を取得するステップ。
 前記表示領域における表示パラメータが予め固定された少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて前記ユーザの視線の検出結果を補正する第1キャリブレーション、及び、前記表示領域における表示パラメータが動的に変化する少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて前記第1キャリブレーションの結果を補正する第2キャリブレーションを行うステップ。
 前記第2キャリブレーションに関する特定の変化の発生を判定するステップ。
 前記特定の変化の発生に基づいて、前記第1キャリブレーション及び前記第2キャリブレーションの少なくとも一方による補正に関する制御を行うステップ。
本技術の第1の実施形態に係るヘッドマウントディスプレイの外観を示す斜視図である。 図1に示すHMDの構成例を示すブロック図である。 第1キャリブレーションについて説明するための模式図である。 第2キャリブレーションについて説明するための模式図である。 シーンの変化について説明するための模式図である。 操作入力の方法の変化について説明するための模式図である。 HMDの基本的な動作の一例を示すフローチャートである。 第1視線補正処理の一例を示すフローチャートである。 第2視線補正処理の一例を示すフローチャートである。 表示オブジェクトの表示サイズの変化について説明するための模式図である。 第2の実施形態に係るHMDの構成例を示すブロック図である。 HMDの基本的な動作の一例を示すフローチャートである。 通知画面の一例を示す模式図である。
 以下、本技術に係る実施形態を、図面を参照しながら説明する。
 <第1の実施形態>
 [HMDの構成]
 図1は、本技術の第1の実施形態に係るヘッドマウントディスプレイ(HMD)の外観を示す斜視図である。図2は、図1に示すHMD100の構成例を示すブロック図である。HMD100は、ユーザの頭部に装着して使用され、ユーザの視界に画像表示を行う表示装置として機能する。HMD100を装着したユーザは、例えば仮想現実(VR:Virtual Reality)や拡張現実(Augmented Reality)等を体験することが可能である。
 またHMD100は、ユーザの視線を検出するように構成される。具体的には、ユーザの視線方向を表す視線ベクトルが検出される。この視線ベクトルを用いることで、ユーザの視線を利用した操作入力等が可能となる。HMD100は、本実施形態に係る視線検出装置に相当する。
 図1に示すようにHMD100は、基体部10と、装着バンド11とを有する。
 基体部10は、ユーザの左右の眼の前方に配置される部材である。基体部10は、ユーザの視界を覆うように構成され、画像表示を行うためのディスプレイ16等を収納する筐体として機能する。
 装着バンド11は、ユーザの頭部に装着される。図1に示すように、装着バンド11は、側頭バンド11aと、頭頂バンド11bとを有する。側頭バンド11aは、基体部10に接続され、側頭部から後頭部にかけてユーザの頭部を囲むように装着される。頭頂バンド11bは、側頭バンド11aに接続され、側頭部から頭頂部にかけてユーザの頭部を囲むように装着される。これにより、ユーザの眼前に基体部10を保持することが可能となる。
 図2に示すように、HMD100は、さらに、内向きカメラ12と、動作センサ13と、通信部14と、操作入力部15と、ディスプレイ16と、記憶部17と、コントローラ18とを有する。
 内向きカメラ12は、ユーザの眼球を撮影する。ユーザの眼球が撮影された眼球画像は、後述する視線検出に用いられる。内向きカメラ12は、例えばユーザの左眼及び右眼が撮影可能となるように基体部10の内部に配置された左眼用及び右眼用カメラを用いて構成される。
 内向きカメラ12(左眼用及び右眼用カメラ)としては、例えばCMOS(Complementary Metal-Oxide Semiconductor)センサやCCD(Charge Coupled Device)センサ等のイメージセンサを備えるデジタルカメラが用いられる。また、例えば赤外線LED等の赤外線光源を搭載した赤外線カメラが用いられてもよい。これにより、眼球の赤外線画像を撮影することが可能となり、高精度な視線検出が可能となる。内向きカメラ12の具体的な構成は限定されない。本実施形態では、内向きカメラ12は、ユーザの視線の検出に用いられるセンサとして機能する。
 動作センサ13は、HMD100の動きに関する情報を検出するセンサである。動作センサ13は、例えば基体部10の所定の位置に固定して配置され、HMD100の傾斜や回転等を検出する。従って、動作センサ13は、HMD100を装着したユーザの頭部の動きに関する情報を検出するセンサであるとも言える。
 動作センサ13としては、例えば慣性計測装置(IMU:Inertial Measurement Unit)等が用いられる。慣性計測装置は、例えば3軸のジャイロ及び加速度計によって、3次元の角速度及び加速度を検出するセンサである。また例えば、3軸のジャイロや加速度に加え3軸の速度計を備えた9軸センサ等が動作センサ13として用いられてもよい。動作センサ13の種類は限定されず、HMD100の動作を検出可能な任意のセンサが用いられてよい。
 この他、HMD100に搭載されるセンサは限定されない。例えば、HMD100の外側の情報を検出する外部センサ等が設けられてもよい。外部センサとしては、HMD100の正面(ユーザの正面)を撮影するデジタルカメラ(外向きカメラ)等が用いられる。また例えば、実空間の奥行情報等を検出可能なステレオカメラやTOF(Time of Flight)センサ等を備えたカメラ等が外部センサとして用いられてもよい。例えば外部センサにより検出された画像をディスプレイ16に表示することで、AR体験等を提供することが可能である。この他、レーダセンサやLiDARセンサ等が外部センサとして搭載されてもよい。
 通信部14は、他のデバイスとの間で、ネットワーク通信や近距離無線通信等を実行するためのモジュールである。通信部14としては、例えばWiFi等の無線LANモジュールや、Bluetooth(登録商標)等の通信モジュールが設けられる。この他、有線接続による通信が可能な通信モジュール等が設けられてもよい。
 操作入力部15は、ユーザが手等を使って行う操作入力を行うための入力装置(図示省略)である。入力装置としては、例えば、選択ボタン、アナログスティック、及びスイッチ等を備えた装置(ゲームコントローラ等)が用いられる。入力装置の種類等は限定されず、例えばマウスやキーボード等が用いられてもよい。また、操作入力部15を使って行われたユーザの操作入力を表す信号等が通信部14を介して読み込まれてもよい。
 ディスプレイ16は、ユーザの視界の少なくとも一部を覆うように基体部10に設けられる。ユーザは、ディスプレイ16の表示領域に表示された画像を視認することになる。例えば左眼用及び右眼用の画像を表示するように2つのディスプレイ16が、ユーザの視界に配置される。あるいは、単一のディスプレイ16を用いて左眼用及び右眼用の画像が表示される構成が採用されてもよい。またディスプレイ16とユーザの左眼及び右眼との間には、例えばフォーカスを調整するためのレンズ等が設けられてもよい。
 ディスプレイ16としては、例えば有機ELディスプレイやLCD(Liquid Crystal Display、液晶表示素子)ディスプレイ等が用いられる。この他、ディスプレイ16の具体的な構成は限定されない。
 記憶部17は、不揮発性の記憶デバイスである。記憶部17としては、例えばSSD(Solid State Drive)等の固体素子を用いた記録媒体や、HDD(Hard Disk Drive)等の磁気記録媒体が用いられる。この他、記憶部17として用いられる記録媒体の種類等は限定されず、例えば非一時的にデータを記録する任意の記録媒体が用いられてよい。
 記憶部17には、制御プログラム20と、第1較正データ21と、第2較正データ22とが記憶される。本実施形態では、記憶部17は、プログラムが記録されているコンピュータが読み取り可能な記録媒体に相当する。
 制御プログラム20は、HMD100の全体の動作を制御するためのプログラムである。本実施形態では、制御プログラム20は、記録媒体に記録されたプログラムに相当する。
 第1較正データ21及び第2較正データ22は、ユーザの視線ベクトルを較正する視線キャリブレーションに用いられるデータである。記憶部17には、複数の第1較正データ21を含む第1較正データ21のデータベースと、複数の第2較正データ22を含む第2較正データ22のデータベースとが構築される。
 この他、記憶部17に記憶される情報は限定されない。
 ここでHMD100で行われる視線キャリブレーションについて説明する。
 視線キャリブレーションは、HMD100で検出された視線ベクトルと、ユーザが実際に注視していると推定された注視オブジェクトの方向との差分を補正量(較正データ)として、対象の視線ベクトルを補正する処理である。これにより、HMD100で検出される視線の誤差を少なくすることが可能である。
 本開示では、視線キャリブレーションには、較正データを生成する処理と、その較正データを用いて視線ベクトルを補正する処理との両方の処理が含まれるものとする。
 HMD100では、第1キャリブレーションと第2キャリブレーションとの2種類の視線キャリブレーションが行われる。上記した第1較正データ21は、第1キャリブレーションでの補正に用いられるデータであり、第2較正データ22は、第2キャリブレーションでの補正に用いられるデータである。以下、第1キャリブレーション及び第2キャリブレーションについて具体的に説明する。
 第1キャリブレーションは、専用のマーカを基準に生成された較正データ(第1較正データ21)に基づいて、センサ(内向きカメラ12)から検出された視線ベクトルを補正する処理である。
 以下では、内向きカメラ12から検出された視線ベクトルを検出視線ベクトルと記載し、第1較正データ21を用いて補正された検出視線ベクトルを第1視線ベクトルと記載する。なお検出視線ベクトルは、内向きカメラ12の出力に基づいて、後述する視線検出部23により算出される。
 本実施形態では、検出視線ベクトルは、ユーザの視線の検出結果に相当する。また第1視線ベクトルは、第1キャリブレーションの結果に相当する。
 第1キャリブレーションに用いられるマーカは、ディスプレイ16の表示領域に表示される仮想オブジェクトである。第1較正データ21を生成する際には、少なくとも1つのマーカが表示領域内に表示される。また、表示領域におけるマーカの表示位置や表示サイズ等の表示パラメータは固定されており、例えばユーザの姿勢や動作が変化してもマーカの位置等は変化しない。これらのマーカを注視するユーザの視線に基づいて第1較正データ21が生成される。
 このように、第1キャリブレーションは、表示領域における表示パラメータが予め固定された少なくとも1つのマーカに対するユーザの視線に基づいて検出視線ベクトルを補正する処理である。なお検出視線ベクトルは、後述する視線検出部23により算出される。
 本実施形態では、マーカは、第1オブジェクトに相当し、検出視線ベクトルは、ユーザの視線の検出結果に相当する。
 図3は、第1キャリブレーションについて説明するための模式図である。図3Aは、第1キャリブレーションにおける第1較正データ21の生成処理の一例を示す模式図である。図3Bは、第1較正データ21の一例を示す模式図である。
 図3Aには、第1較正データ21を生成する際にディスプレイ16の表示領域19に表示されるUI画面の一例が模式的に図示されている。このUI画面では、表示領域19内の所定の表示位置に円形の仮想オブジェクト30(マーカ31)が表示される。
 図3Aに示す例では、9つの表示位置が設定され、各表示位置に順番にマーカ31が表示される。この時、ユーザには、表示されているマーカ31を注視する旨が指示され、各表示位置にマーカ31が表示される度に、ユーザの視線ベクトル(検出視線ベクトル40)が検出される。なお図3Aでは、検出視線ベクトル40を表す注視点PがXの印を用いて模式的に図示されている。
 検出視線ベクトル40が検出されると、ユーザの視点(検出視線ベクトル40の原点)とマーカ31の表示位置(例えば中心点Q)とをつなぐマーカ31の位置ベクトル41が算出される。そして位置ベクトル41に対する、検出視線ベクトル40の補正回転量(補正量)が算出される。
 ここで補正回転量とは、例えば位置ベクトル41と検出視線ベクトル40とを一致させるために必要な3次元ベクトルの回転量であり、例えばロー、ピッチ、ヨーで表されるオイラー角度や、回転量を表現するクォータニオンとして算出される。
 これら検出視線ベクトル40と、その検出視線ベクトル40に対する補正量とのデータセットが、第1較正データ21として生成され、記憶部17に記録される。
 このように、表示パラメータが固定されたマーカ31を用いて第1較正データ21を生成する第1キャリブレーションは、静的キャリブレーションであるといえる。
 なお、マーカ31を表示する方法等は限定されない。例えば、表示領域19内を移動するようにマーカ31が表示されてもよい。この場合、表示領域19内におけるマーカ31の移動経路(マーカ31の軌道)や移動速度等の表示パラメータが予め固定される。例えば、移動するマーカ31を注視する旨がユーザに指示され、マーカ31が移動した位置ごとに複数の第1較正データ21が生成される。このように、表示領域19内を移動する単一のマーカ31を基準として第1較正データ21が生成することも可能である。
 図3Bには、ユーザの視界5(矩形状の外枠で囲まれた領域)における複数の第1較正データ21が矢印を用いて模式的にプロットされている。
 各矢印の原点は、検出視線ベクトル40(あるいは検出視線ベクトル40の注視点P)に対応する。また矢印の長さは、補正回転量の大きさを表している。また矢印の方向は、補正回転量の向き(回転方向)を表している。図3Bに示す例では、図3Aに示す9つのマーカ31ごとに生成された9つの第1較正データ21を含むデータベースが構成される。
 なお、図中の円形の領域は、ユーザが正面を見ている場合を円の中心(0°)として、視線を10°、20°、及び30°傾けた場合の範囲を示している。
 第1較正データ21は、典型的には、ユーザの視線を利用するアプリケーション等を実行する前に生成される。例えばユーザがHMD100を装着してアプリケーションを起動したタイミングで、図3Aに示すようなUI画面を用いて第1較正データ21が生成され、記憶部17に記録される。
 なお、第1較正データ21を生成する処理を行うタイミング等は限定されず、例えば視線を利用するアプリケーションの動作中に、アプリケーションを中断して第1較正データ21を生成するといったことも可能である。
 また、記録された第1較正データ21は、視線を利用するアプリケーションの動作中に適宜参照され、検出視線ベクトル40の補正処理に用いられる。
 このように、第1キャリブレーションには、少なくとも1つのマーカ31に対するユーザの視線に基づいて第1較正データ21を生成する処理と、第1較正データ21を用いて検出視線ベクトル40を補正する処理とが含まれる。
 以下では、第1較正データ21を生成する処理を、第1データ生成処理と記載し、第1較正データ21を用いて検出視線ベクトル40を補正する処理を、第1視線補正処理と記載する。
 第2キャリブレーションは、アプリケーションの動作中にユーザが注視していると推定された注視オブジェクトを基準に生成された較正データ(第2較正データ22)に基づいて、第1キャリブレーションの結果である第1視線ベクトルを補正する処理である。
 以下では、第2較正データ22を用いて補正された第1視線ベクトルを第2視線ベクトルと記載する。第2視線ベクトルは、例えばHMD100において最終的に出力される視線ベクトルであり、ユーザによる視線入力等の操作に用いられる。
 第2キャリブレーションに用いられる注視オブジェクトは、例えば視線を利用するアプリケーション等の動作中に表示領域19に表示される仮想オブジェクト30のうち、ユーザが注視していると判定された仮想オブジェクト30である。
 アプリケーションの動作中に表示される画面には、例えばゲームキャラクタやアイコン等の複数の仮想オブジェクト30が表示される。これらの仮想オブジェクト30の表示パラメータは、例えばユーザの姿勢や動作の変化、あるいはアプリケーションの進行等に応じて、動的に変化するように制御される。
 HMD100では、ユーザが注視している仮想オブジェクト30(注視オブジェクト)が推定され、注視オブジェクトを注視するユーザの視線に基づいて第2較正データ22が生成される。この処理は、典型的には、アプリケーションの動作中に継続的に実行される。このため、第2較正データ22は、アプリケーションの動作中に蓄積される較正データであると言える。
 このように、第2キャリブレーションは、表示領域19における表示パラメータが動的に変化する少なくとも1つの注視オブジェクトに対するユーザの視線に基づいて第1視線ベクトルを補正する処理である。
 本実施形態では、注視オブジェクトは、第2オブジェクトに相当する。
 図4は、第2キャリブレーションについて説明するための模式図である。図4Aは、第2キャリブレーションにおける第2較正データ22の生成処理の一例を示す模式図である。図4Bは、第2較正データ22の一例を示す模式図である。
 図4Aには、第2較正データ22生成する際にディスプレイ16の表示領域19に表示されるアプリケーション画面の一例が模式的に図示されている。ここでは、星型の仮想オブジェクト30が1つだけ表示されている場合について説明するが、複数の仮想オブジェクト30が表示されている場合にも以下の説明は適用可能である。
 例えば図4Aに示すように、第1キャリブレーションの結果である第1視線ベクトル42の注視点Pが、仮想オブジェクト30の近傍で検出されたとする。この場合、注視点Pの近傍にある仮想オブジェクト30をユーザが注視している可能性が高いものとして、その仮想オブジェクト30が注視オブジェクト32として判定される。
 あるいは、星型の仮想オブジェクト30が表示された状態で、その仮想オブジェクト30を選択する旨の操作入力(ユーザによるボタン操作等)があった場合に、対象の仮想オブジェクト30が注視オブジェクト32として判定される。この他、注視オブジェクト32を判定する方法は限定されない。
 注視オブジェクト32が判定された場合、その注視オブジェクト32を基準として補正量が算出される。具体的には、注視オブジェクト32(中心点Q)の位置ベクトル41に対する第1視線ベクトル42の補正量(補正回転量)が算出される。そして、第1視線ベクトル42と補正量とのデータセットが第2較正データ22として記憶部17に記録される。
 従って、第2較正データ22は、少なくとも1つの注視オブジェクト32の各々に対する第1キャリブレーションの結果である第1視線ベクトル42と、当該第1視線ベクトル42についての補正量とが関連付けて記録されたデータであると言える。
 このように、表示パラメータが動的に変化する注視オブジェクト32を用いて第2較正データを生成する第2キャリブレーションは、アプリケーション等の実行中に行われる動的キャリブレーションであるといえる。また注視オブジェクト32(仮想オブジェクト30)が表示される位置等は決まっていないため、複数の方向について、補正量と推定ベクトルとを含む複数のデータセットが形成されることになる。
 図4Bには、ユーザの視界5(矩形状の外枠で囲まれた領域)における複数の第2較正データ22が矢印を用いて模式的にプロットされている。
 図4Bに示すように、第2キャリブレーションを実行することで、記憶部17には、視界内の様々な方向に対応する複数の第2較正データ22を含むデータベースが構成される。これにより、例えば第1キャリブレーション(第1データ生成処理)で記録されたデータ点の間を埋めるような較正データ等を用いることが可能となり、視線検出の精度を高めることが可能である。
 記録された第2較正データ22は、視線を利用するアプリケーションの動作中に適宜参照され、第1視線ベクトル42の補正処理に用いられる。
 このように、第2キャリブレーションには、少なくとも1つの注視オブジェクトに対するユーザの視線に基づいて第2較正データ22を生成する処理と、第2較正データ22を用いて第1視線ベクトル42を補正する処理とが含まれる。
 以下では、第2較正データ22を生成する処理を、第2データ生成処理と記載し、第2較正データ22を用いて第1視線ベクトル42を補正する処理を、第2視線補正処理と記載する。
 図2に戻り、コントローラ18は、HMD100が有する各ブロックの動作を制御する。コントローラ18は、例えばCPUやメモリ(RAM、ROM)等のコンピュータに必要なハードウェア構成を有する。CPUが記憶部17に記憶されている制御プログラム20をRAMにロードして実行することにより、種々の処理が実行される。本実施形態では、コントローラ18は、情報処理装置に相当する。
 コントローラ18として、例えばFPGA(Field Programmable Gate Array)等のPLD(Programmable Logic Device)、その他ASIC(Application Specific Integrated Circuit)等のデバイスが用いられてもよい。また例えばGPU(Graphics Processing Unit)等のプロセッサがコントローラ18として用いられてもよい。
 なおコントローラ18や記憶部17は、HMD100本体とは別に設けられてもよい。例えば、通信部14等を介して、HMD100本体と、コントローラ18等が通信することにより、HMD100の制御が実現されてもよい。これにより、HMD100本体の消費電力が抑制され、HMD100の稼働時間を向上することが可能である。
 本実施形態では、コントローラ18のCPUが本実施形態に係るプログラムを実行することで、機能ブロックとして、視線検出部23、第1視線補正処理部24、第2視線補正処理部25、アプリケーション制御部26が実現される。またアプリケーション制御部26として、較正データ生成部27と、アプリケーション画面生成部28とが実現される。そしてこれらの機能ブロックにより、本実施形態に係る情報処理方法が実行される。なお各機能ブロックを実現するために、IC(集積回路)等の専用のハードウェアが適宜用いられてもよい。
 視線検出部23は、内向きカメラ12から表示領域19に対するユーザの視線の検出結果(検出視線ベクトル40)を取得する。より詳しくは、内向きカメラ12の出力に基づいて、検出視線ベクトル40を算出する。
 視線検出部23では、例えば人間の眼球の3次元モデル(眼球モデル)を用いた視線検出手法により、検出視線ベクトル40が算出される。眼球モデルを用いた視線検出手法では、典型的には、眼球の光軸(瞳孔の中心と眼球の中心とを結ぶ軸)が推定される。光軸ベクトルを推定する方法は限定されず、例えば内向きカメラ12により撮影された眼球画像を用いた瞳孔角膜反射法や瞳孔法等を用いることが可能である。
 なお、ユーザの視線(眼球の視軸)は、眼球の光軸と一致するとは限らない。光軸と視軸とのずれには個人差があり、一般に4°~8°程度傾いている。第1キャリブレーションを用いることで、このような光軸と視軸とのずれをユーザごとに補正することが可能となる。
 第1視線補正処理部24は、視線検出部23により算出された検出視線ベクトル40を第1較正データ21を用いて補正する第1視線補正処理を実行する。
 第1視線補正処理は、例えばアプリケーションの動作中等に検出視線ベクトル40の算出処理にあわせて適宜実行される。第1視線補正処理により算出された第1視線ベクトル42が、静的キャリブレーション(第1キャリブレーション)による補正結果となる。
 第2視線補正処理部25は、第1視線補正処理部24により算出された第1視線ベクトル42を第2較正データ22を用いて補正する第2視線補正処理を実行する。
 第2視線補正処理は、例えばアプリケーションの動作中等に第1視線ベクトル42の算出処理にあわせて適宜実行される。第2視線補正処理により算出された第2視線ベクトルが、動的キャリブレーション(第2キャリブレーション)による補正結果となり、視線を用いた操作入力等に用いられる。
 また第2視線補正処理部25は、第2キャリブレーションに関する特定の変化の発生を判定する。また第2視線補正処理部25は、特定の変化の発生に基づいて、第2キャリブレーションによる補正に関する制御を行う。
 本実施形態では、第2視線補正処理部25は、特定の変化の発生に基づいて、第2較正データ22を用いた補正処理(第2視線補正処理)に関する制御を行う。
 具体的には、変化の内容に応じて、第2較正データ22を用いて第1視線ベクトル42を補正する際の補正量が調整される。これにより、視線検出精度の低下を防止するとともに、アプリケーションのシーン等が変化した場合であっても適正な視線検出を実現することが可能となる。
 本実施形態において、第2キャリブレーションに関する特定の変化とは、第1視線ベクトル42を補正する際に表示領域19に表示される表示オブジェクトに対するユーザの注視傾向の変化である。
 表示オブジェクトは、例えば第1視線ベクトル42を補正する第2視線補正処理を行うタイミングでユーザが視認する仮想オブジェクト30である。後述するように、アプリケーションの動作中に表示オブジェクトの種類や表示位置、あるいはユーザによる操作入力の方法等が変化すると、ユーザが表示オブジェクトを注視する際の注視位置等が変化することが考えられる。このため、補正前に生成された第2較正データ22を用いて補正処理を行った場合、補正の精度が低下する場合がある。
 このような変化が発生した場合に、第2視線補正処理部25は、最終的な視線検出の結果(第2視線ベクトル)の精度が低下しないように、第2視線補正処理での第1視線ベクトル42に対する補正量等を調整する。
 注視傾向の変化や、補正量の調整等については、後に詳しく説明する。本実施形態では、第2視線補正処理部25は、判定部及び補正制御部として機能する。
 アプリケーション制御部26は、HMD100で実行されるアプリケーションに関する制御を行う。例えば視線を用いるアプリケーションが実行される場合には、第2視線補正処理部25の出力(第2視線ベクトル)に応じた表示制御等が実行される。
 図2に示すように、アプリケーション制御部26は、較正データ生成部27と、アプリケーション画面生成部28とを有する。
 較正データ生成部27は、第1較正データ21及び第2較正データ22を生成する。すなわち較正データ生成部27は、第1データ生成処理及び第2データ生成処理を実行する。
 第1データ生成処理では、図3Aを参照して説明したように、マーカ31を含む専用のUI画面が表示される。この場合、較正データ生成部27は、各表示位置に表示されるマーカ31ごとに第1較正データ21(検出視線ベクトル40及びその補正量のデータセット)を生成し、記憶部17に記録する。
 第2データ生成処理では、図4Aを参照して説明したように、ユーザが注視している注視オブジェクト32を推定する処理が実行される。較正データ生成部27は、例えば第1視線ベクトル42の近傍に存在する仮想オブジェクト30を、注視オブジェクト32として判定する。あるいは、ユーザが操作入力部15を介して行った選択操作に基づいて注視オブジェクト32が判定されてもよい。
 較正データ生成部27は、例えばアプリケーションの動作中にユーザが注視していると判定された注視オブジェクト32に対する第2較正データ22(第1視線ベクトル42及びその補正量)を順次生成し、記憶部17に記録する。
 また本実施形態では、較正データ生成部27は、ユーザの注視傾向の変化を判定するための判定情報を生成する。判定情報としては、例えば第2較正データ22の生成処理(第2データ生成処理)を行う際の状況を表す情報が用いられる。
 例えば、第2較正データ22の基準となる注視オブジェクト32の種類や、表示領域におけるサイズ、ユーザの視点からの距離といった情報が、判定情報として生成される。また第2較正データ22を生成する際に、ユーザが用いていた操作入力の方法(ゲームコントローラ等を用いた操作入力、視線による操作入力等)が判定情報として生成されてもよい。
 また判定情報は、第2較正データ22を生成する度に、各第2較正データ22と合わせて記憶部17に記録される。このように、較正データ生成部27は、第2較正データ22と、第2較正データ22を生成する際のユーザの注視傾向に関する情報(判定情報)とを関連付けて記録する。
 従って、本実施形態では、第2データ処理を実行する度に、第1視線ベクトル42と、第1視線ベクトル42の補正量と、判定情報とを含むデータセットが記憶部17に記録されることになる。この判定情報を基準にしてユーザの注視傾向の変化の発生が判定される。
 本実施形態では、第1視線補正処理部24と、第2視線補正処理部25と、較正データ生成部27とにより、第1キャリブレーション及び第2キャリブレーションを行うキャリブレーション部が構成される。なお、第1視線補正処理及び第2視線補正処理は、1つの処理ブロックとして構成されてもよい。この場合、第2キャリブレーション(動的キャリブレーション)についての補正制御が選択的に行われる。
 アプリケーション画面生成部28は、ディスプレイ16に表示されるアプリケーション画面を生成する。アプリケーション画面生成部28は、例えばHMD100で実行されるアプリケーションの情報を取得し、コンテンツの進行状況や、ユーザの頭部(HMD100)の位置・姿勢等に応じて、仮想オブジェクト30等の画像を生成する。
 また例えば、視線による操作入力が行われる場合には、第2視線補正処理部25により算出された第2視線ベクトルに基づいて、注視点を表すカーソル等を表示する。あるいは、第2視線ベクトルによって選択された仮想オブジェクト30(表示オブジェクト)等がある場合には、当該オブジェクトが選択されたことを表す強調表示等を行う。
 この他、アプリケーション画面生成部28は、アプリケーションの動作に必要となる任意の表示処理を実行可能である。
 [注視傾向の変化]
 以下では、ユーザの注視傾向の変化について具体的に説明する。
 図5は、シーンの変化について説明するための模式図である。図5A及び図5Bは、異なるシーンでのアプリケーション画面の一例を示す模式図であり、表示されるオブジェクトの種類が異なる。ここでは、選択対象となるオブジェクトの表現により、オブジェクトの中心位置Q(表示位置)からの相対的な注視点が変化する場合について説明する。
 なお、各アプリケーション画面上のポインタ33の中心は、ユーザが実際に注視している点(以下、実注視点Rと記載する)を表しているものとする。
 図5Aには、3つのボタンオブジェクト34が表示されている。このシーンでは、ユーザが小さなボタンオブジェクト34に対する選択操作を行う時、ユーザが実際に見ている実注視点Rは、ボタンオブジェクト34の中心位置Qに近くなると想定される。
 図5Bには、3つの鳥オブジェクト35が表示されている。なお各鳥オブジェクト35の中心位置Qは、図5Aに示すボタンオブジェクト34の中心位置Qと一致しているものとする。このシーンでは、鳥オブジェクト35のオブジェクトサイズ(表示サイズ)が、ボタンオブジェクト34よりも大きく、実注視点Rは鳥オブジェクト35の中心位置Qから離れた点になる可能性がある。図5Bに示す例では、実注視点Rは鳥オブジェクト35の頭部に向けられており、中心位置Qからずれている。
 このように、オブジェクトの種類が変化した場合には、両者間でオブジェクト中心からの相対的な注視点位置に相違が生じる。すなわち、オブジェクトの誘目性(ユーザの注視傾向)が変化し、ユーザが実際に見る場所が変化する。
 このため、各々のシーンで記録した第2較正データ22による補正は、それを記録したシーン以外では適切ではなくなる可能性がある。
 もちろん、シーンの切り替わりに関わらず、第2較正データ22の生成に用いられたオブジェクト(注視オブジェクト32)と異なるオブジェクト(表示オブジェクト36)が表示されている状況では、第2較正データ22による適正な補正が難しくなり、視線検出精度の低下につながる恐れがある。
 例えば図5Aに示すアプリケーション画面において、実注視点Rが向けられたボタンオブジェクト34を注視オブジェクト32として第2較正データ22が生成されたとする。この第2較正データ22を用いて、図5Bに示すアプリケーション画面に表示された鳥オブジェクト35(表示オブジェクト36)に対するユーザの視線を補正する場合を想定する。この場合、第2較正データ22を用いた補正結果(第2視線ベクトル)は、ユーザが実際に見ている実注視点Rから離れた鳥オブジェクト35の中心位置Qの近傍を示すことになる。
 また、鳥オブジェクト35を基準に生成された第2較正データ22を用いて、ボタンオブジェクト34に対するユーザの視線を補正した場合にも、補正結果は実注視点から外れた位置を示すことになる。
 このように表示オブジェクト36の種類が変化することで、注視傾向が変化することがあり得る。また例えば表示オブジェクト36の種類が変わらないまま表示オブジェクト36の形状が変化する場合(例えばキャラクタが変形する等)には、形状の変化に伴い注視傾向が変化する可能性がある。また、表示オブジェクト36のサイズ(表示領域19における表示サイズや仮想空間内での実際のサイズ等)が変化することで、ユーザの実注視点Rが変化する場合が考えられる。また、表示オブジェクト36の色(実際の色、透明度、輝度等)が変化することで、ユーザの実注視点Rが変化する場合が考えられる。また、表示オブジェクト36の動作(キャラクタの動作等)が変化することで、実注視点Rが変化する可能性がある。
 HMD100では、このようなオブジェクトの変化に伴う注視傾向の変化が予め判定される。
 具体的には、第2視線補正処理部25により、注視傾向の変化として、第2キャリブレーションに用いられる少なくとも1つの注視オブジェクト32に対する、表示オブジェクト36の種類、形状、サイズ、色、動作の少なくとも1つに関する変化の発生が判定される。
 これにより、表示オブジェクト36が変化することで生じる注視傾向の変化を容易に検出することが可能となる。
 また表示オブジェクト36の奥行方向の距離(ユーザの視点からの距離)が変化すると、表示オブジェクト36を視認する際のユーザの効き目が変化することがある。この場合、効き目の変化に伴い、ユーザが実際に見ている実注視点Rが変化する可能性がある。
 HMD100では、このような効き目の変化に伴う注視傾向の変化が予め判定される。
 具体的には、第2視線補正処理部25により、注視傾向の変化として、第2キャリブレーションに用いられる少なくとも1つの注視オブジェクト32とユーザの視点との距離に対する、表示オブジェクト36とユーザの視点との距離の変化の発生が判定される。すなわち、各注視オブジェクト32の奥行方向の距離に対する表示オブジェクトの奥行方向の距離が判定される。これにより、効き目の変化に伴う注視傾向の変化を容易に検出することが可能である。
 図6は、操作入力の方法の変化について説明するための模式図である。図6A及び図6Bは、シューティングゲームのアプリケーション画面の一例を示す模式図であり、それぞれ操作入力の方法が異なる。ここでは、ユーザの操作入力の変化に伴い注視傾向が変化する場合について説明する。
 各アプリケーション画面には、シューティングの対象となるキャラクタオブジェクト37と、キャラクタオブジェクト37に向けられたガンオブジェクト38が表示される。
 図6Aでは、ユーザがキャラクタオブジェクト37を注視することで、視線によるエイミング操作(ポインティング操作)が行われ、図示しないゲームコントローラ(操作入力部15)のボタンにより射撃操作(選択操作)が行われる。
 シューティングゲームのエイミング手段として視線を用いる場合、ユーザが狙いたいキャラクタオブジェクト37を見るだけで、対象をポインティングすることが可能である。このため、ユーザは視線を動かすことですぐに目に入る場所、例えばキャラクタオブジェクト37の顔等の誘目性の高い場所を自然に見る傾向がある。
 図6Bでは、ユーザがキャラクタオブジェクト37を注視することで、視線によるエイミング操作(ポインティング操作)が行われ、図示しないゲームコントローラ(操作入力部15)等を用いたエイミング操作が行われ、同じゲームコントローラを用いて射撃操作が行われる。この場合ゲームコントローラとしては、例えばジョイスティックを備えたコントローラや銃型のガンコントローラ等が用いられる。
 ゲームコントローラによるエイミングを行う場合、例えばゲームコントローラの操作により示される位置を表現するポインタ33(照準)が表示される。この場合、キャラクタオブジェクト37とポインタ33とをしっかりと重ね合わせる事にユーザの注意が向けられる。このように、ポインタ33の位置の操作が必要であるため、ユーザは、ポインタ33と対象とが重なるように意識的にキャラクタオブジェクト37を見ることになる。この結果、ユーザは、キャラクタオブジェクト37の中心位置Qに近い場所を見ることが予想される。
 この他、ユーザが手に持つコントローラの種類や、ゲーム内で選択中の武器の種類等が変化した場合にも、注視傾向が変化する可能性が高い。
 このように、操作入力の方法が変化すると、ユーザが注意を向ける作業が変わるため、注視傾向が変化する可能性がある。
 HMD100では、第2視線補正処理部25により、注視傾向の変化として、表示オブジェクト36に対する操作入力の方法の変化の発生が判定される。例えば、第2較正データ22を生成した際の操作入力の方法と、補正処理を行うタイミングでの操作入力の方法とが比較される。
これにより、操作入力の方法の変化に伴う注視傾向の変化を容易に検出することが可能となる。
 [HMD100の基本動作]
 上記したように、本実施形態では、ユーザの注視傾向の変化が発生した場合に、第2視線補正処理の制御が行われる。具体的には、第2視線補正処理部25により、ユーザの注視傾向の変化の内容に応じて、第2較正データ22を用いて第1視線ベクトル42を補正する際の補正度合が調整される。
 ここで、補正度合とは、第2キャリブレーションによる補正を加える度合である。具体的には、第2較正データ22として記録された補正量を、第1視線ベクトル42の補正に適用する割合が補正度合となる。
 例えば補正度合が高い場合には、第2較正データ22として記録された補正量を用いる割合が高くなる。また補正度合が低い場合には、第2較正データ22として記録された補正量を用いる割合が低くなり、第1キャリブレーションによる補正の結果に近い視線ベクトルが算出される。
 本実施形態では、補正度合として、第2較正データ22の補正量を調整する重み係数が設定される。
 例えば、第2較正データ22として記録された補正量(ベクトル回転量)がオイラー角E(ヨー、ピッチ、ロー)であるとする。第2較正データ22の補正量の調整では、このオイラー角Eに、調整の度合を示す重み係数Cが乗算される。従って、調整後のオイラー角(調整後の補正量)をE'とすると、E'=C×Eとなる。この重み係数Cにより調整された調整後の補正量E'を用いて、第2視線補正処理が行われる。なお、補正量としてクォータニオンが用いられている場合には、オイラー角に変換することで、上記の調整が可能である。
 例えば、補正度合を50%としたい場合は、重み係数Cが0.5に設定される。また例えば補正度合を0%としたい場合、すなわち第2キャリブレーションによる補正を利用しない場合は、重み係数Cが0に設定される。
 これにより、ユーザの注視傾向が変化に合わせて、第2キャリブレーションによる補正の度合を容易に調整することが可能となる。
 図7は、HMD100の基本的な動作の一例を示すフローチャートである。図8は、第1視線補正処理の一例を示すフローチャートである。図9は、第2視線補正処理の一例を示すフローチャートである。
 図7に示す処理は、ユーザの視線を補正する基本的な処理であり、例えばアプリケーションの動作中に継続して実行されるループ処理である。
 なお、図7に示す処理が実行される際には、図2に示す視線検出部23により、内向きカメラ12の出力を用いた検出視線ベクトル40の算出処理が適宜実行されるものとする。また、記憶部17には、予め生成された第1較正データ21及び第2較正データ22のデータベースが構成されているものとする。
 以下では、図7~図9を参照して、HMD100の基本的な動作について説明する。
 まず、第1視線補正処理部24により、第1視線補正処理(静的キャリブレーションによる補正処理)が実行される(ステップ101)。すなわち、視線検出部23により算出された検出視線ベクトル40が、第1較正データ21を用いて補正される。
 図8にはステップ101の内部処理の一例が示されている。第1視線補正処理では、まず補正対象である検出視線ベクトル40に適用する第1較正データ21が選択される(ステップ201)。例えば、第1較正データ21として記録されたベクトルと、補正対象となる検出視線ベクトル40との角度間隔が算出され、角度間隔が最も小さい第1較正データ21が選択される。あるいは、角度間隔が所定の閾値以下となる第1較正データ21が選択される。これにより、検出視線ベクトル40に近いベクトルを含む第1較正データ21が少なくとも1つ選択される。
 第1較正データ21が選択されると、第1視線補正処理部24により、検出視線ベクトル40が補正される(ステップ202)。例えば、選択された第1較正データ21に含まれる補正量(補正回転量)を、検出視線ベクトル40との近さに応じて加重平均することで、検出視線ベクトル40に対する補正回転量が算出される。この補正回転量の方向及び大きさで検出視線ベクトル40が補正(偏向)される。これにより、視軸に沿った視線ベクトル(第1視線ベクトル42)が算出される。
 なお、加重平均の一般的な例としては、第1較正データ21に含まれるベクトルと補正対象となる検出視線ベクトル40との間の角度の逆数を係数とし、それらの総和が1になるように正規化して用いる方法が挙げられる。
 この他、第1視線補正処理の具体的な内容は限定されず、例えば検出視線ベクトル40を適正に補正可能な任意の方法が用いられてよい。
 図7に戻り、第1視線補正処理が完了すると、第2視線補正処理部25により、第2視線補正処理(動的キャリブレーションによる補正処理)が実行される(ステップ102)。すなわち、第1視線補正処理部24により算出された第1視線ベクトル42が、第2較正データ22を用いて補正される。
 図9にはステップ102の内部処理の一例が示されている。第2視線補正処理では、まず補正対象である第1視線ベクトル42に適用する第2較正データ22が選択される(ステップ301)。第2較正データ22を選択する方法は、例えばステップ201で説明した第1較正データ21を選択する方法と同様である。これにより、第1視線ベクトル42に近いベクトルを含む第2較正データ22が少なくとも1つ選択される。
 第2較正データ22が選択されると、第2視線補正処理部25により、選択された第2較正データ22の判定情報(ユーザの注視傾向に関する情報)に基づいて、注視傾向の変化の発生が判定される(ステップ302)。
 例えば、判定情報として記録された注視オブジェクト32の情報と、現在の表示オブジェクト36の情報とが比較される。具体的には、各オブジェクトの種類、サイズ、視点からの距離等が比較項目となる。これらの比較項目に差分があった場合には、注視傾向の変化が発生していると判定される。
 また例えば、判定情報として記録された操作入力の方法が比較される。例えば第2較正データ22が生成されたタイミングで、ユーザが視線による操作を用いていたとする。この場合、現在の操作入力の方法が、ゲームコントローラ等を用いた方法に変化している場合には、注視傾向の変化が発生していると判定される。
 このように、第2キャリブレーションでは、第2較正データ22を保存したタイミングと、それを利用して補正するタイミングの両者間において、オブジェクトに対する注視に関する特性(誘目性や操作系)の違いに関する判定情報がリアルタイムで比較される。そして判定情報が異なる場合には、注視傾向に変化が生じているものと判定される。
 注視傾向に変化が発生していると判定された場合(ステップ302のYes)、第2視線補正処理部25により、第2較正データ22の重み係数Cが設定される(ステップ303)。本実施形態では、重み係数Cを設定することは、第2キャリブレーションによる補正に関する制御の一例である。
 第2視線補正処理部25は、例えば判定情報の差分の内容に応じて、重み係数Cを設定する。例えば、判定情報として用いられる項目ごとに、あるいは差分の程度ごとに、重み係数Cに設定する値が紐づけて保存される。
 第2視線補正処理部25は、差分の内容にあった値を選択し、重み係数Cとして設定する。なお、重み係数Cの設定は、例えばステップ201で選択された全ての第2較正データ22ごとに行われる。
 典型的には、第2視線補正処理部25は、注視傾向の変化の発生が判定された場合、注視傾向の変化の発生が判定されていない場合よりも補正度合が低くなるように重み係数Cを設定する。従って、重み係数Cは、1よりも小さい値に設定される。
 これにより、第1視線ベクトル42を偏向する際に用いられる第2較正データ22の補正量が小さくなり、第2キャリブレーションによる影響を低減することが可能となる。この結果、注視傾向の変化に伴う視線検出精度の低下を十分に抑制することが可能となる。
 例えば、選択対象の表示オブジェクト36の形状の情報に差分があった場合、見る場所の傾向が変化する可能性がある。このため、例えば補正度合を一律50%とし、重み係数Cを0.5に設定する。
 また例えば、表示オブジェクト36の視点からの距離の情報に差分があった場合は、利き目が変化する可能性があり。この場合、例えば形状の変化に伴う変化よりは、注視点の変化が小さいものとして、補正度合を一律90%とし、重み係数を0.9に設定する。
 また例えば、ユーザが用いる操作入力の情報に差分があった場合、ユーザの見る場所が変化する可能性が高い。この場合、補正度合を一律0%とし、重み係数を0に設定し、第2較正データ22を利用しない。
 判定情報のうち、一つだけ差分がある場合は、それに紐づけられた第2較正データ22の処理が行われる。また1つのデータについて、複数の差分がある時は、紐づけられた処理方法のうち、最も厳しいものが採用される。例えば、上記した形状の情報および視点からの距離の情報で差分があった場合、形状の情報に紐づけられた処理が採用され、補正度合が50%に設定される。また、操作入力の情報で差分があった場合は、形状の情報および視点からの距離の情報での差分の有無に関わらず、第2較正データ22を利用しない。
 このように、第2視線補正処理では、判定情報(オブジェクトの誘目性に関わる形状情報、ユーザ視点位置からオブジェクトまでの距離、操作入力の方法等)を第2較正データ22が生成されたタイミングで記録しておき、これらに差分が生じていないかがチェックされる。差分がある場合には、第2較正データ22が予め決めたルールに基づいて処理される。
 なお、上記した重み係数Cは、あくまで一例であって、重み係数Cを設定する方法は限定されず、注視傾向の変化の内容に応じて適宜設定されてよい。
 重み係数Cが設定されると、第2視線補正処理部25により、重み係数Cを用いて選択した第2較正データ22の補正量が調整される(ステップ304)。具体的には、各第2較正データ22ごとに、対応する重み係数Cと補正量Eとが乗算され、調整後の補正量E'(=C×E)が算出される。
 補正量が調整されると、第2視線補正処理部25により、第1視線ベクトル42が補正される(ステップ305)。
 なお、判定情報(注視傾向)に変化が発生していないと判定された場合(ステップ302のNo)、重み係数Cを用いた補正量の調整は行われず、ステップ305が実行される。
 例えば、第2視線補正処理部25は、第2較正データ22の補正量(あるいは調整後の補正量)を、第1視線ベクトル42との近さに応じて加重平均することで、第1視線ベクトル42に対する補正回転量を算出する。この補正回転量の方向及び大きさで第1視線ベクトル42を補正(偏向)する。加重平均の方法は、例えば第1視線補正処理で用いられる方法と同様である。
 この他、第2視線補正処理の具体的な内容は限定されず、例えば第1視線ベクトル42を適正に補正可能な任意の方法が用いられてよい。
 このように、第2視線補正処理では、注視傾向の変化に応じて第1視線ベクトル42を補正する補正量が調整され、視線を用いた処理等に最終的に用いられる第2視線ベクトルが算出される。第2視線ベクトルが算出されると、図7に示すステップ101が再度実行され、次の第1視線補正処理が実行される。
 図10は、表示オブジェクト36の表示サイズの変化について説明するための模式図である。上記では、表示オブジェクト36の形状等が変化した場合に、補正度合(重み係数C)を一律に設定する場合について説明した(図9のステップ303参照)。表示オブジェクト36の表示サイズの変化等にあわせて、補正度合を連続的に変化させてもよい。
 図10には、相対的にサイズの異なる表示オブジェクト36a~36cが図示されている。表示オブジェクト36a~36cは、この順番でサイズが大きくなるオブジェクトである。例えばサイズが最も小さい表示オブジェクト36aについての補正度合は100%に設定され、サイズが最も大きい表示オブジェクト36cについての補正度合は25%に設定される。また中間のサイズである表示オブジェクト36bについての補正度合は、50%に設定される。
 このように、補正量を調整する場合、オブジェクトの相対的なサイズに応じて動的に補正度合を変えてもよい。
 上記では、補正度合を0%に設定して、第2較正データ22を使用しない場合について説明した。このような補正度合の調整の他に、現在の状況に合わない第2較正データ22を削除する処理が実行されてもよい。
 例えば、ユーザがゲームコントローラを使用している状況では、ゲームコントローラを使用していなかった期間に生成された第2較正データ22を用いた補正では、精度が大幅に低下する可能性があり得る。このような第2較正データ22を削除して、ゲームコントローラを使用している時に生成されたデータを新たに用いるといったことが可能である。
 このように、注視傾向の変化の内容に応じて、第2較正データ22が削除されてもよい。これにより、現在の状況にあった第2較正データ22を蓄積することが可能である。第2較正データ22削除する処理は、第2キャリブレーションによる補正を制御する処理の一例である。
 なお、過去に生成された第2較正データをクリアする場合、小さいオブジェクトを見たときに記録したキャリブデータは信頼性が高いと考えられるため削除せずに残しておいてもよい。視線検出精度を高いレベルで維持することが可能である。
 また、シーンの変化や、操作入力の方法が変化した場合、補正度合が高く設定される頻度が増えることが想定される。このような場合には、視線精度が劣化している可能性をインジケーターなどで表現して、ユーザに通知してもよい。
 またシーンの切り替えを行うアプリケーション等が実行される場合に、シーン間における判定情報の差分内容(注視傾向の変化の内容)が予め分かっている場合は、シーンの切り替わりタイミングで第2較正データ22の処理方法(補正度合の設定等)が変更されてもよい。あるいは、シーン毎に対応する第2較正データ22を用意しておき、シーンの切り替わりに合わせて、用いるデータを切り替えてもよい。
 また、複数のユーザごとに第2較正データ22のデータベースを構成し、各ユーザに合わせて対応するデータベースを用いた処理が行われてもよい。
 以上、本実施形態に係るHMD100では、第1キャリブレーションと第2キャリブレーションとが実行される。第1キャリブレーションでは、表示パラメータが固定されたマーカ31への視線をもとに、内向きカメラ12を用いたユーザの視線の検出結果(検出視線ベクトル40)が補正される。また、第2キャリブレーションでは、表示パラメータが変動する表示オブジェクトへの視線をもとに、第1キャリブレーションの結果(第1視線ベクトル42)が補正される。この第2キャリブレーションについて、特定の変化の発生が判定され、その結果に応じて、第2キャリブレーションによる補正に関する制御が行われる。これにより、視線検出精度の低下を防止することが可能となる。
 <第2の実施形態>
 本技術に係る第2の実施形態のHMDについて説明する。これ以降の説明では、上記の実施形態で説明したHMD100における構成及び作用と同様な部分については、その説明を省略又は簡略化する。
 図11は、第2の実施形態に係るHMD100の構成例を示すブロック図である。
 HMD200は、静的に視線を補正する第1キャリブレーション(静的キャリブレーション)と、視線を用いたアプリケーションでのオブジェクト操作時などに動的に視線を補正する第2キャリブレーション(静的キャリブレーション)とが実行可能なデバイスである。
 またHMD200では、第2キャリブレーションに関する特定の変化の発生に基づいて、第1キャリブレーションによる補正に関する制御が行われる。
 本実施形態では、第1キャリブレーションによる補正に関する制御として、特定の変化の発生に基づいて、第1較正データ21の生成処理の再実行に関する制御が行われる。具体的には、補正量が閾値を超えた場合に、図3等を参照して説明した第1データ生成処理を再度実行する必要がある旨を通知する通知処理等が実行される。
 HMD200では、アプリケーション制御部26に異常判定部50が設けられる点で、図1及び図2を参照して説明したHMD100と構成が異なる。以下では、HMD200の各部について、HMD100と同様の構成については同じ符号を用いて説明する。
 なお、HMD200では、上記した第2キャリブレーションによる補正を制御する処理(補正度合を設定する処理等)は行われないものとする。もちろん、補正度合を設定する処理等が行われる場合であっても、以下に説明する内容は適用可能である。
 異常判定部50は、第2キャリブレーションに関する特定の変化の発生を判定する。
 本実施形態では、第2キャリブレーションに関する特定の変化とは、第2キャリブレーションによる補正(第2視線補正処理)に用いられる第2較正データ22の補正量の変化である。
 図4Aを参照して説明したように、第2較正データ22の補正量は、第1キャリブレーションの結果である第1視線ベクトル42を用いて算出される。従って、第1キャリブレーションによる補正(第1視線補正処理)の精度が低下した場合、第2較正データ22の補正量が増大する可能性がある。異常判定部50では、このような第2較正データ22の補正量の変化が判定される。これにより、例えば第1キャリブレーションが適正に行われているか否か、すなわち第1キャリブレーションに関する異常を判定することが可能となる。
 このように、HMD200では、第2キャリブレーションに用いる第2較正データ22を利用して、第1キャリブレーションの異常が判定される。
 また、異常判定部50は、第2較正データ22の補正量の変化に基づいて、第1較正データ21の生成処理(第1データ生成処理)の再実行を要求するフラグを生成する。すなわち、第2較正データ22の補正量が変化したと判定された場合には、第1データ生成処理の再実行を要求するフラグが発生する。このフラグは、例えば第1キャリブレーションに関する異常を検知した異常検知フラグであると言える。
 この異常検知フラグを使って、第1データ生成処理の再実行を促すための各種の処理が実行される。
 具体的には、異常検知フラグに基づいて、第1較正データ21を生成する処理の再実行が必要である旨を通知する通知処理が実行される。例えば、第2較正データ22の補正量の変化が発生したと判定され、異常検知フラグが生成されると、第1データ生成処理の再実行を要求する通知画像等が生成される。また通知処理は、再実行フラグが生成された後の任意のタイミングで実行することが可能である。
 通知処理の内容や、通知処理を行うタイミング等については、後に詳しく説明する。
 本実施形態では、異常判定部50により、判定部及び補正制御部が実現される。
 また、通知処理を受けたユーザが第1データ生成処理の再実行を行う旨の操作入力をした場合、較正データ生成部27により第1データ生成処理が実行され、新たな第1較正データ21が生成される。
 このようにHMD200では、通知処理に対するユーザの応答入力に応じて、第1較正データ21を生成する処理が実行される。従って、第1データ生成処理は、ユーザが選択してはじめて実行される。これによりユーザの作業等を乱すことなく、第1データ生成処理を再実行することが可能である。
 図12は、HMD200の基本的な動作の一例を示すフローチャートである。図12に示す処理は、アプリケーションの動作中等に継続して実行されるループ処理である。以下では、図12を参照して、HMD200の基本的な動作について説明する。
 まず、異常検知フラグが立っているか否かが判定される(ステップ401)。異常検知フラグの生成は、後述するステップ408で実行される。異常検知フラグが立っていると判定された場合(ステップ401のYes)、異常が発生していることを通知する通知処理が実行される。通知処理としては、例えば第1キャリブレーションに異常がある旨を伝えるアイコンやインジケーター等が表示領域19の端に表示される。
 通知処理が完了した場合、また異常検知フラグが立っていないと判定された場合(ステップ401のNo)には、視線利用を行うアプリケーションが実行される(ステップ403)。例えば、初回のループ処理では、アプリケーションが起動され、それ以降のループ処理では、すでに起動しているアプリケーションの動作が継続される。なお、異常検知フラグが立っている場合には、アプリケーション画面上に異常を通知する文字データやアイコン等が表示される。
 アプリケーションが実行されると、第1較正データ21に基づいて検出視線ベクトル40を補正する第1視線補正処理(第1キャリブレーション)が実行され、第1視線ベクトル42が算出される(ステップ404)。この第1視線ベクトル42に基づいて、第2キャリブレーションが実行される(ステップ405)。
 第2キャリブレーションでは、第2視線補正処理及び第2データ生成処理の少なくとも一方が実行される。
 例えば、第2視線補正処理部25により第2視線補正処理が実行され、予め記憶部17に記録された第2較正データ22に基づいて、第1視線ベクトル42を補正して、第2視線ベクトルが算出される。
 また例えば、アプリケーション画面において、ユーザが注視している注視オブジェクト32等が判定されている場合には、較正データ生成部27により、第2データ生成処理が実行され、注視オブジェクト32と、第1視線ベクトル42とに基づいて、第2較正データ22が新たに生成される。
 第2キャリブレーションが完了すると、異常判定部50により、記憶部17に記憶された第2較正データ22の平均補正量が算出される(ステップ406)。すなわち、動的に蓄積された第2較正データ22に対して補正量の平均値が算出される。例えば各第2較正データ22の補正量の絶対値(補正回転量の大きさ)の総和を第2較正データ22の数で割った値が、平均補正量として算出される。
 異常判定部50により、算出された平均補正量が、所定の閾値を超えたか否かが判定される(ステップ407)。
 例えば平均補正量が所定の閾値を超えたと判定された場合(ステップ407のYes)、第2較正データ22の補正量の変化が発生したとして、異常検知フラグが生成される(ステップ408)。
 このように、本実施形態では、第2較正データ22の補正量の平均値(平均補正量)が閾値を超えた場合、補正量の変化が発生したと判定され、異常検知フラグが生成される。これにより、例えばユーザの視野の全体にわたって第2較正データ22の補正量が増大しているといった状態を検出することが可能となり、装置のかけずれ等による異常を検知することが可能となる。
 なお、異常検知フラグを生成する方法は限定されない。例えば閾値を超えた補正量が所定の数以上になった場合に、異常検知フラグを立ててもよい。すなわち、第2較正データ22の補正量の少なくとも1つが閾値を超えた場合に、補正量の変化が発生したと判定されてもよい。これにより、例えば突発的なかけずれ等による異常を検知することが可能となる。
 このようにHMD200では、登録された第2較正データ22の補正量が大きすぎる場合等に、異常検知フラグを生成することで、静的な第1キャリブレーションのやり直しを促す通知等を行うことが可能となる。
 平均補正量や各補正量を判定するための閾値としては、例えば過去に記録された第2較正データ22の補正量の平均値等が用いられる。あるいは、視線検出精度等に応じた閾値が適宜設定されてもよい。
 また平均補正量が、固定値(例えば、装置の想定誤差として2°等)以上だった時、あるいはその2倍など極端に悪い場合は、装置の故障の可能性があることや、視線検出が利用できない可能性があることを通知してもよい。
 平均補正量が閾値を超えていないと判定された場合(ステップ407のNo)、又は以上検知フラグの生成が完了した場合、アプリケーションを終了するか否かが判定される(ステップ409)。
 例えば、ユーザがアプリケーションの終了操作等を行った場合には、アプリケーションの終了が判定され(ステップ409のYes)、図12に示すループ処理が終了する。
 また、アプリケーションを終了しないと判定された場合(ステップ409のNo)、ステップ401に戻り、次のループ処理が開始される。
 図13は、通知画面の一例を示す模式図である。図13A及び図13Bに示す画面では、第1キャリブレーションのやり直し(第1データ生成処理の再実行)を通知するメッセージが表示されている。これらのメッセージを表示する処理は、通知処理の一例である。
 図13Aでは、表示領域19の中央にメッセージを表示するウィンドウ39が表示される。またウィンドウ39には、専用の画面を用いたキャリブレーション(第1データ生成処理)を実行するか否かの選択ボタンが表示される。
 例えば、現在ユーザが行っているタスクの終了時に、図13Aに示すようなウィンドウ39を表示して、キャリブレーションを実行するか否かをユーザに確認してもよい。このように、異常判定部50は、ユーザが行うタスクが終了したタイミングで通知処理を行う。これにより、ユーザの作業を邪魔することなく適切なタイミングでキャリブレーションを促すことが可能である。
 また例えば、ユーザが現在行っているタスクを中断して、キャリブレーションを促してもよい。この場合、ユーザがタスクを行っている最中に、図13Aに示すようなウィンドウ39が表示される。
 図13Bでは、表示領域19の上側の端にメッセージ45が表示される。このメッセージ45は、異常検知フラグが立っている場合に表示される。例えばアプリケーション画面でのユーザのタスクが実行されている最中であっても、異常検知フラグが立っている間は静的なキャリブレーションが必要なことを通知することが可能となる。
 このように、異常判定部50は、ユーザが行うタスクが実行されているタイミングで通知処理を行ってもよい。これにより、第1キャリブレーヨンの異常を速やかに通知するといったことが可能である。
 また、次回ユーザが視線を用いたアプリケーションを実行する直前に、図13Aに示すようなウィンドウ39を表示して静的なキャリブレーションが必要な旨を表示してもよい。このように、異常判定部50は、視線を利用したアプリケーションの実行前のタイミングで、通知処理を行う。これにより、アプリケーションを利用する初期の段階から、第1キャリブレーションを適正に行うといったことが可能である。
 上記では、主にユーザの視線方向として単一の視線ベクトル(図3Aに示す検出視線ベクトル等)が算出される場合について説明した。
 例えば片目ずつの第2較正データ22を保存しておき、片側のズレが極端に大きくなった場合に、第1キャリブレーションの異常を検知するといった処理も可能である。
 具体的には、第1視線補正処理部24及び第2視線補正処理部25が、ユーザの右目及び左目ごとに第1キャリブレーション及び第2キャリブレーションを実行可能に構成される。また異常判定部50では、ユーザの右目及び左目ごとに第2較正データ22の補正量の変化が判定される。そして、ユーザの右目及び左目の少なくとも一方について第2較正データ22の補正量の変化が判定された場合に、異常検知フラグが生成される。
 この場合、異常検知フラグには、どちらの目で異常が発生したのかを示す情報が付加される。これにより、例えば異常がある方の目の補正を無効化し、全体の視線検出精度が低下することを回避可能である。
 上記では、静的な第1キャリブレーションに用いる第1較正データ21の再生成を要求する異常検知フラグを生成する処理について説明した。例えば、異常検知フラグの生成後に、その後補正量が閾値を下回った場合には、異常検知フラグを落としてもよい。
 すなわち、異常検知フラグが生成された後に、第2較正データ22の補正量の変化が発生していないと判定された場合、異常検知フラグが破棄される。
 これにより、一時的なかけずれ等が修正された場合には、図13に示すメッセージの通知処理が行われなくなり、不必要なキャリブレーション作業を回避することが可能である。
 以上、本実施形態に係るHMD200では、第1キャリブレーションと第2キャリブレーションとが実行される。このうち、第2キャリブレーションについて、特定の変化の発生が判定され、その結果に応じて、第1キャリブレーションによる補正に関する制御が行われる。これにより、第1キャリブレーションによる補正を制御可能となり、視線検出精度の低下を防止することが可能となる。
 例えば、視線検出可能なアイウェアやVRデバイスといったユーザが頭部に装着して用いるタイプのデバイスでは、しばしばかけずれが発生する。このようにデバイスの装着の仕方が大きく変わった場合などは、視野全体で視線の誤差が増える。この場合、第1キャリブレーションによる補正の精度が低下し、第2キャリブレーションをユーザの視野全面に対して行う必要がある。
 また、眼球の経時変化や衝撃による機器の変形などによりモデルとのずれが発生し、第1キャリブレーションによる視線検出の精度が低下する場合があった。
 このように眼球形状の変化やデバイスの変形が生じた場合には、静的な第1キャリブレーションに影響があると考えられる。一方で、眼球形状の変化やデバイスの変形を検知することは難しく、また視線方向が意図したものと異なるかどうかを判定することも困難である場合が多かった。また動的な第2キャリブレーションを視野全面に対して行うと、誤差が少なくなるまで時間がかかる。本来なら静的キャリブをやり直すべきだが、ユーザの意図で再実行する必要があった。
 HMD200では、第2較正データ22の補正量の変化を判定することで、視線検出における異常状態(経時変化などによって眼球形状が変化した場合や機器が変形した場合)の発生を知ることが可能である。また、静的な第1キャリブレーションをやり直すことで、動的な第2キャリブレーションのポイント数が少なくても視線検出精度を向上することが可能である。また、第2較正データ22の変化を判定することで、例えばHMD200を装着したユーザ(視線検出の対象者)が変わったことを推定することが可能である。これにより、ユーザが切り替わるごとに、自動的にキャリブレーションを促すといった処理が可能である。
 <その他の実施形態>
 本技術は、以上説明した実施形態に限定されず、他の種々の実施形態を実現することができる。
 上記の実施形態では、主に没入型のHMDついて説明した。本技術は、ユーザの視線ベクトルを検出可能な任意の装置に適用することが可能である。
 例えば、光学透過型のHMDが用いられてもよい。この場合、HMDに搭載された内向きカメラ等により、ユーザの視線ベクトルが算出される。また外部カメラ等を用いて、実空間の情報が取得される。光学透過型のHMDは、実空間の三次元座標、すなわちグローバル座標系を基準として、あたかも仮想オブジェクトが実空間に存在するかのように重畳することが可能である。光学透過型のHMDを用いることで、ユーザは、例えばAR空間を体験することが可能である。
 また例えば、PC(Personal Computer)のディスプレイ、医療現場等で用いられる据え置き型のモニター、及びTV等の表示装置を用いて、視線を用いた入力操作が実行されてもよい。この場合、例えばユーザの顔(眼球)を撮影するカメラ等を用いて、PCのディスプレイ等を視聴するユーザの視線ベクトルが算出される。
 また例えば、撮影装置等に搭載された片目の視線検出機能付きのEVF(Electronic View Finder)や、ディスプレイを持たないメガネ型の視線検出デバイス等が用いられる場合にも、本技術は適用可能である。
 上記ではユーザにより操作されるHMD等のコンピュータにより、本技術に係る情報処理方法が実行される場合を説明した。しかしながらユーザが操作するコンピュータとネットワーク等を介して通信可能な他のコンピュータとにより、本技術に係る情報処理方法、及びプログラムが実行されてもよい。またユーザが操作するコンピュータと、他のコンピュータとが連動して、本技術に係るコンテンツ提供システムが構築されてもよい。
 すなわち本技術に係る情報処理方法、及びプログラムは、単体のコンピュータにより構成されたコンピュータシステムのみならず、複数のコンピュータが連動して動作するコンピュータシステムにおいても実行可能である。なお本開示において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれもシステムである。
 コンピュータシステムによる本技術に係る情報処理方法、及びプログラムの実行は、例えばユーザの視線の検出結果の取得、第1キャリブレーション及び第2キャリブレーションの実行、第2キャリブレーションに関する特定の変化の判定、及び各キャリブレーションによる補正に関する制御等が、単体のコンピュータにより実行される場合、及び各処理が異なるコンピュータにより実行される場合の両方を含む。また所定のコンピュータによる各処理の実行は、当該処理の一部または全部を他のコンピュータに実行させその結果を取得することを含む。
 すなわち本技術に係る情報処理方法及びプログラムは、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成にも適用することが可能である。
 以上説明した本技術に係る特徴部分のうち、少なくとも2つの特徴部分を組み合わせることも可能である。すなわち各実施形態で説明した種々の特徴部分は、各実施形態の区別なく、任意に組み合わされてもよい。また上記で記載した種々の効果は、あくまで例示であって限定されるものではなく、また他の効果が発揮されてもよい。
 本開示において、「同じ」「等しい」「直交」等は、「実質的に同じ」「実質的に等しい」「実質的に直交」等を含む概念とする。例えば「完全に同じ」「完全に等しい」「完全に直交」等を基準とした所定の範囲(例えば±10%の範囲)に含まれる状態も含まれる。
 なお、本技術は以下のような構成も採ることができる。
(1)センサから表示領域に対するユーザの視線の検出結果を取得する視線検出部と、
 前記表示領域における表示パラメータが予め固定された少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて前記ユーザの視線の検出結果を補正する第1キャリブレーション、及び、前記表示領域における表示パラメータが動的に変化する少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて前記第1キャリブレーションの結果を補正する第2キャリブレーションを行うキャリブレーション部と、
 前記第2キャリブレーションに関する特定の変化の発生を判定する判定部と、
 前記特定の変化の発生に基づいて、前記第1キャリブレーション及び前記第2キャリブレーションの少なくとも一方による補正に関する制御を行う補正制御部と
 を具備する視線検出装置。
(2)(1)に記載の視線検出装置であって、
 前記第1キャリブレーションは、前記少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて第1較正データを生成する処理と、前記第1較正データを用いて前記ユーザの視線の検出結果を補正する処理とを含み、
 前記第2キャリブレーションは、前記少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて第2較正データを生成する処理と、前記第2較正データを用いて前記第1キャリブレーションの結果を補正する処理とを含み、
 前記補正制御部は、前記特定の変化の発生に基づいて、前記第1較正データの生成処理の再実行に関する制御、又は前記第2較正データを用いた補正処理に関する制御の少なくとも一方を行う
 視線検出装置。
(3)(2)に記載の視線検出装置であって、
 前記特定の変化は、前記表示領域に表示される表示オブジェクトに対する前記ユーザの注視傾向の変化を含み、
 前記補正制御部は、前記注視傾向の変化の内容に応じて、前記第2較正データを用いて前記第1キャリブレーションの結果を補正する際の補正度合を調整する
 視線検出装置。
(4)(3)に記載の視線検出装置であって、
 前記判定部は、前記注視傾向の変化として、前記第2キャリブレーションによる補正に用いられる前記少なくとも1つの第2オブジェクトに対する、前記表示オブジェクトの種類、形状、サイズ、色、動作の少なくとも1つに関する変化の発生を判定する
 視線検出装置。
(5)(3)又は(4)に記載の視線検出装置であって、
 前記判定部は、前記注視傾向の変化として、前記第2キャリブレーションによる補正に用いられる前記少なくとも1つの第2オブジェクトと前記ユーザの視点との距離に対する、前記表示オブジェクトと前記ユーザの視点との距離の変化の発生を判定する
 視線検出装置。
(6)(3)から(5)のうちいずれか1つに記載の視線検出装置であって、
 前記判定部は、前記注視傾向の変化として、前記表示オブジェクトに対する操作入力の方法の変化の発生を判定する
 視線検出装置。
(7)(3)から(6)のうちいずれか1つに記載の視線検出装置であって、
 前記第2較正データは、前記少なくとも1つの第2オブジェクトの各々に対する前記第1キャリブレーションの結果であるベクトルと、当該ベクトルについての補正量とが関連付けて記録されたデータであり、
 前記補正制御部は、前記補正度合として、前記第2較正データの補正量を調整する重み係数を設定する
 視線検出装置。
(8)(7)に記載の視線検出装置であって、
 前記補正制御部は、前記注視傾向の変化の発生が判定された場合、前記注視傾向の変化の発生が判定されていない場合よりも前記補正度合が低くなるように前記重み係数を設定する
 視線検出装置。
(9)(3)から(8)のうちいずれか1つに記載の視線検出装置であって、
 前記キャリブレーション部は、前記第2較正データと、前記第2較正データを生成する際の前記ユーザの注視傾向に関する情報とを関連付けて記録し、
 前記判定部は、前記ユーザの注視傾向に関する情報に基づいて、前記注視傾向の変化の発生を判定する
 視線検出装置。
(10)(3)から(9)のうちいずれか1つに記載の視線検出装置であって、
 前記補正制御部は、前記注視傾向の変化の内容に応じて、前記第2較正データを削除する
 視線検出装置。
(11)(2)から(10)のうちいずれか1つに記載の視線検出装置であって、
 前記第2較正データは、前記少なくとも1つの第2オブジェクトの各々に対する前記第1キャリブレーションの結果であるベクトルと、当該ベクトルについての補正量とが関連付けて記録されたデータであり、
 前記特定の変化は、前記第2較正データの補正量の変化を含み、
 前記補正制御部は、前記第2較正データの補正量の変化に基づいて、前記第1較正データの生成処理の再実行を要求するフラグを生成する
 視線検出装置。
(12)(11)に記載の視線検出装置であって、
 前記補正制御部は、前記フラグに基づいて、前記第1較正データを生成する処理の再実行が必要である旨を通知する通知処理を行う
 視線検出装置。
(13)(12)に記載の視線検出装置であって、
 前記補正制御部は、前記ユーザが行うタスクが終了したタイミング、前記タスクが実行されているタイミング、又は視線を利用したアプリケーションの実行前のタイミングの少なくとも1つのタイミングで、前記通知処理を行う
 視線検出装置。
(14)(12)又は(13)に記載の視線検出装置であって、
 前記キャリブレーション部は、前記通知処理に対する前記ユーザの応答入力に応じて、前記第1較正データを生成する処理を実行する
 視線検出装置。
(15)(11)から(14)のうちいずれか1つに記載の視線検出装置であって、
 前記判定部は、前記第2較正データの補正量の平均値が閾値を超えた場合、又は前記第2較正データの補正量の少なくとも1つが閾値を超えた場合、前記補正量の変化が発生したと判定する
 視線検出装置。
(16)(11)から(15)のうちいずれか1つに記載の視線検出装置であって、
 前記キャリブレーション部は、前記ユーザの右目及び左目ごとに前記第1キャリブレーション及び前記第2キャリブレーションを実行可能であり、
 前記判定部は、前記ユーザの右目及び左目ごとに前記第2較正データの補正量の変化を判定し、
 前記補正制御部は、前記ユーザの右目及び左目の少なくとも一方について前記第2較正データの補正量の変化が判定された場合に、前記フラグを生成する
 視線検出装置。
(17)(11)から(16)のうちいずれか1つに記載の視線検出装置であって、
 前記補正制御部は、前記フラグが生成された後に、前記第2較正データの補正量の変化が発生していないと判定された場合、前記フラグを破棄する
 視線検出装置。
(18)センサから表示領域に対するユーザの視線の検出結果を取得し、
 前記表示領域における表示パラメータが予め固定された少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて前記ユーザの視線の検出結果を補正する第1キャリブレーション、及び、前記表示領域における表示パラメータが動的に変化する少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて前記第1キャリブレーションの結果を補正する第2キャリブレーションを行い、
 前記第2キャリブレーションに関する特定の変化の発生を判定し、
 前記特定の変化の発生に基づいて、前記第1キャリブレーション及び前記第2キャリブレーションの少なくとも一方による補正に関する制御を行う
 ことをコンピュータシステムが実行する情報処理方法。
(19)センサから表示領域に対するユーザの視線の検出結果を取得するステップと、
 前記表示領域における表示パラメータが予め固定された少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて前記ユーザの視線の検出結果を補正する第1キャリブレーション、及び、前記表示領域における表示パラメータが動的に変化する少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて前記第1キャリブレーションの結果を補正する第2キャリブレーションを行うステップと、
 前記第2キャリブレーションに関する特定の変化の発生を判定するステップと、
 前記特定の変化の発生に基づいて、前記第1キャリブレーション及び前記第2キャリブレーションの少なくとも一方による補正に関する制御を行うステップと
 を実行させるプログラムが記録されているコンピュータが読み取り可能な記録媒体。
 17…記憶部
 18…コントローラ
 19…表示領域
 20…制御プログラム
 21…第1較正データ
 22…第2較正データ
 23…視線検出部
 24…第1視線補正処理部
 25…第2視線補正処理部
 27…較正データ生成部
 30…仮想オブジェクト
 31…マーカ
 32…注視オブジェクト
 36…表示オブジェクト
 40…検出視線ベクトル
 42…第1視線ベクトル
 50…異常判定部
 100、200…HMD

Claims (19)

  1.  センサから表示領域に対するユーザの視線の検出結果を取得する視線検出部と、
     前記表示領域における表示パラメータが予め固定された少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて前記ユーザの視線の検出結果を補正する第1キャリブレーション、及び、前記表示領域における表示パラメータが動的に変化する少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて前記第1キャリブレーションの結果を補正する第2キャリブレーションを行うキャリブレーション部と、
     前記第2キャリブレーションに関する特定の変化の発生を判定する判定部と、
     前記特定の変化の発生に基づいて、前記第1キャリブレーション及び前記第2キャリブレーションの少なくとも一方による補正に関する制御を行う補正制御部と
     を具備する視線検出装置。
  2.  請求項1に記載の視線検出装置であって、
     前記第1キャリブレーションは、前記少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて第1較正データを生成する処理と、前記第1較正データを用いて前記ユーザの視線の検出結果を補正する処理とを含み、
     前記第2キャリブレーションは、前記少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて第2較正データを生成する処理と、前記第2較正データを用いて前記第1キャリブレーションの結果を補正する処理とを含み、
     前記補正制御部は、前記特定の変化の発生に基づいて、前記第1較正データの生成処理の再実行に関する制御、又は前記第2較正データを用いた補正処理に関する制御の少なくとも一方を行う
     視線検出装置。
  3.  請求項2に記載の視線検出装置であって、
     前記特定の変化は、前記表示領域に表示される表示オブジェクトに対する前記ユーザの注視傾向の変化を含み、
     前記補正制御部は、前記注視傾向の変化の内容に応じて、前記第2較正データを用いて前記第1キャリブレーションの結果を補正する際の補正度合を調整する
     視線検出装置。
  4.  請求項3に記載の視線検出装置であって、
     前記判定部は、前記注視傾向の変化として、前記第2キャリブレーションによる補正に用いられる前記少なくとも1つの第2オブジェクトに対する、前記表示オブジェクトの種類、形状、サイズ、色、動作の少なくとも1つに関する変化の発生を判定する
     視線検出装置。
  5.  請求項3に記載の視線検出装置であって、
     前記判定部は、前記注視傾向の変化として、前記第2キャリブレーションによる補正に用いられる前記少なくとも1つの第2オブジェクトと前記ユーザの視点との距離に対する、前記表示オブジェクトと前記ユーザの視点との距離の変化の発生を判定する
     視線検出装置。
  6.  請求項3に記載の視線検出装置であって、
     前記判定部は、前記注視傾向の変化として、前記表示オブジェクトに対する操作入力の方法の変化の発生を判定する
     視線検出装置。
  7.  請求項3に記載の視線検出装置であって、
     前記第2較正データは、前記少なくとも1つの第2オブジェクトの各々に対する前記第1キャリブレーションの結果であるベクトルと、当該ベクトルについての補正量とが関連付けて記録されたデータであり、
     前記補正制御部は、前記補正度合として、前記第2較正データの補正量を調整する重み係数を設定する
     視線検出装置。
  8.  請求項7に記載の視線検出装置であって、
     前記補正制御部は、前記注視傾向の変化の発生が判定された場合、前記注視傾向の変化の発生が判定されていない場合よりも前記補正度合が低くなるように前記重み係数を設定する
     視線検出装置。
  9.  請求項3に記載の視線検出装置であって、
     前記キャリブレーション部は、前記第2較正データと、前記第2較正データを生成する際の前記ユーザの注視傾向に関する情報とを関連付けて記録し、
     前記判定部は、前記ユーザの注視傾向に関する情報に基づいて、前記注視傾向の変化の発生を判定する
     視線検出装置。
  10.  請求項3に記載の視線検出装置であって、
     前記補正制御部は、前記注視傾向の変化の内容に応じて、前記第2較正データを削除する
     視線検出装置。
  11.  請求項2に記載の視線検出装置であって、
     前記第2較正データは、前記少なくとも1つの第2オブジェクトの各々に対する前記第1キャリブレーションの結果であるベクトルと、当該ベクトルについての補正量とが関連付けて記録されたデータであり、
     前記特定の変化は、前記第2較正データの補正量の変化を含み、
     前記補正制御部は、前記第2較正データの補正量の変化に基づいて、前記第1較正データの生成処理の再実行を要求するフラグを生成する
     視線検出装置。
  12.  請求項11に記載の視線検出装置であって、
     前記補正制御部は、前記フラグに基づいて、前記第1較正データを生成する処理の再実行が必要である旨を通知する通知処理を行う
     視線検出装置。
  13.  請求項12に記載の視線検出装置であって、
     前記補正制御部は、前記ユーザが行うタスクが終了したタイミング、前記タスクが実行されているタイミング、又は視線を利用したアプリケーションの実行前のタイミングの少なくとも1つのタイミングで、前記通知処理を行う
     視線検出装置。
  14.  請求項12に記載の視線検出装置であって、
     前記キャリブレーション部は、前記通知処理に対する前記ユーザの応答入力に応じて、前記第1較正データを生成する処理を実行する
     視線検出装置。
  15.  請求項11に記載の視線検出装置であって、
     前記判定部は、前記第2較正データの補正量の平均値が閾値を超えた場合、又は前記第2較正データの補正量の少なくとも1つが閾値を超えた場合、前記補正量の変化が発生したと判定する
     視線検出装置。
  16.  請求項11に記載の視線検出装置であって、
     前記キャリブレーション部は、前記ユーザの右目及び左目ごとに前記第1キャリブレーション及び前記第2キャリブレーションを実行可能であり、
     前記判定部は、前記ユーザの右目及び左目ごとに前記第2較正データの補正量の変化を判定し、
     前記補正制御部は、前記ユーザの右目及び左目の少なくとも一方について前記第2較正データの補正量の変化が判定された場合に、前記フラグを生成する
     視線検出装置。
  17.  請求項11に記載の視線検出装置であって、
     前記補正制御部は、前記フラグが生成された後に、前記第2較正データの補正量の変化が発生していないと判定された場合、前記フラグを破棄する
     視線検出装置。
  18.  センサから表示領域に対するユーザの視線の検出結果を取得し、
     前記表示領域における表示パラメータが予め固定された少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて前記ユーザの視線の検出結果を補正する第1キャリブレーション、及び、前記表示領域における表示パラメータが動的に変化する少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて前記第1キャリブレーションの結果を補正する第2キャリブレーションを行い、
     前記第2キャリブレーションに関する特定の変化の発生を判定し、
     前記特定の変化の発生に基づいて、前記第1キャリブレーション及び前記第2キャリブレーションの少なくとも一方による補正に関する制御を行う
     ことをコンピュータシステムが実行する情報処理方法。
  19.  センサから表示領域に対するユーザの視線の検出結果を取得するステップと、
     前記表示領域における表示パラメータが予め固定された少なくとも1つの第1オブジェクトに対する前記ユーザの視線に基づいて前記ユーザの視線の検出結果を補正する第1キャリブレーション、及び、前記表示領域における表示パラメータが動的に変化する少なくとも1つの第2オブジェクトに対する前記ユーザの視線に基づいて前記第1キャリブレーションの結果を補正する第2キャリブレーションを行うステップと、
     前記第2キャリブレーションに関する特定の変化の発生を判定するステップと、
     前記特定の変化の発生に基づいて、前記第1キャリブレーション及び前記第2キャリブレーションの少なくとも一方による補正に関する制御を行うステップと
     を実行させるプログラムが記録されているコンピュータが読み取り可能な記録媒体。
PCT/JP2021/002733 2020-01-31 2021-01-27 視線検出装置のキャリブレーション WO2021153577A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-015246 2020-01-31
JP2020015246 2020-01-31

Publications (1)

Publication Number Publication Date
WO2021153577A1 true WO2021153577A1 (ja) 2021-08-05

Family

ID=77079353

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/002733 WO2021153577A1 (ja) 2020-01-31 2021-01-27 視線検出装置のキャリブレーション

Country Status (1)

Country Link
WO (1) WO2021153577A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023032173A1 (ja) * 2021-09-03 2023-03-09 日本電気株式会社 仮想空間提供装置、仮想空間提供方法、及びコンピュータ読み取り可能な記憶媒体
WO2023079927A1 (ja) * 2021-11-05 2023-05-11 学校法人帝京大学 手術用デジタル顕微鏡システムおよび手術用デジタル顕微鏡システムの表示制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010723A (ja) * 1998-06-18 2000-01-14 Mr System Kenkyusho:Kk 視線センサのキャリブレーション方法、視線入力装置およびプログラム記憶媒体
JP2000231447A (ja) * 1999-02-12 2000-08-22 Nippon Telegr & Teleph Corp <Ntt> 視線を利用したコンピュータ操作装置および操作方法ならびに操作方法プログラムを記録した記録媒体
JP2016523420A (ja) * 2013-06-27 2016-08-08 アイサイト モバイル テクノロジーズ リミテッド デジタルデバイスとの対話のための直接的なポインティング検出のためのシステムおよび方法
WO2016139850A1 (ja) * 2015-03-05 2016-09-09 ソニー株式会社 情報処理装置、制御方法、およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010723A (ja) * 1998-06-18 2000-01-14 Mr System Kenkyusho:Kk 視線センサのキャリブレーション方法、視線入力装置およびプログラム記憶媒体
JP2000231447A (ja) * 1999-02-12 2000-08-22 Nippon Telegr & Teleph Corp <Ntt> 視線を利用したコンピュータ操作装置および操作方法ならびに操作方法プログラムを記録した記録媒体
JP2016523420A (ja) * 2013-06-27 2016-08-08 アイサイト モバイル テクノロジーズ リミテッド デジタルデバイスとの対話のための直接的なポインティング検出のためのシステムおよび方法
WO2016139850A1 (ja) * 2015-03-05 2016-09-09 ソニー株式会社 情報処理装置、制御方法、およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023032173A1 (ja) * 2021-09-03 2023-03-09 日本電気株式会社 仮想空間提供装置、仮想空間提供方法、及びコンピュータ読み取り可能な記憶媒体
WO2023079927A1 (ja) * 2021-11-05 2023-05-11 学校法人帝京大学 手術用デジタル顕微鏡システムおよび手術用デジタル顕微鏡システムの表示制御方法

Similar Documents

Publication Publication Date Title
US10853991B1 (en) Multi-layered artificial reality controller pose tracking architecture having prioritized motion models
CN106796351B (zh) 通过视线控制的头戴式显示装置及其控制方法、计算机可读存储介质
US20200160591A1 (en) Prediction and throttling adjustments based on application rendering performance
US10429925B2 (en) Head-mounted display, information processing device, display control method, and program
US10438410B2 (en) Text enhancements for head-mounted displays
US11107436B2 (en) Image processing device and image processing method
JP7491300B2 (ja) 情報処理装置、情報処理方法、及びコンピュータが読み取り可能な記録媒体
US11188148B2 (en) User interaction in head-mounted display with eye tracking
KR20220120649A (ko) 인공 현실 콘텐츠의 가변 초점 디스플레이를 갖는 인공 현실 시스템
US20170153700A1 (en) Method of displaying an image, and system therefor
US20170098330A1 (en) Method for controlling head mounted display, and program for controlling head mounted display
CN113383296A (zh) 具有自适应自由度(dof)选择的人工现实系统
WO2021153577A1 (ja) 視線検出装置のキャリブレーション
US10638120B2 (en) Information processing device and information processing method for stereoscopic image calibration
WO2019142560A1 (ja) 視線を誘導する情報処理装置
US20240198211A1 (en) Device including plurality of markers
US20220291744A1 (en) Display processing device, display processing method, and recording medium
WO2021140938A1 (ja) 情報処理装置、情報処理方法、及びコンピュータが読み取り可能な記録媒体
JP7367689B2 (ja) 情報処理装置、情報処理方法、及び記録媒体
US11443719B2 (en) Information processing apparatus and information processing method
WO2020105269A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP6598575B2 (ja) ヘッドマウントディスプレイシステムを制御する方法、および、プログラム
US11794095B2 (en) Information processing apparatus and device information derivation method
US11874961B2 (en) Managing display of an icon in an eye tracking augmented reality device
US11947119B2 (en) Display control device, display control method, and recording medium

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: 21748031

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: JP

122 Ep: pct application non-entry in european phase

Ref document number: 21748031

Country of ref document: EP

Kind code of ref document: A1