WO2021002256A1 - 情報処理システム、情報処理方法及びプログラム - Google Patents

情報処理システム、情報処理方法及びプログラム Download PDF

Info

Publication number
WO2021002256A1
WO2021002256A1 PCT/JP2020/024801 JP2020024801W WO2021002256A1 WO 2021002256 A1 WO2021002256 A1 WO 2021002256A1 JP 2020024801 W JP2020024801 W JP 2020024801W WO 2021002256 A1 WO2021002256 A1 WO 2021002256A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
virtual space
anchor
unit
viewpoint
Prior art date
Application number
PCT/JP2020/024801
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 US17/617,138 priority Critical patent/US20220237819A1/en
Priority to CN202080046845.8A priority patent/CN114208143A/zh
Priority to EP20835662.6A priority patent/EP3996052B1/en
Priority to JP2021529979A priority patent/JPWO2021002256A1/ja
Publication of WO2021002256A1 publication Critical patent/WO2021002256A1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/292Multi-camera tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/695Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/2224Studio circuitry; Studio devices; Studio equipment related to virtual studio applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory

Definitions

  • This disclosure relates to information processing systems, information processing methods and programs.
  • a virtual camera (hereinafter referred to as a virtual camera) is placed in a three-dimensional virtual space created by computer graphics (CG), and the virtual space is photographed as if it were taken with a virtual camera.
  • CG computer graphics
  • the position and orientation of the user or device in the real space and the position and orientation of the virtual camera in the virtual space are correctly aligned (aligned). ) Need to be done. If there is a deviation in this alignment, the user cannot accurately control the virtual camera in the virtual space, which causes a problem that it becomes difficult to generate a desired CG image.
  • this disclosure proposes an information processing system, an information processing method, and a program that enable a user to generate a desired CG image.
  • the information processing system of one form according to the present disclosure includes an acquisition unit that acquires the first position information of the device existing in the real space in the real space, and the first position information.
  • a locus generator that generates a movement locus of a viewpoint set in the virtual space based on the above, and a first modification that modifies the second position information of the viewpoint in the virtual space on the virtual space.
  • a unit and a correction unit that corrects the movement locus based on the correction of the second position information are provided.
  • the virtual camera is a virtual camera arranged in a virtual space created by CG.
  • the virtual camera By rendering the virtual space within the angle of view of the virtual camera with the position of the virtual camera as a viewpoint, it is possible to generate a CG image as if the virtual space was photographed by the camera.
  • a method of operating the virtual camera for example, there are an Outside-in method and an Inside-out method.
  • FIG. 1 is a diagram for explaining an outline of an Outside-in type virtual camera system.
  • the device 100 arranged in the real space is photographed by a plurality of external cameras 110, and the image is analyzed to obtain 3 in the real space of the device 100.
  • the dimensional position is specified.
  • the device 100 is provided with, for example, directional sticks 102H, 102V and 102F for clearly indicating the posture of the device 100.
  • the directional stick 102H indicates the lateral direction of the device 100
  • the directional stick 102V indicates the vertical direction of the device 100
  • the directional stick 102F indicates the forward direction of the device 100.
  • the direction stick 102F indicates the angle of view direction of the camera. Therefore, the posture of the device 100 can be specified by analyzing the image taken by the external camera 110.
  • the posture may be the inclination or orientation of the device determined by the yaw angle, roll angle, and pitch angle.
  • the position and orientation of the device 100 in the real space are specified by using the external camera 110 that captures the device 100 from the outside.
  • the virtual cameras in the virtual space are linked so as to move according to the movement of the device 100 in the real space. Therefore, when the user moves or changes the orientation of the device 100, the position and posture of the virtual camera in the virtual space change according to the movement of the device 100. Therefore, the user can generate a CG image of a desired angle from a desired position in the virtual space by manipulating the device 100.
  • the device 100 may be provided with a monitor 101 for presenting the image captured by the virtual camera to the user in real time.
  • FIG. 2 is a diagram for explaining the outline of the Inside-out type virtual camera system.
  • the device 200 estimates the position and orientation by, for example, SLAM (Simultaneous Localization and Mapping).
  • the device 200 is provided with cameras 203L and 203R on the front surface of the housing 201, and is based on an image taken by the cameras 203L and 203R in a map (also referred to as a pre-map) created in advance. Identify your current position and your current posture.
  • the device 200 may create and update a map in real time based on the images taken by the cameras 203L and 203R and the information acquired by various sensors.
  • the virtual camera in the virtual space is linked to the device 200, and the position and orientation of the virtual camera in the virtual space can be changed by the user moving the device 200 or the like. it can. Therefore, the user can generate a CG image of a desired angle from a desired position in the virtual space by manipulating the device 200.
  • the device 200 may be provided with a monitor 202 for presenting the image captured by the virtual camera to the user in real time.
  • GPS Global Positioning System
  • IMU inertial measurement unit
  • the device 100 when the device 100 is moved from a room in which a system composed of a plurality of external cameras 110 is installed to a room in which a system composed of another plurality of external cameras 110 is installed. If these two coordinate systems are out of alignment, there is a possibility that the virtual camera behaves unintentionally when moving from one system to the other, and a desired CG image cannot be obtained.
  • the position and posture of the device 200 are the values obtained by accumulating the estimated values. Therefore, for example, if there is a deviation in the initial alignment or if a deviation occurs in the process of accumulating the estimated values, the user cannot accurately control the virtual camera in the virtual space.
  • the trajectory T1 of the virtual camera is the actual device.
  • the locus T0 of 200 is rotated in the pitch direction.
  • FIG. 4 is a block diagram showing a schematic configuration example of a virtual camera system as an information processing system according to the first embodiment.
  • the virtual camera system 1 constitutes a sensor group 10 including a camera 11 and a self-position estimation unit (also referred to as an estimation unit or a second correction unit, or a part of an acquisition unit) in real space. 13), a map database (DB) 14, a self-positioning unit (also referred to as a locus generation unit, a first correction unit, or a determination unit) 15 on the virtual space, a virtual space rendering unit 16, a virtual space DB 17, and the like.
  • a self-position estimation unit also referred to as an estimation unit or a second correction unit, or a part of an acquisition unit
  • DB map database
  • a self-positioning unit also referred to as a locus generation unit, a first correction unit, or a determination unit
  • the camera 203 corresponds to, for example, the cameras 203L and 203R used in the Inside-out method.
  • the sensor group 10 is, for example, a set of sensors that acquire various information for estimating the self-position of the device 200 in the real space.
  • the sensor group 10 includes a camera 11 as an outside world sensor for acquiring information (outside world information) around the device 200.
  • various image sensors such as a so-called RGB camera and an RGB-D camera can be used.
  • a ToF (Time-of Flight) sensor, a LIDAR (Light Detection and Ringing) sensor, a GPS sensor, a magnetic sensor, a radio wave intensity sensor, or the like can be used.
  • the sensor group 10 may also include an internal sensor for acquiring information such as the moving distance, moving speed, moving direction, and posture of the device 200.
  • an IMU an acceleration sensor, an angular velocity sensor, or the like can be used.
  • a drive system such as an actuator for self-propelling, it is also possible to use an encoder, a potentiometer, or the like as an internal sensor.
  • the map database (DB) 14 stores map data created in advance.
  • the map in the map DB 14 may be appropriately updated based on the outside world information and / or the inside world information acquired by the sensor group 10.
  • the self-position estimation unit 13 in the real space reads a map from the map DB 14, and based on the outside world information and / or the inside world information input from the sensor group 10, the device 200 sets which coordinates (x, y, z) on the map. ) Is estimated and specified in what posture ( ⁇ , ⁇ , ⁇ ) exists.
  • a self-position Tr the position and orientation of the device 200 on the map estimated by the self-position estimation unit 13 in the real space.
  • the self-position determination unit 15 in the virtual space determines the self-position Tv of the virtual camera in the virtual space based on the self-position Tr of the device 200 input from the self-position estimation unit 13 in the real space.
  • the present invention is not limited to this, and the self-positioning unit 15 in the virtual space is a virtual camera in the virtual space based on the moving distance and the direction of the device 200 input from the self-positioning unit 13 in the real space.
  • the self-position Tv may be determined.
  • the virtual camera in this explanation is a viewpoint set in the virtual space.
  • This viewpoint may be a point or a planar or three-dimensional region.
  • the self-position Tv determined by the self-position determination unit 15 in the virtual space is registered in the locus data storage unit 23 together with the time information (for example, the elapsed time described later) when the self-position Tv is determined. Therefore, the locus data storage unit 23 stores the movement locus of the virtual camera in the virtual space along the time series.
  • the position on the locus indicated by the self-position Tv is referred to as a node.
  • the virtual space DB 17 stores the coordinate system of the virtual space created by CG, the object data of the objects arranged in the virtual space, and the like.
  • the self-position Tv determined by the self-positioning unit 15 on the virtual space is also input to the virtual space rendering unit 16.
  • the virtual space rendering unit 16 reproduces the virtual space by acquiring the coordinate system of the virtual space, object data, and the like from the virtual space DB 17. Then, the virtual space rendering unit 16 renders the reproduced virtual space with the self-position Tv of the virtual camera input from the self-positioning unit 15 on the virtual space as a viewpoint, and thereby, the CG image within the angle of view of the virtual camera.
  • the CG image may include, for example, a key frame (also referred to as an I frame), a difference frame (also referred to as a P frame or a B frame) or the like.
  • the CG image generated by the virtual space rendering unit 16 is input to the CG image data storage unit 18 and stored. Further, the CG image is input to the monitor 202 mounted on the device 200 and presented to the user in real time. Therefore, the user can confirm what kind of CG image is currently being captured in the virtual space by viewing the CG image being reproduced on the monitor 202.
  • a virtual microphone may be added to the virtual camera.
  • the CG video generated by the virtual space rendering unit 16 may include audio data.
  • the operation input unit 204 is a user interface for the user to input various instructions.
  • the operation input unit 204 may be the touch panel.
  • various buttons for input support and the like may be displayed on the monitor 202.
  • the operation input unit 204 may be a key (including a cross key or the like), a button, an analog stick, or the like provided in the housing 201 of the device 200.
  • the user can instruct, for example, to start or end the link between the device 200 and the virtual camera. Further, the user can instruct, for example, the start and end of shooting of the CG image by the virtual camera by operating the operation input unit 204.
  • the user corrects the position and orientation of the virtual camera in the virtual space, that is, the self-position Tv of the virtual camera, regardless of the position and orientation of the device 200, for example, by operating the operation input unit 204. be able to.
  • the user can instruct the registration of the anchor described later, for example, by operating the operation input unit 204.
  • the user can input an instruction to change the position of the virtual camera by operating the cross key 204a.
  • the user can input an instruction to change the direction of the virtual camera by operating the analog stick 204b.
  • the instruction input from the cross key 204a and the analog stick 204b, that is, the control value is input to the self-positioning unit 15 in the virtual space.
  • the self-positioning unit 15 on the virtual space adjusts the self-positioning TV of the virtual camera on the virtual space based on the input control value, and inputs the adjusted self-positioning TV to the virtual space rendering unit 16.
  • the virtual space rendering unit 16 generates a CG image based on the input self-position Tv, and displays the CG image on the monitor 202.
  • a CG image with the moving self-position Tv of the virtual camera as a viewpoint is displayed on the monitor 202. May be done.
  • the user determines from the CG image displayed on the monitor 202 that the virtual camera has moved to the desired position and posture, the user presses the anchor registration button 204c.
  • the anchor generation unit 21 associates the coordinates in the real space with the coordinates in the virtual space. Specifically, when the user instructs the registration of the anchor via the operation input unit 204, the anchor generation unit 21 estimates the self-position in the real space by the self-position estimation unit 13 when this instruction is input.
  • the Tr is associated with the self-position Tv determined by the self-positioning unit 15 in the virtual space.
  • the self-position Tv of the virtual camera in the virtual space when the user inputs the anchor registration instruction via the operation input unit 204 is referred to as an anchor.
  • the locus data correction unit 22 corrects the locus data table of the virtual camera stored in the locus data storage unit 23, for example, based on an instruction input by the user to the operation input unit 204.
  • the locus data correction unit 22 stores the locus in the locus data storage unit 23.
  • the previously registered anchor which may be the self-position Tv at the time when the link between the device 200 and the virtual camera is started or when the shooting by the virtual camera is started
  • the anchor registered this time. Correct the coordinates of the node set on the trajectory connecting with.
  • the locus data correction unit 22 has a self-position Tv determined by the self-positioning unit 15 in the virtual space from the time when the anchor was registered last time to the time when the anchor is registered this time (more specifically, the self-position in the real space).
  • the self-position Tv of the previously registered anchor as the base point based on the movement amount and the movement direction, it is set on the trajectory connecting the previously registered anchor and the currently registered anchor. Correct the coordinates of the node.
  • the posture of the virtual camera with respect to the posture of the device 200 may be modified based on the movement amount and the movement direction of the virtual camera position and / or the posture input by the user to the operation input unit 204.
  • the posture of the virtual camera in this description may be the direction and inclination of the viewpoint (or angle of view) (inclination in the yaw angle, roll angle, and pitch angle direction).
  • the trajectory of the virtual camera caused by the misalignment between the device 200 and the virtual camera is corrected, so that the CG image desired by the user can be generated.
  • the sensor group 10 other than the camera 11 and the monitor 202 are mounted on the device 200, for example.
  • the locus data storage unit 23 may be mounted on the device 200, or may be arranged on a server (including various servers such as a cloud server) connected to the device 200 by wire or wireless communication. Good.
  • FIG. 5 is a schematic diagram showing a schematic configuration example of the back side (that is, the user side) of the device according to the first embodiment.
  • a cross key 204a as an operation input unit 204, an analog stick 204b, and an anchor registration button 204c are provided on the back side of the housing 201 of the device 200.
  • an analog stick 204b is provided on the back side of the housing 201 of the device 200.
  • an anchor registration button 204c are provided on the back side of the housing 201 of the device 200. ..
  • the cross key 204a is, for example, an operation input unit 204 for inputting an instruction to move the virtual camera up / down / left / right in the virtual space.
  • the analog stick 204b is, for example, a knob that rotates in the direction of an arrow, and is an operation input unit 204 for inputting an instruction to rotate the direction of the virtual camera in the virtual space.
  • the anchor registration button 204c is, for example, an operation input unit 204 for inputting an instruction to register the self-position Tv of the current virtual camera as an anchor.
  • the user determines from the CG image confirmed on the monitor 202 that the position of the virtual camera is deviated from the desired position
  • the user operates the cross key 204a to move the virtual camera into the virtual space. Move to the desired position.
  • the user adjusts the posture of the virtual camera by operating the analog stick 204b. ..
  • the monitor 202 may be divided into, for example, a main area 202a and a sub area 202b.
  • the main area 202a for example, the CG image generated by the virtual space rendering unit 16 is displayed.
  • the sub-region 202b for example, information that supports shooting in the virtual space by the user may be displayed.
  • Various information may be displayed in the sub-region 202b. These pieces of information may be generated by the virtual space rendering unit 16 or may be registered in the virtual space DB 17 in advance.
  • the device 200 may be a device that moves by being carried by the user, a device that moves by being remotely controlled by the user, or autonomously. It may be a moving device. Further, in the case of a remote movement type or an autonomous movement type, the device 200 may be a traveling type traveling on the ground, a ship type or a diving type traveling on the water surface or underwater, or flying in the air. It may be a flying type.
  • FIG. 6 is a diagram showing an example of the locus data table stored in the locus data storage unit according to the first embodiment.
  • the anchor is also treated as one of the nodes on the trajectory.
  • the trajectory data table in the trajectory data storage unit 23 has coordinates indicating the self-position Tv of the virtual camera in the virtual space (hereinafter referred to as virtual space coordinates) and the self-position Tv on the virtual space. It includes node data associated with the elapsed time when the self-positioning unit 15 determines (for example, the elapsed time since the start of imaging).
  • the virtual space coordinates include the position (vx, vy, vz) of the virtual camera in the virtual space and information on the posture of the virtual camera, for example, the yaw angle v ⁇ , the roll angle v ⁇ , and the pitch angle v ⁇ of the virtual camera.
  • the indicated coordinates (v ⁇ , v ⁇ , v ⁇ ) are included.
  • the trajectory data table also includes node data related to anchors (hereinafter, also referred to as anchor data).
  • anchor data in addition to the self-position Tv and the elapsed time when it was determined, the anchor ID for uniquely identifying the anchor and the self-position Tr of the device 200 used for determining the self-position Tv Are associated with each other.
  • a CG image when the virtual camera is moved along the locus indicated by the locus data table can be obtained. It can be generated by the virtual space rendering unit 16.
  • FIG. 7 is a flowchart showing an example of the basic operation according to the first embodiment.
  • the virtual camera continuously generates a CG image, for example, a key frame (also referred to as an I frame) or a difference frame (P frame, It is assumed that the generation of (also called B frame) etc. is being executed.
  • a CG image for example, a key frame (also referred to as an I frame) or a difference frame (P frame, It is assumed that the generation of (also called B frame) etc. is being executed.
  • the self-positioning unit 15 in the virtual space determines the coordinate system of the virtual space (hereinafter referred to as CG coordinate system) in which the virtual camera is arranged from the virtual space DB17.
  • the virtual space rendering unit 16 reads the fields and objects of the virtual space in which the virtual camera is arranged from the virtual space DB 17 (step S101).
  • the virtual space model to be read symmetrically may be appropriately selected by the user.
  • the self-positioning unit 15 on the virtual space determines the predetermined position of the read CG coordinate system as the self-positioning Tv of the virtual camera, thereby arranging the virtual camera in the virtual space (step S102).
  • the device 200 waits until it is activated by the user (NO in step S103), and when the device 200 is activated (YES in step S103), the self-positioning unit 15 in the virtual space determines the device 200 and the virtual camera.
  • the link with is started (step S104). Specifically, the self-positioning unit 15 in the virtual space changes the self-position Tv of the virtual camera so as to be linked with the change in the self-position Tr of the device 200 input from the self-position estimation unit 13 in the real space. To start that.
  • the self-position estimation unit 13 in the real space receives the external world information and / or the internal world information input from the sensor group 10 and the map stored in the map DB 14.
  • the self-position Tr of the device 200 in the real space is estimated based on (step S105).
  • the self-position determination unit 15 in the virtual space determines the self-position Tv of the virtual camera in the virtual space based on the self-position Tr estimated by the self-position estimation unit 13 in the real space (step S106).
  • the position and orientation (self-position Tv) of the virtual camera in the virtual space change in conjunction with the position and orientation (self-position Tr) of the device 200 in the real space.
  • steps S105 to S106 are continued until the start of shooting is instructed and input from the operation input unit 204 of the device 200 (NO in step S107).
  • an anchor corresponding to the shooting start position (hereinafter referred to as a start point anchor) is generated.
  • the self-position estimation unit 13 in the real space is on the real space based on the outside world information and / or the inside world information input from the sensor group 10 and the map stored in the map DB 14.
  • the self-position Tr of the device 200 is estimated (step S108), and the self-positioning unit 15 in the virtual space determines the self-position of the virtual camera in the virtual space based on the self-position Tr estimated by the self-positioning unit 13 in the real space.
  • Tv is determined (step S109).
  • the anchor generation unit 21 generates an anchor ID for uniquely identifying the start point anchor, and the anchor ID, the self-position Tr estimated by the self-position estimation unit 13 in the real space, and the self-position determination in the virtual space.
  • the anchor data of the start point anchor is generated, and the anchor data of the start point anchor is registered in the locus data storage unit 23 (step S110). ).
  • the virtual space rendering unit 16 generates frame data corresponding to the start point anchor (hereinafter referred to as an anchor compatible frame) by rendering with the self-position Tv of the virtual camera when the start point anchor is registered as a viewpoint.
  • the generated anchor-corresponding frame is stored in, for example, the CG video data storage unit 18 (step S111).
  • This anchor-compatible frame can be used as a key frame in, for example, in generating a CG image.
  • the self-position Tr is estimated by the real space self-position estimation unit 13 (step S112) and the self-position Tv by the virtual space self-position determination unit 15 until the user instructs the end of shooting from the operation input unit 204.
  • Step S113 and registration (step S114) of the node data in which the self-position Tv and the elapsed time are associated with the locus data storage unit 23 are repeatedly executed (NO in step S115).
  • the locus of the virtual camera during the shooting period is stored in the locus data storage unit 23.
  • step S115 when the user inputs a shooting end instruction from the operation input unit 204 (YES in step S115), it is determined whether or not to end the main operation (step S116), and when the main operation is ended (YES in step S116). ), End this operation. On the other hand, if this operation is not completed (NO in step S116), this operation returns to step S105, and the subsequent operations are executed.
  • FIG. 8 is a flowchart showing an example of the anchor registration operation and the trajectory correction operation according to the first embodiment.
  • the operation illustrated in FIG. 8 may be executed in parallel with the basic operation illustrated in FIG. 7, for example, after the shooting by the virtual camera is started.
  • the operation input unit 204 of the device 200 waits until a control value for correcting the self-position Tv of the virtual camera is input (NO in step S121).
  • the control values are, for example, the control values ( ⁇ vx, ⁇ vy, ⁇ vz) with respect to the CG coordinates (vx, vy, vz) of the virtual camera represented by the x-axis, y-axis, and z-axis, and the yaw angle v ⁇ and roll angle.
  • the control values ( ⁇ v ⁇ , ⁇ v ⁇ , ⁇ v ⁇ ) with respect to the attitude (v ⁇ , v ⁇ , v ⁇ ) of the virtual camera represented by v ⁇ and the pitch angle v ⁇ may be included.
  • the self-positioning unit 15 on the virtual space corrects the self-positioning Tv of the virtual camera according to the input control value to move the virtual camera in the virtual space. Move (step S122). As a result, the position of the viewpoint and the direction of the angle of view when rendering the CG image change.
  • the self-positioning unit 15 on the virtual space determines whether or not the anchor registration button 204c in the operation input unit 204 is pressed (step S123), and if it is pressed (YES in step S123), the anchor generation unit 21 generates an anchor ID for uniquely identifying the anchor, the anchor ID, the current self-position Tr of the device 200 estimated by the self-position estimation unit 13 in the real space, and the self-position determination in the virtual space.
  • Anchor anchor data is generated by associating the current self-position Tv of the virtual camera determined by unit 15 with the elapsed time from the start of shooting, and the anchor data of this anchor is registered in the locus data storage unit 23. (Step S124).
  • the virtual space rendering unit 16 generates an anchor-compatible frame of the registered anchor by rendering the self-position Tv of the virtual camera when the anchor is registered as a viewpoint, and generates an anchor-compatible frame of the generated anchor, for example. It is saved in the CG video data storage unit 18 (step S125).
  • This anchor-compatible frame can also be used as a key frame in, for example, in generating a CG image.
  • the locus data correction unit 22 corrects the locus data table stored in the locus data storage unit 23 based on the newly registered anchor (step S126), and proceeds to step S129.
  • the locus data correction unit 22 uses the locus data of a section (not including the first anchor) separated by the immediately preceding anchor (referred to as the first anchor) and the anchor immediately before the anchor (referred to as the second anchor).
  • the trajectory data table for this section is corrected by rotating and / or scaling the table based on the control values with the first anchor as the base point.
  • step S123 when it is determined in step S123 that the anchor registration button 204c in the operation input unit 204 is not pressed (NO in step S123), the self-positioning unit 15 in the virtual space cancels the control value input in step S121. It is determined whether or not it is (step S127). The control value may be canceled by the user, for example, via the operation input unit 204.
  • step S127 If the control value has not been canceled (NO in step S127), the self-positioning unit 15 in the virtual space returns to step S121 and executes the subsequent operations. On the other hand, when the control value is canceled (YES in step S127), the self-positioning unit 15 in the virtual space discards the control value input in step S121 and moves the virtual camera to the original position, that is, The self-position Tv of the virtual camera is returned to the original value (step S128), and the process proceeds to step S129.
  • step S129 it is determined whether or not to end the main operation, and when the main operation is ended (YES in step S129), the main operation is ended. On the other hand, if this operation is not completed (NO in step S129), this operation returns to step S121, and the subsequent operations are executed.
  • FIGS. 9 and 10 are schematic views for explaining a flow when correcting the trajectory data table based on the self-position of the virtual camera after correction.
  • FIG. 9 illustrates a case where four nodes N01 to N04 are generated in the process of moving the virtual camera from the position corresponding to the first anchor A01.
  • the locus data correction unit 22 controls the locus T01 after the first anchor A01 with the first anchor A01 as the base point so that the tip of the locus T01 coincides with the first anchor A01. Rotate and / or scale based on the value. Specifically, the node data of the nodes N01 to N04 between the first anchor A01 and the second anchor A02, the distance from the first anchor A01 to the second anchor A02, and each node N01 to each node N01 to the first anchor A01. The correction is made based on the distance to N04 and the control value. As a result, the locus T01 is corrected to the locus T02 whose tip coincides with the first anchor A01.
  • the self-positioning unit 15 in the virtual space is corrected from the locus data storage unit 23. May be automatically generated and stored (may be updated) in the CG video data storage unit 18 by reading and inputting to the virtual space rendering unit 16, or the user instructs from the operation input unit 204. May be generated and stored (updated) in the CG video data storage unit 18. At that time, the CG image generated based on the corrected trajectory data table may be reproduced on the monitor 202.
  • FIG. 11 is a block diagram showing a schematic configuration example of a virtual camera system as an information processing system according to a second embodiment.
  • the virtual camera system 2 includes, for example, an object extraction unit 31 and an object correlation DB 32 in addition to the same configuration as the virtual camera system 1 illustrated with reference to FIG. 4 in the first embodiment. Be prepared.
  • the object correlation DB 32 holds, for example, a correlation between a pre-created real object in the real world (hereinafter referred to as a real object) and a virtual object in the virtual space (hereinafter referred to as a virtual object).
  • FIG. 12 shows an example of the correlation table according to the second embodiment.
  • the correlation table has a structure in which the real object ID, the real space coordinates, the three-dimensional object data, the virtual object ID, and the virtual space coordinates are associated with each other.
  • the real object ID is an identifier for uniquely identifying the real object.
  • Real space coordinates are position and posture information indicating the position and posture of the real object in the real space.
  • the real-space coordinates may be coordinates expressed in a geographic coordinate system such as the Universal Transverse Mercator projection or the universal polar projection, or the real-space coordinates of one real object registered in the correlation table as the origin. It may be the coordinates in the coordinate system.
  • the 3D object data is data for recognizing a real object, and may be, for example, an image obtained by photographing the real object, 3D object data generated from this image, or the like.
  • the real object recognition process using the three-dimensional object data may be, for example, an image recognition process for a captured image.
  • the captured image used for the image recognition process may be an image taken by the camera 203 of the device 200, or an electronic device having an imaging function different from that of the device 200 (for example, a smartphone or a digital camera). ) May be the image taken.
  • the present invention is not limited to this, and various recognition processes such as a process of recognizing a real object from 3D object data based on 3D data acquired by scanning the surroundings with a laser scanner or the like can be applied. Is.
  • the virtual object ID is an identifier for uniquely identifying the virtual object. This virtual object ID may be the same as the identifier of the virtual object stored in the virtual space DB17.
  • the virtual space coordinates are position and posture information indicating the position and posture of the virtual object in the virtual space.
  • the object extraction unit 31 extracts an actual object included in the image by performing image recognition processing on the image captured by the camera 203, for example.
  • the object extraction unit 31 refers to the real object data registered in the object correlation DB 32, so that the real space coordinates of the real object and the virtual object ID and virtual space of the virtual object associated with the real object are used. Identify the coordinates.
  • the real space coordinates of the real object are input to the self-position estimation unit 13 in the real space together with the information about the real object area in the image input from the camera 203 (hereinafter referred to as object area data).
  • object area data the information about the real object area in the image input from the camera 203.
  • the object It is assumed that the same image data is input to the object extraction unit 31 and the self-position estimation unit 13 in the real space.
  • the self-position estimation unit 13 in the real space specifies the area of the real object in the image input from the camera 203 based on the object area data input from the object extraction unit 31.
  • the self-position estimation unit 13 in the real space specifies the relative position (including the distance and direction) of the device 200 with respect to the real object based on the area of the specified real object, and extracts the specified relative position and the object.
  • the actual self-position of the device 200 in the real space (hereinafter referred to as the real self-position TR) is specified based on the real-space coordinates of the real object input from the unit 31.
  • the self-position estimation unit 13 in the real space calculates the difference of the self-position Tr estimated based on the information input from the sensor group 10 immediately before with respect to the specified real self-position TR. This difference corresponds to the amount of deviation from the position and orientation of the virtual camera intended by the user in the virtual space. Therefore, in the present embodiment, the self-position estimation unit 13 in the real space calculates a control value for correcting the position and orientation of the virtual camera based on the above difference, and the control value is transmitted to the self-position determination unit 15 in the virtual space. input.
  • the virtual space self-position determination unit 15 corrects the self-position Tv of the virtual camera in the virtual space, as in the first embodiment.
  • the self-positioning unit 15 in the virtual space registers the anchor in the anchor generation unit 21. Instruct.
  • the anchor generation unit 21 and the locus data correction unit 22 generate anchor data and register it in the locus data storage unit 23 as in the first embodiment, and store the locus data based on the corrected anchor.
  • the locus data table of the corresponding section in the part 23 is corrected.
  • FIG. 13 is a flowchart showing an example of the control value calculation operation according to the second embodiment.
  • the operation illustrated in FIG. 13 is parallel to, for example, the basic operation illustrated in FIG. 7 in the first embodiment and the anchor registration operation and the trajectory correction operation illustrated in FIG. 8 after the shooting by the virtual camera is started. May be executed.
  • image data is input from the camera 203 to the object extraction unit 31 and the self-position estimation unit 13 in the real space (step S201).
  • the object extraction unit 31 extracts the actual object included in the image data by executing the image recognition process on the input image data (step S202). Then, the object extraction unit 31 determines whether or not the extracted real object is registered in the correlation data by referring to the object correlation DB 32 (step S203). If the extracted real object is not registered in the correlation data (NO in step S203), this operation proceeds to step S211.
  • the object extraction unit 31 when the extracted real object is registered in the correlation data (YES in step S203), the object extraction unit 31 includes the object area data indicating the area of the real object in the image data and the real object specified from the correlation data.
  • the real space coordinates are input to the self-position estimation unit 13 in the real space (step S204).
  • the self-position estimation unit 13 in the real space specifies the area of the real object in the image data based on the input object area data (step S205), and based on the real object in the specified image data. , The relative position of the device 200 with respect to the real object is specified (step S206).
  • the self-position estimation unit 13 in the real space specifies the real self-position TR of the device 200 based on the specified relative position and the real-space coordinates of the real object input from the object extraction unit 31 (step). S207).
  • the self-position estimation unit 13 in the real space calculates the difference of the self-position Tr estimated based on the information input from the sensor group 10 immediately before with respect to the specified real self-position TR (step S208).
  • the self-position estimation unit 13 in the real space generates a control value for correcting the position and orientation of the virtual camera based on the difference calculated in step S208 (step S209), and uses this control value as the self in the virtual space.
  • Input to the position determination unit 15 step S210).
  • the self-position Tv of the virtual camera in the virtual space is corrected according to the anchor registration operation and the trajectory correction operation illustrated in FIG. 8 in the first embodiment, and the anchor data is registered in the trajectory data storage unit 23.
  • the locus data table of the corresponding section in the locus data storage unit 23 is corrected by the locus data correction unit 22.
  • step S211 it is determined whether or not to end the main operation, and when the main operation is ended (YES in step S211), the main operation is ended. On the other hand, if this operation is not completed (NO in step S211), this operation returns to step S201, and the subsequent operations are executed.
  • a control value for correcting the deviation between the coordinate system of the device 200 and the coordinate system of the virtual camera is automatically generated, and the self-position in the virtual space is self-positioned. It is input to the determination unit 15.
  • the position and posture of the virtual camera can be automatically corrected.
  • the trajectory of the virtual camera is automatically corrected. As a result, it becomes possible to generate a CG image desired by the user.
  • the case where the virtual camera moves in a single virtual space in conjunction with the device is illustrated.
  • the third embodiment a case where the virtual camera is moved across a plurality of virtual spaces will be illustrated.
  • the movement of the virtual camera across a plurality of virtual spaces is, for example, a specific anchor (this is called a first anchor) in a certain virtual space (this is called a first virtual space) 301.
  • A32 and a specific anchor (this is called a second anchor) A43 in another virtual space (this is called a second virtual space) 401 are connected in advance, and the virtual camera is the first in the first virtual space 301.
  • This can be realized by moving (also referred to as jumping) the virtual camera to the second anchor A43 of the second virtual space 401 when the one anchor A32 is reached.
  • the schematic configuration of the virtual camera system according to the present embodiment may be, for example, the same as the virtual camera system 1 exemplified in the first embodiment or the virtual camera system 2 exemplified in the second embodiment.
  • the locus data table in the locus data storage unit 23 is replaced with the locus data table described later.
  • FIG. 15 is a diagram showing an example of the locus data table stored in the locus data storage unit according to the third embodiment. In this description, a case where the virtual camera moves across the first virtual space 301 and the second virtual space 401 illustrated in FIG. 14 will be illustrated.
  • the locus data table according to the present embodiment has the same configuration as the locus data table described with reference to FIG. 6 in the first embodiment, and the anchor IDs are the first anchor ID and the second anchor.
  • the ID has a configuration in which the virtual space coordinates are replaced with the first virtual space coordinates and the second virtual space coordinates, respectively.
  • the first anchor ID is an identifier for uniquely identifying each first anchor in the first virtual space 301.
  • the second anchor ID is an identifier for uniquely identifying each second anchor in the second virtual space.
  • the first virtual space coordinates are position information indicating the coordinates of the corresponding anchor or node in the first virtual space.
  • the second virtual space coordinates are position information indicating the coordinates of the corresponding anchor or node in the second virtual space.
  • the locus data table when connecting anchors in different virtual spaces, in the locus data table, information about the two anchors to be connected (first / second anchor ID, elapsed time, real space coordinates, first / second virtual space). Coordinates) are stored in the same record. As described above, in the locus data table, at least the information (first anchor ID and second anchor ID) for specifying the two anchors to be connected is associated with each other. In this description, connecting two anchors in different virtual spaces is called grouping.
  • FIG. 16 is a schematic diagram showing a schematic configuration example of the back side (that is, the user side) of the device according to the third embodiment.
  • the grouping button 204d as the operation input unit 204 is provided in the device 200 according to the present embodiment. It has an added configuration.
  • the monitor 202 is provided with a sub-region 202c for supporting the grouping of anchors.
  • a list of the first anchor and the second anchor registered in the locus data storage unit 23 is displayed.
  • the user selects, for example, two anchors to be grouped from the first anchor and the second anchor displayed in the sub-region 202c of the monitor 202, and the grouping is performed. Press the button 204d.
  • the grouping instruction input in this way is input to the anchor generation unit 21 via the self-positioning unit 15 in the virtual space, for example.
  • the anchor generation unit 21 extracts the records of the two anchors selected as grouping symmetry from the locus data table in the locus data storage unit 23, combines the extracted records into one record, and in the locus data storage unit 23. Update the trajectory data table of.
  • first coordinate system 501 and second coordinate system 601 having different scales are set for a single virtual space, and the virtual space is set to the first. It is also possible to configure the coordinate system of the virtual space to be switched to the second coordinate system 601 when a specific anchor (this is called the first anchor A52) is reached during reproduction in the one coordinate system 501. .. In that case, as illustrated in FIG. 17, when the scale of the second coordinate system 601 is larger than the scale of the first coordinate system 501, the viewing effect is such that the character attached to the virtual camera suddenly becomes larger in the virtual space. It becomes possible to play.
  • the device 200 is provided with a scale switching button 204e (also used as an analog stick 204b in the example shown in FIG. 18) as an operation input unit 204. , This may be realized by the user's operation.
  • the grouping of anchors for switching scales can be managed using, for example, a locus data table having the same configuration as the locus data table described with reference to FIG. 15 in the third embodiment.
  • the first virtual space coordinates are replaced with the first coordinate system virtual space coordinates indicating the virtual space coordinates in the first coordinate system 501
  • the second virtual space coordinates replace the virtual space coordinates in the second coordinate system 601. It is replaced with the second coordinate system virtual space coordinates shown.
  • Hardware configuration The device 100/200 and the server (the server communicably connected to the device 200) for realizing the virtual camera system 1 or 2 according to each of the above-described embodiments have, for example, a configuration as shown in FIG. It is realized by the computer 1000 of.
  • the computer 1000 has a CPU 1100, a RAM 1200, a ROM (Read Only Memory) 1300, an HDD (Hard Disk Drive) 1400, a communication interface 1500, and an input / output interface 1600. Each part of the computer 1000 is connected by a bus 1050.
  • the CPU 1100 operates based on the program stored in the ROM 1300 or the HDD 1400, and controls each part. For example, the CPU 1100 expands the program stored in the ROM 1300 or the HDD 1400 into the RAM 1200 and executes processing corresponding to various programs.
  • the ROM 1300 stores a boot program such as a BIOS (Basic Input Output System) executed by the CPU 1100 when the computer 1000 is started, a program that depends on the hardware of the computer 1000, and the like.
  • BIOS Basic Input Output System
  • the HDD 1400 is a computer-readable recording medium that non-temporarily records a program executed by the CPU 1100 and data used by the program.
  • the HDD 1400 is a recording medium for recording an image processing program according to the present disclosure, which is an example of program data 1450.
  • the communication interface 1500 is an interface for the computer 1000 to connect to an external network 1550 (for example, the Internet).
  • the CPU 1100 receives data from another device or transmits data generated by the CPU 1100 to another device via the communication interface 1500.
  • 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 an input device such as a keyboard or mouse via the input / output interface 1600. Further, the CPU 1100 transmits data to an output device such as a display, a speaker, or a printer via the input / output interface 1600. Further, the input / output interface 1600 may function as a media interface for reading a program or the like recorded on a predetermined recording medium (media).
  • the media is, for example, an optical recording medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk), a magneto-optical recording medium such as MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.
  • an optical recording medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk)
  • a magneto-optical recording medium such as MO (Magneto-Optical disk)
  • tape medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk)
  • MO Magneto-optical disk
  • the CPU 1100 of the computer 1000 executes the program loaded on the RAM 1200 to execute the self-position estimation unit 13 in the real space and the self-position in the virtual space.
  • the function of at least one of the determination unit 15, the virtual space rendering unit 16, the anchor generation unit 21, the trajectory data correction unit 22, and the object extraction unit 31 is realized.
  • the HDD 1400 stores the program according to the present disclosure and data stored in at least one of the map DB 14, the virtual space DB 17, the CG video data storage unit 18, the trajectory data storage unit 23, and the object correlation DB 32.
  • the CPU 1100 reads the program data 1450 from the HDD 1400 and executes the program, but as another example, these programs may be acquired from another device via the external network 1550.
  • the present technology can also have the following configurations.
  • An acquisition unit that acquires the first position information of a device existing in the real space in the real space, A locus generator that generates a movement locus in the virtual space of a viewpoint set in the virtual space based on the first position information, and a locus generator.
  • a first correction unit that corrects the second position information of the viewpoint in the virtual space on the virtual space, A correction unit that corrects the movement locus based on the correction of the second position information, Information processing system equipped with.
  • the acquisition unit At least one of an external sensor that acquires external information around the device and an internal sensor that acquires internal information inside the device.
  • An estimation unit that estimates the first position information based on at least one of the outside world information and the inside world information.
  • the first correction unit includes an operation input unit for causing the user to input a correction instruction for the second position information of the viewpoint in the virtual space, and corrects the second position information based on the correction instruction.
  • the operation input unit is A first operation input unit for the user to input a correction instruction for the position of the viewpoint in the virtual space, and A second operation input unit for the user to input a correction instruction for at least one of the position and direction of the viewpoint in the virtual space.
  • a camera provided in the device existing in the real space and An extraction unit that extracts objects included in the image data from the image data acquired by the camera, and an extraction unit.
  • a second correction unit that corrects the first position information of the device based on the position of the object extracted by the extraction unit in the real space.
  • the second correction unit identifies the actual position of the device in the real space from the relative position of the object and the device in the real space, and the first position is based on the actual position.
  • a locus storage unit that holds the movement locus by storing the second position information of the viewpoint in the virtual space in chronological order is further provided.
  • the information processing system according to any one of (1) to (6), wherein the correction unit corrects the movement locus held in the locus storage unit.
  • An anchor generation unit that generates anchor information that associates the first position information with the second position information is further provided.
  • the information processing system according to (7), wherein the locus storage unit holds the anchor information as a part of the movement locus.
  • the anchor generation unit generates the anchor information based on an instruction from a user.
  • a locus storage unit that holds the movement locus by storing the second position information of the viewpoint in the virtual space in chronological order.
  • An anchor generation unit that generates anchor information indicating the correspondence between the first position information and the second position information.
  • the locus storage unit holds the anchor information as a part of the movement locus.
  • the virtual space includes a first virtual space and a second virtual space different from the first virtual space.
  • the locus storage unit stores the first anchor information including the second position information in the first virtual space and the second anchor information including the second position information in the second virtual space in association with each other.
  • the determination unit determines the position of the viewpoint in the second virtual space indicated by the second anchor information.
  • the information processing system according to (11) above which determines the position within.
  • the virtual space is reproduced by the first coordinate system of the first scale and the second coordinate system of the second scale different from the first scale.
  • the locus storage unit stores the first anchor information including the second position information on the first coordinate system and the second anchor information including the second position information on the second coordinate system in association with each other.
  • the information processing system according to (8) above.
  • (14) Further provided with a determination unit for determining the position of the viewpoint in the virtual space.
  • the determination unit includes the position of the viewpoint in the second anchor information.
  • the first position information includes information on the position of the device in the real space and information on the posture of the device in the real space.
  • the second position information includes any one of the above (1) to (14) including information on the position of the viewpoint in the virtual space and information on the direction and inclination of the viewpoint in the virtual space.
  • a program to make a computer work Acquiring the first position information of the device existing in the real space, Generating the movement locus of the viewpoint set in the virtual space based on the first position information, Modifying the second position information of the viewpoint in the virtual space, A program for causing the computer to correct the movement locus based on the correction of the second position information.

Abstract

ユーザが所望するCG映像を生成することを可能にする。実施形態に係る情報処理システムは、実空間内に存在するデバイスの前記実空間上の第1位置情報を取得する取得部(13)と、前記第1位置情報に基づいて仮想空間内に設定された視点の前記仮想空間内の移動軌跡を生成する軌跡生成部(15)と、前記仮想空間内における前記視点の前記仮想空間上の第2位置情報を修正する第1修正部(15)と、前記第2位置情報の修正に基づいて前記移動軌跡を補正する補正部(22)とを備える。

Description

情報処理システム、情報処理方法及びプログラム
 本開示は、情報処理システム、情報処理方法及びプログラムに関する。
 従来、コンピュータグラフィックス(Computer Graphics:CG)で作成された3次元の仮想空間内に仮想的なカメラ(以下、バーチャルカメラという)を配置して、仮想空間内をあたかもバーチャルカメラで撮影したかのようなCG映像を生成する技術が開発されている。
 また、近年では、モーションキャプチャなどの人の動きを検出する技術を用いることで、仮想空間内に配置したバーチャルカメラの位置や姿勢をユーザ自身やユーザが手にするデバイス(カメラ等)の動きに合わせて制御する技術も開発されてきている。
特表2015-521419号公報 特表2014-507723号公報 特開2017-58752号公報
 ここで、仮想空間内に配置されたバーチャルカメラを正確に制御するためには、実空間内のユーザやデバイスの位置や姿勢と、仮想空間内のバーチャルカメラの位置や姿勢とを正しく整合(アライメント)させておく必要がある。このアライメントにズレが存在すると、仮想空間内のバーチャルカメラをユーザが正確に操縦することができなくなり、所望のCG映像を生成することが困難になるという問題が生じる。
 そこで本開示では、ユーザが所望するCG映像を生成することを可能にする情報処理システム、情報処理方法及びプログラムを提案する。
 上記の課題を解決するために、本開示に係る一形態の情報処理システムは、実空間内に存在するデバイスの前記実空間上の第1位置情報を取得する取得部と、前記第1位置情報に基づいて仮想空間内に設定された視点の前記仮想空間内の移動軌跡を生成する軌跡生成部と、前記仮想空間内における前記視点の前記仮想空間上の第2位置情報を修正する第1修正部と、前記第2位置情報の修正に基づいて前記移動軌跡を補正する補正部とを備える。
第1の実施形態に係るOutside-in方式のバーチャルカメラシステムの概要を説明するための図である。 第1の実施形態に係るInside-out方式のバーチャルカメラシステムの概要を説明するための図である。 Inside-out方式のバーチャルカメラシステムにおいて発生する軌跡のズレを説明するための図である。 第1の実施形態に係るバーチャルカメラシステムの概略構成例を示すブロック図である。 第1の実施形態に係るデバイスの背面側の概略構成例を示す模式図である。 第1の実施形態に係る軌跡データ記憶部に記憶されている軌跡データテーブルの一例を示す図である。 第1の実施形態に係る基本動作の一例を示すフローチャートである。 第1の実施形態に係るアンカー登録動作及び軌跡補正動作の一例を示すフローチャートである。 第1の実施形態に係る修正後のバーチャルカメラの自己位置に基づいて軌跡データテーブルを補正する際の流れを説明するための模式図である(その1)。 第1の実施形態に係る修正後のバーチャルカメラの自己位置に基づいて軌跡データテーブルを補正する際の流れを説明するための模式図である(その2)。 第2の実施形態に係るバーチャルカメラシステムの概略構成例を示すブロック図である。 第2の実施形態に係る相関テーブルの一例を示す図である。 第2の実施形態に係る制御値算出動作の一例を示すフローチャートである。 第3の実施形態に係る異なる仮想空間を跨いだバーチャルカメラの移動を説明するための図である。 第3の実施形態に係る軌跡データ記憶部に記憶されている軌跡データテーブルの一例を示す図である。 第3の実施形態に係るデバイスの背面側の概略構成例を示す模式図である。 第3の実施形態の変形例に係る座標系のスケールを変更した際のバーチャルカメラの移動を説明するための図である。 第3の実施形態の変形例に係るデバイスの背面側の概略構成例を示す模式図である。 本開示の実施形態に係るサーバのハードウエア構成を示すブロック図である。
 以下に、本開示の一実施形態について図面に基づいて詳細に説明する。なお、以下の実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
 また、以下に示す項目順序に従って本開示を説明する。
 1.バーチャルカメラシステムについて
 2.第1の実施形態
 2.1 バーチャルカメラの概略構成例
 2.2 デバイスの概略構成例
 2.3 軌跡データテーブルの概略構成例
 2.4 動作例
 2.4.1 基本フロー
 2.4.2 アンカー登録及び軌跡補正フロー
 2.4.3 軌跡補正の具体例
 2.5 作用・効果
 3.第2の実施形態
 3.1 バーチャルカメラの概略構成例
 3.2 動作例
 3.2.1 制御値算出フロー
 3.3 作用・効果
 4.第3の実施形態
 4.1 軌跡データテーブルの概略構成例
 4.2 デバイスの概略構成例
 4.3 作用・効果
 4.4 変形例
 5.ハードウエア構成
 1.バーチャルカメラシステムについて
 まず、本開示に係るバーチャルカメラの概要について説明する。バーチャルカメラとは、上述したように、CGで作成された仮想空間内に配置された仮想的なカメラである。このバーチャルカメラの位置を視点として、バーチャルカメラの画角内の仮想空間をレンダリングすることで、仮想空間内をあたかもカメラで撮影したかのようなCG映像を生成することが可能である。
 バーチャルカメラを操縦する方式としては、例えば、Outside-in方式と、Inside-out方式とが存在する。
 図1は、Outside-in方式のバーチャルカメラシステムの概要を説明するための図である。図1に示すように、Outside-in方式では、例えば、実空間内に配置されたデバイス100を複数の外部カメラ110で撮影し、その画像を解析することで、デバイス100の実空間上の3次元位置が特定される。
 また、デバイス100には、例えば、デバイス100の姿勢を明確に示すための方向スティック102H、102V及び102Fが設けられている。方向スティック102Hは、デバイス100の横方向を示し、方向スティック102Vはデバイス100の縦方向を示し、方向スティック102Fは、デバイス100の前方方向を示している。デバイス100をカメラに見立てた場合、方向スティック102Fは、カメラの画角方向を示している。したがって、外部カメラ110で撮影した画像を解析することで、デバイス100の姿勢を特定することができる。なお、姿勢とは、ヨー角、ロール角及びピッチ角で定まるデバイスの傾きや向きであってよい。
 このように、Outside-in方式では、デバイス100を外部から撮像する外部カメラ110を用いることで、実空間上のデバイス100の位置や姿勢が特定される。
 仮想空間内のバーチャルカメラは、実空間上のデバイス100の動きに合わせて動くようにリンクされている。したがって、ユーザがデバイス100を移動させたり、その向きを変えたりした場合、仮想空間内のバーチャルカメラの位置や姿勢がデバイス100の動きに合わせて変化する。したがって、ユーザは、デバイス100を操縦することで、仮想空間内の所望の位置から所望のアングルのCG映像を生成することができる。なお、デバイス100には、バーチャルカメラが撮影している映像をリアルタイムにユーザに提示するためのモニタ101が設けられていてもよい。
 一方、図2は、Inside-out方式のバーチャルカメラシステムの概要を説明するための図である。Inside-out方式では、デバイス200は、例えば、SLAM(Simultaneous Localization and Mapping)にて、位置及び姿勢を推定する。例えば、デバイス200は、その筐体201の前面に、カメラ203L及び203Rを備え、カメラ203L及び203Rで撮影された画像に基づくことで、事前に作成しておいたマップ(事前地図ともいう)における自身の現在置や、自身の現在の姿勢を特定する。なお、デバイス200は、カメラ203L及び203Rで撮影された画像や各種センサで取得された情報に基づいてリアルタイムにマップを作成及び更新してもよい。
 Outside-in方式と同様に、仮想空間内のバーチャルカメラは、デバイス200にリンクされており、ユーザがデバイス200を移動等させることで、仮想空間内のバーチャルカメラの位置や姿勢を変化させることができる。したがって、ユーザは、デバイス200を操縦することで、仮想空間内の所望の位置から所望のアングルのCG映像を生成することが可能である。なお、デバイス200には、バーチャルカメラが撮影している映像をリアルタイムにユーザに提示するためのモニタ202が設けられていてもよい。
 また、Inside-out方式で採用されるSLAMでは、カメラ203L及び203Rに代えて、又は、カメラ203L及び203Rに加え、GPS(Global Positioning System)や慣性計測装置(Inertial Measurement Unit:IMU)や各種測距センサ等を用いて、デバイス200の位置及び姿勢が推定されてもよい。
 以上のようなバーチャルカメラシステムにおいて、ユーザが所望するカメラワークをバーチャルカメラで正確に再現するためには、実空間内のデバイス100/200の位置や姿勢と、仮想空間内のバーチャルカメラの位置や姿勢とのアライメントを正しく調整しておく必要がある。
 ただし、仮に、デバイス100/200とバーチャルカメラとのアライメントを正しく調整しておいたとしても、使用の途中でそのアライメントにズレが生じてしまう場合も存在する。
 例えば、Outside-in方式では、ある複数の外部カメラ110で構成された系が設置された部屋から別の複数の外部カメラ110で構成された系が設置された部屋へデバイス100を移動させた場合、これら2つの座標系のアライメントがズレていると、一方の系から他方の系へ移動した際にバーチャルカメラが意図しない挙動をして所望のCG映像が得られない可能性が存在する。
 また、SLAMを採用するInside-out方式では、デバイス200の位置や姿勢がその推定値の積み重ねで得られた値である。そのため、例えば、初期のアライメントにズレが存在したり、推定値の積み重ねの過程でズレが発生したりした場合には、仮想空間内のバーチャルカメラをユーザが正確に操縦することができなくなる。
 例えば、図3に示す例のように、デバイス200の座標系を設定する際にデバイス200の初期の向きがその初期設定値よりも下を向いていた場合、バーチャルカメラの軌跡T1が実際のデバイス200の軌跡T0をピッチ方向に回転させたものとなってしまう。その結果、デバイス200の操縦とバーチャルカメラのカメラワークとにズレが生じ、ユーザが所望するCG映像が得られないという問題が生じる。
 そこで以下の実施形態では、実空間内のデバイスと仮想空間内のバーチャルカメラとの間に生じた位置や姿勢のズレを修正することで、ユーザが所望するCG映像を生成することを可能にする情報処理システム、情報処理方法及びプログラムについて、幾つか例を挙げて説明する。
 2.第1の実施形態
 まず、第1の実施形態に係る情報処理システム、情報処理方法及びプログラムについて、図面を参照して詳細に説明する。なお、本実施形態では、上述したInside-out方式のバーチャルカメラシステムを例示する。
 2.1 バーチャルカメラの概略構成例
 図4は、第1の実施形態に係る情報処理システムとしてのバーチャルカメラシステムの概略構成例を示すブロック図である。図4に示すように、バーチャルカメラシステム1は、カメラ11を含むセンサ群10と、実空間上自己位置推定部(推定部又は第2修正部ともいう。若しくは、取得部の一部を構成し得る)13と、マップデータベース(DB)14と、仮想空間上自己位置決定部(軌跡生成部、第1修正部又は決定部ともいう)15と、仮想空間レンダリング部16と、仮想空間DB17と、CG映像データ記憶部18と、モニタ202と、操作入力部204と、アンカー生成部21と、軌跡データ補正部(補正部ともいう)22と、軌跡データ記憶部(軌跡記憶部ともいう)23とを備える。カメラ203は、例えば、Inside-out方式で使用するカメラ203L及び203Rに相当する。
 センサ群10は、例えば、デバイス200の実空間上の自己位置を推定するための各種情報を取得するセンサの集合である。このセンサ群10には、デバイス200の周囲の情報(外界情報)を取得するための外界センサとしてのカメラ11を含む。カメラ11には、いわゆるRGBカメラや、RGB-Dカメラなどの種々のイメージセンサを用いることができる。また、その他にも、外界センサとして、ToF(Time-of Flight)センサやLIDAR(Light Detection and Ranging)センサやGPSセンサ、磁気センサ、電波強度センサ等を用いることが可能である。
 また、センサ群10には、デバイス200の移動距離や移動速度や移動方向や姿勢などの情報を取得するための内界センサも含まれ得る。内界センサとしては、IMUや加速度センサや角速度センサ等を用いることができる。また、デバイス200に自走のためのアクチュエータなどの駆動系が搭載されている場合には、エンコーダやポテンショメータなどを内界センサとして使用することも可能である。
 マップデータベース(DB)14には、事前に作成されたマップデータが格納されている。なお、マップDB14内のマップは、センサ群10で取得された外界情報及び/又は内界情報に基づいて適宜更新されてもよい。
 実空間上自己位置推定部13は、マップDB14からマップを読み出し、センサ群10から入力された外界情報及び/又は内界情報に基づいて、デバイス200がマップ上のどの座標(x,y,z)にどのような姿勢(Φ、θ、ψ)で存在しているかを推定して特定する。本説明において、実空間上自己位置推定部13により推定されたマップ上のデバイス200の位置及び姿勢を、自己位置Trと称する。
 仮想空間上自己位置決定部15は、実空間上自己位置推定部13から入力されたデバイス200の自己位置Trに基づいて、仮想空間内のバーチャルカメラの自己位置Tvを決定する。ただし、これに限定されず、仮想空間上自己位置決定部15は、実空間上自己位置推定部13から入力されたデバイス200の移動距離やその方向等に基づいて、仮想空間内のバーチャルカメラの自己位置Tvを決定してもよい。
 なお、本説明におけるバーチャルカメラは、仮想空間内に設定された視点である。この視点は、点若しくは平面的又は立体的な領域であってよい。
 仮想空間上自己位置決定部15によって決定された自己位置Tvは、その自己位置Tvが決定された際の時間情報(例えば、後述する経過時間)とともに、軌跡データ記憶部23に登録される。したがって、軌跡データ記憶部23には、仮想空間内のバーチャルカメラの時系列に沿った移動軌跡が格納されている。なお、本説明では、自己位置Tvが示す軌跡上の位置をノードという。
 仮想空間DB17は、CGで作成された仮想空間の座標系や、仮想空間に配置されたオブジェクトのオブジェクトデータ等を格納する。
 また、仮想空間上自己位置決定部15によって決定された自己位置Tvは、仮想空間レンダリング部16にも入力される。仮想空間レンダリング部16は、仮想空間DB17から仮想空間の座標系やオブジェクトデータ等を取得することで、仮想空間を再現する。そして、仮想空間レンダリング部16は、仮想空間上自己位置決定部15から入力されたバーチャルカメラの自己位置Tvを視点として、再現した仮想空間をレンダリングすることで、バーチャルカメラの画角内のCG映像を生成する。このCG映像には、例えば、キーフレーム(Iフレームともいう)や差分フレーム(Pフレーム、Bフレームともいう)等が含まれ得る。
 仮想空間レンダリング部16で生成されたCG映像は、CG映像データ記憶部18に入力されて蓄積される。また、CG映像は、デバイス200に搭載されたモニタ202に入力されて、リアルタイムにユーザに提示される。したがって、ユーザは、モニタ202に再生されているCG映像を見ることで、仮想空間内で現在どのようなCG映像が撮影されているかを確認することができる。
 なお、仮想空間内に音源が設定されている場合には、バーチャルカメラにバーチャルマイクが付加されていてもよい。その場合、仮想空間レンダリング部16で生成されたCG映像には、音声データが含まれていてもよい。
 操作入力部204は、ユーザが各種指示を入力するためのユーザインタフェースである。この操作入力部204は、モニタ202にタッチパネルが重畳配置されている場合には、そのタッチパネルであってもよい。その場合、モニタ202には、入力支援用の各種ボタン等が表示されてもよい。または、操作入力部204は、デバイス200の筐体201に設けられたキー(十字キー等を含む)やボタンやアナログスティック等であってもよい。
 ユーザは、操作入力部204を操作することで、例えば、デバイス200とバーチャルカメラとのリンクの開始や終了を指示することができる。また、ユーザは、操作入力部204を操作することで、例えば、バーチャルカメラによるCG映像の撮影開始や撮影終了を指示することができる。
 その他、ユーザは、操作入力部204を操作することで、例えば、デバイス200の位置や姿勢とは無関係に、仮想空間中のバーチャルカメラの位置や姿勢、すなわち、バーチャルカメラの自己位置Tvを修正することができる。
 さらに、ユーザは、操作入力部204を操作することで、例えば、後述するアンカーの登録を指示することができる。
 例えば、ユーザは、十字キー204aを操作することで、バーチャルカメラの位置を変化させる指示を入力することができる。また、ユーザは、アナログスティック204bを操作することで、バーチャルカメラの向きを変える指示を入力することができる。
 十字キー204a及びアナログスティック204bから入力された指示、すなわち制御値は、仮想空間上自己位置決定部15に入力される。仮想空間上自己位置決定部15は、入力された制御値に基づいて、仮想空間上のバーチャルカメラの自己位置Tvを調整し、調整後の自己位置Tvを仮想空間レンダリング部16に入力する。仮想空間レンダリング部16は、入力された自己位置Tvに基づいてCG映像を生成し、このCG映像をモニタ202に表示する。
 なお、ユーザが操作入力部204を用いてバーチャルカメラの位置及び姿勢(自己位置Tv)を変化させている過程で、バーチャルカメラの移動中の自己位置Tvを視点としたCG映像がモニタ202に表示されてもよい。
 そして、ユーザは、モニタ202に映し出されたCG映像からバーチャルカメラが所望の位置及び姿勢に移動したと判断すると、アンカー登録ボタン204cを押下する。
 アンカー生成部21は、実空間上の座標と仮想空間上の座標との紐付けを行なう。具体的には、アンカー生成部21は、ユーザが操作入力部204を介してアンカーの登録を指示すると、この指示が入力された際に実空間上自己位置推定部13により推定されている自己位置Trと、仮想空間上自己位置決定部15により決定されている自己位置Tvとの紐付けを行なう。なお、本実施形態では、ユーザが操作入力部204を介してアンカーの登録指示を入力した際の仮想空間上のバーチャルカメラの自己位置Tvをアンカーという。
 軌跡データ補正部22は、例えば、ユーザが操作入力部204に入力した指示に基づいて、軌跡データ記憶部23に格納されているバーチャルカメラの軌跡データテーブルを補正する。
 具体的には、軌跡データ補正部22は、ユーザが操作入力部204を用いてバーチャルカメラの自己位置Tvを修正した後にアンカーの登録を指示した場合、軌跡データ記憶部23に格納されている軌跡データテーブルのうち、前回登録されたアンカー(デバイス200とバーチャルカメラとのリンクを開始した時点、又は、バーチャルカメラによる撮影を開始した時点の自己位置Tvであってもよい)と今回登録されたアンカーとを結ぶ軌跡上に設定されているノードの座標を修正する。
 例えば、軌跡データ補正部22は、前回アンカーを登録してから今回アンカーを登録するまでに仮想空間上自己位置決定部15によって決定された自己位置Tv(より具体的には、実空間上自己位置推定部13によって推定された自己位置Trに基づいて仮想空間上自己位置決定部15が決定した自己位置Tv)による軌跡を、ユーザが操作入力部204に入力したバーチャルカメラの位置及び/又は姿勢の移動量及び移動方向に基づき、前回登録されたアンカーの自己位置Tvを基点として回転及び/又は並進させることで、前回登録されたアンカーと今回登録されたアンカーとを結ぶ軌跡上に設定されているノードの座標を修正する。その際、ユーザが操作入力部204に入力したバーチャルカメラの位置及び/又は姿勢の移動量及び移動方向に基づき、デバイス200の姿勢に対するバーチャルカメラの姿勢を修正してもよい。
 なお、本説明におけるバーチャルカメラの姿勢とは、視点(又は画角)の向き及び傾き(ヨー角、ロール角及びピッチ角方向の傾き)であってもよい。
 これにより、デバイス200とバーチャルカメラとのアライメントのズレに起因したバーチャルカメラの軌跡が修正されるため、ユーザが所望するCG映像を生成することが可能となる。
 上述した構成において、カメラ11以外のセンサ群10とモニタ202とは例えば、デバイス200に搭載される。カメラ11以外のセンサ群10及びモニタ202以外の構成、すなわち、カメラ11以外の外界センサ及び内界センサ12と、実空間上自己位置推定部13と、マップデータベース(DB)14と、仮想空間上自己位置決定部15と、仮想空間レンダリング部16と、仮想空間DB17と、CG映像データ記憶部18と、モニタ202と、操作入力部204と、アンカー生成部21と、軌跡データ補正部22と、軌跡データ記憶部23とは、それぞれ、デバイス200に搭載されてもよいし、デバイス200と有線又は無線で通信可能に接続されたサーバ(クラウドサーバ等の種々のサーバを含む)に配置されてもよい。
 2.2 デバイスの概略構成例
 図5は、第1の実施形態に係るデバイスの背面側(すなわち、ユーザ側)の概略構成例を示す模式図である。図5に例示するように、デバイス200の筐体201の背面側には、上述したモニタ202の他に、例えば、操作入力部204としての十字キー204a、アナログスティック204b及びアンカー登録ボタン204cを備える。
 十字キー204aは、例えば、仮想空間内でバーチャルカメラを上下左右に移動させる指示を入力するための操作入力部204である。アナログスティック204bは、例えば、矢印方向へ回転するツマミであり、仮想空間内のバーチャルカメラの向きを回転させる指示を入力するための操作入力部204である。アンカー登録ボタン204cは、例えば、現在のバーチャルカメラの自己位置Tvをアンカーとして登録する指示を入力するための操作入力部204である。
 したがって、ユーザは、例えば、モニタ202で確認されるCG映像からバーチャルカメラの位置が所望の位置からズレていると判断したときは、十字キー204aを操作することで、バーチャルカメラを仮想空間内の所望の位置まで移動させる。また、ユーザは、例えば、モニタ202で確認されるCG映像からバーチャルカメラの姿勢が所望の姿勢からズレていると判断したときは、アナログスティック204bを操作することで、バーチャルカメラの姿勢を調整する。
 また、モニタ202は、例えば、主領域202aと、副領域202bとに分かれていてもよい。主領域202aには、例えば、仮想空間レンダリング部16で生成されたCG映像が表示される。
 一方、副領域202bには、例えば、ユーザによる仮想空間内の撮影をサポートする情報が表示されてよい。例えば、バーチャルカメラを中心とした仮想空間の2次元又は3次元マップや、仮想空間内でのバーチャルカメラの軌跡及び軌跡上のアンカーの位置や、予め実空間内を撮影しておいた画像など、種々の情報が副領域202bに表示されてよい。これらの情報は、仮想空間レンダリング部16によって生成されてもよいし、仮想空間DB17に予め登録されていてもよい。
 なお、本実施形態に係るデバイス200は、ユーザによって携帯されることで移動するデバイスであってもよいし、ユーザによって遠隔で操作されることで移動するデバイスであってもよいし、自律して移動するデバイスであってもよい。また、遠隔移動型又は自律移動型とした場合、そのデバイス200は、地面を走行する走行型であってもよいし、水面又は水中を進む船型又は潜水型であってもよいし、空中を飛行する飛行型であってもよい。
 2.3 軌跡データテーブルの概略構成例
 図6は、第1の実施形態に係る軌跡データ記憶部に記憶されている軌跡データテーブルの一例を示す図である。なお、以下の説明では、アンカーも軌跡上のノードの一つとして取り扱う。
 図6に示すように、軌跡データ記憶部23内の軌跡データテーブルは、仮想空間上のバーチャルカメラの自己位置Tvを示す座標(以下、仮想空間座標という)と、その自己位置Tvを仮想空間上自己位置決定部15が決定した際の経過時間(例えば、撮像を開始してからの経過時間)とが対応付けられたノードデータを含んでいる。なお、仮想空間座標には、仮想空間上のバーチャルカメラの位置(vx,vy,vz)と、バーチャルカメラの姿勢に関する情報、例えば、バーチャルカメラのヨー角vφ、ロール角vθ及びピッチ角vψとを示す座標(vφ,vθ,vψ)とが含まれている。
 また、軌跡データテーブルには、アンカーに関するノードデータ(以下、アンカーデータともいう)も含まれている。アンカーデータでは、自己位置Tvと、それが決定された際の経過時間との他に、アンカーを一意に識別するためのアンカーIDと、自己位置Tvの決定に使用したデバイス200の自己位置Trとが対応付けられている。
 したがって、軌跡データテーブルの各ノードデータをその経過時間に従って順次、仮想空間上自己位置決定部15に入力することで、軌跡データテーブルが示す軌跡に沿ってバーチャルカメラを移動させた際のCG映像を仮想空間レンダリング部16に生成させることができる。
 2.4 動作例
 次に、第1の実施形態に係るバーチャルカメラシステムの動作について、図面を参照して詳細に説明する。
 2.4.1 基本フロー
 まず、第1の実施形態に係るバーチャルカメラシステムの基本動作について説明する。図7は、第1の実施形態に係る基本動作の一例を示すフローチャートである。なお、以下の説明において、撮影を開始してから終了するまでの間は、バーチャルカメラは、継続して、CG映像の生成、例えば、キーフレーム(Iフレームともいう)や差分フレーム(Pフレーム、Bフレームともいう)等の生成を実行しているものとする。
 図7に示すように、バーチャルカメラシステムが起動されると、まず、仮想空間上自己位置決定部15が仮想空間DB17からバーチャルカメラを配置する仮想空間の座標系(以下、CG座標系という)を読み込むとともに、仮想空間レンダリング部16が仮想空間DB17からバーチャルカメラを配置する仮想空間のフィールド及びオブジェクトを読み込む(ステップS101)。なお、読込の対称とする仮想空間モデルは、ユーザによって適宜選択されてもよい。
 次に、仮想空間上自己位置決定部15が、読み込んだCG座標系の所定の位置をバーチャルカメラの自己位置Tvと決定することで、仮想空間内にバーチャルカメラを配置する(ステップS102)。
 次に、デバイス200がユーザによって起動されるまで待機し(ステップS103のNO)、デバイス200が起動されると(ステップS103のYES)、仮想空間上自己位置決定部15は、デバイス200とバーチャルカメラとのリンクを開始する(ステップS104)。具体的には、仮想空間上自己位置決定部15は、実空間上自己位置推定部13から入力されたデバイス200の自己位置Trの変化に連動するように、バーチャルカメラの自己位置Tvを変化させることを開始する。
 また、デバイス200が起動される(ステップS103)と、実空間上自己位置推定部13は、センサ群10から入力された外界情報及び/又は内界情報と、マップDB14に格納されているマップとに基づいて、実空間上のデバイス200の自己位置Trを推定する(ステップS105)。そして、仮想空間上自己位置決定部15は、実空間上自己位置推定部13により推定された自己位置Trに基づいて、仮想空間上のバーチャルカメラの自己位置Tvを決定する(ステップS106)。これにより、仮想空間内のバーチャルカメラの位置及び姿勢(自己位置Tv)が実空間内のデバイス200の位置及び姿勢(自己位置Tr)に連動して変化する。
 ステップS105~S106の動作は、デバイス200の操作入力部204から撮影の開始が指示入力されるまで継続される(ステップS107のNO)。
 ユーザが操作入力部204から撮影の開始の指示を入力すると(ステップS107のYES)、まず、撮影の開始位置に相当するアンカー(以下、始点アンカーという)が生成される。具体的には、例えば、まず、実空間上自己位置推定部13がセンサ群10から入力された外界情報及び/又は内界情報とマップDB14に格納されているマップとに基づいて実空間上のデバイス200の自己位置Trを推定し(ステップS108)、仮想空間上自己位置決定部15が実空間上自己位置推定部13により推定された自己位置Trに基づいて仮想空間上のバーチャルカメラの自己位置Tvを決定する(ステップS109)。そして、アンカー生成部21が、始点アンカーを一意に識別するためのアンカーIDを生成し、このアンカーIDと、実空間上自己位置推定部13が推定した自己位置Trと、仮想空間上自己位置決定部15が決定した自己位置Tvと、撮影開始からの経過時間とを対応付けることで、始点アンカーのアンカーデータを生成して、この始点アンカーのアンカーデータを軌跡データ記憶部23に登録する(ステップS110)。
 次に、仮想空間レンダリング部16は、始点アンカーを登録した際のバーチャルカメラの自己位置Tvを視点としてレンダリングすることで、始点アンカーに対応するフレームデータ(以下、アンカー対応フレームという)を生成し、生成したアンカー対応フレームを、たとえば、CG映像データ記憶部18に保存する(ステップS111)。このアンカー対応フレームは、たとえば、CG映像の生成において、キーフレームとして使用することができる。
 つづいて、ユーザが操作入力部204から撮影の終了を指示するまで、実空間上自己位置推定部13による自己位置Trの推定(ステップS112)と、仮想空間上自己位置決定部15による自己位置Tv(ステップS113)と、自己位置Tvと経過時間とが対応付けられたノードデータの軌跡データ記憶部23への登録(ステップS114)とが繰返し実行される(ステップS115のNO)。これにより、撮影期間中のバーチャルカメラの軌跡が軌跡データ記憶部23に格納される。
 その後、ユーザが操作入力部204から撮影の終了指示を入力すると(ステップS115のYES)、本動作を終了するか否かが判断され(ステップS116)、本動作を終了する場合(ステップS116のYES)、本動作を終了する。一方、本動作を終了しない場合(ステップS116のNO)、本動作がステップS105へリターンし、以降の動作が実行される。
 2.4.2 アンカー登録及び軌跡補正フロー
 次に、図7を用いて説明した基本動作中に実行されるアンカー登録動作及び軌跡補正動作について説明する。図8は、第1の実施形態に係るアンカー登録動作及び軌跡補正動作の一例を示すフローチャートである。なお、図8に例示する動作は、例えば、バーチャルカメラによる撮影が開始された後、図7に例示した基本動作と並行して実行されてよい。
 図8に示すように、本動作では、まず、デバイス200の操作入力部204からバーチャルカメラの自己位置Tvを修正する制御値が入力されるまで待機する(ステップS121のNO)。なお、制御値は、例えば、x軸、y軸及びz軸で表されたバーチャルカメラのCG座標(vx,vy,vz)に対する制御値(Δvx,Δvy,Δvz)と、ヨー角vφ、ロール角vθ及びピッチ角vψで表されたバーチャルカメラの姿勢(vφ,vθ,vψ)に対する制御値(Δvφ,Δvθ,Δvψ)とが含まれてもよい。
 制御値が入力されると(ステップS121のYES)、仮想空間上自己位置決定部15は、入力された制御値に従って、バーチャルカメラの自己位置Tvを修正することで、バーチャルカメラを仮想空間内で移動させる(ステップS122)。これにより、CG映像をレンダリングする際の視点の位置及び画角の方向が変化する。
 次に、仮想空間上自己位置決定部15は、操作入力部204におけるアンカー登録ボタン204cが押下されたか否かを判定し(ステップS123)、押下された場合(ステップS123のYES)、アンカー生成部21は、アンカーを一意に識別するためのアンカーIDを生成し、このアンカーIDと、実空間上自己位置推定部13により推定されたデバイス200の現在の自己位置Trと、仮想空間上自己位置決定部15により決定されたバーチャルカメラの現在の自己位置Tvと、撮影開始からの経過時間とを対応付けることで、アンカーのアンカーデータを生成し、このアンカーのアンカーデータを軌跡データ記憶部23に登録する(ステップS124)。
 次に、仮想空間レンダリング部16は、アンカー登録した際のバーチャルカメラの自己位置Tvを視点としてレンダリングすることで、登録されたアンカーのアンカー対応フレームを生成し、生成したアンカー対応フレームを、たとえば、CG映像データ記憶部18に保存する(ステップS125)。このアンカー対応フレームもは、たとえば、CG映像の生成において、キーフレームとして使用することができる。
 また、軌跡データ補正部22は、軌跡データ記憶部23の記憶された軌跡データテーブルを、新たに登録されたアンカーに基づいて補正し(ステップS126)、ステップS129へ進む。例えば、軌跡データ補正部22は、直前のアンカー(第1アンカーという)とこのアンカーの1つ前のアンカー(第2アンカーという)とで区切られた区間(第1アンカーを含まず)の軌跡データテーブルを、第1アンカーを基点として制御値に基づいて回転及び/又は拡縮させることで、この区間の軌跡データテーブルを補正する。
 一方、ステップS123で操作入力部204におけるアンカー登録ボタン204cが押下されていない判定した場合(ステップS123のNO)、仮想空間上自己位置決定部15は、ステップS121で入力された制御値がキャンセルされたか否かを判定する(ステップS127)。なお、制御値のキャンセルは、たとえば、ユーザが操作入力部204を介して入力してもよい。
 制御値がキャンセルされていない場合(ステップS127のNO)、仮想空間上自己位置決定部15は、ステップS121へリターンし、以降の動作を実行する。一方、制御値がキャンセルされた場合(ステップS127のYES)、仮想空間上自己位置決定部15は、ステップS121で入力された制御値を破棄してバーチャルカメラを元の位置へ移動し、すなわち、バーチャルカメラの自己位置Tvを元の値に戻し(ステップS128)、ステップS129へ進む。
 ステップS129では、本動作を終了するか否かが判断され、本動作を終了する場合(ステップS129のYES)、本動作を終了する。一方、本動作を終了しない場合(ステップS129のNO)、本動作がステップS121へリターンし、以降の動作が実行される。
 2.4.3 軌跡補正の具体例
 図9及び図10は、修正後のバーチャルカメラの自己位置に基づいて軌跡データテーブルを補正する際の流れを説明するための模式図である。図9には、第1アンカーA01に対応する位置からバーチャルカメラが移動する過程で4つのノードN01~N04が生成された場合が例示されている。
 図9に示すように、ユーザが操作入力部204を操作してバーチャルカメラの自己位置Tvを修正し、修正後の自己位置Tvを第1アンカーA01として登録すると、軌跡T01の先端位置と第2アンカーA02の位置とが乖離することとなる。
 その場合、図10に示すように、軌跡データ補正部22は、第1アンカーA01以降の軌跡T01を、軌跡T01の先端が第1アンカーA01と一致するように、第1アンカーA01を基点として制御値に基づいて回転及び/又は拡縮させる。具体的には、第1アンカーA01と第2アンカーA02との間のノードN01~N04のノードデータを、第1アンカーA01から第2アンカーA02までの距離と、第1アンカーA01から各ノードN01~N04までの距離と、制御値とに基づいて補正する。これにより、軌跡T01が、その先端が第1アンカーA01と一致する軌跡T02に補正される。
 補正後の軌跡に沿ってバーチャルカメラを動かした際のCG映像については、軌跡データテーブルが補正された際に、仮想空間上自己位置決定部15が軌跡データ記憶部23から補正された軌跡データテーブルを読み出して仮想空間レンダリング部16に入力することで、自動的に生成されてCG映像データ記憶部18に格納(更新であってもよい)されてもよいし、ユーザが操作入力部204から指示を与えることで、生成されてCG映像データ記憶部18に格納(更新であってもよい)されてもよい。その際、補正後の軌跡データテーブルに基づいて生成されたCG映像がモニタ202に再生されてもよい。
 2.5 作用・効果
 以上のように、本実施形態によれば、デバイス200の座標系とバーチャルカメラの座標系とにズレが存在し、バーチャルカメラが意図しない位置及び姿勢となった場合でも、ユーザは、操作入力部204を介してバーチャルカメラの位置及び姿勢を修正することが可能である。そして、その修正に基づいて、バーチャルカメラの軌跡が補正される。それにより、ユーザが所望するCG映像を生成することが可能になる。
 3.第2の実施形態
 次に、第2の実施形態に係る情報処理システム、情報処理方法及びプログラムについて、図面を参照して詳細に説明する。なお、本実施形態では、第1の実施形態と同様に、上述したInside-out方式のバーチャルカメラシステムを例示する。また、以下の説明において、上述した実施形態と同様の構成及び動作については、それを引用することで、その重複する説明を省略する。
 3.1 バーチャルカメラの概略構成例
 図11は、第2の実施形態に係る情報処理システムとしてのバーチャルカメラシステムの概略構成例を示すブロック図である。図11に示すように、バーチャルカメラシステム2は、例えば、第1の実施形態において図4を用いて例示したバーチャルカメラシステム1と同様の構成に加え、オブジェクト抽出部31と、オブジェクト相関DB32とを備える。
 オブジェクト相関DB32は、例えば、予め作成された、実世界内の現実のオブジェクト(以下、実オブジェクトという)と、仮想空間内の仮想的なオブジェクト(以下、仮想オブジェクトという)との相関関係を保持する相関テーブルを格納するデータベースである。図12に、第2の実施形態に係る相関テーブルの一例を示す。
 図12に示すように、相関テーブルは、実オブジェクトIDと、実空間座標と、3次元オブジェクトデータと、仮想オブジェクトIDと、仮想空間座標とが対応付けられた構造を有する。
 実オブジェクトIDは、実オブジェクトを一意に識別するための識別子である。
 実空間座標は、実オブジェクトの実空間内での位置及び姿勢を示す位置及び姿勢情報である。この実空間座標は、ユニバーサル横メルカトル図法やユニバーサル極平射図法などの地理座標系で表された座標であってもよいし、相関テーブルに登録されたある1つの実オブジェクトの実空間座標を原点とした座標系における座標であってもよい。
 3次元オブジェクトデータは、実オブジェクトを認識するためのデータであり、例えば、実オブジェクトを撮影した画像や、この画像から生成された3次元オブジェクトデータ等であってよい。なお、3次元オブジェクトデータを用いた実オブジェクトの認識処理は、例えば、撮影画像に対する画像認識処理であってもよい。その際、画像認識処理に使用する撮像画像は、デバイス200のカメラ203で撮影された画像であってもよいし、デバイス200とは異なる撮像機能を備えた電子機器(例えば、スマートフォンやデジタルカメラなど)で撮影された画像であってもよい。ただし、これに限定されず、レーザスキャナなどで周囲をスキャンすることで取得された3次元データに基づいて3次元オブジェクトデータから実オブジェクトを認識する処理など、種々の認識処理を適用することが可能である。
 仮想オブジェクトIDは、仮想オブジェクトを一意に識別するための識別子である。この仮想オブジェクトIDは、仮想空間DB17に格納されている仮想オブジェクトの識別子と同じであってもよい。
 仮想空間座標は、仮想オブジェクトの仮想空間内での位置及び姿勢を示す位置及び姿勢情報である。
 説明を図3に戻す。オブジェクト抽出部31は、例えば、カメラ203で撮影された画像を画像認識処理することで、この画像に含まれている実オブジェクトを抽出する。
 そして、オブジェクト抽出部31は、オブジェクト相関DB32に登録されている実オブジェクトデータを参照することで、実オブジェクトの実空間座標と、この実オブジェクトに対応付けられた仮想オブジェクトの仮想オブジェクトID及び仮想空間座標とを特定する。
 特定された情報のうち、実オブジェクトの実空間座標は、カメラ203から入力された画像における実オブジェクトの領域に関する情報(以下、オブジェクト領域データという)とともに、実空間上自己位置推定部13へ入力される。なお、オブジェクト抽出部31と実空間上自己位置推定部13とには、同じ画像データが入力されているものとする。
 本実施形態において、実空間上自己位置推定部13は、オブジェクト抽出部31から入力されたオブジェクト領域データに基づいて、カメラ203から入力された画像における実オブジェクトの領域を特定する。
 また、実空間上自己位置推定部13は、特定した実オブジェクトの領域に基づいて、この実オブジェクトに対するデバイス200の相対位置(距離及び方向を含む)を特定し、特定した相対位置と、オブジェクト抽出部31から入力された実オブジェクトの実空間座標とに基づいて、デバイス200の実空間上の実際の自己位置(以下、実自己位置TRという)を特定する。
 そして、実空間上自己位置推定部13は、特定した実自己位置TRに対する、直前にセンサ群10から入力された情報に基づいて推定した自己位置Trの差分を算出する。この差分は、仮想空間内において、ユーザが目的としたバーチャルカメラの位置及び姿勢からのズレ量に相当する。そこで本実施形態では、実空間上自己位置推定部13は、上記差分に基づいて、バーチャルカメラの位置及び姿勢を修正する制御値を算出し、この制御値を仮想空間上自己位置決定部15に入力する。
 仮想空間上自己位置決定部15は、実空間上自己位置推定部13から制御値が入力されると、第1の実施形態と同様に、仮想空間内のバーチャルカメラの自己位置Tvを修正する。
 また、本実施形態では、仮想空間上自己位置決定部15は、実空間上自己位置推定部13から入力された制御値に基づいてバーチャルカメラの位置を修正すると、アンカーの登録をアンカー生成部21に指示する。
 すると、アンカー生成部21及び軌跡データ補正部22は、第1の実施形態と同様に、アンカーデータを生成して軌跡データ記憶部23に登録するとともに、修正後のアンカーに基づいて、軌跡データ記憶部23における該当区間の軌跡データテーブルを修正する。
 3.2 動作例
 次に、第2の実施形態に係るバーチャルカメラシステムの動作のうち、第1の実施形態と異なる動作について、図面を参照して詳細に説明する。
 3.2.1 制御値算出フロー
 図13は、第2の実施形態に係る制御値算出動作の一例を示すフローチャートである。なお、図13に例示する動作は、例えば、バーチャルカメラによる撮影が開始された後、第1の実施形態において図7に例示した基本動作及び図8に例示したアンカー登録動作及び軌跡補正動作と並行して実行されてよい。
 図13に示すように、本動作では、カメラ203からオブジェクト抽出部31と実空間上自己位置推定部13とに画像データが入力される(ステップS201)。
 次に、オブジェクト抽出部31は、入力された画像データに対して画像認識処理を実行することで、画像データに含まれる実オブジェクトを抽出する(ステップS202)。そして、オブジェクト抽出部31は、オブジェクト相関DB32を参照することで、抽出した実オブジェクトが相関データに登録されているか否かを判断する(ステップS203)。抽出した実オブジェクトが相関データに登録されていない場合(ステップS203のNO)、本動作は、ステップS211へ進む。
 一方、抽出した実オブジェクトが相関データに登録されている場合(ステップS203のYES)、オブジェクト抽出部31は、画像データにおける実オブジェクトの領域を示すオブジェクト領域データと、相関データから特定した実オブジェクトの実空間座標とを、実空間上自己位置推定部13に入力する(ステップS204)。
 これに対し、実空間上自己位置推定部13は、入力されたオブジェクト領域データに基づいて、画像データにおける実オブジェクトの領域を特定し(ステップS205)、特定した画像データ中の実オブジェクトに基づいて、当該実オブジェクトに対するデバイス200の相対位置を特定する(ステップS206)。
 次に、実空間上自己位置推定部13は、特定した相対位置と、オブジェクト抽出部31から入力された実オブジェクトの実空間座標とに基づいて、デバイス200の実自己位置TRを特定する(ステップS207)。
 そして、実空間上自己位置推定部13は、特定した実自己位置TRに対する、直前にセンサ群10から入力された情報に基づいて推定した自己位置Trの差分を算出する(ステップS208)。
 次に、実空間上自己位置推定部13は、ステップS208で算出した差分に基づいて、バーチャルカメラの位置及び姿勢を修正する制御値を生成し(ステップS209)、この制御値を仮想空間上自己位置決定部15に入力する(ステップS210)。これにより、第1の実施形態において図8に例示したアンカー登録動作及び軌跡補正動作に従って、仮想空間内のバーチャルカメラの自己位置Tvが修正されるとともに、アンカーデータが軌跡データ記憶部23に登録され、そして、軌跡データ記憶部23における該当区間の軌跡データテーブルが軌跡データ補正部22により補正される。
 ステップS211では、本動作を終了するか否かが判断され、本動作を終了する場合(ステップS211のYES)、本動作を終了する。一方、本動作を終了しない場合(ステップS211のNO)、本動作がステップS201へリターンし、以降の動作が実行される。
 3.3 作用・効果
 以上のように、本実施形態によれば、デバイス200の座標系とバーチャルカメラの座標系とのズレを修正する制御値が自動的に生成されて、仮想空間上自己位置決定部15に入力される。それにより、バーチャルカメラが意図しない位置及び姿勢となった場合でも、バーチャルカメラの位置及び姿勢を自動的に修正することが可能となる。そして、その修正に基づいて、バーチャルカメラの軌跡が自動的に補正される。それにより、ユーザが所望するCG映像を生成することが可能になる。
 なお、その他の構成、動作及び効果は、上述した実施形態と同様であってよいため、ここでは詳細な説明を省略する。
 4.第3の実施形態
 次に、第3の実施形態に係る情報処理システム、情報処理方法及びプログラムについて、図面を参照して詳細に説明する。なお、本実施形態では、上述した実施形態と同様に、上述したInside-out方式のバーチャルカメラシステムを例示する。また、以下の説明において、上述した実施形態と同様の構成及び動作については、それを引用することで、その重複する説明を省略する。
 第1及び第2の実施形態では、バーチャルカメラがデバイスに連動して単一の仮想空間内を移動する場合を例示した。これに対し、第3の実施形態では、バーチャルカメラに複数の仮想空間を跨いで移動させる場合を例示する。
 バーチャルカメラの複数の仮想空間を跨いた移動は、図14に例示するように、例えば、ある仮想空間(これを、第1仮想空間という)301内の特定のアンカー(これを第1アンカーという)A32と、他の仮想空間(これを第2仮想空間という)401内の特定のアンカー(これを第2アンカーという)A43とを事前に結びつけておき、バーチャルカメラが第1仮想空間301内の第1アンカーA32に到達した際に、バーチャルカメラを第2仮想空間401の第2アンカーA43に移動(ジャンプともいう)させることで実現することができる。
 本実施形態に係るバーチャルカメラシステムの概略構成は、例えば、第1の実施形態で例示したバーチャルカメラシステム1又は第2の実施形態で例示したバーチャルカメラシステム2と同様であってよい。ただし、本実施形態では、軌跡データ記憶部23内の軌跡データテーブルが、後述する軌跡データテーブルに置き換えられる。
 4.1 軌跡データテーブルの概略構成例
 図15は、第3の実施形態に係る軌跡データ記憶部に記憶されている軌跡データテーブルの一例を示す図である。なお、本説明では、図14に例示した第1仮想空間301及び第2仮想空間401を跨いでバーチャルカメラが移動する場合を例示する。
 図15に示すように、本実施形態に係る軌跡データテーブルは、第1の実施形態において図6を用いて説明した軌跡データテーブルと同様の構成において、アンカーIDが第1アンカーID及び第2アンカーIDに、また、仮想空間座標が第1仮想空間座標及び第2仮想空間座標に、それぞれ置き換えられた構成を備える。
 第1アンカーIDは、第1仮想空間301内の各第1アンカーを一意に識別するための識別子である。第2アンカーIDは、第2仮想空間内の各第2アンカーを一意に識別するための識別子である。
 第1仮想空間座標は、それが対応するアンカー又はノードの第1仮想空間内での座標を示す位置情報である。第2仮想空間座標は、それが対応するアンカー又はノードの第2仮想空間内での座標を示す位置情報である。
 このような構造において、異なる仮想空間内のアンカーを結びつける場合、軌跡データテーブルでは、結びつける2つのアンカーに関する情報(第1/第2アンカーID、経過時間、実空間座標、第1/第2仮想空間座標)が同一のレコードに格納されている。このように、軌跡データテーブルでは、少なくとも、結びつける2つのアンカーを特定するための情報(第1アンカーID及び第2アンカーID)が対応付けられている。なお、異なる仮想空間内の2つのアンカーを結びつけることを、本説明では、グルーピングという。
 このように、異なる仮想空間内の2つのアンカーをグルーピングしておくことで、デバイス200の移動に連動して移動するバーチャルカメラが第1仮想空間301内の第1アンカーA32に到達した場合に、バーチャルカメラの位置を、第2仮想空間401内の第2アンカーA43に移動させることが可能となる。また、その逆も可能となる。
 4.2 デバイスの概略構成例
 図16は、第3の実施形態に係るデバイスの背面側(すなわち、ユーザ側)の概略構成例を示す模式図である。図16に示すように、本実施形態に係るデバイス200は、例えば、第1の実施形態において図5を用いて説明したデバイス200と同様の構成に加え、操作入力部204としてのグルーピングボタン204dが追加された構成を備える。また、モニタ202には、アンカーのグルーピングを支援するための副領域202cが設けられている。
 副領域202cには、例えば、軌跡データ記憶部23に登録されている第1アンカー及び第2アンカーの一覧が表示されている。
 異なる仮想空間内の2つのアンカーをグルーピングする場合、ユーザは、例えば、モニタ202の副領域202cに表示された第1アンカー及び第2アンカーのうち、グルーピングする2つのアンカーを選択した状態で、グルーピングボタン204dを押下する。
 このようにして入力されたグルーピング指示は、例えば、仮想空間上自己位置決定部15を介してアンカー生成部21に入力される。アンカー生成部21は、軌跡データ記憶部23内の軌跡データテーブルから、グルーピング対称として選択された2つのアンカーのレコードを抽出し、抽出したレコードを1つのレコードにまとめて、軌跡データ記憶部23内の軌跡データテーブルを更新する。
 4.3 作用・効果
 以上のように、本実施形態によれば、異なる仮想空間間を跨ぐようにバーチャルカメラを移動させることが可能となる。それにより、例えば、ゲームなどにおいて予め決まった実空間内の経路に従ってプレイヤを移動させる際に、そのプレイヤが携帯するデバイスの画面に表示される仮想空間を他の仮想空間へとジャンプさせることが可能となる。なお、その場合、上述した説明におけるユーザは、ゲームクリエイタに相当する。
 その他の構成、動作及び効果は、上述した実施形態と同様であってよいため、ここでは重複する説明を省略する。
 4.4 変形例
 上述の第3の実施形態では、バーチャルカメラが特定のアンカーに到達した際にバーチャルカメラが属する仮想空間を他の仮想空間に切り替える場合を例示したが、このような構成は、バーチャルカメラが特定のアンカーに到達した際に仮想空間のスケールを拡大又は縮小する場合についても応用することが可能である。
 すなわち、図17に例示するように、例えば、単一の仮想空間に対してスケールが異なる2つの座標系(第1座標系501及び第2座標系601)を設定しておき、仮想空間を第1座標系501で再現している際に特定のアンカー(これを第1アンカーA52という)に到達した場合、仮想空間の座標系を第2座標系601に切り替えるように構成することも可能である。その場合、図17に例示するように、第1座標系501のスケールよりも第2座標系601のスケールが大きい場合、仮想空間内でバーチャルカメラを付帯するキャラクタが突然大型化したような視聴効果を奏することが可能となる。
 なお、スケールの切替えや調整は、図18に例示するように、例えば、デバイス200に操作入力部204としてのスケール切替えボタン204e(図18に示す例では、アナログスティック204bと兼用)を設けておき、これをユーザが操作することで実現されてもよい。
 また、スケールを切り替えるアンカーのグルーピングは、例えば第3の実施形態において図15を用いて説明した軌跡データテーブルと同様の構成の軌跡データテーブルを用いて管理することができる。ただし、その場合、第1仮想空間座標が第1座標系501における仮想空間座標を示す第1座標系仮想空間座標に置き換えられるとともに、第2仮想空間座標が第2座標系601における仮想空間座標を示す第2座標系仮想空間座標に置き換えられる。
 5.ハードウエア構成
 上述してきた各実施形態に係るバーチャルカメラシステム1又は2を実現するためのデバイス100/200及びサーバ(デバイス200と通信可能に接続されたサーバ)は、例えば図19に示すような構成のコンピュータ1000によって実現される。
 図19に示すように、コンピュータ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が上述した実施形態に係るサーバとして機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、実空間上自己位置推定部13、仮想空間上自己位置決定部15、仮想空間レンダリング部16、アンカー生成部21、軌跡データ補正部22及びオブジェクト抽出部31のうちの少なくとも1つの機能を実現する。また、HDD1400には、本開示に係るプログラムや、マップDB14、仮想空間DB17、CG映像データ記憶部18、軌跡データ記憶部23及びオブジェクト相関DB32のうちの少なくとも1つに格納されるデータが格納される。なお、CPU1100は、プログラムデータ1450をHDD1400から読み取って実行するが、他の例として、外部ネットワーク1550を介して、他の装置からこれらのプログラムを取得してもよい。
 以上、本開示の実施形態について説明したが、本開示の技術的範囲は、上述の各実施形態そのままに限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、異なる実施形態及び変形例にわたる構成要素を適宜組み合わせてもよい。
 また、本明細書に記載された各実施形態における効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
 さらに、上述した各実施形態は、それぞれ単独で使用されてもよいし、他の実施形態と組み合わせて使用されてもよい。
 なお、本技術は以下のような構成も取ることができる。
(1)
 実空間内に存在するデバイスの前記実空間上の第1位置情報を取得する取得部と、
 前記第1位置情報に基づいて仮想空間内に設定された視点の前記仮想空間内の移動軌跡を生成する軌跡生成部と、
 前記仮想空間内における前記視点の前記仮想空間上の第2位置情報を修正する第1修正部と、
 前記第2位置情報の修正に基づいて前記移動軌跡を補正する補正部と、
 を備える情報処理システム。
(2)
 前記取得部は、
  前記デバイスの周囲の外界情報を取得する外界センサと、前記デバイスの内部の内界情報を取得する内界センサとのうちの少なくとも1つと、
  前記外界情報と前記内界情報とのうちの少なくとも1つに基づいて前記第1位置情報を推定する推定部と、
 を備える前記(1)に記載の情報処理システム。
(3)
 前記第1修正部は、前記仮想空間内における前記視点の前記第2位置情報に対する修正指示をユーザに入力させるための操作入力部を備え、前記修正指示に基づいて前記第2位置情報を修正する前記(1)又は(2)に記載の情報処理システム。
(4)
 前記操作入力部は、
  前記仮想空間内の前記視点の位置に対する修正指示を前記ユーザが入力するための第1操作入力部と、
  前記仮想空間内の前記視点の位置及び方向のうちの少なくとも1つに対する修正指示を前記ユーザが入力するための第2操作入力部と、
 を備える前記(3)に記載の情報処理システム。
(5)
 前記実空間内に存在する前記デバイスに設けられたカメラと、
 前記カメラで取得された画像データから当該画像データに含まれるオブジェクトを抽出する抽出部と、
 前記抽出部で抽出された前記オブジェクトの前記実空間内の位置に基づいて前記デバイスの前記第1位置情報を修正する第2修正部と、
 をさらに備え、
 前記第1修正部は、前記第2修正部による前記第1位置情報の修正に基づいて前記第2位置情報を修正する
 前記(1)~(4)の何れか1項に記載の情報処理システム。
(6)
 前記第2修正部は、前記実空間内での前記オブジェクトと前記デバイスとの相対位置から前記デバイスの前記実空間内での実際の位置を特定し、前記実際の位置に基づいて前記第1位置情報を修正する前記(5)に記載の情報処理システム。
(7)
 前記仮想空間内における前記視点の第2位置情報を時系列に沿って記憶することで前記移動軌跡を保持する軌跡記憶部をさらに備え、
 前記補正部は、前記軌跡記憶部に保持された前記移動軌跡を補正する
 前記(1)~(6)の何れか1項に記載の情報処理システム。
(8)
 前記第1位置情報と前記第2位置情報とを対応付けるアンカー情報を生成するアンカー生成部をさらに備え、
 前記軌跡記憶部は、前記アンカー情報を前記移動軌跡の一部として保持する前記(7)に記載の情報処理システム。
(9)
 前記アンカー生成部は、ユーザからの指示に基づいて前記アンカー情報を生成する前記(8)に記載の情報処理システム。
(10)
 前記仮想空間内における前記視点の第2位置情報を時系列に沿って記憶することで前記移動軌跡を保持する軌跡記憶部と、
 前記第1位置情報と前記第2位置情報との対応関係を示すアンカー情報を生成するアンカー生成部と、
 さらに備え、
 前記軌跡記憶部は、前記アンカー情報を前記移動軌跡の一部として保持し、
 前記アンカー生成部は、前記抽出部が前記画像データから前記オブジェクトを抽出した場合、前記アンカー情報を生成する
 前記(5)に記載の情報処理システム。
(11)
 前記仮想空間は、第1仮想空間と、前記第1仮想空間とは異なる第2仮想空間とを含み、
 前記軌跡記憶部は、前記第1仮想空間内の前記第2位置情報を含む第1アンカー情報と、前記第2仮想空間内の前記第2位置情報を含む第2アンカー情報とを対応付けて記憶する
 前記(8)に記載の情報処理システム。
(12)
 前記第1仮想空間内での前記視点の位置を決定する決定部をさらに備え、
 前記決定部は、前記視点が前記第1アンカー情報で示された前記第1仮想空間内での位置に到達した場合、前記視点の位置を前記第2アンカー情報で示された前記第2仮想空間内の位置に決定する
 前記(11)に記載の情報処理システム。
(13)
 前記仮想空間は、第1スケールの第1座標系と、前記第1スケールとは異なる第2スケールの第2座標系とで再現され、
 前記軌跡記憶部は、前記第1座標系上の前記第2位置情報を含む第1アンカー情報と、前記第2座標系上の前記第2位置情報を含む第2アンカー情報とを対応付けて記憶する
 前記(8)に記載の情報処理システム。
(14)
 前記仮想空間内での前記視点の位置を決定する決定部をさらに備え、
 前記決定部は、前記視点が前記第1アンカー情報に含まれる前記第1座標系上の前記第2位置情報が示す位置に到達した場合、前記視点の位置を前記第2アンカー情報に含まれる前記第2座標系上の前記第2位置情報が示す位置に決定する
 前記(13)に記載の情報処理システム。
(15)
 前記第1位置情報は、前記デバイスの前記実空間内での位置の情報と、前記デバイスの前記実空間内での姿勢の情報とを含み、
 前記第2位置情報は、前記視点の前記仮想空間内での位置の情報と、前記視点の前記仮想空間内での方向及び傾きの情報とを含む
 前記(1)~(14)の何れか1項に記載の情報処理システム。
(16)
 前記視点に基づいて前記仮想空間内をレンダリングして映像を生成する映像生成部をさらに備える前記(1)~(15)の何れか1項に記載の情報処理システム。
(17)
 実空間内に存在するデバイスの第1位置情報を取得し、
 前記第1位置情報に基づいて仮想空間内に設定された視点の移動軌跡を生成し、
 前記仮想空間内における前記視点の第2位置情報を修正し、
 前記第2位置情報の修正に基づいて前記移動軌跡を補正する
 ことを含む情報処理方法。
(18)
 前記第2位置情報の修正に基づいて補正された前記移動軌跡を用いて前記仮想空間内をレンダリングすることでバーチャルカメラの画角内のCG映像を生成する前記(17)に記載の情報処理方法。
(19)
 コンピュータを機能させるためのプログラムであって、
 実空間内に存在するデバイスの第1位置情報を取得することと、
  前記第1位置情報に基づいて仮想空間内に設定された視点の移動軌跡を生成することと、
 前記仮想空間内における前記視点の第2位置情報を修正することと、
 前記第2位置情報の修正に基づいて前記移動軌跡を補正することと
 を前記コンピュータに実行させるためのプログラム。
 1、2 バーチャルカメラシステム
 10 センサ群
 12 内界センサ
 13 実空間上自己位置推定部
 14 マップDB
 15 仮想空間上自己位置決定部
 16 仮想空間レンダリング部
 17 仮想空間DB
 18 CG映像データ記憶部
 21 アンカー生成部
 22 軌跡データ補正部
 23 軌跡データ記憶部
 31 オブジェクト抽出部
 32 オブジェクト相関DB
 100、200 デバイス
 101、202 モニタ
 102F、102H、102V 方向スティック
 110 外部カメラ
 201 筐体
 202a 主領域
 202b 副領域
 203、203L、203R カメラ
 204 操作入力部
 204a 十字キー
 204b アナログスティック
 204c アンカー登録ボタン

Claims (19)

  1.  実空間内に存在するデバイスの前記実空間上の第1位置情報を取得する取得部と、
     前記第1位置情報に基づいて仮想空間内に設定された視点の前記仮想空間内の移動軌跡を生成する軌跡生成部と、
     前記仮想空間内における前記視点の前記仮想空間上の第2位置情報を修正する第1修正部と、
     前記第2位置情報の修正に基づいて前記移動軌跡を補正する補正部と、
     を備える情報処理システム。
  2.  前記取得部は、
      前記デバイスの周囲の外界情報を取得する外界センサと、前記デバイスの内部の内界情報を取得する内界センサとのうちの少なくとも1つと、
      前記外界情報と前記内界情報とのうちの少なくとも1つに基づいて前記第1位置情報を推定する推定部と、
     を備える請求項1に記載の情報処理システム。
  3.  前記第1修正部は、前記仮想空間内における前記視点の前記第2位置情報に対する修正指示をユーザに入力させるための操作入力部を備え、前記修正指示に基づいて前記第2位置情報を修正する請求項1に記載の情報処理システム。
  4.  前記操作入力部は、
      前記仮想空間内の前記視点の位置に対する修正指示を前記ユーザが入力するための第1操作入力部と、
      前記仮想空間内の前記視点の位置及び方向のうちの少なくとも1つに対する修正指示を前記ユーザが入力するための第2操作入力部と、
     を備える請求項3に記載の情報処理システム。
  5.  前記実空間内に存在する前記デバイスに設けられたカメラと、
     前記カメラで取得された画像データから当該画像データに含まれるオブジェクトを抽出する抽出部と、
     前記抽出部で抽出された前記オブジェクトの前記実空間内の位置に基づいて前記デバイスの前記第1位置情報を修正する第2修正部と、
     をさらに備え、
     前記第1修正部は、前記第2修正部による前記第1位置情報の修正に基づいて前記第2位置情報を修正する
     請求項1に記載の情報処理システム。
  6.  前記第2修正部は、前記実空間内での前記オブジェクトと前記デバイスとの相対位置から前記デバイスの前記実空間内での実際の位置を特定し、前記実際の位置に基づいて前記第1位置情報を修正する請求項5に記載の情報処理システム。
  7.  前記仮想空間内における前記視点の第2位置情報を時系列に沿って記憶することで前記移動軌跡を保持する軌跡記憶部をさらに備え、
     前記補正部は、前記軌跡記憶部に保持された前記移動軌跡を補正する
     請求項1に記載の情報処理システム。
  8.  前記第1位置情報と前記第2位置情報とを対応付けるアンカー情報を生成するアンカー生成部をさらに備え、
     前記軌跡記憶部は、前記アンカー情報を前記移動軌跡の一部として保持する請求項7に記載の情報処理システム。
  9.  前記アンカー生成部は、ユーザからの指示に基づいて前記アンカー情報を生成する請求項8に記載の情報処理システム。
  10.  前記仮想空間内における前記視点の第2位置情報を時系列に沿って記憶することで前記移動軌跡を保持する軌跡記憶部と、
     前記第1位置情報と前記第2位置情報との対応関係を示すアンカー情報を生成するアンカー生成部と、
     さらに備え、
     前記軌跡記憶部は、前記アンカー情報を前記移動軌跡の一部として保持し、
     前記アンカー生成部は、前記抽出部が前記画像データから前記オブジェクトを抽出した場合、前記アンカー情報を生成する
     請求項5に記載の情報処理システム。
  11.  前記仮想空間は、第1仮想空間と、前記第1仮想空間とは異なる第2仮想空間とを含み、
     前記軌跡記憶部は、前記第1仮想空間内の前記第2位置情報を含む第1アンカー情報と、前記第2仮想空間内の前記第2位置情報を含む第2アンカー情報とを対応付けて記憶する
     請求項8に記載の情報処理システム。
  12.  前記第1仮想空間内での前記視点の位置を決定する決定部をさらに備え、
     前記決定部は、前記視点が前記第1アンカー情報で示された前記第1仮想空間内での位置に到達した場合、前記視点の位置を前記第2アンカー情報で示された前記第2仮想空間内の位置に決定する
     請求項11に記載の情報処理システム。
  13.  前記仮想空間は、第1スケールの第1座標系と、前記第1スケールとは異なる第2スケールの第2座標系とで再現され、
     前記軌跡記憶部は、前記第1座標系上の前記第2位置情報を含む第1アンカー情報と、前記第2座標系上の前記第2位置情報を含む第2アンカー情報とを対応付けて記憶する
     請求項8に記載の情報処理システム。
  14.  前記仮想空間内での前記視点の位置を決定する決定部をさらに備え、
     前記決定部は、前記視点が前記第1アンカー情報に含まれる前記第1座標系上の前記第2位置情報が示す位置に到達した場合、前記視点の位置を前記第2アンカー情報に含まれる前記第2座標系上の前記第2位置情報が示す位置に決定する
     請求項13に記載の情報処理システム。
  15.  前記第1位置情報は、前記デバイスの前記実空間内での位置の情報と、前記デバイスの前記実空間内での姿勢の情報とを含み、
     前記第2位置情報は、前記視点の前記仮想空間内での位置の情報と、前記視点の前記仮想空間内での方向及び傾きの情報とを含む
     請求項1に記載の情報処理システム。
  16.  前記視点に基づいて前記仮想空間内をレンダリングして映像を生成する映像生成部をさらに備える請求項1に記載の情報処理システム。
  17.  実空間内に存在するデバイスの第1位置情報を取得し、
     前記第1位置情報に基づいて仮想空間内に設定された視点の移動軌跡を生成し、
     前記仮想空間内における前記視点の第2位置情報を修正し、
     前記第2位置情報の修正に基づいて前記移動軌跡を補正する
     ことを含む情報処理方法。
  18.  前記第2位置情報の修正に基づいて補正された前記移動軌跡を用いて前記仮想空間内をレンダリングすることでバーチャルカメラの画角内のCG映像を生成する請求項17に記載の情報処理方法。
  19.  コンピュータを機能させるためのプログラムであって、
     実空間内に存在するデバイスの第1位置情報を取得することと、
      前記第1位置情報に基づいて仮想空間内に設定された視点の移動軌跡を生成することと、
     前記仮想空間内における前記視点の第2位置情報を修正することと、
     前記第2位置情報の修正に基づいて前記移動軌跡を補正することと
     を前記コンピュータに実行させるためのプログラム。
PCT/JP2020/024801 2019-07-02 2020-06-24 情報処理システム、情報処理方法及びプログラム WO2021002256A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US17/617,138 US20220237819A1 (en) 2019-07-02 2020-06-24 Information processing system, information processing method, and program
CN202080046845.8A CN114208143A (zh) 2019-07-02 2020-06-24 信息处理系统、信息处理方法和程序
EP20835662.6A EP3996052B1 (en) 2019-07-02 2020-06-24 Information processing system, information processing method, and program
JP2021529979A JPWO2021002256A1 (ja) 2019-07-02 2020-06-24

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-123863 2019-07-02
JP2019123863 2019-07-02

Publications (1)

Publication Number Publication Date
WO2021002256A1 true WO2021002256A1 (ja) 2021-01-07

Family

ID=74100722

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/024801 WO2021002256A1 (ja) 2019-07-02 2020-06-24 情報処理システム、情報処理方法及びプログラム

Country Status (5)

Country Link
US (1) US20220237819A1 (ja)
EP (1) EP3996052B1 (ja)
JP (1) JPWO2021002256A1 (ja)
CN (1) CN114208143A (ja)
WO (1) WO2021002256A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11887251B2 (en) 2021-04-23 2024-01-30 Lucasfilm Entertainment Company Ltd. System and techniques for patch color correction for an immersive content production system
US11978154B2 (en) 2021-04-23 2024-05-07 Lucasfilm Entertainment Company Ltd. System and techniques for lighting adjustment for an immersive content production system
US11762481B2 (en) * 2021-04-23 2023-09-19 Lucasfilm Entertainment Company Ltd. Light capture device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017058752A (ja) 2015-09-14 2017-03-23 富士通株式会社 作業支援方法、作業支援プログラム、及び作業支援システム
JP2019029721A (ja) * 2017-07-26 2019-02-21 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
JP2019067195A (ja) * 2017-10-02 2019-04-25 株式会社コロプラ 情報処理方法、コンピュータ、及びプログラム
JP2019211864A (ja) * 2018-05-31 2019-12-12 株式会社コロプラ コンピュータプログラム、情報処理装置および情報処理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790126B2 (ja) * 2001-05-30 2006-06-28 株式会社東芝 時空間領域情報処理方法及び時空間領域情報処理システム
JP2004213355A (ja) * 2002-12-27 2004-07-29 Canon Inc 情報処理方法
US9070402B2 (en) * 2006-03-13 2015-06-30 Autodesk, Inc. 3D model presentation system with motion and transitions at each camera view point of interest (POI) with imageless jumps to each POI
US20120212405A1 (en) * 2010-10-07 2012-08-23 Benjamin Zeis Newhouse System and method for presenting virtual and augmented reality scenes to a user
US9305386B2 (en) * 2012-02-17 2016-04-05 Autodesk, Inc. Editable motion trajectories
US9729765B2 (en) * 2013-06-19 2017-08-08 Drexel University Mobile virtual cinematography system
US10672187B2 (en) * 2015-02-27 2020-06-02 Sony Corporation Information processing apparatus and information processing method for displaying virtual objects in a virtual space corresponding to real objects
US10845188B2 (en) * 2016-01-05 2020-11-24 Microsoft Technology Licensing, Llc Motion capture from a mobile self-tracking device
JP6765823B2 (ja) * 2016-02-23 2020-10-07 キヤノン株式会社 情報処理装置、情報処理方法、情報処理システム、及びプログラム
JP6957215B2 (ja) * 2017-06-06 2021-11-02 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP6924079B2 (ja) * 2017-06-12 2021-08-25 キヤノン株式会社 情報処理装置及び方法及びプログラム
WO2020005757A1 (en) * 2018-06-26 2020-01-02 Magic Leap, Inc. Waypoint creation in map detection
JP2020042665A (ja) * 2018-09-12 2020-03-19 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US10659698B2 (en) * 2018-09-19 2020-05-19 Canon Kabushiki Kaisha Method to configure a virtual camera path
US11057609B2 (en) * 2019-02-27 2021-07-06 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and computer readable storage medium for determining a moving path of virtual viewpoint
WO2020181088A1 (en) * 2019-03-07 2020-09-10 Alibaba Group Holding Limited Method, apparatus, medium, and device for generating multi-angle free-respective image data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017058752A (ja) 2015-09-14 2017-03-23 富士通株式会社 作業支援方法、作業支援プログラム、及び作業支援システム
JP2019029721A (ja) * 2017-07-26 2019-02-21 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
JP2019067195A (ja) * 2017-10-02 2019-04-25 株式会社コロプラ 情報処理方法、コンピュータ、及びプログラム
JP2019211864A (ja) * 2018-05-31 2019-12-12 株式会社コロプラ コンピュータプログラム、情報処理装置および情報処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3996052A4

Also Published As

Publication number Publication date
EP3996052A4 (en) 2022-08-17
EP3996052B1 (en) 2024-05-08
CN114208143A (zh) 2022-03-18
EP3996052A1 (en) 2022-05-11
JPWO2021002256A1 (ja) 2021-01-07
US20220237819A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
WO2021002256A1 (ja) 情報処理システム、情報処理方法及びプログラム
JP6329343B2 (ja) 画像処理システム、画像処理装置、画像処理プログラム、および画像処理方法
US9781354B2 (en) Controlling a virtual camera
JP5137970B2 (ja) ビデオストリームにおいて、マーク無しに、テクスチャー化平面幾何学的オブジェクトをリアルタイムで自動追跡するリアリティ向上方法および装置
KR101418298B1 (ko) 고정된 카메라로 운동하는 피사체를 촬영하고 그 촬영 이미지에 기초하여 피사체의 실제의 운동 궤적의 투사 이미지를 획득하기 위한 방법 및 시스템
JP6348741B2 (ja) 情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
US20150116502A1 (en) Apparatus and method for dynamically selecting multiple cameras to track target object
US10917560B2 (en) Control apparatus, movable apparatus, and remote-control system
JP2002209208A (ja) 画像処理装置及びその方法並びに記憶媒体
JP2002233665A5 (ja)
WO2018088037A1 (ja) 可動型撮像装置の制御装置、可動型撮像装置の制御方法及びプログラム
JP2010128799A (ja) 複合メディア合成装置及び複合メディア表示システム及び複合メディア合成方法及び複合メディア合成プログラム
JP2020008917A (ja) 拡張現実表示システム、拡張現実表示方法、及び、拡張現実表示用コンピュータプログラム
CN112740284A (zh) 动画合成装置、动画合成方法以及记录介质
WO2020209167A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP7479793B2 (ja) 画像処理装置、仮想視点映像を生成するシステム、画像処理装置の制御方法及びプログラム
CN111742550A (zh) 一种3d影像拍摄方法、3d拍摄设备及存储介质
CN112788443A (zh) 基于光通信装置的交互方法和系统
CN111699453A (zh) 可移动平台的控制方法、装置、设备及存储介质
JP2004234549A (ja) 現実物体モデル作成方法
JP2016218626A (ja) 画像管理装置、画像管理方法およびプログラム
JP4998156B2 (ja) 情報提示システム、情報提示装置、情報提示方法、プログラム並びにプログラムを記録した記録媒体
JP2008113845A (ja) ゲーム装置、変位量補正方法、および、プログラム
WO2023149118A1 (ja) プログラム、情報処理装置、および情報処理方法
WO2023090213A1 (ja) 情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20835662

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021529979

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020835662

Country of ref document: EP

Effective date: 20220202