WO2017017790A1 - 画像生成装置、画像生成システム及び画像生成方法 - Google Patents
画像生成装置、画像生成システム及び画像生成方法 Download PDFInfo
- Publication number
- WO2017017790A1 WO2017017790A1 PCT/JP2015/071392 JP2015071392W WO2017017790A1 WO 2017017790 A1 WO2017017790 A1 WO 2017017790A1 JP 2015071392 W JP2015071392 W JP 2015071392W WO 2017017790 A1 WO2017017790 A1 WO 2017017790A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- virtual
- image generation
- virtual screen
- camera
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
Definitions
- the present invention relates to an image generation apparatus.
- Patent Document 1 JP-T 2010-53007
- Patent Document 2 JP-A 2007-226580
- JP 2010-531007 A can be used by one system for viewing panoramic images.
- the system is a panorama viewer that receives at least a portion of an image of a first panorama, the panorama viewer providing a viewport, the viewport displaying a portion of the image of the first panorama.
- the viewport includes a three-dimensional covering drawn with the panoramic image.
- the panorama viewer is adapted to match the change in the orientation of the panoramic image in the viewport when the three-dimensional cover is rendered with the panoramic image. Change the orientation of. Is disclosed.
- Japanese Patent Laid-Open No. 2007-226580 discloses an image storage unit that stores two or more background object images and background position information that is information indicating the positions of the background object images in association with each other.
- a position information receiving unit that receives position information indicating the user's line-of-sight direction, an image selecting unit that selects a background object image corresponding to the user position indicated by the position information, and an image selecting unit that is mapped on the inner surface of the three-dimensional cylinder
- An image output apparatus including a rendering unit that generates an output image using position information from the background object image and an output unit that outputs the output image is disclosed.
- a panoramic image is mapped and displayed on a cylindrical virtual screen and used as a background image of a virtual space.
- a panoramic image is displayed at a time, and it is not considered to display a plurality of panoramic images.
- an image generation device that generates an image to be displayed on a display device, and includes a processor that executes a program and a memory that stores the program, and the processor is a three-dimensional model of an object existing in a real space. Is disposed in the virtual three-dimensional space, at least one cylindrical virtual screen including a predetermined photographing position is disposed in the virtual three-dimensional space, and an entire surrounding image photographed from the photographing position is disposed in the at least one An arithmetic process for mapping to one virtual screen is executed, and image data for generating a bird's-eye view of the virtual three-dimensional space in which the three-dimensional model and the at least one virtual screen are arranged is generated.
- 1st Example it is a figure which shows the example which draws the image which the all-surrounding camera image
- 1st Example it is the figure which looked at the real space from the top, and shows the example of the presence position of an operator and equipment.
- 1st Example it is a figure which shows the projection position of the image on a virtual screen.
- embodiments of the present invention described later may be implemented by software running on a general-purpose computer, or may be implemented by dedicated hardware or a combination of software and hardware.
- the process may be described using “program” as a subject, but the program is executed by a processor (for example, CPU: Central Processing Unit), thereby performing a predetermined process as a storage resource (for example, In order to execute processing using a memory), a communication I / F, and a port, the processor may be described as a subject.
- a processor for example, CPU: Central Processing Unit
- the processing described with the program as the subject may be processing performed by a computer having a processor (for example, a calculation host or a storage device).
- the expression “controller” may refer to a processor or a hardware circuit that performs part or all of processing performed by the processor.
- the program may be installed in each computer from a program source (for example, a program distribution server or a computer-readable storage medium).
- the program distribution server includes a CPU and storage resources, and the storage resources further store a distribution program and a program to be distributed.
- the CPU of the program distribution server distributes the distribution target program to other computers.
- the management server has input / output devices.
- input / output devices include a display, a keyboard, and a pointer device, but other devices may be used.
- a serial interface or an Ethernet interface is used as an input / output device, a display computer having a display or a keyboard or a pointer device is connected to the interface, and display information is transmitted to the display computer.
- the display computer may perform the display, or the input may be replaced by the input / output device by receiving the input.
- FIG. 1 is a diagram illustrating a space 100 in which actual work is performed.
- Real space 100 indicates a real space to be expressed.
- cameras 111 to 112 capable of photographing a 360 degree direction, which will be described later, are installed.
- the cameras 111 to 112 are installed on the ceiling of the room constituting the work space 100, but may be installed on the floor or at a predetermined height (for example, 1 meter).
- a door 121 exists in the space 100.
- the door 121 may be a door for entering and exiting a room constituting the work space 100 or an elevator door.
- the facilities 131 to 133 include electronic devices having a function capable of electronically collecting the states of the facilities 131 to 133.
- the equipments 131 to 133 are shelves provided in a warehouse, an operator inputs his / her ID and performs an operation of taking out an article.
- the facilities 131 to 133 are shelves provided in a warehouse, and collect and output the number, weight, and increase / decrease number of articles stored in the shelves.
- the facilities 131 to 133 are factory facilities such as motors, and collect and output the number of operations, the number of revolutions, the applied voltage, the current, and the temperature.
- the facilities 131 to 133 are computers installed in the data center, and collect and output resource usage.
- workers 141 and 142 exist in the space 100.
- FIG. 2 is a diagram showing a virtual space 200 expressed by the computer system of the first embodiment.
- the virtual space 200 shown in FIG. 2 is configured as a 3D model for visually showing the state of the real space 100, and includes a three-dimensional model associated with various objects arranged in the real space, and the tertiary It is constituted by three-dimensional points (x, y, z) where the original model is arranged.
- the three-dimensional object model constituting the virtual space 200 will be described.
- a three-dimensional model corresponding to a fixed facility in the real space 100 is arranged in the virtual space 200.
- the three-dimensional model 221 is displayed at a position corresponding to the door 121, and the three-dimensional models 231 to 233 are displayed at positions corresponding to the equipments 131 to 133, respectively.
- numerical values representing the state of the equipment and character strings 251 to 253 are displayed, respectively.
- the numerical values indicating the states of the facilities 131 to 133 are, for example, the temperature of the equipment, the operation frequency, the remaining amount of resources, and the like.
- shooting points 211 to 212 of the cameras 111 to 112 are displayed, and virtual screens 271 to 272 are displayed around the shooting points 211 to 212.
- an image 241 of the worker 141 captured by the camera 111 is displayed.
- images 241 and 242 of the workers 141 and 142 captured by the camera 112 are displayed, respectively.
- an image 236 of the equipment 131 captured by the camera 112 is displayed on the virtual screen 272.
- FIG. 3 is a block diagram showing a configuration of a computer system that displays a virtual space model of the first embodiment.
- the information of the virtual space 200 is imaged by the image generation device 302 connected to the network 301 and output to the output device 303.
- the output device 303 is a display device or a printer.
- the image generation apparatus 302 is a general-purpose computer that includes a central calculation unit, a memory unit, and an external interface device.
- Databases 304, 305, and 306 are connected to the network 301.
- Databases 304, 305, and 306 are storage areas accessible from devices connected to the network 301.
- the database 304 stores images taken by the cameras at the shooting points 211 to 212.
- the database 305 stores image management information of images taken by the camera.
- the state of the database 306 and the equipments 131 to 133 is stored.
- FIG. 4 is a block diagram illustrating a hardware configuration of the image generation apparatus 302 according to the first embodiment.
- the image generation apparatus 302 includes an arithmetic processing device (CPU) 401 that operates according to a program stored in the main storage device 404, a main storage device 404 that stores a program executed by the arithmetic processing device 401, and a signal from the input device 308.
- An input interface 403 that receives data
- an auxiliary storage device 405 that stores data necessary for operation
- a network interface 402 that controls communication with a network
- an image processing unit 406 that generates an image output from the output device 303.
- the main storage device 404 includes a ROM that is a nonvolatile storage element and a RAM that is a volatile storage element.
- the ROM stores an immutable program (for example, BIOS).
- the RAM is a high-speed and volatile storage element such as a DRAM (Dynamic Random Access Memory), and temporarily stores a program stored in the auxiliary storage device 405 and data used when the program is executed.
- the auxiliary storage device 405 is composed of a large-capacity and nonvolatile storage device such as a magnetic storage device (HDD) or a flash memory (SSD), for example, and is used when executing the program executed by the arithmetic processing unit 401 and the program. Store the data. That is, the program is read from the auxiliary storage device 405, loaded into the main storage device 404, and executed by the arithmetic processing unit 401.
- HDD magnetic storage device
- SSD flash memory
- the image generation process executed by the image processing unit 406 executes a rendering process for calculating a two-dimensional image when viewed from a certain viewpoint position by simulation using a three-dimensional model of a set such as a triangular mesh registered in advance.
- the feature of the present invention is to realize a bird's-eye view display by combining 360-degree images taken by a plurality of cameras 111 to 112 using such a general rendering process.
- the program executed by the arithmetic processing device 401 is provided to the image generation device 302 via a removable medium (CD-ROM, flash memory, etc.) or a network, and is stored in the auxiliary storage device 405 that is a non-temporary storage medium. For this reason, the image generating apparatus 302 may have an interface for reading data from a removable medium.
- the image generation apparatus 302 is a computer system that is physically configured on a single computer or a plurality of logical or physical computers, and the above-described program is a separate thread on the same computer. It may operate, and may operate on a virtual machine constructed on a plurality of physical computer resources. Further, the image generation apparatus 302 and another apparatus may be accommodated in one physical or logical computer. Some of the functions provided by the arithmetic processing unit 401 may be implemented by other logic circuits (for example, FPGA).
- the cameras 111 to 112 installed in the work space 100 are, for example, a network camera that captures a lower surface (a hemispherical surface of 360 degrees in the horizontal direction and 180 degrees in the vertical direction) from the ceiling using a fisheye lens, and images of a plurality of wide angle cameras.
- a network camera that shoots up to 360 degrees (total spherical surface) in combination may be used.
- FIG. 5A is a perspective view of the cameras 111 to 112 according to the first embodiment as viewed from below
- FIG. 5B is a side view of the cameras 111 to 112 according to the first embodiment.
- an omnidirectional camera 501 as shown in FIGS. 5A and 5B can be used.
- the camera 501 is installed on the ceiling, photographs the lower hemisphere (360 degrees in the horizontal direction) on the floor side, stores the image in the database 304, and stores the image management information in the database 305.
- the camera 501 includes a fisheye photographing lens, a CCD element 510, a memory 511 that stores a calibration pattern, a memory unit 512 that stores a camera image, a network connection unit 513, and an arithmetic control unit 514 that controls these. Composed.
- the operation of the camera 501 can be controlled by a still image shooting command and a moving image shooting start command and an end command transmitted via the network.
- Such individual network cameras themselves can be realized by a combination of existing technologies.
- the internal parameters of the camera are calibrated in advance using a predetermined test pattern, and a correspondence table for associating points on the image captured by the camera with points on the image format is stored in the memory 511. ing.
- FIG. 6 shows an example of an image format obtained by photographing a hemisphere.
- the cameras 111 to 112 used in the present invention are not limited to the omnidirectional camera 501 for photographing the hemispherical surface installed on the ceiling shown in FIG. 5 or the image of the format shown in FIG. You may implement
- an image taken by the all-around camera is displayed on a cylindrical virtual screen.
- the cylindrical virtual screen can adopt various shapes, for example, cylindrical shapes 271 and 272 shown in FIG.
- the point 211 on the virtual space corresponding to the shooting position of the camera 111 is referred to as a shooting point (x c , y c , z c ).
- the virtual screen is arranged so as to surround the photographing point (x c , y c , z c ).
- FIG. 7A is a diagram illustrating an example in which the virtual screen 272 is configured in a cylindrical shape and an image taken by the all-around camera is drawn inside the virtual screen 272 in the first embodiment.
- the image to be drawn is mapped to the inner surface of the cylinder and is not drawn on the outer and upper surfaces of the cylinder.
- An image may be drawn on the bottom surface of the cylinder.
- this cylindrical geometric shape is approximated by a hexagonal cylinder shape and is represented by a triangular mesh, and an image is linearly interpolated within each triangular mesh to render the image with less distortion.
- the cylindrical surface is represented by a set of points (x, y, z) represented by Expression (2) and Expression (3).
- h is the height of the cylinder and r is the radius of the cylinder.
- a relative positional shift amount from (x c , y c , z c ) to a point 701 (x, y, z) on the cylindrical surface is represented by (x 0 , y 0 , z 0 ).
- the radius r of the cylinder is associated with the image direction ( ⁇ , ⁇ ) of the 360-degree camera as follows. Note that the vertical angle around the shooting point is defined as ⁇ , and the horizontal angle as ⁇ .
- the cylindrical virtual screen shown in FIG. 7A is effective when the positions of people and equipment are not known because the image of the entire circumference is displayed equally.
- the virtual screen may include the floor surface 750 and a part of the image may be projected onto the floor surface 750.
- a relative angle ( ⁇ , ⁇ ) from the three-dimensional shooting point is a necessary condition. Therefore, a line extending in the direction of the angle ( ⁇ , ⁇ ) from the shooting point 212 and the floor surface 750 What is necessary is just to project an image on the intersection 702 of the two.
- the range projected on the floor surface 750 in the entire surrounding image is determined by the size of the virtual screen.
- the size of the virtual screen may be set so that the range of ⁇ ⁇ 30 ° in FIG. 6 is projected onto the bottom surface (floor surface 750) of the cylinder.
- the virtual screen may be composed only of the floor surface 750, and the entire image may be projected onto the floor surface 750.
- the image may be projected onto the intersection 702 between the line 750 extending from the photographing point 212 in the direction of the angle ( ⁇ , ⁇ ) and the floor surface 750. Since the image projected on the floor surface 750 spreads over a wide range, it is preferable to define a circle with a predetermined radius on the floor surface 750 and project the image in that range.
- the virtual screen may be a cylinder other than a cylinder and having a polygonal bottom surface.
- FIG. 7B shows an example in which the virtual screen 273 is configured in a cylindrical shape in which a part of the side surface of the cylinder is a flat surface 273A in the first embodiment, and an image captured by the all-around camera is drawn inside the virtual screen 273.
- FIG. The image to be drawn is mapped to the inner surface of the cylinder and is not drawn on the outer and upper surfaces of the cylinder.
- An image may be drawn on the bottom surface of the cylinder.
- the virtual screen 273 shown in FIG. 7B is represented by a triangular mesh by approximating a cylindrical geometric shape with a hexagonal cylindrical shape, and linearly interpolates an image within each triangular mesh. And drawing so as to reduce the distortion of the image. Then, based on the same correspondence relationship as the virtual screen 272 shown in FIG. 7A, a cylindrical virtual screen on which an image taken by the camera 112 at the shooting point 212 is projected can be created by performing texture mapping processing. it can.
- the virtual screen 273 is arranged so that the plane portion 273A is located at the place where the person or equipment exists. Then, the image is projected so as to be mapped to the intersection 711 between the line extending from the photographing point 212 in the direction of the angle ( ⁇ , ⁇ ) and the plane portion 273A. Therefore, the image 731 of the worker 143 is drawn on the flat portion 273A of the virtual screen 273, and the image 732 of the facility 134 is drawn on the flat portion 273A of the virtual screen 273.
- a virtual screen plane may be configured at the facility existing in the real space 100 and the position of the operator of the facility. This means that in the plane portion of the virtual screen, the correct size of the object (person or equipment) existing at that position is known and displayed at the position of the floor surface 750 (displayed at a position floating from the floor surface 750). Because there is no).
- the projection position of the image on the virtual screen will be described with reference to FIG. 7D.
- the image 741 of the worker 144 is displayed small on the screen.
- the image 742 of the worker 145 is displayed at substantially the same scale as the surrounding 3D model.
- the surface of the virtual screen is set to an appropriate size by setting the surface of the virtual screen so that it passes through the position of the display target. Can see.
- FIG. 7B shows a cylindrical virtual screen in which one side surface is a plane, but two or more side surfaces of the virtual screen may be a plane. Further, all of the side surfaces of the virtual screen may be constituted by a plurality of planes.
- FIGS. 8 and 9 are processes that are repeatedly executed at a predetermined timing.
- the cameras 111 to 112 are repeatedly photographed at a predetermined timing (for example, periodically) to photograph images.
- the cameras 111 to 112 determine a shooting trigger at a predetermined timing (for example, a predetermined time interval) (step 802).
- the shooting trigger is a time-up of a predetermined time measured by a timer, a shooting command input from the outside, or the like.
- the image generating apparatus 302 transmits a shooting command to the designated cameras 111 to 112 by operating the marker 1805 shown in FIG.
- the trigger is a shooting trigger
- an image is shot, and the shot image is stored in the internal memory (step 803).
- the photographed image is converted into a predetermined format (for example, the format shown in FIG. 6) using the calibration table (step 804), and the converted image is encoded and compressed (step 805).
- the encoded image is stored in the database 304 (step 806).
- image management information such as the ID number of the photographed camera and the photographing time is registered in the database 305 (step 807).
- FIG. 12 is a diagram illustrating an example of image management information according to the first embodiment.
- the image management information of the first embodiment includes identification information 1201 for uniquely identifying a camera, the date and time 1202 when the image was taken, and a file name 1203 stored in the database 304.
- the equipments 131 to 133 are repeated at a predetermined timing (for example, periodically), and the status of each equipment is output.
- the equipment 131 to 133 determines a reading trigger at a predetermined timing (for example, a predetermined time interval) (step 902).
- the read trigger is a predetermined time measured by the timer, a read command input from the outside, or the like.
- the image generating apparatus 302 transmits a reading command to the designated equipment 131 to 133.
- the state of the equipment 131 to 133 is acquired (step 903), and the acquired value is stored in the database 306 via the network (step 904).
- the state stored in the database 306 can be defined in various ways depending on the type and configuration of equipment. For example, the number, weight, increase / decrease number of articles accommodated on the shelf, the number of times of operation of the equipment, the number of users per fixed time, the remaining capacity of the battery, the temperature of the equipment, and the like.
- FIG. 10 is a flowchart of the information display routine of the first embodiment.
- the captured camera image and the state of the device are projected onto a 3D map to create an image.
- the image generating apparatus 302 executes an initialization process for reading a 3D image control program and information stored in advance in the auxiliary storage device 405 (step 1001).
- the image generation apparatus 302 accesses the database 305 via the network 301 and acquires camera arrangement information (step 1101).
- a structural example of the camera arrangement information is shown in FIG. 13A.
- the camera arrangement information includes identification information 1301 for uniquely identifying each camera 111 to 112, information 1302 on a position where the cameras 111 to 112 are installed, and a virtual screen on which images taken by the cameras 111 to 112 are projected. , A virtual screen size 1304 and height 1305 onto which an image is projected, and an address 1306 for accessing the cameras 111-112.
- the address 1306 may describe a URL for access.
- the image generation apparatus 302 accesses the database 306 via the network 301 and acquires facility arrangement information (step 1102).
- a structural example of the camera arrangement information is shown in FIG. 13B.
- the facility arrangement information includes identification information 1311 for uniquely identifying each facility 131 to 133, information 1312 of the position where the facilities 131 to 133 are installed, the shape 1313 of the facilities 131 to 133, and the facilities 131 to 133. And an address 1314 for access.
- the address 1314 may describe a URL for access.
- an image periodic update process is performed.
- data input to the input device 308 is received (step 1002)
- the viewpoint position for observing the virtual space is corrected according to the received data
- start point information is created (step 1003).
- step 1003 determines the position and orientation of the viewpoint to observe the three-dimensional model in the virtual space, 4 ⁇ projecting the three-dimensional point p 3 in the virtual space to a point p 2 on a two-dimensional screen 4 Sets the dimensional transformation matrix.
- a view matrix V for converting to a three-dimensional coordinate system centered on the position and angle of the viewpoint and a projection matrix P for converting the three-dimensional coordinate system to a two-dimensional coordinate system
- P and V are each a 4 ⁇ 4 transformation matrix
- p 3 is a four-dimensional vector representing a three-dimensional point in a cubic coordinate representation
- p 2 is a cubic coordinate representation of a position on a two-dimensional image. Is a four-dimensional vector.
- a method widely used in existing technologies such as OpenGL can be used.
- a two-dimensional image area for image display is secured in the main storage device 404, and the secured two-dimensional image area is initialized (step 1004).
- the two-dimensional image stored in the two-dimensional image area is configured by a two-dimensional array called pixels, and each pixel has color information (for example, three colors of RGB).
- step 1005 information output from each device is acquired (step 1005). Specifically, a character string (for example, a numerical value) associated with each facility 131 to 133 is read from the database 306.
- a character string for example, a numerical value
- the color of the corresponding object is changed, and the three-dimensional models 231 to 233 are drawn (step 1006).
- the three-dimensional model is drawn in red if the read numerical value is larger than the predetermined threshold value 1, green if it is smaller than the threshold value 2, and yellow if it is between the threshold value 1 and the threshold value 2.
- the three-dimensional model is represented by a rectangular parallelepiped, and the rectangular parallelepiped is stored in the two-dimensional image area of the main memory 404 as a data structure of a set of triangles. This data structure is constituted by triangular vertex data and order data connecting three vertices constituting each surface. Each vertex of the triangle is converted into a point on the two-dimensional image using Expression (7), and the triangle connecting the vertices is painted with a color determined as the color of the three-dimensional model.
- the color information may be shaded according to a specific light source condition or may be applied with a translucent process for blending with the already drawn background.
- a method widely used by existing technologies such as OpenGL can be used as a method of applying such a shadow or making it translucent.
- character strings 251 to 253 read from the database 306 are drawn at positions near the three-dimensional models 231 to 233.
- the drawn character string is referred to as a text caption.
- images taken by the cameras 111 to 112 are acquired (step 1007).
- the database 305 is searched, images taken by the cameras 111 to 112 are searched, and the file name 1203 of the image having the latest shooting time 1202 is acquired.
- the acquired image with the file name is read from the database 304 and expanded in the main storage device 404 so that it can be referred to as a texture image.
- the three-dimensional model is drawn on the virtual screen (step 1008).
- the virtual screen is represented by a planar shape of the floor surface 750 and a cylindrical shape 700.
- the floor surface 750 and the cylindrical shape 700 are stored in the two-dimensional image area of the main memory 404 as a data structure of a set of triangles.
- This data structure is composed of triangular vertex data, order data connecting the three vertices constituting each face, and texture mapping data indicating the correspondence between each vertex and the texture image.
- Each vertex of the triangle is converted into a point on the two-dimensional image using equation (7), and the triangle connecting the vertices is painted with the specified texture.
- a process generally used as a rasterization process of the scan line method can be used for the process of filling the triangular mesh area with reference to the color information of the texture. That is, a pixel existing inside a triangle connecting three points in which each vertex of the triangle is converted on the two-dimensional image is selected, and the texture coordinates of the selected pixel are obtained by linear interpolation of the texture coordinates of the three points. . The interpolated texture coordinate position color is set to the color of the pixel. Repeat this process for all triangles.
- the color information may be shaded according to a specific light source condition or may be applied with a translucent process for blending with the already drawn background.
- a method widely used by existing technologies such as OpenGL can be used as a method of applying such a shadow or making it translucent.
- the front and back surfaces may be separated from the direction of the triangle, and display may be performed with different transparency or not.
- an image is drawn inside the cylinder, and no image is drawn outside the cylinder.
- the image is converted nonlinearly. For this reason, in order to improve the calculation accuracy of the texture coordinates by the linear interpolation process, it is preferable to hold a three-dimensional model that is more finely decomposed than the triangulation used for normal rendering.
- step 1006 and the image drawn in step 1008 are output to the output device 303 (step 1009).
- steps 1002 to 1009 the user can check and confirm a plurality of all-around images arranged on the three-dimensional map.
- the image generation apparatus 302 arranges a three-dimensional model of an object existing in the real space 100 in the virtual three-dimensional space 200, and takes an image from a predetermined shooting position.
- the entire surrounding image can be mapped to the virtual screen with little distortion.
- Example 2 As a second embodiment, a calculation method for arranging a cylindrical virtual screen will be described. In the second embodiment, only configurations and processes different from those in the first embodiment will be described, and descriptions of the same configurations and processes will be omitted.
- FIG. 14A and FIG. 14B are diagrams showing the arrangement of cameras that capture all-around images and the arrangement of virtual screens.
- step 1401 when virtual screens are arranged in an overcrowded manner (step 1401), the cylinders overlap each other and are difficult to see.
- step 1402 when some of the cameras are hidden, the virtual screen is thinned and arranged (step 1402).
- an appropriate number of cameras are selected from a set of pre-registered camera positions to be represented on the virtual screen, and the cylindrical radius of the virtual screen is automatically calculated. A method will be described.
- each camera 501 has a function of recognizing its own position and a network connection unit 513 for accessing the database 305.
- the function of recognizing its own position can use an existing method using GPS or a signal from a WiFi access point or beacon. A method of manually inputting the position of the camera 501 may be used.
- initial setting is performed for each camera.
- the camera acquires its own position information using GPS, accesses the database 305 via the network 301, and acquires position information, a unique ID of the camera, and an address for access from the network. Store in the database 305.
- the image generating apparatus 302 reads camera settings from the database 305 in the initialization process (step 1001).
- the position and size data of the cylinder representing the entire peripheral image is manually created by the user and registered in advance in the auxiliary storage device 405.
- a camera displaying an image is selected from the cameras 501 registered in the database 305 by the process shown in the flowchart of FIG. 16, and the radius of the cylinder displayed as a virtual screen is adjusted.
- the process will be described in detail.
- position information of each camera is acquired from the database 305 (step 1601), and a data structure 1700 shown in FIG. 17 is created (step 1602).
- the data structure 1700 includes identification information 1701 for identifying the camera as a position, a camera position 1702, and Voronoi area information 1703 with the camera position as a Voronoi point.
- the Voronoi region is described as an array of vertices, and is defined so that the camera is the closest camera from the points included in the region connecting the vertices.
- the data structure 1700 also includes a flag 1704 that indicates whether the camera is used for displaying the initial state. That is, when the camera is used for displaying the initial state, True is set in the flag 1704. On the other hand, when the camera is not used for displaying the initial state, False is set in the flag 1704. The initial state of the flag 1704 is True.
- the radius 1705 stores a value R1 determined in advance as an initial value.
- a Voronoi diagram is created in which the point where the flag 1704 is True is the Voronoi point (step 1603).
- the distance to the point closest to the Voronoi point on the Voronoi boundary is calculated for the Voronoi region of each camera, and the value is stored in the radius 1705 (step 1604).
- step 1605 the one having the smallest radius 1705 is selected (step 1605). If the radius value is smaller than the threshold value R1 stored in advance as a constant (YES in step 1606), the flag 1704 is set to False to make the camera invisible (step 1607). Then, a Voronoi diagram is re-created for the camera whose flag 1704 is True, and steps 1603 to 1606 are repeated. If the radii of all cameras have become larger than the initial value R1 (NO in step 1606), the process proceeds to step 1608.
- a parent camera is set for a non-display camera whose flag 1704 is set to False (step 1608).
- Identification information of the camera forming the Voronoi region including the installation position of the non-display camera is stored in the parent camera 1706. Further, the identification information of the camera is stored in the child camera 1707 of the data of the camera selected as the parent camera.
- radius 1705 of the camera to be hidden may be set to 0 without using the flag 1704.
- the cameras are arranged so that the Voronoi area becomes a certain size or larger as shown in FIG. 15B without overlapping virtual screens as shown in FIG. 15A. can do. Then, by using the value stored in the radius 1705 as the radius value of the virtual screen, it is possible to avoid duplication of virtual screens.
- the image generation apparatus 302 arranges the virtual screens having a cylindrical shape with a radius that does not overlap the virtual screens in the virtual three-dimensional space.
- the all-around images mapped to can be displayed easily without overlapping.
- Example 3 In the third embodiment, user interaction using a three-dimensional marker arranged at a shooting position of a camera will be described.
- the system of the third embodiment can change the viewpoint position for drawing the three-dimensional model, deform the virtual screen that projects the all-around image, and select the all-around image.
- only configurations and processes different from those of the above-described embodiments will be described, and descriptions of the same configurations and processes will be omitted.
- the hardware configuration of the third embodiment is the same as that of the first embodiment (FIGS. 1 and 3).
- a general pointing device such as a mouse is used as the input device 308 to the image generation apparatus 302.
- an operating system provides means for executing a callback subroutine registered by an application by detecting an operation such as clicking or dragging for specifying a position in an image.
- a known method can be used as means for realizing this callback.
- a known method is used for processing from detection of dragging by the mouse to calling of the callback function.
- a procedure for setting the position and angle of a virtual viewpoint for observing the virtual space 200 will be described.
- a method called a target camera is used, which is defined by three-dimensional coordinates U1 that is the center of the visual field (position of the subject) and three-dimensional coordinates U2 that is the position of the viewpoint (camera).
- a translation matrix T centered on U2 and a rotation matrix R that sets the direction from U1 to U2 as the camera viewing direction (Z-axis) are defined.
- Such a viewpoint position setting method is a method generally used as a target camera.
- U1 is referred to as an attention point and U2 is referred to as a virtual viewpoint.
- between U2 and U1 is referred to as a target camera distance d.
- a generally used method can be adopted.
- FIG. 18 is a diagram illustrating an example of user interaction displayed on the cylindrical virtual screen 272 in the third embodiment.
- the marker 1801 is placed at the camera shooting position on the virtual screen 272, and the markers 1802-1805 are placed around it. Further, the child camera 1707 set to non-display by the operation of the second embodiment is selected, and the markers 1810 to 1812 are arranged at the installation location 1702 of the child camera.
- the target camera distance d is changed.
- the movement of the camera at the target camera distance d may be displayed by an animation in which images are continuously changed.
- the angle of view of the screen and the angle of view of the camera are almost equal, so that the image is equivalent to an image obtained by cutting out a part of the entire surrounding image.
- ⁇ Screen size adjustment> When a drag operation starting from the marker 1803 is detected, the radius of the corresponding virtual screen is changed. For example, when a drag operation for A pixels is detected in the upward direction, the display radius r of the virtual screen 272 is changed to r ⁇ (100 + A) / 100.
- ⁇ Change in screen shape> When the operation of the marker 1804 is detected, the virtual screen 272 is changed to a quadrangular prism. Note that a sub-screen for selecting the shape of the virtual screen after the change may be displayed after operating the marker 1804.
- the image generation apparatus 302 transmits a shooting command to the designated cameras 111 to 112.
- the cameras 111 to 112 take an image, and store the image in the database 304 after a predetermined process.
- the image generation apparatus 302 can display the latest image on the virtual screen 272 by acquiring the image stored in the database 304 in which the shooting command is designated.
- a reading command for the equipments 131 to 133 may be transmitted in addition to a shooting command for the cameras 111 to 112.
- the markers 1810 to 1803 may be arranged at the installation locations of the child cameras set to non-display by the operation of the second embodiment.
- the virtual screen 272 is displayed around the position of the selected child camera, and an all-around image captured by the selected child camera is drawn on the virtual screen 272.
- the image drawn on the virtual screen can be changed by the callback function by operating the marker.
- the image generation device 302 generates image data for displaying at least one marker in the virtual three-dimensional space near the shooting position, When the operation of the marker is detected, the shape of the virtual screen or the omnidirectional image mapped on the virtual screen is changed, so that the image that the user wants to see can be displayed according to the user's operation.
- the marker is the marker 1801 operated to change to the all-around image at a different shooting position
- the all-around image viewed from a different position can be displayed.
- the marker is a marker 1802 that is operated to change the viewpoint distance of the virtual three-dimensional space
- the marker is a marker 1803 that is operated to change the size of the virtual screen
- the entire surrounding image can be displayed in different sizes.
- the marker is a marker 1804 that is operated to change the shape of the virtual screen, it is possible to display an omnidirectional image for gazing at different positions.
- the marker is a marker 1805 operated to update the all-around image to the latest image, the latest image can be displayed.
- Example 4 a method will be described in which a viewer interacts with a display marker on a three-dimensional map to operate a photographing device for all-around images existing in the real space 100.
- a method will be described in which a viewer interacts with a display marker on a three-dimensional map to operate a photographing device for all-around images existing in the real space 100.
- only configurations and processes different from those of the above-described embodiments will be described, and descriptions of the same configurations and processes will be omitted.
- FIG. 19 is a diagram showing a configuration of a camera 2001 used in the fourth embodiment.
- the camera 2001 includes a wheel 1911, a power transmission mechanism 1912, and a motor 1913 in addition to the configuration of the camera shown in FIGS. 5A and 5B, and is driven by the motor 1913 to rotate the wheel 1911. It has a function of moving along 1920.
- the arithmetic control unit 514 can drive the motor 1913 by controlling the voltage or current via the motor control unit 1914.
- FIG. 20A is a diagram showing the work space 100 of the fourth embodiment.
- the movable range of the camera 2001 depends on the rail 1920.
- FIG. 21 is a diagram showing a data structure 2100 for storing a route through which the camera can move.
- the data structure 2100 includes identification information 2101 for uniquely identifying a camera, a camera position (movement destination) 2102, and a driving amount 2103 of a motor 1913 for moving from a predetermined starting point to the position.
- Each data of the data structure 2100 corresponds to a passing point of the rail 1920 on which the camera 2001 identified by the identification information 2101 is installed.
- the data structure 2100 is preferably registered in the database 305 and can be acquired by specifying the value of the camera ID 2101.
- the camera 2001 has a function of receiving and operating a movement command or a shooting command via the network 301.
- the camera 2001 has a unique IP address.
- the motor 1913 is driven by a predetermined amount, and a response message is returned to the message transmission source.
- the camera 2001 is an example of a movable camera, and may be a camera that does not move along the rail and that runs on the floor surface. Such a camera moving mechanism can be implemented by a combination of existing technologies.
- the image generation apparatus 302 also acquires information on the current location of the camera 2001 and information 2100 on a movable route. Then, as shown in FIG. 20B, using this information, a trajectory 2020 to which the camera 2001 can move is drawn on the screen (step 1006).
- FIG. 20B shows a display example of the virtual space 200 expressed by the system of the second embodiment.
- the user designates markers 2021 to 2029 indicating points on a path along which the camera 2001 can move by operating the mouse, a message for instructing camera movement and shooting is transmitted to the camera 2001.
- the camera 2001 moves to the designated location, captures surrounding images, and stores them in the database 305.
- the entire surrounding image may be taken while the camera 2001 is moving.
- a marker may be displayed at a position where the entire surrounding image is captured.
- FIG. 22 is a flowchart of the movement and shooting process of the camera 2001.
- the image generation device 302 senses the selection of a passing point (marker) (step 2201), the data of the passing point represented by the selected marker is read from the data structure 2100 (step 2202), and the driving amount 2103 acquired from the data structure 2100 is read. Is transmitted to the camera 2001 to instruct the camera to move (step 2203).
- the camera 2001 drives the motor (step 2211), moves to the position of the selected marker, captures the surrounding image, and stores the captured image in the database 305 (step 2212). .
- the compression of the image after shooting and the registration to the database are the same as steps 802 to 807 in the first embodiment.
- a photographing end message is transmitted to the image generating apparatus 302 (step 2213).
- the image generation apparatus 302 When the image generation apparatus 302 receives the shooting end message (step 2204), it reads the image from the database 305, moves the virtual screen to a new shooting position, and displays the image (step 2205).
- the image management information stored in the database 305 includes the camera position and shooting time.
- the latest image taken at the selected marker position (or the closest position) is searched from the database 305, the searched image is acquired from the database 304, and the acquired image is acquired. May be displayed on a virtual screen.
- a new virtual screen centered on the position of the selected marker may be displayed.
- the viewpoint may be moved to the position of the selected marker.
- an image captured at the time (or closest time) input by the user is searched from the database 305, the searched image is acquired from the database 304, and the acquired image is displayed on the virtual screen corresponding to the shooting position. It may be displayed. At this time, a virtual screen corresponding to the shooting position may be newly displayed. Furthermore, the viewpoint may be moved to the center of the virtual screen corresponding to the shooting position.
- the image generation apparatus 302 acquires the all-around image captured at the time designated by the user from the database 304 and maps the acquired all-around image on the virtual screen, so that the image at the time that the user wants to view is displayed. can do.
- the image generation apparatus 302 when the image generation device 302 detects selection of a position in the virtual three-dimensional space, the image generation apparatus 302 generates a virtual screen that includes the selected position, maps the entire surrounding image to the generated virtual screen, and is generated. Since the virtual screen is arranged in the virtual three-dimensional space, it is possible to display the current image at the position that the user wants to see.
- the image generation device 302 generates image data for displaying markers 2021 to 2029 for instructing movement of the camera 2001 in the virtual three-dimensional space, and when the selection of the markers 2021 to 2029 is detected, Since the movement command and the imaging command are transmitted to 2001, the camera can be moved according to the user's intention.
- Example 5 a method for displaying the three-dimensional model displayed in the virtual space 200 in association with the image displayed on the virtual screen in the virtual space 200 will be described.
- the fifth embodiment only configurations and processes different from those of the above-described embodiments will be described, and descriptions of the same configurations and processes will be omitted.
- the states of the equipments 131 to 133 existing in the real space 100 are displayed by the color of the three-dimensional model drawn in the virtual space 200 and the text caption.
- the positions of the three-dimensional models 231 to 233 drawn in the virtual space 200 and the positions of the images of the all-around image drawn on the virtual screen are usually different.
- the shooting position and the shooting position of the image drawn on the virtual screen are equal, they coincide.
- the same three-dimensional model 2301 as the specific three-dimensional model 231 in the virtual space 200 is placed at the position where the image of the facility is drawn in the virtual screen 272.
- the hardware configuration of the fifth embodiment is the same as that of the first embodiment (FIGS. 1 and 3).
- FIG. 24 is a flowchart of the information display routine of the fifth embodiment.
- step 2406 the process of drawing the three-dimensional model and device information (step 2406) is different from the first embodiment.
- step 2406 the three-dimensional model of the facility is drawn in the virtual space 200 as in the first embodiment (step 2412), and is also drawn in the virtual screen 272 (step 2415).
- the image generation apparatus 302 determines whether there is any unprocessed facility among the facilities included in the virtual space 200 (step 2411). Then, one unprocessed facility is selected, and a three-dimensional model of the selected facility is drawn in the virtual space 200 (step 2412).
- the selected equipment is equipment that should be displayed on the virtual screen closest to the shooting position (step 2413). For example, it may be determined whether the size of the facility displayed on the virtual screen is a predetermined value or more.
- the database 305 is accessed to obtain the camera arrangement information (FIG. 13A), and the virtual screen information to be processed is extracted (step 2414). .
- a virtual screen closest to the viewpoint in front (viewing direction) from the viewpoint is selected as a virtual screen to be processed.
- the designated virtual screen may be selected by operating the marker 1801.
- a three-dimensional model of the equipment is drawn on the virtual screen (step 2415).
- a straight line 2320 connecting the two three-dimensional models is drawn (step 2416). Specifically, a line segment connecting each vertex coordinate p of the three-dimensional model 231 and the vertex coordinate p ′ of the three-dimensional model 2301 is drawn.
- An object in the virtual space 200 and an object displayed on the virtual screen 272 can be easily associated with each other in a bird's-eye view state by a line segment connecting two three-dimensional models.
- the line segment connecting these two 3D models may connect all or part of the vertices of the two 3D models.
- the line segment connecting the two three-dimensional models is optional and may not be displayed. Further, the line segments connecting the two three-dimensional models may be displayed as many as the screen does not become complicated even if not all the facilities are displayed. Furthermore, a line segment connecting two three-dimensional models may not be normally drawn, but may be drawn when the user selects equipment (for example, when the mouse is turned on to the three-dimensional model).
- FIG. 23B shows an example in which a three-dimensional model of equipment is drawn on the virtual screen.
- the data structure of the three-dimensional model 231 is the triangle vertex data and the three vertices constituting each surface, as in the first embodiment. And order data connecting the two.
- the region 2320 whose distance from the photographing point 212 at the center of the cylinder constituting the virtual screen 272 is r 1 to r 2 is converted into a region 2330 near the cylinder inside the cylindrical surface.
- the region 2330 defines a region whose distance from the center of the cylinder is r 1 ′ to r 2 ′
- from the shooting point can be converted by the equation (9).
- a three-dimensional model 2301 having a vertex p ′ obtained by converting each vertex p of the three-dimensional model 231 is drawn.
- the 3D model 2301 on the virtual screen 272 is drawn in a narrow area 2330 on the inner surface of the cylindrical shape.
- the image 236 of the entire surrounding image and the three-dimensional model 2301 appear to overlap each other. That is, an object photographed as an all-around image mapped on the virtual screen 272 and a three-dimensional model of the object are displayed in a superimposed manner. Further, when the region 2330 is sufficiently small, the three-dimensional model appears to be superimposed when viewed from a place other than the shooting point 212.
- the image generation apparatus 302 maps the three-dimensional model of the object existing in the real space 100 to the position where the object is displayed on the virtual screen. Since the omnidirectional image 236 and the three-dimensional model 2301 are superimposed and displayed on the virtual screen, a plurality of omnidirectional images can be grasped in the overhead view.
- the image generation device 302 displays a line segment that associates the three-dimensional model arranged in the virtual three-dimensional space 200 with the three-dimensional model mapped on the virtual screen.
- the object displayed on the screen 272 can be easily related even in an overhead view.
- the present invention is not limited to the above-described embodiments, and includes various modifications and equivalent configurations within the scope of the appended claims.
- the above-described embodiments have been described in detail for easy understanding of the present invention, and the present invention is not necessarily limited to those having all the configurations described.
- a part of the configuration of one embodiment may be replaced with the configuration of another embodiment.
- another configuration may be added, deleted, or replaced.
- each of the above-described configurations, functions, processing units, processing means, etc. may be realized in hardware by designing a part or all of them, for example, with an integrated circuit, and the processor realizes each function. It may be realized by software by interpreting and executing the program to be executed.
- Information such as programs, tables, and files that realize each function can be stored in a storage device such as a memory, a hard disk, and an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, and a DVD.
- a storage device such as a memory, a hard disk, and an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, and a DVD.
- control lines and information lines indicate what is considered necessary for the explanation, and do not necessarily indicate all control lines and information lines necessary for mounting. In practice, it can be considered that almost all the components are connected to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Architecture (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
Abstract
表示装置に表示される画像を生成する画像生成装置であって、プログラムを実行するプロセッサと、前記プログラムを格納するメモリとを備え、前記プロセッサは、現実空間に存在する物体の三次元モデルを仮想三次元空間に配置し、所定の撮影位置を包含する筒型の少なくとも一つの仮想スクリーンを前記仮想三次元空間に配置し、及び、前記撮影位置から撮影された全周囲画像を前記少なくとも一つの仮想スクリーンにマッピングする演算処理を実行し、前記三次元モデル及び前記少なくとも一つの仮想スクリーンが配置された前記仮想三次元空間を俯瞰して表示するための画像データを生成する。
Description
本発明は、画像生成装置に関する。
この技術分野の背景技術として、特表2010-531007号公報(特許文献1)及び特開2007-226580号公報(特許文献2)がある。
特表2010-531007号公報は、一システムが、パノラマのイメージを閲覧するために用いられ得る。該システムは、第1のパノラマのイメージの少なくとも一部を受け取るパノラマビューアであって、該パノラマビューアは、ビューポートを与え、該ビューポートは、該第1のパノラマのイメージの一部を表示する、パノラマビューアを含む。該ビューポートは、該パノラマのイメージと共に描画される3次元の覆いを含む。該パノラマビューアは、該パノラマのイメージと共に該3次元の覆いが描画される場合、該ビューポート内の該パノラマのイメージの向きにおける変更と一致するように、3次元の空間において該3次元の覆いの向きを変更する。ことが開示される。
また、特開2007-226580号公報は、2以上の背景オブジェクト画像と、その背景オブジェクト画像の位置を示す情報である背景位置情報とが対応付けられて記憶される画像記憶部、ユーザの位置及びユーザの視線方向を示す位置情報を受け付ける位置情報受付部、位置情報の示すユーザの位置に対応する背景オブジェクト画像を選択する画像選択部、3次元円筒の内面にマッピングされた、画像選択部が選択した背景オブジェクト画像から、位置情報を用いて出力画像を生成するレンダリング部、出力画像を出力する出力部を備える画像出力装置を開示する。
一つ又は複数のカメラによって全周囲を撮影する技術がある。しかし、全周囲の方向を撮影した画像はひずみが大きく違和感を与えるため、その提示方法は、通常のカメラの画像を表示するときのように自明ではない。多くの場合には、特許文献1のように全周囲画像の一部分を切り出した画像が用いられる。このような表示では、特に複数の位置で全周囲画像を撮影している場合、それぞれの画像に映っている物体の位置関係の把握は著しく困難となる。一方、複数の画像から完全な三次元モデルを再構築するためには、大量の画像や奥行き情報が必要であり、完成した画像にも十分な再現精度が得られないことが多い。そのため、各物体の三次元的な位置と、全周囲画像によって得られる視覚情報の対応付けを自然に与え、俯瞰的に状況を理解させる実用的な表示手段の確立が課題であった。
前述した特表2010-531007号公報に開示されたシステムでは、地図位置に関連付けて、撮影された全周囲画像の一部を表示するが、地図と写真とは別ウィンドウに表示され、地図で示されている位置と写真における視点位置との関係が分かりにくい。また、複数の地点で撮影された全周囲画像を併せて表示すると、画像と地図や、画像間の関係の直感的な把握が難しくなる。
また、特開2007-226580号公報に開示された装置では、円筒状の仮想スクリーンにパノラマ画像をマッピングして表示し、仮想空間の背景画像として使用する。しかし、一度に一枚のパノラマ画像だけを表示するものであり、複数のパノラマ画像を表示することは考慮されていない。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、表示装置に表示される画像を生成する画像生成装置であって、プログラムを実行するプロセッサと、前記プログラムを格納するメモリとを備え、前記プロセッサは、現実空間に存在する物体の三次元モデルを仮想三次元空間に配置し、所定の撮影位置を包含する筒型の少なくとも一つの仮想スクリーンを前記仮想三次元空間に配置し、及び、前記撮影位置から撮影された全周囲画像を前記少なくとも一つの仮想スクリーンにマッピングする演算処理を実行し、前記三次元モデル及び前記少なくとも一つの仮想スクリーンが配置された前記仮想三次元空間を俯瞰して表示するための画像データを生成する。
本発明の一形態によれば、全周囲画像を仮想三次元空間に分かりやすく配置することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
以下、図面を用いて実施例を説明する。
なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、実施例の中で説明されている要素の組み合わせの全てが発明の解決手段に必須であるとは限らない。また、以下の説明では、「xxxテーブル」、「xxxリスト」、「xxxDB」、「xxxキュー」等の表現で各種の情報を説明することがあるが、各種情報はテーブル、リスト、DB、キュー、等以外のデータ構造で表現されていてもよい。そのため、データ構造に依存しないことを示すため、「xxxのテーブル」、「xxxリスト」、「xxxDB」、「xxxキュー」等を「xxx情報」と称することがある。
さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。
さらに、後述する本発明の実施例は、汎用コンピュータ上で稼動するソフトウェアで実装してもよいし、専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装してもよい。
さらに、以下の説明では「プログラム」を主語として処理を説明することがあるが、プログラムはプロセッサ(例えば、CPU:Central Processing Unit)によって実行されることによって、定められた処理を記憶資源(例えば、メモリ)、通信I/F、ポートを用いて処理を実行するため、プロセッサを主語として説明してもよい。
プログラムを主語として説明された処理は、プロセッサを有する計算機(例えば、計算ホスト、ストレージ装置)が行う処理としてもよい。また、以下の説明では、「コントローラ」の表現で、プロセッサ又はプロセッサが行う処理の一部又は全部を行うハードウェア回路を指してもよい。プログラムは、プログラムソース(例えば、プログラム配布サーバや、計算機が読み取り可能な記憶メディア)から各計算機にインストールされてもよい。この場合、プログラム配布サーバはCPUと記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムを記憶している。そして、配布プログラムをCPUが実行することで、プログラム配布サーバのCPUは配布対象のプログラムを他の計算機に配布する。
なお、管理サーバは入出力デバイスを有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスであるが、これ以外のデバイスであってもよい。また、入出力デバイスの代わりにシリアルインタフェースやイーサーネットインタフェースを入出力デバイスとし、当該インタフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入出力デバイスでの入力及び表示を代替してもよい。
<実施例1>
本発明の第1実施例のシステムは、現実空間100(図1)の状況を仮想空間200(図2)上に可視化する。図1は、現実の作業が行われている空間100を示す図である。
本発明の第1実施例のシステムは、現実空間100(図1)の状況を仮想空間200(図2)上に可視化する。図1は、現実の作業が行われている空間100を示す図である。
現実空間100は、表現されるべき現実空間を示している。この空間100内には、後述する360度方向を撮影可能なカメラ111~112が設置されている。カメラ111~112は、作業空間100を構成する部屋の天井に設置されるが、床面や、所定の高さ位置(例えば1メートル)に設置されるものでもよい。
また、この空間100内にはドア121が存在する。ドア121は、作業空間100を構成する部屋へ出入りするためのドアでも、エレベータのドアでもよい。
さらに、この空間100内には固定的に設置された設備131~133が存在する。後述するように、設備131~133は、設備131~133の状態を電子的に収集可能な機能を有する電子機器を含む。例えば、設備131~133が倉庫に設けられた棚である場合、作業者は自分のIDを入力して物品を取り出す作業を行う。例えば、設備131~133は、倉庫に設けられた棚であり、棚に収容された物品の数や重量や増減数を収集して、出力する。また、設備131~133は、モータなどの工場設備であり、その稼働回数、回転数、印加電圧、電流、温度を収集して、出力する。また、設備131~133は、データセンタに設置されたコンピュータであり、リソース使用量を収集して、出力する。
また、当該空間100内には作業者141、142が存在する。
図2は、第1実施例の計算機システムによって表現される仮想空間200を示す図である。
図2に示す仮想空間200は、現実空間100の状況を視覚的に示すための3Dモデルとして構成され、現実の空間に配置されている様々な物体に対応づけられた三次元モデルと、当該三次元モデルが配置される三次元点(x,y,z)によって構成される。
仮想空間200を構成する三次元物体モデルについて説明する。図2において、現実空間100の固定設備に対応する三次元モデルが仮想空間200内に配置されている。具体的には、ドア121に対応する位置に三次元モデル221と、設備131~133に対応する位置に三次元モデル231~233とがそれぞれ表示される。
また、設備131~133に対応する三次元モデル231~233に関連付けて、当該設備の状態を表す数値や文字列251~253がそれぞれ表示される。設備131~133の状態を表す数値は、例えば、機器の温度、稼働頻度、リソース残量などである。
仮想空間200には、カメラ111~112の撮影点211~212が表示され、撮影点211~212を中心として仮想スクリーン271~272が表示される。仮想スクリーン271上には、カメラ111に写った作業者141の像241が表示される。また、仮想スクリーン272上には、カメラ112に写った作業者141、142の像241、242がそれぞれ表示される。さらに、仮想スクリーン272上には、カメラ112に写った設備131の像236が表示される。
図3は、第1実施例の仮想空間のモデルを表示する計算機システムの構成を示すブロック図である。
仮想空間200の情報は、ネットワーク301に接続した画像生成装置302によって画像化され、出力装置303に出力される。出力装置303は、表示装置やプリンタである。画像生成装置302は、中央計算部と、メモリ部と、外部とのインタフェース機器とによって構成される汎用的な計算機である。
ネットワーク301には、データベース304、305、306が接続される。データベース304、305、306は、ネットワーク301に接続された装置からアクセス可能なストレージ領域である。データベース304は、撮影点211~212のカメラが撮影した画像を格納する。データベース305は、カメラが撮影した画像の画像管理情報を格納する。データベース306、設備131~133の状態を格納する。
図4は、第1実施例の画像生成装置302のハードウェア構成を示すブロック図である。
画像生成装置302は、主記憶装置404に格納されたプログラムに従って動作する演算処理装置(CPU)401と、演算処理装置401が実行するプログラムを格納する主記憶装置404と、入力デバイス308からの信号を受信する入力インタフェース403と、動作に必要なデータを保存する補助記憶装置405と、ネットワークとの通信を制御するネットワークインタフェース402と、出力装置303から出力する画像を生成する画像処理部406を有する。
主記憶装置404は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、補助記憶装置405に格納されたプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置405は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置で構成され、演算処理装置401が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置405から読み出されて、主記憶装置404にロードされて、演算処理装置401によって実行される。
画像処理部406が実行する画像生成処理は、予め登録された三角形メッシュなどの集合による三次元モデルを用いて、ある視点位置から見たときの二次元画像をシミュレーションで計算するレンダリング処理を実行する。本発明の特徴は、このような一般的なレンダリング処理を用いて、複数のカメラ111~112によって撮影された360度画像を組み合わせて俯瞰的な表示を実現することにある。
演算処理装置401が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介して画像生成装置302に提供され、非一時的記憶媒体である補助記憶装置405に格納される。このため、画像生成装置302は、リムーバブルメディアからデータを読み込むインタフェースを有するとよい。
画像生成装置302は、物理的に一つの計算機上で、又は、論理的又は物理的な複数の計算機上で構成される計算機システムであり、前述したプログラムが、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。また、画像生成装置302と他の装置が一つの物理的又は論理的計算機に収容されてもよい。演算処理装置401が提供する機能の一部は、他の論理回路(例えば、FPGA)で実装されてもよい。
作業空間100に設置されるカメラ111~112は、例えば、魚眼レンズを用いて天井から下面(横方向360度、縦方向180度の半球面)を撮影するネットワークカメラや、複数の広角カメラの画像を組み合わせて上下360度(全球面)を撮影するネットワークカメラでよい。
図5Aは、第1実施例のカメラ111~112を下方から見た斜視図であり、図5Bは、第1実施例のカメラ111~112の側面図である。カメラ111~112には、図5A、図5Bに示すような全周囲型のカメラ501を用いることができる。
カメラ501は、天井に設置され、床側の下半球面(横方向360度)を撮影して、その画像をデータベース304に保存し、画像管理情報をデータベース305に保存する。カメラ501は、魚眼撮影レンズとCCD素子510と、キャリブレーションパターンを保存したメモリ511と、カメラ画像を保存するメモリ部512と、ネットワーク接続部513と、これらを制御する演算制御部514とから構成される。カメラ501は、ネットワークを経由して送信された静止画像撮影の命令や、動画撮影の開始命令及び終了命令によって、その動作を制御することができる。このような個別のネットワークカメラ自体は既存技術の組み合わせによって実現可能である。
カメラ501では、所定のテストパターンを用いて、あらかじめカメラの内部パラメータをキャリブレーションして、カメラが撮像した画像上の点と画像フォーマット上の点とを対応付けるための対応テーブルがメモリ511に保存されている。
図6は、半球面を撮影した画像フォーマットの例を示す。
撮影時の横方向の角度値θ、縦方向の角度値φに対して、画像サイズが横PX、縦PYの画像内の点(px,py)への対応関係は式(1)で表される。
また、本発明で用いるカメラ111~112は、図5に示す天井に設置される半球面を撮影する全周囲型のカメラ501や、図4に示すフォーマットの画像に限定されるものではなく、異なる方向の複数の広角画像を撮影した画像をつなぎ合わせて全球面画像を撮影するカメラや、角度と画素色が一意に対応付けられた別の画像フォーマットを用いて実現してもよい。
第1実施例では、筒型の仮想スクリーンに全周囲カメラが撮影した画像を表示する。筒型の仮想スクリーンは、様々な形状を採用しうるが、例えば、図2に示す円筒形状271、272である。
以下の説明では、カメラ111の撮影位置に対応する仮想空間上の点211を、撮影点(xc,yc,zc)と称する。仮想スクリーンは、この撮影点(xc,yc,zc)を取り囲むように配置される。
図7Aは、第1実施例において、仮想スクリーン272を円筒形状に構成し、仮想スクリーン272の内側に全周囲カメラが撮影した画像を描画する例を示す図である。描画される画像は円筒の内側面にマッピングし、円筒の外側面と上面には描画しない。なお、円筒の底面に画像を描画してもよい。
第1実施例では、この円筒型の幾何形状を64角形の筒形状で近似して三角形メッシュによって表し、各三角形メッシュ内で画像を線形補間して、画像の歪みが少なくなるように描画する。
円筒面は、式(2)及び式(3)で表される点(x,y,z)の集合で表される。
このとき、以下の手法で、円筒上の点701と撮影画像の点とを対応付けてマッピングする。(xc,yc,zc)から、円筒面上の点701(x,y,z)への相対的な位置ズレ量を(x0,y0,z0)で表す。
前述したような対応関係に基づいて、テクスチャマッピング処理を行うことによって、撮影点212のカメラ112が撮影した画像が投影された筒型の仮想スクリーンを作成することができる。
図7Aに示す円筒形状の仮想スクリーンは、全周の画像が等しく表示されるので、人や設備の存在位置が分からない場合に有効である。
なお、仮想スクリーンに床面750を含めて、画像の一部を床面750に投影してもよい。前述した方法では三次元上の撮影点からの相対的な角度(φ、θ)のみが必要条件であるため、撮影点212から角度(φ、θ)の方向に延伸した線と床面750との交点702に画像を投影すればよい。全周囲画像のうち床面750に投影される範囲は、仮想スクリーンの大きさによって定まる。例えば、図6のφ<30°の範囲が円筒の底面(床面750)に投影されるように、仮想スクリーンの大きさを設定してもよい。
また、仮想スクリーンを床面750のみで構成して、画像の全部を床面750に投影してもよい。この場合も、撮影点212から角度(φ、θ)の方向に延伸した線と床面750との交点702に画像を投影すればよい。床面750に投影される画像は広範囲に広がることから、床面750に所定の半径の円を規定して、その範囲に画像を投影するとよい。
さらに、仮想スクリーンは円筒以外で、底面が多角形の筒型でもよい。
図7Bは、第1実施例において、仮想スクリーン273を円柱の側面の一部が平面273Aとなった筒形状に構成し、仮想スクリーン273の内側に全周囲カメラが撮影した画像を描画する例を示す図である。描画される画像は円筒の内側面にマッピングし、円筒の外側面と上面には描画しない。円筒の底面には画像を描画してもよい。
図7Bに示す仮想スクリーン273も、図7Aに示す仮想スクリーン272と同様に、筒型の幾何形状を64角形の筒形状で近似して三角形メッシュによって表し、各三角形メッシュ内で画像を線形補間して、画像の歪みが少なくなるように描画する。そして、図7Aに示す仮想スクリーン272と同様の対応関係に基づいて、テクスチャマッピング処理を行うことによって、撮影点212のカメラ112が撮影した画像が投影された筒型の仮想スクリーンを作成することができる。
例えば、作業者143及び設備134が、図7Cに示す位置に存在する場合、平面部分273Aが人や設備の存在場所に位置するように、仮想スクリーン273を配置する。すると、撮影点212から角度(φ、θ)の方向に延伸した線と平面部分273Aとの交点711にマッピングされるように画像が投影される。このため、作業者143の像731が仮想スクリーン273の平面部分273Aに描画され、設備134の像732が仮想スクリーン273の平面部分273Aに描画される。
図7Bに示す側面の一部が平面273Aとなった筒形状の仮想スクリーンは、側面の平面部分273Aに人や設備が存在する場合に有効である。すなわち、人や設備が存在する位置に平面273Aを配置すると有効である。例えば、現実空間100に存在する設備と当該設備の操作者の位置に仮想スクリーンの面を構成するとよい。これは、仮想スクリーンの平面部分では、その位置に存在する物(人や設備)の正しい大きさが分かり、床面750の位置に表示される(床面750から浮いた位置に表示されることがない)ためである。
図7Dを用いて、仮想スクリーン上の画像の投影位置を説明する。例えば、作業者144が仮想スクリーン274の面から遠い位置に存在する場合、作業者144の像741はスクリーン上に小さく表示される。一方、作業者145が仮想スクリーン274の面から近い位置に存在する場合、作業者145の像742は、周辺の3Dモデルとほぼ同じ縮尺で表示される。
このため、仮想スクリーンに表示すべき人や設備の位置があらかじめ分かっている場合、表示対象の位置を通るように仮想スクリーンの面を設定することによって、当該表示対象の像を適切な大きさで見ることができる。
図7Bでは、側面の1箇所が平面となった筒形状の仮想スクリーンを示したが、仮想スクリーンの側面の2箇所以上が平面となってもよい。さらに、仮想スクリーンの側面の全てが複数の平面によって構成されてもよい。
以下、図8~図12に従って、第1実施例のシステムの動作を説明する。本システムの動作は、カメラによる撮影ルーチン(図8)、設備情報収集ルーチン(図9)、情報表示ルーチン(図10)の三つから構成される。図8と図9のルーチンは所定のタイミングで繰り返し実行される処理である。
図8に示す撮影ルーチンでは、カメラ111~112が所定のタイミングで繰り返し(例えば、定期的に)、画像を撮影する。
まず、カメラ111~112は、所定のタイミング(例えば、所定の時間間隔)で撮影トリガを判定する(ステップ802)。撮影トリガは、タイマが計測した所定時間のタイムアップや、外部から入力される撮影命令などである。例えば、ユーザが現時点の画像を見たい場合、図18に示すマーカ1805を操作することによって、画像生成装置302は指定されたカメラ111~112に撮影命令を送信する。
そして、撮影トリガであると判定された場合、画像を撮影し、撮影された画像を内部メモリに保存する(ステップ803)。そして、キャリブレーション用のテーブルを用いて、撮影された画像を、所定のフォーマット(例えば、図6に示すフォーマット)変換し(ステップ804)、変換された画像をエンコードして圧縮し(ステップ805)。そして、エンコードされた画像を、データベース304に保存する(ステップ806)。また、撮影したカメラのID番号と撮影時刻などの画像管理情報をデータベース305に登録する(ステップ807)。
図12は、第1実施例の画像管理情報の例を示す図である。
第1実施例の画像管理情報は、カメラを一意に識別するための識別情報1201と、画像が撮影された日付及び時刻1202と、データベース304に保存されるファイル名1203とを含む。
図9に示す機器情報収集ルーチンでは、設備131~133が所定のタイミングで繰り返し(例えば、定期的に)、各設備の状態を出力する。
まず、設備131~133は、所定のタイミング(例えば、所定の時間間隔)で読み取りトリガを判定する(ステップ902)。読み取りトリガは、タイマが計測した所定時間のタイムアップや、外部から入力される読取命令などである。例えば、ユーザが現時点の設備の状態を知りたい場合、画像生成装置302は指定された設備131~133に読取命令を送信する。
そして、読み取りトリガであると判定された場合、設備131~133の状態を取得し(ステップ903)、取得した値を、ネットワークを介してデータベース306に格納する(ステップ904)。データベース306に格納される状態は、設備の種類や構成によって様々に定義できる。例えば、棚に収容された物品の数や重量や増減数、設備の稼働回数、一定時間毎の使用人数、電池の残容量、設備の温度などである。
図10は、第1実施例の情報表示ルーチンのフローチャートである。図10に示す情報表示ルーチンでは、撮影されたカメラ画像及び機器の状態を3Dマップに投影し、画像を作成する。
まず、画像生成装置302は、補助記憶装置405にあらかじめ保存された3D画像の制御用プログラムと情報を読み込む初期化処理を実行する(ステップ1001)。
初期化処理の詳細を図11に示す。まず、画像生成装置302はネットワーク301を介してデータベース305にアクセスし、カメラ配置情報を取得する(ステップ1101)。カメラ配置情報の構造例を図13Aに示す。カメラ配置情報は、各カメラ111~112を一意に識別するための識別情報1301と、カメラ111~112が設置された位置の情報1302と、カメラ111~112が撮影した画像が投影される仮想スクリーンの形状の初期値1303と、画像が投影される仮想スクリーンの大きさ1304及び高さ1305と、カメラ111~112にアクセスするためのアドレス1306とを含む。カメラ111~112がwebサーバ機能を有する場合、アドレス1306には、アクセスするためのURLを記載するとよい。
図11に戻って説明を続ける。画像生成装置302は、ネットワーク301を介してデータベース306にアクセスし、設備配置情報を取得する(ステップ1102)。カメラ配置情報の構造例を図13Bに示す。設備配置情報は、各設備131~133を一意に識別するための識別情報1311と、設備131~133が設置された位置の情報1312と、設備131~133の形状1313と、設備131~133にアクセスするためのアドレス1314とを含む。設備131~133に付随する電子機器がwebサーバ機能を有する場合、アドレス1314には、アクセスするためのURLを記載するとよい。
図10に戻って説明を続ける。初期化処理(ステップ1001)を終えた後、画像定期的更新処理を行う。画像定期的更新処理では、入力デバイス308に入力されたデータを受け取り(ステップ1002)、受け取ったデータに従って仮想空間を観察する視点位置を修正し、始点情報を作成する(ステップ1003)。具体的に、ステップ1003では、仮想空間上の三次元モデルを観察する視点の位置及び向きを定め、仮想空間上の三次元点p3を二次元画面上の点p2に投影する4×4次元の変換行列を設定する。第1実施例では、視点の位置及び角度を中心とした三次元座標系に変換するView行列Vと、三次元座標系を二次元座標系に変換するProjection行列Pとを定めることによって、式(7)のように三次元点を変換する。但し、P及びVは、それぞれ4×4の変換行列であり、p3は三次元上の点を三次座標表現で表す4次元ベクトルであり、p2は二次元画像上の位置を三次座標表現で表す4次元ベクトルである。このような行列による三次元点の変換処理は、OpenGLなどの既存技術において広く用いられている方法を利用できる。
次に、画像表示用の二次元画像領域を主記憶装置404に確保し、確保した二次元画像領域を初期化する(ステップ1004)。二次元画像領域に格納される二次元画像は、ピクセルと称される二次元配列によって構成され、各ピクセルは色情報(例えば、RGBの3色)を持つ。
そして、各機器から出力された情報を取得する(ステップ1005)。具体的には、各設備131~133に関連付けられた文字列(例えば、数値)をデータベース306から読み込む。
そして、読み込んだ情報に基づいて、対応する物体の色を変更して、三次元モデル231~233を描画する(ステップ1006)。例えば、読み込んだ数値があらかじめ定められた閾値1より大きかったら赤色、閾値2より小さかったら緑色、閾値1から閾値2の間であれば黄色で三次元モデルを描画する。第1実施例では三次元モデルは直方体で表され、直方体は三角形の集合のデータ構造として主記憶装置404の二次元画像領域に保存される。このデータ構造は、三角形の頂点データと、各面を構成する三つの頂点を結ぶ順序データとによって構成される。三角形の各頂点は、式(7)を用いて二次元画像上の点に変換され、頂点を結んだ三角形が三次元モデルの色として定められた色で塗られる。
この際、この色情報に、特定の光源条件によって陰影をつけたり、既に描かれた背景とブレンドして描画する半透明処理を適用してもよい。このような陰影をつけたり半透明化する方法は、OpenGLなどの既存技術によって広く用いられている方法を利用できる。また、各三次元モデル231~233の近傍の位置に、データベース306から読み込んだ文字列251~253を描画する。以下、この描画された文字列をテキストキャプションと称する。
そして、カメラ111~112が撮影した画像を取得する(ステップ1007)。例えば、データベース305を検索し、各カメラ111~112が撮影した画像を検索し、撮影時刻1202が最も新しい画像のファイル名1203を取得する。次いで、取得したファイル名の画像をデータベース304から読み込んで主記憶装置404に展開し、テクスチャ画像として参照できるようにする。
次に、三次元モデルを仮想スクリーンに描画する(ステップ1008)。第1実施例では、図7に示すように、仮想スクリーンは、床面750の平面形状と円筒形状700とで表される。この床面750と円筒形状700は、三角形の集合のデータ構造として主記憶装置404の二次元画像領域に保存される。このデータ構造は、三角形の頂点データと、各面を構成する三つの頂点を結ぶ順序データと、各頂点とテクスチャ画像の対応関係を示すテクスチャマッピングデータとによって構成される。三角形の各頂点は、式(7)を用いて二次元画像上の点に変換され、頂点を結んだ三角形が前記指定されたテクスチャによって塗られる。
第1実施例において、テクスチャの色情報を参照して三角形メッシュの領域を塗りつぶす処理は、スキャンライン法のラスタライズ処理として一般的に用いられている方法を利用できる。すなわち、三角形の各頂点が二次元画像上に変換された3点を結んだ三角形の内側に存在するピクセルを選択し、選択されたピクセルのテクスチャ座標を、3点のテクスチャ座標の線形補間によって求める。この補間されたテクスチャ座標位置の色を当該ピクセルの色に設定する。全ての三角形についてこの処理を繰り返す。
この際、この色情報に、特定の光源条件によって陰影をつけたり、既に描かれた背景とブレンドして描画する半透明処理を適用してもよい。このような陰影をつけたり半透明化する方法は、OpenGLなどの既存技術によって広く用いられている方法を利用できる。
また、この三角形の描画において、三角形の向きから表面と裏面を分けて表示の可否や異なる透明度で描画してもよい。第1実施例では、円筒の内側には画像を描画し、円筒の外側には画像を描画しない。
また、第1実施例におけるテクスチャ画像のフォーマット(図6参照)では、画像が非線形に変換されている。このため、線形補間処理によってテクスチャ座標の計算精度を向上するため、通常のレンダリングに用いる三角形分割より細かく分解した三次元モデルを保持するとよい。
そして、ステップ1006で描画された画像と、ステップ1008で描画された画像とを出力装置303に出力する(ステップ1009)。ステップ1002~1009を繰り返すことによって、利用者は三次元マップ上に配置された複数の全周囲画像を俯瞰して確認することができる。
以上に説明したように、本発明の第1実施例によると、画像生成装置302は、現実空間100に存在する物体の三次元モデルを仮想三次元空間200に配置し、所定の撮影位置から撮影された全周囲画像を、前記撮影位置を包含する筒型の仮想スクリーンにマッピングし、及び、仮想スクリーンを前記仮想三次元空間に配置し、三次元モデル及び仮想スクリーンが配置された仮想三次元空間を俯瞰して表示するための画像データを生成するので、全周囲画像を仮想三次元空間に分かりやすく配置することができる。
また、仮想スクリーンは円筒形状なので、歪みが少なく全周囲画像を仮想スクリーンにマッピングすることができる。
<実施例2>
第2実施例として、円筒形状の仮想スクリーンを配置するための計算方法を説明する。なお、第2実施例では、第1実施例と異なる構成及び処理のみを説明し、同じ構成及び処理の説明は省略する。
第2実施例として、円筒形状の仮想スクリーンを配置するための計算方法を説明する。なお、第2実施例では、第1実施例と異なる構成及び処理のみを説明し、同じ構成及び処理の説明は省略する。
図14A、図14Bは、全周囲画像を撮影するカメラの配置と、仮想スクリーンの配置を示す図である。
図14Aに示すように、仮想スクリーンが過密に配置されていると(ステップ1401)、互いに円筒が重複して見づらい表示形態となる。しかし、図14Bに示すように、一部のカメラを非表示状態にすると、仮想スクリーンが間引かれて配置される(ステップ1402)。このように、第2実施例では、あらかじめ登録されたカメラ位置の集合から、この仮想スクリーンに表現するために適正な数のカメラを選択し、仮想スクリーンの円筒半径を自動的に計算するための方法を説明する。
第2実施例のハードウェア構成は、第1実施例(図1、図3)と同じである。第2実施例と第1実施例との差異は、カメラの位置をカメラからデータベース305に登録する処理(図16)の追加と、データベース305から画像生成装置302に送るカメラの配置情報を動的に生成する処理である。第2実施例では、各カメラ501は自己の位置を認識する機能と、データベース305にアクセスするためのネットワーク接続部513を有する。自己の位置を認識する機能は、GPSを利用したり、WiFiのアクセスポイントやビーコンからの信号を利用する既存の方法を利用できる。なお、カメラ501の位置を手動で入力する方法でもよい。
第2実施例では現実空間100に全周囲カメラを設置した際に、それぞれのカメラで初期設定を行う。この初期設定において、カメラはGPSを用いて自己の位置情報を取得し、ネットワーク301を経由してデータベース305にアクセスし、位置情報と、カメラの固有IDと、ネットワークからアクセスするためのアドレスとをデータベース305に格納する。
画像生成装置302は、初期化処理(ステップ1001)において、カメラの設定をデータベース305から読み込む。第1実施例において、全周囲画像を表現する円筒の位置と大きさのデータは利用者が手動で作成し、補助記憶装置405にあらかじめ登録されている。第2実施例では、図16示すフローチャートに示す処理によって、データベース305に登録されたカメラ501から画像が表示されるカメラを選択し、仮想スクリーンとして表示する円筒の半径の大きさを調整する。以下、処理を詳細に説明する。
まず、各カメラの位置情報をデータベース305から取得し(ステップ1601)、図17に示すデータ構造1700を作成する(ステップ1602)。
データ構造1700は、カメラを位置に識別するための識別情報1701と、カメラの位置1702と、カメラの位置をボロノイ点としたボロノイ領域の情報1703とが含まれる。ボロノイ領域は、頂点の配列として記述され、この頂点を結ぶ領域に含まれる点からは、当該カメラが最も近いカメラとなるように定義される領域である。また、データ構造1700は、カメラを初期状態の表示に使用するかを示すフラグ1704を含む。すなわち、当該カメラを初期状態の表示に使用する場合、フラグ1704にTrueが設定される。一方、当該カメラを初期状態の表示に使用しない場合、フラグ1704にFalseが設定される。フラグ1704の初期状態はTrueである。
データ構造1700を作成する際、半径1705にはあらかじめ初期値として定められた値R1を格納する。次に、作成されたデータ構造1700を参照し、フラグ1704がTrueである点をボロノイ点としたボロノイ図を作成する(ステップ1603)。そして、各カメラのボロノイ領域に対して、ボロノイ境界上でボロノイ点に最も近い点までの距離を算出し、その値を半径1705に格納する(ステップ1604)。
次に、不要なカメラを削除する。各カメラ点のうち、半径1705がもっとも小さいものを選択する(ステップ1605)。この半径値が定数としてあらかじめ保存された閾値R1より小さい場合(ステップ1606でYES)、当該カメラを非表示にするカメラとするため、フラグ1704をFalseに設定する(ステップ1607)。そして、フラグ1704がTrueであるカメラについてボロノイ図を再作成して、ステップ1603~1606を繰り返す。すべてのカメラの半径が初期値R1より大きくなった場合(ステップ1606でNO)、ステップ1608に進む。
次に、フラグ1704をFalseに設定された非表示のカメラについて、親カメラを設定する(ステップ1608)。非表示のカメラの設置位置を含むボロノイ領域を形成するカメラの識別情報を親カメラ1706に格納する。また、親カメラに選択されたカメラのデータの子カメラ1707に当該カメラの識別情報を格納する。
なお、フラグ1704を用いず、非表示にするカメラの半径1705を0に設定してもよい。
以上に説明した処理によって得られたカメラ群を用いると、図15Aに示すように仮想スクリーン同士が重複することなく、図15Bに示すようにボロノイ領域が一定以上の大きさとなるようにカメラを配置することができる。そして、半径1705に格納された値を仮想スクリーンの半径値として使用することによって、仮想スクリーン同士の重複を避けることができる。
また、半径1705に格納された値に1.0未満の定数を乗じた値を仮想スクリーンの半径値として使用することによって、仮想スクリーンの間に隙間が空き、仮想スクリーンをより見やすく表示することができる。
また、半径の上限値をR2に設定し、R2と半径1705の値との小さい方を仮想スクリーンの半径値として使用することによって、仮想スクリーンの大きさのばらつきを減少でき、仮想スクリーンをより見やすく表示することができる。
以上に説明したように、本発明の第2実施例によると、画像生成装置302は、仮想スクリーン同士が重ならないような半径の円筒形状の仮想スクリーンを仮想三次元空間に配置するので、仮想スクリーンにマッピングされた全周囲画像が重ならず、見やすく表示することができる。
<実施例3>
第3実施例では、カメラの撮影位置に配置された三次元マーカを用いたユーザインタラクションについて説明する。第3実施例のシステムは、三次元モデルを描画する視点位置の変更、全周囲画像を投影する仮想スクリーンの変形、および全周囲画像の選択が可能である。なお、第3実施例では、前述した各実施例と異なる構成及び処理のみを説明し、同じ構成及び処理の説明は省略する。
第3実施例では、カメラの撮影位置に配置された三次元マーカを用いたユーザインタラクションについて説明する。第3実施例のシステムは、三次元モデルを描画する視点位置の変更、全周囲画像を投影する仮想スクリーンの変形、および全周囲画像の選択が可能である。なお、第3実施例では、前述した各実施例と異なる構成及び処理のみを説明し、同じ構成及び処理の説明は省略する。
第3実施例のハードウェア構成は、第1実施例(図1、図3)と同じである。画像生成装置302への入力デバイス308として、マウスなどの一般的なポインティングデバイスを用いる。一般に、マウスでは、画像内の位置を指定するクリックやドラッグなどの操作を感知して、アプリケーションが登録したコールバックサブルーチンを実行する手段をオペレーティングシステムが提供している。このコールバックを実現する手段は既知の方法を利用できる。第3実施例の以下の記述では、マウスによるドラッグの検出からコールバック関数を呼び出すまでの処理は公知の方法を利用する。
第3実施例において、仮想空間200を観察する仮想視点の位置と角度を設定する手順を説明する。第3実施例では、視野の中心(被写体の位置)となる三次元座標U1と視点(カメラ)の位置となる三次元座標U2によって定義する、ターゲットカメラと称される方法を用いる。U2を中心とする平行移動行列Tと、U1からU2の方向をカメラの視線方向(Z軸)として設定する回転行列Rとを定義する。View行列Vは、行列の積V=RTによって定義される。このような視点位置の設定方法はターゲットカメラとして一般に用いられている方法である。以下の説明では、U1を注目点と称し、U2を仮想視点と称する。また、U2とU1との距離|U2-U1|をターゲットカメラ距離dと称する。角度R、ターゲットカメラ距離d、注目点U1を入力として、視点位置U2を定義してView行列Vを作成する計算処理は、一般に利用されている方法を採用することができる。
各仮想スクリーンの内部またはその近傍に、三次元マーカを配置する。図18は、第3実施例において、円筒形状の仮想スクリーン272に表示されるユーザインタラクションの例を示す図である。
仮想スクリーン272のカメラ撮影位置にマーカ1801を配置し、その周辺にマーカ1802~1805を配置する。また、第2実施例の操作によって非表示に設定された子カメラ1707を選択し、当該子カメラの設置場所1702に、マーカ1810~1812を配置する。
入力デバイス(マウス)308によって、マーカ1802~1805を操作した場合、以下に述べるイベント関数が実行される。
<選択による視点中心の移動>
マーカ1801の操作が検出された場合、注目点U1の位置を、該当する仮想スクリーン272の撮影位置に一致させる。この操作によって、仮想スクリーン272が画像の中心となる。このカメラ視点の移動は、画像を連続的に変化させたアニメーションによって表示するとよい。
マーカ1801の操作が検出された場合、注目点U1の位置を、該当する仮想スクリーン272の撮影位置に一致させる。この操作によって、仮想スクリーン272が画像の中心となる。このカメラ視点の移動は、画像を連続的に変化させたアニメーションによって表示するとよい。
<視点距離の変化>
マーカ1802を始点としたドラッグ操作が検出された場合、ターゲットカメラ距離dを変化させる。例えば、上方向にAピクセル分のドラッグ操作が検出された場合、ターゲットカメラ距離dのカメラの移動を、画像を連続的に変化させたアニメーションによって表示するとよい。ターゲットカメラ距離dが0に近い条件においては、スクリーンの画角とカメラ画角とがほぼ等しくなるため、全周囲画像の一部を切り出した画像と同等の画像となる。
マーカ1802を始点としたドラッグ操作が検出された場合、ターゲットカメラ距離dを変化させる。例えば、上方向にAピクセル分のドラッグ操作が検出された場合、ターゲットカメラ距離dのカメラの移動を、画像を連続的に変化させたアニメーションによって表示するとよい。ターゲットカメラ距離dが0に近い条件においては、スクリーンの画角とカメラ画角とがほぼ等しくなるため、全周囲画像の一部を切り出した画像と同等の画像となる。
<スクリーンの大きさ調整>
マーカ1803を始点としたドラッグ操作が検出された場合、該当する仮想スクリーンの半径を変化させる。例えば、上方向にAピクセル分のドラッグ操作が検出された場合、仮想スクリーン272の表示半径rを、r×(100+A)/100に変化させる。
マーカ1803を始点としたドラッグ操作が検出された場合、該当する仮想スクリーンの半径を変化させる。例えば、上方向にAピクセル分のドラッグ操作が検出された場合、仮想スクリーン272の表示半径rを、r×(100+A)/100に変化させる。
<スクリーン形状の変化>
マーカ1804の操作が検出された場合、仮想スクリーン272を四角柱に変化させる。なお、マーカ1804の操作後に、変化後の仮想スクリーンの形状を選択するサブ画面を表示してもよい。
マーカ1804の操作が検出された場合、仮想スクリーン272を四角柱に変化させる。なお、マーカ1804の操作後に、変化後の仮想スクリーンの形状を選択するサブ画面を表示してもよい。
<リアルタイム画像の取得>
マーカ1805の操作が検出された場合、画像生成装置302は撮影命令を指定されたカメラ111~112に送信する。カメラ111~112は、撮影命令を受信すると、画像を撮影し、所定の処理の後、データベース304に画像を保存する。画像生成装置302は撮影命令を指定されたデータベース304に保存された画像を取得することによって、最新の画像を仮想スクリーン272に表示することができる。
マーカ1805の操作が検出された場合、画像生成装置302は撮影命令を指定されたカメラ111~112に送信する。カメラ111~112は、撮影命令を受信すると、画像を撮影し、所定の処理の後、データベース304に画像を保存する。画像生成装置302は撮影命令を指定されたデータベース304に保存された画像を取得することによって、最新の画像を仮想スクリーン272に表示することができる。
なお、マーカ1805の操作が検出された場合、カメラ111~112に対する撮影命令の他に、設備131~133に対する読取命令を送信してもよい。
<全周囲画像の変更>
また、第2実施例の操作によって非表示に設定された子カメラの設置場所に、マーカ1810~1803を配置してもよい。これらのマーカの操作が検出された場合、当該選択された子カメラの位置を中心として仮想スクリーン272を表示し、当該選択された子カメラが撮影した全周囲画像を仮想スクリーン272に描画する。
また、第2実施例の操作によって非表示に設定された子カメラの設置場所に、マーカ1810~1803を配置してもよい。これらのマーカの操作が検出された場合、当該選択された子カメラの位置を中心として仮想スクリーン272を表示し、当該選択された子カメラが撮影した全周囲画像を仮想スクリーン272に描画する。
第3実施例では、マーカの操作によるコールバック機能によって、仮想スクリーンに描画される画像を変えることができる。
以上に説明したように、本発明の第3実施例によると、画像生成装置302は、撮影位置の近傍の前記仮想三次元空間内に少なくとも一つのマーカを表示するための画像データを生成し、マーカの操作を検出した場合、仮想スクリーンの形状又は仮想スクリーンにマッピングされる全周囲画像を変化させるので、ユーザの操作に従って、ユーザが見たい画像を表示することができる。
また、第3実施例によると、マーカは、異なる撮影位置の全周囲画像に変更するために操作されるマーカ1801であるので、異なる位置から見た全周囲画像を表示することができる。また、マーカは、前記仮想三次元空間の視点距離を変更するために操作されるマーカ1802であるので、異なる位置から見た、異なる大きさで全周囲画像を表示することができる。マーカは、前記仮想スクリーンの大きさを変更するために操作されるマーカ1803であるので、異なる大きさで全周囲画像を表示することができる。マーカは、前記仮想スクリーンの形状を変更するために操作されるマーカ1804であるので、異なる位置の注視するための全周囲画像を表示することができる。マーカは、前記全周囲画像を最新の画像に更新するために操作されるマーカ1805であるので、最新の画像を表示することができる。
<実施例4>
第4実施例では、視聴者が三次元マップ上の表示マーカにインタラクションすることによって、現実空間100に存在する全周囲画像の撮影機器を操作する方法について説明する。なお、第4実施例では、前述した各実施例と異なる構成及び処理のみを説明し、同じ構成及び処理の説明は省略する。
第4実施例では、視聴者が三次元マップ上の表示マーカにインタラクションすることによって、現実空間100に存在する全周囲画像の撮影機器を操作する方法について説明する。なお、第4実施例では、前述した各実施例と異なる構成及び処理のみを説明し、同じ構成及び処理の説明は省略する。
第4実施例の基本ハードウェア構成は、カメラ112を除いて、第1実施例(図1、図3)と同じである。ただし、第4実施例において、カメラ112の代わりに物理的移動機能を有するカメラ2001を用いる。図19は、第4実施例で用いるカメラ2001の構成を示す図である。
カメラ2001は、図5A、図5Bで示したカメラの構成に加えて、車輪1911と動力伝達機構1912とモータ1913とを有しており、モータ1913に駆動して車輪1911を回転させることによってレール1920に沿って移動する機能を有する。また演算制御部514は、モータ制御部1914を介して電圧又は電流を制御することによってモータ1913を駆動することができる。
図20Aは、第4実施例の作業空間100を示す図である。カメラ2001の移動可能な範囲は、レール1920に依存する。
図21は、カメラが移動可能な経路を格納するデータ構造2100を示す図である。
データ構造2100は、カメラを一意に識別するための識別情報2101と、カメラの位置(移動先)2102と、所定の起点から当該位置に移動するためのモータ1913の駆動量2103とを含む。データ構造2100の各データは、識別情報2101で識別されるカメラ2001が設置されるレール1920の通過点に対応する。データ構造2100は、データベース305に登録しておき、カメラID2101の値を指定することによって取得できるとよい。
カメラ2001は、ネットワーク301を介して、移動命令や撮影命令を受信し動作する機能を有する。カメラ2001は固有IPアドレスを有しており、所定のポートにメッセージを受け取ると、モータ1913を所定量だけ駆動して、メッセージ送信元に応答メッセージを返信する。カメラ2001は移動可能なカメラの一例であり、レールに沿って移動せず、床面を自走するカメラでもよい。また、このようなカメラの移動機構は、既存の技術の組み合わせにより実施可能である。
初期化処理(ステップ1001)において、画像生成装置302は、カメラ2001の現在の場所の情報、及び移動可能な経路の情報2100も取得する。そして、図20Bに示すように、この情報を用いて、カメラ2001が移動可能な軌跡2020を画面上に描画する(ステップ1006)。
図20Bに、第2実施例のシステムによって表現される仮想空間200の表示例を示す。カメラ2001が移動可能な経路上の点を示すマーカ2021~2029をユーザがマウスの操作によって指定した場合、カメラの移動と撮影を命じるメッセージをカメラ2001に送信する。カメラ2001は、指示された場所に移動し、周囲の画像を撮影して、データベース305に格納する。
なお、カメラ2001が動きながら、全周囲画像を撮影してもよい。この場合、全周囲画像を撮影した位置にマーカを表示するとよい。
図22は、カメラ2001の移動及び撮影の処理のフローチャートである。
画像生成装置302が通過点(マーカ)の選択を感知すると(ステップ2201)、選択されたマーカが表す通過点のデータをデータ構造2100から読み込み(ステップ2202)、データ構造2100から取得した駆動量2103をカメラ2001に送信し、カメラの移動を命令する(ステップ2203)。
カメラ2001は、移動命令を受信すると、モータを駆動し(ステップ2211)、選択されたマーカの位置に移動した後、周囲の画像を撮影し、撮影した画像をデータベース305に格納する(ステップ2212)。撮影後の画像の圧縮とデータベースへの登録は、第1実施例1のステップ802~807と同じである。撮影作業の終了後に、撮影終了メッセージを画像生成装置302に送信する(ステップ2213)。
画像生成装置302は、撮影終了メッセージを受信すると(ステップ2204)、データベース305から画像を読み込み、新たな撮影位置に仮想スクリーンを動かし、画像を表示する(ステップ2205)。
なお、第4実施例において、データベース305に格納される画像管理情報に、カメラの位置と撮影時刻を含める。そして、ユーザがマーカを選択すると、選択されたマーカの位置(又は最も近い位置)で撮影された最新の画像をデータベース305から検索し、検索された画像をデータベース304から取得して、取得した画像を仮想スクリーンに表示してもよい。このとき、選択したマーカの位置を中心とする仮想スクリーンを新たに表示してもよい。さらに、選択したマーカの位置に視点を移動してもよい。
さらに、ユーザが入力した時刻(又は最も近い時刻)に撮影された画像をデータベース305から検索し、検索された画像をデータベース304から取得して、取得した画像を、撮影位置に対応する仮想スクリーンに表示してもよい。このとき、撮影位置に対応する仮想スクリーンを新たに表示してもよい。さらに、撮影位置に対応する仮想スクリーンの中心に視点を移動してもよい。
以上に説明したように、本発明の第4実施例によると、画像生成装置302は、カメラ2001に移動命令及び撮影命令を送信し、カメラ2001は、移動命令によって指定された場所に移動し、移動後の場所で全周囲画像を撮影し、画像生成装置302は、撮影された全周囲画像を取得するので、ユーザが見たい位置の現在の画像を表示することができる。
また、画像生成装置302は、ユーザによって指定された時刻に撮影された全周囲画像をデータベース304から取得し、取得した全周囲画像を仮想スクリーンにマッピングするので、ユーザが見たい時刻の画像を表示することができる。
また、画像生成装置302は、仮想三次元空間内の位置の選択を検出した場合、選択された位置を包含する仮想スクリーンを生成し、生成された仮想スクリーンに全周囲画像をマッピングし、生成された仮想スクリーンを前記仮想三次元空間に配置するので、ユーザが見たい位置の現在の画像を表示することができる。
また、画像生成装置302は、カメラ2001の移動を指示するためのマーカ2021~2029を仮想三次元空間内に表示するための画像データを生成し、マーカ2021~2029の選択を検出した場合、カメラ2001に移動命令及び撮影命令を送信するので、ユーザの意思に従ってカメラを移動することができる。
<実施例5>
第5実施例では、仮想空間200に表示された三次元モデルと、仮想空間200内の仮想スクリーン上に表示された画像とを関連付けて表示する方法について説明する。なお、第5実施例では、前述した各実施例と異なる構成及び処理のみを説明し、同じ構成及び処理の説明は省略する。
第5実施例では、仮想空間200に表示された三次元モデルと、仮想空間200内の仮想スクリーン上に表示された画像とを関連付けて表示する方法について説明する。なお、第5実施例では、前述した各実施例と異なる構成及び処理のみを説明し、同じ構成及び処理の説明は省略する。
第1実施例においては、現実空間100内に存在する設備131~133の状態を、仮想空間200内に描画された三次元モデルの色やテキストキャプションによって表示した。しかし、第1実施例の方法では、仮想空間200内に描かれた三次元モデル231~233の位置と、仮想スクリーン上に描かれた全周囲画像の像の位置とは、通常は異なっており、撮影位置と仮想スクリーンに描画される画像の撮影位置とが等しい場合に、一致する。このため、第5実施例では、図23Aに示すように、仮想スクリーン272内で当該設備の像が描画される位置に、仮想空間200内の特定の三次元モデル231と同じ三次元モデル2301を描画することによって、全周囲画像と三次元マップとの対応関係を直観的に分かりやすく表すことができる。
第5実施例のハードウェア構成は、第1実施例(図1、図3)と同じである。
図24は、第5実施例の情報表示ルーチンのフローチャートである。
第5実施例では、三次元モデルと機器情報を描画する処理(ステップ2406)が、第1実施例と異なる。ステップ2406では、設備の三次元モデルを、第1実施例と同様に仮想空間200内に描画し(ステップ2412)、仮想スクリーン272内にも描画する(ステップ2415)。
具体的には、まず、画像生成装置302は、仮想空間200内に含まれる設備のうち、処理されていない設備の有無を判定する(ステップ2411)。そして、未処理の設備を一つ選択し、選択された設備の三次元モデルを仮想空間200内に描画する(ステップ2412)。
そして、選択された設備が、撮影位置に最も近い仮想スクリーンに表示すべき設備であるかを判定する(ステップ2413)。例えば、当該仮想スクリーン上に表示される当該設備の大きさが所定値以上であるかを判定するとよい。
そして、当該仮想スクリーン上に表示すべき設備であると判定された場合、データベース305にアクセスし、カメラ配置情報(図13A)を取得し、処理すべき仮想スクリーンの情報を抽出する(ステップ2414)。視点から前方(視線方向)で、視点に最も近い仮想スクリーンを処理すべき仮想スクリーンとして選択する。第3実施例にて説明したユーザインタフェースと併用する場合、マーカ1801を操作して指定された仮想スクリーンを選択するとよい。
そして、当該設備の三次元モデルを当該仮想スクリーン上に描画する(ステップ2415)。
その後、仮想空間200内に描画された三次元モデルと仮想スクリ―ン上に描画された三次元モデルとを対応付けるために、二つの三次元モデルを結ぶ直線2320を描画する(ステップ2416)。具体的には、三次元モデル231の各頂点座標pと、三次元モデル2301の頂点座標p’を結ぶ線分を描画する。二つの三次元モデルを結ぶ線分によって、仮想空間200内の物体と仮想スクリーン272に表示された物体とを、俯瞰状態でも容易に関係付けることができる。
この二つの三次元モデルを結ぶ線分は、二つの三次元モデルの全部又は一部の頂点同士を結ぶとよい。また、二つの三次元モデルを結ぶ線分は、オプショナルであり、表示しなくてもよい。また、二つの三次元モデルを結ぶ線分は、全ての設備について表示しなくても、画面が煩雑にならない程度の数だけ表示すればよい。さらに、二つの三次元モデルを結ぶ線分は、通常は描画せず、ユーザが設備を選択した(例えば、三次元モデルにマウスオンした)場合に描画してもよい。
図23Bに、設備の三次元モデルを当該仮想スクリーン上に描画する例を示す。ステップ2415において、三次元モデル231を仮想スクリーン272の内部に描画する場合、三次元モデル231のデータ構造は、第1実施例と同様に、三角形の頂点データと、各面を構成する三つの頂点を結ぶ順序データとによって構成される。また、仮想スクリーンの撮影位置をc=(xc,yc,zc)で表し、円筒の半径はRで表される。
そして、仮想スクリーン272を構成する円筒の中心の撮影点212からの距離がr1~r2の領域2320を、円筒面内側の筒付近の領域2330に変換する。領域2330は円筒中心からの距離がr1’~r2’の領域を定義すると、式(8)及び式(9)を用いて点p=[x,y,z]の座標を変換できる。
仮想スクリーン272上の三次元モデル2301は、円筒形状の内側面の狭い領域2330に描画される。この領域を撮影点212から観察すると、全周囲画像の像236と、三次元モデル2301は重なって見える。すなわち、仮想スクリーン272にマッピングされた全周囲画像として撮影された物体と、当該物体の三次元モデルとが重畳して表示される。また、領域2330が十分に小さい場合、撮影点212以外の場所から見た場合にも、三次元モデルは重畳して見える。
以上に説明したように、本発明の第5実施例によると、画像生成装置302は、現実空間100に存在する物体の三次元モデルを仮想スクリーン上で当該物体が表示される位置にマッピングするので、全周囲画像の像236と三次元モデル2301とが仮想スクリーン上で重畳して表示されるため、俯瞰状態のまま複数の全周囲画像を把握できる。
また、画像生成装置302は、仮想三次元空間200に配置された三次元モデルと、仮想スクリーン上にマッピングされた三次元モデルとを関連付ける線分を表示するので、仮想空間200内の物体と仮想スクリーン272に表示された物体とを、俯瞰状態でも容易に関係付けることができる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
Claims (15)
- 表示装置に表示される画像を生成する画像生成装置であって、
プログラムを実行するプロセッサと、
前記プログラムを格納するメモリとを備え、
前記プロセッサは、
現実空間に存在する物体の三次元モデルを仮想三次元空間に配置し、所定の撮影位置を包含する筒型の少なくとも一つの仮想スクリーンを前記仮想三次元空間に配置し、及び、前記撮影位置から撮影された全周囲画像を前記少なくとも一つの仮想スクリーンにマッピングする演算処理を実行し、
前記三次元モデル及び前記少なくとも一つの仮想スクリーンが配置された前記仮想三次元空間を俯瞰して表示するための画像データを生成する画像生成装置。 - 請求項1に記載の画像生成装置であって、
前記少なくとも一つの仮想スクリーンは円筒の形状であることを特徴とする画像生成装置。 - 請求項2に記載の画像生成装置であって、
前記仮想三次元空間には複数の仮想スクリーンが配置されており、
前記プロセッサは、
複数の前記複数の仮想スクリーンの各々が重ならないように前記円筒の半径を計算し、
前記計算された半径の円筒形状の仮想スクリーンを前記仮想三次元空間に配置する画像生成装置。 - 請求項1に記載の画像生成装置であって、
前記プロセッサは、
前記撮影位置の近傍の前記仮想三次元空間内に少なくとも一つのマーカを表示するための画像データを生成し、
前記マーカの操作を検出した場合、前記少なくとも一つの仮想スクリーンの形状又は前記少なくとも一つの仮想スクリーンにマッピングされる全周囲画像を変化させる演算処理を実行する画像生成装置。 - 請求項4に記載の画像生成装置であって、
前記少なくとも一つのマーカは、異なる撮影位置の全周囲画像に変更するために操作されるマーカ、前記仮想三次元空間の視点距離を変更するために操作されるマーカ、前記少なくとも一つの仮想スクリーンの大きさを変更するために操作されるマーカ、前記少なくとも一つの仮想スクリーンの形状を変更するために操作されるマーカ、及び、前記全周囲画像を最新の画像に更新するために操作されるマーカの、少なくとも一つである画像生成装置。 - 請求項1に記載の画像生成装置であって、
前記プロセッサは、
前記全周囲画像を撮影するカメラに移動命令及び撮影命令を送信し、
前記移動命令による移動後の場所で撮影された全周囲画像を取得する画像生成装置。 - 請求項1に記載の画像生成装置であって、
前記全周囲画像を格納するデータベースに接続されており、
前記プロセッサは、
ユーザによって指定された時刻に撮影された全周囲画像を前記データベースから取得し、
前記取得した全周囲画像を前記少なくとも一つの仮想スクリーンにマッピングする画像生成装置。 - 請求項1に記載の画像生成装置であって、
前記プロセッサは、
前記仮想三次元空間内の位置の選択を検出した場合、前記選択された位置を包含する仮想スクリーンを生成し、
前記生成された仮想スクリーンに全周囲画像をマッピングし、
前記生成された仮想スクリーンを前記仮想三次元空間に配置する画像生成装置。 - 請求項1に記載の画像生成装置であって、
前記プロセッサは、前記現実空間に存在する物体の三次元モデルを前記少なくとも一つの仮想スクリーン上で当該物体が表示される位置にマッピングする画像生成装置。 - 請求項9に記載の画像生成装置であって、
前記プロセッサは、前記仮想三次元空間に配置された三次元モデルと、前記少なくとも一つの仮想スクリーン上にマッピングされた三次元モデルとを関連付ける表示を前記仮想三次元空間に配置する画像生成装置。 - 画像生成システムであって、
表示装置に表示される画像を生成する画像生成装置と、
現実空間において全周囲画像を撮影するカメラとを有し
前記画像生成装置は、プログラムを実行するプロセッサと、前記プログラムを格納するメモリと、前記カメラが撮影した全周囲画像を取得するインターフェースとを有し、
前記画像生成装置は、
前記カメラが撮影した全周囲画像を取得し、
現実空間に存在する物体の三次元モデルを仮想三次元空間に配置し、所定の撮影位置を包含する筒型の少なくとも一つの仮想スクリーンを前記仮想三次元空間に配置し、及び、前記撮影位置から撮影された全周囲画像を前記少なくとも一つの仮想スクリーンにマッピングする演算処理を実行し、
前記三次元モデル及び前記少なくとも一つの仮想スクリーンが配置された前記仮想三次元空間を俯瞰して表示するための画像データを生成する画像生成システム。 - 請求項11に記載の画像生成システムであって、
前記画像生成装置は、前記カメラに移動命令及び撮影命令を送信し、
前記カメラは、前記移動命令によって指定された場所に移動し、前記移動後の場所で全周囲画像を撮影し、
前記画像生成装置は、前記撮影された全周囲画像を取得する画像生成システム。 - 請求項11に記載の画像生成システムであって、
前記画像生成装置は、
前記カメラの移動を指示するためのマーカを前記仮想三次元空間内に表示するための画像データを生成し、
前記マーカの選択を検出した場合、前記カメラに移動命令及び撮影命令を送信する画像生成システム。 - 画像生成装置によって画像を生成する画像生成方法であって、
前記画像生成装置は、プログラムを実行するプロセッサと、前記プログラムを格納するメモリとを有し、
前記画像生成方法は、
前記プロセッサが、
現実空間に存在する物体の三次元モデルを仮想三次元空間に配置し、所定の撮影位置を包含する筒型の少なくとも一つの仮想スクリーンを前記仮想三次元空間に配置し、及び、前記撮影位置から撮影された全周囲画像を前記少なくとも一つの仮想スクリーンにマッピングする演算処理を実行し、
前記プロセッサが、前記三次元モデル及び前記少なくとも一つの仮想スクリーンが配置された前記仮想三次元空間を俯瞰して表示するための画像データを生成する画像生成方法。 - 請求項14に記載の画像生成方法であって、
前記プロセッサは、前記仮想三次元空間内の位置の選択を検出した場合、前記選択された位置を包含する仮想スクリーンを生成し、
前記プロセッサは、前記生成された仮想スクリーンに全周囲画像をマッピングし、
前記プロセッサは、前記生成された仮想スクリーンを前記仮想三次元空間に配置する画像生成方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017504845A JP6310149B2 (ja) | 2015-07-28 | 2015-07-28 | 画像生成装置、画像生成システム及び画像生成方法 |
CN201580081700.0A CN107851333A (zh) | 2015-07-28 | 2015-07-28 | 图像生成装置、图像生成系统以及图像生成方法 |
EP15899623.1A EP3330928A4 (en) | 2015-07-28 | 2015-07-28 | PICTURE-GENERATING DEVICE, PICTURE-GENERATING SYSTEM AND PICTURE-PRODUCTION METHOD |
PCT/JP2015/071392 WO2017017790A1 (ja) | 2015-07-28 | 2015-07-28 | 画像生成装置、画像生成システム及び画像生成方法 |
US15/743,743 US20180204387A1 (en) | 2015-07-28 | 2015-07-28 | Image generation device, image generation system, and image generation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/071392 WO2017017790A1 (ja) | 2015-07-28 | 2015-07-28 | 画像生成装置、画像生成システム及び画像生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017017790A1 true WO2017017790A1 (ja) | 2017-02-02 |
Family
ID=57885443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/071392 WO2017017790A1 (ja) | 2015-07-28 | 2015-07-28 | 画像生成装置、画像生成システム及び画像生成方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20180204387A1 (ja) |
EP (1) | EP3330928A4 (ja) |
JP (1) | JP6310149B2 (ja) |
CN (1) | CN107851333A (ja) |
WO (1) | WO2017017790A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12014470B2 (en) | 2019-05-22 | 2024-06-18 | Nec Corporation | Model generation apparatus, model generation system, model generation method |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6833348B2 (ja) * | 2016-05-25 | 2021-02-24 | キヤノン株式会社 | 情報処理装置、画像処理システム、情報処理装置の制御方法、仮想視点画像の生成方法、及び、プログラム |
JPWO2018012355A1 (ja) * | 2016-07-13 | 2019-04-25 | ソニー株式会社 | サーバ装置、サーバ装置の送信処理方法、クライアント装置、クライアント装置の受信処理方法およびサーバシステム |
WO2019198784A1 (ja) * | 2018-04-12 | 2019-10-17 | 凸版印刷株式会社 | ライトフィールド画像生成システム、画像表示システム、形状情報取得サーバ、画像生成サーバ、表示装置、ライトフィールド画像生成方法及び画像表示方法 |
CN111858388B (zh) * | 2019-04-24 | 2024-06-18 | 北京京东尚科信息技术有限公司 | 数据存储、内存访问控制的方法、系统、设备和存储介质 |
WO2020250387A1 (ja) * | 2019-06-13 | 2020-12-17 | 日本電気株式会社 | 画像処理装置、画像処理方法及びプログラム |
JP6924799B2 (ja) * | 2019-07-05 | 2021-08-25 | 株式会社スクウェア・エニックス | プログラム、画像処理方法及び画像処理システム |
CN111563961B (zh) * | 2020-05-11 | 2023-08-22 | 南方电网科学研究院有限责任公司 | 一种变电站的三维建模方法和相关装置 |
KR102543899B1 (ko) * | 2020-08-27 | 2023-06-20 | 네이버랩스 주식회사 | 헤드업 디스플레이 및 그 제어방법 |
CN114007017A (zh) * | 2021-11-18 | 2022-02-01 | 浙江博采传媒有限公司 | 一种视频生成方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005250560A (ja) * | 2004-03-01 | 2005-09-15 | Mitsubishi Electric Corp | 景観表示装置 |
JP2008287696A (ja) * | 2007-05-17 | 2008-11-27 | Monolith Co Ltd | 画像処理方法と装置 |
JP2009129183A (ja) * | 2007-11-22 | 2009-06-11 | Internatl Business Mach Corp <Ibm> | 仮想空間を構築するための画像処理方法、装置 |
JP2010531007A (ja) * | 2007-05-25 | 2010-09-16 | グーグル インコーポレイテッド | パノラマのイメージを描画すること、閲覧すること、および注釈をつけること、ならびにそのアプリケーション |
US8325187B2 (en) * | 2009-10-22 | 2012-12-04 | Samsung Electronics Co., Ltd. | Method and device for real time 3D navigation in panoramic images and cylindrical spaces |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928314B1 (en) * | 1998-01-23 | 2005-08-09 | Mayo Foundation For Medical Education And Research | System for two-dimensional and three-dimensional imaging of tubular structures in the human body |
JP2007537771A (ja) * | 2003-11-03 | 2007-12-27 | ブラッコ イメージング エス.ピー.エー. | 内腔組織スクリーニングのためのシステム及び方法 |
CN100485720C (zh) * | 2006-10-13 | 2009-05-06 | 浙江师范大学 | 一种基于序列静态图像的360°环视全景生成方法 |
CN101146231A (zh) * | 2007-07-03 | 2008-03-19 | 浙江大学 | 根据多视角视频流生成全景视频的方法 |
CN101344707A (zh) * | 2008-01-09 | 2009-01-14 | 上海海事大学 | 自动多投影仪非线性几何校正与边缘融合方法 |
US8405680B1 (en) * | 2010-04-19 | 2013-03-26 | YDreams S.A., A Public Limited Liability Company | Various methods and apparatuses for achieving augmented reality |
JP5020398B1 (ja) * | 2011-06-29 | 2012-09-05 | パナソニック株式会社 | 画像変換装置、カメラ、画像変換方法およびプログラム |
CN102509348B (zh) * | 2011-09-26 | 2014-06-25 | 北京航空航天大学 | 一种共享增强现实场景的真实物体多方位表示方法 |
CN102750724B (zh) * | 2012-04-13 | 2018-12-21 | 广东赛百威信息科技有限公司 | 一种基于图像的三维和全景系统自动生成方法 |
JP5891131B2 (ja) * | 2012-07-11 | 2016-03-22 | 株式会社ソニー・コンピュータエンタテインメント | 画像生成装置および画像生成方法 |
WO2014128810A1 (ja) * | 2013-02-22 | 2014-08-28 | ソニー株式会社 | ヘッドマウントディスプレイ及び画像表示装置 |
-
2015
- 2015-07-28 US US15/743,743 patent/US20180204387A1/en not_active Abandoned
- 2015-07-28 EP EP15899623.1A patent/EP3330928A4/en not_active Withdrawn
- 2015-07-28 JP JP2017504845A patent/JP6310149B2/ja active Active
- 2015-07-28 CN CN201580081700.0A patent/CN107851333A/zh active Pending
- 2015-07-28 WO PCT/JP2015/071392 patent/WO2017017790A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005250560A (ja) * | 2004-03-01 | 2005-09-15 | Mitsubishi Electric Corp | 景観表示装置 |
JP2008287696A (ja) * | 2007-05-17 | 2008-11-27 | Monolith Co Ltd | 画像処理方法と装置 |
JP2010531007A (ja) * | 2007-05-25 | 2010-09-16 | グーグル インコーポレイテッド | パノラマのイメージを描画すること、閲覧すること、および注釈をつけること、ならびにそのアプリケーション |
JP2009129183A (ja) * | 2007-11-22 | 2009-06-11 | Internatl Business Mach Corp <Ibm> | 仮想空間を構築するための画像処理方法、装置 |
US8325187B2 (en) * | 2009-10-22 | 2012-12-04 | Samsung Electronics Co., Ltd. | Method and device for real time 3D navigation in panoramic images and cylindrical spaces |
Non-Patent Citations (2)
Title |
---|
See also references of EP3330928A4 * |
TOSHIMICHI AOKI ET AL.: "Reconstruction Environment Using Multi-Viewpoint Images", IEICE TECHNICAL REPORT, vol. 98, no. 677, 18 March 1999 (1999-03-18), pages 57 - 64, XP009504719 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12014470B2 (en) | 2019-05-22 | 2024-06-18 | Nec Corporation | Model generation apparatus, model generation system, model generation method |
Also Published As
Publication number | Publication date |
---|---|
JPWO2017017790A1 (ja) | 2017-07-27 |
EP3330928A1 (en) | 2018-06-06 |
JP6310149B2 (ja) | 2018-04-11 |
CN107851333A (zh) | 2018-03-27 |
EP3330928A4 (en) | 2019-02-27 |
US20180204387A1 (en) | 2018-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6310149B2 (ja) | 画像生成装置、画像生成システム及び画像生成方法 | |
JP6687204B2 (ja) | 投影イメージ生成方法およびその装置、イメージピクセルと深度値との間のマッピング方法 | |
US10964108B2 (en) | Augmentation of captured 3D scenes with contextual information | |
JP5093053B2 (ja) | 電子カメラ | |
JP6423435B2 (ja) | 物理的光景を表すための方法および装置 | |
CN114155299B (zh) | 一种建筑数字孪生构建方法及系统 | |
KR101871764B1 (ko) | 가상현실 기반의 시설관리 플랫폼 구축 시스템 | |
JP7182976B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN114329747B (zh) | 一种面向建筑数字孪生的虚实实体坐标映射方法及系统 | |
US20130187905A1 (en) | Methods and systems for capturing and moving 3d models and true-scale metadata of real world objects | |
JP6144364B2 (ja) | 作業支援用データ作成プログラム | |
JP6174968B2 (ja) | 撮像シミュレーション装置 | |
JP2016006627A (ja) | 画像処理装置と画像処理方法 | |
IE86364B1 (en) | Closed loop 3D video scanner for generation of textured 3D point cloud | |
JP6126501B2 (ja) | カメラ設置シミュレータ及びそのコンピュータプログラム | |
JP6640294B1 (ja) | 複合現実システム、プログラム、携帯端末装置、及び方法 | |
WO2016019390A1 (en) | Image-based object location system and process | |
CN107950019A (zh) | 信息处理装置、信息处理方法和程序 | |
CN115170742A (zh) | 人员分布展示方法、系统及显示终端 | |
JP6152888B2 (ja) | 情報処理装置、その制御方法、及びプログラム、並びに、情報処理システム、その制御方法、及びプログラム | |
JP2004030408A (ja) | 三次元画像表示装置及び表示方法 | |
JP2018088065A (ja) | 情報可視化システム、情報可視化方法、及びプログラム | |
JP2020060907A (ja) | 避雷保護範囲生成システムおよびプログラム | |
CN112862976B (zh) | 一种数据处理方法、装置及电子设备 | |
Andersen et al. | HMD-guided image-based modeling and rendering of indoor scenes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2017504845 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15899623 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15743743 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |