WO2025220118A1 - Cg映像重畳装置 - Google Patents
Cg映像重畳装置Info
- Publication number
- WO2025220118A1 WO2025220118A1 PCT/JP2024/015138 JP2024015138W WO2025220118A1 WO 2025220118 A1 WO2025220118 A1 WO 2025220118A1 JP 2024015138 W JP2024015138 W JP 2024015138W WO 2025220118 A1 WO2025220118 A1 WO 2025220118A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- live
- action
- video
- unit
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating three-dimensional [3D] models or images for computer graphics
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/02—Simulators for teaching or training purposes for teaching control of vehicles or other craft
- G09B9/06—Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of ships, boats, or other waterborne vehicles
Definitions
- the present invention relates to a CG image overlay device that overlays CG images onto live-action images.
- Non-Patent Document 1 describes a method in which camera parameters such as the camera position are identified based on an A4 sheet of paper shown in the live-action footage, CG images are generated based on the identified camera parameters, and the generated CG images are superimposed on the live-action footage.
- the only information that can be reflected from the live-action footage in the CG image is the camera parameters. In other words, information from the live-action footage other than the camera parameters is not reflected in the CG image.
- Non-Patent Document 2 also describes a method for recognizing roads shown in live-action footage and comparing road geometry information with intersection and road width information stored in storage. With this method, the only information from the live-action footage that can be reflected in the CG image is the position of the arrow indicating the direction of travel. In other words, information from the live-action footage other than the position of the arrow indicating the direction of travel is not reflected in the CG image.
- the present invention was developed in response to the above-mentioned circumstances, and its purpose is to present an overlaid image in which appropriate CG images are superimposed on live-action footage.
- one aspect of the CG image superimposition device of the present invention comprises a live-action image acquisition unit, a CG image generation unit, a brightness difference calculation unit, an image superimposition unit, and an image presentation unit.
- the live-action image acquisition unit acquires live-action image.
- the CG image generation unit generates multiple CG images using different rendering conditions.
- the brightness difference calculation unit calculates the difference in brightness value between each CG image and the live-action image.
- the image superimposition unit generates a superimposed image by superimposing the CG image with the smallest difference from the live-action image on the live-action image.
- the image presentation unit presents the superimposed image.
- a CG image simulating an object used to determine the speed of a vehicle during training is superimposed on the peripheral image and presented to the trainee. Therefore, even if the object used to determine speed is difficult to see or missing from the acquired peripheral image, the trainee can be presented with an image in which an object simulating the object used to determine speed is superimposed on the peripheral image. The trainee can then determine speed based on the movement of the object displayed together with the peripheral image.
- FIG. 1 is a diagram showing an example of the configuration of a system including a CG image superimposing device according to an embodiment.
- FIG. 2 is a diagram showing an example of the configuration of the CG image superimposing device and simulator according to the embodiment.
- FIG. 3 is a diagram showing an example of how a live-action video is captured using the imaging device according to the embodiment.
- FIG. 4 is a flowchart illustrating an example of a processing procedure for a simulation video presentation process executed by the CG video superimposition device according to the embodiment.
- FIG. 5 is a diagram illustrating an example of a real-life video according to the embodiment.
- FIG. 6 is a diagram showing an example of a real-life image of a frame different from that shown in FIG. FIG.
- FIG. 7 is a diagram illustrating an example of a mask image used in the mask processing according to the embodiment.
- FIG. 8 is a diagram showing the difference in luminance value between a CG image and a real-life image for each frame according to the embodiment.
- FIG. 9 is a diagram showing the difference in luminance value between a CG image and a real-life image for each frame, which is different from FIG.
- FIG. 10 is a diagram showing the difference in luminance value between a CG image and a real-life image for each frame, which is different from FIGS. 8 and 9.
- FIG. 11 is a diagram showing the difference in luminance value between a CG image and a real-life image for each frame, which is different from those shown in FIGS. 8 to 10.
- FIG. 12 is a diagram illustrating an example of a superimposed image according to the embodiment.
- FIG. 1 is a diagram showing an example of the configuration of a windsurfing simulation system including a CG image superimposition device according to one embodiment.
- the windsurfing simulation system is a system for training windsurfers in maneuvering using a simulator that mimics the shape, movement, and field of view of a windsurfing machine.
- a windsurfing machine is an example of a mobile machine.
- the configuration according to this embodiment may also be applied to mobile machines other than windsurfing machines.
- the windsurfing simulation system comprises a simulator SS, a display device DS, a maneuvering simulation image generation device CS, a position measurement device PS, and an imaging device CM.
- the maneuvering simulation image generation device CS is connected to the simulator SS, display device DS, position measurement device PS, and imaging device CM via wired or wireless connections.
- the maneuvering simulation image generation device CS generates simulation images used for windsurfing maneuver training using data received from the position measurement device PS and imaging device CM.
- the simulation images are images in which CG images (described below) simulating wave crests are superimposed on actual images (described below) received from the imaging device CM.
- the simulation images are an example of superimposed images
- the maneuvering simulation image generation device CS is an example of a CG image superimposition device.
- the simulator SS and display device DS are used when conducting windsurfing maneuver training using the simulation images generated by the maneuvering simulation image generation device CS.
- FIG. 2 shows an example of the configuration of a simulator SS.
- the simulator SS comprises a surfing section 100 on which a user undergoing piloting training boards, and a drive section 200 that supports the surfing section 100.
- the surfing section 100 comprises a board 101 provided with a platform on which the user stands, a mast 102 erected on the board 101, and a sail 103 attached to the mast 102.
- the drive unit 200 is equipped with actuators 201 for reproducing the four-axis movements of pitch, roll, yaw, and heave that occur in a real windsurfing machine.
- the drive unit 200 swings the board 101 and mast 102 of the surfing club 100 in the directions of the four axes by operating the actuators 201 in response to drive control signals output from a simulator control device (not shown).
- the drive unit 200 is not limited to the four axes mentioned above, but may be compatible with five or more axes, including the tilt angle of the mast section relative to the board, or may be compatible with only two axes (pitch and yaw) or only three axes (pitch, roll, and yaw).
- the display device DS may be, for example, a VRHMD (Virtual Reality Head Mounted Display), and is worn on the user's head.
- the display device DS displays the simulation images output from the operation simulation image generation device CS.
- the display device DS may also be equipped with a speaker that outputs audio data.
- the maneuvering simulation video generation device CS uses information received from the imaging device CM and position measurement device PS to generate simulation video used for windsurfing maneuver training.
- Figure 3 shows how a real windsurfing device 300 is used to capture surrounding video used in the simulation video.
- the real windsurfing device 300 comprises a board 301 provided with a platform on which the user stands, a mast 302 erected on the board 301, and a sail 303 attached to the mast 302.
- an instructor wearing the imaging device CM steers the real windsurfing device 300 and glides across the water.
- the position measurement device PS is attached to the actual windsurfing machine 300.
- the position measurement device PS is attached to the mast 302, for example.
- the position measurement device PS continuously measures position information indicating latitude and longitude using a GPS (Global Positioning System) sensor, and outputs a collection of the measured latitude and longitude data to the maneuvering simulation image generation device CS as movement trajectory data.
- GPS Global Positioning System
- the imaging device CM is attached to the head of the user riding the windsurfing machine 300. While gliding across the water using the windsurfing machine 300, the imaging device CM captures surrounding images using, for example, an omnidirectional (360-degree) camera attached to the operator's head, and outputs the captured surrounding image data to the maneuvering simulation image generation device CS.
- the surrounding image data will be referred to as "actual image.”
- the imaging device CM is not limited to omnidirectional images, and may also capture panoramic images at least within the range of the operator's field of view.
- the maneuvering simulation image generation device CS generates a simulation image using the movement trajectory data received from the position measurement device PS and the actual image captured by the imaging device CM.
- the maneuvering simulation image generation device CS is realized as an information processing terminal such as a personal computer.
- the movement trajectory data can be used to calculate the movement speed of the actual windsurfing equipment. If there is no need to calculate the movement speed, the position measurement device PS does not need to be used.
- the maneuvering simulation image generating device CS includes a control unit 1, a program storage unit 2, a data storage unit 3, and an input/output interface (hereinafter, interface will be abbreviated as I/F) unit 4.
- the control unit 1 includes a hardware processor such as a central processing unit (CPU).
- the control unit 1 is connected to each of the program storage unit 2, the data storage unit 3, and the input/output I/F unit 4 via buses.
- the simulator SS and display device DS are connected to the input/output I/F unit 4 via signal cables such as USB (Universal Serial Bus) cables.
- the input/output I/F unit 4 sends and receives control signals and simulation images between the simulator SS and display device DS.
- the input/output I/F unit 4 can be connected to the above-mentioned position measurement device PS and imaging device CM.
- the input/output I/F unit 4 receives the above-mentioned movement trajectory data from the position measurement device PS.
- the input/output I/F unit 4 also receives the above-mentioned actual video from the imaging device CM.
- the input/output I/F unit 4 may be a wireless interface that employs a low-power wireless data transmission standard such as Bluetooth (registered trademark) or Wi-Fi (registered trademark), or a wireless interface for a public mobile radio communication network.
- a wireless interface eliminates the need for signal cables connecting the simulator SS, display device DS, position measurement device PS, and imaging device CM, allowing for greater flexibility for the user.
- the program storage unit 2 is configured by combining, for example, a non-volatile memory such as an SSD (Solid State Drive) that can be written to and read from at any time as a storage medium, with a non-volatile memory such as ROM (Read Only Memory), and stores middleware such as an OS (Operating System), as well as application programs required to execute various control processes according to one embodiment.
- a non-volatile memory such as an SSD (Solid State Drive) that can be written to and read from at any time as a storage medium
- ROM Read Only Memory
- middleware such as an OS (Operating System)
- application programs required to execute various control processes according to one embodiment.
- the OS and each application program will be collectively referred to as the program.
- the data storage unit 3 is, for example, a combination of non-volatile memory such as an SSD, which can be written to and read from at any time, and volatile memory such as RAM (Random Access Memory), as storage media.
- the data storage unit 3 stores the above-mentioned movement trajectory data, live-action footage, simulation footage, etc.
- the data storage unit 3 also stores information used when generating simulation footage and information temporarily generated when generating simulation footage.
- the control unit 1 has, as its processing functions, a live-action image acquisition unit 11, a CG image generation unit 12, a brightness difference calculation unit 13, an image superimposition unit 14, and an image output unit 15.
- Each of the above processing units 11 to 15 is realized by having the hardware processor of the control unit 1 execute an application program stored in the program storage unit 2. Note that some or all of the above processing units 11 to 15 may be realized using hardware such as an LSI (Large Scale Integration) or an ASIC (Application Specific Integrated Circuit).
- the live-action video acquisition unit 11 receives live-action video captured by the imaging device CM via the input/output I/F unit 4 and stores the acquired live-action video in the data storage unit 3.
- the live-action video is, for example, video data including multiple 360-degree images.
- the number of frames in the live-action video is, for example, 200 frames.
- the CG image generation unit 12 generates CG images and stores the generated CG images in the data storage unit 3.
- Each CG image is video data containing multiple CG images.
- Each CG image has the same number of frames as the live-action image.
- the CG image has the same shape as the live-action image and the same number of pixels as the live-action image.
- Each CG image includes an object (hereinafter referred to as a wave crest object) that simulates the crest of a wave (hereinafter referred to as a wave crest).
- a wave crest object is an example of an object that simulates a feature in the live-action image that is difficult to see or a feature that is missing from the live-action image.
- Each wave crest object is generated (rendered) to have a shape that is close to the shape of an actual wave crest and a color that is close to the actual wave crest. Furthermore, the wave crest object is positioned in the CG image within a range that corresponds to the sea surface in the live-action image. Furthermore, the wave crest object is generated so that it has high visibility when superimposed on the sea surface in the live-action image. For example, the wave crest object has a certain size or more and is formed in a color that is easily distinguishable from the sea surface in the live-action image.
- each CG image is generated using a three-dimensional structure including a combination of polygons (polygons) and rectangular objects, each of which is a combination of triangles whose three vertices each have three-dimensional coordinates (x, y, z).
- the size of the wave crest object in the direction of windsurfing e.g., z-axis
- the distance between adjacent wave crest objects is set to, for example, half the wavelength (e.g., 28 m).
- the size of the wave crest object in the direction perpendicular to the direction of windsurfing and the height direction is set to, for example, a size that ensures sufficient visibility (e.g., 100 m).
- the movement speed of the wave crest objects and the distance between the wave crest objects (hereinafter also referred to as the wavelength of the wave crest objects) in the entire CG image be set to values close to the actual movement speed of the wave crests and the distance between the wave crests, so that no unnatural feeling occurs when superimposed on the live-action image.
- the CG image generation unit 12 also generates multiple CG images using different rendering conditions.
- the CG image generation unit 12 generates multiple CG images by changing one or more parameters related to the rendering of the wave crest object. Examples of parameters that can be changed include the spacing between wave crest objects and the movement speed of the wave crest object. When changing parameters, it is preferable to change them within the range that the actual wave crest can take.
- the brightness difference calculation unit 13 calculates the total difference value between each of the multiple CG images and the live-action image, and stores the calculated total difference value in the data storage unit 3, linking it to each CG image.
- the total difference value is a feature that indicates the degree of difference between the CG image and the live-action image.
- the total difference value is the sum of the absolute values of the differences in brightness between the CG image and the live-action image, calculated for each frame.
- the difference in brightness between the CG image and the live-action image is calculated using pixel values at the same position in the same frame. It is preferable to calculate the total difference value after performing grayscale processing and masking processing on both the live-action image and the CG image.
- the image superimposition unit 14 generates a simulation image by superimposing an object image on the live-action image, and stores the generated simulation image in the data storage unit 3. At this time, the image superimposition unit 14 selects the CG image with the smallest total difference value from the multiple CG images stored in the data storage unit 3, and superimposes the selected CG image on the live-action image. This generates a simulation image in which the CG image with the smallest total difference value from the live-action image is superimposed on the live-action image.
- the video output unit 15 reads the simulation video from the data storage unit 3 in response to the operation signal received from the simulator SS, and outputs the read simulation video to the display device DS via the input/output I/F unit 4.
- the video output unit 15 is an example of a video presentation unit.
- FIG. 4 is a flowchart showing an example of the procedure for the simulation image presentation process by the piloting simulation image generating device CS.
- the simulation image presentation process is a series of processes from generating a simulation image based on live-action images captured using a real machine to transmitting the generated simulation image to the display device DS worn by the pilot of the simulator SS.
- the processing procedure for the reliability determination process described below is merely an example, and each process can be modified as appropriate as possible.
- steps in the processing procedure described below can be omitted, replaced, or added as appropriate depending on the embodiment.
- an imaging device CM attached to the instructor's head captures omnidirectional images of the surrounding area as live-action video.
- the imaging device CM transmits the captured live-action video to the maneuvering simulation video generation device CS.
- the live-action video acquisition unit 11 acquires live-action video from the imaging device CM via the input/output I/F unit 4. Then, the brightness difference calculation unit 13 converts the acquired live-action video into grayscale (step S101).
- Figures 5 and 6 each show an example of live-action video J.
- Figures 5 and 6 show live-action images of different frames.
- Figures 5 and 6 are 360-degree images.
- live-action video J displays a windsurfing machine 401, the sea surface 402, and the sky 403.
- Live-action video J also includes frames in which wave crests 404 are displayed, as in Figure 5, and frames in which wave crests 404 are not displayed, as in Figure 6.
- the movement speed of the wave crest 404 is sufficiently small compared to the movement speed of the windsurfing, so the wave crest 404 can be considered to be stationary relative to the windsurfing.
- the operator of the simulator SS checks the movement of the wave crest 404 to confirm the current movement speed of the windsurfing being operated.
- the wave crest is not visible, as shown in Figure 6, or where the wave crest 404 is not large enough, as shown in Figure 5, making it difficult to see the wave crest 404.
- the brightness difference calculation unit 13 performs masking on the grayscaled live-action video J to generate a live-action mask video (step S102).
- the live-action video acquisition unit 11 performs masking so that the brightness value of areas in the live-action video J where a windsurfing board or sail may be present (hereinafter referred to as the first area) is 0, and the brightness value of areas in the live-action video J where the sky, sea, and wave crests are present (hereinafter referred to as the second area) is 1.
- Figure 7 shows an example of a mask image M used for masking.
- the mask image M is a two-dimensional image having a pixel count corresponding to each frame image of the live-action video J.
- the first area 501 is shown in black, and the second area 502 is shown in white.
- the ranges of the first area 501 and the second area 502 may be input by the user via the input/output I/F unit 4, or may be automatically set by image analysis of the live-action video J.
- the live-action mask image generated by masking process has a brightness value of 0 in areas of live-action image J where a windsurfing board or sail may be present, while maintaining the brightness values of areas where the sky, sea, and wave crests are present, resulting in an image that shows only the sky, sea, and wave crests in grayscale.
- the CG image generation unit 12 generates a plurality of CG image generation conditions (step S103). At this time, the CG image generation unit 12 generates a plurality of rendering conditions that differ in one or more parameters related to the rendering of the wave crest object.
- Table 1 shows an example of the generated rendering conditions. Table 1 shows an example of generating four rendering conditions C1 to C4 in which two parameters, the wavelength of the wave crest object and the movement speed of the wave crest object, are each changed in two stages. Each of conditions C1 to C4 uses a numerical value that is close to the actual wave crest.
- the wavelength [L] of a wave crest object is the distance between multiple wave crest objects.
- Wavelength [L] is calculated, for example, using the following formula (1).
- T is the period [s]
- g is the gravitational acceleration [m/s ⁇ 2]
- h is the water depth [m].
- the actual wavelength L of a wave crest is estimated to be 56 to 98 [m].
- the wavelength [L] of the wave crest object is changed in two stages within the range of 56 to 98 [m].
- the actual moving speed [V] of the wave crest can be estimated using the moving speed of the windsurfing and the actual moving speed of the wave crest itself. Because the moving speed of the wave crest itself is sufficiently slower than the moving speed of the windsurfing, the actual moving speed [V] of the wave crest can be considered to be equal to the moving speed of the windsurfing. Since the moving speed of a windsurfing is known to be 50 to 60 km/h, it is recommended to set the moving speed [V] of the wave crest object in the video to be 50 to 60 km/h. For this reason, in conditions C1 to C4, the moving speed [V] of the wave crest object is changed in two stages within the range of 50 to 60 m.
- the CG image generation unit 12 generates a CG image based on the set rendering conditions (step S104). At this time, the CG image generation unit 12 generates the CG image using one of conditions C1 to C4. Here, we will explain the case where CG image I1 is generated using condition C1.
- the brightness difference calculation unit 13 converts the CG image I1 into a grayscale image (step S105).
- the same process as that performed on the live-action image J in step S101 is performed.
- the brightness difference calculation unit 13 performs masking on the grayscaled CG image I1 (step S106).
- the CG image generation unit 12 uses the mask image used on the live-action image J in step S102 to perform masking so that the brightness value of the area corresponding to the first area of the live-action image J becomes 0, and the brightness value of the area corresponding to the second area of the live-action image J becomes 1.
- the CG image I1 has a brightness value of 0 in the part corresponding to the first area of the live-action image J, and the brightness value of the part corresponding to the second area of the live-action image J is maintained, resulting in an image that includes only grayscale wave crest objects placed in the areas where the sky, sea, and wave crests are present.
- the brightness difference calculation unit 13 calculates a total difference value d1 for the masked CG image I1 relative to the masked live-action image J (step S107).
- the total difference value d1 is the absolute value of the difference in brightness between the CG image and the live-action image at the same coordinates in the same frame, summed over all coordinates, and then summed over all frames.
- the control unit 1 repeatedly executes steps S103 to S107 until the total difference values (d1 to d4) for all conditions (C1 to C4) are calculated (step S108 - No).
- This generates four CG images I1 to I4 that differ in at least one of the wavelength and movement speed of the wave crest object, and grayscale image processing and masking processing are performed on each of the four CG images I1 to I4.
- the total difference values d1 to d4 relative to the live-action image J are calculated for each CG image I1 to I4.
- Figures 8 to 11 are diagrams showing the difference in brightness between each of CG images I1 to I4 and live-action image J for each frame.
- Figure 8 shows the absolute value of the difference in brightness between CG image I1 and live-action image J
- Figure 9 shows the absolute value of the difference in brightness between CG image I2 and live-action image J
- Figure 10 shows the absolute value of the difference in brightness between CG image I3 and live-action image J
- Figure 11 shows the absolute value of the difference in brightness between CG image I4 and live-action image J.
- the horizontal axis in Figures 8 to 11 indicates the frame number.
- the vertical axis in Figures 8 to 11 indicates the absolute value of the difference in brightness at the same coordinates between the CG image and live-action image in each frame, summed over all coordinates.
- the following formula (2) is a mathematical expression that organizes the process of calculating the total difference value dn in steps S101 to 107.
- "n" in the total difference value dn is the identification number of the CG images I1 to I4, and in this case is any value from 1 to 4.
- equation (2) "m” represents the number of frames in the live-action image J and the CG image, and "x” represents the x coordinate in the live-action image J and the CG image, and the y coordinate in the live-action image J and the CG image.
- J(m, x, y) in equation (2) represents the luminance value of the coordinates (x, y) of the mth frame of the live-action image in the grayscaled live-action image J
- I(n, m, x, y) represents the luminance value of the coordinates (x, y) of the mth frame of the CG image in the grayscaled CG image Cn.
- M(x, y) in equation (2) represents the luminance value of the coordinates (x, y) in the mask image in Figure 7.
- the total difference value dn shown in equation (2) is calculated by calculating the absolute value of the difference between the luminance value of the live-action image and the luminance value of the CG image at the same coordinate in the same frame, summing the calculated absolute values of the differences for all coordinates, and then summing the sum for all frames. Furthermore, the total difference value dn shown in equation (2) is a value that is affected only by the areas where the sea, sky, and wave crests are present, with the influence of the area where windsurfing is present being eliminated by masking.
- the total difference values d1 to d4 are values that indicate the difference in luminance between the wave crest objects included in each of CG images I1 to I4 and the areas where the sea surface and wave crests are present in the live-action image J. Therefore, the greater the difference between the actual wave crests included in the live-action image and the wave crest objects included in the CG image, the greater the total difference value. In other words, the smaller the total difference value, the closer the CG image is to rendering conditions that are closer to actual wave crests.
- Table 2 below shows the total difference values d1 to d4 calculated by the processing in steps S101 to S108.
- the image superimposition unit 14 generates a simulation image by superimposing one of the CG images on the live-action image J (step S109). At this time, the image superimposition unit 14 generates a simulation image by superimposing CG image I2, which has the smallest total difference value among the four CG images I1 to I4 generated under different conditions, on the live-action image J.
- Figure 12 is a diagram showing an example of the generated simulation image S. As shown in Figure 12, in the generated simulation image S, a wave crest object 605 is superimposed on the sea surface 402 in the live-action image J.
- simulation image generated by superimposing CG image I2 on the live-action image J has a smaller difference in overall brightness between the live-action image J and the CG image including the wave crest object than a simulation image generated by superimposing any one of the other CG images I1, I3, and I4 on the live-action image J. Therefore, compared to a simulation image generated by superimposing one of the other CG images I1, I3, and I4 on live-action image J, simulation image S is an image in which a wave crest object that resembles an actual wave crest is superimposed.
- the image superimposition unit 14 stores the generated simulation image in the data storage unit 3.
- the video output unit 15 transmits the simulation video to the display device DS via the input/output I/F unit 4, causing the display device DS to display the simulation video (step S110).
- the displayed simulation video is used for training using the simulator SS.
- the maneuvering simulation image generation device CS of this embodiment acquires live-action images, generates multiple CG images using different rendering conditions, calculates the difference between each of the CG images and the live-action image, and generates a simulation image by superimposing the CG image with the smallest total absolute value (total difference value) on the live-action image, thereby presenting the generated simulation image.
- the maneuvering simulation image generation device CS is an example of a CG image superimposition device.
- the difference from the live-action image can be, for example, the total absolute value (total difference value) of the differences in luminance values between each CG image and the live-action image. Note that the difference from the live-action image can also be the sum of squares of the differences in luminance values between the CG image and the live-action image (residual sum of squares), or the like.
- the live-action footage is, for example, footage captured by an instructor wearing an imaging device CM while piloting the actual windsurfing machine 300 and gliding across the water, capturing the instructor's 360-degree field of view.
- the actual windsurfing machine 300 is an example of an actual mobile machine.
- the CG footage is, for example, footage including a wave crest object that simulates a wave crest.
- the wave crest object is an example of an object that simulates a feature in the live-action footage that is difficult to see or a feature that is missing from the live-action footage.
- the simulation footage is, for example, a superimposed image in which one of the CG images including a wave crest object is superimposed on the live-action footage.
- the maneuvering simulation image generation device CS of this embodiment can generate a simulation image in which wave crest objects simulating wave crests are superimposed on live-action imagery, and display the generated simulation image on a display device DS such as a VRHMD worn on the user's head.
- a display device DS such as a VRHMD worn on the user's head.
- a simulation image that appropriately reflects features that are difficult to see in the live-action imagery or features that are missing from the live-action imagery can be generated and displayed on the display device DS. This allows a user of the simulator SS wearing the display device DS to easily determine the movement speed by visually checking the movement of the wave crest objects.
- a simulation image is generated using the CG image with the smallest total difference value from multiple CG images generated under different rendering conditions.
- a masking process is performed on both the live-action video and the CG video, which sets the brightness value of the area (first area) in the live-action video where the actual windsurfing equipment is displayed to zero, and then the total difference value is calculated.
- a CG video with a wave crest object moving at a speed close to that of the sail may be selected.
- the above configuration may also be applied to mobile machines other than windsurfing. For example, by superimposing CG images containing objects for determining the flying drone's movement speed on actual footage captured by a flying drone used for photography, the flying drone's movement speed can be easily determined.
- the technical idea of the present application can be executed by a computer based on a program that causes the computer to execute the instructions set forth in the processing procedures shown in the above-described embodiments and variations.
- the technical idea of the present application can also be realized as a program that can be provided over a network.
- the technical idea of the present application can also be realized as a recording medium on which the program is recorded.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Educational Technology (AREA)
- Educational Administration (AREA)
- Business, Economics & Management (AREA)
- Aviation & Aerospace Engineering (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
この発明の一態様のCG映像重畳装置は、実写映像取得部と、CG映像生成部と、輝度差計算部と、映像重畳部と、映像提示部とを備える。実写映像取得部は、実写映像を取得する。CG映像生成部は、異なるレンダリング条件を用いて複数のCG映像を生成する。輝度差計算部は、CG映像のそれぞれについて、実写映像との差を計算する。映像重畳部は、CG映像の中で実写映像との差が最も小さいCG映像を実写映像に重畳した重畳映像を生成する。映像提示部は、重畳映像を提示する。
Description
本発明は、実写映像にCG映像を重畳するCG映像重畳装置に関する。
乗り物などの移動機械を操縦した際の視界を仮想的に体験する方法として、実際に撮影した実写映像中にCG(Computer Graphics)映像を合成する方法がある。例えば、非特許文献1では、実写映像中に映ったA4用紙に基づいてカメラの位置等のカメラパラメータを特定し、特定したカメラパラメータに基づいてCG映像を生成し、生成したCG映像を実写映像に重畳する方法が説明されている。しかし、この方法では、実写映像の中からCG映像へ反映させることができる情報は、カメラパラメータのみである。すなわち、カメラパラメータ以外の実写映像の情報は、CG映像へ反映されない。
また、非特許文献2では、実写映像中に映った道路を認識し、道路のジオメトリ情報と、ストレージに蓄積された交差点や道路の幅情報を照合する方法が説明されている。この方法では、実写映像の中からCG映像へ反映させることができる情報は、進行方向を示す矢印の位置のみである。すなわち、進行方向を示す矢印の位置以外の実写映像の情報は、CG映像へ反映されない。
中沢裕二、外3名、"画像中の特徴点に基づく実写画像とCG画像との動画像合成システム",映像情報メディア学会誌,Vol.51, No.7, 1086-1095,1997,インターネット<https://www.jstage.jst.go.jp/article/itej1997/51/7/51_7_1086/_article/-char/ja/>
澤野弘明、外1名、"車載カメラによる実時間画像処理とそのAR技術に基づく表示方式によるカーナビへの応用",芸術科学会論文誌,Vol.5,No.2,57-68,インターネット<https://www.jstage.jst.go.jp/article/artsci/5/2/5_2_57/_pdf/-char/ja>
乗り物の操縦を練習する場合、実際の乗り物を用いると環境や指導者の不在等により十分な練習機会が得られないことがある。そのためシミュレータを用いることが有効である。例えば、ウィンドサーフィンは、海岸から数km離れたところを60km/h程度の高速で滑走するため、実機を操縦中に指導者がそばにいることが難しい。また風が弱い環境では練習ができない。これらの問題は、シミュレータを用いることで解決することが可能である。
乗り物の操縦においては、速度を適切にコントロールすることが重要である。このため、例えば自動車の運転シミュレータにおいては、スピードメーターが装備され、運転者はこのスピードメーターを確認しながらアクセルとブレーキを用いて速度をコントロールできるようになっている。一方、ウィンドサーフィンのように、スピードメーターを設けることが困難な乗り物では、シミュレータの搭乗者は、VRHMD(Virtual Reality Head Mounted Display)を用いた360度映像上に表示された波頭を、速度を判断する手掛かりとしている。しかし、実写映像中に十分な数の波頭が表示されないことや、VRHMDの解像度が低い場合に波頭の視認性が十分でないことがある。
本発明は上記事情に着目してなされたもので、その目的とするところは、実写映像に適切なCG映像を重畳した重畳映像を提示することである。
上記目的を達成するために、この発明に係るCG映像重畳装置の一態様は、実写映像取得部と、CG映像生成部と、輝度差計算部と、映像重畳部と、映像提示部とを備える。実写映像取得部は、実写映像を取得する。CG映像生成部は、異なるレンダリング条件を用いて複数のCG映像を生成する。輝度差計算部は、CG映像のそれぞれについて、実写映像との輝度値の差を計算する。映像重畳部は、CG映像の中で実写映像との差が最も小さいCG映像を実写映像に重畳した重畳映像を生成する。映像提示部は、重畳映像を提示する。
この発明の一態様によれば、例えば、訓練中に乗り物の移動速度を判断するためのオブジェクトを模擬したCG映像が周辺映像に重畳されて訓練者に提示される。従って、取得した周辺映像において、速度判断に用いる物体が視認しにくい場合や欠損している場合であっても、速度判断に用いる物体を模擬したオブジェクトを周辺映像に重畳した映像を訓練者に提示することができる。訓練者は、周辺映像と共に表示されるオブジェクトの動きに基づいて、速度を判断することが可能となる。
すなわち、この発明の一態様によれば、実写映像に適切なCG映像を重畳した重畳映像を提示することができる。
以下、図面を参照しながら本開示の一実施形態に係るCG映像重畳装置について詳細に説明する。以下の説明において、略同一の機能および構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
(構成例)
図1は、一実施形態に係るCG映像重畳装置を含むウィンドサーフィン用シミュレーションシステムの構成の一例を示す図である。ウィンドサーフィン用シミュレーションシステムは、ウィンドサーフィンの形状や動きや視界を模擬したシミュレータを用いて、ウィンドサーフィンの操縦の訓練を行うためのシステムである。ウィンドサーフィンは、移動機械の一例である。本実施形態に係る構成は、ウィンドサーフィン以外の移動機械に適用してもよい。
図1は、一実施形態に係るCG映像重畳装置を含むウィンドサーフィン用シミュレーションシステムの構成の一例を示す図である。ウィンドサーフィン用シミュレーションシステムは、ウィンドサーフィンの形状や動きや視界を模擬したシミュレータを用いて、ウィンドサーフィンの操縦の訓練を行うためのシステムである。ウィンドサーフィンは、移動機械の一例である。本実施形態に係る構成は、ウィンドサーフィン以外の移動機械に適用してもよい。
ウィンドサーフィン用シミュレーションシステムは、シミュレータSSと、表示装置DSと、操縦シミュレーション映像生成装置CSと、位置計測装置PSと、撮像装置CMを備えている。操縦シミュレーション映像生成装置CSは、シミュレータSS、表示装置DS、位置計測装置PS及び撮像装置CMのそれぞれと有線または無線で接続されている。操縦シミュレーション映像生成装置CSは、位置計測装置PS及び撮像装置CMから受信したデータを用いて、ウィンドサーフィンの操縦訓練に使用されるシミュレーション映像を生成する。シミュレーション映像は、撮像装置CMから受信した後述の実写映像に波頭を模擬した後述のCG映像を重畳した映像である。シミュレーション映像は、重畳映像の一例であり、操縦シミュレーション映像生成装置CSは、CG映像重畳装置の一例である。シミュレータSS及び表示装置DSは、操縦シミュレーション映像生成装置CSで生成したシミュレーション映像を用いてウィンドサーフィンの操縦訓練を行う際に用いられる。
図2は、シミュレータSSの構成の一例を示す図である。シミュレータSSは、操縦訓練を行うユーザが搭乗するサーフィン部100と、このサーフィン部100を支持する駆動部200とを備えている。サーフィン部100は、ユーザが立つ台が設けられたボード101と、ボード101に立設されたマスト102と、マスト102に取り付けられたセイル103とを備える。
駆動部200は、ウィンドサーフィンの実機において発生する、ピッチ、ロール、ヨー、ヒーブの4軸の動きを再現するためのアクチュエータ201を備える。そして、駆動部200は、図示しないシミュレータ制御装置から出力される駆動制御信号に応じて上記アクチュエータ201が動作することで、サーフィン部100のボード101およびマスト102を上記4軸の方向に揺動させる。
なお、駆動部200は、上記4軸に限らず、ボードに対するマスト部の傾き角度等を加えた5軸以上に対応するものであってもよいし、またピッチとヨーの2軸またはピッチ、ロール、ヨーの3軸のみに対応するものであってもよい。
表示装置DSは、例えばVRHMD(Virtual Reality Head Mounted Display)からなり、ユーザの頭部に装着して使用される。表示装置DSは、操縦シミュレーション映像生成装置CSから出力されるシミュレーション映像を表示する。なお、表示装置DSは、音声データを併せて出力するスピーカを備えていてもよい。
操縦シミュレーション映像生成装置CSは、撮像装置CMと位置計測装置PSから受信した情報を用いて、ウィンドサーフィンの操縦訓練に使用されるシミュレーション映像を生成する。図3は、ウィンドサーフィンの実機300を使用してシミュレーション映像に用いられる周辺映像を撮影する様子を示す図である。ウィンドサーフィンの実機300は、ユーザが搭乗するユーザが立つ台が設けられたボード301と、ボード301に立設されたマスト302と、マスト302に取り付けられたセイル303とを備える。実写映像を生成する際には、撮像装置CMを装着したインストラクターがウィンドサーフィンの実機300を操縦し、水上を滑走する。
位置計測装置PSは、ウィンドサーフィンの実機300に取り付けられる。位置計測装置PSは、例えば、マスト302に取り付けられる。位置計測装置PSは、ウィンドサーフィンの実機を使って水上を滑走しているときに、GPS(Global Positioning System)センサを用いて緯度経度を示す位置情報を継続的に計測し、計測した上記緯度経度データの集合を移動軌跡データとして操縦シミュレーション映像生成装置CSへ出力する。
撮像装置CMは、ウィンドサーフィンの実機300に搭乗するユーザの頭部に取り付けられる。撮像装置CMは、ウィンドサーフィンの実機300を使って水上を滑走しているときに、例えば操縦者の頭部に装着された全方位(360度)カメラを用いて周辺映像を撮像し、撮像した周辺映像データを操縦シミュレーション映像生成装置CSへ出力する。以下、周辺映像データを実写映像と呼ぶ。なお、撮像装置CMは、全方位映像に限らず、少なくとも操縦者の視野角の範囲のパノラマ映像を撮像するものであってもよい。
操縦シミュレーション映像生成装置CSは、位置計測装置PSから受信した移動軌跡データと撮像装置CMから取得した実写映像を用いて、シミュレーション映像を生成する。操縦シミュレーション映像生成装置CSは、例えばパーソナルコンピュータ等の情報処理端末として実現される。
なお、移動軌跡データは、ウィンドサーフィンの実機の移動速度を算出するために用いることができる、移動速度を算出する必要がない場合、位置計測装置PSは使用されなくてもよい。
次に、本実施形態に係るCG映像重畳装置である操縦シミュレーション映像生成装置CSの構成について説明する。
操縦シミュレーション映像生成装置CSは、制御部1と、プログラム記憶部2と、データ記憶部3と、入出力インタフェース(以後インタフェースをI/Fと略称する)部4を備える。制御部1は、中央処理ユニット(Central Processing Unit:CPU)等のハードウェアプロセッサを備える。制御部1は、プログラム記憶部2、データ記憶部3、及び入出力I/F部4のそれぞれにバスを介して接続されている。
操縦シミュレーション映像生成装置CSは、制御部1と、プログラム記憶部2と、データ記憶部3と、入出力インタフェース(以後インタフェースをI/Fと略称する)部4を備える。制御部1は、中央処理ユニット(Central Processing Unit:CPU)等のハードウェアプロセッサを備える。制御部1は、プログラム記憶部2、データ記憶部3、及び入出力I/F部4のそれぞれにバスを介して接続されている。
入出力I/F部4には、上記シミュレータSSおよび表示装置DSが、それぞれUSB(Universal Serial Bus)ケーブル等の信号ケーブルを介して接続される。入出力I/F部4は、上記シミュレータSSおよび表示装置DSとの間で制御信号およびシミュレーション映像の送受信を行う。
また、入出力I/F部4には、上述の位置計測装置PSおよび撮像装置CMが接続可能となっている。入出力I/F部4は、位置計測装置PSから上述の移動軌跡データを受信する。また、入出力I/F部4は、撮像装置CMから上述の実写映像を受信する。
なお、入出力I/F部4としては、例えばBluetooth(登録商標)またはWi-Fi(登録商標)等の小電力無線データ伝送規格を採用した無線インタフェースが使用されてもよいし、公衆移動無線通信ネットワークの無線インタフェースが使用されてもよい。無線インタフェースを使用すると、シミュレータSS、表示装置DS、位置計測装置PSおよび撮像装置CMとの間を接続する信号ケーブルを不要にすることができ、ユーザの自由度を高めることができる。
プログラム記憶部2は、例えば、記憶媒体としてSSD(Solid State Drive)等の随時書込みおよび読出しが可能な不揮発性メモリと、ROM(Read Only Memory)等の不揮発性メモリとを組み合わせて構成したもので、OS(Operating System)等のミドルウェアに加えて、一実施形態に係る各種制御処理を実行するために必要なアプリケーション・プログラムを格納する。なお、以後OSと各アプリケーション・プログラムとをまとめてプログラムと称する。
データ記憶部3は、例えば、記憶媒体として、SSD等の随時書込みおよび読出しが可能な不揮発性メモリと、RAM(Random Access Memory)等の揮発性メモリと組み合わせたものである。データ記憶部3は、上述の移動軌跡データ、実写映像、シミュレーション映像などを記憶する。また、データ記憶部3は、シミュレーション映像を生成する際に用いる情報や、シミュレーション映像を生成する際に一時的に生成した情報を記憶する。
制御部1は、処理機能として、実写映像取得部11と、CG映像生成部12と、輝度差計算部13と、映像重畳部14と、映像出力部15とを備えている。上記各処理部11~15は、何れもプログラム記憶部2に格納されたアプリケーション・プログラムを制御部1のハードウェアプロセッサに実行させることにより実現される。なお、上記処理部11~15の一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェアを用いて実現されてもよい。
実写映像取得部11は、撮像装置CMにより撮像された実写映像を入出力I/F部4を介して受信し、取得した実写映像をデータ記憶部3に記憶する。実写映像は、例えば、複数の360度画像を含む動画データである。実写映像のフレーム数は、例えば、200フレームである。
CG映像生成部12は、CG映像を生成し、生成したCG映像をデータ記憶部3に記憶する。各CG映像は、複数のCG画像を含む動画データである。各CG映像は、実写映像と同じフレーム数のCG画像を有する。CG映像は、実写映像と同じ形状の映像であり、実写映像と同じ画素数を有する。各CG画像は、波の頭(以下、波頭と呼ぶ)を模擬したオブジェクト(以下、波頭オブジェクトと呼ぶ)を含む。波頭オブジェクトは、実写映像中の視認しにくい特徴や実写映像中の欠損している特徴を模擬したオブジェクトの一例である。各波頭オブジェクトは、実際の波頭の形状に近い形状で、かつ、実際の波頭に近い色になるように生成(レンダリング)される。また、波頭オブジェクトは、CG映像において、実写画像の海面に対応する範囲内に配置される。また、波頭オブジェクトは、実写映像の海面上に重畳した際に高い視認性を有するように生成される。例えば、波頭オブジェクトは、一定以上の大きさを有し、かつ、実写映像の海面と識別しやすい色で形成される。より具体的には、各CG映像は、3つの頂点それぞれが3次元座標(x, y, z)を持つ三角形を組み合わせた多角形(ポリゴン)や長方形のオブジェクトの組み合わせを含む3次元構造を使用して生成される。波頭オブジェクトは、海面の高さ(例えばy=0)の平面上にある白色の長方形として表現される。ウィンドサーフィンの進行方向(例えばz軸)における波頭オブジェクトの大きさは、例えば、波長の半分の長さ(例えば28m)に設定される。隣の波頭オブジェクトとの間隔は、例えば、波長の半分の長さ(例えば28m)に設定される。ウィンドサーフィンの進行方向及び高さ方向に対して垂直な方向(例えばx軸)における波頭オブジェクトの大きさは、例えば、十分な視認性を確保できる大きさ(例えば100m)に設定される。CG映像は、高さ1.7mにある人の視点((x, y, z)=(0,1.7,0))から見た波頭オブジェクトの頂点の位置を透視変換によって計算することで生成される。
また、シミュレータSSの搭乗者が速度を判断しやすくなるように、CG映像全体において十分な数の波頭オブジェクトが含まれることが好ましい。また、CG映像全体における波頭オブジェクトの移動速度や波頭オブジェクト間の距離(以下、波頭オブジェクトの波長とも呼ぶ)は、実写映像に重畳した際の違和感が生じないように、実際の波頭の移動速度や波頭間の距離に近い値に設定することが好ましい。
また、CG映像生成部12は、異なるレンダリング条件を用いて生成した複数のCG映像を生成する。CG映像生成部12は、波頭オブジェクトのレンダリングに関する1つ以上のパラメータを変えて生成した複数のCG映像を生成する。変化させるパラメータとしては、例えば、波頭オブジェクトの間隔や波頭オブジェクトの移動速度が挙げられる。また、パラメータを変化させる際には、実際の波頭が取り得る範囲内でパラメータを変化させることが好ましい。
輝度差計算部13は、複数のCG映像のそれぞれについて、実写映像との合計差分値を算出し、算出した合計差分値を各CG映像に紐づけてデータ記憶部3に記憶する。合計差分値は、CG映像と実写映像との差の度合いを示す特徴量である。合計差分値は、フレーム毎に算出されたCG画像と実写画像との輝度値の差の絶対値を合計した値である。CG画像と実写画像との輝度値の差は、同じフレームの同じ位置の画素値を用いて計算される。なお、実写映像とCG画像の両方に対してグレースケール化処理やマスク処理を行った後に、合計差分値を計算することが好ましい。
映像重畳部14は、実写映像にオブジェクト映像を重畳することによりシミュレーション映像を生成し、生成した上記シミュレーション映像をデータ記憶部3に記憶する。この際、映像重畳部14は、データ記憶部3に記憶された複数のCG映像の中で、合計差分値が最小のCG映像を選択し、選択したCG映像を実写画像に重畳する。これにより、実写映像との合計差分値が最も小さいCG映像を実写映像に重畳したシミュレーション映像が生成される。
映像出力部15は、シミュレータSSから受信した操作信号に応じてデータ記憶部3からシミュレーション映像を読み出し、読み出したシミュレーション映像を入出力I/F部4を介して表示装置DSへ出力する。映像出力部15は、映像提示部の一例である。
(動作例)
次に、以上のように構成された操縦シミュレーション映像生成装置CSの動作例を説明する。図4は、操縦シミュレーション映像生成装置CSによるシミュレーション映像提示処理の手順の一例を示すフローチャートである。シミュレーション映像提示処理は、実機を使って撮像した実写映像に基づいてシミュレーション映像を生成し、生成したシミュレーション映像をシミュレータSSの操縦者が装着した表示装置DSへ送信するまでの一連の処理である。なお、以下で説明する信頼度判定処理における処理手順は一例に過ぎず、各処理は可能な限り適宜変更可能である。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
次に、以上のように構成された操縦シミュレーション映像生成装置CSの動作例を説明する。図4は、操縦シミュレーション映像生成装置CSによるシミュレーション映像提示処理の手順の一例を示すフローチャートである。シミュレーション映像提示処理は、実機を使って撮像した実写映像に基づいてシミュレーション映像を生成し、生成したシミュレーション映像をシミュレータSSの操縦者が装着した表示装置DSへ送信するまでの一連の処理である。なお、以下で説明する信頼度判定処理における処理手順は一例に過ぎず、各処理は可能な限り適宜変更可能である。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
まず、シミュレーション映像を生成する処理について説明する。
シミュレーション映像を生成する際には、まず、インストラクターがウィンドサーフィンの実機を使って水上を滑走しているときに、インストラクターの頭部に装着された撮像装置CMにより周辺の全方位映像が実写映像として撮像される。撮像装置CMは、撮像した実写映像を操縦シミュレーション映像生成装置CSへ送信する。
実写映像取得部11は、入出力I/F部4を介して撮像装置CMから実写映像を取得する。その後、輝度差計算部13は、取得した実写映像をグレースケール化する(ステップS101)。図5及び図6のそれぞれは、実写映像Jの一例を示す図である。図5及び図6は、異なるフレームの実写画像を示している。図5及び図6は、360度画像である。図5及び図6に示すように、実写映像Jには、ウィンドサーフィンの実機401と、海面402と、空403が表示されている。また、実写映像Jには、図5のように波頭404が表示されるフレームや、図6のように波頭404が表示されないフレームが含まれる。
ここで、波頭404の移動速度はウィンドサーフィンの移動速度と比べて十分に小さいため、波頭404はウィンドサーフィンに対して相対的に静止しているとみなすことができる。一般的には、海面には静止している他の物体が存在しないため、シミュレータSSの操縦者は、波頭404の移動状況を確認して操縦しているウィンドサーフィンの現在の移動速度を確認する。しかし、実写映像Jには、図6に示すように波頭が映っていない場合や、図5に示すように十分な大きさの波頭404が映っていない場合があり、波頭404を視認しにくいことがある。
次に、輝度差計算部13は、グレースケール化した実写映像Jに対してマスク処理を実行し、実写マスク映像を生成する(ステップS102)。この際、実写映像取得部11は、実写映像Jにおいてウィンドサーフィンのボードやセイルが存在する可能性がある領域(以下、第1領域と呼ぶ)の輝度値が0になり、実写映像Jにおいて空、海、波頭が存在する領域(以下、第2領域と呼ぶ)の輝度値が1になるようなマスク処理を行う。図7は、マスク処理に使用するマスク画像Mの一例を示す図である。マスク画像Mは、実写映像Jの各フレーム画像に対応する画素数を有する2次元画像である。図7では、第1領域501を黒色で示し、第2領域502を白色で示している。第1領域501及び第2領域502の範囲は、ユーザが入出力I/F部4を介して入力してもよく、実写映像Jに対する画像解析により自動的に設定してもよい。マスク処理により生成された実写マスク映像は、実写映像Jにおいてウィンドサーフィンのボードやセイルが存在する可能性がある領域の輝度値が0になり、空、海、波頭が存在する領域の輝度値が維持されるため、グレースケールの空、海、波頭のみが映った映像となる。
次に、CG映像生成部12は、CG映像の生成条件を複数生成する(ステップS103)。この際、CG映像生成部12は、波頭オブジェクトのレンダリングに関する1つ以上のパラメータが異なる複数のレンダリング条件を生成する。以下の表1は、生成したレンダリング条件の一例を示している。表1では、波頭オブジェクトの波長と波頭オブジェクトの移動速度の2つのパラメータのそれぞれを2段階に変化させた4つのレンダリング条件C1~C4を生成する例を示す。各条件C1~C4では、実際の波頭に近い数値が用いられる。
波頭オブジェクトの波長[L]は、複数の波頭オブジェクト間の間隔である。波長[L]は、例えば、以下の式(1)を用いて算出される。式(1)における「T」は周期[s]であり、「g」は重力加速度[m/s^2]であり、「h」は水深[m]である。ウィンドサーフィンの競技が行われるような浅い海では、水深は約5[m]であり、波の周期Tは8~14[秒]であることが知られている。このため、式(1)を用いて、実際の波頭の波長Lは56~98[m]であると推測される。このため、条件C1~C4では、56~98[m]の範囲内で波頭オブジェクトの波長[L]を2段階に変化させている。
実際の波頭の移動速度[V]は、ウィンドサーフィンの移動速度と実際の波頭そのものの移動速度を用いて推定することができる。波頭そのものの移動速度はウィンドサーフィンの移動速度よりも充分に小さいため、実際の波頭の移動速度[V]は、ウィンドサーフィンの移動速度と等しい値とみなすことができる。ウィンドサーフィンの移動速度は、50~60[km/h]であることが知られているため、映像中の波頭オブジェクトの移動速度[V]は、50~60[km/h]になるように設定するとよい。このため、条件C1~C4では、50~60[m]の範囲内で波頭オブジェクトの移動速度[V]を2段階に変化させている。
次に、CG映像生成部12は、設定したレンダリング条件に基づいてCG映像を生成する(ステップS104)。この際、CG映像生成部12は、条件C1~C4のいずれかを用いてCG映像を生成する。ここでは、条件C1を用いてCG映像I1をした場合について説明する。
次に、輝度差計算部13は、CG映像I1をグレースケール化する(ステップS105)。ここでは、ステップS101における実写映像Jに対するグレースケール化と同様の処理が実行される。
次に、輝度差計算部13は、グレースケール化したCG映像I1に対してマスク処理を実行する(ステップS106)。この際、CG映像生成部12は、ステップS102で実写映像Jに対して使用されたマスク画像を用いて、実写映像Jの第1領域に対応する領域の輝度値が0になり、実写映像Jの第2領域に対応する領域の輝度値が1になるようなマスク処理を行う。マスク処理後のCG映像I1は、実写映像Jの第1領域に対応する部分の輝度値が0になり、実写映像Jの第2領域に対応する部分の輝度値が維持されるため、空、海、波頭が存在する領域に配置されるグレースケールの波頭オブジェクトのみを含む映像となる。
次に、輝度差計算部13は、マスク処理後のCG映像I1について、マスク処理後の実写映像Jに対する合計差分値d1を算出する(ステップS107)。合計差分値d1は、同一フレームの同一座標におけるCG画像と実写画像との輝度値の差の絶対値を、全座標について合計し、全フレームについて合計した値である。
制御部1は、全ての条件(C1~C4)の合計差分値(d1~d4)が算出されるまで(ステップS108-No)、ステップS103~S107までの処理を繰り返し実行する。これにより、波頭オブジェクトの波長と移動速度の少なくとも一方が異なる4つのCG映像I1~I4が生成され、4つのCG映像I1~I4のそれぞれに対して、グレースケール化の画像処理とマスク処理が実行される。そして、各CG映像I1~I4について、実写映像Jに対する合計差分値d1~d4が算出される。
図8~図11は、各CG映像I1~I4と実写映像Jとの輝度値の差をフレーム毎に示す図である。図8はCG映像I1と実写映像Jとの輝度値の差の絶対値を示し、図9はCG映像I2と実写映像Jとの輝度値の差の絶対値を示し、図10はCG映像I3と実写映像Jとの輝度値の差の絶対値を示し、図11はCG映像I4と実写映像Jとの輝度値の差の絶対値を示す。図8~図11の横軸は、フレーム番号を示す。図8~図11の縦軸は、各フレームにおけるCG画像と実写画像の同一座標の輝度値の差の絶対値を、全座標について合計した値を示す。
以下の式(2)は、ステップS101~107において合計差分値dnを算出する処理を整理して数式化したものである。合計差分値dnの「n」は、CG映像I1~I4の識別番号であり、ここでは、1~4のいずれかの数値となる。
式(2)における「m」は実写映像JとCG映像のフレーム数であり、「x」は実写映像JとCG映像におけるx座標を示し、実写映像JとCG映像におけるy座標を示す。また、式(2)におけるJ(m,x,y)は、グレースケール化した実写映像Jにおけるmフレーム目の実写画像の座標(x,y)の輝度値を示し、I(n,m,x,y)は、グレースケール化したCG映像Cnにおけるmフレーム目のCG画像の座標(x,y)の輝度値を示す。また、式(2)におけるM(x,y)は、図7のマスク画像における座標(x,y)の輝度値を示す。
式(2)に示す合計差分値dnは、同じフレームの同じ座標における実写画像の輝度値とCG映像の輝度値の差の絶対値を算出し、算出した差の絶対値を全座標について合計し、さらに全フレームについて合計した値となる。また、式(2)に示す合計差分値dnは、マスク処理により、ウィンドサーフィンが存在する領域の影響が排除され、海、空、波頭が存在する領域のみが影響した値となる。すなわち、合計差分値d1~d4は、各CG映像I1~I4に含まれる波頭オブジェクトと、実写映像Jにおいて海面や波頭が存在する部分の輝度値の差を示す値である。このため、実写映像に含まれる実際の波頭とCG映像に含まれる波頭オブジェクトとの違いが大きいほど、合計差分値は大きくなる。言い換えると、実際の波頭に近いレンダリング条件で生成されたCG映像であるほど、合計差分値は小さくなる。
以下の表2は、ステップS101~S108の処理により算出された合計差分値d1~d4を示している。
全ての条件C1~C4について、CG映像I1~I4の合計差分値d1~d4が算出されると(ステップS108-Yes)、映像重畳部14は、CG映像の1つを実写映像Jに重畳してシミュレーション映像を生成する(ステップS109)。この際、映像重畳部14は、異なる条件で生成した4つのCG映像I1~I4のうち、合計差分値が最も小さいCG映像I2を実写映像Jに重畳して、シミュレーション映像を生成する。図12は、生成したシミュレーション映像Sの一例を示す図である。図12に示すように、生成されたシミュレーション映像Sでは、実写映像Jにおける海面402上に波頭オブジェクト605が重畳されている。CG映像I2を実写映像Jに重畳して生成したシミュレーション映像は、他のCG映像I1、I3、I4のいずれか1つを実写映像Jに重畳して生成したシミュレーション映像に比べて、実写映像Jと波頭オブジェクトを含むCG映像との全体的な輝度値の差が小さい。したがって、シミュレーション映像Sは、他のCG映像I1、I3、I4のいずれか1つを実写映像Jに重畳して生成したシミュレーション映像に比べて、実際の波頭に近い波頭オブジェクトが重畳された映像となる。映像重畳部14は、生成したシミュレーション映像をデータ記憶部3に記憶する。
シミュレータSSを用いた訓練が開始されると、映像出力部15は、入出力I/F部4を介してシミュレーション映像を表示装置DSへ送信し、表示装置DSにシミュレーション映像を表示させる(ステップS110)。表示されたシミュレーション映像は、シミュレータSSを用いた訓練に使用される。
(作用・効果)
本実施形態の操縦シミュレーション映像生成装置CSは、実写映像を取得し、異なるレンダリング条件を用いて複数のCG映像を生成し、CG映像のそれぞれについて、実写映像との差を計算し、複数のCG映像の中で絶対値の合計値(合計差分値)が最も小さいCG映像を実写映像に重畳したシミュレーション映像を生成し、生成したシミュレーション映像を提示することができる。操縦シミュレーション映像生成装置CSは、CG映像重畳装置の一例である。実写映像との差としては、例えば、各CG映像と実写映像との輝度値の差の絶対値の合計値(合計差分値)を用いることができる。なお、実写映像との差として、CG映像と実写映像の輝度値の差の二乗和(残差平方和)などを用いてもよい。
本実施形態の操縦シミュレーション映像生成装置CSは、実写映像を取得し、異なるレンダリング条件を用いて複数のCG映像を生成し、CG映像のそれぞれについて、実写映像との差を計算し、複数のCG映像の中で絶対値の合計値(合計差分値)が最も小さいCG映像を実写映像に重畳したシミュレーション映像を生成し、生成したシミュレーション映像を提示することができる。操縦シミュレーション映像生成装置CSは、CG映像重畳装置の一例である。実写映像との差としては、例えば、各CG映像と実写映像との輝度値の差の絶対値の合計値(合計差分値)を用いることができる。なお、実写映像との差として、CG映像と実写映像の輝度値の差の二乗和(残差平方和)などを用いてもよい。
実写映像は、例えば、撮像装置CMを装着したインストラクターがウィンドサーフィンの実機300を操縦して水上を滑走しながら撮像された映像であり、この際のインストラクターの360度の視界を撮像した映像である。ウィンドサーフィンの実機300は、移動機械の実機の一例である。CG映像は、例えば、波頭を模擬した波頭オブジェクトを含む映像である。波頭オブジェクトは、実写映像中の視認しにくい特徴や実写映像中の欠損している特徴を模擬したオブジェクトの一例である。シミュレーション映像は、例えば、波頭オブジェクトを含むCG映像の1つを実写映像に重畳した重畳映像である。
上記構成により、本実施形態に係る操縦シミュレーション映像生成装置CSによれば、波頭を模擬した波頭オブジェクトを実写映像に重畳したシミュレーション映像を生成し、生成したシミュレーション映像をユーザの頭部に装着されるVRHMDなどの表示装置DSに表示させることができる。CG映像を利用することにより、視認性が高い十分な数の波頭オブジェクトを生成することができるため、実写映像中に十分な数の波頭が含まれていない場合や、VRHMDの解像度が低く実写映像中の波頭の視認性が十分でない場合であっても、視認性が高く十分な数の波頭オブジェクトを実写映像中に重畳した映像を表示装置DSに表示させることができる。すなわち、実写映像中の視認しにくい特徴や実写映像中の欠損している特徴が適切に反映されたシミュレーション映像を生成し、表示装置DSに表示することができる。これにより、表示装置DSを装着したシミュレータSSのユーザは、波頭オブジェクトの動きを視認することにより、移動速度を容易に判断することができる。
また、本実施形態では、異なるレンダリング条件で生成された複数のCG映像の中から、合計差分値が最小のCG映像を用いてシミュレーション映像を生成している。合計差分値は、CG映像に含まれる波頭オブジェクトが実写映像中の波頭に近いほど、小さくなる。このため、実写映像中の実際の波頭に近い波頭オブジェクトを含むCG映像を選択することができ、実写映像に波頭オブジェクトを重畳した際のユーザの違和感を軽減することができる。
また、本実施形態では、実写映像においてウィンドサーフィンの実機が映っている領域(第1領域)の輝度値を0にするマスク処理を実写映像とCG映像の両方に行った後で、合計差分値を計算している。実写映像に対してマスク処理を行うことにより、実写映像におけるウィンドサーフィンの実機の影響を無視して、CG映像の波頭オブジェクトと実写映像の波頭との差を精度よく計算することができる。例えば、実写映像に対してマスク処理を行わない場合、実写映像中のウィンドサーフィンのセイルが後方に移動する場面があると、セイルの移動速度に近い波頭オブジェクトを有するCG映像が選択されてしまうことがある。本実施形態によれば、セイルの移動速度の影響を受けずに、実写映像中の実際の波頭に近い波頭オブジェクトを含むCG映像を選択することができる。また、CG映像に対しても同様のマスク処理を行うことにより、ウィンドサーフィンのセイルやボードの手前の位置に生成された波頭オブジェクトが重畳映像中に表示されることを防止することができる。
なお、上記構成は、ウィンドサーフィン以外の移動機械に適用してもよい。例えば、写真撮影用の飛行ドローンが撮影した実写映像に、飛行ドローンの移動速度を判断するためのオブジェクトを含むCG映像を重畳して表示することにより、飛行ドローンの移動速度を容易に判断することができる。
本願の技術的思想は、上述の実施形態および変形例の中で示した処理手順に示された指示をコンピュータに実行させるプログラムに基づいて、コンピュータで実行されることが可能である。また、本願の技術的思想は、ネットワークを通して提供されることが可能なプログラムとして実現されることも可能である。また、本願の技術的思想は、上記プログラムが記録された記録媒体として実現することも可能である。
この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
1…制御部
2…プログラム記憶部
3…データ記憶部
4…入出力I/F部
11…実写映像取得部
12…CG映像生成部
13…輝度差計算部
14…映像重畳部
15…映像出力部
100…サーフィン部
300…実機
101、301…ボード
102、302…マスト
103、303…セイル
200…駆動部
201…アクチュエータ
J…実写映像
401…実機
402…海面
403…空
404…波頭
M…マスク画像
501…第1領域
502…第2領域
S…シミュレーション映像
605…波頭オブジェクト
2…プログラム記憶部
3…データ記憶部
4…入出力I/F部
11…実写映像取得部
12…CG映像生成部
13…輝度差計算部
14…映像重畳部
15…映像出力部
100…サーフィン部
300…実機
101、301…ボード
102、302…マスト
103、303…セイル
200…駆動部
201…アクチュエータ
J…実写映像
401…実機
402…海面
403…空
404…波頭
M…マスク画像
501…第1領域
502…第2領域
S…シミュレーション映像
605…波頭オブジェクト
Claims (4)
- 実写映像を取得する実写映像取得部と、
異なるレンダリング条件を用いて複数のCG映像を生成するCG映像生成部と、
前記CG映像のそれぞれについて、前記実写映像との差を計算する輝度差計算部と、
前記CG映像の中で前記実写映像との差が最も小さいCG映像を前記実写映像に重畳した重畳映像を生成する映像重畳部と、
前記重畳映像を提示する映像提示部と、
を備える、CG映像重畳装置。 - 前記CG映像は、前記実写映像中の視認しにくいまたは欠損している物体を模擬したオブジェクトを含む、
請求項1に記載のCG映像重畳装置。 - 前記実写映像は、移動機械の実機を操縦したときの操縦者の視界を撮像した映像であり、
前記CG映像は、前記実写映像に表示され、前記移動機械の速度判断に用いられる物体を模擬したオブジェクトを含み、
前記重畳映像は、前記移動機械の操縦訓練に用いられる、
請求項2に記載のCG映像重畳装置。 - 前記輝度差計算部は、前記実写映像と前記CG映像のそれぞれに対してマスク処理を実行し、前記マスク処理を実行した前記CG映像のそれぞれについて、前記マスク処理を実行した前記実写映像との輝度値の差の絶対値を計算し、
前記実写映像に対する前記マスク処理は、前記実写映像のうち前記移動機械が映る領域の輝度値を0にする処理であり、
前記CG映像に対する前記マスク処理は、前記CG映像のうち前記領域に対応する位置の輝度値を0にする処理である、
請求項3に記載のCG映像重畳装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2024/015138 WO2025220118A1 (ja) | 2024-04-16 | 2024-04-16 | Cg映像重畳装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2024/015138 WO2025220118A1 (ja) | 2024-04-16 | 2024-04-16 | Cg映像重畳装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025220118A1 true WO2025220118A1 (ja) | 2025-10-23 |
Family
ID=97403081
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/015138 Pending WO2025220118A1 (ja) | 2024-04-16 | 2024-04-16 | Cg映像重畳装置 |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025220118A1 (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06301329A (ja) * | 1993-04-12 | 1994-10-28 | Ishikawajima Harima Heavy Ind Co Ltd | 操船訓練用シミュレータ |
| JPH1097611A (ja) * | 1996-09-24 | 1998-04-14 | Mitsubishi Heavy Ind Ltd | 映像生成方法及び装置 |
| US10235797B1 (en) * | 2017-11-27 | 2019-03-19 | Lowe's Companies, Inc. | Inverse rendering of visual material properties |
-
2024
- 2024-04-16 WO PCT/JP2024/015138 patent/WO2025220118A1/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06301329A (ja) * | 1993-04-12 | 1994-10-28 | Ishikawajima Harima Heavy Ind Co Ltd | 操船訓練用シミュレータ |
| JPH1097611A (ja) * | 1996-09-24 | 1998-04-14 | Mitsubishi Heavy Ind Ltd | 映像生成方法及び装置 |
| US10235797B1 (en) * | 2017-11-27 | 2019-03-19 | Lowe's Companies, Inc. | Inverse rendering of visual material properties |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113467600B (zh) | 基于增强现实的信息显示方法、系统、装置及投影设备 | |
| US12076640B2 (en) | Reality vs virtual reality racing | |
| JP7488925B2 (ja) | 映像生成装置、および、映像生成方法 | |
| CN113467601B (zh) | 基于增强现实的信息显示方法、系统、装置及投影设备 | |
| CN110998672B (zh) | 影像生成装置以及影像生成方法 | |
| JP3786132B2 (ja) | ゲーム画像処理プログラム及び記憶媒体 | |
| CN110574366B (zh) | 影像生成装置 | |
| US20100225761A1 (en) | Maneuvering Assisting Apparatus | |
| US20100007751A1 (en) | Image correction device, method, program, integrated circuit, and system | |
| US20040212630A1 (en) | Method for automatically tracking objects in augmented reality | |
| EP2175636A1 (en) | Method and system for integrating virtual entities within live video | |
| US20070252833A1 (en) | Information processing method and information processing apparatus | |
| CN102665084A (zh) | 周围环境显示装置以及带有这种周围环境显示装置的交通工具和全景图像的显示方法 | |
| EP4050400B1 (en) | Display apparatuses and methods incorporating image masking | |
| KR102419290B1 (ko) | 동영상 데이터에 3차원 가상객체를 합성하는 방법 및 장치 | |
| JPH10320590A (ja) | 合成映像作成装置及び合成映像作成方法 | |
| US20060038817A1 (en) | Method and apparatus for representing a three-dimensional topography | |
| KR100231712B1 (ko) | 무인정찰기 시스템의 운용 방법 | |
| WO2024095356A1 (ja) | グラフィックス生成装置、グラフィックス生成方法及びプログラム | |
| CN112840641A (zh) | 周边监视装置以及周边监视方法 | |
| JP2004294686A (ja) | 操船シミュレータシステム | |
| WO2025220078A1 (ja) | 移動機械シミュレート装置 | |
| JP2005258792A (ja) | 画像生成装置、画像生成方法、および画像生成プログラム | |
| US20250306842A1 (en) | Information processing apparatus, information processing method, and storage medium | |
| JP7261121B2 (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: 24936031 Country of ref document: EP Kind code of ref document: A1 |