WO2023090213A1 - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
WO2023090213A1
WO2023090213A1 PCT/JP2022/041646 JP2022041646W WO2023090213A1 WO 2023090213 A1 WO2023090213 A1 WO 2023090213A1 JP 2022041646 W JP2022041646 W JP 2022041646W WO 2023090213 A1 WO2023090213 A1 WO 2023090213A1
Authority
WO
WIPO (PCT)
Prior art keywords
information processing
feature point
imaging device
processing apparatus
display
Prior art date
Application number
PCT/JP2022/041646
Other languages
English (en)
French (fr)
Inventor
辰吾 鶴見
Original Assignee
ソニーグループ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Priority to CN202280075392.0A priority Critical patent/CN118235162A/zh
Priority to EP22895495.4A priority patent/EP4435721A1/en
Priority to JP2023561545A priority patent/JPWO2023090213A1/ja
Publication of WO2023090213A1 publication Critical patent/WO2023090213A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods

Definitions

  • the present disclosure relates to an information processing device, an information processing method, and a program.
  • the feature points included in the moving image area of the captured image are the feature points. It may not be saved in the point map. In this case, the correct self-position of the imaging device may not be estimated.
  • the movement of the feature points in the moving image area may not correspond to the movement of the imaging device. Therefore, if the self-position of the imaging device is estimated based on the movement of the feature points in the moving image area, the correct self-position may not be estimated.
  • a display device that displays TV images or game images in real space
  • the imaging device will acquire captured images that include TV images or game images.
  • a captured image includes a moving image area such as a television image or a game image
  • the accuracy of estimating the self-position of the image capturing device (or the device in which the image capturing device is mounted) may deteriorate.
  • the present disclosure provides a mechanism that can more accurately estimate the self-position even when a display device that displays moving images in real space is included.
  • the information processing device of the present disclosure includes a control unit.
  • the control unit acquires the display area of the display device included in the image captured by the imaging device.
  • the control unit generates a 3D mask area and a 3D feature point map based on the obtained display area.
  • the control unit uses at least one of the three-dimensional mask region and the three-dimensional feature point map and feature points extracted from the image captured by the imaging device to determine at least one of the position and orientation of the imaging device. to estimate
  • FIG. 1 is a diagram for explaining an overview of an information processing system according to the present disclosure
  • FIG. FIG. 4 is a diagram for explaining an example of VO processing using a captured image including a display device
  • FIG. 4 is a diagram for explaining an example of feature points used by the information processing apparatus according to the present disclosure for self-position estimation
  • 1 is a block diagram showing a configuration example of a terminal device according to an embodiment of the present disclosure
  • FIG. 1 is a block diagram showing a configuration example of an information processing device according to a first embodiment of the present disclosure
  • FIG. 4 is a block diagram showing a configuration example of a map generation unit according to an embodiment of the present disclosure
  • FIG. 4 is a diagram for explaining an example of detection of a display device by an object detection unit according to an embodiment of the present disclosure
  • FIG. 4 is a diagram for explaining a mask space calculated by a mask space calculator according to the embodiment of the present disclosure
  • FIG. 4 is a diagram for explaining a mask space calculated by a mask space calculator according to the embodiment of the present disclosure
  • FIG. 4 is a diagram for explaining a mask space calculated by a mask space calculator according to the embodiment of the present disclosure
  • FIG. 4 is a diagram for explaining a mask space calculated by a mask space calculator according to the embodiment of the present disclosure
  • FIG. 4 is a diagram for explaining an example of a captured image acquired by the information processing apparatus according to the embodiment of the present disclosure for creating a feature point map
  • FIG. 4 is a diagram for explaining an example of a captured image acquired by the information processing apparatus according to the embodiment of the present disclosure for creating a feature point map
  • FIG. 4 is a diagram for explaining an example of a captured image acquired by the information processing apparatus according
  • FIG. 4 is a diagram for explaining an example of a captured image acquired by the information processing apparatus according to the embodiment of the present disclosure for creating a feature point map; 4 is a block diagram showing a configuration example of a self-position estimation unit according to the embodiment of the present disclosure; FIG. FIG. 4 is a diagram for explaining an example of a captured image according to the embodiment of the present disclosure; FIG. FIG. 4 is a diagram for explaining an example of a feature point masking process performed by a first feature point masking unit according to an embodiment of the present disclosure; FIG. 4 is a diagram for explaining an example of a captured image according to the embodiment of the present disclosure; FIG. FIG.
  • FIG. 7 is a diagram for explaining an example of a feature point masking process performed by a second feature point masking unit according to an embodiment of the present disclosure
  • 4 is a flowchart showing an example of the flow of map generation processing according to an embodiment of the present disclosure
  • 4 is a flow chart showing an example of the flow of VO processing according to an embodiment of the present disclosure
  • 4 is a flow chart showing an example of the flow of localization processing according to an embodiment of the present disclosure
  • FIG. 11 is a diagram for explaining an example of input of a display area according to the first modified example of the embodiment of the present disclosure
  • FIG. FIG. 11 is a diagram for explaining another example of inputting a display area according to the first modified example of the embodiment of the present disclosure
  • FIG. 11 is a diagram for explaining another example of inputting a display area according to the first modified example of the embodiment of the present disclosure
  • FIG. FIG. 11 is a diagram for explaining an example of a first method according to a second modified example of the embodiment of the present disclosure
  • FIG. FIG. 11 is a diagram for explaining an example of a third method according to a second modified example of the embodiment of the present disclosure
  • FIG. FIG. 11 is a diagram for explaining a server device according to a second modified example of the embodiment of the present disclosure
  • FIG. FIG. 11 is a block diagram showing a configuration example of a server device according to a second modified example of the embodiment of the present disclosure
  • FIG. 11 is a flowchart showing an example of the flow of determination processing according to the second modified example of the embodiment of the present disclosure
  • FIG. FIG. 11 is a flow chart showing an example of the flow of method acquisition processing according to the second modification of the embodiment of the present disclosure
  • FIG. 11 is a flowchart showing an example of the flow of VO processing according to the second modified example of the embodiment of the present disclosure
  • 11 is a flowchart showing an example of the flow of localization processing according to the second modification of the embodiment of the present disclosure
  • 1 is a hardware configuration diagram showing an example of a computer that implements functions of an information processing apparatus according to an embodiment of the present disclosure
  • FIG. 1 is a diagram for explaining an outline of an information processing system 1 according to the present disclosure.
  • the information processing system 1 includes an information processing device 100 , a display device 200 and a terminal device 300 .
  • the information processing device 100, the display device 200, and the terminal device 300 can communicate with each other via various wired or wireless networks. Any communication method can be applied to the network, regardless of whether it is wired or wireless (for example, WiFi (registered trademark), Bluetooth (registered trademark), etc.).
  • the information processing devices 100, the display devices 200, and the terminal devices 300 included in the information processing system 1 are not limited to the numbers illustrated in FIG. 1, and may be included in a greater number.
  • the terminal device 300 is a wearable device (eyewear device) such as a glasses-type HMD worn by the user U on the head.
  • eyewear device such as a glasses-type HMD worn by the user U on the head.
  • the eyewear device applicable as the terminal device 300 may be a so-called see-through type head-mounted display (AR (Augmented Reality) glasses) that transmits an image of the real space, or a glass that does not transmit the image of the real space. It may be of a goggle type (VR (Virtual Reality) goggles).
  • AR Augmented Reality
  • VR Virtual Reality
  • the terminal device 300 is not limited to being an HMD, and may be a tablet, smartphone, or the like held by the user U, for example.
  • the information processing device 100 comprehensively controls the operation of the terminal device 300 .
  • the information processing apparatus 100 is implemented by, for example, a processing circuit such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit). A detailed configuration of the information processing apparatus 100 according to the present disclosure will be described later.
  • the display device 200 is implemented by, for example, a liquid crystal display or an organic EL (Electro-Luminescence) display.
  • the display device 200 displays various information under the control of the information processing device 100, for example.
  • the information processing apparatus 100 specifies a safe play area (permissible area) that does not come into contact with real objects, and controls the HMD so that the user U moves within the play area. Control.
  • the area PA is specified as a play area where the user U can move and reach without colliding with obstacles.
  • the play area may be represented as a three-dimensional area such as a combination of a floor area shown on the floor and walls extending vertically from the floor area.
  • the play area may be represented as a two-dimensional area of the floor area.
  • the play area can be set as a two-dimensional area or a three-dimensional area.
  • the area PA can be automatically set by the information processing device 100 based on information acquired from sensors such as an imaging device mounted on the HMD and an IMU (Inertial Measurement Unit). Alternatively, the area PA may be set manually by the user U.
  • sensors such as an imaging device mounted on the HMD and an IMU (Inertial Measurement Unit).
  • IMU Inertial Measurement Unit
  • the information processing apparatus 100 also stores the feature points P of the surrounding environment as a three-dimensional feature point map.
  • a play area PA may be defined relative to the feature point map.
  • the feature point map and play area PA can be set, for example, when the user U uses the information processing system 1 for the first time, or when the user U starts a game.
  • the information processing apparatus 100 identifies at least one of the position and orientation of the terminal device 300 with respect to the feature point map (hereinafter also simply referred to as the self-position), thereby identifying the position of the terminal device 300 with respect to a real space such as a room. Identify the location and play area PA. In this way, the process of estimating the self-position of the terminal device 300 with respect to the feature point map is also referred to as localization process.
  • the feature point map hereinafter also simply referred to as the self-position
  • the information processing device 100 also acquires information about the surrounding environment using sensor information acquired by the sensor mounted on the terminal device 300 .
  • the information processing apparatus 100 detects the self-position of the terminal device 300 by an inside-out method based on an image captured by an imaging device (not shown) mounted on the terminal device 300 .
  • the information processing device 100 extracts feature points P included in the captured image of the imaging device mounted on the terminal device 300 .
  • the information processing device 100 estimates the self-position of the terminal device from the movement of the feature point P when the imaging device moves.
  • the process of estimating the self-position of the terminal device 300 from the movement of the feature point P of the captured image is also referred to as visual odometry (VO) process.
  • the information processing device 100 simultaneously performs localization processing and VO processing.
  • the information processing apparatus 100 responds to quick movements of the terminal device 300 by the VO processing, and maintains the consistency of the relative positions of the terminal device 300 and the play area PA by the localization processing.
  • FIG. 2 is a diagram for explaining an example of VO processing using a captured image M1 including the display device 200.
  • FIG. The upper diagram in FIG. 2 shows the captured image M1 acquired by the terminal device 300 at time t1
  • the lower diagram in FIG. 2 shows the captured image M2 acquired by the terminal device 300 at time t2.
  • the information processing device 100 acquires a plurality of feature points P11 outside the area including the display screen of the display device 200 (hereinafter also referred to as the display area). Further, the information processing apparatus 100 acquires a plurality of feature points P12 within the display area.
  • the terminal device 300 acquires the captured image M2.
  • time t2 it is assumed that the user U has moved leftward from time t1.
  • the information processing device 100 acquires a plurality of feature points P21 outside the display area of the display device 200. Further, the information processing apparatus 100 acquires a plurality of feature points P22 within the display area.
  • the information processing apparatus 100 selects the same feature point from among the feature points included in the captured images M1 and M2, and tracks the movement of the feature point (see arrows in the figure). , the motion of the terminal device 300 is detected. The information processing device 100 estimates the self-position of the terminal device 300 from the detected motion.
  • the motion V12 of the feature points P11 and P21 detected outside the display area may differ from the motion V22 of the feature points P12 and P22 detected within the display area. This is because the feature points P11 and P21 outside the display area move according to the movement of the terminal device 300, but the feature points P12 and P22 inside the display area move according to the movement of the moving image displayed on the display device 200. This is to move accordingly.
  • the information processing device 100 estimates the self-position of the terminal device 300 using the motion V12 of the feature points P11 and P21 and the motion V22 of the feature points P12 and P22, the self-position deviates (drifts). , the accuracy of self-position estimation may be degraded.
  • the localization process similarly degrades the self-position estimation accuracy. This is because, if the image displayed on the display device 200 is different from that at the time of creating the feature point map, the information processing device 100 may extract feature points that are not included in the feature point map.
  • the information processing system 1 estimates the self-location of the terminal device 300 based on the feature points corresponding to the display area.
  • the information processing device 100 according to the present disclosure acquires the display area of the display device 200 included in the captured image captured by the imaging device mounted on the terminal device 300 .
  • the information processing apparatus 100 generates a 3D mask area and a 3D feature point map based on the obtained display area.
  • the information processing apparatus 100 estimates at least one of the position and orientation of the imaging device using at least one of the three-dimensional mask region and the feature point map, and the feature points extracted from the image captured by the imaging device.
  • FIG. 3 is a diagram for explaining an example of feature points that the information processing apparatus 100 according to the present disclosure uses for self-position estimation.
  • the information processing apparatus 100 sets a three-dimensional mask area based on the display area of the display device 200.
  • the information processing apparatus 100 generates a feature point map using feature points P existing in a space outside the mask space S, among the plurality of feature points included in the captured image M captured at the angle of view MV. Further, the information processing apparatus 100 performs VO processing, localization processing, etc. using the feature points P existing in the space outside the mask space S, and estimates the self-position of the imaging device (or the terminal device 300).
  • the information processing device 100 estimates the self-position of the terminal device 300 using information on the display area in which the display device 200 can display moving images. As a result, even if the display device 200 is displaying a moving image, the information processing device 100 can prevent the feature points corresponding to the display device 200 from being used for self-position estimation. deterioration can be suppressed.
  • FIG. 4 is a block diagram showing a configuration example of the terminal device 300 according to the embodiment of the present disclosure.
  • the terminal device 300 includes a communication section 310 , a sensor section 320 , a display section 330 , an input section 340 and a control section 350 .
  • a communication unit 310 transmits and receives information to and from another device.
  • the communication unit 310 transmits a video reproduction request and a sensing result of the sensor unit 320 to the information processing apparatus 100 under the control of the control unit 350 . Further, the communication unit 310 receives video to be reproduced from the information processing device 100 .
  • the sensor unit 320 may include, for example, an imaging device (image sensor), depth sensor, microphone, acceleration sensor, gyroscope, geomagnetic sensor, GPS (Global Positioning System) receiver, and the like. Moreover, the sensor unit 320 may include a speed sensor, an acceleration sensor, an angular velocity sensor (gyro sensor), and an inertial measurement unit (IMU) integrating them.
  • an imaging device image sensor
  • depth sensor depth sensor
  • microphone acceleration sensor
  • acceleration sensor gyroscope
  • geomagnetic sensor GPS (Global Positioning System) receiver
  • GPS Global Positioning System
  • IMU inertial measurement unit
  • the sensor unit 320 senses the orientation, posture, or acceleration of the terminal device 300 in real space. Further, the sensor unit 320 senses depth information around the terminal device 300 . If the sensor unit 320 includes a distance measuring device that senses depth information, the distance measuring device may be a stereo camera, a ToF (Time of Flight) distance image sensor, or the like.
  • the distance measuring device may be a stereo camera, a ToF (Time of Flight) distance image sensor, or the like.
  • Display unit 330 displays an image under the control of control unit 350 .
  • display 330 may have a right-eye display and a left-eye display (not shown).
  • the right-eye display unit projects an image using at least a partial area of the right-eye lens (not shown) included in the terminal device 300 as a projection surface.
  • the left-eye display unit projects an image using at least a partial area of a left-eye lens (not shown) included in the terminal device 300 as a projection plane.
  • the display unit 330 can project an image using at least a partial area of the goggle-type lens as a projection plane.
  • the left-eye lens and right-eye lens may be made of a transparent material such as resin or glass.
  • the display unit 330 can be configured as a non-transmissive display device.
  • the display unit 330 may be configured to include an LCD (Liquid Crystal Display) or an OLED (Organic Light Emitting Diode).
  • LCD Liquid Crystal Display
  • OLED Organic Light Emitting Diode
  • Input unit 340 may include a touch panel, buttons, levers, switches, and the like.
  • the input unit 340 receives various inputs from the user U. For example, when an AI character is placed in the virtual space, the input unit 340 can receive an input from the user U for changing the placement position of the AI character.
  • Control unit 350 centrally controls the operation of the terminal device 300 using, for example, a CPU, a GPU (Graphics Processing Unit), and a RAM built in the terminal device 300 .
  • the control unit 350 causes the display unit 330 to display an image received from the information processing device 100 .
  • the control unit 350 causes the display unit 330 to display a portion of the omnidirectional image corresponding to the position and orientation information of the terminal device 300 (or the user U or the like).
  • the control unit 350 when the display unit 330 has a right-eye display unit and a left-eye display unit (not shown), the control unit 350 generates the right-eye image and the left-eye image based on the video received from the information processing device 100. . Then, the control unit 350 causes the right-eye display unit to display the right-eye image and the left-eye display unit to display the left-eye image. Thereby, the control unit 350 can allow the user U to view the stereoscopic video.
  • control unit 350 can perform various recognition processes based on the sensing results of the sensor unit 320.
  • control unit 350 can recognize actions of the user U wearing the terminal device 300 (eg, gestures of the user U, movement of the user U, etc.) based on the sensing result.
  • FIG. 5 is a block diagram showing a configuration example of the information processing device 100 according to the first embodiment of the present disclosure.
  • the information processing apparatus 100 includes a communication section 110, a storage section 120, and a control section .
  • the communication unit 110 transmits and receives information to and from another device. For example, the communication unit 110 transmits video to be played back to the information processing device 100 under the control of the control unit 130 .
  • the communication unit 110 also receives a video reproduction request and a sensing result from the terminal device 300 .
  • the communication unit 110 can communicate with an external server such as a game server via a network.
  • the storage unit 120 is realized by, for example, a semiconductor memory device such as a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, or a storage device such as a hard disk or an optical disk.
  • a semiconductor memory device such as a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, or a storage device such as a hard disk or an optical disk.
  • the storage unit 120 has a feature point map DB 121 and a mask space DB 122.
  • the feature point map DB 121 stores feature point maps generated by the control unit 130 .
  • Mask space DB 122 stores the mask space generated by control unit 130 .
  • Control unit 130 comprehensively controls the operation of the information processing apparatus 100 using, for example, a CPU, a GPU (Graphics Processing Unit), a RAM, and the like built in the information processing apparatus 100 .
  • the control unit 130 is implemented by the processor executing various programs stored in a storage device inside the information processing apparatus 100 using a RAM (Random Access Memory) or the like as a work area.
  • the control unit 130 may be implemented by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the control unit 130 includes a map generation unit 131 and a self-position estimation unit 132, as shown in FIG.
  • Each block (map generation unit 131, self-position estimation unit 132) constituting control unit 130 is a functional block indicating the function of control unit 130.
  • FIG. These functional blocks may be software blocks or hardware blocks.
  • each of the functional blocks described above may be one software module realized by software (including microprograms), or may be one circuit block on a semiconductor chip (die). Of course, each functional block may be one processor or one integrated circuit.
  • the configuration method of the functional blocks is arbitrary. Note that the control unit 130 may be configured by functional units different from the functional blocks described above.
  • map generator 131 generates a mask space and a feature point map based on the captured image acquired by the terminal device 300 .
  • FIG. 6 is a block diagram showing a configuration example of the map generator 131 according to the embodiment of the present disclosure.
  • the map generation unit 131 includes a first sensor information acquisition unit 1311, a first VO processing unit 1312, a first localization processing unit 1313, a first filter processing unit 1314, a feature point registration unit 1315, and an object detection unit 1316. , and a mask space calculator 1317 .
  • the first sensor information acquisition unit 1311 acquires sensing results from the sensor unit 220 (see FIG. 4) of the terminal device 300 as sensor information.
  • the sensor information includes, for example, sensor data (eg, captured image, acceleration, angular velocity, etc.) acquired by an imaging device, an IMU, or the like.
  • the first sensor information acquisition unit 1311 shown in FIG. 6 outputs the acquired sensor information to the first VO processing unit 1312, the first localization processing unit 1313, and the object detection unit 1316.
  • the first VO processing unit 1312 estimates the self-position of the terminal device 300 using the visual odometry method based on the sensor information acquired by the first sensor information acquisition unit 1311 .
  • the first VO processing unit 1312 includes a 1-1 feature point extraction unit 1312A, a first feature point tracking unit 1312C, and a first motion estimation unit 1312D.
  • the 1-1 feature point extraction unit 1312A for example, extracts feature points from the captured image for estimating motion (position, orientation) between image frames.
  • the 1-1 feature point extraction unit 1312A outputs the extracted feature points to the first feature point tracking unit 1312C.
  • the first feature point tracking unit 1312C tracks the feature points extracted by the 1-1 feature point extraction unit 1312A.
  • the first feature point tracking unit 1312C for example, selects corresponding feature points between image frames and calculates the motion of the selected feature points.
  • the first feature point tracking unit 1312C outputs motion information regarding the calculated feature point motion to the first motion estimation unit 1312D.
  • the first motion estimation unit 1312D captures an image based on the motion information acquired from the first feature point tracking unit 1312C and the sensor information (eg, acceleration, angular velocity, etc.) of the IMU sensor acquired from the first sensor information acquisition unit 1311. Estimate motion information of the device (or the terminal device 300). The motion information includes, for example, position information and orientation information of the imaging device. First motion estimator 1312 D outputs the estimated motion information to first filter processor 1314 .
  • the first localization processing unit 1313 performs localization processing based on the sensor information acquired by the first sensor information acquisition unit 1311 to estimate the self-position of the terminal device 300 .
  • the first localization processing unit 1313 includes a 1-2 feature point extraction unit 1313A, a first feature point matching unit 1313C, and a first position/orientation estimation unit 1313D.
  • the 1-2 feature point extraction unit 1313A for example, creates a feature point map and extracts feature points used for self-position estimation for the feature point map from the captured image.
  • the 1-2 feature point extraction unit 1313A outputs the extracted feature points to the first feature point matching unit 1313C.
  • the first feature point matching unit 1313C matches the feature points extracted by the 1-2 feature point extraction unit 1313A with the feature points included in the feature point map.
  • the first feature point matching section 1313C outputs the matching result to the first position and orientation estimation section 1313D.
  • the first position/orientation estimation unit 1313D estimates the position/orientation information of the imaging device (or the terminal device 300) with respect to the feature point map based on the feature point matching result by the first feature point matching unit 1313C.
  • First position and orientation estimation section 1313D outputs the estimated position and orientation information to first filter processing section 1314 .
  • the first filter processing unit 1314 performs filtering on the motion information estimated by the first VO processing unit 1312 and the position and orientation information estimated by the first localization processing unit 1313, integrates the two pieces of information, and selects the imaging device ( Alternatively, the self-location information of the terminal device 300) is estimated.
  • the first filter processing unit 1314 integrates the motion information and the position and orientation information using, for example, an extended Kalman filter to generate self-position information. Thereby, the information processing device 100 can stably estimate the self-location of the terminal device 300 .
  • the first filter processing unit 1314 outputs the generated self-position information to the feature point registration unit 1315 and mask space calculation unit 1317 .
  • the feature point registration unit 1315 generates or updates a feature point map based on the self-location information generated by the first filter processing unit 1314 and the feature points extracted by the first localization processing unit 1313 .
  • the feature point registration unit 1315 registers feature points in the feature point map based on the position and orientation of the terminal device 300 .
  • the feature point map is stored in the feature point map DB 121 .
  • the object detection unit 1316 detects the display device 200 included in the captured image based on the sensor information acquired by the first sensor information acquisition unit 1311 .
  • FIG. 7 is a diagram for explaining a detection example of the display device 200 by the object detection unit 1316 according to the embodiment of the present disclosure.
  • a fixed pattern image (an example of a predetermined image) is displayed on the display device 200, for example.
  • the display device 200 displays a fixed pattern image according to an instruction from the information processing device 100, for example.
  • the object detection unit 1316 detects the display area 200R of the display device 200 by detecting a fixed pattern image from the captured image.
  • the object detection unit 1316 outputs the display area information regarding the detected display area 200R to the mask space calculation unit 1317.
  • the object detection unit 1316 detects the display area 200R of the display device 200 by detecting a fixed pattern image, but the present invention is not limited to this.
  • the object detection unit 1316 may detect the display area 200R of the display device 200 using Semantic Segmentation.
  • the mask space calculator 1317 shown in FIG. 6 calculates the mask space S based on the display area information acquired from the object detector 1316 and the self-position of the terminal device 300 acquired from the first filter processor 1314 .
  • FIG 8 to 11 are diagrams for explaining the mask space S calculated by the mask space calculator 1317 according to the embodiment of the present disclosure.
  • the mask space calculator 1317 acquires display area information from the object detector 1316 .
  • the display area information is information indicating the display area 200R on the captured image. It is difficult to specify the position of the display device 200 in the coordinate system of the feature point map (hereinafter also referred to as the map coordinate system) from this display area information. This is because the size of the display device 200 varies depending on the environment (information processing system 1) in which it is used.
  • display device 200A with a smaller screen size is located near terminal device 300 and has a smaller screen size.
  • the large display device 200B is located far from the terminal device 300.
  • the mask space calculation unit 1317 uses the corners C1 to C4 of the display area 200R and the feature point P2 extracted from the captured image M shown in FIG. Calculate the position.
  • the mask space calculator 1317 extracts a plurality of feature points from the captured image M, as shown in FIG.
  • the multiple feature points include multiple feature points P1 existing outside the display area 200R and multiple feature points P2 existing within the display area 200R.
  • the mask space calculator 1317 calculates a display plane MTV including the display region 200R using at least three feature points P2 existing within the display region 200R.
  • the mask space calculator 1317 also calculates intersections C11 to C14 between the vectors V1 to V4 extending from the terminal device 300 to the corners C1 to C4 on the captured image M and the display plane MTV .
  • the mask space calculator 1317 sets a rectangular area having the intersections C11 to C14 as vertices as the display area 200R in the map coordinate system.
  • the mask space calculation unit 1317 calculates, as a mask space S, a rectangular parallelepiped region obtained by expanding (expanding) the display region 200R in the map coordinate system in three directions of length, width, and depth. Thereby, the mask space calculator 1317 can set a three-dimensional region including the display device 200 as the mask space S in the map coordinate system.
  • the mask space calculator 1317 stores the calculated mask space S in the mask space DB.
  • the information processing apparatus 100 creates a map, for example, the user U is instructed to move in the play area PA or look around the real space to acquire the captured images M at various positions and angles. do.
  • the information processing apparatus 100 creates/updates the feature point map, creates/updates the mask space S, and the like using the captured image M captured by the user U while moving.
  • FIGS. 12 and 13 are diagrams for explaining an example of a captured image M acquired by the information processing apparatus 100 according to the embodiment of the present disclosure for creating a feature point map.
  • the information processing apparatus 100 acquires a captured image M3 in which the window side is captured at the angle of view MV3, as shown in FIG.
  • the map generation unit 131 of the information processing device 100 generates/updates the feature point map based on the feature points P1 included in the captured image M3. In this way, the user U moves or looks around in the real space to acquire the captured image M, so that the information processing apparatus 100 can generate the feature point map of the real space with higher accuracy.
  • the map generator 131 generates/updates the mask space S in addition to the feature point map. Therefore, the map generator 131 may generate/update the feature point map based on the generated mask space S. FIG.
  • the feature point registration unit 1315 shown in FIG. 6 registers feature points outside the mask space S in the feature point map. That is, the feature point registration unit 1315 uses feature points outside the mask space S to generate/update the feature point map. For example, in FIG. 11, the map generator 131 extracts both the feature point P1 outside the mask space S and the feature point P2 inside the mask space S. For example, the feature point registration unit 1315 deletes the feature point P2 inside the mask space S and registers the feature point P1 outside the mask space S in the feature point map.
  • the present invention is not limited to this.
  • the first VO processing unit 1312 and the first localization processing unit 1313 may use the mask space S when estimating the self-position of the terminal device 300 . A method of using the mask space S in such processing will be described later.
  • the self-position estimation unit 132 estimates the self-position of the terminal device 300 using at least one of the mask space and the feature point map, and the captured image acquired by the terminal device 300 .
  • FIG. 14 is a block diagram showing a configuration example of the self-position estimation unit 132 according to the embodiment of the present disclosure.
  • the self-position estimation unit 132 includes a second sensor information acquisition unit 1321 , a second VO processing unit 1322 , a second localization processing unit 1323 and a second filter processing unit 1324 .
  • the second sensor information acquisition unit 1321 acquires sensing results from the sensor unit 220 (see FIG. 4) of the terminal device 300 as sensor information.
  • the second sensor information acquisition section 1321 outputs the acquired sensor information to the second VO processing section 1322 and the second localization processing section 1323 .
  • the second VO processing unit 1322 estimates the self-position of the terminal device 300 using the visual odometry method based on the sensor information acquired by the second sensor information acquisition unit 1321 .
  • the second VO processing section 1322 includes a 2-1 feature point extracting section 1322A, a first feature point masking section 1322B, a second feature point tracking section 1322C, and a second motion estimating section 1322D.
  • FIG. 15 is a diagram for explaining an example of the captured image M according to the embodiment of the present disclosure.
  • FIG. 16 is a diagram for explaining an example of the feature point masking process performed by the first feature point masking unit 1322B according to the embodiment of the present disclosure.
  • the 2-1 feature point extraction unit 1322A shown in FIG. 14 extracts feature points from the captured image M for estimating motion (position, orientation) between image frames, for example.
  • the terminal device 300 acquires the captured image M1 with the angle of view MV1 at time t1, and acquires the captured image M2 with the angle of view MV2 at time t2.
  • the 2-1 feature point extraction unit 1322A extracts feature points P11, P12, P21 and P22 (see FIG. 16) from the captured images M1 and M2. As shown in FIG. 14, the 2-1 feature point extraction section 1322A outputs the extracted feature points to the first feature point mask section 1322B.
  • the first feature point masking section 1322B shown in FIG. 14 masks the feature points corresponding to the mask space S among the feature points extracted by the 2-1 feature point extraction section 1322A.
  • the first feature point masking unit 1322B for example, based on the self-position of the terminal device 300 and information about the mask space S, creates a two-dimensional mask region corresponding to the mask space S in the captured image M1.
  • S2 (hereinafter also referred to as mask region S2) is calculated.
  • the first feature point masking unit 1322B calculates the mask area S2 by projecting the mask space S onto the captured image M1.
  • the first feature point masking unit 1322B selects the feature point P11 in the area outside the mask area S2 (hereinafter also referred to as the "outside mask area") in the captured image M1 and outputs it to the second feature point tracking unit 1322C.
  • the first feature point masking unit 1322B deletes the feature point P12 in the mask region S2 and selects the remaining feature point P11 as a feature point to be used for VO processing.
  • the first feature point masking unit 1322B similarly calculates the mask area S2 for the captured image M2. Also, the first feature point masking unit 1322B selects the feature point P21 in the area outside the mask in the captured image M2, and deletes the feature point P12 in the mask area S2.
  • the first feature point masking section 1322B outputs the selected feature point P21 to the second feature point tracking section 1322C.
  • the second feature point tracking unit 1322C shown in FIG. 14 tracks the feature points selected by the first feature point masking unit 1322B, for example.
  • the second feature point tracking unit 1322C for example, detects corresponding feature points in the captured images M1 and M2, and calculates a motion V12 of the detected feature points (see the lower diagram in FIG. 16).
  • the second feature point tracking unit 1322C outputs motion information about the calculated feature point motion V12 to the second motion estimation unit 1322D.
  • the feature points P11 and P21 tracked by the second feature point tracking unit 1322C do not include the feature points P12 and P22 in the mask region S2 due to the first feature point masking unit 1322B. Therefore, even if a moving image is displayed in the display area 200R of the display device 200, the second feature point tracking unit 1322C does not use the feature points P12 and P22 of the display area 200R, and calculates the feature points P11 and P21. can be tracked. Thereby, the second feature point tracking unit 1322C can more accurately calculate the motion V12 of the feature points P11 and P21 corresponding to the motion of the terminal device 300.
  • the second motion estimation unit 1322D captures an image based on the motion information acquired from the second feature point tracking unit 1322C and the sensor information (eg, acceleration, angular velocity, etc.) of the IMU sensor acquired from the second sensor information acquisition unit 1321. Estimate motion information of the device (or the terminal device 300). Second motion estimation section 1322D outputs the estimated motion information to second filter processing section 1324 .
  • the second localization processing unit 1323 performs localization processing based on the sensor information acquired by the second sensor information acquisition unit 1321 to estimate the self-location of the terminal device 300 .
  • the second localization processing section 1323 includes a 2-2 feature point extraction section 1323A, a second feature point mask section 1323B, a second feature point matching section 1323C, and a second position/orientation estimation section 1323D.
  • FIG. 17 is a diagram for explaining an example of the captured image M2 according to the embodiment of the present disclosure.
  • FIG. 18 is a diagram for explaining an example of the feature point masking process performed by the second feature point masking unit 1323B according to the embodiment of the present disclosure.
  • the 2-2nd feature point extracting section 1323A outputs the extracted feature points to the second feature point masking section 1323B.
  • the terminal device 300 acquires the captured image M2 with the angle of view MV2 at time t2, for example.
  • the 2-2 feature point extraction unit 1323A extracts feature points P21 and P22 from the captured image M2 (see FIG. 18).
  • the 2-2 feature point extraction section 1323A outputs the extracted feature points P21 and P22 to the second feature point mask section 1323B.
  • the second feature point masking section 1323B shown in FIG. 14 masks the feature point P22 corresponding to the mask space S among the feature points P21 and P22 extracted by the 2-2 feature point extracting section 1323A.
  • the second feature point masking unit 1323B for example, based on information about the self-position of the terminal device 300 and the mask space S, a two-dimensional mask area S2 (hereinafter referred to as a two-dimensional mask area S2) corresponding to the mask space S in the captured image M2 , also referred to as a mask region S2). For example, the second feature point masking unit 1323B calculates the mask area S2 by projecting the mask space S onto the captured image M2.
  • the second feature point masking unit 1323B selects the feature point P21 in the area outside the mask area S2 (hereinafter also referred to as the "outside mask area") in the captured image M2 and outputs it to the second feature point matching unit 1323C.
  • the second feature point masking unit 1323B deletes the feature point P22 in the mask region S2 and selects the remaining feature point P21 as a feature point to be used for localization processing.
  • the second feature point masking section 1323B outputs the selected feature point P22 to the second feature point matching section 1323C.
  • the second feature point matching unit 1323C matches the feature point P21 selected by the second feature point masking unit 1323B with the feature point PR included in the feature point map.
  • the second feature point matching section 1323C outputs the matching result to the second position and orientation estimation section 1323D.
  • the second position/orientation estimation unit 1323D estimates the position/orientation information of the imaging device (or the terminal device 300) with respect to the feature point map based on the feature point matching result by the second feature point matching unit 1323C. Second position and orientation estimation section 1323D outputs the estimated position and orientation information to second filter processing section 1324 .
  • the second filter processing unit 1324 performs filtering on the motion information estimated by the second VO processing unit 1322 and the position and orientation information estimated by the second localization processing unit 1323, integrates the two pieces of information, and selects the imaging device ( Alternatively, the self-location information of the terminal device 300) is estimated.
  • the second filtering unit 1324 integrates the motion information and the position and orientation information using, for example, an extended Kalman filter to generate self-position information. Thereby, the information processing device 100 can stably estimate the self-location of the terminal device 300 .
  • the second filter processing unit 1324 outputs, for example, the estimation result of the self-position of the terminal device 300 to a subsequent processing unit (not shown).
  • the self-position of the terminal device 300 estimated by the second filter processing unit 1324 is used, for example, for drawing processing of an image presented to the user U and processing for guiding the user U so that the user U does not deviate from the play area PA. be done.
  • FIG. 19 is a flowchart showing an example of the flow of map generation processing according to the embodiment of the present disclosure.
  • the map generation process shown in FIG. 19 is executed by the information processing apparatus 100 when the information processing system 1 is used for the first time or before the game is started, for example.
  • the information processing device 100 causes the display device 200 to display a fixed pattern image (step S101).
  • the fixed pattern image is a recognition image for the information processing device 100 to recognize the display area of the display device 200 .
  • the information processing device 100 extracts feature points from the captured image M acquired by the terminal device 300 (step S102).
  • the information processing device 100 estimates the position and orientation of the terminal device 300 as motion information using visual odometry (VO) (step S103).
  • the information processing device 100 detects a fixed pattern image from the captured image M (step S104).
  • the information processing apparatus 100 determines whether or not a fixed pattern image has been detected from the captured image M (step S105).
  • step S105; No If not detected (step S105; No), the information processing apparatus 100 proceeds to step S108.
  • step S105; Yes the information processing apparatus 100 sets the mask space S based on the fixed pattern image (step S106).
  • the information processing apparatus 100 deletes the feature points in the mask space S set in step S106 from among the feature points extracted in step S102 (step S107).
  • the information processing apparatus 100 saves the feature points in the feature point map (step S108).
  • the information processing apparatus 100 determines whether or not a predetermined number of feature points are saved in the feature point map (step S109). When the number of saved feature points is less than the predetermined number (step S109; No), the information processing apparatus 100 returns to step S101. On the other hand, if the number of stored feature points is equal to or greater than the predetermined number (step S109; Yes), the information processing apparatus 100 ends the process.
  • the information processing apparatus 100 determines whether to end the map generation process according to the number of registered feature points, but the present invention is not limited to this.
  • the information processing apparatus 100 may end the process depending on whether or not the feature points in the predetermined area are stored in the feature point map.
  • the information processing apparatus 100 may end the processing depending on whether or not a predetermined number of feature points are stored in the feature point map in a predetermined area.
  • the information processing apparatus 100 executes VO (Visual Odometry) processing and localization processing as self-position estimation processing.
  • VO Visual Odometry
  • FIG. 20 is a flow chart showing an example of the flow of VO processing according to the embodiment of the present disclosure.
  • the VO process shown in FIG. 20 is repeatedly executed by the information processing apparatus 100 at a predetermined cycle from the start of the game to the end of the game.
  • the predetermined cycle may be the same as the cycle (frame rate) at which the terminal device 300 acquires captured images.
  • the information processing apparatus 100 acquires information about the feature point map and the mask space S from the storage unit 120 (step S201).
  • the information processing device 100 extracts feature points from the captured image M acquired by the terminal device 300 (step S202).
  • the information processing device 100 determines whether the mask space S exists within the angle of view of the terminal device 300 (step S203).
  • the information processing apparatus 100 determines whether or not the mask space S exists within the angle of view based on the self-position of the terminal device 300 (for example, the self-position estimated one frame before).
  • step S203 When the mask space S does not exist within the angle of view (step S203; No), the information processing apparatus 100 proceeds to step S205. If the mask space S exists within the angle of view (step S203; Yes), the information processing apparatus 100 deletes the feature points in the mask space S from among the feature points extracted in step S202 (step S204).
  • the information processing device 100 uses visual odometry (VO) to estimate the position and orientation of the terminal device 300 as motion information (step S205).
  • VO visual odometry
  • the information processing apparatus 100 determines whether the queue used for localization processing is empty (step S206). Here, the information processing apparatus 100 performs localization processing using the captured image M stored in the queue. Therefore, when the queue is empty, it means that the information processing apparatus 100 has finished the localization process, and when the queue is not empty, it means that the information processing apparatus 100 is executing the localization process.
  • step S206 If the queue is not empty, that is, if localization processing is being performed (step S206; No), the information processing apparatus 100 proceeds to step S209. If the queue is empty, that is, if the localization process has ended (step S206; Yes), the information processing apparatus 100 saves the captured image M in the queue (step S207).
  • the information processing device 100 acquires the position and orientation information of the terminal device 300 as a result of the localization process (step S208).
  • the information processing apparatus 100 updates and innovates the Kalman filter using at least one of the position and orientation information and the motion information (step S209), and acquires the self-position with respect to the feature point map (step S210).
  • the information processing device 100 acquires the self-position of the terminal device 300 in the map coordinate system.
  • FIG. 21 is a flowchart showing an example of the flow of localization processing according to the embodiment of the present disclosure.
  • the localization process shown in FIG. 21 is repeatedly executed by the information processing apparatus 100 from the start of the game to the end of the game.
  • the localization process takes, for example, several frames.
  • the information processing apparatus 100 acquires a feature point map from the storage unit 120 (step S301).
  • the information processing apparatus 100 determines whether or not the captured image M is stored in the queue (step S302). If the captured image M is not stored in the queue (step S302; No), the information processing apparatus 100 returns to step S302 and waits for the captured image M to be stored in the queue.
  • the information processing apparatus 100 extracts feature points from the captured image M stored in the queue (step S303).
  • the information processing device 100 determines whether or not the mask space S exists within the angle of view of the terminal device 300 (step S304). The information processing device 100 determines whether or not the mask space S exists within the angle of view based on the self-position of the terminal device 300 .
  • step S304 When the mask space S does not exist within the angle of view (step S304; No), the information processing apparatus 100 proceeds to step S306. If the mask space S exists within the angle of view (step S304; Yes), the information processing apparatus 100 deletes the feature points in the mask space S from among the feature points extracted in step S303 (step S305).
  • the information processing apparatus 100 performs matching between the feature points registered in the feature point map and the feature points included in the captured image M (step S306).
  • the information processing apparatus 100 estimates the position and orientation of the terminal device 300 with respect to the feature point map as position and orientation information by localization (step S307).
  • the information processing apparatus 100 deletes the captured image M stored in the queue used for localization processing to empty the queue (step S308).
  • the information processing apparatus 100 outputs the position and orientation information estimated in step S307 as a result of localization processing (step S309).
  • the information processing apparatus 100 uses the captured image M to calculate the mask space S including the display device 200 .
  • the information processing apparatus 100 uses feature points corresponding to the space outside the calculated mask space S among the feature points extracted from the captured image M to generate a feature point map and estimate the self position of the terminal device 300. .
  • the information processing device 100 can more accurately generate a feature point map and estimate the self-position of the terminal device 300 even when a moving image is displayed on the display device 200 .
  • the information processing device 100 detects the display device 200 with respect to the captured image M when executing the map creation process.
  • the information processing device 100 does not detect the display device 200 itself with respect to the captured image M when executing the self-position estimation process.
  • the information processing apparatus 100 deletes feature points corresponding to the display device 200 in the self-position estimation process using the mask space S created when executing the map creation process.
  • the information processing device 100 can further reduce the processing load compared to the case where the display device 200 is detected in each frame when executing the self-position estimation process.
  • the information processing device 100 detects the display area 200R of the display device 200, but the present invention is not limited to this.
  • the information processing device 100 may acquire information about the display area 200R from the user U. That is, the information processing apparatus 100 may receive a manual input operation of the display area 200R from the user U.
  • FIG. 1 A block diagram illustrating an exemplary computing environment in accordance with the present invention.
  • FIG. 22 is a diagram for explaining an example of input in the display area 200R according to the first modified example of the embodiment of the present disclosure.
  • Controller 400 may have the same configuration as terminal device 300 shown in FIG. That is, controller 400 can acquire information for information processing apparatus 100 to estimate the position and orientation (self-position) of controller 400 . Information processing apparatus 100 uses this information to estimate the self-location of controller 400 .
  • the user U touches the four corners (corners) of the display device 200 with the controller 400, for example.
  • Information processing apparatus 100 detects a touch by controller 400 .
  • the information processing device 100 detects the location touched by the user U with the controller 400 as the vertices (corners C1 to C4) of the display area 200R of the display device 200 .
  • the user U touches the lower left corner of the display device 200 . Based on this operation by the user U, the information processing apparatus 100 detects the corner C4 of the display area 200R.
  • the present invention is not limited to this.
  • the user U may input the display area 200R using the virtual controller 400A.
  • FIG. 23 is a diagram for explaining another example of input in the display area 200R according to the first modified example of the embodiment of the present disclosure.
  • Controller 400 ⁇ /b>A held by user U is a virtual controller displayed on display unit 330 of terminal device 300 by information processing device 100 .
  • the information processing apparatus 100 for example, superimposes the controller 400A on an image of the real space (captured image M) and presents it to the user U.
  • the user U touches the four corners of the display device 200 using the virtual controller 400A. Thereby, the information processing device 100 detects the display area 200R of the display device 200 .
  • the information processing apparatus 100 can detect the display area 200R using the virtual controller 400A.
  • the user U when the user U holds the controller 400 and designates the display area 200R, the user U may go out of the play area PA. For example, if the controller 400 is short, the user U may not be able to specify the display area 200R unless the user U goes out of the play area PA. In particular, when the user U wears an HMD (an example of the terminal device 300) on the head as shown in FIG. You may not notice it.
  • HMD an example of the terminal device 300
  • FIG. 24 is a diagram for explaining another example of input in the display area 200R according to the first modified example of the embodiment of the present disclosure.
  • the information processing device 100 presents the user U with a stick-shaped virtual controller 400B.
  • the user U touches the four corners of the display device 200 using the stick-shaped virtual controller 400B. Since the user U can touch with the tip of the rod-shaped virtual controller 400B, the user can safely perform input in the display area 200R without leaving the play area PA.
  • the information processing apparatus 100 displays the rod-shaped virtual controller 400B, but is not limited to this.
  • a bar-shaped virtual object may be superimposed and displayed on the controller 400 .
  • the user U operates the controller 400 to operate the rod-shaped virtual object and input the display area 200R.
  • the user U can manually specify the display area 200R each time the information processing system 1 is installed or the game is started. Alternatively, if the information processing apparatus 100 fails to detect the display area 200R, acquire the display plane, or calculate the mask space S, the user U may manually specify the display area 200R.
  • Second modification> When the proposed technology of the present disclosure is introduced into a product, such as when the information processing system 1 of the above-described embodiment is used at home, the method described below as a second modification is a method of reducing the introduction risk. Conceivable.
  • the information processing apparatus 100 In order for the information processing apparatus 100 of the above-described embodiment to remove feature points included in the display area 200R of the display device 200 with a desired degree of accuracy, the information processing apparatus 100 needs to determine the self-position of the terminal device 300 in the map coordinate system to some extent. It is desirable to estimate with an accuracy of
  • the information processing device 100 estimates the self-position of the terminal device 300 by a method different from the technique proposed in the present disclosure.
  • the information processing apparatus 100 estimates the self-position of the terminal device 300 using another method and also estimates the self-position of the technique proposed in the present disclosure.
  • the estimation accuracy of the self-position by the proposed technique of the present disclosure satisfies the desired accuracy, for example, the information processing device 100 terminates the self-position estimation by another method and shifts to the self-position estimation by the proposed technique of the present disclosure. .
  • the information processing device 100 can perform self-position estimation that satisfies the desired accuracy.
  • a first method is a method in which the information processing device 100 recognizes the display area 200R of the display device 200 in each frame and estimates its own position without using the feature points of the display area 200R.
  • Reference 1 "RDS-SLAM: Real-Time Dynamic SLAM Using Semantic Segmentation Methods", Internet ⁇ URL: https://arxiv.org/ftp/arxiv/papers/1809/1809.08379 .pdf>”.
  • Reference 2 "DS-SLAM A Semantic Visual SLAM toward Dynamic Environments”, Internet ⁇ URL: https://arxiv.org/ftp/arxiv/papepa/1809/ 1809.08379.pdf>”.
  • FIG. 25 is a diagram for explaining an example of the first technique according to the second modified example of the embodiment of the present disclosure.
  • the information processing device 100 executes object recognition processing on the captured image M to recognize the display device 200 .
  • the information processing apparatus 100 extracts feature points P1 and P2 from the captured image M.
  • the information processing apparatus 100 deletes the feature point P2 extracted from the display device 200 recognized in the recognition process from among the extracted feature points P1 and P2, and estimates the self-position of the terminal device 300 .
  • the information processing apparatus 100 executes this process for each frame.
  • the first method is a method of executing object recognition processing on the captured image M in each frame and classifying feature points based on the recognition result. Therefore, by using the first method, the information processing apparatus 100 can remove the feature points extracted from the moving object without depending on the estimation result of the self-position of the terminal apparatus 300 in the map coordinate system.
  • the first method has the demerit of a large processing load because object recognition processing is performed on the captured image M in each frame.
  • a second method (an example of a second estimation process) is a method using the proposed technology of the present disclosure.
  • the information processing apparatus 100 sets the mask space S in the map coordinate system based on the display area 200R of the display device 200 in the captured image M when creating the map.
  • the information processing apparatus 100 removes feature points extracted from the moving image displayed on the display device 200 using the mask space S when estimating the self-position.
  • the information processing device 100 performs recognition processing of the display device 200 when creating the map, detects the display area 200R of the display device 200, and sets the mask space S.
  • the information processing device 100 does not perform recognition processing of the display device 200 during self-position estimation. Therefore, by using the second method, the information processing apparatus 100 can remove the feature points extracted from the moving image while suppressing an increase in processing load during self-position estimation.
  • the second method it is desirable to estimate the self-position of the terminal device 300 with a predetermined accuracy in order to classify feature points with a desired accuracy.
  • the information processing apparatus 100 displays a predetermined pattern image in at least a part of the display area 200R of the display device 200, thereby defining an area in which the moving image is displayed in the display area 200R. It is a method to make it smaller. In this way, by reducing the area in which the moving image is displayed, the information processing apparatus 100 can reduce the number of feature points extracted from the moving image, and the deterioration of the estimation accuracy of the self-position of the terminal device 300 can be prevented. can be suppressed.
  • FIG. 26 is a diagram for explaining an example of the third technique according to the second modified example of the embodiment of the present disclosure.
  • the information processing device 100 displays a predetermined pattern image in the pattern display area 200M1 of the display area 200R of the display device 200, and displays a moving image in the moving image display area 200M2.
  • the pattern display area 200M1 is the peripheral area of the display area 200R
  • the moving image display area 200M2 is the central area of the display area 200R. That is, the pattern display area 200M1 is arranged around the moving image display area 200M2.
  • a pattern image is a static image of a fixed pattern.
  • a moving image display area 200M2 in which a moving image is displayed is smaller than the display area 200R.
  • the information processing device 100 estimates the self-position of the terminal device 300 using the feature points P1 and P2 extracted from the captured image M, deterioration of estimation accuracy can be suppressed to some extent.
  • the information processing device 100 does not perform recognition processing of the display device 200 on the captured image M, so the processing load is small. Also, in the third method, since the number of feature points P2 extracted from the moving image is small, the estimation accuracy is less susceptible to the displacement of the self-position with respect to the map coordinate system.
  • the moving image display area 200M2 becomes small, and the information that can be displayed on the display device 200 (for example, a game play screen) is limited. be.
  • the information processing device 100 estimates the self-position of the terminal device 300 using the first or third method in addition to the second method.
  • the information processing device 100 is set to estimate the self-position of the terminal device 300 using the third method when the product is installed (for example, at the time of shipment). It is also assumed that the information processing apparatus 100 is set to perform self-position estimation of the terminal device 300 using the second method at the same time as the estimation using the third method from the time of shipment.
  • the information processing device 100 switches the method of self-position estimation from the third method to the second method.
  • the information processing device 100 switches the method used for self-position estimation based on an instruction from the server device 500 arranged on the cloud.
  • FIG. 27 is a diagram for explaining the server device 500 according to the second modification of the embodiment of the present disclosure.
  • the server device 500 is connected to a plurality of information processing devices 100A, 100B, .
  • the server device 500 is a control device that controls the information processing devices 100A, 100B, .
  • the server device 500 acquires information including the execution result of the second method from each of the information processing devices 100A, 100B, .
  • the server device 500 determines whether or not the information processing device 100 shifts to the second method based on the acquired information.
  • the server device 500 notifies the information processing device 100 of the determination result via the network N.
  • the server device 500 determines whether the accuracy of the self-position estimation satisfies the desired accuracy according to the extraction accuracy with which the information processing device 100 extracts the feature point P2 from the display area 200R. Decide whether to move to the second method.
  • the information processing device 100 estimates the self-position of the terminal device 300 using a method according to the instruction from the server device 500 .
  • the information processing apparatus 100 receives an instruction to shift to the second method from the server apparatus 500 , the information processing apparatus 100 ends the display of the pattern image on the display apparatus 200 .
  • the information processing apparatus 100 does not need to display the pattern image on the display device 200 after shifting to the second method, and displays information (for example, a game play screen) on the entire display area 200R of the display device 200. be able to display.
  • FIG. 28 is a block diagram showing a configuration example of the server device 500 according to the second modification of the embodiment of the present disclosure.
  • server device 500 includes communication section 510 , storage section 520 and control section 530 .
  • the communication unit 510 transmits and receives information to and from other devices.
  • the communication unit 510 can communicate with the information processing device 100 via the network N.
  • FIG. 1
  • the storage unit 520 is realized, for example, by a semiconductor memory device such as RAM (Random Access Memory), ROM (Read Only Memory), flash memory, or a storage device such as a hard disk or optical disk.
  • a semiconductor memory device such as RAM (Random Access Memory), ROM (Read Only Memory), flash memory, or a storage device such as a hard disk or optical disk.
  • the control unit 530 comprehensively controls the operation of the server device 500 using, for example, a CPU, GPU (Graphics Processing Unit) and RAM built into the server device 500 .
  • the control unit 530 is implemented by the processor executing various programs stored in the storage device inside the server device 500 using a RAM (Random Access Memory) or the like as a work area.
  • the control unit 530 may be implemented by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • FIG. 29 is a flowchart illustrating an example of the flow of determination processing according to the second modification of the embodiment of the present disclosure.
  • the determination processing shown in FIG. 29 is periodically performed by the server apparatus 500, for example.
  • the server apparatus 500 may perform the determination process shown in FIG. 29 when accuracy information is received from the information processing apparatus 100 .
  • the server device 500 collects accuracy information from each information processing device 100 (step S401).
  • the accuracy information can include information about the accuracy of the second technique, for example, the accuracy of recognizing the two-dimensional display area using the mask space S.
  • the accuracy information may also include information about the environment in which the second method was executed (for example, the brightness of the room, the size of the play area PA, the type of game, the average movement speed of the user U, etc.). Details of the recognition accuracy will be described later.
  • the server device 500 determines whether the accuracy of the second method satisfies the desired accuracy (step S402). For example, the server device 500 compares the above-described recognition accuracy with a threshold value, and determines that the desired accuracy is satisfied when the recognition accuracy is equal to or higher than the threshold value.
  • the server apparatus 500 may perform determination using a recognizer that receives information included in the accuracy information as an input and outputs a determination result as to whether or not the desired accuracy is satisfied.
  • the recognizer can be generated using machine learning using accuracy information acquired from a plurality of information processing apparatuses 100, for example.
  • step S403 server device 500 determines to shift from the third method to the second method.
  • step S402 If the accuracy of the second method does not satisfy the desired accuracy (step S402; No), the server device 500 adopts the third method (step S404). That is, server device 500 determines to continue the third method.
  • FIG. 30 is a flowchart illustrating an example of the procedure acquisition process flow according to the second modification of the embodiment of the present disclosure.
  • the technique acquisition process shown in FIG. 30 is performed by the information processing apparatus 100, for example, at the start of the game. Alternatively, the information processing apparatus 100 may perform the technique acquisition process at a predetermined cycle.
  • the information processing device 100 inquires of the server device 500 about the method to be used for self-position estimation (step S501). Next, the information processing apparatus 100 determines whether or not the server apparatus 500 has adopted the second method as the method to be used as a result of the inquiry (step S502).
  • step S503 the information processing apparatus 100 executes the second method (step S503). That is, the information processing device 100 estimates the self-location of the terminal device 300 using the second technique. More specifically, the information processing apparatus 100 executes the processes described with reference to FIGS. 19 to 21, for example.
  • the information processing apparatus 100 executes the third method and the second method (step S504). That is, the information processing apparatus 100 executes the second method while estimating the self-location of the terminal device 300 using the third method. More specifically, for example, the information processing apparatus 100 executes the processes described with reference to FIGS. 19 to 21, and simultaneously executes the processes described next with reference to FIGS. 31 and 32. FIG.
  • Information processing apparatus 100 can generate a feature point map used in the third method in the same manner as in the second method. Alternatively, the information processing apparatus 100 may use the feature point map created using the second method to perform the self-position estimation process according to the third method.
  • FIG. 31 is a flowchart showing an example of the flow of VO processing according to the second modified example of the embodiment of the present disclosure.
  • the VO process of FIG. 31 is repeatedly executed by the information processing apparatus 100 at a predetermined cycle from the start of the game to the end of the game.
  • the predetermined cycle may be the same as the cycle (frame rate) at which the terminal device 300 acquires captured images.
  • the same reference numerals are given to the same processes as in FIG. 20, and the description thereof is omitted.
  • step S203 determines in step S203 that the mask space S does not exist within the angle of view (step S203; No)
  • the process proceeds to step S606.
  • the information processing apparatus 100 determines that the mask space S exists within the angle of view (step S203; Yes)
  • it determines whether or not to check the pattern image (step S601).
  • the information processing apparatus 100 can check the pattern image at predetermined intervals, such as once every several frames.
  • step S601; No If the pattern image is not checked (step S601; No), the information processing apparatus 100 proceeds to step S606.
  • step S601; Yes the information processing apparatus 100 detects the pattern display area 200M1 (see FIG. 26) from the captured image M (step S602).
  • the information processing apparatus 100 detects the pattern display area 200M1 by detecting the pattern image from the captured image M.
  • the information processing apparatus 100 determines whether the pattern image is included in the mask area S2 (see FIG. 16) (step S603).
  • the information processing apparatus 100 calculates the mask area S2 by projecting the mask space S onto the captured image M.
  • FIG. The information processing apparatus 100 determines whether the pattern image is included in the calculated mask area S2.
  • step S603 when the pattern image is included in the mask region S2 (step S603; Yes), the information processing apparatus 100 determines that the mask region S2 has been successfully calculated, and increments the number of successes (step S604). ).
  • step S603 If the pattern image is not included in the mask area S2 (step S603; No), the information processing apparatus 100 determines that the calculation of the mask area S2 has failed and increments the number of failures (step S605).
  • the information processing apparatus 100 estimates the position and orientation by visual odometry (step S606).
  • the processing is the same as the processing in step S205 of FIG. 20 except that the information processing apparatus 100 uses all of the feature points P1 and P2 extracted from the captured image M to estimate the position and orientation. In this manner, the information processing apparatus 100 estimates the position and orientation using the feature point P2 (see FIG. 26) extracted from the moving image as the third technique.
  • the information processing device 100 that has acquired its own position with respect to the feature point map in step S210 determines whether the game has ended (step S607). If the game has not ended (step S607; No), the information processing apparatus 100 ends the process.
  • the information processing apparatus 100 transmits the number of successful calculations and the number of failures in calculating the mask area S2 to the server apparatus 500 as recognition accuracy (step S608).
  • the information processing apparatus 100 may transmit environment information regarding the surrounding environment and the like as accuracy information to the server apparatus 500 .
  • the information processing apparatus 100 transmits the number of successful calculations and the number of failures in calculating the mask area S2 to the server apparatus 500, but the present invention is not limited to this.
  • the information processing apparatus 100 may transmit the percentage of successful times or the percentage of failed times to the server device 500 as the recognition accuracy.
  • the information processing apparatus 100 may calculate the degree of deviation between the mask area S2 and the pattern image as the recognition accuracy instead of the number of successes and failures.
  • the information processing apparatus 100 can calculate the area of the pattern image protruding from the mask region S2 and transmit the average value of the area to the server apparatus 500 as the recognition accuracy.
  • the information processing apparatus 100 can obtain the accuracy of deleting the feature point P2, in other words, the accuracy of estimating the self-position of the terminal device 300 by obtaining the calculation accuracy of the mask region S2. This is because the accuracy with which the information processing apparatus 100 calculates the mask area S2 affects the accuracy with which the feature points P2 extracted from the display area 200R are deleted. The accuracy of deleting the feature point P2, which may adversely affect self-location estimation, affects the accuracy of estimating the self-location of the terminal device 300. FIG.
  • the information processing apparatus 100 notifies the server apparatus 500 of the calculation accuracy (recognition accuracy) of the masked area S2, and the server apparatus 500 determines the desired self-position estimation accuracy by the second method based on the recognition accuracy. It is possible to determine whether or not the accuracy of
  • FIG. 32 is a flowchart showing an example of the flow of localization processing according to the second modification of the embodiment of the present disclosure.
  • the localization process of FIG. 32 is repeatedly executed by the information processing device 100 from the start of the game to the end of the game.
  • the localization process takes, for example, several frames.
  • the same reference numerals are given to the same processes as in FIG. 21, and the description thereof is omitted.
  • the information processing apparatus 100 that has extracted the feature points P1 and P2 from the captured image M in step S303 matches the extracted feature points P1 and P2 with the feature points on the feature point map (step S701). ).
  • the information processing apparatus 100 estimates the position and orientation for the feature point map (step S702).
  • steps S701 and S702 are the same as the processing of steps S306 and S307 in FIG. is.
  • the information processing apparatus 100 estimates the position and orientation using the feature point P2 (see FIG. 26) extracted from the moving image as the third technique.
  • the information processing device 100 first performs self-position estimation of the terminal device 300 using the first or third method in addition to the second method.
  • the information processing apparatus 100 switches the method of self-position estimation from the third method to the second method.
  • the information processing apparatus 100 can estimate the self-position of the terminal device 300 with accuracy that satisfies the desired accuracy while suppressing an increase in the processing load.
  • the information processing device 100 estimates the self-position of the terminal device 300 using the third method at the time of product introduction, but the present invention is not limited to this.
  • the information processing device 100 may use the first method instead of the third method to estimate the self-position of the terminal device 300 .
  • the first method imposes a high processing load on the information processing apparatus 100, but the self-position estimation accuracy is high.
  • the information processing apparatus 100 can use the first method instead of the third method.
  • the information processing apparatus 100 estimates the self-position of the terminal device 300 using the first method, and shifts from the first method to the second method when the estimation accuracy of the second method is equal to or higher than the desired accuracy.
  • the information processing apparatus 100 can further reduce an increase in processing load while estimating the self-position with higher accuracy.
  • the terminal device 300 may implement at least part of the functions of the information processing device 100 of the present embodiment.
  • the terminal device 300 may execute the map generation process, or may execute the self-position estimation process of the terminal device 300 .
  • the information processing device 100 and the terminal device 300 may perform the processing separately, such as the information processing device 100 performing the map generation processing and the terminal device 300 performing the self-position estimation processing. good.
  • the information processing system 1 is, for example, a system that provides game services to users U, but is not limited to this.
  • the information processing system 1 may be an automatic driving system.
  • the terminal device 300 is a moving object such as a vehicle or a drone, and the information processing device 100 estimates the self-position of the moving object.
  • a communication program for executing the above operations is distributed by storing it in a computer-readable recording medium such as an optical disk, semiconductor memory, magnetic tape, or flexible disk.
  • the control device is configured by installing the program in a computer and executing the above-described processing.
  • the control device may be a device (for example, a personal computer) external to the information processing device 100 , the terminal device 300 and the server device 500 .
  • the control device may be a device inside the information processing device 100, the terminal device 300, and the server device 500 (for example, the control units 130, 350, and 530).
  • the above communication program may be stored in a disk device provided in a server device on a network such as the Internet, so that it can be downloaded to a computer.
  • the functions described above may be realized through cooperation between an OS (Operating System) and application software.
  • the parts other than the OS may be stored in a medium and distributed, or the parts other than the OS may be stored in a server device so that they can be downloaded to a computer.
  • each component of each device illustrated is functionally conceptual and does not necessarily need to be physically configured as illustrated.
  • the specific form of distribution and integration of each device is not limited to the illustrated one, and all or part of them can be functionally or physically distributed and integrated in arbitrary units according to various loads and usage conditions. Can be integrated and configured. Note that this distribution/integration configuration may be performed dynamically.
  • the present embodiment can be applied to any configuration that constitutes a device or system, such as a processor as a system LSI (Large Scale Integration), a module using a plurality of processors, a unit using a plurality of modules, etc. Furthermore, it can also be implemented as a set or the like (that is, a configuration of a part of the device) to which other functions are added.
  • a processor as a system LSI (Large Scale Integration)
  • module using a plurality of processors a unit using a plurality of modules, etc.
  • it can also be implemented as a set or the like (that is, a configuration of a part of the device) to which other functions are added.
  • the system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether all the components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a single device housing a plurality of modules in one housing, are both systems. .
  • this embodiment can take a configuration of cloud computing in which one function is shared by a plurality of devices via a network and processed jointly.
  • FIG. 33 is a hardware configuration diagram showing an example of a computer 1000 that implements the functions of the information processing apparatus 100 according to the embodiment of the present disclosure.
  • the computer 1000 has a CPU 1100 , a RAM 1200 , a ROM (Read Only Memory) 1300 , a HDD (Hard Disk Drive) 1400 , a communication interface 1500 and an input/output interface 1600 .
  • Each part of computer 1000 is connected by bus 1050 .
  • the CPU 1100 operates based on programs stored in the ROM 1300 or HDD 1400 and controls each section. For example, the CPU 1100 loads programs stored in the ROM 1300 or HDD 1400 into the RAM 1200 and executes processes corresponding to various programs.
  • the ROM 1300 stores boot programs such as BIOS (Basic Input Output System) executed by the CPU 1100 when the computer 1000 is started, and programs dependent on the hardware of the computer 1000.
  • BIOS Basic Input Output System
  • the HDD 1400 is a computer-readable recording medium that non-temporarily records programs executed by the CPU 1100 and data used by such programs.
  • HDD 1400 is a recording medium that records a program for the information processing method according to the present disclosure, which is an example of program data 1450 .
  • a communication interface 1500 is an interface for connecting the computer 1000 to an external network 1550 (for example, the Internet).
  • CPU 1100 receives data from another device via communication interface 1500, and transmits data generated by CPU 1100 to another device.
  • the input/output interface 1600 is an interface for connecting the input/output device 1650 and the computer 1000 .
  • the CPU 1100 receives data from input devices such as a keyboard and mouse via the input/output interface 1600 .
  • the CPU 1100 also transmits data to an output device such as a display, speaker, or printer via the input/output interface 1600 .
  • the input/output interface 1600 may function as a media interface for reading a program or the like recorded on a predetermined computer-readable recording medium.
  • Media include, for example, optical recording media such as DVD (Digital Versatile Disc) and PD (Phase change rewritable disk), magneto-optical recording media such as MO (Magneto-Optical disk), tape media, magnetic recording media, semiconductor memories, etc. is.
  • the CPU 1100 of the computer 1000 implements the functions of the control unit 130 and the like by executing programs loaded on the RAM 1200.
  • CPU 1100 reads program data 1450 from HDD 1400 and executes it, as another example, an information processing program may be obtained from another device via external network 1550 .
  • the information processing apparatus 100 may be applied to a system composed of a plurality of devices on the premise of connection to a network (or communication between devices), such as cloud computing. good. That is, the information processing apparatus 100 according to the present embodiment described above can be realized as the information processing system 1 according to the present embodiment by, for example, a plurality of apparatuses.
  • Each component described above may be configured using general-purpose members, or may be configured by hardware specialized for the function of each component. Such a configuration can be changed as appropriate according to the technical level of implementation.
  • the present technology can also take the following configuration.
  • (1) Acquiring the display area of the display device included in the image captured by the imaging device, generating a three-dimensional mask area and a three-dimensional feature point map based on the obtained display area; Using at least one of the three-dimensional mask region and the three-dimensional feature point map, and feature points extracted from the image captured by the imaging device, at least one of the position and orientation of the imaging device is estimated.
  • control unit Information processing device.
  • control unit sets a space including the display area in a three-dimensional space as the three-dimensional mask area.
  • control unit calculating a display plane including the display area in the three-dimensional space from at least three feature points included in the display area of the image; calculating the display area on the display plane based on an intersection of a vector directed from the imaging device to a corner of the display area of the image and the display plane; setting an area obtained by dilating the display area in three directions as the three-dimensional mask area;
  • the information processing device according to (3).
  • the control unit estimates at least one of the position and the orientation of the imaging device based on the feature points corresponding to an area outside the three-dimensional mask area among the plurality of feature points extracted from the image. , (1) to (4).
  • the control unit calculating a two-dimensional mask region corresponding to the three-dimensional mask region in the image captured by the imaging device based on at least one of the position and the posture of the imaging device and the three-dimensional mask region; The information processing device according to (5), wherein at least one of the position and the orientation of the imaging device is estimated based on the feature points outside the two-dimensional mask region in the image.
  • the information processing apparatus acquires the display area by detecting a predetermined image displayed on the display.
  • the information processing device receives designation of the display area from a user.
  • the control unit displaying a predetermined pattern image in a first area of the display area; estimating at least one of the position and the orientation of the imaging device based on the plurality of feature points extracted from the image captured by the imaging device; The information processing device according to any one of (1) to (8).
  • the control unit displays the predetermined pattern image based on an instruction from the control device, and based on the plurality of feature points extracted from the image captured by the imaging device, the position of the imaging device and the using a first estimation process of estimating at least one of a posture, at least one of the three-dimensional mask region and the three-dimensional feature point map, and feature points extracted from the image captured by the imaging device; , and a second estimation process of estimating at least one of the position and orientation of the imaging device.
  • the control unit calculating a two-dimensional mask region corresponding to the three-dimensional mask region in the image captured by the imaging device based on at least one of the position and the posture of the imaging device and the three-dimensional mask region; detecting the predetermined pattern image displayed in the display area; Notifying the control device of a determination result of determining whether the predetermined pattern image is included in the two-dimensional mask area; The information processing device according to (10). (12) The control device determines an estimation process to be executed by the control unit from among the first estimation process and the second estimation process according to the determination result, and notifies the control unit of the determination result, ( 11) The information processing device described in 11).
  • the information processing device according to any one of (1) to (12), wherein the imaging device is mounted on a device worn on a user's head.
  • (14) Acquiring a display area of a display device included in an image captured by an imaging device; generating a 3D mask region and a 3D feature point map based on the obtained display region; estimating at least one of the position and orientation of the imaging device using at least one of the three-dimensional mask region and the three-dimensional feature point map, and feature points extracted from the image captured by the imaging device; and, Information processing methods, including (15) to the computer, Acquiring a display area of a display device included in an image captured by an imaging device; generating a three-dimensional mask area and a three-dimensional feature point map based on the acquired display area; Using at least one of the three-dimensional mask region and the three-dimensional feature point map, and feature points extracted from the image captured by the imaging device, at least one of the position and orientation of the imaging device is estimated; program.
  • information processing system 100 information processing device 110, 310, 510 communication unit 120, 520 storage unit 130, 350, 530 control unit 131 map generation unit 132 self-position estimation unit 200 display device 220, 320 sensor unit 300 terminal device 330 display unit 340 input unit 400 controller 500 server device

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Navigation (AREA)

Abstract

情報処理装置(100)は、制御部(130)を備える。制御部(130)は、撮像装置によって撮像された画像に含まれる表示装置(200)の表示領域を取得する。制御部(130)は、取得した表示領域に基づき、3次元マスク領域及び3次元特徴点マップを生成する。制御部(130)は、3次元マスク領域及び3次元特徴点マップの少なくとも一方、及び、撮像装置によって撮像された画像から抽出した特徴点を用いて、撮像装置の位置及び姿勢の少なくとも一方を推定する。

Description

情報処理装置、情報処理方法及びプログラム
 本開示は、情報処理装置、情報処理方法及びプログラムに関する。
 従来、AR(Augmented Reality)やVR(Virtual Reality)、自動運転などの分野では、機器に搭載されたセンサのセンシング結果に基づき、機器の実空間上における位置及び姿勢を推定する技術が知られている。例えば、実空間上の特徴点を抽出し、特徴点に属性や優先度を付した特徴点マップを生成する技術が知られている。当該技術において、情報処理装置は、属性や優先度に応じて特徴点を選択して自己位置を推定する。
国際公開第2017/168899号
 例えば、撮像装置が取得した撮像画像から特徴点を抽出し、撮像装置(又は、撮像装置が搭載される機器)の自己位置を推定する場合、撮像画像に動画像領域が含まれると、自己位置推定の精度が劣化する恐れがある。
 例えば、撮像画像から抽出した特徴点と、特徴点マップに保存された特徴点と、を比較して撮像装置の自己位置を推定する場合、撮像画像の動画像領域に含まれる特徴点が、特徴点マップに保存されていない恐れがある。この場合、撮像装置の正しい自己位置が推定されない恐れがある。
 また、複数のフレームごとに抽出した特徴点をトラッキングして自己位置を推定する場合、動画像領域の特徴点の動きは、撮像装置の動きに対応していない恐れがある。そのため、動画像領域の特徴点の動きに基づいて撮像装置の自己位置を推定すると、正しい自己位置が推定されない恐れがある。
 実空間にテレビ映像やゲーム映像を表示する表示装置が存在する場合、撮像装置が、テレビ映像やゲーム映像を含む撮像画像を取得する恐れがある。撮像画像に、例えばテレビ映像やゲーム映像のような動画像領域が含まれると、撮像装置(又は、撮像装置が搭載される機器)の自己位置を推定する精度が劣化する恐れがある。
 そこで、本開示では、実空間に動画像を表示する表示装置が含まれる場合でも、自己位置をより精度よく推定することができる仕組みを提供する。
 なお、上記課題又は目的は、本明細書に開示される複数の実施形態が解決し得、又は達成し得る複数の課題又は目的の1つに過ぎない。
 本開示の情報処理装置は、制御部を備える。制御部は、撮像装置によって撮像された画像に含まれる表示装置の表示領域を取得する。制御部は、取得した前記表示領域に基づき、3次元マスク領域及び3次元特徴点マップを生成する。制御部は、前記3次元マスク領域及び前記3次元特徴点マップの少なくとも一方、及び、前記撮像装置によって撮像された前記画像から抽出した特徴点を用いて、前記撮像装置の位置及び姿勢の少なくとも一方を推定する。
本開示に係る情報処理システムの概要を説明するための図である。 表示装置を含む撮像画像を用いたVO処理の一例を説明するための図である。 本開示に係る情報処理装置が自己位置推定に使用する特徴点の一例について説明するための図である。 本開示の実施形態に係る端末装置の構成例を示すブロック図である。 本開示の第1実施形態に係る情報処理装置の構成例を示すブロック図である。 本開示の実施形態に係るマップ生成部の構成例を示すブロック図である。 本開示の実施形態に係る物体検出部による表示装置の検出例を説明するための図である。 本開示の実施形態に係るマスク空間算出部が算出するマスク空間について説明するための図である。 本開示の実施形態に係るマスク空間算出部が算出するマスク空間について説明するための図である。 本開示の実施形態に係るマスク空間算出部が算出するマスク空間について説明するための図である。 本開示の実施形態に係るマスク空間算出部が算出するマスク空間について説明するための図である。 本開示の実施形態に係る情報処理装置が特徴点マップの作成のために取得する撮像画像の一例を説明するための図である。 本開示の実施形態に係る情報処理装置が特徴点マップの作成のために取得する撮像画像の一例を説明するための図である。 本開示の実施形態に係る自己位置推定部の構成例を示すブロック図である。 本開示の実施形態に係る撮像画像の一例について説明するための図である。 本開示の実施形態に係る第1特徴点マスク部が実行する特徴点のマスク処理の一例を説明するための図である。 本開示の実施形態に係る撮像画像の一例について説明するための図である。 本開示の実施形態に係る第2特徴点マスク部が実行する特徴点のマスク処理の一例を説明するための図である。 本開示の実施形態に係るマップ生成処理の流れの一例を示すフローチャートである。 本開示の実施形態に係るVO処理の流れの一例を示すフローチャートである。 本開示の実施形態に係るローカライズ処理の流れの一例を示すフローチャートである。 本開示の実施形態の第1変形例に係る表示領域の入力の一例について説明するための図である。 本開示の実施形態の第1変形例に係る表示領域の入力の他の例について説明するための図である。 本開示の実施形態の第1変形例に係る表示領域の入力の他の例について説明するための図である。 本開示の実施形態の第2変形例に係る第1手法の一例を説明するための図である。 本開示の実施形態の第2変形例に係る第3手法の一例を説明するための図である。 本開示の実施形態の第2変形例に係るサーバ装置について説明するための図である。 本開示の実施形態の第2変形例に係るサーバ装置の構成例を示すブロック図である。 本開示の実施形態の第2変形例に係る判定処理の流れの一例を示すフローチャートである。 本開示の実施形態の第2変形例に係る手法取得処理の流れの一例を示すフローチャートである。 は、本開示の実施形態の第2変形例に係るVO処理の流れの一例を示すフローチャートである。 は、本開示の実施形態の第2変形例に係るローカライズ処理の流れの一例を示すフローチャートである。 は、本開示の実施形態に係る情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
 以下に添付図面を参照しながら、本開示の実施形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 また、本明細書及び図面において、具体的な値を示して説明する場合があるが、値は一例であり、別の値が適用されてもよい。
 また、本明細書及び図面において、実施形態の類似する構成要素については、同一の符号の後に異なるアルファベット又は数字を付して区別する場合がある。ただし、類似する構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
 以下に説明される1又は複数の実施形態(実施例、変形例を含む)は、各々が独立に実施されることが可能である。一方で、以下に説明される複数の実施形態は少なくとも一部が他の実施形態の少なくとも一部と適宜組み合わせて実施されてもよい。これら複数の実施形態は、互いに異なる新規な特徴を含み得る。したがって、これら複数の実施形態は、互いに異なる目的又は課題を解決することに寄与し得、互いに異なる効果を奏し得る。
<<1.はじめに>>
<1.1.情報処理システム1の概要>
 図1は、本開示に係る情報処理システム1の概要を説明するための図である。図1に示すように、情報処理システム1は、情報処理装置100と、表示装置200と、端末装置300と、を備える。
 情報処理装置100、表示装置200、及び、端末装置300は、互いに有線又は無線の各種のネットワークを介して通信し得る。なお、ネットワークで用いられる通信方式は、有線又は無線(例えば、WiFi(登録商標)、Bluetooth(登録商標)等)を問わず任意の方式を適用し得る。
 また、情報処理システム1に含まれる情報処理装置100、表示装置200、及び、端末装置300は、図1に図示された数に限定されるものではなく、さらに多く含まれていてもよい。
 端末装置300は、ユーザUが頭部に装着する例えばメガネ型のHMD等のウェアラブルデバイス(アイウェアデバイス)である。
 なお、端末装置300として適用可能なアイウェアデバイスは、実空間の像を透過させる、所謂シースルー型のヘッドマウントディスプレイ(AR(Augmented Reality)グラスであってもよいし、実空間の像を透過させないゴーグルタイプのもの(VR(Virtual Reality)ゴーグル)であってもよい。
 また、本開示においては、端末装置300は、HMDであることに限定されるものではなく、例えば、ユーザUの保持するタブレットやスマートフォン等であってもよい。
 情報処理装置100は、端末装置300の動作を統括的に制御する。情報処理装置100は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等の処理回路等により実現される。なお、本開示に係る情報処理装置100の詳細構成については、後述する。
 表示装置200は、例えば液晶ディスプレイや有機EL(Electro-Luminescence)ディスプレイ等によって実現される。表示装置200は、例えば、情報処理装置100の制御に基づき、各種情報を表示する。
 ここで、近年、ユーザUの動きに応じて処理を行う機器が数多く登場している。例えば、画面に表示されたキャラクタをユーザの動きと同期させることで、キャラクタを動かすゲームなどがある。
 このゲームのようにユーザが常に操作を行う場合、ユーザは操作に没頭する余り周辺環境を意識しなくなり、周辺の物体(障害物)にぶつかるという問題が起こり得る。特にHMDを装着してプレイするVRでは、ユーザが周辺環境を全く確認できない場合もあるため、現実の物体にぶつかる危険性が高くなる。
 そこで、ユーザUの身体の安全を守るために、情報処理装置100は、現実の物体と接触しない安全なプレイエリア(許容領域)を特定し、当該プレイエリア内をユーザUが移動するようHMDを制御する。
 例えば、図1では、領域PAが、ユーザUが障害物にぶつからずに移動したり手を伸ばしたりできるプレイエリアとして特定されている。なお、プレイエリアは、床に示された床領域と、床領域から垂直に延ばした壁と、の組み合わせのように3次元領域として表されてもよい。あるいは、プレイエリアは、床領域の2次元領域として表されてもよい。このように、プレイエリアは2次元領域又は3次元領域として設定され得る。
 領域PAは、HMDに搭載された撮像装置やIMU(Inertial Measurement Unit)等のセンサから取得した情報に基づき、情報処理装置100によって自動で設定され得る。あるいは、領域PAが、ユーザUによって手動で設定されてもよい。
 また、情報処理装置100は、周辺環境の特徴点Pを3次元の特徴点マップとして記憶する。プレイエリアPAは、特徴点マップに対して定義され得る。特徴点マップ及びプレイエリアPAは、例えばユーザUが情報処理システム1を初めて使用する場合、あるいは、ユーザUがゲームを開始する場合に、設定され得る。
 情報処理装置100は、特徴点マップに対して端末装置300の位置及び姿勢の少なくとも一方(以下、単に自己位置とも記載する)を同定することで、例えば部屋等の実空間に対する端末装置300の自己位置及びプレイエリアPAを同定する。このように、特徴点マップに対して端末装置300の自己位置を推定する処理をローカライズ処理とも記載する。
 また、情報処理装置100は、端末装置300に搭載されるセンサが取得したセンサ情報を用いて、周辺環境の情報等を取得する。例えば、情報処理装置100は、端末装置300に搭載される撮像装置(図示省略)の撮像画像に基づき、インサイドアウト方式により端末装置300の自己位置を検出する。
 情報処理装置100は、例えば、端末装置300に搭載される撮像装置の撮像画像に含まれる特徴点Pを抽出する。情報処理装置100は、撮像装置が動いた際の特徴点Pの動きから、端末装置の自己位置を推定する。このように、撮像画像の特徴点Pの動きから端末装置300の自己位置を推定する処理をビジュアルオドメトリ(VO)処理とも記載する。
 情報処理装置100は、ローカライズ処理及びVO処理を同時に行う。情報処理装置100は、VO処理によって端末装置300の素早い動きに対応するとともに、ローカライズ処理によって端末装置300とプレイエリアPAとの相対位置の整合性を保持する。
<1.2.課題>
 ここで、図1に示すように、実空間に動画像を表示し得る表示装置200が存在する場合、端末装置300の自己位置の推定精度が劣化する恐れがある。
 図2は、表示装置200を含む撮像画像M1を用いたVO処理の一例を説明するための図である。なお、図2の上図は、時刻t1で端末装置300が取得した撮像画像M1を示しており、図2の下図は、時刻t2で端末装置300が取得した撮像画像M2を示している。
 例えば、ユーザUが表示装置200の方を向いている(図1参照)場合、図2の上図に示すように、端末装置300が時刻t1で取得する撮像画像M1には、表示装置200が含まれる。この場合、情報処理装置100は、表示装置200の表示画面を含む領域(以下、表示領域とも記載する)外において複数の特徴点P11を取得する。また、情報処理装置100は、表示領域内において複数の特徴点P12を取得する。
 次に、図2の下図に示すように、時刻t1の次の時刻t2において、端末装置300は、撮像画像M2を取得する。ここでは、時刻t2において、ユーザUが時刻t1より左方向に移動したものとする。
 図2の下図に示すように、時刻t2で取得した撮像画像M2にも表示装置200が含まれる場合、情報処理装置100は、表示装置200の表示領域外において複数の特徴点P21を取得する。また、情報処理装置100は、表示領域内において複数の特徴点P22を取得する。
 図2の下図に示すように、情報処理装置100は、撮像画像M1、M2に含まれる特徴点のうち同じ特徴点を選択し、当該特徴点の動き(図中、矢印参照)をトラッキングすることで、端末装置300の動きを検出する。情報処理装置100は、検出した動きから端末装置300の自己位置を推定する。
 ここで、表示装置200に例えば動画像が表示されているとする。この場合、表示領域外で検出された特徴点P11、P21の動きV12と、表示領域内で検出された特徴点P12、P22の動きV22と、が異なる恐れがある。これは、表示領域外の特徴点P11、P21は、端末装置300の動きに対応して移動するが、表示領域内の特徴点P12、P22は、表示装置200に表示される動画像の動きに対応して移動するためである。
 そのため、情報処理装置100が、特徴点P11、P21の動きV12と、特徴点P12、P22の動きV22を用いて端末装置300の自己位置を推定すると、自己位置がずれて(ドリフトして)しまい、自己位置の推定精度が劣化する場合がある。
 ここでは、情報処理装置100がVO処理を用いて端末装置300の自己位置を推定する場合の精度劣化について説明したが、ローカライズ処理でも同様に自己位置の推定精度が劣化する。これは、表示装置200に表示される画像が特徴点マップ作成時と異なると、情報処理装置100が、特徴点マップに含まれない特徴点を抽出する恐れがあるためである。
 このように、表示装置200に動画像が表示されていると、表示装置200の表示画面から抽出した特徴点の動きに影響を受けて、端末装置300の自己位置の推定精度が劣化する恐れがある。
<1.3.提案技術の概要>
 そこで、本開示に係る情報処理システム1は、表示領域に対応する特徴点に基づき、端末装置300の自己位置を推定する。本開示に係る情報処理装置100は、端末装置300に搭載される撮像装置によって撮像された撮像画像に含まれる表示装置200の表示領域を取得する。情報処理装置100は、取得した表示領域に基づき、3次元マスク領域及び3次元の特徴点マップを生成する。情報処理装置100は、3次元マスク領域及び特徴点マップの少なくとも一方、及び、撮像装置による撮像画像から抽出した特徴点を用いて、撮像装置の位置及び姿勢の少なくとも一方を推定する。
 図3は、本開示に係る情報処理装置100が自己位置推定に使用する特徴点の一例について説明するための図である。
 図3に示すように、情報処理装置100は、表示装置200の表示領域に基づき、3次元マスク領域を設定する。図3の例では、情報処理装置100は、表示装置200の表示領域を含む直方体の空間を3次元マスク領域S(以下、マスク空間Sとも記載する)として設定する。
 情報処理装置100は、画角MVで撮像した撮像画像Mに含まれる複数の特徴点のうち、マスク空間S外の空間に存在する特徴点Pを使用して、特徴点マップの生成を行う。また、情報処理装置100は、マスク空間S外の空間に存在する特徴点Pを使用して、VO処理やローカライズ処理等を行い、撮像装置(又は、端末装置300)の自己位置を推定する。
 このように、情報処理装置100は、表示装置200が動画像を表示し得る表示領域の情報を用いて端末装置300の自己位置を推定する。これにより、情報処理装置100は、表示装置200が動画像を表示していたとしても、表示装置200に対応する特徴点を自己位置推定に使用しないようにすることができ、自己位置の推定精度の劣化を抑制することができる。
<<2.情報処理システム>>
<2.1.端末装置の構成例>
 図4は、本開示の実施形態に係る端末装置300の構成例を示すブロック図である。図4に示すように、端末装置300は、通信部310と、センサ部320と、表示部330と、入力部340と、制御部350と、を含む。
[通信部310]
 通信部310は、他の装置との間で情報の送受信を行う。例えば、通信部310は、制御部350の制御に従って、映像の再生要求やセンサ部320のセンシング結果を情報処理装置100へ送信する。また、通信部310は、再生対象の映像を情報処理装置100から受信する。
[センサ部320]
 センサ部320は、例えば、撮像装置(イメージセンサ)、デプスセンサ、マイクロフォン、加速度センサ、ジャイロスコープ、地磁気センサ、GPS(Global Positioning System)受信機などを含み得る。また、センサ部320は、速度センサ、加速度センサ、角速度センサ(ジャイロセンサ)、及び、それらを統合した慣性計測装置(IMU:Inertial Measurement Unit)を含み得る。
 例えば、センサ部320は、実空間における端末装置300の向きや姿勢、または、加速度などをセンシングする。また、センサ部320は、端末装置300の周囲のデプス情報をセンシングする。なお、センサ部320がデプス情報をセンシングする測距装置を含む場合、当該測距装置は、ステレオカメラ、ToF(Time of Flight)方式の距離イメージセンサなどであり得る。
[表示部330]
 表示部330は、制御部350の制御に従って、映像を表示する。例えば、表示部330は、右目用表示部及び左目用表示部(図示省略)を有し得る。この場合、右目用表示部は、端末装置300に含まれる右目用レンズ(図示省略)の少なくとも一部の領域を投影面として映像を投影する。左目用表示部は、端末装置300に含まれる左目用レンズ(図示省略)の少なくとも一部の領域を投影面として映像を投影する。
 あるいは、端末装置300がゴーグル型レンズを有する場合には、表示部330は、当該ゴーグル型レンズの少なくとも一部の領域を投影面として映像を投影し得る。なお、左目用レンズおよび右目用レンズ(またはゴーグル型レンズ)は、例えば樹脂やガラスなどの透明材料により形成され得る。
 あるいは、表示部330は、非透過型の表示装置として構成され得る。例えば、表示部330は、LCD(Liquid Crystal Display)、または、OLED(Organic ライト Emitting Diode)などを含んで構成され得る。なお、この場合、センサ部320(カメラ)により撮影される、ユーザUの前方の映像が表示部330に逐次表示されてもよい。これにより、ユーザUは、当該表示部330に表示される映像を介して、ユーザUの前方の風景を視認し得る。
[入力部340]
 入力部340は、タッチパネル、ボタン、レバー、スイッチなどを含み得る。入力部340は、ユーザUの各種の入力を受け付ける。例えば、仮想空間内にAIキャラクタが配置される場合、入力部340は、当該AIキャラクタの配置位置等を変更させるためのユーザUの入力を受け付け得る。
[制御部350]
 制御部350は、端末装置300に内蔵される例えばCPU、GPU(Graphics Processing Unit)及びRAMなどを用いて、端末装置300の動作を統括的に制御する。例えば、制御部350は、情報処理装置100から受信される映像を表示部330に表示させる。
 一例として、情報処理装置100が全天球映像を受信するとする。この場合、制御部350は、当該全天球映像のうち、端末装置300(またはユーザUなど)の位置および姿勢の情報に対応する部分の映像を表示部330に表示させる。
 また、表示部330が右目用表示部及び左目用表示部(図示省略)を有する場合、制御部350は、情報処理装置100から受信される映像に基づいて右目用画像および左目用画像を生成する。そして、制御部350は、右目用画像を右目用表示部に表示させ、左目用画像を左目用表示部に表示させる。これにより、制御部350は、立体視映像をユーザUに視聴させることができる。
 また、制御部350は、センサ部320によるセンシング結果に基づいて各種の認識処理を行い得る。例えば、制御部350は、端末装置300を装着するユーザUの行動(例えば、ユーザUのジェスチャやユーザUの移動など)を当該センシング結果に基づいて認識し得る。
<2.2.情報処理装置の構成例>
 図5は、本開示の第1実施形態に係る情報処理装置100の構成例を示すブロック図である。図5に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130と、を含む。
[通信部110]
 通信部110は、他の装置との間で情報の送受信を行う。例えば、通信部110は、制御部130の制御に従って、再生対象の映像を情報処理装置100へ送信する。また、通信部110は、映像の再生要求やセンシング結果を端末装置300から受信する。また、通信部110は、ネットワークを介してゲームサーバなどの外部サーバと通信し得る。
[記憶部120]
 記憶部120は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
 記憶部120は、特徴点地図DB121と、マスク空間DB122とを有する。特徴点地図DB121は、制御部130で生成される特徴点マップを記憶する。マスク空間DB122は、制御部130で生成されるマスク空間を記憶する。
[制御部130]
 制御部130は、情報処理装置100に内蔵される例えばCPU、GPU(Graphics Processing Unit)及びRAMなどを用いて、情報処理装置100の動作を統括的に制御する。例えば、制御部130は、情報処理装置100内部の記憶装置に記憶されている各種プログラムを、プロセッサがRAM(Random Access Memory)等を作業領域として実行することにより実現される。なお、制御部130は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。CPU、MPU、ASIC、及びFPGAは何れもコントローラとみなすことができる。
 制御部130は、図5に示すように、マップ生成部131と、自己位置推定部132と、を備える。制御部130を構成する各ブロック(マップ生成部131、自己位置推定部132)はそれぞれ制御部130の機能を示す機能ブロックである。これら機能ブロックはソフトウェアブロックであってもよいし、ハードウェアブロックであってもよい。例えば、上述の機能ブロックが、それぞれ、ソフトウェア(マイクロプログラムを含む。)で実現される1つのソフトウェアモジュールであってもよいし、半導体チップ(ダイ)上の1つの回路ブロックであってもよい。勿論、各機能ブロックがそれぞれ1つのプロセッサ又は1つの集積回路であってもよい。機能ブロックの構成方法は任意である。なお、制御部130は上述の機能ブロックとは異なる機能単位で構成されていてもよい。
[マップ生成部131]
 マップ生成部131は、端末装置300が取得した撮像画像に基づき、マスク空間及び特徴点マップを生成する。
 図6は、本開示の実施形態に係るマップ生成部131の構成例を示すブロック図である。マップ生成部131は、第1センサ情報取得部1311と、第1VO処理部1312と、第1ローカライズ処理部1313と、第1フィルタ処理部1314と、特徴点登録部1315と、物体検出部1316と、マスク空間算出部1317と、を備える。
[第1センサ情報取得部1311]
 第1センサ情報取得部1311は、端末装置300のセンサ部220(図4参照)によるセンシング結果をセンサ情報として取得する。センサ情報には、例えば、撮像装置やIMUなどが取得したセンサデータ(例えば、撮像画像、加速度、角速度など)が含まれる。
 図6に示す第1センサ情報取得部1311は、取得したセンサ情報を、第1VO処理部1312、第1ローカライズ処理部1313、及び、物体検出部1316に出力する。
[第1VO処理部1312]
 第1VO処理部1312は、第1センサ情報取得部1311が取得したセンサ情報に基づき、ビジュアルオドメトリ法を用いて、端末装置300の自己位置を推定する。第1VO処理部1312は、第1-1特徴点抽出部1312Aと、第1特徴点追跡部1312Cと、第1運動推定部1312Dと、を備える。
 第1-1特徴点抽出部1312Aは、例えば、画像フレーム間の運動(位置、姿勢)を推定するための特徴点を撮像画像から抽出する。第1-1特徴点抽出部1312Aは、抽出した特徴点を第1特徴点追跡部1312Cに出力する。
 第1特徴点追跡部1312Cは、例えば、第1-1特徴点抽出部1312Aが抽出した特徴点を追跡する。第1特徴点追跡部1312Cは、例えば、画像フレーム間で対応する特徴点を選択し、選択した特徴点の動きを算出する。第1特徴点追跡部1312Cは、算出した特徴点の動きに関する動き情報を、第1運動推定部1312Dに出力する。
 第1運動推定部1312Dは、第1特徴点追跡部1312Cから取得した動き情報、及び、第1センサ情報取得部1311から取得したIMUセンサのセンサ情報(例えば、加速度、角速度など)に基づき、撮像装置(又は、端末装置300)の運動情報を推定する。運動情報には、例えば、撮像装置の位置情報や姿勢情報が含まれる。第1運動推定部1312Dは、推定した運動情報を第1フィルタ処理部1314に出力する。
[第1ローカライズ処理部1313]
 第1ローカライズ処理部1313は、第1センサ情報取得部1311が取得したセンサ情報に基づき、ローカライズ処理を行って、端末装置300の自己位置を推定する。第1ローカライズ処理部1313は、第1-2特徴点抽出部1313Aと、第1特徴点マッチング部1313Cと、第1位置姿勢推定部1313Dと、を備える。
 第1-2特徴点抽出部1313Aは、例えば、特徴点マップの作成、及び、特徴点マップに対する自己位置推定に使用する特徴点を撮像画像から抽出する。第1-2特徴点抽出部1313Aは、抽出した特徴点を第1特徴点マッチング部1313Cに出力する。
 第1特徴点マッチング部1313Cは、第1-2特徴点抽出部1313Aが抽出した特徴点と、特徴点マップに含まれる特徴点と、をマッチングする。第1特徴点マッチング部1313Cは、マッチング結果を第1位置姿勢推定部1313Dに出力する。
 第1位置姿勢推定部1313Dは、第1特徴点マッチング部1313Cによる特徴点のマッチング結果に基づき、特徴点マップに対する撮像装置(又は、端末装置300)の位置姿勢情報を推定する。第1位置姿勢推定部1313Dは、推定した位置姿勢情報を第1フィルタ処理部1314に出力する。
[第1フィルタ処理部1314]
 第1フィルタ処理部1314は、第1VO処理部1312が推定した運動情報、及び、第1ローカライズ処理部1313が推定した位置姿勢情報に対してフィルタリングを行って2つの情報を統合し、撮像装置(又は、端末装置300)の自己位置情報を推定する。第1フィルタ処理部1314は、例えば、拡張カルマンフィルタを用いて運動情報及び位置姿勢情報を統合し、自己位置情報を生成する。これにより、情報処理装置100は、安定して端末装置300の自己位置を推定することができる。
 第1フィルタ処理部1314は、生成した自己位置情報を特徴点登録部1315、及び、マスク空間算出部1317に出力する。
[特徴点登録部1315]
 特徴点登録部1315は、第1フィルタ処理部1314が生成した自己位置情報、及び、第1ローカライズ処理部1313が抽出した特徴点に基づき、特徴点マップの生成又は更新を行う。例えば、特徴点登録部1315は、端末装置300の位置姿勢に基づいて特徴点を特徴点マップに登録する。当該特徴点マップは、特徴点地図DB121に保存される。
[物体検出部1316]
 物体検出部1316は、第1センサ情報取得部1311が取得したセンサ情報に基づき、撮像画像に含まれる表示装置200を検出する。
 図7は、本開示の実施形態に係る物体検出部1316による表示装置200の検出例を説明するための図である。
 図7に示すように、表示装置200には、例えば、固定パターン画像(所定の画像の一例)が表示されているものとする。表示装置200は、例えば、情報処理装置100からの指示に従って、固定パターン画像を表示する。
 物体検出部1316は、撮像画像から、固定パターン画像を検出することで、表示装置200の表示領域200Rを検出する。
 図6に戻り、物体検出部1316は、検出した表示領域200Rに関する表示領域情報をマスク空間算出部1317に出力する。
 なお、ここでは、物体検出部1316が固定パターン画像を検出することで表示装置200の表示領域200Rを検出するとしたが、これに限定されない。例えば、物体検出部1316が、Semantic Segmentationを使用して表示装置200の表示領域200Rを検出するようにしてもよい。
[マスク空間算出部1317]
 図6に示すマスク空間算出部1317は、物体検出部1316から取得した表示領域情報、及び、第1フィルタ処理部1314から取得した端末装置300の自己位置に基づき、マスク空間Sを算出する。
 図8~図11は、本開示の実施形態に係るマスク空間算出部1317が算出するマスク空間Sについて説明するための図である。
 上述したように、マスク空間算出部1317は、物体検出部1316から表示領域情報を取得する。表示領域情報は、撮像画像上の表示領域200Rを示す情報である。この表示領域情報から特徴点マップの座標系(以下、マップ座標系とも記載する)における表示装置200の位置を特定することは難しい。これは、表示装置200の大きさが使用する環境(情報処理システム1)によって異なるためである。
 図8に示すように、撮像画像M上に同じ大きさの矩形領域として表示領域200Rが撮影されたとしても、画面サイズが小さい表示装置200Aは、端末装置300の近くに位置し、画面サイズが大きい表示装置200Bは、端末装置300から遠くに位置する。
 このように、物体検出部1316が検出した表示領域情報からでは、マップ座標系における表示装置200の位置を一意に特定できない場合がある。
 そこで、本開示の実施形態に係るマスク空間算出部1317は、図9に示す撮像画像Mから抽出した特徴点P2及び表示領域200Rの角部C1~C4を用いてマップ座標系における表示装置200の位置を算出する。
 まず、マスク空間算出部1317は、図9に示すように、撮像画像Mから複数の特徴点を抽出する。複数の特徴点には、表示領域200R外に存在する複数の特徴点P1と、表示領域200R内に存在する複数の特徴点P2と、が含まれる。
 図10に示すように、マスク空間算出部1317は、表示領域200R内に存在する少なくとも3つの特徴点P2を使用して、表示領域200Rを含む表示平面MTVを算出する。また、マスク空間算出部1317は、端末装置300から撮像画像M上の角部C1~C4にのびるベクトルV1~V4と、表示平面MTVとの交点C11~C14を算出する。マスク空間算出部1317は、交点C11~C14を頂点とする矩形領域を、マップ座標系における表示領域200Rとする。
 図11に示すように、マスク空間算出部1317は、マップ座標系における表示領域200Rを縦・横・奥行きの3方向に膨張(伸張)させた直方体の領域をマスク空間Sとして算出する。これにより、マスク空間算出部1317は、マップ座標系において、表示装置200を含む3次元領域をマスク空間Sとして設定することができる。
 図6に戻り、マスク空間算出部1317は、算出したマスク空間Sをマスク空間DBに保存する。
 情報処理装置100がマップを作成する場合、例えば、ユーザUに対して、プレイエリアPA内を移動したり、実空間を見回したりして、様々な位置や角度で撮像画像Mを取得するよう指示する。情報処理装置100は、ユーザUが移動しながら撮影した撮像画像Mを用いて特徴点マップの作成/更新やマスク空間Sの作成/更新等を行う。
 図12及び図13は、本開示の実施形態に係る情報処理装置100が特徴点マップの作成のために取得する撮像画像Mの一例を説明するための図である。
 例えば、図11に示すように表示装置200側を向いていたユーザUは、情報処理装置100からの指示に従って、図12に示すように、窓側に向きを変更する。これにより、情報処理装置100は、図13に示すように、窓側を画角MV3で撮影した撮像画像M3を取得する。
 情報処理装置100のマップ生成部131は、撮像画像M3に含まれる特徴点P1に基づき、特徴点マップの生成/更新を行う。このように、ユーザUが実空間を移動したり、見回したりして撮像画像Mを取得することで、情報処理装置100は、実空間の特徴点マップをより高精度に生成することができる。
 このとき、本開示の実施形態に係るマップ生成部131は、特徴点マップに加え、マスク空間Sの生成/更新を行う。そこで、マップ生成部131が、生成したマスク空間Sに基づいて特徴点マップの生成/更新を行うようにしてもよい。
 具体的に、図6に示す特徴点登録部1315は、特徴点マップに特徴点を登録する場合、マスク空間S外の特徴点を特徴点マップに登録するようにする。すなわち、特徴点登録部1315は、マスク空間S外の特徴点を使用して特徴点マップの生成/更新を行う。例えば、図11では、マップ生成部131は、マスク空間S外の特徴点P1、及び、マスク空間S内の特徴点P2の両方を抽出する。特徴点登録部1315は、例えば、マスク空間S内の特徴点P2を削除し、マスク空間S外の特徴点P1を特徴点マップに登録する。
 なお、ここでは、特徴点登録部1315が特徴点マップを生成するときにマスク空間Sを用いるとしたが、これに限定されない。例えば、第1VO処理部1312及び第1ローカライズ処理部1313において、端末装置300の自己位置を推定する場合に、マスク空間Sを用いるようにしてもよい。かかる処理において、マスク空間Sを用いる方法については、後述する。
[自己位置推定部132]
 図5に戻る。自己位置推定部132は、マスク空間及び特徴点マップの少なくとも一方、及び、端末装置300が取得した撮像画像を用いて、端末装置300の自己位置を推定する。
 図14は、本開示の実施形態に係る自己位置推定部132の構成例を示すブロック図である。自己位置推定部132は、第2センサ情報取得部1321と、第2VO処理部1322と、第2ローカライズ処理部1323と、第2フィルタ処理部1324と、を備える。
[第2センサ情報取得部1321]
 第2センサ情報取得部1321は、端末装置300のセンサ部220(図4参照)によるセンシング結果をセンサ情報として取得する。第2センサ情報取得部1321は、取得したセンサ情報を、第2VO処理部1322、及び、第2ローカライズ処理部1323に出力する。
[第2VO処理部1322]
 第2VO処理部1322は、第2センサ情報取得部1321が取得したセンサ情報に基づき、ビジュアルオドメトリ法を用いて、端末装置300の自己位置を推定する。第2VO処理部1322は、第2-1特徴点抽出部1322Aと、第1特徴点マスク部1322Bと、第2特徴点追跡部1322Cと、第2運動推定部1322Dと、を備える。
 以下、図15及び図16を用いて、第2VO処理部1322の各部が行う処理の一例について説明する。図15は、本開示の実施形態に係る撮像画像Mの一例について説明するための図である。図16は、本開示の実施形態に係る第1特徴点マスク部1322Bが実行する特徴点のマスク処理の一例を説明するための図である。
(第2-1特徴点抽出部1322A)
 図14に示す第2-1特徴点抽出部1322Aは、例えば、画像フレーム間の運動(位置、姿勢)を推定するための特徴点を撮像画像Mから抽出する。
 ここで、図15に示すように、ユーザUの視線が右から左に動くものとする。この場合、端末装置300は、時刻t1において画角MV1の撮像画像M1を取得し、時刻t2において画角MV2の撮像画像M2を取得する。
 第2-1特徴点抽出部1322Aは、撮像画像M1、M2から特徴点P11、P12、P21、P22(図16参照)を抽出する。図14に示すように、第2-1特徴点抽出部1322Aは、抽出した特徴点を第1特徴点マスク部1322Bに出力する。
(第1特徴点マスク部1322B)
 図14に示す第1特徴点マスク部1322Bは、第2-1特徴点抽出部1322Aが抽出した特徴点のうち、マスク空間Sに対応する特徴点をマスクする。
 図16の上図に示すように、第1特徴点マスク部1322Bは、例えば、端末装置300の自己位置及びマスク空間Sに関する情報に基づき、撮像画像M1におけるマスク空間Sに対応する2次元マスク領域S2(以下、マスク領域S2とも記載する)を算出する。例えば、第1特徴点マスク部1322Bは、マスク空間Sを撮像画像M1に投影することで、マスク領域S2を算出する。
 第1特徴点マスク部1322Bは、撮像画像M1のうち、マスク領域S2外の領域(以下、マスク外領域とも記載する)の特徴点P11を選択して第2特徴点追跡部1322Cに出力する。第1特徴点マスク部1322Bは、例えばマスク領域S2内の特徴点P12を削除し、残りの特徴点P11をVO処理に使用する特徴点として選択する。
 図16の下図に示すように、第1特徴点マスク部1322Bは、撮像画像M2に対しても同様にマスク領域S2を算出する。また、第1特徴点マスク部1322Bは、撮像画像M2のうち、マスク外領域の特徴点P21を選択し、マスク領域S2内の特徴点P12を削除する。
 図14に戻り、第1特徴点マスク部1322Bは、選択した特徴点P21を第2特徴点追跡部1322Cに出力する。
(第2特徴点追跡部1322C)
 図14に示す第2特徴点追跡部1322Cは、例えば、第1特徴点マスク部1322Bが選択した特徴点を追跡する。第2特徴点追跡部1322Cは、例えば、撮像画像M1、M2で対応する特徴点を検出し、検出した特徴点の動きV12(図16の下図参照)を算出する。第2特徴点追跡部1322Cは、算出した特徴点の動きV12に関する動き情報を、第2運動推定部1322Dに出力する。
 ここで、第2特徴点追跡部1322Cが追跡する特徴点P11、P21は、第1特徴点マスク部1322Bによって、マスク領域S2内の特徴点P12、P22を含まないものになっている。そのため、第2特徴点追跡部1322Cは、表示装置200の表示領域200Rに動画像が表示されていたとしても、当該表示領域200Rの特徴点P12、P22を使用せずに、特徴点P11、P21のトラッキングを行うことができる。これにより、第2特徴点追跡部1322Cは、端末装置300の動きに対応した特徴点P11、P21の動きV12をより精度よく算出することができる。
(第2運動推定部1322D)
 第2運動推定部1322Dは、第2特徴点追跡部1322Cから取得した動き情報、及び、第2センサ情報取得部1321から取得したIMUセンサのセンサ情報(例えば、加速度、角速度など)に基づき、撮像装置(又は、端末装置300)の運動情報を推定する。第2運動推定部1322Dは、推定した運動情報を第2フィルタ処理部1324に出力する。
[第2ローカライズ処理部1323]
 第2ローカライズ処理部1323は、第2センサ情報取得部1321が取得したセンサ情報に基づき、ローカライズ処理を行って、端末装置300の自己位置を推定する。第2ローカライズ処理部1323は、第2-2特徴点抽出部1323Aと、第2特徴点マスク部1323Bと、第2特徴点マッチング部1323Cと、第2位置姿勢推定部1323Dと、を備える。
 以下、図17及び図18を用いて、第2ローカライズ処理部1323の各部が行う処理の一例について説明する。図17は、本開示の実施形態に係る撮像画像M2の一例について説明するための図である。図18は、本開示の実施形態に係る第2特徴点マスク部1323Bが実行する特徴点のマスク処理の一例を説明するための図である。
(第2-2特徴点抽出部1323A)
 図14に示す第2-2特徴点抽出部1323Aは、例えば、特徴点マップの作成、及び、特徴点マップに対する自己位置推定に使用する特徴点を撮像画像から抽出する。第2-2特徴点抽出部1323Aは、抽出した特徴点を第2特徴点マスク部1323Bに出力する。
 図17に示すように、端末装置300は、例えば時刻t2において画角MV2の撮像画像M2を取得する。第2-2特徴点抽出部1323Aは、撮像画像M2から特徴点P21、P22を抽出する(図18参照)。図14に示すように、第2-2特徴点抽出部1323Aは、抽出した特徴点P21、P22を第2特徴点マスク部1323Bに出力する。
(第2特徴点マスク部1323B)
 図14に示す第2特徴点マスク部1323Bは、第2-2特徴点抽出部1323Aが抽出した特徴点P21、P22のうち、マスク空間Sに対応する特徴点P22をマスクする。
 図18に示すように、第2特徴点マスク部1323Bは、例えば、端末装置300の自己位置及びマスク空間Sに関する情報に基づき、撮像画像M2におけるマスク空間Sに対応する2次元マスク領域S2(以下、マスク領域S2とも記載する)を算出する。例えば、第2特徴点マスク部1323Bは、マスク空間Sを撮像画像M2に投影することで、マスク領域S2を算出する。
 第2特徴点マスク部1323Bは、撮像画像M2のうち、マスク領域S2外の領域(以下、マスク外領域とも記載する)の特徴点P21を選択して第2特徴点マッチング部1323Cに出力する。第2特徴点マスク部1323Bは、例えばマスク領域S2内の特徴点P22を削除し、残りの特徴点P21をローカライズ処理に使用する特徴点として選択する。
 図14に戻り、第2特徴点マスク部1323Bは、選択した特徴点P22を第2特徴点マッチング部1323Cに出力する。
(第2特徴点マッチング部1323C)
 図18に示すように、第2特徴点マッチング部1323Cは、第2特徴点マスク部1323Bが選択した特徴点P21と、特徴点マップに含まれる特徴点PRと、をマッチングする。第2特徴点マッチング部1323Cは、マッチング結果を第2位置姿勢推定部1323Dに出力する。
(第2位置姿勢推定部1323D)
 第2位置姿勢推定部1323Dは、第2特徴点マッチング部1323Cによる特徴点のマッチング結果に基づき、特徴点マップに対する撮像装置(又は、端末装置300)の位置姿勢情報を推定する。第2位置姿勢推定部1323Dは、推定した位置姿勢情報を第2フィルタ処理部1324に出力する。
[第2フィルタ処理部1324]
 第2フィルタ処理部1324は、第2VO処理部1322が推定した運動情報、及び、第2ローカライズ処理部1323が推定した位置姿勢情報に対してフィルタリングを行って2つの情報を統合し、撮像装置(又は、端末装置300)の自己位置情報を推定する。第2フィルタ処理部1324は、例えば、拡張カルマンフィルタを用いて運動情報及び位置姿勢情報を統合し、自己位置情報を生成する。これにより、情報処理装置100は、安定して端末装置300の自己位置を推定することができる。
 第2フィルタ処理部1324は、例えば、後段の処理部(図示省略)に、端末装置300の自己位置の推定結果を出力する。第2フィルタ処理部1324が推定した端末装置300の自己位置は、例えばユーザUに提示する映像の描画処理や、ユーザUがプレイエリアPAから逸脱しないようにユーザUを誘導するための処理に使用される。
<<3.情報処理例>>
<3.1.マップ生成処理>
 図19は、本開示の実施形態に係るマップ生成処理の流れの一例を示すフローチャートである。図19に示すマップ生成処理は、例えば初めて情報処理システム1を使用する際、又は、ゲーム開始前に情報処理装置100によって実行される。
 図19に示すように、情報処理装置100は、表示装置200に固定パターン画像を表示させる(ステップS101)。固定パターン画像は、情報処理装置100が表示装置200の表示領域を認識するための認識用画像である。
 次に、情報処理装置100は、端末装置300が取得した撮像画像Mから特徴点を抽出する(ステップS102)。情報処理装置100は、ビジュアルオドメトリ(VO)を用いて端末装置300の位置姿勢を運動情報として推定する(ステップS103)。
 情報処理装置100は、撮像画像Mから固定パターン画像を検出する(ステップS104)。情報処理装置100は、撮像画像Mから固定パターン画像が検出されたか否かを判定する(ステップS105)。
 検出されなかった場合(ステップS105;No)、情報処理装置100は、ステップS108に進む。固定パターン画像が検出された場合(ステップS105;Yes)、情報処理装置100は、固定パターン画像に基づき、マスク空間Sを設定する(ステップS106)。
 情報処理装置100は、ステップS102で抽出した特徴点のうち、ステップS106で設定したマスク空間S内の特徴点を削除する(ステップS107)。
 情報処理装置100は、特徴点を特徴点マップに保存する(ステップS108)。情報処理装置100は、所定の数の特徴点が特徴点マップに保存されたか否かを判定する(ステップS109)。保存された特徴点の数が所定の数未満である場合(ステップS109;No)、情報処理装置100は、ステップS101に戻る。一方、保存された特徴点の数が所定の数以上である場合(ステップS109;Yes)、情報処理装置100は、処理を終了する。
 なお、ここでは、情報処理装置100は、マップ生成処理を終了するか否かを、登録された特徴点の数に応じて判定するとしたが、これに限定されない。例えば、情報処理装置100が、所定の領域において、特徴点を特徴点マップに保存したか否かに応じて処理を終了するようにしてもよい。または、情報処理装置100が、所定の領域において、所定の数の特徴点を特徴点マップに保存したか否かに応じて処理を終了するようにしてもよい。
<3.2.自己位置推定処理>
 次に、情報処理装置100が行う自己位置推定処理について説明する。情報処理装置100は、自己位置推定処理として、VO(ビジュアルオドメトリ)処理及びローカライズ処理を実行する。
<3.2.1.VO(ビジュアルオドメトリ)処理>
 図20は、本開示の実施形態に係るVO処理の流れの一例を示すフローチャートである。図20に示すVO処理は、情報処理装置100によって所定の周期でゲーム開始からゲーム終了まで繰り返し実行される。なお、所定の周期は、端末装置300が撮像画像を取得する周期(フレームレート)と同じであってもよい。
 情報処理装置100は、記憶部120から特徴点マップ及びマスク空間Sに関する情報を取得する(ステップS201)。情報処理装置100は、端末装置300が取得した撮像画像Mから特徴点を抽出する(ステップS202)。
 情報処理装置100は、端末装置300の画角内にマスク空間Sが存在するか否かを判定する(ステップS203)。情報処理装置100は、端末装置300の自己位置(例えば、1フレーム前に推定した自己位置)に基づき、画角内にマスク空間Sが存在するか否かを判定する。
 画角内にマスク空間Sが存在しない場合(ステップS203;No)、情報処理装置100は、ステップS205に進む。画角内にマスク空間Sが存在する場合(ステップS203;Yes)、情報処理装置100は、ステップS202で抽出した特徴点のうち、マスク空間S内の特徴点を削除する(ステップS204)。
 情報処理装置100は、ビジュアルオドメトリ(VO)を用いて、端末装置300の位置姿勢を運動情報として推定する(ステップS205)。
 情報処理装置100は、ローカライズ処理に使用するキューが空であるか否かを判定する(ステップS206)。ここで、情報処理装置100は、キューに保存された撮像画像Mを用いてローカライズ処理を行う。従って、キューが空である場合、情報処理装置100によるローカライズ処理が終了していることを意味し、キューが空でない場合、情報処理装置100がローカライズ処理を実行していることを意味する。
 キューが空でない、すなわち、ローカライズ処理を実行している場合(ステップS206;No)、情報処理装置100は、ステップS209に進む。キューが空である、すなわち、ローカライズ処理が終了している場合(ステップS206;Yes)、情報処理装置100は、キューに撮像画像Mを保存する(ステップS207)。
 情報処理装置100は、ローカライズ処理の結果である端末装置300の位置姿勢情報を取得する(ステップS208)。
 情報処理装置100は、位置姿勢情報、及び、運動情報の少なくとも一方を用いて、カルマンフィルタのアップデート及びイノベーションを実行し(ステップS209)、特徴点マップに対する自己位置を取得する(ステップS210)。情報処理装置100は、マップ座標系における端末装置300の自己位置を取得する。
<3.2.2.ローカライズ処理>
 図21は、本開示の実施形態に係るローカライズ処理の流れの一例を示すフローチャートである。図21に示すローカライズ処理は、情報処理装置100によってゲーム開始からゲーム終了まで繰り返し実行される。ローカライズ処理には、例えば、数フレームの時間がかかる。
 情報処理装置100は、記憶部120から特徴点マップを取得する(ステップS301)。情報処理装置100は、キューに撮像画像Mが保存されているか否かを判定する(ステップS302)。撮像画像Mがキューに保存されていない場合(ステップS302;No)、情報処理装置100は、ステップS302に戻り、キューに撮像画像Mが保存されるのを待つ。
 撮像画像Mがキューに保存されている場合(ステップS302;Yes)、情報処理装置100は、キューに保存されている撮像画像Mから特徴点を抽出する(ステップS303)。
 情報処理装置100は、端末装置300の画角内にマスク空間Sが存在するか否かを判定する(ステップS304)。情報処理装置100は、端末装置300の自己位置に基づき、画角内にマスク空間Sが存在するか否かを判定する。
 画角内にマスク空間Sが存在しない場合(ステップS304;No)、情報処理装置100は、ステップS306に進む。画角内にマスク空間Sが存在する場合(ステップS304;Yes)、情報処理装置100は、ステップS303で抽出した特徴点のうち、マスク空間S内の特徴点を削除する(ステップS305)。
 情報処理装置100は、特徴点マップに登録された特徴点と、撮像画像Mに含まれる特徴点と、のマッチングを行う(ステップS306)。情報処理装置100は、ローカライズにより、特徴点マップに対する端末装置300の位置姿勢を位置姿勢情報として推定する(ステップS307)。
 情報処理装置100は、ローカライズ処理に使用するキューに保存された撮像画像Mを削除して、キューを空にする(ステップS308)。情報処理装置100は、ステップS307で推定した位置姿勢情報を、ローカライズ処理の結果として出力する(ステップS309)。
 以上のように、本開示の実施形態に係る情報処理装置100は、撮像画像Mを用いて、表示装置200を含むマスク空間Sを算出する。情報処理装置100は、撮像画像Mから抽出した特徴点のうち、算出したマスク空間S外の空間に対応する特徴点を使用して、特徴点マップの生成や端末装置300の自己位置推定を行う。
 これにより、情報処理装置100は、表示装置200に動画像が表示されている場合でも、より精度よく特徴点マップの生成や端末装置300の自己位置推定を行うことができる。
 また、情報処理装置100は、撮像画像Mに対する表示装置200の検出をマップ作成処理の実行時に行う。情報処理装置100は、自己位置推定処理の実行時に、撮像画像Mに対する表示装置200自体の検出を行わない。情報処理装置100は、マップ作成処理の実行時に作成したマスク空間Sを使用して、自己位置推定処理において、表示装置200に対応する特徴点を削除する。
 これにより、情報処理装置100は、自己位置推定処理の実行時に毎フレームにおいて表示装置200を検出する場合と比較して、処理負荷をより低減することができる。
<<4.変形例>>
<4.1.第1変形例>
 上述した実施形態では、情報処理装置100が、表示装置200の表示領域200Rを検出するとしたがこれに限定されない。例えば、情報処理装置100が、ユーザUから表示領域200Rに関する情報を取得してもよい。すなわち、情報処理装置100は、ユーザUから表示領域200Rの手作業による入力操作を受け付けるようにしてもよい。
 図22は、本開示の実施形態の第1変形例に係る表示領域200Rの入力の一例について説明するための図である。
 図22に示すように、ユーザUは、コントローラ400を把持しているものとする。コントローラ400は、表示部330を除き、図4に示す端末装置300と同様の構成を有し得る。すなわち、コントローラ400は、情報処理装置100がコントローラ400の位置姿勢(自己位置)を推定するための情報を取得し得る。情報処理装置100は、この情報を使用して、コントローラ400の自己位置を推定する。
 図22に示すように、ユーザUは、例えば表示装置200の四隅(角部)をコントローラ400でタッチする。情報処理装置100は、コントローラ400によるタッチを検出する。情報処理装置100は、ユーザUがコントローラ400でタッチした場所を、表示装置200の表示領域200Rの頂点(角部C1~C4)として検出する。
 図22の例では、ユーザUは、表示装置200の左下の角部をタッチしている。このユーザUによる操作に基づき、情報処理装置100は、表示領域200Rの角部C4を検出する。
 なお、ここでは、ユーザUが実際のコントローラ400を用いて表示領域200Rを入力するとしたが、これに限定されない。例えば、ユーザUが仮想のコントローラ400Aを用いて表示領域200Rを入力するようにしてもよい。
 図23は、本開示の実施形態の第1変形例に係る表示領域200Rの入力の他の例について説明するための図である。
 図23に示すように、ユーザUは、コントローラ400Aを把持している。ユーザUが把持するコントローラ400Aは、情報処理装置100によって端末装置300の表示部330に表示される仮想のコントローラである。情報処理装置100は、例えば、実空間の画像(撮像画像M)にコントローラ400Aを重畳させてユーザUに提示する。
 ユーザUは、仮想のコントローラ400Aを使用して表示装置200の四隅をタッチする。これにより、情報処理装置100は、表示装置200の表示領域200Rを検出する。
 このように、情報処理装置100は、仮想のコントローラ400Aを使用して表示領域200Rを検出することができる。
 図22や図23に示すように、ユーザUがコントローラ400を持って表示領域200Rを指定する場合、ユーザUがプレイエリアPA外に出る可能性がある。例えば、コントローラ400が短いと、ユーザUは、プレイエリアPA外に出なければ、表示領域200Rの指定が行えない可能性がある。特に、図23のように、ユーザUがHMD(端末装置300の一例)を頭部に装着していると、ユーザUは周囲の状況を認識しにくくなり、プレイエリアPA外にでてもそのことに気付かない恐れがある。
 そこで、情報処理装置100が、仮想のコントローラ400Bとして、棒状のコントローラを撮像画像に重畳してユーザUに提示するようにしてもよい。図24は、本開示の実施形態の第1変形例に係る表示領域200Rの入力の他の例について説明するための図である。
 図24に示すように、情報処理装置100は、棒状の仮想コントローラ400BをユーザUに提示する。ユーザUは、棒状の仮想コントローラ400Bを使用して表示装置200の四隅をタッチする。ユーザUは、棒状の仮想コントローラ400Bの先端でタッチすることができるため、プレイエリアPA外に出ることなく、安全に表示領域200Rの入力を行うことができる。
 なお、ここでは、情報処理装置100は、棒状の仮想コントローラ400Bを表示するとしたが、これに限定されない。例えば、コントローラ400に棒状の仮想物体を重畳して表示するようにしてもよい。ユーザUは、コントローラ400を操作することで、棒状の仮想物体を操作して表示領域200Rを入力する。
 また、ユーザUは、情報処理システム1の設置時やゲーム開始時に毎回手入力で表示領域200Rを指定し得る。あるいは、情報処理装置100による表示領域200Rの検出、表示平面の取得やマスク空間Sの算出に失敗した場合、ユーザUが手動で表示領域200Rを指定するようにしてもよい。
<4.2.第2変形例>
 上述した実施形態の情報処理システム1を例えば家庭で使用する場合など、本開示の提案技術を製品に導入する場合、以下に、第2の変形例として説明する方法が、導入リスクを下げる方法として考えられる。
 上述した実施形態の情報処理装置100が表示装置200の表示領域200Rに含まれる特徴点を所望の精度で除去するためには、情報処理装置100がマップ座標系における端末装置300の自己位置をある程度の精度で推定することが望ましい。
 そこで、本開示の実施形態に係る第2の変形例では、情報処理装置100が本開示の提案技術とは別の方法でも端末装置300の自己位置推定を行うものとする。例えば、情報処理装置100は、別の方法を用いた端末装置300の自己位置推定を行いつつ、本開示の提案技術の自己位置推定も行う。本開示の提案技術による自己位置の推定精度が、例えば所望の精度を満たす場合、情報処理装置100は、別の方法による自己位置推定を終了し、本開示の提案技術による自己位置推定に移行する。
 これにより、情報処理装置100は、所望の精度を満たす自己位置推定を行うことができるようになる。
(自己位置推定の手法)
 まず、本変形例で情報処理装置100が実施する自己位置の推定手法の概要を説明する。情報処理装置100は、第1~第3手法の少なくとも1つを用いて自己位置を推定する。
(第1手法)
 第1手法は、情報処理装置100が毎フレームで表示装置200の表示領域200Rを認識し、表示領域200Rの特徴点を使用せずに自己位置推定を行う手法である。
 第1手法に関する参考文献として、参考文献1:「“RDS-SLAM: Real-Time Dynamic SLAM Using Semantic Segmentation Methods”、インターネット<URL: https://arxiv.org/ftp/arxiv/papers/1809/1809.08379.pdf>」が挙げられる。また、第1手法に関する他の参考文献として、参考文献2:「“DS-SLAM A Semantic Visual SLAM towards Dynamic Environments”、インターネット<URL: https://arxiv.org/ftp/arxiv/papepa/1809/1809.08379.pdf>」が挙げられる。
 これらの参考文献では、セマンティックセグメンテーションなどを用いて、人物等の動物体から抽出された特徴点を利用せずに、ビジュアルオドメトリによる自己位置推定や特徴点マップの作成を行う手法が開示されている。
 図25は、本開示の実施形態の第2変形例に係る第1手法の一例を説明するための図である。情報処理装置100は、撮像画像Mに対して物体の認識処理を実行し、表示装置200を認識する。情報処理装置100は、撮像画像Mから特徴点P1、P2を抽出する。情報処理装置100は、抽出した特徴点P1、P2のうち、認識処理で認識した表示装置200から抽出した特徴点P2を削除して、端末装置300の自己位置を推定する。情報処理装置100は、この処理を毎フレーム実行する。
 このように、第1手法は、毎フレームにおいて、撮像画像Mに対して物体の認識処理を実行し、認識結果に基づいて特徴点を分類する手法である。そのため、第1手法を用いることで、情報処理装置100は、マップ座標系における端末装置300の自己位置の推定結果に依存せず、動物体から抽出される特徴点を除去することができる。
 一方、第1手法では、毎フレームにおいて撮像画像Mに対する物体の認識処理が行われるため、処理負荷が大きいというデメリットがある。
(第2手法)
 第2手法(第2の推定処理の一例)は、本開示の提案技術を用いた手法である。第2手法では、情報処理装置100は、マップ作成時に、撮像画像Mにおける表示装置200の表示領域200Rに基づき、マップ座標系におけるマスク空間Sを設定する。情報処理装置100は、自己位置推定時に、マスク空間Sを用いて表示装置200に表示される動画像から抽出される特徴点を除去する。
 第2手法では、情報処理装置100は、マップ作成時に表示装置200の認識処理を行い、表示装置200の表示領域200Rを検出し、マスク空間Sを設定する。情報処理装置100は、自己位置推定時には表示装置200の認識処理を行わない。そのため、第2手法を用いることで、情報処理装置100は、自己位置推定時の処理負荷の増加を抑制しつつ、動画像から抽出される特徴点を除去することができる。
 一方、第2手法では、上述したように、所望の精度で特徴点を分類するために、端末装置300の自己位置を所定の精度で推定することが望まれる。
(第3手法)
 第3手法(第1の推定処理の一例)は、情報処理装置100が表示装置200の表示領域200Rの少なくとも一部に所定のパターン画像することで、表示領域200Rにおいて動画像を表示する領域を小さくする手法である。このように、動画像を表示する領域を小さくすることで、情報処理装置100は、動画像から抽出される特徴点の数を減らすことができ、端末装置300の自己位置の推定精度の劣化を抑制することができる。
 図26は、本開示の実施形態の第2変形例に係る第3手法の一例を説明するための図である。
 情報処理装置100は、表示装置200の表示領域200Rのうち、パターン表示領域200M1に所定のパターン画像を表示させ、動画像表示領域200M2に動画像を表示させる。図26の例では、パターン表示領域200M1は、表示領域200Rの周辺領域であり、動画像表示領域200M2は、表示領域200Rの中央領域である。すなわち、動画像表示領域200M2の周囲にパターン表示領域200M1が配置される。
 パターン画像は、固定パターンの静止画像である。動画像が表示される動画像表示領域200M2は、表示領域200Rよりも小さい。情報処理装置100が表示装置200を含む撮像画像Mから特徴点P1、P2を抽出すると、表示領域200R全てに動画像を表示する場合と比較して、情報処理装置100が動画像から抽出する特徴点P2の数が少なくなる。
 そのため、情報処理装置100が、撮像画像Mから抽出した特徴点P1、P2を使用して端末装置300の自己位置を推定しても、推定精度の劣化をある程度抑制することができる。
 第3手法では、情報処理装置100は、撮像画像Mに対して表示装置200の認識処理を行わないため、処理負荷が小さい。また、第3手法では、動画像から抽出する特徴点P2の数が少ないため、推定精度はマップ座標系に対して自己位置のずれの影響を受けにくい。
 一方、第3手法では、表示装置200にパターン画像を表示するため、動画像表示領域200M2が小さくなり、表示装置200に表示できる情報(例えばゲームのプレイ画面など)が限られてしまうという問題がある。
 そこで、本変形例では、上述したように、情報処理装置100が第2手法に加え、第1又は第3手法を使用して端末装置300の自己位置推定を行うものとする。
 例えば、プロダクト導入時(例えば、出荷時)、情報処理装置100は、第3手法を用いて端末装置300の自己位置を推定するよう設定されているものとする。また、情報処理装置100は、出荷時から第3手法を用いた推定と同時に、第2手法を用いた端末装置300の自己位置推定を行うよう設定されているものとする。
 第2手法による自己位置推定の精度が所望の精度を満たす場合、情報処理装置100は、自己位置推定の手法を第3手法から第2手法に切り替える。
 本変形例に係る情報処理装置100は、例えば、クラウド上に配置されるサーバ装置500からの指示に基づいて自己位置推定に使用する手法を切り替える。
[サーバ装置500]
 図27は、本開示の実施形態の第2変形例に係るサーバ装置500について説明するための図である。
 図27に示すように、サーバ装置500は、ネットワークNを介して複数の情報処理装置100A、100B・・・に接続する。サーバ装置500は、情報処理装置100A、100B・・・を制御する制御装置である。サーバ装置500は、各情報処理装置100A、100B・・・から、第2手法の実行結果を含む情報を取得する。
 サーバ装置500は、取得した情報に基づき、情報処理装置100が第2手法に移行するか否かを判定する。サーバ装置500は、ネットワークNを介して判定結果を情報処理装置100に通知する。
 サーバ装置500は、例えば、情報処理装置100が表示領域200Rから特徴点P2を抽出する抽出精度に応じて自己位置推定の精度が所望の精度を満たすか否かを判定し、判定結果に基づいて第2手法への移行を判断する。
 情報処理装置100は、サーバ装置500からの指示に応じた手法を用いて端末装置300の自己位置を推定する。情報処理装置100は、サーバ装置500から第2手法への移行指示を受領すると、表示装置200へのパターン画像の表示を終了する。
 このように、情報処理装置100は、第2手法への移行後、パターン画像を表示装置200に表示する必要がなくなり、表示装置200の表示領域200R全体に情報(例えば、ゲームのプレイ画面)を表示できるようになる。
 図28は、本開示の実施形態の第2変形例に係るサーバ装置500の構成例を示すブロック図である。図28に示すように、サーバ装置500は、通信部510と、記憶部520と、制御部530と、を含む。
 通信部510は、他の装置との間で情報の送受信を行う。通信部510は、ネットワークNを介して情報処理装置100と通信し得る。
 記憶部520は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
 制御部530は、サーバ装置500に内蔵される例えばCPU、GPU(Graphics Processing Unit)及びRAMなどを用いて、サーバ装置500の動作を統括的に制御する。例えば、制御部530は、サーバ装置500内部の記憶装置に記憶されている各種プログラムを、プロセッサがRAM(Random Access Memory)等を作業領域として実行することにより実現される。なお、制御部530は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。CPU、MPU、ASIC、及びFPGAは何れもコントローラとみなすことができる。
(サーバ装置500による判定処理)
 図29は、本開示の実施形態の第2変形例に係る判定処理の流れの一例を示すフローチャートである。図29に示す判定処理は、サーバ装置500によって、例えば周期的に実施される。あるいは、サーバ装置500は、情報処理装置100から精度情報を受信した場合に図29に示す判定処理を実施するようにしてもよい。
 図29に示すように、サーバ装置500は、各情報処理装置100から精度情報を収集する(ステップS401)。精度情報には、第2手法に関する精度、例えば、マスク空間Sを用いた2次元表示領域の認識精度に関する情報が含まれ得る。また、精度情報に、第2手法が実行された環境に関する情報(例えば、部屋の明るさやプレイエリアPAの広さ、ゲームの種別、ユーザUの平均移動速度など)が含まれていてもよい。認識精度の詳細は後述する。
 サーバ装置500は、第2手法の精度が所望の精度を満たすか否かを判定する(ステップS402)。例えば、サーバ装置500は、上述した認識精度と閾値とを比較し、認識精度が閾値以上である場合、所望の精度を満たすと判定する。あるいは、サーバ装置500は、精度情報に含まれる情報を入力とし、所望の精度を満たすか否かの判定結果を出力とする認識器を用いて判定を行ってもよい。この場合、認識器は、例えば複数の情報処理装置100から取得した精度情報を用いた機械学習などを用いて生成され得る。
 第2手法の精度が所望の精度を満たしている場合(ステップS402;Yes)、サーバ装置500は、第2手法を採用する(ステップS403)。すなわち、サーバ装置500は、第3手法から第2手法への移行を決定する。
 第2手法の精度が所望の精度を満たしていない場合(ステップS402;No)、サーバ装置500は、第3手法を採用する(ステップS404)。すなわち、サーバ装置500は、第3手法の継続を決定する。
(情報処理装置100による手法取得処理)
 図30は、本開示の実施形態の第2変形例に係る手法取得処理の流れの一例を示すフローチャートである。図30に示す手法取得処理は、情報処理装置100によって、例えばゲーム開始時に実施される。あるいは、情報処理装置100は、所定の周期で手法取得処理を実施するようにしてもよい。
 図30に示すように、情報処理装置100は、自己位置推定に使用する手法をサーバ装置500に問い合わせる(ステップS501)。次に、情報処理装置100は、問い合わせ結果、使用する手法としてサーバ装置500が第2手法を採用したか否かを判定する(ステップS502)。
 第2手法が採用されている場合(ステップS502;Yes)、情報処理装置100は、第2手法を実行する(ステップS503)。すなわち、情報処理装置100は、第2手法を用いて端末装置300の自己位置を推定する。より具体的には、情報処理装置100は、例えば、図19~図21を用いて説明した処理を実行する。
 第2手法が採用されず、第3手法が採用されている場合(ステップS502;No)、情報処理装置100は、第3手法及び第2手法を実行する(ステップS504)。すなわち、情報処理装置100は、第3手法を用いて端末装置300の自己位置を推定しつつ、第2手法を実行する。より具体的には、情報処理装置100は、例えば、図19~図21を用いて説明した処理を実行し、同時に次に図31及び図32を用いて説明する処理を実行する。
 以下、図31及び図32を用いて、情報処理装置100が第3手法及び第2手法の両方を用いて自己位置推定処理を行う場合について説明する。情報処理装置100は、第3手法で使用する特徴点マップは、第2手法と同様にして生成し得る。あるいは、情報処理装置100が、第2手法を用いて作成した特徴点マップを使用して、第3手法による自己位置推定処理を行うようにしてもよい。
(第3手法によるVO(ビジュアルオドメトリ)処理)
 図31は、本開示の実施形態の第2変形例に係るVO処理の流れの一例を示すフローチャートである。図31のVO処理は、情報処理装置100によって所定の周期でゲーム開始からゲーム終了まで繰り返し実行される。なお、所定の周期は、端末装置300が撮像画像を取得する周期(フレームレート)と同じであってもよい。なお、図20と同じ処理については同一符号を付し、説明を省略する。
 情報処理装置100は、ステップS203で、画角内にマスク空間Sが存在しないと判定すると(ステップS203;No)、ステップS606に進む。情報処理装置100は、画角内にマスク空間Sが存在すると判定すると(ステップS203;Yes)、パターン画像をチェックするか否かを判定する(ステップS601)。情報処理装置100は、例えば、数フレームに1回など、所定の周期でパターン画像をチェックし得る。
 パターン画像をチェックしない場合(ステップS601;No)、情報処理装置100は、ステップS606に進む。パターン画像をチェックする場合(ステップS601;Yes)、情報処理装置100は、撮像画像Mからパターン表示領域200M1(図26参照)を検出する(ステップS602)。情報処理装置100は、撮像画像Mからパターン画像を検出することでパターン表示領域200M1を検出する。
 図31に示すように、情報処理装置100は、パターン画像が、マスク領域S2(図16参照)に含まれるか否かを判定する(ステップS603)。情報処理装置100は、マスク空間Sを撮像画像Mに投影することでマスク領域S2を算出する。情報処理装置100は算出したマスク領域S2にパターン画像が含まれるか否かを判定する。
 図31に示すように、パターン画像がマスク領域S2に含まれている場合(ステップS603;Yes)、情報処理装置100は、マスク領域S2の算出に成功したとして、成功回数をインクリメントする(ステップS604)。
 パターン画像がマスク領域S2に含まれていない場合(ステップS603;No)、情報処理装置100は、マスク領域S2の算出に失敗したとして、失敗回数をインクリメントする(ステップS605)。
 次に、情報処理装置100は、ビジュアルオドメトリによる位置姿勢を推定する(ステップS606)。ここでの処理は、情報処理装置100が、撮像画像Mから抽出した特徴点P1、P2を全て使用して位置姿勢を推定する点を除き、図20のステップS205の処理と同じである。このように、情報処理装置100は、第3手法として動画像から抽出した特徴点P2(図26参照)も使用して位置姿勢を推定する。
 図31に示すように、ステップS210で特徴点マップに対する自己位置を取得した情報処理装置100は、ゲームが終了したか否かを判定する(ステップS607)。ゲームが終了していない場合(ステップS607;No)、情報処理装置100は、処理を終了する。
 ゲームが終了した場合(ステップS607;Yes)、情報処理装置100は、マスク領域S2の算出に成功した回数及び失敗回数を認識精度としてサーバ装置500に送信する(ステップS608)。また、情報処理装置100は、認識精度に加え、周辺環境等に関する環境情報を含めて精度情報としてサーバ装置500に送信し得る。
 なお、ここでは、情報処理装置100が、マスク領域S2の算出に成功した回数及び失敗回数をサーバ装置500に送信するとしたが、これに限定されない。例えば、情報処理装置100が、成功した回数の割合又は失敗した回数の割合を認識精度として、サーバ装置500に送信してもよい。
 あるいは、情報処理装置100は、成功及び失敗の回数の代わりに、マスク領域S2とパターン画像とのずれ具合を認識精度として算出するようにしてもよい。例えば、情報処理装置100は、マスク領域S2からはみ出しているパターン画像の面積を算出し、面積の平均値を認識精度としてサーバ装置500に送信し得る。
 このように、情報処理装置100は、マスク領域S2の算出精度を求めることで、特徴点P2の削除精度、換言すると、端末装置300の自己位置の推定精度を求めることができる。これは、情報処理装置100が、マスク領域S2の算出精度が、表示領域200Rから抽出した特徴点P2を削除する精度に影響を与えるからである。自己位置推定に悪影響を与える可能性がある特徴点P2を削除する精度は、端末装置300の自己位置の推定精度に影響を与える。
 そこで、情報処理装置100が、マスク領域S2の算出精度(認識精度)をサーバ装置500に通知することで、サーバ装置500は、当該認識精度に基づき、第2手法による自己位置の推定精度が所望の精度を満たしているか否かを判定することができる。
(第3手法によるローカライズ処理)
 図32は、本開示の実施形態の第2変形例に係るローカライズ処理の流れの一例を示すフローチャートである。図32のローカライズ処理は、情報処理装置100によってゲーム開始からゲーム終了まで繰り返し実行される。ローカライズ処理には、例えば、数フレームの時間がかかる。なお、図21と同じ処理については同一符号を付し、説明を省略する。
 図32に示すように、ステップS303で撮像画像Mから特徴点P1、P2を抽出した情報処理装置100は、抽出した特徴点P1、P2を、特徴点マップ上の特徴点とマッチングする(ステップS701)。情報処理装置100は、特徴点マップに対する位置姿勢を推定する(ステップS702)。
 ステップS701、702の処理は、情報処理装置100が、撮像画像Mから抽出した特徴点P1、P2を全て使用して位置姿勢を推定する点を除き、図21のステップS306、S307の処理と同じである。このように、情報処理装置100は、第3手法として動画像から抽出した特徴点P2(図26参照)も使用して位置姿勢を推定する。
 以上のように、本変形例に係る情報処理装置100は、まず、第2手法に加え、第1又は第3手法を使用して端末装置300の自己位置推定を行う。第2手法による自己位置推定の精度が所望の精度を満たす場合、情報処理装置100は、自己位置推定の手法を第3手法から第2手法に切り替える。
 これにより、情報処理装置100は、処理負荷の増加を抑制しつつ、所望の精度を満たす精度で端末装置300の自己位置を推定することができる。
 なお、ここでは、情報処理装置100が、製品導入時に第3手法を用いて端末装置300の自己位置を推定するとしたが、これに限定されない。情報処理装置100が第3手法に代えて第1手法を用いて端末装置300の自己位置推定を行うようにしてもよい。
 上述したように、第1手法は情報処理装置100の処理負荷が高いが、自己位置の推定精度が高い。例えば、製品導入時からより精度の高い自己位置推定が求められる場合、情報処理装置100は、第3手法の代わりに第1手法を用い得る。情報処理装置100は、第1手法を用いて端末装置300の自己位置を推定しつつ、第2手法の推定精度が所望の精度以上になった場合、第1手法から第2手法に移行する。これにより、情報処理装置100は、より精度の高い自己位置推定を行いつつ、処理負荷の増加をより低減することができる。
<<5.その他の実施形態>>
 上述の実施形態及び各変形例は一例を示したものであり、種々の変更及び応用が可能である。
 例えば、本実施形態の情報処理装置100の少なくとも一部の機能を端末装置300が実現するようにしてもよい。例えば、端末装置300が、マップ生成処理を実行するようにしてもよく、端末装置300の自己位置推定処理を実行するようにしてもよい。また、情報処理装置100がマップ生成処理を実行し、端末装置300が自己位置推定処理を行うなど、情報処理装置100と端末装置300とがそれぞれ処理を分けて各処理を実行するようにしてもよい。
 上述の実施形態では、情報処理システム1が、例えばゲームサービスをユーザUに提供するシステムであるとしたが、これに限定されない。例えば、情報処理システム1が自動運転システムであってもよい。この場合、例えば、端末装置300が、車両やドローン等の移動物体であり、情報処理装置100が移動物体の自己位置を推定する。
 例えば、上述の動作を実行するための通信プログラムを、光ディスク、半導体メモリ、磁気テープ、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に格納して配布する。そして、例えば、該プログラムをコンピュータにインストールし、上述の処理を実行することによって制御装置を構成する。このとき、制御装置は、情報処理装置100、端末装置300及びサーバ装置500の外部の装置(例えば、パーソナルコンピュータ)であってもよい。また、制御装置は、情報処理装置100、端末装置300及びサーバ装置500の内部の装置(例えば、制御部130、350、530)であってもよい。
 また、上記通信プログラムをインターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、OS(Operating System)とアプリケーションソフトとの協働により実現してもよい。この場合には、OS以外の部分を媒体に格納して配布してもよいし、OS以外の部分をサーバ装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。
 また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。なお、この分散・統合による構成は動的に行われてもよい。
 また、上述の実施形態は、処理内容を矛盾させない領域で適宜組み合わせることが可能である。また、上述の実施形態のシーケンス図に示された各ステップは、適宜順序を変更することが可能である。
 また、例えば、本実施形態は、装置又はシステムを構成するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
 なお、本実施形態において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 また、例えば、本実施形態は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
<<6.ハードウェア構成>>
 上述してきた各実施形態に係る情報処理装置100等の情報処理装置は、例えば図33に示すような構成のコンピュータ1000によって実現される。以下、本開示の実施形態に係る情報処理装置100を例に挙げて説明する。図33は、本開示の実施形態に係る情報処理装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス1500、及び、入出力インターフェイス1600を有する。コンピュータ1000の各部は、バス1050によって接続される。
 CPU1100は、ROM1300又はHDD1400に保存されたプログラムに基づいて動作し、各部の制御を行う。例えば、CPU1100は、ROM1300又はHDD1400に保存されたプログラムをRAM1200に展開し、各種プログラムに対応した処理を実行する。
 ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるBIOS(Basic Input Output System)等のブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を保存する。
 HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を非一時的に記録する、コンピュータが読み取り可能な記録媒体である。具体的には、HDD1400は、プログラムデータ1450の一例である本開示に係る情報処理方法のためのプログラムを記録する記録媒体である。
 通信インターフェイス1500は、コンピュータ1000が外部ネットワーク1550(例えばインターネット)と接続するためのインターフェイスである。例えば、CPU1100は、通信インターフェイス1500を介して、他の機器からデータを受信したり、CPU1100が生成したデータを他の機器へ送信したりする。
 入出力インターフェイス1600は、入出力デバイス1650とコンピュータ1000とを接続するためのインターフェイスである。例えば、CPU1100は、入出力インターフェイス1600を介して、キーボードやマウス等の入力デバイスからデータを受信する。また、CPU1100は、入出力インターフェイス1600を介して、ディスプレイやスピーカーやプリンタ等の出力デバイスにデータを送信する。また、入出力インターフェイス1600は、コンピュータ読み取り可能な所定の記録媒体(メディア)に記録されたプログラム等を読み取るメディアインターフェイスとして機能してもよい。メディアとは、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
 例えば、コンピュータ1000が本開示の実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130等の機能を実現する。なお、CPU1100は、プログラムデータ1450をHDD1400から読み取って実行するが、他の例として、外部ネットワーク1550を介して、他の装置から情報処理プログラムを取得してもよい。
 また、本実施形態に係る情報処理装置100は、例えばクラウドコンピューティング等のように、ネットワークへの接続(または各装置間の通信)を前提とした、複数の装置からなるシステムに適用されてもよい。つまり、上述した本実施形態に係る情報処理装置100は、例えば、複数の装置により本実施形態に係る情報処理システム1として実現することも可能である。
 以上、情報処理装置100のハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。かかる構成は、実施する時々の技術レベルに応じて適宜変更され得る。
<<7.むすび>>
 以上、本開示の実施形態について説明したが、本開示の技術的範囲は、上述の各実施形態そのままに限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、異なる実施形態及び変形例にわたる構成要素を適宜組み合わせてもよい。
 また、本明細書に記載された各実施形態における効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
 なお、本技術は以下のような構成も取ることができる。
(1)
 撮像装置によって撮像された画像に含まれる表示装置の表示領域を取得し、
 取得した前記表示領域に基づき、3次元マスク領域及び3次元特徴点マップを生成し、
 前記3次元マスク領域及び前記3次元特徴点マップの少なくとも一方、及び、前記撮像装置によって撮像された前記画像から抽出した特徴点を用いて、前記撮像装置の位置及び姿勢の少なくとも一方を推定する、制御部、
 を備える情報処理装置。
(2)
 前記制御部は、前記画像から抽出した前記特徴点のうち、前記表示領域に含まれない前記特徴点に基づき、前記3次元特徴点マップを生成する、(1)に記載の情報処理装置。
(3)
 前記制御部は、3次元空間における前記表示領域を含む空間を前記3次元マスク領域として設定する、(1)又は(2)に記載の情報処理装置。
(4)
 前記制御部は、
 前記画像の前記表示領域に含まれる少なくとも3つの前記特徴点から前記3次元空間において前記表示領域を含む表示平面を算出し、
 前記撮像装置から前記画像の前記表示領域の角部へ向かうベクトルと、前記表示平面と、の交点に基づき、前記表示平面における前記表示領域を算出し、
 前記表示領域を3方向に膨張させた領域を前記3次元マスク領域として設定する、
 (3)に記載の情報処理装置。
(5)
 前記制御部は、前記画像から抽出した複数の前記特徴点のうち、前記3次元マスク領域外の領域に対応する前記特徴点に基づき、前記撮像装置の前記位置及び前記姿勢の少なくとも一方を推定する、(1)~(4)のいずれか1つに記載の情報処理装置。
(6)
 前記制御部は、
 前記撮像装置の前記位置及び前記姿勢の少なくとも一方、及び、前記3次元マスク領域に基づき、前記撮像装置が撮像する前記画像のうち前記3次元マスク領域に対応する2次元マスク領域を算出し、
 前記画像のうち、前記2次元マスク領域外の前記特徴点に基づき、前記撮像装置の前記位置及び前記姿勢の少なくとも一方を推定する、(5)に記載の情報処理装置。
(7)
 前記制御部は、表示に表示された所定の画像を検出することで、前記表示領域を取得する、(1)~(6)のいずれか1つに記載の情報処理装置。
(8)
 前記制御部は、ユーザから前記表示領域の指定を受け付ける、(1)~(6)のいずれか1つに記載の情報処理装置。
(9)
 前記制御部は、
 前記表示領域の第1領域に所定のパターン画像を表示させ、
 前記撮像装置が撮像した前記画像から抽出した複数の前記特徴点に基づき、前記撮像装置の前記位置及び前記姿勢の少なくとも一方を推定する、
 (1)~(8)のいずれか1つに記載の情報処理装置。
(10)
 前記制御部は、制御装置からの指示に基づき、前記所定のパターン画像を表示させて、前記撮像装置が撮像した前記画像から抽出した複数の前記特徴点に基づき、前記撮像装置の前記位置及び前記姿勢の少なくとも一方を推定する第1の推定処理、及び、前記3次元マスク領域及び前記3次元特徴点マップの少なくとも一方、及び、前記撮像装置によって撮像された前記画像から抽出した特徴点を用いて、前記撮像装置の位置及び姿勢の少なくとも一方を推定する第2の推定処理の少なくとも1つを実行する、(9)に記載の情報処理装置。
(11)
 前記制御部は、
 前記撮像装置の前記位置及び前記姿勢の少なくとも一方、及び、前記3次元マスク領域に基づき、前記撮像装置が撮像する前記画像のうち前記3次元マスク領域に対応する2次元マスク領域を算出し、
 前記表示領域に表示される前記所定のパターン画像を検出し、
 前記所定のパターン画像が前記2次元マスク領域に含まれるか否かを判定した判定結果を、前記制御装置に通知する、
 (10)に記載の情報処理装置。
(12)
 前記制御装置は、前記判定結果に応じて、前記第1の推定処理及び前記第2の推定処理のうち前記制御部が実行する推定処理を決定し、決定結果を前記制御部に通知する、(11)に記載の情報処理装置。
(13)
 前記撮像装置は、ユーザの頭部に装着される機器に搭載される、(1)~(12)のいずれか1つに記載の情報処理装置。
(14)
 撮像装置によって撮像された画像に含まれる表示装置の表示領域を取得することと、
 取得した前記表示領域に基づき、3次元マスク領域及び3次元特徴点マップを生成することと、
 前記3次元マスク領域及び前記3次元特徴点マップの少なくとも一方、及び、前記撮像装置によって撮像された前記画像から抽出した特徴点を用いて、前記撮像装置の位置及び姿勢の少なくとも一方を推定することと、
 を含む情報処理方法。
(15)
 コンピュータに、
 撮像装置によって撮像された画像に含まれる表示装置の表示領域を取得させ、
 取得した前記表示領域に基づき、3次元マスク領域及び3次元特徴点マップを生成させ、
 前記3次元マスク領域及び前記3次元特徴点マップの少なくとも一方、及び、前記撮像装置によって撮像された前記画像から抽出した特徴点を用いて、前記撮像装置の位置及び姿勢の少なくとも一方を推定させる、
 プログラム。
 1 情報処理システム
 100 情報処理装置
 110,310,510 通信部
 120,520 記憶部
 130,350,530 制御部
 131 マップ生成部
 132 自己位置推定部
 200 表示装置
 220,320 センサ部
 300 端末装置
 330 表示部
 340 入力部
 400 コントローラ
 500 サーバ装置

Claims (15)

  1.  撮像装置によって撮像された画像に含まれる表示装置の表示領域を取得し、
     取得した前記表示領域に基づき、3次元マスク領域及び3次元特徴点マップを生成し、
     前記3次元マスク領域及び前記3次元特徴点マップの少なくとも一方、及び、前記撮像装置によって撮像された前記画像から抽出した特徴点を用いて、前記撮像装置の位置及び姿勢の少なくとも一方を推定する、制御部、
     を備える情報処理装置。
  2.  前記制御部は、前記画像から抽出した前記特徴点のうち、前記表示領域に含まれない前記特徴点に基づき、前記3次元特徴点マップを生成する、請求項1に記載の情報処理装置。
  3.  前記制御部は、3次元空間における前記表示領域を含む空間を前記3次元マスク領域として設定する、請求項1に記載の情報処理装置。
  4.  前記制御部は、
     前記画像の前記表示領域に含まれる少なくとも3つの前記特徴点から前記3次元空間において前記表示領域を含む表示平面を算出し、
     前記撮像装置から前記画像の前記表示領域の角部へ向かうベクトルと、前記表示平面と、の交点に基づき、前記表示平面における前記表示領域を算出し、
     前記表示領域を3方向に膨張させた領域を前記3次元マスク領域として設定する、
     請求項3に記載の情報処理装置。
  5.  前記制御部は、前記画像から抽出した複数の前記特徴点のうち、前記3次元マスク領域外の領域に対応する前記特徴点に基づき、前記撮像装置の前記位置及び前記姿勢の少なくとも一方を推定する、請求項1に記載の情報処理装置。
  6.  前記制御部は、
     前記撮像装置の前記位置及び前記姿勢の少なくとも一方、及び、前記3次元マスク領域に基づき、前記撮像装置が撮像する前記画像のうち前記3次元マスク領域に対応する2次元マスク領域を算出し、
     前記画像のうち、前記2次元マスク領域外の前記特徴点に基づき、前記撮像装置の前記位置及び前記姿勢の少なくとも一方を推定する、請求項5に記載の情報処理装置。
  7.  前記制御部は、表示に表示された所定の画像を検出することで、前記表示領域を取得する、請求項1に記載の情報処理装置。
  8.  前記制御部は、ユーザから前記表示領域の指定を受け付ける、請求項1に記載の情報処理装置。
  9.  前記制御部は、
     前記表示領域の第1領域に所定のパターン画像を表示させ、
     前記撮像装置が撮像した前記画像から抽出した複数の前記特徴点に基づき、前記撮像装置の前記位置及び前記姿勢の少なくとも一方を推定する、
     請求項1に記載の情報処理装置。
  10.  前記制御部は、制御装置からの指示に基づき、前記所定のパターン画像を表示させて、前記撮像装置が撮像した前記画像から抽出した複数の前記特徴点に基づき、前記撮像装置の前記位置及び前記姿勢の少なくとも一方を推定する第1の推定処理、及び、前記3次元マスク領域及び前記3次元特徴点マップの少なくとも一方、及び、前記撮像装置によって撮像された前記画像から抽出した特徴点を用いて、前記撮像装置の位置及び姿勢の少なくとも一方を推定する第2の推定処理の少なくとも1つを実行する、請求項9に記載の情報処理装置。
  11.  前記制御部は、
     前記撮像装置の前記位置及び前記姿勢の少なくとも一方、及び、前記3次元マスク領域に基づき、前記撮像装置が撮像する前記画像のうち前記3次元マスク領域に対応する2次元マスク領域を算出し、
     前記表示領域に表示される前記所定のパターン画像を検出し、
     前記所定のパターン画像が前記2次元マスク領域に含まれるか否かを判定した判定結果を、前記制御装置に通知する、
     請求項10に記載の情報処理装置。
  12.  前記制御装置は、前記判定結果に応じて、前記第1の推定処理及び前記第2の推定処理のうち前記制御部が実行する推定処理を決定し、決定結果を前記制御部に通知する、請求項11に記載の情報処理装置。
  13.  前記撮像装置は、ユーザの頭部に装着される機器に搭載される、請求項1に記載の情報処理装置。
  14.  撮像装置によって撮像された画像に含まれる表示装置の表示領域を取得することと、
     取得した前記表示領域に基づき、3次元マスク領域及び3次元特徴点マップを生成することと、
     前記3次元マスク領域及び前記3次元特徴点マップの少なくとも一方、及び、前記撮像装置によって撮像された前記画像から抽出した特徴点を用いて、前記撮像装置の位置及び姿勢の少なくとも一方を推定することと、
     を含む情報処理方法。
  15.  コンピュータに、
     撮像装置によって撮像された画像に含まれる表示装置の表示領域を取得させ、
     取得した前記表示領域に基づき、3次元マスク領域及び3次元特徴点マップを生成させ、
     前記3次元マスク領域及び前記3次元特徴点マップの少なくとも一方、及び、前記撮像装置によって撮像された前記画像から抽出した特徴点を用いて、前記撮像装置の位置及び姿勢の少なくとも一方を推定させる、
     プログラム。
PCT/JP2022/041646 2021-11-18 2022-11-09 情報処理装置、情報処理方法及びプログラム WO2023090213A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202280075392.0A CN118235162A (zh) 2021-11-18 2022-11-09 信息处理装置、信息处理方法和程序
EP22895495.4A EP4435721A1 (en) 2021-11-18 2022-11-09 Information processing device, information processing method, and program
JP2023561545A JPWO2023090213A1 (ja) 2021-11-18 2022-11-09

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-188076 2021-11-18
JP2021188076 2021-11-18

Publications (1)

Publication Number Publication Date
WO2023090213A1 true WO2023090213A1 (ja) 2023-05-25

Family

ID=86396905

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/041646 WO2023090213A1 (ja) 2021-11-18 2022-11-09 情報処理装置、情報処理方法及びプログラム

Country Status (4)

Country Link
EP (1) EP4435721A1 (ja)
JP (1) JPWO2023090213A1 (ja)
CN (1) CN118235162A (ja)
WO (1) WO2023090213A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000134640A (ja) * 1998-10-27 2000-05-12 Sony Corp 受像機、その位置認識装置、その位置認識方法及び仮想画像立体合成装置
JP2013182479A (ja) * 2012-03-02 2013-09-12 Nikon Corp 被写体追尾装置、被写体追尾方法およびカメラ
WO2017168899A1 (ja) 2016-03-30 2017-10-05 ソニー株式会社 情報処理方法および情報処理装置
WO2019116784A1 (ja) * 2017-12-12 2019-06-20 ソニー株式会社 情報処理装置、移動体、制御システム、情報処理方法及びプログラム
WO2019131198A1 (ja) * 2017-12-28 2019-07-04 ソニー株式会社 制御装置、および制御方法、プログラム、並びに移動体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000134640A (ja) * 1998-10-27 2000-05-12 Sony Corp 受像機、その位置認識装置、その位置認識方法及び仮想画像立体合成装置
JP2013182479A (ja) * 2012-03-02 2013-09-12 Nikon Corp 被写体追尾装置、被写体追尾方法およびカメラ
WO2017168899A1 (ja) 2016-03-30 2017-10-05 ソニー株式会社 情報処理方法および情報処理装置
WO2019116784A1 (ja) * 2017-12-12 2019-06-20 ソニー株式会社 情報処理装置、移動体、制御システム、情報処理方法及びプログラム
WO2019131198A1 (ja) * 2017-12-28 2019-07-04 ソニー株式会社 制御装置、および制御方法、プログラム、並びに移動体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KANEKO MASAYA; IWAMI KAZUYA; OGAWA TORN; YAMASAKI TOSHIHIKO; AIZAWA KIYOHARU: "Mask-SLAM: Robust Feature-Based Monocular SLAM by Masking Using Semantic Segmentation", 2018 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION WORKSHOPS (CVPRW), IEEE, 18 June 2018 (2018-06-18), pages 371 - 3718, XP033475660, DOI: 10.1109/CVPRW.2018.00063 *

Also Published As

Publication number Publication date
EP4435721A1 (en) 2024-09-25
JPWO2023090213A1 (ja) 2023-05-25
CN118235162A (zh) 2024-06-21

Similar Documents

Publication Publication Date Title
CN110310329B (zh) 操作显示设备的方法、信息处理系统及非暂时性存储介质
US10852847B2 (en) Controller tracking for multiple degrees of freedom
CN109298629B (zh) 在未绘制地图区域中引导移动平台的系统及方法
KR101725060B1 (ko) 그래디언트 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
US20200011668A1 (en) Simultaneous location and mapping (slam) using dual event cameras
CN108283018B (zh) 电子设备和用于电子设备的姿态识别的方法
US9646384B2 (en) 3D feature descriptors with camera pose information
KR102006043B1 (ko) 깊이 카메라를 이용한 머리 포즈 추적 기법
US10937214B2 (en) System and method for merging maps
US10930008B2 (en) Information processing apparatus, information processing method, and program for deriving a position orientation of an image pickup apparatus using features detected from an image
JP6609640B2 (ja) 電子デバイス上における環境マッピング用のフィーチャ・データの管理
KR20180112090A (ko) 카메라의 포즈를 판단하기 위한 장치 및 방법
JP7420135B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US20150077434A1 (en) Image processing apparatus, image processing method, and program
US10890600B2 (en) Real-time visual-inertial motion tracking fault detection
US10861185B2 (en) Information processing apparatus and method of controlling the same
Brunetto et al. Fusion of inertial and visual measurements for rgb-d slam on mobile devices
KR20220122287A (ko) 증강 현실 제공 장치의 포즈 결정 방법 및 장치
CN113610702B (zh) 一种建图方法、装置、电子设备及存储介质
US20210327160A1 (en) Authoring device, authoring method, and storage medium storing authoring program
Afif et al. Orientation control for indoor virtual landmarks based on hybrid-based markerless augmented reality
US20220191542A1 (en) Object Pose Estimation and Tracking Using Machine Learning
WO2023090213A1 (ja) 情報処理装置、情報処理方法及びプログラム
CN118339424A (zh) 用于真实世界测绘的物体和相机定位系统以及定位方法
US11935286B2 (en) Method and device for detecting a vertical planar surface

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023561545

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 202280075392.0

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2022895495

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022895495

Country of ref document: EP

Effective date: 20240618