WO2024085455A1 - Object pose correction method and system - Google Patents
Object pose correction method and system Download PDFInfo
- Publication number
- WO2024085455A1 WO2024085455A1 PCT/KR2023/013950 KR2023013950W WO2024085455A1 WO 2024085455 A1 WO2024085455 A1 WO 2024085455A1 KR 2023013950 W KR2023013950 W KR 2023013950W WO 2024085455 A1 WO2024085455 A1 WO 2024085455A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pose
- target object
- virtual
- observation image
- initial
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012937 correction Methods 0.000 title claims abstract description 43
- 230000010365 information processing Effects 0.000 claims description 43
- 230000015654 memory Effects 0.000 claims description 39
- 238000004891 communication Methods 0.000 claims description 28
- 238000009877 rendering Methods 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 claims description 5
- 230000000007 visual effect Effects 0.000 claims description 5
- 230000004807 localization Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 230000003190 augmentative effect Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
Definitions
- the present disclosure relates to a method and system for correcting an object pose, and specifically, to a method and system for correcting the pose of a virtual three-dimensional object created based on a radiance field using an artificial neural network.
- the pose estimation of the virtual 3D model was performed using a 6-degree-of-freedom (6-DoF) pose estimation technique between the camera and the object.
- 6-DoF 6-degree-of-freedom
- a 3D model containing 3D mesh and texture information may be required.
- a 3D model including 3D mesh and texture information can be created using photogrammetry techniques or a 3D scanner.
- the present disclosure provides a method for solving the above problems, a computer-readable non-transitory recording medium on which instructions are recorded, and a device (system).
- the present disclosure may be implemented in various ways, including a method, a device (system), or a computer-readable non-transitory recording medium recording instructions.
- an object pose correction method performed by at least one processor includes obtaining a radiance field of a target object, based on an observation image captured in real time of the target object. Obtaining an initial pose, based on the initial pose and radiance field, generating a virtual 3D object that corresponds to the target object and has an initial pose, calculating the pose difference between the target object and the virtual 3D object on the observation image. and correcting the pose of the virtual 3D object based on the calculated pose difference.
- a computer-readable non-transitory recording medium recording instructions for executing a method according to an embodiment of the present disclosure on a computer is provided.
- an information processing system includes a communication module, a memory, and at least one processor connected to the memory and configured to execute at least one computer-readable program included in the memory, and at least one The program acquires the radiance field of the target object, obtains the initial pose of the target object based on an observation image taken in real time of the target object, and based on the initial pose and radiance field, corresponds to the target object and initializes the target object.
- the texture of the object from various viewpoints can be expressed by estimating and correcting the posture of the virtual 3D object using a virtual 3D object generated based on the radiance field, thereby creating a virtual 3D
- the quality of object pose estimation and correction can be improved.
- Augmented reality services can be easily built, and the cost of building augmented reality services can be reduced.
- FIG. 1 is a diagram illustrating an example of correcting the pose of a virtual 3D object with respect to a target object according to an embodiment of the present disclosure.
- Figure 2 is a schematic diagram showing a configuration in which an information processing system according to an embodiment of the present disclosure is connected to enable communication with a plurality of user terminals.
- Figure 3 is a block diagram showing the internal configuration of a user terminal and an information processing system according to an embodiment of the present disclosure.
- Figure 4 is a block diagram showing the internal configuration of a processor according to an embodiment of the present disclosure.
- Figure 5 is a diagram illustrating an example of obtaining a radiance field for a target object using a plurality of images according to an embodiment of the present disclosure.
- Figure 6 is a block diagram showing a specific method of calculating a pose difference between a target object on an observation image and a virtual 3D object with an initial pose according to an embodiment of the present disclosure.
- Figure 7 is a block diagram showing a specific method of calculating a pose difference between a target object on an observation image and a virtual 3D object with a first changed pose according to an embodiment of the present disclosure.
- FIG. 8 is a diagram illustrating an example of correcting the pose of a virtual 3D object according to an embodiment of the present disclosure.
- FIG. 9 is a flowchart illustrating an example of an object pose correction method according to an embodiment of the present disclosure.
- a modulee' or 'unit' refers to a software or hardware component, and the 'module' or 'unit' performs certain roles.
- 'module' or 'unit' is not limited to software or hardware.
- a 'module' or 'unit' may be configured to reside on an addressable storage medium and may be configured to run on one or more processors.
- a 'module' or 'part' refers to components such as software components, object-oriented software components, class components and task components, processes, functions and properties. , procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, or variables.
- Components and 'modules' or 'parts' may be combined into smaller components and 'modules' or 'parts' or further components and 'modules' or 'parts'.
- a 'module' or 'unit' may be implemented with a processor and memory.
- 'Processor' should be interpreted broadly to include general-purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, etc.
- 'processor' may refer to an application-specific integrated circuit (ASIC), programmable logic device (PLD), field programmable gate array (FPGA), etc.
- ASIC application-specific integrated circuit
- PLD programmable logic device
- FPGA field programmable gate array
- 'Processor' refers to a combination of processing devices, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in combination with a DSP core, or any other such combination of configurations. You may. Additionally, 'memory' should be interpreted broadly to include any electronic component capable of storing electronic information.
- RAM random access memory
- ROM read-only memory
- NVRAM non-volatile random access memory
- PROM programmable read-only memory
- EPROM erasable-programmable read-only memory
- a memory is said to be in electronic communication with a processor if the processor can read information from and/or write information to the memory.
- the memory integrated into the processor is in electronic communication with the processor.
- 'system' may include at least one of a server device and a cloud device, but is not limited thereto.
- a system may consist of one or more server devices.
- a system may consist of one or more cloud devices.
- the system may be operated with a server device and a cloud device configured together.
- 'display' may refer to any display device associated with a computing device, e.g., any display device capable of displaying any information/data controlled by or provided by the computing device. can refer to.
- 'each of a plurality of A' or 'each of a plurality of A' may refer to each of all components included in a plurality of A, or may refer to each of some components included in a plurality of A. .
- FIG. 1 is a diagram illustrating an example of correcting the pose of a virtual 3D object 132 with respect to a target object 130 according to an embodiment of the present disclosure.
- the target object 130 photographed by the user 110 using the camera of the user terminal 120 is converted into a virtual 3D object 132, and the virtual 3D object 132 is the target being photographed.
- View synthesis may be performed on the image of the object 130 and displayed on the display 122 of the user terminal 120.
- the pose of the virtual 3D object 132 may be continuously corrected and displayed on the display 122.
- the tilted initial pose 142 of the virtual 3D object 132 is corrected to change the pose 144. It may be displayed as a virtual three-dimensional object 132.
- a radiance field may be calculated from images of the captured target object 130, and a virtual three-dimensional object 132 may be created based on the calculated radiance field.
- the radiance field for the target object 130 may be generated based on a plurality of images taken of the target object 130 from different directions. A specific example of this will be described in detail below with reference to FIG. 5.
- the virtual 3D object 132 having the initial pose 142 may be created using the initial pose of the target object 130. That is, the initial pose of the target object 130 can be obtained based on an observation image captured in real time of the target object 130.
- the initial pose of the target object 130 may be estimated using observation position information and observation direction information associated with the observation image.
- the observation location information and observation direction information associated with the observation image are an image sensor or camera, a motion sensor, a GPS sensor, or a gyro sensor built into the device (e.g., the user terminal 120) that photographs the target object 130. It may be information obtained from a sensor (such as a sensor, etc.).
- the virtual 3D object 132 with the changed pose 144 may be created based on the pose difference between the target object and the virtual 3D object 132 on the observation image. Additionally, the pose difference value between the target object and the virtual 3D object 132 on the observation image may be calculated using an object pose correction model.
- the object pose correction model takes as input an observation image including the target object 130 and a virtual 3D object 132 for the target object, and the pose difference value of the target object and the virtual 3D object 132 on the observation image It may be an artificial neural network model trained to calculate .
- FIGS. 4 and 6 to 8 For an example of a specific method of correcting the virtual 3D object 132 with the initial pose 142 to the virtual 3D object 132 with the changed pose 144, see FIGS. 4 and 6 to 8 below. This is described in detail later.
- Figure 1 shows an example of correcting the pose of a virtual three-dimensional object 132 with respect to one target object 130, but this is only an implementation example for convenience of explanation, and various other methods according to the present disclosure.
- the pose of a virtual 3D object for a plurality of target objects may be estimated and corrected.
- the texture of the target object 130 from various viewpoints can be expressed in the process of displaying the virtual 3D object 132 for the target object 130 through viewpoint synthesis, so that the posture of the virtual 3D object can be expressed.
- the quality of estimation and correction can be improved.
- FIG. 2 is a schematic diagram showing a configuration in which the information processing system 230 according to an embodiment of the present disclosure is connected to communicate with a plurality of user terminals 210_1, 210_2, and 210_3.
- a plurality of user terminals 210_1, 210_2, and 210_3 provide a posture estimation and correction function of a virtual 3D object or an augmented reality service using this function (hereinafter collectively referred to as “augmented reality service”) through the network 220. It can be connected to the information processing system 230 that can provide.
- the plurality of user terminals 210_1, 210_2, and 210_3 may include terminals of users receiving an augmented reality service.
- the information processing system 230 includes one or more server devices and/or databases capable of storing, providing, and executing computer-executable programs (e.g., downloadable applications) and data related to providing augmented reality services, etc.
- it may include one or more distributed computing devices and/or distributed databases based on cloud computing services.
- Augmented reality services provided by the information processing system 230 may be provided to users through applications or web browsers installed on each of the plurality of user terminals 210_1, 210_2, and 210_3.
- the information processing system 230 provides or responds to requests for posture estimation and correction of virtual 3D objects, augmented reality content requests, etc. received from user terminals 210_1, 210_2, 210_3 through applications, etc. processing can be performed.
- a plurality of user terminals 210_1, 210_2, and 210_3 may communicate with the information processing system 230 through the network 220.
- the network 220 may be configured to enable communication between a plurality of user terminals 210_1, 210_2, and 210_3 and the information processing system 230.
- the network 220 may be, for example, a wired network such as Ethernet, a wired home network (Power Line Communication), a telephone line communication device, and RS-serial communication, a mobile communication network, a wireless LAN (WLAN), It may consist of wireless networks such as Wi-Fi, Bluetooth, and ZigBee, or a combination thereof.
- the communication method is not limited, and may include communication methods utilizing communication networks that the network 220 may include (e.g., mobile communication networks, wired Internet, wireless Internet, broadcasting networks, satellite networks, etc.) as well as user terminals (210_1, 210_2, 210_3). ) may also include short-range wireless communication between the network 220 may include (e.g., mobile communication networks, wired Internet, wireless Internet, broadcasting networks, satellite networks, etc.) as well as user terminals (210_1, 210_2, 210_3). ) may also include short-range wireless communication between the network 220 may include (e.g., mobile communication networks, wired Internet, wireless Internet, broadcasting networks, satellite networks, etc.) as well as user terminals (210_1, 210_2, 210_3). ) may also include short-range wireless communication between the network 220 may include (e.g., mobile communication networks, wired Internet, wireless Internet, broadcasting networks, satellite networks, etc.) as well as user terminals (210_1, 210_2,
- the mobile phone terminal (210_1), tablet terminal (210_2), and PC terminal (210_3) are shown as examples of user terminals, but they are not limited thereto, and the user terminals (210_1, 210_2, 210_3) use wired and/or wireless communication.
- This may be any computing device capable of installing and executing an application or a web browser.
- user terminals include AI speakers, smartphones, mobile phones, navigation, computers, laptops, digital broadcasting terminals, PDAs (Personal Digital Assistants), PMPs (Portable Multimedia Players), tablet PCs, game consoles, It may include wearable devices, IoT (internet of things) devices, VR (virtual reality) devices, AR (augmented reality) devices, set-top boxes, etc.
- three user terminals (210_1, 210_2, 210_3) are shown as communicating with the information processing system 230 through the network 220, but this is not limited to this, and a different number of user terminals are connected to the network ( It may be configured to communicate with the information processing system 230 through 220).
- the information processing system 230 may receive the radiance radiance field of the target object from the user terminals 210_1, 210_2, and 210_3. Additionally, observation images captured in real time of the target object can be received. Then, the information processing system 230 may generate a virtual three-dimensional object with an initial pose using the initial pose of the target object and the radiance field of the target object obtained based on the observation image. Thereafter, the information processing system 230 may calculate the pose difference between the target object and the virtual 3D object on the observation image, correct the pose of the virtual 3D object based on the calculated pose difference, and correct the pose of the virtual 3D object. The pose of the dimensional object can be synthesized from the observation image and transmitted to the user terminals 210_1, 210_2, and 210_3.
- FIG. 3 is a block diagram showing the internal configuration of the user terminal 210 and the information processing system 230 according to an embodiment of the present disclosure.
- the user terminal 210 may refer to any computing device capable of executing an application or a web browser and capable of wired/wireless communication, for example, the mobile phone terminal 210_1, tablet terminal 210_2 of FIG. 2, It may include a PC terminal (210_3), etc.
- the user terminal 210 may include a memory 312, a processor 314, a communication module 316, and an input/output interface 318.
- information processing system 230 may include memory 332, processor 334, communication module 336, and input/output interface 338. As shown in FIG.
- the user terminal 210 and the information processing system 230 are configured to communicate information and/or data through the network 220 using respective communication modules 316 and 336. It can be. Additionally, the input/output device 320 may be configured to input information and/or data to the user terminal 210 through the input/output interface 318 or to output information and/or data generated from the user terminal 210.
- Memories 312 and 332 may include any non-transitory computer-readable recording medium. According to one embodiment, the memories 312 and 332 are non-permanent mass storage devices such as read only memory (ROM), disk drive, solid state drive (SSD), flash memory, etc. It can be included. As another example, non-perishable mass storage devices such as ROM, SSD, flash memory, disk drive, etc. may be included in the user terminal 210 or the information processing system 230 as a separate persistent storage device that is distinct from memory. Additionally, the memories 312 and 332 may store an operating system and at least one program code (eg, code for an application installed and running on the user terminal 210).
- ROM read only memory
- SSD solid state drive
- flash memory etc. It can be included.
- non-perishable mass storage devices such as ROM, SSD, flash memory, disk drive, etc. may be included in the user terminal 210 or the information processing system 230 as a separate persistent storage device that is distinct from memory.
- the memories 312 and 332 may store an
- These software components may be loaded from a computer-readable recording medium separate from the memories 312 and 332.
- This separate computer-readable recording medium may include a recording medium directly connectable to the user terminal 210 and the information processing system 230, for example, a floppy drive, disk, tape, DVD/CD- It may include computer-readable recording media such as ROM drives and memory cards.
- software components may be loaded into the memories 312 and 332 through a communication module rather than a computer-readable recording medium. For example, at least one program is loaded into memory 312, 332 based on a computer program installed by files provided over the network 220 by developers or a file distribution system that distributes installation files for applications. It can be.
- the processors 314 and 334 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Instructions may be provided to the processors 314 and 334 by memories 312 and 332 or communication modules 316 and 336. For example, processors 314 and 334 may be configured to execute received instructions according to program codes stored in recording devices such as memories 312 and 332.
- the communication modules 316 and 336 may provide a configuration or function for the user terminal 210 and the information processing system 230 to communicate with each other through the network 220, and may provide a configuration or function for the user terminal 210 and/or information processing.
- the system 230 may provide a configuration or function for communicating with other user terminals or other systems (for example, a separate cloud system, etc.).
- a request or data generated by the processor 314 of the user terminal 210 according to a program code stored in a recording device such as the memory 312 may be transmitted to the information processing system 230 via the network 220 under the control of the communication module 316.
- a control signal or command provided under the control of the processor 334 of the information processing system 230 is transmitted through the communication module 316 of the user terminal 210 through the communication module 336 and the network 220. It may be received by the user terminal 210.
- the user terminal 210 may receive a posture correction result of a virtual 3D object associated with the target object, augmented reality content, etc. from the information processing system 230.
- the input/output interface 318 may be a means for interfacing with the input/output device 320.
- input devices may include devices such as cameras, keyboards, microphones, mice, etc., including audio sensors and/or image sensors
- output devices may include devices such as displays, speakers, haptic feedback devices, etc. You can.
- the input/output interface 318 may be a means for interfacing with a device that has components or functions for performing input and output, such as a touch screen, integrated into one.
- the processor 314 of the user terminal 210 uses information and/or data provided by the information processing system 230 or another user terminal when processing instructions of a computer program loaded in the memory 312. A service screen, etc.
- the input/output device 320 is shown not to be included in the user terminal 210, but the present invention is not limited to this and may be configured as a single device with the user terminal 210. Additionally, the input/output interface 338 of the information processing system 230 may be connected to the information processing system 230 or means for interfacing with a device (not shown) for input or output that the information processing system 230 may include. It can be. In FIG. 3 , the input/output device 320 is shown not to be included in the user terminal 210, but the present invention is not limited to this and may be configured as a single device with the user terminal 210. Additionally, the input/output interface 338 of the information processing system 230 may be connected to the information processing system 230 or means for interfacing with a device (not shown) for input or output that the information processing system 230 may include. It can be. In FIG.
- the input/output interfaces 318 and 338 are shown as elements configured separately from the processors 314 and 334, but the present invention is not limited thereto, and the input/output interfaces 318 and 338 may be configured to be included in the processors 314 and 334. there is.
- the user terminal 210 and information processing system 230 may include more components than those in FIG. 3 . However, there is no need to clearly show most prior art components. According to one embodiment, the user terminal 210 may be implemented to include at least some of the input/output devices 320 described above. Additionally, the user terminal 210 may further include other components such as a transceiver, a global positioning system (GPS) module, a camera, various sensors, and a database.
- GPS global positioning system
- the user terminal 210 may include components generally included in a smartphone, such as an acceleration sensor, a gyro sensor, an image sensor, a proximity sensor, a touch sensor, Various components such as an illuminance sensor, a camera module, various physical buttons, buttons using a touch panel, input/output ports, and a vibrator for vibration may be implemented to be further included in the user terminal 210.
- the processor 314 of the user terminal 210 may be configured to operate an application that provides an augmented reality service. At this time, code associated with the corresponding application and/or program may be loaded into the memory 312 of the user terminal 210.
- the processor 314 uses input devices such as a touch screen, a keyboard, a camera including an audio sensor and/or an image sensor, and a microphone connected to the input/output interface 318. It is possible to receive text, images, videos, voices, and/or actions input or selected through, and store the received text, images, videos, voices, and/or actions in the memory 312 or use the communication module 316 and It can be provided to the information processing system 230 through the network 220.
- the processor 314 receives a user's input requesting augmented reality content or posture estimation and correction of a virtual three-dimensional object associated with the target object, and processes the information through the communication module 316 and the network 220. It can be provided to the system 230.
- the processor 314 of the user terminal 210 manages, processes, and/or stores information and/or data received from the input/output device 320, other user terminals, the information processing system 230, and/or a plurality of external systems. It can be configured to do so. Information and/or data processed by processor 314 may be provided to information processing system 230 via communication module 316 and network 220.
- the processor 314 of the user terminal 210 may transmit information and/or data to the input/output device 320 through the input/output interface 318 and output the information. For example, the processor 314 may display the received information and/or data on the screen of the user terminal.
- the processor 334 of the information processing system 230 may be configured to manage, process, and/or store information and/or data received from a plurality of user terminals 210 and/or a plurality of external systems. Information and/or data processed by the processor 334 may be provided to the user terminal 210 through the communication module 336 and the network 220.
- FIG. 4 is a block diagram showing the internal configuration of the processor 334 according to an embodiment of the present disclosure.
- at least one processor 334 of the information processing system includes a radiance field restoration unit 410, an object extraction unit 420, an initial pose estimation unit 430, and a rendering unit ( 440), an object pose correction model 450, and a change pose estimation unit 460.
- the radiance field restoration unit 410 may receive a plurality of images taken of the target object from different directions. Then, the radiance field restoration unit 410 may generate a radiance field of the target object based on a plurality of images. Specifically, the radiance field restoration unit 410 may determine the location and direction (eg, camera ray value) in which the target object was photographed for each of the plurality of images. For example, the radiance field restoration unit 410 may determine the location and direction in which the target object was photographed from a plurality of images using the Structure from Motion (SfM) algorithm.
- SfM Structure from Motion
- the radiance field restoration unit 410 may obtain transparency information and color information for each point in the three-dimensional space associated with the target object, based on the location and direction in which the target object was photographed. Then, the radiance field restoration unit 410 may convert the color information for each point in the 3D space into RGB values to express the 3D appearance of the target object.
- the object extractor 420 may receive an observation image captured in real time of the target object.
- An observation image captured in real time of a target object may be received from a user terminal, but is not limited thereto, and may be received through another module included in the processor 334. Additionally, the object extractor 420 may extract the target object from an observation image in which the target object is photographed in real time. The target object on the extracted observation image may be used by the initial pose estimation unit 430 to determine the initial pose of the target object.
- the initial pose estimation unit 430 may estimate the initial pose of the target object on the extracted observation image using observation position information and observation direction information associated with the observation image.
- the observation location information and observation direction information may be information acquired from a sensor (eg, camera, GPS sensor, gyro sensor, etc.) built into a device (eg, user terminal) that photographs the target object.
- the initial pose estimation unit 430 estimates the initial pose of the target object on the observation image using visual localization (VL) technology based on at least one of observation location information and observation direction information. can do.
- VL visual localization
- the rendering unit 440 may generate a virtual 3D object that corresponds to the target object and has specific pose information based on the specific pose information and radiance field of the target object. For example, the rendering unit 440 may generate a virtual 3D object that corresponds to the target object and has an initial pose based on the initial pose and radiance field of the target object. Additionally, the rendering unit 440 may generate a virtual 3D object that corresponds to the target object and has a first modified pose based on the first modified pose and radiance field of the target object.
- the first change pose may be estimated based on the first pose difference value and the initial pose value calculated by the object pose correction model 450 through the change pose estimation unit 460.
- the rendering unit 440 may generate a virtual 3D object of the target object by performing volume rendering based on the initial pose of the target object on the observation image and the radiance field of the target object.
- the virtual 3D object of the generated target object may be displayed on the display of the user terminal by combining viewpoints in an area corresponding to the target object on the observation image.
- the object pose correction model 450 may use an observation image and a virtual 3D object as input and calculate a pose difference value between the target object on the observation image and the virtual 3D object.
- the object pose correction model 450 takes as input a first observation image and a virtual three-dimensional object having an initial pose, and a first pose between the target object on the first observation image and the virtual three-dimensional object having an initial pose.
- the difference value can be calculated.
- the pose difference value (eg, first pose difference value) may be used to correct the pose of the virtual 3D object.
- the change pose estimation unit 460 may estimate the change pose using specific pose information and pose difference values.
- the change pose estimation unit 460 may estimate the first change pose using the initial pose and the first pose difference value.
- the estimated change pose can be used by the rendering unit 440 to create a virtual 3D object with the change pose.
- the object pose correction model 450 inputs an observation image in which the target object is photographed and a virtual 3D object for the target object, and calculates a pose difference value between the target object and the virtual 3D object on the observation image. It may be a learned artificial neural network model.
- the object pose correction model 450 is an artificial neural network model learned to calculate a pose difference value between a target object on an observation image and a virtual 3D object of the target object using transparency information associated with the virtual 3D object. It can be.
- the transparency information associated with the virtual 3D object may be transparency information obtained in the process of generating a radiance field of the target object. By using transparency information, object pose correction learning can be performed on a radiance field that is not composed of a 3D mesh.
- FIG. 4 illustrates the module included in at least one processor 334 of the information processing system as an example, but the present invention is not limited thereto, and the above-described module may be included and operated in at least one processor of the user terminal.
- the internal configuration of the processor 334 shown in FIG. 4 is only an example and may be implemented differently in some embodiments.
- the processor 334 may further include other configurations than those shown, and at least some of the illustrated configurations may be omitted.
- the processor 334 in FIG. 4 is shown as a single processor, it is not limited thereto and may be comprised of a plurality of processors. Additionally, in Figure 4, each part is shown divided from a functional perspective, but this does not necessarily mean that they are physically separated.
- FIG. 5 is a diagram illustrating an example of obtaining a radiance field for a target object 514 using a plurality of images 512_1 to 512_N according to an embodiment of the present disclosure.
- the first state 510 represents an example of a process for obtaining a radiance field for the target object 514 using a plurality of images 512_1 to 512_N.
- at least one processor of the information processing system may receive a plurality of images 512_1 to 512_N taken from different directions of the target object 514, and the processor may receive each of the plurality of images (e.g. : The location and direction in which the target object 514 was photographed can be determined for the image 512_1 of the target object photographed in a specific direction.
- the processor may determine the location and direction in which the target object 514 was photographed from the plurality of images 512_1 to 512_N using the Structure from Motion (SfM) algorithm.
- the location and direction in which the target object 514 is photographed may mean a camera ray value extracted from the relationship between the camera and the target object 514.
- the processor may obtain transparency information and color information for each point in the three-dimensional space associated with the target object 514 based on the location and direction in which the target object 514 was photographed. Afterwards, the processor may convert the color information for each point in the 3D space into RGB values to express the 3D appearance of the target object 514.
- the processor can optimize RGB values using a gradient descent method, which minimizes the difference (MSE, Mean Squared Error) between the RGB value for each point in 3D space and the pixel value of the image.
- MSE Mean Squared Error
- the second state 520 represents an example of the radiance field for the target object 514.
- the processor may generate a virtual 3D object corresponding to the target object 514 using the radiance field.
- the virtual 3D object may be displayed on the display of the user terminal by combining viewpoints in an area corresponding to the target object on the image (e.g., observation image) in which the target object 514 is being photographed.
- FIG. 6 is a block diagram illustrating a specific method of calculating a pose difference between a target object on the first observation image 612 and a virtual 3D object 652 with an initial pose according to an embodiment of the present disclosure.
- at least one processor of the information processing system may receive a first observation image 612 that captures a target object in real time.
- the processor may detect the target object on the first observation image 612 through the object extractor 620.
- the processor may estimate the initial pose 632 of the target object using the initial pose estimation unit 630 based on the detected target object.
- the initial pose estimation unit 630 may estimate the initial pose 632 of the target object on the observation image using observation position information and observation direction information associated with the first observation image.
- the observation location information and observation direction information may be information acquired using a sensor (e.g., camera, GPS sensor, gyro sensor, etc.) built into a device (e.g., user terminal) that photographs the target object. .
- a sensor e.g., camera,
- the processor may use the rendering unit 650 to generate a virtual three-dimensional object 652 that corresponds to the target object and has an initial pose based on the initial pose 632 and the radiance field 642.
- the radiance field 642 may be generated by the radiance field restoration unit 640 based on a plurality of images 614 for the target object.
- the rendering unit 650 may generate a virtual 3D object 652 that corresponds to the target object and has an initial pose by performing volume rendering based on the initial pose 632 and the radiance field 642.
- the processor inputs the first observation image 612 and the virtual three-dimensional object 652 having an initial pose into the object pose correction model 660 to determine the first pose between the target object and the virtual three-dimensional object on the first observation image.
- the difference value 662 can be calculated.
- the calculated first pose difference value 662 may be used to create a virtual 3D object with a change pose (eg, a first change pose).
- FIG. 7 is a block diagram illustrating a specific method of calculating a pose difference between a target object on a second observation image 750 and a virtual 3D object 742 with a first changed pose according to an embodiment of the present disclosure.
- at least one processor of the information processing system may estimate the first change pose 722 using the change pose estimation unit 720.
- the change pose estimation unit 720 determines the first change pose 722 of the virtual three-dimensional object based on the initial pose 712 and the first pose difference value 714 of the target object. It can be estimated.
- the first changed pose 722 may have a pose value changed from the initial pose 712 of the target object by the first pose difference value 714.
- the processor uses the rendering unit 740 to generate a virtual three-dimensional object 742 that corresponds to the target object and has a first pose based on the first changed pose 722 and the radiance field 730.
- the radiance field 730 may be generated based on a plurality of images (e.g., 614 in FIG. 6) of the target object by a radiance field restoration unit (e.g., 640 in FIG. 6).
- the rendering unit 740 may generate a virtual three-dimensional object 742 that corresponds to the target object and has a first pose by performing volume rendering based on the first change pose 722 and the radiance field 730. .
- the processor inputs the second observation image 750 and the virtual 3D object 742 having the first pose into the object pose correction model 760, thereby determining the second position between the target object and the virtual 3D object on the second observation image.
- the pose difference value 762 can be calculated.
- the second observation image 750 is an observation image captured in real time of the target object and may be an observation image that follows the first observation image (e.g., 612 in FIG. 6 ) in time series.
- the calculated second pose difference value 762 may be used to create a virtual 3D object having a change pose (eg, a second change pose).
- the processor can estimate and correct the posture of a virtual 3D object corresponding to the target object on an observation image captured in real time of the target object in real time.
- FIG. 8 is a diagram illustrating an example of extracting and correcting the pose of a virtual 3D object according to an embodiment of the present disclosure.
- at least one processor of the information processing system calculates a pose difference between a target object on an observation image captured in real time of a target object (for example, a model of a Buddha statue) and a corresponding virtual three-dimensional object. can do. Additionally, the processor may correct the pose of the virtual 3D object based on the calculated pose difference.
- the first to fourth states 810, 820, 830, and 840 shown in FIG. 8 represent examples of methods for extracting and correcting the pose of a virtual 3D object.
- the first state 810 represents an example of an observation image captured in real time of a target object.
- the processor may extract the target object included in the observation image.
- the processor may extract the target object included in the observed image using an artificial neural network model learned to extract the target object using the observed image as input, but is not limited to this.
- the second state 820 represents an example of a virtual 3D object having an initial pose of the target object created based on the initial pose of the target object.
- the target object on the observation image included in the second state 820 may be a virtual 3D object corresponding to the target object on the observation image.
- the processor may estimate the initial pose of the target object using visual localization technology based on information acquired through a sensor built into a device (eg, user terminal) that photographs the target object. Various methods may be used to estimate the initial pose of the target object, and are not limited to the above-described example. Then, the processor may generate a virtual three-dimensional object that corresponds to the target object and has an initial pose, based on the initial pose and the radiance field of the target object.
- the third state 830 represents an example of a process of calculating and applying a pose difference to correct the pose of a virtual 3D object corresponding to the target object.
- the processor may calculate the pose difference between the target object and the virtual 3D object on the observation image. For example, the processor may estimate the first changed pose of the virtual 3D object based on the initial pose and the first pose difference value of the target object. Similarly, the processor may estimate the second changed pose of the virtual 3D object based on the first changed pose and the second pose difference value of the target object. According to this process, the pose difference between the virtual 3D object corresponding to the target object on the observation image and the target object on the observation image can be continuously calculated as the input of the observation image captured in real time continues.
- the fourth state 840 represents an example in which the pose of a virtual 3D object corresponding to the target object is corrected.
- the processor corrects the pose of the virtual 3D object from the initial pose to the first pose by creating a virtual 3D object that corresponds to the target object and has a first pose based on the first changed pose and the radiance field. can do.
- the virtual border (for example, the border of the gray, green, and red hexahedron) around the virtual three-dimensional object corresponding to the target object shown in the second to fourth states 820 to 840 of FIG. 8 is the pose.
- This is for convenience in explaining the estimation and correction of , and auxiliary visual effects representing the pose of a virtual three-dimensional object may or may not be expressed in other ways.
- FIG. 9 is a flowchart illustrating an example of an object pose correction method 900 according to an embodiment of the present disclosure.
- the method 900 may be initiated by a processor (e.g., at least one processor of an information processing system) obtaining a radiance luminance of a target object (S910).
- the processor may receive a plurality of images taken of the target object from different directions.
- the processor may then generate a radiance field of the target object based on the plurality of images.
- the processor may determine the location and direction in which the target object was photographed for each of the plurality of images.
- the processor may determine the location and direction in which the target object was photographed from a plurality of images using the Structure from Motion (SfM) algorithm.
- SfM Structure from Motion
- the processor may obtain transparency information and color information for each point in the three-dimensional space associated with the target object, based on the location and direction in which the target object was photographed. Additionally, the processor may convert color information for each point in the 3D space into RGB values to express the 3D appearance of the target object.
- the processor may obtain the initial pose of the target object based on an observation image captured in real time (S920). Specifically, the processor may detect a target object on an observation image. Additionally, the processor may estimate the initial pose of the target object on the observation image using observation position information and observation direction information associated with the observation image. For example, the processor may estimate the initial pose of the target object on the observation image using visual localization (VL) technology based on at least one of observation location information and observation direction information.
- VL visual localization
- the processor may generate a virtual 3D object that corresponds to the target object and has an initial pose based on the initial pose and the radiance field (S930).
- the processor may generate a virtual 3D object of the target object by performing volume rendering based on the initial pose of the target object on the observation image and the radiance field of the target object.
- the processor may calculate the pose difference between the target object and the virtual 3D object on the observation image (S940).
- the observation image may include the first observation image.
- the processor may input the first observation image and the virtual 3D object into an object pose correction model to calculate a first pose difference value between the target object on the first observation image and the virtual 3D object.
- the object pose correction model may be a model learned to calculate a pose difference value between the target object on the observation image and the virtual 3D object of the target object using transparency information associated with the virtual 3D object.
- the processor may correct the pose of the virtual 3D object based on the calculated pose difference (S950). For example, the processor may estimate the first changed pose of the virtual 3D object based on the initial pose and the first pose difference value of the target object. Additionally, the processor may generate a virtual 3D object having a first changed pose based on the first changed pose and the radiance field. Additionally, the observation image may further include a second observation image following the first observation image. For example, the processor inputs a second observation image and a virtual three-dimensional object with a first modified pose into an object pose correction model, such that the first difference between the target object on the second observed image and the virtual three-dimensional object with the first modified pose is 2 The pose difference value can be calculated.
- the processor may estimate the second changed pose of the virtual 3D object based on the first changed pose and the second pose difference value of the target object. Additionally, the processor may generate a virtual 3D object of the target object having the second changed pose based on the second changed pose and the radiance field.
- the above-described method may be provided as a computer program stored in a computer-readable recording medium for execution on a computer.
- the medium may continuously store a computer-executable program, or may temporarily store it for execution or download.
- the medium may be a variety of recording or storage means in the form of a single or several pieces of hardware combined. It is not limited to a medium directly connected to a computer system and may be distributed over a network. Examples of media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And there may be something configured to store program instructions, including ROM, RAM, flash memory, etc. Additionally, examples of other media include recording or storage media managed by app stores that distribute applications, sites or servers that supply or distribute various other software, etc.
- the processing units used to perform the techniques may include one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs). ), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, and other electronic units designed to perform the functions described in this disclosure. , a computer, or a combination thereof.
- the various illustrative logical blocks, modules, and circuits described in connection with this disclosure may be general-purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or It may be implemented or performed as any combination of those designed to perform the functions described in.
- a general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
- a processor may also be implemented as a combination of computing devices, such as a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other configuration.
- RAM random access memory
- ROM read-only memory
- NVRAM non-volatile random access memory
- PROM on computer-readable media such as programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage devices, etc. It may also be implemented as stored instructions. Instructions may be executable by one or more processors and may cause the processor(s) to perform certain aspects of the functionality described in this disclosure.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
The present disclosure relates to an object pose correction method carried out by at least one processor. The object pose correction method comprises the steps of: acquiring a radiance field of an object; acquiring an initial pose of the object on the basis of an observation image obtained by capturing the object in real-time; on the basis of the initial pose and the radiance field, generating a virtual three-dimensional object corresponding to the object and having an initial pose; calculating the pose difference between the virtual three-dimensional object and the object in the observation image; and correcting the pose of the virtual three-dimensional object on the basis of the calculated pose difference.
Description
본 개시는 객체 포즈 보정 방법 및 시스템에 관한 것으로, 구체적으로, 인공신경망을 이용하여 복사휘도장(Radiance Field)을 기초로 생성된 가상 3차원 객체의 포즈를 보정하는 방법 및 시스템에 관한 것이다.The present disclosure relates to a method and system for correcting an object pose, and specifically, to a method and system for correcting the pose of a virtual three-dimensional object created based on a radiance field using an artificial neural network.
종래에는 물체에 대한 가상의 3차원 모델을 생성하고 포즈를 추정하기 위해, 카메라와 물체 사이의 6-자유도(6-DoF) 포즈 추정 기법을 이용하여 가상의 3차원 모델의 포즈 추정을 수행하였다. 이러한 작업을 수행하기 위해서는, 3D 메쉬와 텍스처 정보를 포함한 3차원 모델이 필요할 수 있다. 3D 메쉬와 텍스처 정보를 포함한 3차원 모델은 사진 측량(Photogrammetry) 기법 또는 3D 스캐너를 이용하는 방법을 통해서 제작할 수 있다.Conventionally, in order to create a virtual 3D model for an object and estimate its pose, the pose estimation of the virtual 3D model was performed using a 6-degree-of-freedom (6-DoF) pose estimation technique between the camera and the object. . To perform these tasks, a 3D model containing 3D mesh and texture information may be required. A 3D model including 3D mesh and texture information can be created using photogrammetry techniques or a 3D scanner.
그러나, 사진 측량 기법을 이용하는 경우, 투명하거나 빛을 반사하는 물체의 3차원 특징점이 제대로 추출되지 않아 이에 대한 3차원 모델을 생성하기 어려운 문제가 있다. 한편, 3D 스캐너를 이용하는 방법은 비용이 많이 소요되고, 특정 환경에서는 3차원 모델 생성에 필요한 데이터를 취득하기 어려운 문제가 있다.However, when using photogrammetry techniques, there is a problem in that 3D feature points of transparent or light-reflecting objects are not properly extracted, making it difficult to create a 3D model for them. Meanwhile, the method of using a 3D scanner is expensive, and in certain environments, it is difficult to obtain the data necessary to create a 3D model.
본 개시는 상기와 같은 문제점을 해결하기 위한 방법, 명령어들을 기록한 컴퓨터 판독가능한 비일시적 기록 매체 및 장치(시스템)를 제공한다.The present disclosure provides a method for solving the above problems, a computer-readable non-transitory recording medium on which instructions are recorded, and a device (system).
본 개시는 방법, 장치(시스템) 또는 명령어들을 기록한 컴퓨터 판독가능한 비일시적 기록 매체를 포함한 다양한 방식으로 구현될 수 있다.The present disclosure may be implemented in various ways, including a method, a device (system), or a computer-readable non-transitory recording medium recording instructions.
본 개시의 일 실시예에 따르면, 적어도 하나의 프로세서에 의해 수행되는, 객체 포즈 보정 방법은, 대상 객체의 복사휘도장을 획득하는 단계, 대상 객체를 실시간으로 촬영한 관측 이미지에 기초하여 대상 객체의 초기 포즈를 획득하는 단계, 초기 포즈 및 복사휘도장을 기초로, 대상 객체와 대응되며 초기 포즈를 갖는 가상 3차원 객체를 생성하는 단계, 관측 이미지 상의 대상 객체 및 가상 3차원 객체의 포즈 차이를 산출하는 단계 및 산출된 포즈 차이에 기초하여, 가상 3차원 객체의 포즈를 보정하는 단계를 포함한다.According to an embodiment of the present disclosure, an object pose correction method performed by at least one processor includes obtaining a radiance field of a target object, based on an observation image captured in real time of the target object. Obtaining an initial pose, based on the initial pose and radiance field, generating a virtual 3D object that corresponds to the target object and has an initial pose, calculating the pose difference between the target object and the virtual 3D object on the observation image. and correcting the pose of the virtual 3D object based on the calculated pose difference.
본 개시의 일 실시예에 따른 방법을 컴퓨터에서 실행하기 위한 명령어들을 기록한 컴퓨터로 판독 가능한 비일시적 기록 매체가 제공된다.A computer-readable non-transitory recording medium recording instructions for executing a method according to an embodiment of the present disclosure on a computer is provided.
본 개시의 일 실시예에 따른, 정보 처리 시스템으로서, 통신 모듈, 메모리 및 메모리와 연결되고, 메모리에 포함된 컴퓨터 판독 가능한 적어도 하나의 프로그램을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로그램은, 대상 객체의 복사휘도장을 획득하고, 대상 객체를 실시간으로 촬영한 관측 이미지에 기초하여 대상 객체의 초기 포즈를 획득하고, 초기 포즈 및 복사휘도장을 기초로, 대상 객체와 대응되며 초기 포즈를 갖는 가상 3차원 객체를 생성하고, 관측 이미지 상의 대상 객체 및 가상 3차원 객체의 포즈 차이를 산출하고, 산출된 포즈 차이에 기초하여, 가상 3차원 객체의 포즈를 보정하기 위한 명령어들을 포함한다.According to an embodiment of the present disclosure, an information processing system includes a communication module, a memory, and at least one processor connected to the memory and configured to execute at least one computer-readable program included in the memory, and at least one The program acquires the radiance field of the target object, obtains the initial pose of the target object based on an observation image taken in real time of the target object, and based on the initial pose and radiance field, corresponds to the target object and initializes the target object. Includes instructions for creating a virtual 3D object with a pose, calculating the pose difference between the target object and the virtual 3D object on the observation image, and correcting the pose of the virtual 3D object based on the calculated pose difference. .
본 개시의 일 실시예에 따르면, 복사휘도장을 기초로 생성된 가상 3차원 객체를 이용하여 가상 3차원 객체의 자세를 추정 및 보정함으로써, 다양한 시점에서의 객체의 질감을 표현할 수 있어 가상 3차원 객체의 자세 추정 및 보정의 품질을 높일 수 있다.According to an embodiment of the present disclosure, the texture of the object from various viewpoints can be expressed by estimating and correcting the posture of the virtual 3D object using a virtual 3D object generated based on the radiance field, thereby creating a virtual 3D The quality of object pose estimation and correction can be improved.
본 개시의 일 실시예에 따르면, 전문적인 장비 없이, 예를 들어 스마트 폰과 같은 휴대용 컴퓨팅 장치를 이용하여 사진을 촬영하고, 이를 기초로 자세 보정된 가상 3차원 객체 복원을 수행할 수 있으므로, 보다 용이하게 증강 현실 서비스를 구축할 수 있으며, 증강 현실 서비스 구축 비용을 절감할 수 있다.According to an embodiment of the present disclosure, it is possible to take a photo without professional equipment, for example, using a portable computing device such as a smart phone, and perform posture-corrected virtual 3D object restoration based on the photo. Augmented reality services can be easily built, and the cost of building augmented reality services can be reduced.
본 개시의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 다른 효과들은 청구범위의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자(“통상의 기술자”라 함)에게 명확하게 이해될 수 있을 것이다.The effects of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned are clear to a person skilled in the art (referred to as “a person skilled in the art”) in the technical field to which this disclosure pertains from the description of the claims. It will be understandable.
본 개시의 실시예들은, 이하 설명하는 첨부 도면들을 참조하여 설명될 것이며, 여기서 유사한 참조 번호는 유사한 요소들을 나타내지만, 이에 한정되지는 않는다.Embodiments of the present disclosure will be described with reference to the accompanying drawings described below, in which like reference numerals indicate like elements, but are not limited thereto.
도 1은 본 개시의 일 실시예에 따른 대상 객체에 대한 가상 3차원 객체의 포즈를 보정하는 예시를 나타내는 도면이다.1 is a diagram illustrating an example of correcting the pose of a virtual 3D object with respect to a target object according to an embodiment of the present disclosure.
도 2는 본 개시의 일 실시예에 따른 정보 처리 시스템이 복수의 사용자 단말과 통신 가능하도록 연결된 구성을 나타내는 개요도이다.Figure 2 is a schematic diagram showing a configuration in which an information processing system according to an embodiment of the present disclosure is connected to enable communication with a plurality of user terminals.
도 3은 본 개시의 일 실시예에 따른 사용자 단말 및 정보 처리 시스템의 내부 구성을 나타내는 블록도이다.Figure 3 is a block diagram showing the internal configuration of a user terminal and an information processing system according to an embodiment of the present disclosure.
도 4는 본 개시의 일 실시예에 따른 프로세서의 내부 구성을 나타내는 블록도이다.Figure 4 is a block diagram showing the internal configuration of a processor according to an embodiment of the present disclosure.
도 5는 본 개시의 일 실시예에 따른 복수의 이미지를 이용하여 대상 객체에 대한 복사휘도장을 획득하는 예시를 나타내는 도면이다.Figure 5 is a diagram illustrating an example of obtaining a radiance field for a target object using a plurality of images according to an embodiment of the present disclosure.
도 6은 본 개시의 일 실시예에 따른 관측 이미지 상의 대상 객체 및 초기 포즈를 가진 가상 3차원 객체 사이의 포즈 차이를 산출하는 구체적인 방법을 나타내는 블록도이다.Figure 6 is a block diagram showing a specific method of calculating a pose difference between a target object on an observation image and a virtual 3D object with an initial pose according to an embodiment of the present disclosure.
도 7은 본 개시의 일 실시예에 따른 관측 이미지 상의 대상 객체 및 제1 변경 포즈를 가진 가상 3차원 객체 사이의 포즈 차이를 산출하는 구체적인 방법을 나타내는 블록도이다.Figure 7 is a block diagram showing a specific method of calculating a pose difference between a target object on an observation image and a virtual 3D object with a first changed pose according to an embodiment of the present disclosure.
도 8은 본 개시의 일 실시예에 따라 가상 3차원 객체의 포즈를 보정하는 예시를 나타내는 도면이다.FIG. 8 is a diagram illustrating an example of correcting the pose of a virtual 3D object according to an embodiment of the present disclosure.
도 9는 본 개시의 일 실시예에 따른 객체 포즈 보정 방법의 예시를 나타내는 흐름도이다.9 is a flowchart illustrating an example of an object pose correction method according to an embodiment of the present disclosure.
이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, specific details for implementing the present disclosure will be described in detail with reference to the attached drawings. However, in the following description, detailed descriptions of well-known functions or configurations will be omitted if there is a risk of unnecessarily obscuring the gist of the present disclosure.
첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응되는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.In the accompanying drawings, identical or corresponding components are given the same reference numerals. Additionally, in the description of the following embodiments, overlapping descriptions of identical or corresponding components may be omitted. However, even if descriptions of components are omitted, it is not intended that such components are not included in any embodiment.
개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 통상의 기술자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the disclosed embodiments and methods for achieving them will become clear by referring to the embodiments described below in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below and may be implemented in various different forms. The present embodiments are merely provided to ensure that the present disclosure is complete and that the present disclosure does not convey the scope of the invention to those skilled in the art. It is provided only for complete information.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. 본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.Terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail. The terms used in this specification are general terms that are currently widely used as much as possible while considering the functions in the present disclosure, but this may vary depending on the intention or precedent of a technician working in the related field, the emergence of new technology, etc. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the relevant invention. Accordingly, the terms used in this disclosure should be defined based on the meaning of the term and the overall content of the present disclosure, rather than simply the name of the term.
본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다. 명세서 전체에서 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.In this specification, singular expressions include plural expressions, unless the context clearly specifies the singular. Additionally, plural expressions include singular expressions, unless the context clearly specifies plural expressions. When it is said that a certain part includes a certain element throughout the specification, this does not mean excluding other elements, but may further include other elements, unless specifically stated to the contrary.
또한, 명세서에서 사용되는 '모듈' 또는 '부'라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, '모듈' 또는 '부'는 어떤 역할들을 수행한다. 그렇지만, '모듈' 또는 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈' 또는 '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서, '모듈' 또는 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 또는 변수들 중 적어도 하나를 포함할 수 있다. 구성요소들과 '모듈' 또는 '부'들은 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈' 또는 '부'들로 결합되거나 추가적인 구성요소들과 '모듈' 또는 '부'들로 더 분리될 수 있다.Additionally, the term 'module' or 'unit' used in the specification refers to a software or hardware component, and the 'module' or 'unit' performs certain roles. However, 'module' or 'unit' is not limited to software or hardware. A 'module' or 'unit' may be configured to reside on an addressable storage medium and may be configured to run on one or more processors. Thus, as an example, a 'module' or 'part' refers to components such as software components, object-oriented software components, class components and task components, processes, functions and properties. , procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, or variables. Components and 'modules' or 'parts' may be combined into smaller components and 'modules' or 'parts' or further components and 'modules' or 'parts'. Could be further separated.
본 개시의 일 실시예에 따르면, '모듈' 또는 '부'는 프로세서 및 메모리로 구현될 수 있다. '프로세서'는 범용 프로세서, 중앙 처리 장치(CPU), 마이크로프로세서, 디지털 신호 프로세서(DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서, '프로세서'는 주문형 반도체(ASIC), 프로그램가능 로직 디바이스(PLD), 필드 프로그램가능 게이트 어레이(FPGA) 등을 지칭할 수도 있다. '프로세서'는, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다. 또한, '메모리'는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. '메모리'는 임의 액세스 메모리(RAM), 판독-전용 메모리(ROM), 비-휘발성 임의 액세스 메모리(NVRAM), 프로그램가능 판독-전용 메모리(PROM), 소거-프로그램가능 판독 전용 메모리(EPROM), 전기적으로 소거가능 PROM(EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.According to an embodiment of the present disclosure, a 'module' or 'unit' may be implemented with a processor and memory. 'Processor' should be interpreted broadly to include general-purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, etc. In some contexts, 'processor' may refer to an application-specific integrated circuit (ASIC), programmable logic device (PLD), field programmable gate array (FPGA), etc. 'Processor' refers to a combination of processing devices, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in combination with a DSP core, or any other such combination of configurations. You may. Additionally, 'memory' should be interpreted broadly to include any electronic component capable of storing electronic information. 'Memory' refers to random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable-programmable read-only memory (EPROM), May also refer to various types of processor-readable media, such as electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, etc. A memory is said to be in electronic communication with a processor if the processor can read information from and/or write information to the memory. The memory integrated into the processor is in electronic communication with the processor.
본 개시에서, '시스템'은 서버 장치와 클라우드 장치 중 적어도 하나의 장치를 포함할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 시스템은 하나 이상의 서버 장치로 구성될 수 있다. 다른 예로서, 시스템은 하나 이상의 클라우드 장치로 구성될 수 있다. 또 다른 예로서, 시스템은 서버 장치와 클라우드 장치가 함께 구성되어 동작될 수 있다.In the present disclosure, 'system' may include at least one of a server device and a cloud device, but is not limited thereto. For example, a system may consist of one or more server devices. As another example, a system may consist of one or more cloud devices. As another example, the system may be operated with a server device and a cloud device configured together.
본 개시에서, '디스플레이'는 컴퓨팅 장치와 연관된 임의의 디스플레이 장치를 지칭할 수 있는데, 예를 들어, 컴퓨팅 장치에 의해 제어되거나 컴퓨팅 장치로부터 제공된 임의의 정보/데이터를 표시할 수 있는 임의의 디스플레이 장치를 지칭할 수 있다.In this disclosure, 'display' may refer to any display device associated with a computing device, e.g., any display device capable of displaying any information/data controlled by or provided by the computing device. can refer to.
본 개시에서, '복수의 A의 각각' 또는 '복수의 A 각각'은 복수의 A에 포함된 모든 구성 요소의 각각을 지칭하거나, 복수의 A에 포함된 일부 구성 요소의 각각을 지칭할 수 있다.In the present disclosure, 'each of a plurality of A' or 'each of a plurality of A' may refer to each of all components included in a plurality of A, or may refer to each of some components included in a plurality of A. .
도 1은 본 개시의 일 실시예에 따른 대상 객체(130)에 대한 가상 3차원 객체(132)의 포즈를 보정하는 예시를 나타내는 도면이다. 도시된 바와 같이, 사용자(110)가 사용자 단말(120)의 카메라를 이용하여 촬영된 대상 객체(130)는 가상 3차원 객체(132)로 변환되고, 가상 3차원 객체(132)는 촬영 중인 대상 객체(130)의 이미지에 시점 합성(View Synthesis)되어 사용자 단말(120)의 디스플레이(122) 상에 표시될 수 있다. 이와 동시에, 사용자 단말(120)이 대상 객체(130)를 촬영하는 과정에서 가상 3차원 객체(132)의 포즈가 계속적으로 보정되어 디스플레이(122) 상에 표시될 수 있다. 예를 들어, 도시된 바와 같이, 사용자(110)가 대상 객체(130)를 촬영하는 과정에서, 가상 3차원 객체(132)의 기울어진 초기 포즈(142)가 보정되어, 변경 포즈(144)를 가진 가상 3차원 객체(132)로 표시될 수 있다.FIG. 1 is a diagram illustrating an example of correcting the pose of a virtual 3D object 132 with respect to a target object 130 according to an embodiment of the present disclosure. As shown, the target object 130 photographed by the user 110 using the camera of the user terminal 120 is converted into a virtual 3D object 132, and the virtual 3D object 132 is the target being photographed. View synthesis may be performed on the image of the object 130 and displayed on the display 122 of the user terminal 120. At the same time, while the user terminal 120 is photographing the target object 130, the pose of the virtual 3D object 132 may be continuously corrected and displayed on the display 122. For example, as shown, in the process of the user 110 photographing the target object 130, the tilted initial pose 142 of the virtual 3D object 132 is corrected to change the pose 144. It may be displayed as a virtual three-dimensional object 132.
일 실시예에 따르면, 촬영된 대상 객체(130)의 이미지들로부터 복사휘도장이 산출되고, 산출된 복사휘도장에 기초하여 가상 3차원 객체(132)가 생성될 수 있다. 여기서, 대상 객체(130)에 대한 복사휘도장은 대상 객체(130)를 서로 다른 방향에서 촬영한 복수의 이미지를 기초로 생성될 수 있다. 이에 대한 구체적인 예시는 이하 도 5를 참조하여 상세히 후술된다.According to one embodiment, a radiance field may be calculated from images of the captured target object 130, and a virtual three-dimensional object 132 may be created based on the calculated radiance field. Here, the radiance field for the target object 130 may be generated based on a plurality of images taken of the target object 130 from different directions. A specific example of this will be described in detail below with reference to FIG. 5.
일 실시예에 따르면, 초기 포즈(142)를 가진 가상 3차원 객체(132)는 대상 객체(130)의 초기 포즈를 이용하여 생성될 수 있다. 즉, 대상 객체(130)의 초기 포즈는 대상 객체(130)를 실시간으로 촬영한 관측 이미지에 기초하여 획득할 수 있다. 예를 들어, 대상 객체(130)의 초기 포즈는 관측 이미지와 연관된 관측 위치 정보 및 관측 방향 정보를 이용하여 추정될 수 있다. 여기서, 관측 이미지와 연관된 관측 위치 정보 및 관측 방향 정보는 대상 객체(130)를 촬영하는 장치(예를 들어, 사용자 단말(120))에 내장된 이미지 센서 또는 카메라, 동작 센서, GPS 센서, 자이로 센서 등과 같은 센서)로부터 취득한 정보일 수 있다.According to one embodiment, the virtual 3D object 132 having the initial pose 142 may be created using the initial pose of the target object 130. That is, the initial pose of the target object 130 can be obtained based on an observation image captured in real time of the target object 130. For example, the initial pose of the target object 130 may be estimated using observation position information and observation direction information associated with the observation image. Here, the observation location information and observation direction information associated with the observation image are an image sensor or camera, a motion sensor, a GPS sensor, or a gyro sensor built into the device (e.g., the user terminal 120) that photographs the target object 130. It may be information obtained from a sensor (such as a sensor, etc.).
일 실시예에 따르면, 변경 포즈(144)를 가진 가상 3차원 객체(132)는 관측 이미지 상의 대상 객체 및 가상 3차원 객체(132)의 포즈 차이를 기초로 생성될 수 있다. 또한, 관측 이미지 상의 대상 객체 및 가상 3차원 객체(132)의 포즈 차이 값은 객체 포즈 보정 모델을 이용하여 산출될 수 있다. 여기서, 객체 포즈 보정 모델은 대상 객체(130)를 포함하는 관측 이미지 및 대상 객체에 대한 가상 3차원 객체(132)를 입력으로, 관측 이미지 상의 대상 객체 및 가상 3차원 객체(132)의 포즈 차이 값을 산출하도록 학습된 인공신경망 모델일 수 있다.According to one embodiment, the virtual 3D object 132 with the changed pose 144 may be created based on the pose difference between the target object and the virtual 3D object 132 on the observation image. Additionally, the pose difference value between the target object and the virtual 3D object 132 on the observation image may be calculated using an object pose correction model. Here, the object pose correction model takes as input an observation image including the target object 130 and a virtual 3D object 132 for the target object, and the pose difference value of the target object and the virtual 3D object 132 on the observation image It may be an artificial neural network model trained to calculate .
초기 포즈(142)를 가진 가상 3차원 객체(132)를 변경 포즈(144)를 가진 가상 3차원 객체(132)로 보정하는 구체적인 방법에 대한 예시는 이하 도 4, 및 도 6 내지 도 8을 참조하여 상세히 후술된다.For an example of a specific method of correcting the virtual 3D object 132 with the initial pose 142 to the virtual 3D object 132 with the changed pose 144, see FIGS. 4 and 6 to 8 below. This is described in detail later.
도 1은 하나의 대상 객체(130)에 대한 가상 3차원 객체(132)의 포즈를 보정하는 예시를 도시하고 있으나, 이는 설명의 편의를 위한 하나의 구현 예에 불과하며, 본 개시에 따른 다른 다양한 구현 예에서 복수의 대상 객체에 대한 가상 3차원 객체의 포즈를 추정 및 보정할 수 있다.Figure 1 shows an example of correcting the pose of a virtual three-dimensional object 132 with respect to one target object 130, but this is only an implementation example for convenience of explanation, and various other methods according to the present disclosure. In an implementation example, the pose of a virtual 3D object for a plurality of target objects may be estimated and corrected.
이와 같은 구성을 통해, 대상 객체(130)에 대한 가상 3차원 객체(132)를 시점 합성을 통해 표시하는 과정에서 다양한 시점에서의 대상 객체(130)의 질감을 표현할 수 있어 가상 3차원 객체의 자세를 추정 및 보정 품질을 높일 수 있다.Through this configuration, the texture of the target object 130 from various viewpoints can be expressed in the process of displaying the virtual 3D object 132 for the target object 130 through viewpoint synthesis, so that the posture of the virtual 3D object can be expressed. The quality of estimation and correction can be improved.
도 2는 본 개시의 일 실시예에 따른 정보 처리 시스템(230)이 복수의 사용자 단말(210_1, 210_2, 210_3)과 통신 가능하도록 연결된 구성을 나타내는 개요도이다. 도시된 바와 같이, 복수의 사용자 단말(210_1, 210_2, 210_3)은 네트워크(220)를 통해 가상 3차원 객체의 자세 추정 및 보정 기능 또는 이 기능을 이용한 증강 현실 서비스(이하 "증강 현실 서비스"로 통칭함)를 제공할 수 있는 정보 처리 시스템(230)과 연결될 수 있다. 여기서, 복수의 사용자 단말(210_1, 210_2, 210_3)은 증강 현실 서비스를 제공받는 사용자의 단말을 포함할 수 있다. 일 실시예에서, 정보 처리 시스템(230)은 증강 현실 서비스 제공 등과 관련된 컴퓨터 실행 가능한 프로그램(예를 들어, 다운로드 가능한 애플리케이션) 및 데이터를 저장, 제공 및 실행할 수 있는 하나 이상의 서버 장치 및/또는 데이터베이스, 또는 클라우드 컴퓨팅 서비스 기반의 하나 이상의 분산 컴퓨팅 장치 및/또는 분산 데이터베이스를 포함할 수 있다.Figure 2 is a schematic diagram showing a configuration in which the information processing system 230 according to an embodiment of the present disclosure is connected to communicate with a plurality of user terminals 210_1, 210_2, and 210_3. As shown, a plurality of user terminals 210_1, 210_2, and 210_3 provide a posture estimation and correction function of a virtual 3D object or an augmented reality service using this function (hereinafter collectively referred to as “augmented reality service”) through the network 220. It can be connected to the information processing system 230 that can provide. Here, the plurality of user terminals 210_1, 210_2, and 210_3 may include terminals of users receiving an augmented reality service. In one embodiment, the information processing system 230 includes one or more server devices and/or databases capable of storing, providing, and executing computer-executable programs (e.g., downloadable applications) and data related to providing augmented reality services, etc. Alternatively, it may include one or more distributed computing devices and/or distributed databases based on cloud computing services.
정보 처리 시스템(230)에 의해 제공되는 증강 현실 서비스는 복수의 사용자 단말(210_1, 210_2, 210_3)의 각각에 설치된 애플리케이션 또는 웹 브라우저 등을 통해 사용자에게 제공될 수 있다. 예를 들어, 정보 처리 시스템(230)은 애플리케이션 등을 통해 사용자 단말(210_1, 210_2, 210_3)로부터 수신되는 가상 3차원 객체의 자세 추정 및 보정 요청, 증강 현실 콘텐츠 요청 등에 대응하는 정보를 제공하거나 대응하는 처리를 수행할 수 있다.Augmented reality services provided by the information processing system 230 may be provided to users through applications or web browsers installed on each of the plurality of user terminals 210_1, 210_2, and 210_3. For example, the information processing system 230 provides or responds to requests for posture estimation and correction of virtual 3D objects, augmented reality content requests, etc. received from user terminals 210_1, 210_2, 210_3 through applications, etc. processing can be performed.
복수의 사용자 단말(210_1, 210_2, 210_3)은 네트워크(220)를 통해 정보 처리 시스템(230)과 통신할 수 있다. 네트워크(220)는 복수의 사용자 단말(210_1, 210_2, 210_3)과 정보 처리 시스템(230) 사이의 통신이 가능하도록 구성될 수 있다. 네트워크(220)는 설치 환경에 따라, 예를 들어, 이더넷(Ethernet), 유선 홈 네트워크(Power Line Communication), 전화선 통신 장치 및 RS-serial 통신 등의 유선 네트워크, 이동통신망, WLAN(Wireless LAN), Wi-Fi, Bluetooth 및 ZigBee 등과 같은 무선 네트워크 또는 그 조합으로 구성될 수 있다. 통신 방식은 제한되지 않으며, 네트워크(220)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망, 위성망 등)을 활용하는 통신 방식뿐만 아니라 사용자 단말(210_1, 210_2, 210_3) 사이의 근거리 무선 통신 역시 포함될 수 있다.A plurality of user terminals 210_1, 210_2, and 210_3 may communicate with the information processing system 230 through the network 220. The network 220 may be configured to enable communication between a plurality of user terminals 210_1, 210_2, and 210_3 and the information processing system 230. Depending on the installation environment, the network 220 may be, for example, a wired network such as Ethernet, a wired home network (Power Line Communication), a telephone line communication device, and RS-serial communication, a mobile communication network, a wireless LAN (WLAN), It may consist of wireless networks such as Wi-Fi, Bluetooth, and ZigBee, or a combination thereof. The communication method is not limited, and may include communication methods utilizing communication networks that the network 220 may include (e.g., mobile communication networks, wired Internet, wireless Internet, broadcasting networks, satellite networks, etc.) as well as user terminals (210_1, 210_2, 210_3). ) may also include short-range wireless communication between
도 2에서 휴대폰 단말(210_1), 태블릿 단말(210_2) 및 PC 단말 (210_3)이 사용자 단말의 예로서 도시되었으나, 이에 한정되지 않으며, 사용자 단말(210_1, 210_2, 210_3)은 유선 및/또는 무선 통신이 가능하고 애플리케이션 또는 웹 브라우저 등이 설치되어 실행될 수 있는 임의의 컴퓨팅 장치일 수 있다. 예를 들어, 사용자 단말은, AI 스피커, 스마트폰, 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC, 게임 콘솔(game console), 웨어러블 디바이스(wearable device), IoT(internet of things) 디바이스, VR(virtual reality) 디바이스, AR(augmented reality) 디바이스, 셋톱 박스 등을 포함할 수 있다. 또한, 도 2에는 3개의 사용자 단말(210_1, 210_2, 210_3)이 네트워크(220)를 통해 정보 처리 시스템(230)과 통신하는 것으로 도시되어 있으나, 이에 한정되지 않으며, 상이한 수의 사용자 단말이 네트워크(220)를 통해 정보 처리 시스템(230)과 통신하도록 구성될 수도 있다.In Figure 2, the mobile phone terminal (210_1), tablet terminal (210_2), and PC terminal (210_3) are shown as examples of user terminals, but they are not limited thereto, and the user terminals (210_1, 210_2, 210_3) use wired and/or wireless communication. This may be any computing device capable of installing and executing an application or a web browser. For example, user terminals include AI speakers, smartphones, mobile phones, navigation, computers, laptops, digital broadcasting terminals, PDAs (Personal Digital Assistants), PMPs (Portable Multimedia Players), tablet PCs, game consoles, It may include wearable devices, IoT (internet of things) devices, VR (virtual reality) devices, AR (augmented reality) devices, set-top boxes, etc. In addition, in Figure 2, three user terminals (210_1, 210_2, 210_3) are shown as communicating with the information processing system 230 through the network 220, but this is not limited to this, and a different number of user terminals are connected to the network ( It may be configured to communicate with the information processing system 230 through 220).
일 실시예에 따르면, 정보 처리 시스템(230)은 사용자 단말(210_1, 210_2, 210_3)로부터 대상 객체의 복사휘도장을 수신할 수 있다. 또한, 대상 객체를 실시간으로 촬영한 관측 이미지를 수신할 수 있다. 그리고 나서, 정보 처리 시스템(230)은 관측 이미지에 기초하여 획득된 대상 객체의 초기 포즈 및 대상 객체의 복사휘도장을 이용하여, 초기 포즈를 갖는 가상 3차원 객체를 생성할 수 있다. 그 후, 정보 처리 시스템(230)은 관측 이미지 상의 대상 객체 및 가상 3차원 객체의 포즈 차이를 산출하고, 산출된 포즈 차이에 기초하여 가상 3차원 객체의 포즈를 보정할 수 있고, 보정된 가상 3차원 객체의 포즈를 관측 이미지에 시점 합성하여 사용자 단말(210_1, 210_2, 210_3)로 전송할 수 있다.According to one embodiment, the information processing system 230 may receive the radiance radiance field of the target object from the user terminals 210_1, 210_2, and 210_3. Additionally, observation images captured in real time of the target object can be received. Then, the information processing system 230 may generate a virtual three-dimensional object with an initial pose using the initial pose of the target object and the radiance field of the target object obtained based on the observation image. Thereafter, the information processing system 230 may calculate the pose difference between the target object and the virtual 3D object on the observation image, correct the pose of the virtual 3D object based on the calculated pose difference, and correct the pose of the virtual 3D object. The pose of the dimensional object can be synthesized from the observation image and transmitted to the user terminals 210_1, 210_2, and 210_3.
도 3은 본 개시의 일 실시예에 따른 사용자 단말(210) 및 정보 처리 시스템(230)의 내부 구성을 나타내는 블록도이다. 사용자 단말(210)은 애플리케이션 또는 웹 브라우저 등을 실행 가능하고 유/무선 통신이 가능한 임의의 컴퓨팅 장치를 지칭할 수 있으며, 예를 들어, 도 2의 휴대폰 단말(210_1), 태블릿 단말(210_2), PC 단말(210_3) 등을 포함할 수 있다. 도시된 바와 같이, 사용자 단말(210)은 메모리(312), 프로세서(314), 통신 모듈(316) 및 입출력 인터페이스(318)를 포함할 수 있다. 이와 유사하게, 정보 처리 시스템(230)은 메모리(332), 프로세서(334), 통신 모듈(336) 및 입출력 인터페이스(338)를 포함할 수 있다. 도 3에 도시된 바와 같이, 사용자 단말(210) 및 정보 처리 시스템(230)은 각각의 통신 모듈(316, 336)을 이용하여 네트워크(220)를 통해 정보 및/또는 데이터를 통신할 수 있도록 구성될 수 있다. 또한, 입출력 장치(320)는 입출력 인터페이스(318)를 통해 사용자 단말(210)에 정보 및/또는 데이터를 입력하거나 사용자 단말(210)로부터 생성된 정보 및/또는 데이터를 출력하도록 구성될 수 있다.Figure 3 is a block diagram showing the internal configuration of the user terminal 210 and the information processing system 230 according to an embodiment of the present disclosure. The user terminal 210 may refer to any computing device capable of executing an application or a web browser and capable of wired/wireless communication, for example, the mobile phone terminal 210_1, tablet terminal 210_2 of FIG. 2, It may include a PC terminal (210_3), etc. As shown, the user terminal 210 may include a memory 312, a processor 314, a communication module 316, and an input/output interface 318. Similarly, information processing system 230 may include memory 332, processor 334, communication module 336, and input/output interface 338. As shown in FIG. 3, the user terminal 210 and the information processing system 230 are configured to communicate information and/or data through the network 220 using respective communication modules 316 and 336. It can be. Additionally, the input/output device 320 may be configured to input information and/or data to the user terminal 210 through the input/output interface 318 or to output information and/or data generated from the user terminal 210.
메모리(312, 332)는 비-일시적인 임의의 컴퓨터 판독 가능한 기록매체를 포함할 수 있다. 일 실시예에 따르면, 메모리(312, 332)는 ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 다른 예로서, ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리와는 구분되는 별도의 영구 저장 장치로서 사용자 단말(210) 또는 정보 처리 시스템(230)에 포함될 수 있다. 또한, 메모리(312, 332)에는 운영체제와 적어도 하나의 프로그램 코드(예를 들어, 사용자 단말(210)에 설치되어 구동되는 애플리케이션 등을 위한 코드)가 저장될 수 있다. Memories 312 and 332 may include any non-transitory computer-readable recording medium. According to one embodiment, the memories 312 and 332 are non-permanent mass storage devices such as read only memory (ROM), disk drive, solid state drive (SSD), flash memory, etc. It can be included. As another example, non-perishable mass storage devices such as ROM, SSD, flash memory, disk drive, etc. may be included in the user terminal 210 or the information processing system 230 as a separate persistent storage device that is distinct from memory. Additionally, the memories 312 and 332 may store an operating system and at least one program code (eg, code for an application installed and running on the user terminal 210).
이러한 소프트웨어 구성요소들은 메모리(312, 332)와는 별도의 컴퓨터에서 판독가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독가능한 기록매체는 이러한 사용자 단말(210) 및 정보 처리 시스템(230)에 직접 연결가능한 기록 매체를 포함할 수 있는데, 예를 들어, 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 예로서, 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈을 통해 메모리(312, 332)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 애플리케이션의 설치 파일을 배포하는 파일 배포 시스템이 네트워크(220)를 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 메모리(312, 332)에 로딩될 수 있다.These software components may be loaded from a computer-readable recording medium separate from the memories 312 and 332. This separate computer-readable recording medium may include a recording medium directly connectable to the user terminal 210 and the information processing system 230, for example, a floppy drive, disk, tape, DVD/CD- It may include computer-readable recording media such as ROM drives and memory cards. As another example, software components may be loaded into the memories 312 and 332 through a communication module rather than a computer-readable recording medium. For example, at least one program is loaded into memory 312, 332 based on a computer program installed by files provided over the network 220 by developers or a file distribution system that distributes installation files for applications. It can be.
프로세서(314, 334)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(312, 332) 또는 통신 모듈(316, 336)에 의해 프로세서(314, 334)로 제공될 수 있다. 예를 들어, 프로세서(314, 334)는 메모리(312, 332)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The processors 314 and 334 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Instructions may be provided to the processors 314 and 334 by memories 312 and 332 or communication modules 316 and 336. For example, processors 314 and 334 may be configured to execute received instructions according to program codes stored in recording devices such as memories 312 and 332.
통신 모듈(316, 336)은 네트워크(220)를 통해 사용자 단말(210)과 정보 처리 시스템(230)이 서로 통신하기 위한 구성 또는 기능을 제공할 수 있으며, 사용자 단말(210) 및/또는 정보 처리 시스템(230)이 다른 사용자 단말 또는 다른 시스템(일례로 별도의 클라우드 시스템 등)과 통신하기 위한 구성 또는 기능을 제공할 수 있다. 일례로, 사용자 단말(210)의 프로세서(314)가 메모리(312) 등과 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청 또는 데이터(예를 들어, 대상 객체와 연관된 가상 3차원 객체의 자세 추정 및 보정 요청 또는 증강 현실 콘텐츠 요청과 연관된 데이터 등)는 통신 모듈(316)의 제어에 따라 네트워크(220)를 통해 정보 처리 시스템(230)으로 전달될 수 있다. 역으로, 정보 처리 시스템(230)의 프로세서(334)의 제어에 따라 제공되는 제어 신호나 명령이 통신 모듈(336)과 네트워크(220)를 거쳐 사용자 단말(210)의 통신 모듈(316)을 통해 사용자 단말(210)에 수신될 수 있다. 예를 들어, 사용자 단말(210)은 정보 처리 시스템(230)으로부터 대상 객체와 연관된 가상 3차원 객체의 자세 보정 결과, 증강 현실 콘텐츠 등을 수신할 수 있다.The communication modules 316 and 336 may provide a configuration or function for the user terminal 210 and the information processing system 230 to communicate with each other through the network 220, and may provide a configuration or function for the user terminal 210 and/or information processing. The system 230 may provide a configuration or function for communicating with other user terminals or other systems (for example, a separate cloud system, etc.). For example, a request or data generated by the processor 314 of the user terminal 210 according to a program code stored in a recording device such as the memory 312 (e.g., posture estimation of a virtual three-dimensional object associated with the target object and Data associated with a correction request or augmented reality content request, etc.) may be transmitted to the information processing system 230 via the network 220 under the control of the communication module 316. Conversely, a control signal or command provided under the control of the processor 334 of the information processing system 230 is transmitted through the communication module 316 of the user terminal 210 through the communication module 336 and the network 220. It may be received by the user terminal 210. For example, the user terminal 210 may receive a posture correction result of a virtual 3D object associated with the target object, augmented reality content, etc. from the information processing system 230.
입출력 인터페이스(318)는 입출력 장치(320)와의 인터페이스를 위한 수단일 수 있다. 일 예로서, 입력 장치는 오디오 센서 및/또는 이미지 센서를 포함한 카메라, 키보드, 마이크로폰, 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커, 햅틱 피드백 디바이스(haptic feedback device) 등과 같은 장치를 포함할 수 있다. 다른 예로, 입출력 인터페이스(318)는 터치스크린 등과 같이 입력과 출력을 수행하기 위한 구성 또는 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 사용자 단말(210)의 프로세서(314)가 메모리(312)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 정보 처리 시스템(230)이나 다른 사용자 단말이 제공하는 정보 및/또는 데이터를 이용하여 구성되는 서비스 화면 등이 입출력 인터페이스(318)를 통해 디스플레이에 표시될 수 있다. 도 3에서는 입출력 장치(320)가 사용자 단말(210)에 포함되지 않도록 도시되어 있으나, 이에 한정되지 않으며, 사용자 단말(210)과 하나의 장치로 구성될 수 있다. 또한, 정보 처리 시스템(230)의 입출력 인터페이스(338)는 정보 처리 시스템(230)과 연결되거나 정보 처리 시스템(230)이 포함할 수 있는 입력 또는 출력을 위한 장치(미도시)와의 인터페이스를 위한 수단일 수 있다. 도 3에서는 입출력 인터페이스(318, 338)가 프로세서(314, 334)와 별도로 구성된 요소로서 도시되었으나, 이에 한정되지 않으며, 입출력 인터페이스(318, 338)가 프로세서(314, 334)에 포함되도록 구성될 수 있다.The input/output interface 318 may be a means for interfacing with the input/output device 320. As an example, input devices may include devices such as cameras, keyboards, microphones, mice, etc., including audio sensors and/or image sensors, and output devices may include devices such as displays, speakers, haptic feedback devices, etc. You can. As another example, the input/output interface 318 may be a means for interfacing with a device that has components or functions for performing input and output, such as a touch screen, integrated into one. For example, the processor 314 of the user terminal 210 uses information and/or data provided by the information processing system 230 or another user terminal when processing instructions of a computer program loaded in the memory 312. A service screen, etc. constructed by doing so may be displayed on the display through the input/output interface 318. In FIG. 3 , the input/output device 320 is shown not to be included in the user terminal 210, but the present invention is not limited to this and may be configured as a single device with the user terminal 210. Additionally, the input/output interface 338 of the information processing system 230 may be connected to the information processing system 230 or means for interfacing with a device (not shown) for input or output that the information processing system 230 may include. It can be. In FIG. 3, the input/ output interfaces 318 and 338 are shown as elements configured separately from the processors 314 and 334, but the present invention is not limited thereto, and the input/ output interfaces 318 and 338 may be configured to be included in the processors 314 and 334. there is.
사용자 단말(210) 및 정보 처리 시스템(230)은 도 3의 구성요소들보다 더 많은 구성요소들을 포함할 수 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 일 실시예에 따르면, 사용자 단말(210)은 상술된 입출력 장치(320) 중 적어도 일부를 포함하도록 구현될 수 있다. 또한, 사용자 단말(210)은 트랜시버(transceiver), GPS(Global Positioning system) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수 있다. 예를 들어, 사용자 단말(210)이 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 구성요소를 포함할 수 있으며, 예를 들어, 가속도 센서, 자이로 센서, 이미지 센서, 근접 센서, 터치 센서, 조도 센서, 카메라 모듈, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 사용자 단말(210)에 더 포함되도록 구현될 수 있다. 일 실시예에 따르면, 사용자 단말(210)의 프로세서(314)는 증강 현실 서비스를 제공하는 애플리케이션 등이 동작하도록 구성될 수 있다. 이 때, 해당 애플리케이션 및/또는 프로그램과 연관된 코드가 사용자 단말(210)의 메모리(312)에 로딩될 수 있다.The user terminal 210 and information processing system 230 may include more components than those in FIG. 3 . However, there is no need to clearly show most prior art components. According to one embodiment, the user terminal 210 may be implemented to include at least some of the input/output devices 320 described above. Additionally, the user terminal 210 may further include other components such as a transceiver, a global positioning system (GPS) module, a camera, various sensors, and a database. For example, if the user terminal 210 is a smartphone, it may include components generally included in a smartphone, such as an acceleration sensor, a gyro sensor, an image sensor, a proximity sensor, a touch sensor, Various components such as an illuminance sensor, a camera module, various physical buttons, buttons using a touch panel, input/output ports, and a vibrator for vibration may be implemented to be further included in the user terminal 210. According to one embodiment, the processor 314 of the user terminal 210 may be configured to operate an application that provides an augmented reality service. At this time, code associated with the corresponding application and/or program may be loaded into the memory 312 of the user terminal 210.
증강 현실 서비스를 제공하는 애플리케이션 등을 위한 프로그램이 동작되는 동안에, 프로세서(314)는 입출력 인터페이스(318)와 연결된 터치 스크린, 키보드, 오디오 센서 및/또는 이미지 센서를 포함한 카메라, 마이크로폰 등의 입력 장치를 통해 입력되거나 선택된 텍스트, 이미지, 영상, 음성 및/또는 동작 등을 수신할 수 있으며, 수신된 텍스트, 이미지, 영상, 음성 및/또는 동작 등을 메모리(312)에 저장하거나 통신 모듈(316) 및 네트워크(220)를 통해 정보 처리 시스템(230)에 제공할 수 있다. 예를 들어, 프로세서(314)는 대상 객체와 연관된 가상 3차원 객체의 자세 추정 및 보정 또는 증강 현실 콘텐츠를 요청하는 사용자의 입력을 수신하여, 통신 모듈(316) 및 네트워크(220)를 통해 정보 처리 시스템(230)에 제공할 수 있다.While a program for an application providing an augmented reality service is running, the processor 314 uses input devices such as a touch screen, a keyboard, a camera including an audio sensor and/or an image sensor, and a microphone connected to the input/output interface 318. It is possible to receive text, images, videos, voices, and/or actions input or selected through, and store the received text, images, videos, voices, and/or actions in the memory 312 or use the communication module 316 and It can be provided to the information processing system 230 through the network 220. For example, the processor 314 receives a user's input requesting augmented reality content or posture estimation and correction of a virtual three-dimensional object associated with the target object, and processes the information through the communication module 316 and the network 220. It can be provided to the system 230.
사용자 단말(210)의 프로세서(314)는 입출력 장치(320), 다른 사용자 단말, 정보 처리 시스템(230) 및/또는 복수의 외부 시스템으로부터 수신된 정보 및/또는 데이터를 관리, 처리 및/또는 저장하도록 구성될 수 있다. 프로세서(314)에 의해 처리된 정보 및/또는 데이터는 통신 모듈(316) 및 네트워크(220)를 통해 정보 처리 시스템(230)에 제공될 수 있다. 사용자 단말(210)의 프로세서(314)는 입출력 인터페이스(318)를 통해 입출력 장치(320)로 정보 및/또는 데이터를 전송하여, 출력할 수 있다. 예를 들면, 프로세서(314)는 수신한 정보 및/또는 데이터를 사용자 단말의 화면에 디스플레이할 수 있다.The processor 314 of the user terminal 210 manages, processes, and/or stores information and/or data received from the input/output device 320, other user terminals, the information processing system 230, and/or a plurality of external systems. It can be configured to do so. Information and/or data processed by processor 314 may be provided to information processing system 230 via communication module 316 and network 220. The processor 314 of the user terminal 210 may transmit information and/or data to the input/output device 320 through the input/output interface 318 and output the information. For example, the processor 314 may display the received information and/or data on the screen of the user terminal.
정보 처리 시스템(230)의 프로세서(334)는 복수의 사용자 단말(210) 및/또는 복수의 외부 시스템으로부터 수신된 정보 및/또는 데이터를 관리, 처리 및/또는 저장하도록 구성될 수 있다. 프로세서(334)에 의해 처리된 정보 및/또는 데이터는 통신 모듈(336) 및 네트워크(220)를 통해 사용자 단말(210)에 제공할 수 있다.The processor 334 of the information processing system 230 may be configured to manage, process, and/or store information and/or data received from a plurality of user terminals 210 and/or a plurality of external systems. Information and/or data processed by the processor 334 may be provided to the user terminal 210 through the communication module 336 and the network 220.
도 4는 본 개시의 일 실시예에 따른 프로세서(334)의 내부 구성을 나타내는 블록도이다. 일 실시예에 따르면, 도시된 바와 같이, 정보 처리 시스템의 적어도 하나의 프로세서(334)는 복사휘도장 복원부(410), 객체 추출부(420), 초기 포즈 추정부(430), 렌더링부(440), 객체 포즈 보정 모델(450) 및 변경 포즈 추정부(460)를 포함할 수 있다.Figure 4 is a block diagram showing the internal configuration of the processor 334 according to an embodiment of the present disclosure. According to one embodiment, as shown, at least one processor 334 of the information processing system includes a radiance field restoration unit 410, an object extraction unit 420, an initial pose estimation unit 430, and a rendering unit ( 440), an object pose correction model 450, and a change pose estimation unit 460.
일 실시예에 따르면, 복사휘도장 복원부(410)는 대상 객체를 서로 다른 방향에서 촬영한 복수의 이미지를 수신할 수 있다. 그리고 나서, 복사휘도장 복원부(410)는 복수의 이미지를 기초로 대상 객체의 복사휘도장을 생성할 수 있다. 구체적으로, 복사휘도장 복원부(410)는 복수의 이미지의 각각에 대해 대상 객체가 촬영된 위치 및 방향(예를 들어, 카메라 레이(Ray) 값)을 결정할 수 있다. 예를 들어, 복사휘도장 복원부(410)는 SfM(Structure from Motion) 알고리즘을 이용하여, 복수의 이미지로부터 상기 대상 객체가 촬영된 위치 및 방향을 결정할 수 있다. 복사휘도장 복원부(410)는 대상 객체가 촬영된 위치 및 방향을 기초로, 대상 객체와 연관된 3차원 공간의 각 포인트에 대한 투명도 정보 및 색 정보를 획득할 수 있다. 그리고 나서, 복사휘도장 복원부(410)는 대상 객체의 3차원 외관 표현을 위해, 3차원 공간의 각 포인트에 대한 색 정보를 RGB 값으로 변환할 수 있다.According to one embodiment, the radiance field restoration unit 410 may receive a plurality of images taken of the target object from different directions. Then, the radiance field restoration unit 410 may generate a radiance field of the target object based on a plurality of images. Specifically, the radiance field restoration unit 410 may determine the location and direction (eg, camera ray value) in which the target object was photographed for each of the plurality of images. For example, the radiance field restoration unit 410 may determine the location and direction in which the target object was photographed from a plurality of images using the Structure from Motion (SfM) algorithm. The radiance field restoration unit 410 may obtain transparency information and color information for each point in the three-dimensional space associated with the target object, based on the location and direction in which the target object was photographed. Then, the radiance field restoration unit 410 may convert the color information for each point in the 3D space into RGB values to express the 3D appearance of the target object.
일 실시예에 따르면, 객체 추출부(420)는 대상 객체를 실시간으로 촬영한 관측 이미지를 수신할 수 있다. 대상 객체를 실시간으로 촬영한 관측 이미지는 사용자 단말로부터 수신될 수 있으나, 이에 한정되지 않으며, 프로세서(334)에 포함된 다른 모듈을 통해 수신될 수 있다. 또한, 객체 추출부(420)는 대상 객체를 실시간으로 촬영한 관측 이미지 상의 대상 객체를 추출할 수 있다. 추출된 관측 이미지 상의 대상 객체는 초기 포즈 추정부(430)에서 대상 객체의 초기 포즈를 결정하는데 이용될 수 있다.According to one embodiment, the object extractor 420 may receive an observation image captured in real time of the target object. An observation image captured in real time of a target object may be received from a user terminal, but is not limited thereto, and may be received through another module included in the processor 334. Additionally, the object extractor 420 may extract the target object from an observation image in which the target object is photographed in real time. The target object on the extracted observation image may be used by the initial pose estimation unit 430 to determine the initial pose of the target object.
초기 포즈 추정부(430)는 추출된 관측 이미지 상의 대상 객체에 대해 관측 이미지와 연관된 관측 위치 정보 및 관측 방향 정보를 이용하여, 관측 이미지 상의 대상 객체의 초기 포즈를 추정할 수 있다. 여기서, 관측 위치 정보 및 관측 방향 정보는 대상 객체를 촬영하는 장치(예를 들어, 사용자 단말)에 내장된 센서(예를 들어, 카메라, GPS 센서, 자이로 센서 등)로부터 취득한 정보일 수 있다. 예를 들어, 초기 포즈 추정부(430)는 관측 위치 정보 및 관측 방향 정보 중 적어도 하나의 정보를 기초로 비주얼 로컬라이제이션(VL, Visual Localization) 기술을 이용하여, 관측 이미지 상의 대상 객체의 초기 포즈를 추정할 수 있다.The initial pose estimation unit 430 may estimate the initial pose of the target object on the extracted observation image using observation position information and observation direction information associated with the observation image. Here, the observation location information and observation direction information may be information acquired from a sensor (eg, camera, GPS sensor, gyro sensor, etc.) built into a device (eg, user terminal) that photographs the target object. For example, the initial pose estimation unit 430 estimates the initial pose of the target object on the observation image using visual localization (VL) technology based on at least one of observation location information and observation direction information. can do.
렌더링부(440)는 대상 객체의 특정 포즈 정보 및 복사휘도장을 기초로, 대상 객체와 대응되며 특정 포즈 정보를 갖는 가상 3차원 객체를 생성할 수 있다. 예를 들어, 렌더링부(440)는 대상 객체의 초기 포즈 및 복사휘도장을 기초로, 대상 객체와 대응되며 초기 포즈를 갖는 가상 3차원 객체를 생성할 수 있다. 또한, 렌더링부(440)는 대상 객체의 제1 변경 포즈 및 복사휘도장을 기초로, 대상 객체와 대응되며 제1 변경 포즈를 갖는 가상 3차원 객체를 생성할 수 있다. 여기서, 제1 변경 포즈는 변경 포즈 추정부(460)를 통해 객체 포즈 보정 모델(450)에 의해 산출된 제1 포즈 차이 값과 초기 포즈 값을 기초로 추정될 수 있다. 일 실시예에서, 렌더링부(440)는 관측 이미지 상의 대상 객체의 초기 포즈 및 대상 객체의 복사휘도장을 기초로 볼륨 렌더링(Volume Rendering)을 수행함으로써, 대상 객체의 가상 3차원 객체를 생성할 수 있다. 여기서, 생성된 대상 객체의 가상 3차원 객체는 관측 이미지 상의 대상 객체와 대응되는 영역에 시점 합성되어 사용자 단말의 디스플레이 상에 표시될 수 있다.The rendering unit 440 may generate a virtual 3D object that corresponds to the target object and has specific pose information based on the specific pose information and radiance field of the target object. For example, the rendering unit 440 may generate a virtual 3D object that corresponds to the target object and has an initial pose based on the initial pose and radiance field of the target object. Additionally, the rendering unit 440 may generate a virtual 3D object that corresponds to the target object and has a first modified pose based on the first modified pose and radiance field of the target object. Here, the first change pose may be estimated based on the first pose difference value and the initial pose value calculated by the object pose correction model 450 through the change pose estimation unit 460. In one embodiment, the rendering unit 440 may generate a virtual 3D object of the target object by performing volume rendering based on the initial pose of the target object on the observation image and the radiance field of the target object. there is. Here, the virtual 3D object of the generated target object may be displayed on the display of the user terminal by combining viewpoints in an area corresponding to the target object on the observation image.
객체 포즈 보정 모델(450)은 관측 이미지 및 가상 3차원 객체를 입력으로, 관측 이미지 상의 대상 객체 및 가상 3차원 객체 사이의 포즈 차이 값을 산출할 수 있다. 예를 들어, 객체 포즈 보정 모델(450)은 제1 관측 이미지 및 초기 포즈를 갖는 가상 3차원 객체를 입력으로, 제1 관측 이미지 상의 대상 객체 및 초기 포즈를 갖는 가상 3차원 객체 사이의 제1 포즈 차이 값을 산출할 수 있다. 여기서, 포즈 차이 값(예를 들어, 제1 포즈 차이 값)은 가상 3차원 객체의 포즈를 보정하는데 이용될 수 있다. 구체적으로, 변경 포즈 추정부(460)는 특정 포즈 정보 및 포즈 차이 값을 이용하여, 변경 포즈를 추정할 수 있다. 예를 들어, 변경 포즈 추정부(460)는 초기 포즈 및 제1 포즈 차이 값을 이용하여 제1 변경 포즈를 추정할 수 있다. 추정된 변경 포즈는 렌더링부(440)에 의해, 변경 포즈를 갖는 가상 3차원 객체를 생성하는데 이용될 수 있다.The object pose correction model 450 may use an observation image and a virtual 3D object as input and calculate a pose difference value between the target object on the observation image and the virtual 3D object. For example, the object pose correction model 450 takes as input a first observation image and a virtual three-dimensional object having an initial pose, and a first pose between the target object on the first observation image and the virtual three-dimensional object having an initial pose. The difference value can be calculated. Here, the pose difference value (eg, first pose difference value) may be used to correct the pose of the virtual 3D object. Specifically, the change pose estimation unit 460 may estimate the change pose using specific pose information and pose difference values. For example, the change pose estimation unit 460 may estimate the first change pose using the initial pose and the first pose difference value. The estimated change pose can be used by the rendering unit 440 to create a virtual 3D object with the change pose.
일 실시예에서, 객체 포즈 보정 모델(450)은 대상 객체가 촬영된 관측 이미지 및 대상 객체에 대한 가상 3차원 객체를 입력으로, 관측 이미지 상의 대상 객체 및 가상 3차원 객체의 포즈 차이 값을 산출하도록 학습된 인공신경망 모델일 수 있다. 예를 들어, 객체 포즈 보정 모델(450)은 가상 3차원 객체와 연관된 투명도 정보를 이용하여, 관측 이미지 상의 대상 객체 및 대상 객체의 가상 3차원 객체 사이의 포즈 차이 값을 산출하도록 학습된 인공신경망 모델일 수 있다. 여기서, 가상 3차원 객체와 연관된 투명도 정보는 대상 객체의 복사휘도장을 생성하는 과정에서 획득된 투명도 정보일 수 있다. 투명도 정보를 이용함으로써 3D 메쉬로 구성되지 않은 복사휘도장에 대하여 객체 포즈 보정 학습이 수행될 수 있다.In one embodiment, the object pose correction model 450 inputs an observation image in which the target object is photographed and a virtual 3D object for the target object, and calculates a pose difference value between the target object and the virtual 3D object on the observation image. It may be a learned artificial neural network model. For example, the object pose correction model 450 is an artificial neural network model learned to calculate a pose difference value between a target object on an observation image and a virtual 3D object of the target object using transparency information associated with the virtual 3D object. It can be. Here, the transparency information associated with the virtual 3D object may be transparency information obtained in the process of generating a radiance field of the target object. By using transparency information, object pose correction learning can be performed on a radiance field that is not composed of a 3D mesh.
도 4는 정보 처리 시스템의 적어도 하나의 프로세서(334)에 포함된 모듈을 예시로 도시하였으나, 이에 한정되지 않으며, 전술한 모듈은 사용자 단말의 적어도 하나의 프로세서에 포함되어 동작될 수 있다.Figure 4 illustrates the module included in at least one processor 334 of the information processing system as an example, but the present invention is not limited thereto, and the above-described module may be included and operated in at least one processor of the user terminal.
도 4에서 도시된 프로세서(334)의 내부 구성은 예시일 뿐이며, 일부 실시예에서는 다르게 구현될 수 있다. 예를 들어, 프로세서(334)는 도시된 구성 외 다른 구성을 더 포함할 수 있으며, 도시된 구성의 적어도 일부가 생략될 수 있다. 또한, 도 4에서 프로세서(334)는 단일 프로세서인 것으로 도시되었으나 이에 한정되지 않으며, 복수의 프로세서로 구성될 수 있다. 또한, 도 4에서는 기능적인 측면에서 각 부를 나누어 도시하였으나, 이는 반드시 물리적으로 분리됨을 의미하지는 않는다.The internal configuration of the processor 334 shown in FIG. 4 is only an example and may be implemented differently in some embodiments. For example, the processor 334 may further include other configurations than those shown, and at least some of the illustrated configurations may be omitted. Additionally, although the processor 334 in FIG. 4 is shown as a single processor, it is not limited thereto and may be comprised of a plurality of processors. Additionally, in Figure 4, each part is shown divided from a functional perspective, but this does not necessarily mean that they are physically separated.
도 5는 본 개시의 일 실시예에 따른 복수의 이미지(512_1 내지 512_N)를 이용하여 대상 객체(514)에 대한 복사휘도장을 획득하는 예시를 나타내는 도면이다. 제1 상태(510)는 복수의 이미지(512_1 내지 512_N)를 이용하여 대상 객체(514)에 대한 복사휘도장을 획득하는 과정의 예시를 나타낸다. 일 실시예에 따르면, 정보 처리 시스템의 적어도 하나의 프로세서는 대상 객체(514)를 서로 다른 방향에서 촬영한 복수의 이미지(512_1 내지 512_N)를 수신할 수 있고, 프로세서는 복수의 이미지의 각각(예: 특정 방향에서 촬영된 대상 객체의 이미지(512_1))에 대해 대상 객체(514)가 촬영된 위치 및 방향을 결정할 수 있다. 예를 들어, 프로세서는 SfM(Structure from Motion) 알고리즘을 이용하여, 복수의 이미지(512_1 내지 512_N)로부터 대상 객체(514)가 촬영된 위치 및 방향을 결정할 수 있다. 여기서, 대상 객체(514)가 촬영된 위치 및 방향은 카메라 및 대상 객체(514) 관계로부터 추출된 카메라 레이 값을 의미할 수 있다.FIG. 5 is a diagram illustrating an example of obtaining a radiance field for a target object 514 using a plurality of images 512_1 to 512_N according to an embodiment of the present disclosure. The first state 510 represents an example of a process for obtaining a radiance field for the target object 514 using a plurality of images 512_1 to 512_N. According to one embodiment, at least one processor of the information processing system may receive a plurality of images 512_1 to 512_N taken from different directions of the target object 514, and the processor may receive each of the plurality of images (e.g. : The location and direction in which the target object 514 was photographed can be determined for the image 512_1 of the target object photographed in a specific direction. For example, the processor may determine the location and direction in which the target object 514 was photographed from the plurality of images 512_1 to 512_N using the Structure from Motion (SfM) algorithm. Here, the location and direction in which the target object 514 is photographed may mean a camera ray value extracted from the relationship between the camera and the target object 514.
일 시시예에서, 프로세서는 대상 객체(514)가 촬영된 위치 및 방향을 기초로, 대상 객체(514)와 연관된 3차원 공간의 각 포인트에 대한 투명도 정보 및 색 정보를 획득할 수 있다. 그 후, 프로세서는 대상 객체(514)의 3차원 외관 표현을 위해, 3차원 공간의 각 포인트에 대한 색 정보를 RGB 값으로 변환할 수 있다. 프로세서는 3차원 공간의 각 포인트에 대한 RGB 값과 이미지의 픽셀 값과의 차이(MSE, Mean Squared Error)를 최소화하는, 경사 하강법(Gradient descent) 방식을 이용하여 RGB 값을 최적화할 수 있다.In one embodiment, the processor may obtain transparency information and color information for each point in the three-dimensional space associated with the target object 514 based on the location and direction in which the target object 514 was photographed. Afterwards, the processor may convert the color information for each point in the 3D space into RGB values to express the 3D appearance of the target object 514. The processor can optimize RGB values using a gradient descent method, which minimizes the difference (MSE, Mean Squared Error) between the RGB value for each point in 3D space and the pixel value of the image.
제2 상태(520)는 대상 객체(514)에 대한 복사휘도장의 예시를 나타낸다. 일 실시예에서, 프로세서는 복사휘도장을 이용하여 대상 객체(514)와 대응되는 가상 3차원 객체를 생성할 수 있다. 여기서, 가상 3차원 객체는 대상 객체(514)를 촬영 중인 이미지(예를 들어, 관측 이미지) 상의 대상 객체와 대응되는 영역에 시점 합성되어 사용자 단말의 디스플레이 상에 표시될 수 있다The second state 520 represents an example of the radiance field for the target object 514. In one embodiment, the processor may generate a virtual 3D object corresponding to the target object 514 using the radiance field. Here, the virtual 3D object may be displayed on the display of the user terminal by combining viewpoints in an area corresponding to the target object on the image (e.g., observation image) in which the target object 514 is being photographed.
도 6은 본 개시의 일 실시예에 따른 제1 관측 이미지(612) 상의 대상 객체 및 초기 포즈를 가진 가상 3차원 객체(652) 사이의 포즈 차이를 산출하는 구체적인 방법을 나타내는 블록도이다. 일 실시예에 따르면, 정보 처리 시스템의 적어도 하나의 프로세서는 대상 객체를 실시간으로 촬영한 제1 관측 이미지(612)를 수신할 수 있다. 프로세서는 객체 추출부(620)를 통해 제1 관측 이미지(612) 상의 대상 객체를 검출할 수 있다. 프로세서는 검출된 대상 객체를 기초로 초기 포즈 추정부(630)를 이용하여 대상 객체의 초기 포즈(632)를 추정할 수 있다. 예를 들어, 초기 포즈 추정부(630)는 제1 관측 이미지와 연관된 관측 위치 정보 및 관측 방향 정보를 이용하여, 관측 이미지 상의 대상 객체의 초기 포즈(632)를 추정할 수 있다. 여기서, 관측 위치 정보 및 관측 방향 정보는 대상 객체를 촬영하는 장치(예를 들어, 사용자 단말)에 내장된 센서(예를 들어, 카메라, GPS 센서, 자이로 센서 등)를 이용하여 취득한 정보일 수 있다.FIG. 6 is a block diagram illustrating a specific method of calculating a pose difference between a target object on the first observation image 612 and a virtual 3D object 652 with an initial pose according to an embodiment of the present disclosure. According to one embodiment, at least one processor of the information processing system may receive a first observation image 612 that captures a target object in real time. The processor may detect the target object on the first observation image 612 through the object extractor 620. The processor may estimate the initial pose 632 of the target object using the initial pose estimation unit 630 based on the detected target object. For example, the initial pose estimation unit 630 may estimate the initial pose 632 of the target object on the observation image using observation position information and observation direction information associated with the first observation image. Here, the observation location information and observation direction information may be information acquired using a sensor (e.g., camera, GPS sensor, gyro sensor, etc.) built into a device (e.g., user terminal) that photographs the target object. .
그리고 나서, 프로세서는 렌더링부(650)를 이용하여 초기 포즈(632) 및 복사휘도장(642)을 기초로, 대상 객체와 대응되며 초기 포즈를 갖는 가상 3차원 객체(652)를 생성할 수 있다. 여기서, 복사휘도장(642)은, 복사휘도장 복원부(640)에 의해, 대상 객체에 대한 복수의 이미지(614)를 기초로 생성될 수 있다. 렌더링부(650)는 초기 포즈(632) 및 복사휘도장(642)을 기초로 볼륨 렌더링을 수행함으로써 대상 객체와 대응되며 초기 포즈를 갖는 가상 3차원 객체(652)를 생성할 수 있다.Then, the processor may use the rendering unit 650 to generate a virtual three-dimensional object 652 that corresponds to the target object and has an initial pose based on the initial pose 632 and the radiance field 642. . Here, the radiance field 642 may be generated by the radiance field restoration unit 640 based on a plurality of images 614 for the target object. The rendering unit 650 may generate a virtual 3D object 652 that corresponds to the target object and has an initial pose by performing volume rendering based on the initial pose 632 and the radiance field 642.
프로세서는 제1 관측 이미지(612) 및 초기 포즈를 갖는 가상 3차원 객체(652)를 객체 포즈 보정 모델(660)에 입력하여, 제1 관측 이미지 상의 대상 객체 및 가상 3차원 객체 사이의 제1 포즈 차이 값(662)을 산출할 수 있다. 산출된 제1 포즈 차이 값(662)은 변경 포즈(예를 들어, 제1 변경 포즈)를 갖는 가상 3차원 객체를 생성하는데 이용될 수 있다.The processor inputs the first observation image 612 and the virtual three-dimensional object 652 having an initial pose into the object pose correction model 660 to determine the first pose between the target object and the virtual three-dimensional object on the first observation image. The difference value 662 can be calculated. The calculated first pose difference value 662 may be used to create a virtual 3D object with a change pose (eg, a first change pose).
도 7은 본 개시의 일 실시예에 따른 제2 관측 이미지(750) 상의 대상 객체 및 제1 변경 포즈를 가진 가상 3차원 객체(742) 사이의 포즈 차이를 산출하는 구체적인 방법을 나타내는 블록도이다. 일 실시예에 따르면, 정보 처리 시스템의 적어도 하나의 프로세서는 변경 포즈 추정부(720)를 이용하여, 제1 변경 포즈(722)를 추정할 수 있다. 예를 들어, 도시된 바와 같이, 변경 포즈 추정부(720)는 대상 객체의 초기 포즈(712) 및 제1 포즈 차이 값(714)을 기초로 가상 3차원 객체의 제1 변경 포즈(722)를 추정할 수 있다. 여기서, 제1 변경 포즈(722)는 대상 객체의 초기 포즈(712)에서 제1 포즈 차이 값(714)만큼 변경된 포즈 값을 가질 수 있다.FIG. 7 is a block diagram illustrating a specific method of calculating a pose difference between a target object on a second observation image 750 and a virtual 3D object 742 with a first changed pose according to an embodiment of the present disclosure. According to one embodiment, at least one processor of the information processing system may estimate the first change pose 722 using the change pose estimation unit 720. For example, as shown, the change pose estimation unit 720 determines the first change pose 722 of the virtual three-dimensional object based on the initial pose 712 and the first pose difference value 714 of the target object. It can be estimated. Here, the first changed pose 722 may have a pose value changed from the initial pose 712 of the target object by the first pose difference value 714.
그리고 나서, 프로세서는 렌더링부(740)를 이용하여 제1 변경 포즈(722) 및 복사휘도장(730)을 기초로, 대상 객체와 대응되며 제1 포즈를 갖는 가상 3차원 객체(742)를 생성할 수 있다. 여기서, 복사휘도장(730)은, 복사휘도장 복원부(예: 도 6의 640)에 의해, 대상 객체에 대한 복수의 이미지(예: 도 6의 614)를 기초로 생성될 수 있다. 렌더링부(740)는 제1 변경 포즈(722) 및 복사휘도장(730)을 기초로 볼륨 렌더링을 수행함으로써 대상 객체와 대응되며 제1 포즈를 갖는 가상 3차원 객체(742)를 생성할 수 있다.Then, the processor uses the rendering unit 740 to generate a virtual three-dimensional object 742 that corresponds to the target object and has a first pose based on the first changed pose 722 and the radiance field 730. can do. Here, the radiance field 730 may be generated based on a plurality of images (e.g., 614 in FIG. 6) of the target object by a radiance field restoration unit (e.g., 640 in FIG. 6). The rendering unit 740 may generate a virtual three-dimensional object 742 that corresponds to the target object and has a first pose by performing volume rendering based on the first change pose 722 and the radiance field 730. .
프로세서는 제2 관측 이미지(750) 및 제1 포즈를 갖는 가상 3차원 객체(742)를 객체 포즈 보정 모델(760)에 입력하여, 제2 관측 이미지 상의 대상 객체 및 가상 3차원 객체 사이의 제2 포즈 차이 값(762)을 산출할 수 있다. 여기서, 제2 관측 이미지(750)는 대상 객체를 실시간으로 촬영한 관측 이미지로서 제1 관측 이미지(예: 도 6의 612)와 시계열상 후속하는 관측 이미지일 수 있다. 또한, 산출된 제2 포즈 차이 값(762)은 변경 포즈(예를 들어, 제2 변경 포즈)를 갖는 가상 3차원 객체를 생성하는데 이용될 수 있다. 이와 같은 구성을 통해, 프로세서는 대상 객체를 실시간으로 촬영한 관측 이미지 상의 대상 객체에 대응하는 가상 3차원 객체의 자세를 실시간으로 추정 및 보정할 수 있다.The processor inputs the second observation image 750 and the virtual 3D object 742 having the first pose into the object pose correction model 760, thereby determining the second position between the target object and the virtual 3D object on the second observation image. The pose difference value 762 can be calculated. Here, the second observation image 750 is an observation image captured in real time of the target object and may be an observation image that follows the first observation image (e.g., 612 in FIG. 6 ) in time series. Additionally, the calculated second pose difference value 762 may be used to create a virtual 3D object having a change pose (eg, a second change pose). Through this configuration, the processor can estimate and correct the posture of a virtual 3D object corresponding to the target object on an observation image captured in real time of the target object in real time.
도 8은 본 개시의 일 실시예에 따라 가상 3차원 객체의 포즈를 추출 및 보정하는 예시를 나타내는 도면이다. 일 실시예에 따르면, 정보 처리 시스템의 적어도 하나의 프로세서는 대상 객체(예를 들어, 부처상의 모형)를 실시간으로 촬영한 관측 이미지 상의 대상 객체 및 이에 대응하는 가상 3차원 객체 사이의 포즈 차이를 산출할 수 있다. 또한, 프로세서는 산출된 포즈 차이에 기초하여, 가상 3차원 객체의 포즈를 보정할 수 있다. 도 8에 도시된 제1 상태 내지 제4 상태(810, 820, 830, 840)는 가상 3차원 객체의 포즈를 추출 및 보정하는 방법의 예시를 나타낸다. FIG. 8 is a diagram illustrating an example of extracting and correcting the pose of a virtual 3D object according to an embodiment of the present disclosure. According to one embodiment, at least one processor of the information processing system calculates a pose difference between a target object on an observation image captured in real time of a target object (for example, a model of a Buddha statue) and a corresponding virtual three-dimensional object. can do. Additionally, the processor may correct the pose of the virtual 3D object based on the calculated pose difference. The first to fourth states 810, 820, 830, and 840 shown in FIG. 8 represent examples of methods for extracting and correcting the pose of a virtual 3D object.
제1 상태(810)는 대상 객체를 실시간으로 촬영한 관측 이미지의 예시를 나타낸다. 프로세서는 관측 이미지에 포함된 대상 객체를 추출할 수 있다. 예를 들어, 프로세서는 관측 이미지를 입력으로 대상 객체를 추출하도록 학습된 인공신경망 모델을 이용하여, 관측 이미지에 포함된 대상 객체를 추출할 수 있으나, 이에 한정되지 않는다.The first state 810 represents an example of an observation image captured in real time of a target object. The processor may extract the target object included in the observation image. For example, the processor may extract the target object included in the observed image using an artificial neural network model learned to extract the target object using the observed image as input, but is not limited to this.
제2 상태(820)는 대상 객체의 초기 포즈를 기초로 생성된 대상 객체의 초기 포즈를 갖는 가상 3차원 객체의 예시를 나타낸다. 제2 상태(820)에 포함된 관측 이미지 상의 대상 객체는 관측 이미지 상의 대상 객체에 대응되는 가상 3차원 객체일 수 있다. 일 실시예에서, 프로세서는 대상 객체를 촬영하는 장치(예를 들어, 사용자 단말)에 내장된 센서를 통해 획득한 정보를 기초로 비주얼 로컬라이제이션 기술을 이용하여 대상 객체의 초기 포즈를 추정할 수 있다. 대상 객체의 초기 포즈를 추정하는 방법은 다양한 방법이 이용될 수 있으며, 전술한 예시에 한정되지 않는다. 그리고 나서 프로세서는 초기 포즈 및 대상 객체의 복사휘도장을 기초로, 대상 객체와 대응되며 초기 포즈를 갖는 가상 3차원 객체를 생성할 수 있다.The second state 820 represents an example of a virtual 3D object having an initial pose of the target object created based on the initial pose of the target object. The target object on the observation image included in the second state 820 may be a virtual 3D object corresponding to the target object on the observation image. In one embodiment, the processor may estimate the initial pose of the target object using visual localization technology based on information acquired through a sensor built into a device (eg, user terminal) that photographs the target object. Various methods may be used to estimate the initial pose of the target object, and are not limited to the above-described example. Then, the processor may generate a virtual three-dimensional object that corresponds to the target object and has an initial pose, based on the initial pose and the radiance field of the target object.
제3 상태(830)는 대상 객체에 대응되는 가상의 3차원 객체의 포즈를 보정하기 위해 포즈 차이를 산출하여 적용하는 과정의 예시를 나타낸다. 일 실시예에서, 프로세서는 관측 이미지 상의 대상 객체 및 가상 3차원 객체의 포즈 차이를 산출할 수 있다. 예를 들어, 프로세서는 대상 객체의 초기 포즈 및 제1 포즈 차이 값을 기초로 가상 3차원 객체의 제1 변경 포즈를 추정할 수 있다. 이와 유사하게, 프로세서는 대상 객체의 제1 변경 포즈 및 제2 포즈 차이 값을 기초로 가상 3차원 객체의 제2 변경 포즈를 추정할 수 있다. 이와 같은 과정에 따라, 관측 이미지 상의 대상 객체에 대응되는 가상 3차원 객체와 관측 이미지 상의 대상 객체 사이의 포즈 차이는 실시간으로 촬영되는 관측 이미지의 입력이 계속됨에 따라 계속하여 산출될 수 있다.The third state 830 represents an example of a process of calculating and applying a pose difference to correct the pose of a virtual 3D object corresponding to the target object. In one embodiment, the processor may calculate the pose difference between the target object and the virtual 3D object on the observation image. For example, the processor may estimate the first changed pose of the virtual 3D object based on the initial pose and the first pose difference value of the target object. Similarly, the processor may estimate the second changed pose of the virtual 3D object based on the first changed pose and the second pose difference value of the target object. According to this process, the pose difference between the virtual 3D object corresponding to the target object on the observation image and the target object on the observation image can be continuously calculated as the input of the observation image captured in real time continues.
제4 상태(840)는 대상 객체에 대응되는 가상의 3차원 객체의 포즈가 보정된 예시를 나타낸다. 예를 들어, 프로세서는 제1 변경 포즈와 복사휘도장을 기초로 대상 객체와 대응되며 제1 포즈를 갖는 가상 3차원 객체를 생성함으로써, 가상 3차원 객체의 포즈를 초기 포즈에서 제1 포즈로 보정할 수 있다.The fourth state 840 represents an example in which the pose of a virtual 3D object corresponding to the target object is corrected. For example, the processor corrects the pose of the virtual 3D object from the initial pose to the first pose by creating a virtual 3D object that corresponds to the target object and has a first pose based on the first changed pose and the radiance field. can do.
도 8의 제2 상태 내지 제4 상태(820 내지 840)에 도시된 대상 객체에 대응되는 가상의 3차원 객체 주변의 가상의 테두리(예를 들어, 그레이, 초록 및 빨간색의 육면체의 테두리)는 포즈의 추정 및 보정에 대한 설명의 편의에 의한 것이며, 가상의 3차원 객체의 포즈를 나타내는 보조 시각적 효과는 다른 방식으로 표현되거나 표현되지 않을 수 있다.The virtual border (for example, the border of the gray, green, and red hexahedron) around the virtual three-dimensional object corresponding to the target object shown in the second to fourth states 820 to 840 of FIG. 8 is the pose. This is for convenience in explaining the estimation and correction of , and auxiliary visual effects representing the pose of a virtual three-dimensional object may or may not be expressed in other ways.
도 9는 본 개시의 일 실시예에 따른 객체 포즈 보정 방법(900)의 예시를 나타내는 흐름도이다. 방법(900)은 프로세서(예를 들어, 정보 처리 시스템의 적어도 하나의 프로세서)가 대상 객체의 복사휘도장)을 획득함으로써 개시될 수 있다(S910). 구체적으로, 프로세서는 대상 객체를 서로 다른 방향에서 촬영한 복수의 이미지를 수신할 수 있다. 그리고 나서, 프로세서는 복수의 이미지를 기초로 대상 객체의 복사휘도장을 생성할 수 있다. 예를 들어, 프로세서는 복수의 이미지의 각각에 대해 대상 객체가 촬영된 위치 및 방향을 결정할 수 있다. 일 실시예에서, 프로세서는 SfM(Structure from Motion) 알고리즘을 이용하여, 복수의 이미지로부터 대상 객체가 촬영된 위치 및 방향을 결정할 수 있다. 그 후, 프로세서는 대상 객체가 촬영된 위치 및 방향을 기초로, 대상 객체와 연관된 3차원 공간의 각 포인트에 대한 투명도 정보 및 색 정보를 획득할 수 있다. 그리고, 프로세서는 대상 객체의 3차원 외관 표현을 위해, 3차원 공간의 각 포인트에 대한 색 정보를 RGB 값으로 변환할 수 있다.FIG. 9 is a flowchart illustrating an example of an object pose correction method 900 according to an embodiment of the present disclosure. The method 900 may be initiated by a processor (e.g., at least one processor of an information processing system) obtaining a radiance luminance of a target object (S910). Specifically, the processor may receive a plurality of images taken of the target object from different directions. The processor may then generate a radiance field of the target object based on the plurality of images. For example, the processor may determine the location and direction in which the target object was photographed for each of the plurality of images. In one embodiment, the processor may determine the location and direction in which the target object was photographed from a plurality of images using the Structure from Motion (SfM) algorithm. Thereafter, the processor may obtain transparency information and color information for each point in the three-dimensional space associated with the target object, based on the location and direction in which the target object was photographed. Additionally, the processor may convert color information for each point in the 3D space into RGB values to express the 3D appearance of the target object.
일 실시예에 따르면, 프로세서는 대상 객체를 실시간으로 촬영한 관측 이미지에 기초하여 대상 객체의 초기 포즈를 획득할 수 있다(S920). 구체적으로, 프로세서는 관측 이미지 상의 대상 객체를 검출할 수 있다. 그리고, 프로세서는 관측 이미지와 연관된 관측 위치 정보 및 관측 방향 정보를 이용하여, 관측 이미지 상의 대상 객체의 초기 포즈를 추정할 수 있다. 예를 들어, 프로세서는 관측 위치 정보 및 관측 방향 정보 중 적어도 하나의 정보를 기초로 비주얼 로컬라이제이션(VL, Visual Localization) 기술을 이용하여, 관측 이미지 상의 대상 객체의 초기 포즈를 추정할 수 있다.According to one embodiment, the processor may obtain the initial pose of the target object based on an observation image captured in real time (S920). Specifically, the processor may detect a target object on an observation image. Additionally, the processor may estimate the initial pose of the target object on the observation image using observation position information and observation direction information associated with the observation image. For example, the processor may estimate the initial pose of the target object on the observation image using visual localization (VL) technology based on at least one of observation location information and observation direction information.
일 실시예에 따르면, 프로세서는 초기 포즈 및 복사휘도장을 기초로, 대상 객체와 대응되며 초기 포즈를 갖는 가상 3차원 객체를 생성할 수 있다(S930). 예를 들어, 프로세서는 관측 이미지 상의 대상 객체의 초기 포즈 및 대상 객체의 복사휘도장을 기초로 볼륨 렌더링(Volume Rendering)을 수행함으로써, 대상 객체의 가상 3차원 객체를 생성할 수 있다. According to one embodiment, the processor may generate a virtual 3D object that corresponds to the target object and has an initial pose based on the initial pose and the radiance field (S930). For example, the processor may generate a virtual 3D object of the target object by performing volume rendering based on the initial pose of the target object on the observation image and the radiance field of the target object.
일 실시예에 따르면, 프로세서는 관측 이미지 상의 대상 객체 및 가상 3차원 객체의 포즈 차이를 산출할 수 있다(S940). 여기서, 관측 이미지는 제1 관측 이미지를 포함할 수 있다. 예를 들어, 프로세서는 제1 관측 이미지 및 가상 3차원 객체를 객체 포즈 보정 모델에 입력하여, 제1 관측 이미지 상의 대상 객체 및 가상 3차원 객체 사이의 제1 포즈 차이 값을 산출할 수 있다. 여기서, 객체 포즈 보정 모델은 가상 3차원 객체와 연관된 투명도 정보를 이용하여, 관측 이미지 상의 대상 객체 및 대상 객체의 가상 3차원 객체 사이의 포즈 차이 값을 산출하도록 학습된 모델일 수 있다.According to one embodiment, the processor may calculate the pose difference between the target object and the virtual 3D object on the observation image (S940). Here, the observation image may include the first observation image. For example, the processor may input the first observation image and the virtual 3D object into an object pose correction model to calculate a first pose difference value between the target object on the first observation image and the virtual 3D object. Here, the object pose correction model may be a model learned to calculate a pose difference value between the target object on the observation image and the virtual 3D object of the target object using transparency information associated with the virtual 3D object.
일 실시예에 따르면, 프로세서는 산출된 포즈 차이에 기초하여, 가상 3차원 객체의 포즈를 보정할 수 있다(S950). 예를 들어, 프로세서는 대상 객체의 초기 포즈 및 제1 포즈 차이 값을 기초로 가상 3차원 객체의 제1 변경 포즈를 추정할 수 있다. 그리고, 프로세서는 제1 변경 포즈 및 복사휘도장을 기초로 제1 변경 포즈를 갖는 가상 3차원 객체를 생성할 수 있다. 추가적으로, 관측 이미지는 제1 관측 이미지에 후속하는 제2 관측 이미지를 더 포함할 수 있다. 예를 들어, 프로세서는 제2 관측 이미지 및 제1 변경 포즈를 갖는 가상 3차원 객체를 객체 포즈 보정 모델에 입력하여, 제2 관측 이미지 상의 대상 객체 및 제1 변경 포즈의 가상 3차원 객체 사이의 제2 포즈 차이 값을 산출할 수 있다. 그리고, 프로세서는 대상 객체의 제1 변경 포즈 및 제2 포즈 차이 값을 기초로 가상 3차원 객체의 제2 변경 포즈를 추정할 수 있다. 그리고, 프로세서는 제2 변경 포즈 및 복사휘도장을 기초로 제2 변경 포즈를 갖는 대상 객체의 가상 3차원 객체를 생성할 수 있다.According to one embodiment, the processor may correct the pose of the virtual 3D object based on the calculated pose difference (S950). For example, the processor may estimate the first changed pose of the virtual 3D object based on the initial pose and the first pose difference value of the target object. Additionally, the processor may generate a virtual 3D object having a first changed pose based on the first changed pose and the radiance field. Additionally, the observation image may further include a second observation image following the first observation image. For example, the processor inputs a second observation image and a virtual three-dimensional object with a first modified pose into an object pose correction model, such that the first difference between the target object on the second observed image and the virtual three-dimensional object with the first modified pose is 2 The pose difference value can be calculated. Additionally, the processor may estimate the second changed pose of the virtual 3D object based on the first changed pose and the second pose difference value of the target object. Additionally, the processor may generate a virtual 3D object of the target object having the second changed pose based on the second changed pose and the radiance field.
도 9의 흐름도 및 상술한 설명은 일 예시일 뿐이며, 본 개시의 범위가 이에 한정되는 것은 아니다. 예를 들어, 적어도 하나의 단계가 추가/변경/삭제되거나, 각 단계의 순서가 변경될 수 있다.The flowchart of FIG. 9 and the above description are only examples, and the scope of the present disclosure is not limited thereto. For example, at least one step may be added/changed/deleted, or the order of each step may be changed.
상술한 방법은 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램으로 제공될 수 있다. 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The above-described method may be provided as a computer program stored in a computer-readable recording medium for execution on a computer. The medium may continuously store a computer-executable program, or may temporarily store it for execution or download. In addition, the medium may be a variety of recording or storage means in the form of a single or several pieces of hardware combined. It is not limited to a medium directly connected to a computer system and may be distributed over a network. Examples of media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And there may be something configured to store program instructions, including ROM, RAM, flash memory, etc. Additionally, examples of other media include recording or storage media managed by app stores that distribute applications, sites or servers that supply or distribute various other software, etc.
본 개시의 방법, 동작 또는 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 통상의 기술자들은 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 대체를 명확하게 설명하기 위해, 다양한 예시적인 구성요소들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능적 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 요구사항들에 따라 달라진다. 통상의 기술자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.The methods, operations, or techniques of this disclosure may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. Those skilled in the art will understand that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented in electronic hardware, computer software, or combinations of both. To clearly illustrate this interchange of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and design requirements imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementations should not be interpreted as causing a departure from the scope of the present disclosure.
하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들(digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들(programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들(field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본 개시에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다.In a hardware implementation, the processing units used to perform the techniques may include one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs). ), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, and other electronic units designed to perform the functions described in this disclosure. , a computer, or a combination thereof.
따라서, 본 개시와 연계하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 구성의 조합으로서 구현될 수도 있다.Accordingly, the various illustrative logical blocks, modules, and circuits described in connection with this disclosure may be general-purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or It may be implemented or performed as any combination of those designed to perform the functions described in. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, such as a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other configuration.
펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리(random access memory; RAM), 판독 전용 메모리(read-only memory; ROM), 비휘발성 RAM(non-volatile random access memory; NVRAM), PROM(programmable read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable PROM), 플래시 메모리, 컴팩트 디스크(compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로서 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행 가능할 수도 있고, 프로세서(들)로 하여금 본 개시에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다.For firmware and/or software implementations, techniques include random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), and PROM ( on computer-readable media such as programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage devices, etc. It may also be implemented as stored instructions. Instructions may be executable by one or more processors and may cause the processor(s) to perform certain aspects of the functionality described in this disclosure.
이상 설명된 실시예들이 하나 이상의 독립형 컴퓨터 시스템에서 현재 개시된 주제의 양태들을 활용하는 것으로 기술되었으나, 본 개시는 이에 한정되지 않고, 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 본 개시에서 주제의 양상들은 복수의 프로세싱 칩들이나 장치들에서 구현될 수도 있고, 스토리지는 복수의 장치들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 장치들은 PC들, 네트워크 서버들, 및 휴대용 장치들을 포함할 수도 있다.Although the above-described embodiments have been described as utilizing aspects of the presently disclosed subject matter in one or more standalone computer systems, the disclosure is not limited thereto and may also be implemented in conjunction with any computing environment, such as a network or distributed computing environment. . Furthermore, aspects of the subject matter of this disclosure may be implemented in multiple processing chips or devices, and storage may be similarly effected across the multiple devices. These devices may include PCs, network servers, and portable devices.
본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 개시의 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.Although the present disclosure has been described in relation to some embodiments in this specification, various modifications and changes may be made without departing from the scope of the present disclosure as can be understood by those skilled in the art to which the invention pertains. Additionally, such modifications and changes should be considered to fall within the scope of the claims appended hereto.
Claims (14)
- 적어도 하나의 프로세서에 의해 수행되는, 객체 포즈 보정 방법에 있어서,An object pose correction method performed by at least one processor, comprising:대상 객체의 복사휘도장(Radiance Field)을 획득하는 단계;Obtaining a radiance field of a target object;상기 대상 객체를 실시간으로 촬영한 관측 이미지에 기초하여 상기 대상 객체의 초기 포즈를 획득하는 단계;Obtaining an initial pose of the target object based on an observation image captured in real time of the target object;상기 초기 포즈 및 상기 복사휘도장을 기초로, 상기 대상 객체와 대응되며 상기 초기 포즈를 갖는 가상 3차원 객체를 생성하는 단계;Based on the initial pose and the radiance field, generating a virtual three-dimensional object corresponding to the target object and having the initial pose;상기 관측 이미지 상의 대상 객체 및 상기 가상 3차원 객체의 포즈 차이를 산출하는 단계; 및calculating a pose difference between the target object on the observation image and the virtual 3D object; and상기 산출된 포즈 차이에 기초하여, 상기 가상 3차원 객체의 포즈를 보정하는 단계Correcting the pose of the virtual 3D object based on the calculated pose difference.를 포함하는, 객체 포즈 보정 방법.Including, object pose correction method.
- 제1항에 있어서,According to paragraph 1,상기 복사휘도장을 획득하는 단계는,The step of obtaining the radiance field is,상기 대상 객체를 서로 다른 방향에서 촬영한 복수의 이미지를 수신하는 단계; 및Receiving a plurality of images taken of the target object from different directions; and상기 복수의 이미지를 기초로 상기 대상 객체의 복사휘도장을 생성하는 단계Generating a radiance field of the target object based on the plurality of images를 포함하는, 객체 포즈 보정 방법.Including, object pose correction method.
- 제2항에 있어서,According to paragraph 2,상기 복수의 이미지를 기초로 상기 대상 객체의 복사휘도장을 생성하는 단계는,The step of generating a radiance field of the target object based on the plurality of images includes,상기 복수의 이미지의 각각에 대해 상기 대상 객체가 촬영된 위치 및 방향을 결정하는 단계;determining a location and direction in which the target object was photographed for each of the plurality of images;상기 대상 객체가 촬영된 위치 및 방향을 기초로, 상기 대상 객체와 연관된 3차원 공간의 각 포인트에 대한 투명도 정보 및 색 정보를 획득하는 단계; 및Obtaining transparency information and color information for each point in a three-dimensional space associated with the target object, based on the location and direction in which the target object was photographed; and상기 대상 객체의 3차원 외관 표현을 위해, 상기 3차원 공간의 각 포인트에 대한 색 정보를 RGB 값으로 변환하는 단계Converting color information for each point in the 3D space into RGB values in order to express the 3D appearance of the target object.를 포함하는, 객체 포즈 보정 방법.Object pose correction method including.
- 제3항에 있어서,According to paragraph 3,상기 복수의 이미지의 각각에 대해 상기 대상 객체가 촬영된 위치 및 방향을 결정하는 단계는,The step of determining the location and direction in which the target object was photographed for each of the plurality of images includes:SfM(Structure from Motion) 알고리즘을 이용하여, 상기 복수의 이미지로부터 상기 대상 객체가 촬영된 위치 및 방향을 결정하는 단계Determining the location and direction in which the target object was photographed from the plurality of images using the SfM (Structure from Motion) algorithm를 포함하는, 객체 포즈 보정 방법.Including, object pose correction method.
- 제1항에 있어서,According to paragraph 1,상기 대상 객체의 초기 포즈를 획득하는 단계는,The step of acquiring the initial pose of the target object is,상기 관측 이미지 상의 상기 대상 객체를 검출하는 단계; 및detecting the target object on the observation image; and상기 관측 이미지와 연관된 관측 위치 정보 및 관측 방향 정보를 이용하여, 상기 관측 이미지 상의 대상 객체의 초기 포즈를 추정하는 단계를 포함하는, 객체 포즈 보정 방법.An object pose correction method comprising: estimating an initial pose of a target object on the observation image using observation position information and observation direction information associated with the observation image.
- 제5항에 있어서,According to clause 5,상기 관측 이미지와 연관된 관측 위치 정보 및 관측 방향 정보를 이용하여, 상기 관측 이미지 상의 대상 객체의 초기 포즈를 추정하는 단계는,The step of estimating the initial pose of the target object on the observation image using observation position information and observation direction information associated with the observation image,상기 관측 위치 정보 및 상기 관측 방향 정보 중 적어도 하나의 정보를 기초로 비주얼 로컬라이제이션(VL, Visual Localization) 기술을 이용하여, 상기 관측 이미지 상의 대상 객체의 초기 포즈를 추정하는 단계를 포함하는, 객체 포즈 보정 방법.Object pose correction, including the step of estimating the initial pose of the target object on the observation image using visual localization (VL) technology based on at least one of the observation location information and the observation direction information. method.
- 제1항에 있어서,According to paragraph 1,상기 초기 포즈를 갖는 가상 3차원 객체를 생성하는 단계는,The step of creating a virtual 3D object with the initial pose is,상기 관측 이미지 상의 대상 객체의 초기 포즈 및 상기 대상 객체의 복사휘도장을 기초로 볼륨 렌더링(Volume Rendering)을 수행함으로써, 상기 대상 객체의 가상 3차원 객체를 생성하는 단계를 포함하는, 객체 포즈 보정 방법.An object pose correction method comprising generating a virtual three-dimensional object of the target object by performing volume rendering based on the initial pose of the target object on the observation image and the radiance field of the target object. .
- 제1항에 있어서,According to paragraph 1,상기 관측 이미지는 제1 관측 이미지를 포함하고,The observation image includes a first observation image,상기 관측 이미지 상의 대상 객체 및 상기 가상 3차원 객체의 포즈 차이를 산출하는 단계는,The step of calculating the pose difference between the target object on the observation image and the virtual 3D object is,상기 제1 관측 이미지 및 상기 가상 3차원 객체를 객체 포즈 보정 모델에 입력하여, 상기 제1 관측 이미지 상의 대상 객체 및 상기 가상 3차원 객체 사이의 제1 포즈 차이 값을 산출하는 단계Inputting the first observation image and the virtual 3D object into an object pose correction model to calculate a first pose difference value between the target object on the first observation image and the virtual 3D object.를 포함하는, 객체 포즈 보정 방법.Object pose correction method including.
- 제8항에 있어서,According to clause 8,상기 산출된 포즈 차이에 기초하여, 상기 가상 3차원 객체의 포즈를 보정하는 단계는,The step of correcting the pose of the virtual 3D object based on the calculated pose difference includes:상기 대상 객체의 초기 포즈 및 상기 제1 포즈 차이 값을 기초로 상기 가상 3차원 객체의 제1 변경 포즈를 추정하는 단계; 및estimating a first changed pose of the virtual 3D object based on the initial pose of the target object and the first pose difference value; and상기 제1 변경 포즈 및 상기 복사휘도장을 기초로 상기 제1 변경 포즈를 갖는 가상 3차원 객체를 생성하는 단계Generating a virtual three-dimensional object having the first changed pose based on the first changed pose and the radiance field.를 포함하는, 객체 포즈 보정 방법.Including, object pose correction method.
- 제9항에 있어서,According to clause 9,상기 관측 이미지는 상기 제1 관측 이미지에 후속하는 제2 관측 이미지를 더 포함하고,The observation image further includes a second observation image following the first observation image,상기 방법은,The above method is,상기 제2 관측 이미지 및 상기 제1 변경 포즈를 갖는 가상 3차원 객체를 객체 포즈 보정 모델에 입력하여, 상기 제2 관측 이미지 상의 대상 객체 및 상기 제1 변경 포즈의 가상 3차원 객체 사이의 제2 포즈 차이 값을 산출하는 단계; 및Inputting the second observation image and the virtual 3D object having the first modified pose into an object pose correction model to create a second pose between the target object on the second observation image and the virtual 3D object of the first modified pose calculating a difference value; and를 더 포함하는, 객체 포즈 보정 방법.An object pose correction method further comprising:
- 제10항에 있어서,According to clause 10,상기 방법은,The above method is,상기 대상 객체의 상기 제1 변경 포즈 및 상기 제2 포즈 차이 값을 기초로 상기 가상 3차원 객체의 제2 변경 포즈를 추정하는 단계; 및estimating a second changed pose of the virtual 3D object based on the first changed pose and the second pose difference value of the target object; and상기 제2 변경 포즈 및 상기 복사휘도장을 기초로 상기 제2 변경 포즈를 갖는 대상 객체의 가상 3차원 객체를 생성하는 단계Generating a virtual three-dimensional object of the target object having the second changed pose based on the second changed pose and the radiance field.를 더 포함하는, 객체 포즈 보정 방법.An object pose correction method further comprising:
- 제8항에 있어서,According to clause 8,상기 객체 포즈 보정 모델은, 상기 가상 3차원 객체와 연관된 투명도 정보를 이용하여, 상기 관측 이미지 상의 대상 객체 및 상기 대상 객체의 가상 3차원 객체 사이의 포즈 차이 값을 산출하도록 학습되는, 객체 포즈 보정 방법.The object pose correction model is learned to calculate a pose difference value between a target object on the observation image and a virtual 3D object of the target object using transparency information associated with the virtual 3D object. .
- 제1항에 따른 방법을 컴퓨터에서 실행하기 위한 명령어들을 기록한 컴퓨터 판독 가능한 비일시적 기록매체.A computer-readable non-transitory recording medium recording instructions for executing the method according to claim 1 on a computer.
- 정보 처리 시스템으로서,As an information processing system,통신 모듈;communication module;메모리; 및Memory; and상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독 가능한 적어도 하나의 프로그램을 실행하도록 구성된 적어도 하나의 프로세서At least one processor connected to the memory and configured to execute at least one computer-readable program included in the memory를 포함하고,Including,상기 적어도 하나의 프로그램은,The at least one program is,대상 객체의 복사휘도장을 획득하고,Obtain the radiance field of the target object,상기 대상 객체를 실시간으로 촬영한 관측 이미지에 기초하여 상기 대상 객체의 초기 포즈를 획득하고,Obtaining an initial pose of the target object based on an observation image captured in real time of the target object,상기 초기 포즈 및 상기 복사휘도장을 기초로, 상기 대상 객체와 대응되며 상기 초기 포즈를 갖는 가상 3차원 객체를 생성하고,Based on the initial pose and the radiance field, generate a virtual three-dimensional object corresponding to the target object and having the initial pose,상기 관측 이미지 상의 대상 객체 및 상기 가상 3차원 객체의 포즈 차이를 산출하고,Calculate the pose difference between the target object on the observation image and the virtual 3D object,상기 산출된 포즈 차이에 기초하여, 상기 가상 3차원 객체의 포즈를 보정하기 위한 명령어들을 포함하는, 정보 처리 시스템.An information processing system comprising instructions for correcting the pose of the virtual three-dimensional object based on the calculated pose difference.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220135165A KR20240054780A (en) | 2022-10-19 | 2022-10-19 | Method and system for correcting object pose |
KR10-2022-0135165 | 2022-10-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024085455A1 true WO2024085455A1 (en) | 2024-04-25 |
Family
ID=90737900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/013950 WO2024085455A1 (en) | 2022-10-19 | 2023-09-15 | Object pose correction method and system |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240054780A (en) |
WO (1) | WO2024085455A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210042942A (en) * | 2018-08-13 | 2021-04-20 | 임피리얼 컬리지 이노베이션스 리미티드 | Object instance mapping using video data |
KR20210121182A (en) * | 2019-02-01 | 2021-10-07 | 스냅 인코포레이티드 | augmented reality system |
KR20220043847A (en) * | 2020-09-29 | 2022-04-05 | 삼성전자주식회사 | Method, apparatus, electronic device and storage medium for estimating object pose |
KR20220081261A (en) * | 2020-12-08 | 2022-06-15 | 삼성전자주식회사 | Method and apparatus for object pose estimation |
WO2022182369A1 (en) * | 2021-02-28 | 2022-09-01 | Leia Inc. | Method and system providing temporary texture application to enhance 3d modeling |
-
2022
- 2022-10-19 KR KR1020220135165A patent/KR20240054780A/en unknown
-
2023
- 2023-09-15 WO PCT/KR2023/013950 patent/WO2024085455A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210042942A (en) * | 2018-08-13 | 2021-04-20 | 임피리얼 컬리지 이노베이션스 리미티드 | Object instance mapping using video data |
KR20210121182A (en) * | 2019-02-01 | 2021-10-07 | 스냅 인코포레이티드 | augmented reality system |
KR20220043847A (en) * | 2020-09-29 | 2022-04-05 | 삼성전자주식회사 | Method, apparatus, electronic device and storage medium for estimating object pose |
KR20220081261A (en) * | 2020-12-08 | 2022-06-15 | 삼성전자주식회사 | Method and apparatus for object pose estimation |
WO2022182369A1 (en) * | 2021-02-28 | 2022-09-01 | Leia Inc. | Method and system providing temporary texture application to enhance 3d modeling |
Also Published As
Publication number | Publication date |
---|---|
KR20240054780A (en) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020130667A1 (en) | Method and electronic device for controlling augmented reality device | |
WO2017213439A1 (en) | Method and apparatus for generating image by using multi-sticker | |
WO2023113093A1 (en) | Volume inference-based three-dimensional modeling method and system | |
WO2018074618A1 (en) | Method and system for sharing effect for image | |
CN112116690A (en) | Video special effect generation method and device and terminal | |
WO2021086018A1 (en) | Method for displaying three-dimensional augmented reality | |
WO2024085455A1 (en) | Object pose correction method and system | |
WO2017026834A1 (en) | Responsive video generation method and generation program | |
WO2023128045A1 (en) | Method and system for generating freehand sketch image for machine learning | |
WO2023128027A1 (en) | Irregular sketch-based 3d-modeling method and system | |
WO2019054790A1 (en) | Content processing method and electronic device for supporting same | |
WO2021210725A1 (en) | Apparatus and method for processing point cloud information | |
WO2021075878A1 (en) | Augmented reality record service provision method and user terminal | |
WO2021040342A2 (en) | Image processing method and image processing device for generating 3d content by means of 2d images | |
WO2024106833A1 (en) | Method and system for automatically acquiring building control point | |
WO2024096717A1 (en) | Method and system for automatically acquiring feature point matching pair between street view images using three-dimensional model | |
WO2020159115A1 (en) | Electronic device having plurality of lenses, and method for controlling same | |
WO2024085628A1 (en) | Method and system for automatically acquiring ground control point | |
WO2024085630A1 (en) | Visual feature extraction neural network model training method and system | |
WO2020017668A1 (en) | Method and apparatus for generating avatar by using multi-view image matching | |
WO2024071519A1 (en) | Method and system for generating dynamic extended reality (xr) content | |
WO2024101776A1 (en) | Three-dimensional street view model generation method and system using three-dimensional building model and road model | |
WO2024085600A1 (en) | Method and system for matching three-dimensional model and street view data | |
WO2024039026A1 (en) | Method, computer device, and computer program for generating multi-angle image-based 3d avatar | |
WO2024101833A1 (en) | Method and system for generating visual feature map using three-dimensional model and street view image |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23880034 Country of ref document: EP Kind code of ref document: A1 |