WO2024071653A1 - Distance map calculating method based on parallax analysis, and system therefor - Google Patents
Distance map calculating method based on parallax analysis, and system therefor Download PDFInfo
- Publication number
- WO2024071653A1 WO2024071653A1 PCT/KR2023/011660 KR2023011660W WO2024071653A1 WO 2024071653 A1 WO2024071653 A1 WO 2024071653A1 KR 2023011660 W KR2023011660 W KR 2023011660W WO 2024071653 A1 WO2024071653 A1 WO 2024071653A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pixel
- color image
- point
- movement
- distance
- Prior art date
Links
- 238000004458 analytical method Methods 0.000 title claims description 36
- 238000000034 method Methods 0.000 title abstract description 16
- 238000004364 calculation method Methods 0.000 claims description 43
- 238000011156 evaluation Methods 0.000 claims description 18
- 239000013598 vector Substances 0.000 claims description 16
- 230000006870 function Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 12
- 230000015654 memory Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 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/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- 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
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Definitions
- the present invention relates to a method for calculating a distance map based on parallax analysis and a system therefor. More specifically, it relates to a method for calculating a real-time spatial coordinate map based on a camera position based on convolutional parallax analysis and a system therefor. It's about.
- distance information about the front from the image capture point that is, a distance map, is very important.
- This distance map is an image in which each pixel has xyz coordinate information by replacing the color.
- the distance map can be used in virtualization technology of real space such as Metaverse or in autonomous driving. It is applied in various fields such as distance measurement.
- real-time image synthesis technology which is essential in AR and VR, it can be used as a synthesis technology to apply a composite image to the surface by synthesizing images using location search of the relevant pixels and calculating the normal vector of the surface of the subject.
- the chroma key technique currently used in movies can be replaced at a low cost by using a masking technique based on a distance map, and can also be filmed as synthesized video directly on site.
- distance maps with high resolution it has high utility value in various industrial fields by using it for highly efficient real-time 3D scanning. Since it is fundamentally a technique for searching streets based on optical cameras, it is also used as a core technology in sensors for autonomous driving, robotics, and drones, and has high utility in the field of heavy industry.
- One technical aspect of the present invention is to solve the problems of the prior art described above, by calculating movement information between each pixel based on color images taken at different locations and extracting distance information at each pixel based on this.
- the aim is to provide a distance map calculation method based on parallax analysis and a system therefor that can generate a camera-based spatial coordinate map using a color image without a separate sensor.
- one technical aspect of the present invention is to calculate a distance map based on disparity analysis, where movement information between each pixel can be quickly calculated using efficient resources by applying a pixel similarity evaluation function and a disparity analysis function therefor. It provides a method and a system for it.
- the distance map calculation method is a distance map calculation method performed by a service server that receives a color image and generates a distance map image based on the color image, including a first color image taken at a first point, and the first point. Obtaining a second color image taken at a second point adjacent to the first color image, calculating pixel similarity between the first color image and the second color image, and calculating the first color image from the first color image based on the calculated pixel similarity. It may include calculating a pixel movement amount on the image of each pixel up to a two-color image and calculating a distance from each pixel based on point movement information between the first point and the second point and the pixel movement amount. there is.
- the distance map calculation method may include generating a distance map image for the first color image based on the calculated distance from each pixel.
- movement from the first point to the second point may correspond to parallel movement.
- calculating the pixel movement amount on the image of each pixel includes generating pixel similarity information by applying a pixel similarity evaluation function to the first color image and the second color image, and the point movement information. It may include calculating a reference direction vector and a movement range based on , and calculating the pixel movement amount by applying the reference direction vector within the movement range to pixel similarity information.
- the pixel similarity information is obtained by setting the first color image and the second color image as a scalar function in UV coordinates and calculating a similarity value between the two pixels, which is defined by the values of the gradient functions on the UV. It can be saved as a displayed 3 Dimension Float Map Array.
- the distance map calculation system based on the parallax analysis includes a photographing terminal that acquires a first color image taken at a first point and a second color image taken at a second point adjacent to the first point, and the first It may include a service server that calculates pixel similarity between the color image and the second color image, and calculates the distance from each pixel based on the calculated pixel similarity.
- the service server calculates a pixel movement amount on the image of each pixel from the first color image to the second color image based on the calculated pixel similarity, and provides point movement information between the first point and the second point. The distance from each pixel can be calculated based on the pixel movement amount.
- the service server may generate a distance map image for the first color image based on the calculated distance from each pixel.
- movement from the first point to the second point may correspond to parallel movement.
- the service server generates pixel similarity information by applying a pixel similarity evaluation function to the first color image and the second color image when calculating the amount of pixel movement on the image of each pixel, and After calculating the reference direction vector and movement range based on the point movement information, the pixel movement amount can be calculated by applying the reference direction vector within the movement range to pixel similarity information.
- the pixel similarity information is obtained by setting the first color image and the second color image as a scalar function in UV coordinates and calculating a similarity value between the two pixels, which is defined by the values of the gradient functions on the UV. It can be saved as a displayed 3 Dimension Float Map Array.
- movement information between each pixel is calculated based on color images taken at different locations, and distance information at each pixel is extracted based on this, thereby using the color image without a separate sensor. This has the effect of creating a distance map.
- FIG. 1 is a diagram illustrating an application example of a distance map calculation system based on parallax analysis according to an embodiment of the present invention.
- FIG. 2 is a diagram illustrating an exemplary computing operating environment of the service server shown in FIG. 1.
- FIG. 3 is a block diagram illustrating an embodiment of the service server shown in FIG. 1.
- Figure 4 is a flowchart explaining a distance map calculation method based on parallax analysis according to an embodiment of the present invention.
- Figures 5 and 6 are reference drawings for explaining a distance map calculation method based on parallax analysis.
- FIG. 7 is a block diagram illustrating an embodiment of the pixel movement amount calculation unit shown in FIG. 3.
- FIG. 8 is a flowchart explaining an operation of an embodiment of the pixel movement amount calculation unit shown in FIG. 7.
- Figure 9 is a conceptual diagram for explaining a distance calculation algorithm according to an embodiment of the present invention.
- Figure 10 is a conceptual diagram for explaining a disparity analysis algorithm according to an embodiment of the present invention.
- each element may be implemented as an electronic configuration to perform the corresponding function, or may be implemented as software itself that can be run in an electronic system, or as a functional element of such software. Alternatively, it may be implemented with an electronic configuration and corresponding driving software.
- each function executed in the system of the present invention may be configured in module units and may be recorded in one physical memory, or may be distributed and recorded between two or more memories and recording media.
- FIG. 1 is a diagram illustrating an application example of a distance map calculation system based on parallax analysis according to an embodiment of the present invention.
- a distance map calculation system based on parallax analysis may include a photographing terminal 100 and a service server 300.
- the capturing terminal 100 may capture an image and provide it to the service server 300.
- the image captured by the photographing terminal 100 is an image displaying color, and is hereinafter referred to as a 'color image'.
- a color image refers to an image expressed in color compared to a street map image, and therefore can be expressed in various forms such as RGB images and CYAN images.
- the photographing terminal 100 may photograph a first color image at a first point, photograph a second color image at a second point adjacent to the first point, and provide the image to the service server 300.
- the first color image captured at the first point and the second color image captured at the second point have at least some areas in common.
- the service server 300 calculates the pixel movement between the first color image and the second color image, and calculates the distance from each pixel, that is, the vertical distance (distance shown in FIG. 1), based on this pixel movement. You can.
- the service server 300 may calculate the pixel similarity between the first color image and the second color image, and calculate the distance at each pixel based on the calculated pixel similarity.
- the service server 300 may calculate the amount of pixel movement on the image of each pixel from the first color image to the second color image based on the calculated pixel similarity. Thereafter, the service server 300 may calculate the distance at each pixel based on the point movement information and pixel movement amount between the first point and the second point. Additionally, the service server 300 may generate a distance map image for the first color image based on the calculated distance from each pixel.
- FIG. 2 is a diagram illustrating an exemplary computing operating environment of a management server according to an embodiment of the present invention.
- management server 300 is intended to provide a general and simplified description of a suitable computing environment in which embodiments of management server 300 may be implemented; with reference to FIG. 2, a computing device is shown as an example of management server 300. do.
- the computing device may include at least a processing unit 303 and a system memory 301.
- a computing device may include multiple processing units that cooperate in executing programs.
- system memory 301 may be volatile (e.g., RAM), non-volatile (e.g., ROM, flash memory, etc.), or a combination thereof.
- the system memory 301 includes a suitable operating system 302 for controlling the operation of the platform, which may be, for example, the WINDOWS operating system from Microsoft or Linux.
- System memory 301 may include one or more software applications, such as program modules and applications.
- the computing device may include additional data storage devices 304, such as magnetic disks, optical disks, or tape.
- This additional storage device may be a removable storage device and/or a stationary storage device.
- Computer-readable storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technique for storage of information such as computer-readable instructions, data structures, program modules, or other data.
- the system memory 301 and the storage device 304 are all examples of computer-readable storage media.
- Computer-readable storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage, Or, it may include, but is not limited to, any other medium that stores desired information and can be accessed by computing device 300.
- Input devices 305 of the computing device may include, such as a keyboard, mouse, pen, voice input device, touch input device, and comparable input devices.
- Output devices 306 may include, for example, displays, speakers, printers, and other types of output devices. Since these devices are widely known in the art, detailed descriptions are omitted.
- a computing device may include a communication device 307 that allows the device to communicate with other devices, such as through networks, such as wired and wireless networks, satellite links, cellular links, local area networks, and comparable mechanisms, such as in a distributed computing environment.
- Communication device 307 is one example of communication media, which may contain computer-readable instructions, data structures, program modules, or other data therein.
- communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
- the management server 300 can be described as a functional configuration implemented in this computing environment. This will be explained with reference to FIG. 3 .
- FIG. 3 is a block diagram illustrating an embodiment of the service server shown in FIG. 1
- FIG. 4 is a flowchart illustrating a distance map calculation method based on parallax analysis according to an embodiment of the present invention.
- the management server 300 may include a pixel movement amount calculator 310, a distance calculator 320, and a distance map generator 330.
- the pixel movement amount calculation unit 310 may acquire a first color image taken at a first point and a second color image taken at a second point adjacent to the first point (S410).
- Figure 5 shows an example in which a photographing terminal captures a first color image and a second color image at a first point (P1) and a second point (P2), respectively, and figure (a) in Figure 6 shows the first color image and the second color image.
- Figure (b) shows an example of a second color image.
- the first color image and the second color image generated by respectively capturing images from two adjacent points are captured in an area in which the majority of pixels are the same.
- the point movement amount (Dx) from the first point (P1) to the second point (P2) causes movement within the image taken with respect to the same subject point, that is, the pixel movement amount (D_px).
- the pixel movement amount calculation unit 310 compares the first color image and the second color image to calculate the position transformation of the pixel representing the same photographic point in the color image, that is, the pixel movement amount (D_px) (S420).
- the pixel movement amount calculator 310 may calculate pixel similarity between the first color image and the second color image. Thereafter, the pixel movement amount calculation unit 310 may calculate the pixel movement amount on the image of each pixel from the first color image to the second color image based on the calculated pixel similarity. This embodiment will be described in more detail below with reference to FIGS. 7 and 8.
- the distance calculation unit 320 may calculate the distance value at each pixel based on the movement amount of the photographing device - that is, point movement information from the first point to the second point - and the pixel movement amount (S430).
- the distance calculation unit 320 receives the amount of movement of the pixel compared to the amount of movement of the imaging device, and applies a calculation formula based on the perspective effect to calculate the distance from the camera to the corresponding pixel, that is, the camera reference spatial coordinates.
- Figure 9 is a conceptual diagram for explaining a distance calculation algorithm according to an embodiment of the present invention.
- xDepth 1+log(Abs(deltaPixel)/d*S)/log(h)).
- the coordinates of yz are as follows. CenterAlignedScreenSpace UV*resolution*deltaPixel/(S*d)
- a 3D point cloud map can be created using the camera reference spatial coordinates xyz calculated in this way.
- the distance map generator 330 may generate a distance map image based on the distance of each pixel calculated by the distance calculator 320 (S440).
- the distance map image generated by the distance map generator 330 may be a distance map image corresponding to the first color image. This is because, based on the first color image, the movement of each pixel in the pixel area (overlapping pixel area) overlapping with the second color image in the first color image can be calculated, the distance value for each pixel in the overlapping pixel area You can create a street map image including .
- the distance map generator 330 may calculate distance information for a pixel area (non-overlapping pixel area) in the first color image that does not overlap with the second color image. For example, the distance map generator 330 may predict and calculate distance information for each pixel in the non-overlapping pixel area using the edge of the image object and the distance value for the pixel in the overlapping pixel area. As an example, the distance map generator 330 may calculate an edge of a color image and identify an object in the color image based on this. Afterwards, the distance value of the pixel in the overlapping pixel area belonging to the same object can be set as the distance between the pixel in the overlapping pixel area and the pixel in the non-overlapping pixel area included in the same object.
- the distance values of a plurality of pixels in the overlapping pixel area belonging to the same column or row in the same object are different from each other, a gradient of the distance values of the plurality of pixels in the overlapping pixel area belonging to the same column or row is calculated, By expanding such a column or row to a non-overlapping pixel area and then reflecting the degree of change with respect to the expanded column or row, the distance between pixels in the non-overlapping pixel area can be calculated.
- point cloud scanning data can be created using the generated distance map. This can be implemented by recording pixel coordinates output along screen coordinates in the form of an array. In the case of video, if information about the camera's position is expressed in the form of four vectors about the origin (camera position coordinates, three camera space basis vectors), the obtained coordinate map is linearly converted into a 3x3 matrix composed of basis vectors. After adding the camera coordinates again, it is easily converted from absolute coordinates to a pixel coordinate map. If this is updated at a specific cycle in the empty point cloud space, 3D scanning data can be obtained even from moving images.
- FIG. 7 is a block diagram explaining an embodiment of the pixel movement amount calculation unit shown in FIG. 3, and FIG. 8 is a flowchart explaining an operation of an embodiment of the pixel movement amount calculation unit shown in FIG. 7.
- the pixel movement amount calculation unit 310 may include a pixel similarity evaluation module 311, a parallax analysis module 312, and a pixel movement amount calculation module 313.
- the pixel similarity evaluation module 311 may apply a pixel similarity evaluation function to the first color image and the second color image to generate pixel similarity information for the two color images (S810).
- the pixel similarity evaluation module 311 may use a Taylor function or a Laplacian function as a pixel similarity evaluation function.
- the pixel similarity evaluation module 311 determines that if the differential values of the derivatives of a point in the first color image and a point in the second color image, that is, any two points, are similar, the shape of the function near the two points is similar. Similarity evaluation can be performed by applying similar points.
- the pixel similarity information is a 3 Dimension Float Map Array that is displayed by setting the first color image and the second color image as a scalar function in UV coordinates and calculating the similarity value between the two pixels. It can be saved as .
- the pixel similarity evaluation module 311 sets the first color image and the second color image as a scalar function in UV coordinates, then compares the derivative functions of the Laplacian for these, and determines the one color image in the first color image. It is possible to estimate how similar a point in the point and second color image, that is, the vicinity of two points, is.
- the pixel similarity evaluation module 311 can add these estimated values and store them as a 3 Dimension Float Map Array. Since the pixel values of each moving pixel in this 3 Dimension Float Map Array have a unique value for conversion to the limited movement of the camera, they can be used to track the amount of movement of the pixels.
- a convolution operation can be introduced. Because the Laplacian in an image is simply defined as a convolution operation, simple programming logic can be achieved. Additionally, the accuracy of mapping can be improved by manipulating the convolution kernel matrix in the convolution operation to quantify the similarity in a specific direction.
- the convolution kernel matrix (3x3) of the row-shifted first color image (A) and second color image (B) is used as an input value and converted to a convolution layer. At this time, a recursive loop operation is applied to the convolution kernel to generate image arrays A ⁇ [LayerNumber], B ⁇ [LayerNumber].
- a secondary layer array is created as B ⁇ [LayerNumber][deltaPixel] according to the delta shift value, which is the parallel shift distance.
- the parallax analysis module 312 uses a pixel similarity evaluation module ( 311), pixel similarity information - for example, a 3D plot map array displayed by calculating the similarity value between two pixels - is provided, and pixel movement is tracked using the point movement information and pixel similarity information regarding the movement of the shooting point. You can.
- the parallax analysis module 312 can calculate a reference direction vector indicating the direction in which pixels move and a movement range a using the movement distance of the camera, that is, point movement information about the movement of the shooting point (S820).
- the movement range is the range in which the pixel moves along the reference direction vector, and may satisfy, for example, the range from -a to a.
- the parallax analysis module 312 may move the unit image from -a to a in response to the resolution of the pixel in the reference direction vector and subtract the first and second images processed into a 3D plot map array.
- the unit image can be set by dividing the movement range by a predetermined resolution set smaller than the movement range, and subtraction can be performed on this unit image while moving in the direction of the reference direction vector. According to this operation, each pixel approaches its eigenvalue, and thus pixels with similar surroundings depending on the distance moved are expressed as a value close to 0.
- the pixel movement amount calculation module 313 can map the amount of movement of each pixel on the screen according to the movement of the camera based on the result of this subtraction operation performed by the parallax analysis module 312.
- the parallax analysis module 312 may perform mapping along with processing such as noise removal (S830).
- Figure 10 is a conceptual diagram for explaining a disparity analysis algorithm according to an embodiment of the present invention.
- the parallax analysis module 312 can calculate how much a pixel has actually moved based on pixel similarity information. In other words, by moving images in batches according to the movement distance delta and comparing them, the movement distance deltaPixel of each pixel can be collectively calculated through image processing. To this end, the disparity analysis module 312 performs the convolution calculation process performed by the disparity evaluation module 311 into A1 ⁇ [LayerNumber][deltaPixel], A2 ⁇ [ LayerNumber][deltaPixel] can be created.
- deltaPixelMap For each LayerNumber, find the deltaPixel where A1 ⁇ 2+A2 ⁇ 2 is the minimum value in each pixel value and record it in the pixel to create an image array C[LayerNumber], and calculate the average of the elements of C to create a distance map (deltaPixelMap ) can be created.
- processing unit 304 storage device
- Pixel similarity evaluation module 312 Parallax analysis module
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
A distance map calculating method, according to one technical aspect of the present invention, performed by a service server for generating a distance map image on the basis of a color image by being provided with the color image, may comprise the steps of: obtaining a first color image captured at a first point and a second color image captured at a second point adjacent to the first point; calculating pixel similarity between the first color image and the second color image and calculating a pixel shift amount on an image of each pixel from the first color image to the second color image on the basis of the calculated pixel similarity; and calculating a distance of each pixel on the basis of the pixel shift amount and point movement information between the first point and the second point.
Description
본 발명은 시차 분석을 기반으로 하는 거리맵 산출 방법 및 그를 위한 시스템에 관한 것으로, 보다 구체적으로는 컨볼루션 시차 분석에 기반하여 카메라 위치를 기준으로 실시간 공간 좌표 맵을 산출하는 방법 및 그를 위한 시스템에 관한 것이다.The present invention relates to a method for calculating a distance map based on parallax analysis and a system therefor. More specifically, it relates to a method for calculating a real-time spatial coordinate map based on a camera position based on convolutional parallax analysis and a system therefor. It's about.
컴퓨터 비전 기술 및 센서 기술의 발전에 따라 다양한 환경에 대하여 가상화 등이 가능해지고 있으며, 이러한 가상화의 기술도 점차적으로 실제와 유사한 입체감을 가지도록 개발되고 있다.With the development of computer vision technology and sensor technology, virtualization of various environments is becoming possible, and such virtualization technology is also gradually being developed to have a three-dimensional effect similar to reality.
이러한 가상화 등의 컴퓨터 비전 기술에서는, 촬상 지점에서 전방에 대한 거리 정보, 즉, 거리맵(Distance Map)이 매우 중요하다. In computer vision technologies such as virtualization, distance information about the front from the image capture point, that is, a distance map, is very important.
이러한 거리맵(Distance Map)은 색상을 대체하여 각 픽셀이 xyz 좌표 정보를 가지는 이미지로서, 거리맵은 실제에 대응되는 거리 정보를 가짐으로써 메타버스 등의 현실 공간의 가상화 기술이나, 자율 주행에서의 거리 측정 등의 분야 등에서 다양하게 적용된다.This distance map is an image in which each pixel has xyz coordinate information by replacing the color. By having distance information corresponding to reality, the distance map can be used in virtualization technology of real space such as Metaverse or in autonomous driving. It is applied in various fields such as distance measurement.
종래의 경우, 거리맵을 얻기 위해서는, LiDAR 등의 센서를 이용하여 전방의 각 지점들에 대하여 각각 거리를 측정하는 방식이 요구되었다. 그러나, 이러한 센서를 이용한 거리맵 생성 방식은, 고가의 센서가 필수적으로 요구되고, 거리맵 측정을 위한 별도의 과정이 요구되는 등의 문제가 있다.In the conventional case, in order to obtain a distance map, a method of measuring the distance to each point in front using a sensor such as LiDAR was required. However, this method of generating a distance map using a sensor has problems such as requiring an expensive sensor and requiring a separate process for measuring the distance map.
이에, 기 촬영된 색상 이미지를 기초로 거리맵을 생성하고자 하는 니즈가 존재하고 있다.Accordingly, there is a need to create a street map based on previously captured color images.
예를 들면, AR, VR에서 필수적인 실시간 영상합성 기술에서 해당 픽셀의 위치탐색을 이용한 영상 합성 및 피사체 표면의 노멀 벡터 계산에 이용되어 표면에 합성 이미지를 입히는 합성 기술 등으로 활용될 수 있다. 이를 응용하면 현재 영화에서 사용되는 크로마키 기법도 거리맵을 기반으로 한 마스킹 기법을 사용하면 이 또한 적은 비용으로 이를 대체할 수 있을 뿐만 아니라 현장에서 직접 합성된 영상으로 촬영할 수 있다. 또한 높은 해상도로 거리맵을 산출할 수 있기 때문에 효율성 높은 실시간 3D 스캐닝에 이용 여러 산업분야의 활용가치가 높다. 근본적으로 광학 카메라를 기반으로 거리를 탐색하는 기법이기에 자율주행, 로보틱스 및 드론의 센서에서도 핵심적인 기술로 이용되어 중공업 분야에서도 활용가치가 높다.For example, in real-time image synthesis technology, which is essential in AR and VR, it can be used as a synthesis technology to apply a composite image to the surface by synthesizing images using location search of the relevant pixels and calculating the normal vector of the surface of the subject. By applying this, the chroma key technique currently used in movies can be replaced at a low cost by using a masking technique based on a distance map, and can also be filmed as synthesized video directly on site. In addition, because it can calculate distance maps with high resolution, it has high utility value in various industrial fields by using it for highly efficient real-time 3D scanning. Since it is fundamentally a technique for searching streets based on optical cameras, it is also used as a core technology in sensors for autonomous driving, robotics, and drones, and has high utility in the field of heavy industry.
[선행기술문헌][Prior art literature]
[특허문헌][Patent Document]
등록특허공보 제10-2094506호(등록일자: 2020년03월23일)Registered Patent Publication No. 10-2094506 (Registration date: March 23, 2020)
등록특허공보 제10-2263064호(등록일자: 2021년06월03일)Registered Patent Publication No. 10-2263064 (Registration Date: June 3, 2021)
본 발명의 일 기술적 측면은 상기한 종래 기술의 문제점을 해결하기 위한 것으로써, 서로 다른 위치에서 촬영된 색상 이미지를 기초로 각 픽셀 간의 이동 정보를 산출하고 이를 기초로 각 픽셀에서의 거리 정보를 추출하도록 함으로써, 별도의 센서 없이도 색상 이미지를 이용하여 카메라 기준 공간 좌표 맵을 생성해 낼 수 있는, 시차 분석을 기반으로 하는 거리맵 산출 방법 및 그를 위한 시스템을 제공하는 것이다.One technical aspect of the present invention is to solve the problems of the prior art described above, by calculating movement information between each pixel based on color images taken at different locations and extracting distance information at each pixel based on this. By doing so, the aim is to provide a distance map calculation method based on parallax analysis and a system therefor that can generate a camera-based spatial coordinate map using a color image without a separate sensor.
또한, 본 발명의 일 기술적 측면은, 픽셀 닮음 평가 함수 및 그에 대한 시차 분석 함수를 적용함으로써, 각 픽셀 간의 이동 정보를 효율적인 리소스를 이용하여 빠르게 산출할 수 있는, 시차 분석을 기반으로 하는 거리맵 산출 방법 및 그를 위한 시스템을 제공하는 것이다.In addition, one technical aspect of the present invention is to calculate a distance map based on disparity analysis, where movement information between each pixel can be quickly calculated using efficient resources by applying a pixel similarity evaluation function and a disparity analysis function therefor. It provides a method and a system for it.
본 발명의 상기 목적과 여러 가지 장점은 이 기술분야에 숙련된 사람들에 의해 본 발명의 바람직한 실시예로부터 더욱 명확하게 될 것이다.The above objects and various advantages of the present invention will become more apparent to those skilled in the art from preferred embodiments of the present invention.
본 발명의 일 기술적 측면은 거리맵 산출 방법을 제안한다. 상기 거리맵 산출 방법은, 색상 이미지를 제공받아 색상 이미지를 기반으로 거리맵 이미지를 생성하는 서비스 서버에서 수행되는 거리맵 산출 방법으로서, 제1 지점에서 촬영한 제1 색상 이미지와, 상기 제1 지점과 인접한 제2 지점에서 촬영된 제2 색상 이미지를 획득하는 단계, 상기 제1 색상 이미지와 상기 제2 색상 이미지 간의 픽셀 닮음을 산출하고, 산출된 픽셀 닮음을 기초로 상기 제1 색상 이미지로부터 상기 제2 색상 이미지까지의 각 픽셀의 이미지 상의 픽셀 이동량을 산출하는 단계 및 상기 제1 지점 및 제2 지점 간의 지점 이동정보와, 상기 픽셀 이동량을 기초로 각 픽셀에서의 거리를 산출하는 단계를 포함할 수 있다.One technical aspect of the present invention proposes a distance map calculation method. The distance map calculation method is a distance map calculation method performed by a service server that receives a color image and generates a distance map image based on the color image, including a first color image taken at a first point, and the first point. Obtaining a second color image taken at a second point adjacent to the first color image, calculating pixel similarity between the first color image and the second color image, and calculating the first color image from the first color image based on the calculated pixel similarity. It may include calculating a pixel movement amount on the image of each pixel up to a two-color image and calculating a distance from each pixel based on point movement information between the first point and the second point and the pixel movement amount. there is.
일 실시예에서, 상기 거리맵 산출 방법은, 산출된 상기 각 픽셀에서의 거리를 기초로, 상기 제1 색상 이미지에 대한 거리맵 이미지를 생성하는 단계를 포함할 수 있다.In one embodiment, the distance map calculation method may include generating a distance map image for the first color image based on the calculated distance from each pixel.
일 실시예에서, 상기 제1 지점에서부터 상기 제2 지점까지의 이동은 평행 이동에 해당할 수 있다.In one embodiment, movement from the first point to the second point may correspond to parallel movement.
일 실시예에서, 상기 각 픽셀의 이미지 상의 픽셀 이동량을 산출하는 단계는, 상기 제1 색상 이미지 및 제2 색상 이미지에 대하여 픽셀 닮음 평가 함수를 적용하여 픽셀 닮음 정보를 생성하는 단계, 상기 지점 이동정보를 기초로, 기준 방향 벡터 및 이동 범위를 산출하는 단계 및 픽셀 닮음 정보에 대해 상기 이동 범위 내에서 상기 기준 방향 벡터를 적용하여 상기 픽셀 이동량을 산출하는 단계를 포함할 수 있다.In one embodiment, calculating the pixel movement amount on the image of each pixel includes generating pixel similarity information by applying a pixel similarity evaluation function to the first color image and the second color image, and the point movement information. It may include calculating a reference direction vector and a movement range based on , and calculating the pixel movement amount by applying the reference direction vector within the movement range to pixel similarity information.
일 실시예에서, 상기 픽셀 닮음 정보는, 상기 제1 색상 이미지 및 제2 색상 이미지를 UV 좌표에서의 스칼라 함수로 설정하고, UV 상의 계도 함수들의 값으로 정의되는, 두 픽셀 간의 닮음값을 산출하여 표시되는 3차원 플롯 맵 어레이(3 Dimension Float Map Array)로 저장될 수 있다.In one embodiment, the pixel similarity information is obtained by setting the first color image and the second color image as a scalar function in UV coordinates and calculating a similarity value between the two pixels, which is defined by the values of the gradient functions on the UV. It can be saved as a displayed 3 Dimension Float Map Array.
본 발명의 다른 일 기술적 측면은 시차 분석을 기반으로 하는 거리맵 산출 시스템을 제안한다. 상기 시차 분석을 기반으로 하는 거리맵 산출 시스템은, 제1 지점에서 촬영한 제1 색상 이미지와, 상기 제1 지점과 인접한 제2 지점에서 촬영된 제2 색상 이미지를 획득하는 촬영 단말 및 상기 제1 색상 이미지와 상기 제2 색상 이미지 간의 픽셀 닮음을 산출하고, 산출된 픽셀 닮음을 기초로 각 픽셀에서의 거리를 산출하는 서비스 서버를 포함할 수 있다. 상기 서비스 서버는, 상기 산출된 픽셀 닮음을 기초로 상기 제1 색상 이미지로부터 상기 제2 색상 이미지까지의 각 픽셀의 이미지 상의 픽셀 이동량을 산출하고, 상기 제1 지점 및 제2 지점 간의 지점 이동정보와 상기 픽셀 이동량을 기초로 각 픽셀에서의 거리를 산출할 수 있다.Another technical aspect of the present invention proposes a distance map calculation system based on parallax analysis. The distance map calculation system based on the parallax analysis includes a photographing terminal that acquires a first color image taken at a first point and a second color image taken at a second point adjacent to the first point, and the first It may include a service server that calculates pixel similarity between the color image and the second color image, and calculates the distance from each pixel based on the calculated pixel similarity. The service server calculates a pixel movement amount on the image of each pixel from the first color image to the second color image based on the calculated pixel similarity, and provides point movement information between the first point and the second point. The distance from each pixel can be calculated based on the pixel movement amount.
일 실시예에서, 상기 서비스 서버는, 산출된 상기 각 픽셀에서의 거리를 기초로, 상기 제1 색상 이미지에 대한 거리맵 이미지를 생성할 수 있다.In one embodiment, the service server may generate a distance map image for the first color image based on the calculated distance from each pixel.
일 실시예에서, 상기 제1 지점에서부터 상기 제2 지점까지의 이동은 평행 이동에 해당할 수 있다.In one embodiment, movement from the first point to the second point may correspond to parallel movement.
일 실시예에서, 상기 서비스 서버는, 상기 각 픽셀의 이미지 상의 픽셀 이동량을 산출함에 있어서, 상기 제1 색상 이미지 및 제2 색상 이미지에 대하여 픽셀 닮음 평가 함수를 적용하여 픽셀 닮음 정보를 생성하고, 상기 지점 이동정보를 기초로, 기준 방향 벡터 및 이동 범위를 산출한 후, 픽셀 닮음 정보에 대해 상기 이동 범위 내에서 상기 기준 방향 벡터를 적용하여 상기 픽셀 이동량을 산출할 수 있다.In one embodiment, the service server generates pixel similarity information by applying a pixel similarity evaluation function to the first color image and the second color image when calculating the amount of pixel movement on the image of each pixel, and After calculating the reference direction vector and movement range based on the point movement information, the pixel movement amount can be calculated by applying the reference direction vector within the movement range to pixel similarity information.
일 실시예에서, 상기 픽셀 닮음 정보는, 상기 제1 색상 이미지 및 제2 색상 이미지를 UV 좌표에서의 스칼라 함수로 설정하고, UV 상의 계도 함수들의 값으로 정의되는, 두 픽셀 간의 닮음값을 산출하여 표시되는 3차원 플롯 맵 어레이(3 Dimension Float Map Array)로 저장될 수 있다.In one embodiment, the pixel similarity information is obtained by setting the first color image and the second color image as a scalar function in UV coordinates and calculating a similarity value between the two pixels, which is defined by the values of the gradient functions on the UV. It can be saved as a displayed 3 Dimension Float Map Array.
본 발명의 일 실시형태에 따르면, 서로 다른 위치에서 촬영된 색상 이미지를 기초로 각 픽셀 간의 이동 정보를 산출하고 이를 기초로 각 픽셀에서의 거리 정보를 추출하도록 함으로써, 별도의 센서 없이도 색상 이미지를 이용하여 거리맵을 생성해 낼 수 있는 효과가 있다.According to one embodiment of the present invention, movement information between each pixel is calculated based on color images taken at different locations, and distance information at each pixel is extracted based on this, thereby using the color image without a separate sensor. This has the effect of creating a distance map.
또한, 본 발명의 일 실시형태에 따르면, 픽셀 닮음 평가 함수 및 그에 대한 시차 분석 함수를 적용함으로써, 각 픽셀 간의 이동 정보를 효율적인 리소스를 이용하여 빠르게 산출할 수 있는 효과가 있다.Additionally, according to one embodiment of the present invention, by applying a pixel similarity evaluation function and a disparity analysis function thereto, movement information between each pixel can be quickly calculated using efficient resources.
도 1은 본 발명의 일 실시예에 따른 시차 분석을 기반으로 하는 거리맵 산출 시스템의 일 적용예를 설명하는 도면이다.1 is a diagram illustrating an application example of a distance map calculation system based on parallax analysis according to an embodiment of the present invention.
도 2는 도 1에 도시된 서비스 서버의 예시적인 컴퓨팅 운영 환경을 설명하는 도면이다.FIG. 2 is a diagram illustrating an exemplary computing operating environment of the service server shown in FIG. 1.
도 3은 도 1에 도시된 서비스 서버의 일 실시예를 설명하는 블록 구성도이다.FIG. 3 is a block diagram illustrating an embodiment of the service server shown in FIG. 1.
도 4는 본 발명의 일 실시예에 따른 시차 분석을 기반으로 하는 거리맵 산출 방법을 설명하는 순서도이다.Figure 4 is a flowchart explaining a distance map calculation method based on parallax analysis according to an embodiment of the present invention.
도 5 및 도 6은 시차 분석을 기반으로 하는 거리맵 산출 방법을 설명하기 위한 참고 도면이다.Figures 5 and 6 are reference drawings for explaining a distance map calculation method based on parallax analysis.
도 7은 도 3에 도시된 픽셀 이동량 산출부의 일 실시예를 설명하는 블록 구성도이다.FIG. 7 is a block diagram illustrating an embodiment of the pixel movement amount calculation unit shown in FIG. 3.
도 8은 도 7에 도시된 픽셀 이동량 산출부의 일 실시예의 일 동작을 설명하는 순서도이다.FIG. 8 is a flowchart explaining an operation of an embodiment of the pixel movement amount calculation unit shown in FIG. 7.
도 9는 본 발명의 일 실시예에 따른 거리 계산 알고리듬을 설명하기 위한 개념도이다.Figure 9 is a conceptual diagram for explaining a distance calculation algorithm according to an embodiment of the present invention.
도 10은 본 발명의 일 실시예에 따른 시차 분석 알고리듬을 설명하기 위한 개념도이다.Figure 10 is a conceptual diagram for explaining a disparity analysis algorithm according to an embodiment of the present invention.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 형태들을 설명한다. Hereinafter, preferred embodiments of the present invention will be described with reference to the attached drawings.
그러나, 본 발명의 실시형태는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명하는 실시 형태로 한정되는 것은 아니다. 또한, 본 발명의 실시형태는 당해 기술분야에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해서 제공되는 것이다. However, the embodiments of the present invention may be modified into various other forms, and the scope of the present invention is not limited to the embodiments described below. Additionally, the embodiments of the present invention are provided to more completely explain the present invention to those with average knowledge in the relevant technical field.
즉, 전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용된다.That is, the above-described objects, features, and advantages will be described in detail later with reference to the attached drawings, so that those skilled in the art will be able to easily implement the technical idea of the present invention. In describing the present invention, if it is determined that a detailed description of known technologies related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description will be omitted. Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the attached drawings. In the drawings, identical reference numerals are used to indicate identical or similar components.
또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.Additionally, as used herein, singular expressions include plural expressions, unless the context clearly dictates otherwise. In the present application, terms such as “consists of” or “comprises” should not be construed as necessarily including all of the various components or steps described in the specification, and some of the components or steps may include It may not be included, or it should be interpreted as including additional components or steps.
또한, 이하에서 본 발명에 따른 시스템을 설명하기 위하여 다양한 구성요소 및 그의 하부 구성요소에 대하여 설명하고 있다. 이러한 구성요소 및 그의 하부 구성요소들은, 하드웨어, 소프트웨어 또는 이들의 조합 등 다양한 형태로서 구현될 수 있다. 예컨대, 각 요소들은 해당 기능을 수행하기 위한 전자적 구성으로 구현되거나, 또는 전자적 시스템에서 구동 가능한 소프트웨어 자체이거나 그러한 소프트웨어의 일 기능적인 요소로 구현될 수 있다. 또는, 전자적 구성과 그에 대응되는 구동 소프트웨어로 구현될 수 있다.In addition, in order to explain the system according to the present invention, various components and their sub-components are described below. These components and their sub-components may be implemented in various forms such as hardware, software, or a combination thereof. For example, each element may be implemented as an electronic configuration to perform the corresponding function, or may be implemented as software itself that can be run in an electronic system, or as a functional element of such software. Alternatively, it may be implemented with an electronic configuration and corresponding driving software.
본 명세서에 설명된 다양한 기법은 하드웨어 또는 소프트웨어와 함께 구현되거나, 적합한 경우에 이들 모두의 조합과 함께 구현될 수 있다. 본 명세서에 사용된 바와 같은 "부(Unit)", "서버(Server)" 및 "시스템(System)" 등의 용어는 마찬가지로 컴퓨터 관련 엔티티(Entity), 즉 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어 또는 실행 시의 소프트웨어와 등가로 취급할 수 있다. 또한, 본 발명의 시스템에서 실행되는 각 기능은 모듈단위로 구성될 수 있고, 하나의 물리적 메모리에 기록되거나, 둘 이상의 메모리 및 기록매체 사이에 분산되어 기록될 수 있다.The various techniques described herein may be implemented with hardware or software, or a combination of both as appropriate. As used herein, terms such as “Unit,” “Server,” and “System” likewise refer to a computer-related entity, i.e., hardware, a combination of hardware and software, software or It can be treated as equivalent to software at the time of execution. Additionally, each function executed in the system of the present invention may be configured in module units and may be recorded in one physical memory, or may be distributed and recorded between two or more memories and recording media.
본 발명의 실시형태를 설명하기 위하여 다양한 순서도가 개시되고 있으나, 이는 각 단계의 설명의 편의를 위한 것으로, 반드시 순서도의 순서에 따라 각 단계가 수행되는 것은 아니다. 즉, 순서도에서의 각 단계는, 서로 동시에 수행되거나, 순서도에 따른 순서대로 수행되거나, 또는 순서도에서의 순서와 반대의 순서로도 수행될 수 있다. Various flowcharts are disclosed to explain embodiments of the present invention, but these are for convenience of explanation of each step, and each step is not necessarily performed in accordance with the order of the flowchart. That is, each step in the flowchart may be performed simultaneously, in an order according to the flowchart, or in an order opposite to the order in the flowchart.
도 1은 본 발명의 일 실시예에 따른 시차 분석을 기반으로 하는 거리맵 산출 시스템의 일 적용예를 설명하는 도면이다.1 is a diagram illustrating an application example of a distance map calculation system based on parallax analysis according to an embodiment of the present invention.
도 1을 참조하면, 시차 분석을 기반으로 하는 거리맵 산출 시스템(이하, '거리맵 산출 시스템'이라 함)은 촬영 단말(100) 및 서비스 서버(300)를 포함할 수 있다.Referring to FIG. 1, a distance map calculation system based on parallax analysis (hereinafter referred to as ‘distance map calculation system’) may include a photographing terminal 100 and a service server 300.
촬영 단말(100)은 이미지를 촬영하여 서비스 서버(300)에 제공할 수 있다. 여기에서, 촬영 단말(100)에서 촬영되는 이미지는 색상을 표시하는 이미지로서, 이하에서는 '색상 이미지' 라고 칭한다. 색상 이미지는 거리맵 이미지와 대비하여 색상으로 표현되는 이미지를 통칭하며, 따라서, RGB 이미지, CYAN 이미지 등 다양한 양식으로 표현 가능하다.The capturing terminal 100 may capture an image and provide it to the service server 300. Here, the image captured by the photographing terminal 100 is an image displaying color, and is hereinafter referred to as a 'color image'. A color image refers to an image expressed in color compared to a street map image, and therefore can be expressed in various forms such as RGB images and CYAN images.
촬영 단말(100)은 제1지점에서 제1 색상 이미지를 촬영하고, 제1 지점과 인접한 제2 지점에서 제2 색상 이미지를 촬영하여 서비스 서버(300)에 제공할 수 있다. 이러한 제1 지점에서 촬영된 제1 색상 이미지와, 제2 지점에서 촬영된 제2 색상 이미지는 적어도 일부 영역이 공통되게 촬영된다. The photographing terminal 100 may photograph a first color image at a first point, photograph a second color image at a second point adjacent to the first point, and provide the image to the service server 300. The first color image captured at the first point and the second color image captured at the second point have at least some areas in common.
이하에서는 설명의 편의를 위하여, 도 5에 도시된 예와 같이, 제1 지점에서부터 제2 지점까지의 촬영 단말(100)의 이동은 평행 이동인 경우, 즉, 평행 이동 변환으로 처리하는 경우를 예시하여 설명한다. 그러나, 이에 한정되는 것은 아니며, 확대 축소 이동에 의한 확대 축소 변환, 회전 이동 등에 의한 사영 변환 등으로 적용 가능하다.Hereinafter, for convenience of explanation, as in the example shown in FIG. 5, the case where the movement of the photographing terminal 100 from the first point to the second point is a parallel movement, that is, a case where it is processed as a parallel movement transformation is exemplified. This explains. However, it is not limited to this, and can be applied to enlargement/reduction transformation by enlargement/reduction movement, projective transformation by rotational movement, etc.
서비스 서버(300)는 이러한 제1 색상 이미지와 제2 색상 이미지 간의 픽셀 이동을 산출하고, 이러한 픽셀 이동을 기초로 각 픽셀에서의 거리, 즉, 수직거리(도 1에 도시된 distance)를 산출할 수 있다.The service server 300 calculates the pixel movement between the first color image and the second color image, and calculates the distance from each pixel, that is, the vertical distance (distance shown in FIG. 1), based on this pixel movement. You can.
일 예로, 서비스 서버(300)는 제1 색상 이미지와 제2 색상 이미지 간의 픽셀 닮음을 산출하고, 산출된 픽셀 닮음을 기초로 각 픽셀에서의 거리를 산출할 수 있다. As an example, the service server 300 may calculate the pixel similarity between the first color image and the second color image, and calculate the distance at each pixel based on the calculated pixel similarity.
예컨대, 서비스 서버(300)는 산출된 픽셀 닮음을 기초로 제1 색상 이미지로부터 제2 색상 이미지까지의 각 픽셀의 이미지 상의 픽셀 이동량을 산출할 수 있다. 이후, 서비스 서버(300)는 상기 제1 지점 및 제2 지점 간의 지점 이동정보와 픽셀 이동량을 기초로 각 픽셀에서의 거리를 산출할 수 있다. 또한, 서비스 서버(300)는 산출된 각 픽셀에서의 거리를 기초로, 제1 색상 이미지에 대한 거리맵 이미지를 생성할 수 있다.For example, the service server 300 may calculate the amount of pixel movement on the image of each pixel from the first color image to the second color image based on the calculated pixel similarity. Thereafter, the service server 300 may calculate the distance at each pixel based on the point movement information and pixel movement amount between the first point and the second point. Additionally, the service server 300 may generate a distance map image for the first color image based on the calculated distance from each pixel.
이하, 도 2 내지 도 8을 참조하여, 이러한 서비스 서버(300)의 다양한 실시예에 대하여 보다 상세히 설명한다.Hereinafter, various embodiments of the service server 300 will be described in more detail with reference to FIGS. 2 to 8.
도 2는 본 발명의 일 실시예에 따른 관리 서버의 예시적인 컴퓨팅 운영 환경을 설명하는 도면이다.2 is a diagram illustrating an exemplary computing operating environment of a management server according to an embodiment of the present invention.
도 2는 관리 서버(300)의 실시예들이 구현될 수 있는 적합한 컴퓨팅 환경의 일반적이고 단순화된 설명을 제공하기 위한 것으로, 도 2를 참조하면, 관리 서버(300)의 일 예로서 컴퓨팅 장치가 도시된다. 2 is intended to provide a general and simplified description of a suitable computing environment in which embodiments of management server 300 may be implemented; with reference to FIG. 2, a computing device is shown as an example of management server 300. do.
컴퓨팅 장치는 적어도 프로세싱 유닛(303)과 시스템 메모리(301)를 포함할 수 있다. The computing device may include at least a processing unit 303 and a system memory 301.
컴퓨팅 장치는 프로그램을 실행할 때 협조하는 복수의 프로세싱 유닛을 포함할 수도 있다. 컴퓨팅 장치의 정확한 구성 및 유형에 의존하여, 시스템 메모리(301)는 휘발성(예컨대, 램(RAM)), 비휘발성(예컨대, 롬(ROM), 플래시 메모리 등) 또는 이들의 조합일 수 있다. 시스템 메모리(301)는 플랫폼의 동작을 제어하기 위한 적합한 운영 체제(302)를 포함하는데, 예컨대 마이크로소프트사로부터의 WINDOWS 운영체제나 리눅스 등의 것일 수 있다. 시스템 메모리(301)는 프로그램 모듈, 애플리케이션 등의 같은 하나 이상의 소프트웨어 애플리케이션을 포함할 수도 있다. A computing device may include multiple processing units that cooperate in executing programs. Depending on the exact configuration and type of computing device, system memory 301 may be volatile (e.g., RAM), non-volatile (e.g., ROM, flash memory, etc.), or a combination thereof. The system memory 301 includes a suitable operating system 302 for controlling the operation of the platform, which may be, for example, the WINDOWS operating system from Microsoft or Linux. System memory 301 may include one or more software applications, such as program modules and applications.
컴퓨팅 장치는 자기 디스크, 광학적 디스크, 또는 테이프와 같은 추가적인 데이터 저장 장치(304)를 포함할 수 있다. 이러한 추가적 저장장치는 이동식 저장장치 및/또는 고정식 저장장치 일 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 또는 기타 데이터와 같은 저장정보를 위한 임의의 방법이나 기법으로 구현되는 휘발성 및 비휘발성, 이동식 및 고정식 매체를 포함할 수 있다. 시스템 메모리(301), 저장장치(304)는 모두 컴퓨터 판독가능 저장 매체의 예시일 뿐이다. 컴퓨터 판독가능 저장 매체는 램(RAM), 롬(ROM), EEPROM, 플래시 메모리 또는 다른 메모리 기법, CD-ROM, DVD 또는 다른 광학적 저장장치, 자기 테이프, 자기 디스크 저장장치 또는 다른 자기적 저장 장치, 또는 원하는 정보를 저장하고 컴퓨팅 장치(300)에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있는데, 이에 한정되는 것은 아니다. The computing device may include additional data storage devices 304, such as magnetic disks, optical disks, or tape. This additional storage device may be a removable storage device and/or a stationary storage device. Computer-readable storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technique for storage of information such as computer-readable instructions, data structures, program modules, or other data. The system memory 301 and the storage device 304 are all examples of computer-readable storage media. Computer-readable storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage, Or, it may include, but is not limited to, any other medium that stores desired information and can be accessed by computing device 300.
컴퓨팅 장치의 입력 장치(305), 예컨대 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 및 비교 가능한 입력 장치를 포함할 수 있다. 출력 장치(306)는, 예컨대 디스플레이, 스피커, 프린터, 및 다른 유형의 출력 장치가 포함될 수도 있다. 이들 장치는 본 기술분야에서 널리 알려진 것이므로 자세한 설명은 생략한다. Input devices 305 of the computing device may include, such as a keyboard, mouse, pen, voice input device, touch input device, and comparable input devices. Output devices 306 may include, for example, displays, speakers, printers, and other types of output devices. Since these devices are widely known in the art, detailed descriptions are omitted.
컴퓨팅 장치는 예컨대 분산 컴퓨팅 환경에서의 네트워크, 예컨대, 유무선 네트워크, 위성 링크, 셀룰러 링크, 근거리 네트워크 및 비교가능한 메커니즘을 통해 장치가 다른 장치들과 통신하도록 허용하는 통신 장치(307)를 포함할 수도 있다. 통신 장치(307)는 통신 매체의 한가지 예시이며, 통신 매체는 그 안에 컴퓨터 판독 가능 인스트럭션, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 포함할 수 있다. 예시적으로, 통신 매체는 유선 네트워크나 직접 유선 접속과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함하는데, 이에 한정되는 것은 아니다. A computing device may include a communication device 307 that allows the device to communicate with other devices, such as through networks, such as wired and wireless networks, satellite links, cellular links, local area networks, and comparable mechanisms, such as in a distributed computing environment. . Communication device 307 is one example of communication media, which may contain computer-readable instructions, data structures, program modules, or other data therein. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
관리 서버(300)는 이러한 컴퓨팅 환경에서 구현되는 기능적 구성으로 설명될 수 있다. 이에 대해서는, 도 3을 참조하여 설명한다.The management server 300 can be described as a functional configuration implemented in this computing environment. This will be explained with reference to FIG. 3 .
도 3은 도 1에 도시된 서비스 서버의 일 실시예를 설명하는 블록 구성도이고, 도 4는 본 발명의 일 실시예에 따른 시차 분석을 기반으로 하는 거리맵 산출 방법을 설명하는 순서도이다.FIG. 3 is a block diagram illustrating an embodiment of the service server shown in FIG. 1, and FIG. 4 is a flowchart illustrating a distance map calculation method based on parallax analysis according to an embodiment of the present invention.
도 3 및 도 4를 참조하면, 관리 서버(300)는 픽셀 이동량 산출부(310), 거리 산출부(320) 및 거리맵 생성부(330)를 포함할 수 있다.Referring to FIGS. 3 and 4 , the management server 300 may include a pixel movement amount calculator 310, a distance calculator 320, and a distance map generator 330.
픽셀 이동량 산출부(310)는 제1 지점에서 촬영한 제1 색상 이미지와, 제1 지점과 인접한 제2 지점에서 촬영된 제2 색상 이미지를 획득할 수 있다(S410). The pixel movement amount calculation unit 310 may acquire a first color image taken at a first point and a second color image taken at a second point adjacent to the first point (S410).
도 5는 제1 지점(P1)과 제2 지점(P2)에서 촬영 단말이 각각 제1 색상 이미지와 제2 색상 이미지를 촬영을 하는 예를 도시하고 있고, 도 6에서의 그림 (a)는 제1 색상 이미지의 예를, 그림 (b)는 제2 색상 이미지의 예를 도시하고 있다. 도 5 및 6에 도시된 바와 같이, 인접한 두 지점에서 각각 촬영하여 생성된 제1 색상 이미지 및 제2 색상 이미지는 대다수 픽셀이 동일한 영역을 대상으로 촬상된 것이다. 한편, 제1 지점(P1)에서 제2 지점(P2)으로의 지점 이동량(Dx)에 의하여 동일한 피사지점에 대하여 촬영된 이미지 내에서의 이동, 즉, 픽셀 이동량(D_px)이 유발되게 된다.Figure 5 shows an example in which a photographing terminal captures a first color image and a second color image at a first point (P1) and a second point (P2), respectively, and figure (a) in Figure 6 shows the first color image and the second color image. As an example of a first color image, Figure (b) shows an example of a second color image. As shown in FIGS. 5 and 6, the first color image and the second color image generated by respectively capturing images from two adjacent points are captured in an area in which the majority of pixels are the same. Meanwhile, the point movement amount (Dx) from the first point (P1) to the second point (P2) causes movement within the image taken with respect to the same subject point, that is, the pixel movement amount (D_px).
픽셀 이동량 산출부(310)는 1 색상 이미지와 제2 색상 이미지를 상호 비교하여, 동일한 피사 지점을 나타내는 픽셀이 색상 이미지에서의 위치 변환, 즉, 픽셀 이동량(D_px)을 산출한다(S420). The pixel movement amount calculation unit 310 compares the first color image and the second color image to calculate the position transformation of the pixel representing the same photographic point in the color image, that is, the pixel movement amount (D_px) (S420).
일 실시예에서, 픽셀 이동량 산출부(310)는 제1 색상 이미지와 제2 색상 이미지 간의 픽셀 닮음을 산출할 수 있다. 이후, 픽셀 이동량 산출부(310)는 산출된 픽셀 닮음을 기초로 제1 색상 이미지로부터 제2 색상 이미지까지의 각 픽셀의 이미지 상의 픽셀 이동량을 산출할 수 있다. 이러한 실시예에 대해서는 도 7 내지 도 8을 참조하여 이하에서 보다 상세히 후술한다.In one embodiment, the pixel movement amount calculator 310 may calculate pixel similarity between the first color image and the second color image. Thereafter, the pixel movement amount calculation unit 310 may calculate the pixel movement amount on the image of each pixel from the first color image to the second color image based on the calculated pixel similarity. This embodiment will be described in more detail below with reference to FIGS. 7 and 8.
거리 산출부(320)는 촬영 기기의 이동량 -즉, 제1 지점으로부터 제2 지점까지의 지점 이동정보-와 픽셀 이동량을 기초로, 각 픽셀에서의 거리 값을 산출할 수 있다(S430). The distance calculation unit 320 may calculate the distance value at each pixel based on the movement amount of the photographing device - that is, point movement information from the first point to the second point - and the pixel movement amount (S430).
즉, 거리 산출부(320)에서는 촬영 기기의 이동량 대비 픽셀의 이동량을 입력받고, 투시효과에 의한 계산식을 적용하여 카메라로부터 해당 픽셀까지의 거리, 즉, 카메라 기준 공간 좌표를 산출할 수 있다.That is, the distance calculation unit 320 receives the amount of movement of the pixel compared to the amount of movement of the imaging device, and applies a calculation formula based on the perspective effect to calculate the distance from the camera to the corresponding pixel, that is, the camera reference spatial coordinates.
이와 관련하여, 도 9를 참조하여 카메라 기준 공간 좌표를 산출하는 구체적인 과정을 설명하도록 한다. 도 9는 본 발명의 일 실시예에 따른 거리 계산 알고리듬을 설명하기 위한 개념도이다.In this regard, a specific process for calculating camera reference space coordinates will be described with reference to FIG. 9. Figure 9 is a conceptual diagram for explaining a distance calculation algorithm according to an embodiment of the present invention.
이에 대하여 자세히 살펴보면 다음과 같다. 먼저, 카메라를 기준으로 상대 좌표 공간 상 원점 정렬 된 1m 그리드 큐브를 가정하도록 한다. 상기 그리드 큐브가 카메라 화면에 투시로 투영되었을 경우, 실제로 카메라 화면에서 어느 정도의 길이를 갖는지를 측정하고자 한다. 여기서 카메라에서 1m 떨어진 점이 우로 1m 움직일 때, 화면상에서 움직인 거리를 S라고 하고, 카메라에서 2m 떨어진 점이 우로 1m 움직일 때 화면상에서 움직인 거리를 h*S라고 정의할 수 있다. 특정 픽셀이 포함된 평면과 카메라 간 거리를 d라고 하면, d에 따른 deltaPixel 값을 미터 단위로 스케일링한 값은 deltaPixel/(S*d)로 표현할 수 있다. 여기서 상기 그리드 큐브를 기준으로 상기 특정 픽셀이 속한 평면의 x 좌표를 xDepth라고 했을 때, xDepth = 1+log(Abs(deltaPixel)/d*S)/log(h))가 된다. 상기 특정 픽셀이 속한 평면에서 상기 그리드 큐브에 해당하는 평면을 스크린 스페이스(UV)에 투영하고, 상기 스크린 스페이스에서 상기 그리드 큐브에 해당하는 평면으로의 역변환을 구하면 yz의 좌표는 다음과 같다. CenterAlignedScreenSpace UV*resolution*deltaPixel/(S*d) 이렇게 산출된 카메라 기준 공간 좌표 xyz를 이용하여 3D 포인트 클라우드 맵을 작성할 수 있다.Looking at this in detail, it is as follows. First, assume a 1m grid cube whose origin is aligned in relative coordinate space based on the camera. When the grid cube is projected on the camera screen through perspective, we want to measure how long it actually has on the camera screen. Here, when a point 1m away from the camera moves 1m to the right, the distance it moves on the screen can be defined as S, and when a point 2m away from the camera moves 1m to the right, the distance it moves on the screen can be defined as h*S. If d is the distance between the plane containing a specific pixel and the camera, the deltaPixel value according to d scaled in meters can be expressed as deltaPixel/(S*d). Here, when the x-coordinate of the plane to which the specific pixel belongs based on the grid cube is called xDepth, xDepth = 1+log(Abs(deltaPixel)/d*S)/log(h)). If the plane corresponding to the grid cube is projected from the plane to which the specific pixel belongs to screen space (UV), and the inverse transformation from the screen space to the plane corresponding to the grid cube is obtained, the coordinates of yz are as follows. CenterAlignedScreenSpace UV*resolution*deltaPixel/(S*d) A 3D point cloud map can be created using the camera reference spatial coordinates xyz calculated in this way.
거리맵 생성부(330)는 거리 산출부(320)에서 산출된 각 픽셀의 거리를 기초로 거리맵 이미지를 생성할 수 있다(S440). The distance map generator 330 may generate a distance map image based on the distance of each pixel calculated by the distance calculator 320 (S440).
일 실시예에서, 거리맵 생성부(330)가 생성하는 거리맵 이미지는 제1 색상 이미지에 대응되는 거리맵 이미지 일 수 있다. 이는, 제1 색상 이미지를 기준으로, 제1 색상 이미지에서 제2 색상 이미지와 겹치는 픽셀 영역(중복 픽셀 영역)에서의 각 픽셀의 이동이 산출 가능하므로, 중복 픽셀 영역의 각각의 픽셀에 대한 거리 값을 포함하여 거리맵 이미지를 생성할 수 있다.In one embodiment, the distance map image generated by the distance map generator 330 may be a distance map image corresponding to the first color image. This is because, based on the first color image, the movement of each pixel in the pixel area (overlapping pixel area) overlapping with the second color image in the first color image can be calculated, the distance value for each pixel in the overlapping pixel area You can create a street map image including .
일 실시예에서, 거리맵 생성부(330)는 제1 색상 이미지에서 제2 색상 이미지와 겹치지 않는 픽셀 영역(비중복 픽셀 영역)에 대한 거리 정보를 산출할 수 있다. 예컨대, 거리맵 생성부(330)는 이미지 객체의 에지와 중복 픽셀 영역의 픽셀에 대한 거리 값을 이용하여, 비중복 픽셀 영역에서의 각 픽셀에 대한 거리 정보를 예측하여 산출할 수 있다. 일 예로, 거리맵 생성부(330)는 색상 이미지의 에지를 산출하고 이를 기초로 색상 이미지에서의 객체를 식별할 수 있다. 이후, 중복 픽셀 영역의 픽셀과 동일한 객체에 포함되는 비중복 픽셀 영역의 픽셀의 거리로서, 동일한 객체에 속하는 중복 픽셀 영역의 픽셀의 거리 값을 설정할 수 있다. 한편, 만약 동일한 객체에서 동일한 열 또는 행에 속하는 중복 픽셀 영역의 다수의 픽셀의 거리 값이 서로 상이한 경우, 동일한 열 또는 행에서의 중복 픽셀 영역의 다수의 픽셀의 거리 값의 변화도를 산출하고, 이러한 열 또는 행을 비중복 픽셀 영역으로 확장한 후 확장된 열 또는 행에 대하여 변화도를 반영함으로써, 비중복 픽셀 영역의 픽셀의 거리를 산출할 수 있다.In one embodiment, the distance map generator 330 may calculate distance information for a pixel area (non-overlapping pixel area) in the first color image that does not overlap with the second color image. For example, the distance map generator 330 may predict and calculate distance information for each pixel in the non-overlapping pixel area using the edge of the image object and the distance value for the pixel in the overlapping pixel area. As an example, the distance map generator 330 may calculate an edge of a color image and identify an object in the color image based on this. Afterwards, the distance value of the pixel in the overlapping pixel area belonging to the same object can be set as the distance between the pixel in the overlapping pixel area and the pixel in the non-overlapping pixel area included in the same object. Meanwhile, if the distance values of a plurality of pixels in the overlapping pixel area belonging to the same column or row in the same object are different from each other, a gradient of the distance values of the plurality of pixels in the overlapping pixel area belonging to the same column or row is calculated, By expanding such a column or row to a non-overlapping pixel area and then reflecting the degree of change with respect to the expanded column or row, the distance between pixels in the non-overlapping pixel area can be calculated.
일 실시예에서, 생성된 거리맵을 이용하여 포인트 클라우드 스캐닝 데이터를 만들 수 있다. 이는 화면좌표를 따라 출력되는 픽셀좌표를 어레이의 형태로 기록함으로써 구현될 수 있다. 영상인 경우, 카메라의 위치에 대한 정보가 원점에 대한 4개의 벡터의 형식으로 표현된 경우(카메라 위치 좌표, 카메라 공간 기저벡터 3개), 얻어진 좌표 맵에 기저벡터로 이루어진 3x3 행렬로 선형변환을 가한 뒤 다시 카메라 좌표를 더해주면 절대 좌표에서의 픽셀 좌표 맵으로 쉽게 변환된다. 이것을 빈 포인트 클라우드 공간에 특정 주기로 업데이트 해주는 경우 움직이는 영상에서도 3d 스캐닝 데이터를 얻어낼 수 있다.In one embodiment, point cloud scanning data can be created using the generated distance map. This can be implemented by recording pixel coordinates output along screen coordinates in the form of an array. In the case of video, if information about the camera's position is expressed in the form of four vectors about the origin (camera position coordinates, three camera space basis vectors), the obtained coordinate map is linearly converted into a 3x3 matrix composed of basis vectors. After adding the camera coordinates again, it is easily converted from absolute coordinates to a pixel coordinate map. If this is updated at a specific cycle in the empty point cloud space, 3D scanning data can be obtained even from moving images.
도 7은 도 3에 도시된 픽셀 이동량 산출부의 일 실시예를 설명하는 블록 구성도이고, 도 8은 도 7에 도시된 픽셀 이동량 산출부의 일 실시예의 일 동작을 설명하는 순서도이다.FIG. 7 is a block diagram explaining an embodiment of the pixel movement amount calculation unit shown in FIG. 3, and FIG. 8 is a flowchart explaining an operation of an embodiment of the pixel movement amount calculation unit shown in FIG. 7.
도 7 및 도 8을 참조하면, 픽셀 이동량 산출부(310)는 픽셀 닮음 평가모듈(311), 시차 분석모듈(312) 및 픽셀 이동량 산출모듈(313)을 포함할 수 있다. Referring to FIGS. 7 and 8 , the pixel movement amount calculation unit 310 may include a pixel similarity evaluation module 311, a parallax analysis module 312, and a pixel movement amount calculation module 313.
픽셀 닮음 평가모듈(311)은 제1 색상 이미지 및 제2 색상 이미지에 대하여 픽셀 닮음 평가 함수를 적용하여, 두 색상 이미지에 대한 픽셀 닮음 정보를 생성할 수 있다(S810).The pixel similarity evaluation module 311 may apply a pixel similarity evaluation function to the first color image and the second color image to generate pixel similarity information for the two color images (S810).
일 예로, 픽셀 닮음 평가모듈(311)은 픽셀 닮음 평가 함수로서 테일러 함수 또는 라플라시안 함수를 사용할 수 있다. For example, the pixel similarity evaluation module 311 may use a Taylor function or a Laplacian function as a pixel similarity evaluation function.
예컨대, 테일러 근사를 이용하는 경우, 테일러 근사의 차수를 증가시킬 수록 기준점에서 해당 함수에 점점 비슷한 모양을 갖추게 된다. 따라서, 픽셀 닮음 평가모듈(311)은 제1 색상 이미지에서의 한 점 및 제2 색상 이미지에서의 한점, 즉, 임의의 두 점의 계도함수들의 미분값들이 비슷하다면 두 점 근방에서 함수의 모양이 비슷한 점을 적용하여, 닮음 평가를 수행할 수 있다. For example, when using the Taylor approximation, as the order of the Taylor approximation increases, the shape becomes increasingly similar to the corresponding function at the reference point. Therefore, the pixel similarity evaluation module 311 determines that if the differential values of the derivatives of a point in the first color image and a point in the second color image, that is, any two points, are similar, the shape of the function near the two points is similar. Similarity evaluation can be performed by applying similar points.
일 예로, 픽셀 닮음 정보는, 제1 색상 이미지 및 제2 색상 이미지를 UV 좌표에서의 스칼라 함수로 설정하고, 두 픽셀 간의 닮음값을 산출하여 표시되는 3차원 플롯 맵 어레이(3 Dimension Float Map Array)로 저장될 수 있다. 예컨대, 픽셀 닮음 평가모듈(311)은 제1 색상 이미지 및 제2 색상 이미지를 UV 좌표에서의 스칼라 함수로 설정한 후, 이들에 대한 라플라시안의 계도함수들을 상호 비교해서, 제1 색상 이미지에서의 한 점 및 제2 색상 이미지에서의 한점, 즉, 두 점 근방이 얼마나 비슷한지를 추정할 수 있다. 픽셀 닮음 평가모듈(311)은 이러한 추정값들을 합하여 3차원 플롯 맵 어레이(3 Dimension Float Map Array)로 저장할 수 있다. 이러한 3차원 플롯 맵 어레이(3 Dimension Float Map Array)에서 움직이는 각 픽셀들의 픽셀값들은 카메라의 제한적인 움직임에 대한 변환에 대해 고유한 값을 갖게 되기 때문에, 픽셀들의 이동량을 추적하는데 사용될 수 있다.As an example, the pixel similarity information is a 3 Dimension Float Map Array that is displayed by setting the first color image and the second color image as a scalar function in UV coordinates and calculating the similarity value between the two pixels. It can be saved as . For example, the pixel similarity evaluation module 311 sets the first color image and the second color image as a scalar function in UV coordinates, then compares the derivative functions of the Laplacian for these, and determines the one color image in the first color image. It is possible to estimate how similar a point in the point and second color image, that is, the vicinity of two points, is. The pixel similarity evaluation module 311 can add these estimated values and store them as a 3 Dimension Float Map Array. Since the pixel values of each moving pixel in this 3 Dimension Float Map Array have a unique value for conversion to the limited movement of the camera, they can be used to track the amount of movement of the pixels.
이를 이미지에 적용하기 위해 컨볼루션 연산을 도입할 수 있다. 이미지에서의 라플라시안은 컨볼루션 연산으로 간략하게 정의되기 때문에 프로그래밍적으로 간결한 로직을 꾀할 수 있다. 또한, 컨볼루션 연산에서의 컨볼루션 커널 행렬을 조작하여 특정한 방향성으로의 닮음을 수치화함으로써 맵핑의 정확도를 올릴 수 있다. ac조일 예로, 행 이동된 제1 색상 이미지(A) 및 제2 색상 이미지(B)의 컨볼루션 커널 행렬(3x3)을 입력값으로 하여 컨볼루션 레이어로 변환한다. 이때 컨볼루션 커널에 재귀적 루프 연산을 적용하여 이미지 어레이 A`[LayerNumber], B`[LayerNumber]를 생성한다. 여기에 평행 이동된 거리인 델타 이동치에 따른 이차 레이어 어레이를 B``[LayerNumber][deltaPixel]로 생성한다. 이차 레이어 어레이의 A``를 생성하는 원리는 다음과 같다. LayerNumber=1~n, deltaPixel=0~x까지 정의하여 A`-B``를 계산하여 A``[LayerNumber][deltaPixel]로 생성하여 저장한다.시차 분석모듈(312)은 픽셀 닮음 평가모듈(311)로부터 픽셀 닮음 정보 -예컨대, 두 픽셀 간의 닮음값을 산출하여 표시되는 3차원 플롯 맵 어레이- 를 제공받고, 촬영 지점의 이동에 대한 지점 이동 정보와 픽셀 닮음 정보를 이용하여 픽셀 이동을 추적할 수 있다. To apply this to the image, a convolution operation can be introduced. Because the Laplacian in an image is simply defined as a convolution operation, simple programming logic can be achieved. Additionally, the accuracy of mapping can be improved by manipulating the convolution kernel matrix in the convolution operation to quantify the similarity in a specific direction. As an example, the convolution kernel matrix (3x3) of the row-shifted first color image (A) and second color image (B) is used as an input value and converted to a convolution layer. At this time, a recursive loop operation is applied to the convolution kernel to generate image arrays A`[LayerNumber], B`[LayerNumber]. Here, a secondary layer array is created as B``[LayerNumber][deltaPixel] according to the delta shift value, which is the parallel shift distance. The principle of generating A`` of the secondary layer array is as follows. Define LayerNumber=1~n, deltaPixel=0~x, calculate A`-B``, create it as A``[LayerNumber][deltaPixel], and store it. The parallax analysis module 312 uses a pixel similarity evaluation module ( 311), pixel similarity information - for example, a 3D plot map array displayed by calculating the similarity value between two pixels - is provided, and pixel movement is tracked using the point movement information and pixel similarity information regarding the movement of the shooting point. You can.
예컨대, 시차 분석모듈(312)은 카메라의 이동 거리, 즉, 촬영 지점의 이동에 대한 지점 이동 정보를 이용하여 픽셀들이 움직임 방향을 나타내는 기준 방향 벡터와 이동 범위 a를 산출할 수 있다(S820). 여기에서, 이동 범위란, 픽셀이 기준 방향 벡터를 따라 움직일 범위로서, 예컨대, -a 내지 a의 범위를 만족할 수 있다. For example, the parallax analysis module 312 can calculate a reference direction vector indicating the direction in which pixels move and a movement range a using the movement distance of the camera, that is, point movement information about the movement of the shooting point (S820). Here, the movement range is the range in which the pixel moves along the reference direction vector, and may satisfy, for example, the range from -a to a.
이후, 시차 분석모듈(312)은 기준 방향 벡터에 픽셀의 해상도에 대응하여 -a에서 a까지 단위 이미지를 움직여서, 3차원 플롯 맵 어레이로 가공된 제1 이미지 및 제2 이미지를 차감할 수 있다. 여기에서, 단위 이미지는 이동 범위를, 이동 범위보다 작게 설정된 소정의 해상도로 나누어 설정될 수 있고, 이러한 단위 이미지는 기준 방향 벡터의 방향으로 움직이면서 차감이 수행될 수 있다. 이러한 연산에 따라, 각 픽셀들은 고윳값에 근접하게 되고, 따라서, 움직인 거리에 따라서 주변이 비슷한 픽셀들은 0에 가까운 값으로 표현되게 된다. 픽셀 이동량 산출모듈(313)은 시차 분석모듈(312)에서 수행된 이러한 차감 연산의 결과를 기초로 각 픽셀이 카메라의 움직임에 따른 화면상 이동량을 맵핑할 수 있다. 실시예에 따라, 시차 분석모듈(312)은 노이즈 제거 등의 처리를 수반하여 매핑을 수행할 수 있다(S830).Thereafter, the parallax analysis module 312 may move the unit image from -a to a in response to the resolution of the pixel in the reference direction vector and subtract the first and second images processed into a 3D plot map array. Here, the unit image can be set by dividing the movement range by a predetermined resolution set smaller than the movement range, and subtraction can be performed on this unit image while moving in the direction of the reference direction vector. According to this operation, each pixel approaches its eigenvalue, and thus pixels with similar surroundings depending on the distance moved are expressed as a value close to 0. The pixel movement amount calculation module 313 can map the amount of movement of each pixel on the screen according to the movement of the camera based on the result of this subtraction operation performed by the parallax analysis module 312. Depending on the embodiment, the parallax analysis module 312 may perform mapping along with processing such as noise removal (S830).
도 10은 본 발명의 일 실시예에 따른 시차 분석 알고리듬을 설명하기 위한 개념도이다. 도 10을 참조하면, 시차 분석모듈(312)은 픽셀 닮음 정보를 기반으로 실제 픽셀이 얼마나 이동했는지를 계산할 수 있다. 즉, 이동 거리 delta에 따라 이미지를 일괄 이동시켜 비교함으로써 각 픽셀들의 이동 거리 deltaPixel을 이미지 처리를 통해 일괄적으로 산출할 수 있다. 이를 위해, 시차 분석모듈(312)은 시차 평가모듈(311)이 수행하는 컨볼루션 연산 과정을 서로 반대 좌우 방향성을 가진 컨볼루션 커널을 이용하여 A1``[LayerNumber][deltaPixel], A2``[LayerNumber][deltaPixel]를 생성할 수 있다. 여기서 LayerNumber마다 각 픽셀값에서 A1``^2+A2``^2이 최소값이 되는 deltaPixel을 찾아 픽셀에 기록하여 이미지 어레이 C[LayerNumber]를 생성하고, C의 원소들의 평균을 구하여 거리맵(deltaPixelMap)을 생성할 수 있다.Figure 10 is a conceptual diagram for explaining a disparity analysis algorithm according to an embodiment of the present invention. Referring to FIG. 10, the parallax analysis module 312 can calculate how much a pixel has actually moved based on pixel similarity information. In other words, by moving images in batches according to the movement distance delta and comparing them, the movement distance deltaPixel of each pixel can be collectively calculated through image processing. To this end, the disparity analysis module 312 performs the convolution calculation process performed by the disparity evaluation module 311 into A1``[LayerNumber][deltaPixel], A2``[ LayerNumber][deltaPixel] can be created. Here, for each LayerNumber, find the deltaPixel where A1``^2+A2``^2 is the minimum value in each pixel value and record it in the pixel to create an image array C[LayerNumber], and calculate the average of the elements of C to create a distance map (deltaPixelMap ) can be created.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고 후술하는 특허청구범위에 의해 한정되며, 본 발명의 구성은 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 그 구성을 다양하게 변경 및 개조할 수 있다는 것을 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 쉽게 알 수 있다.The present invention described above is not limited by the above-described embodiments and the accompanying drawings, but is limited by the scope of the patent claims described later, and the configuration of the present invention can be varied within the scope without departing from the technical spirit of the present invention. Those skilled in the art can easily see that changes and modifications can be made.
*부호의 설명**Explanation of symbols*
100 : 촬영 단말 100: shooting terminal
300 : 관리 서버 300: Management server
301 : 시스템 메모리 302 : 운영체제301: System memory 302: Operating system
303 : 프로세싱 유닛 304 : 저장장치303: processing unit 304: storage device
305 : 입력장치 306 : 출력장치305: input device 306: output device
307 : 통신장치307: Communication device
310 : 픽셀 이동량 산출부 320 : 거리 산출부310: pixel movement amount calculation unit 320: distance calculation unit
330 : 거리맵 생성부330: Street map generation unit
311 : 픽셀 닮음 평가모듈 312 : 시차 분석모듈311: Pixel similarity evaluation module 312: Parallax analysis module
313 : 픽셀 이동량 산출모듈313: Pixel movement amount calculation module
Claims (10)
- 색상 이미지를 제공받아 색상 이미지를 기반으로 거리맵 이미지를 생성하는 서비스 서버에서 수행되는 거리맵 산출 방법으로서,A street map calculation method performed on a service server that receives a color image and generates a street map image based on the color image,제1 지점에서 촬영한 제1 색상 이미지와, 상기 제1 지점과 인접한 제2 지점에서 촬영된 제2 색상 이미지를 획득하는 단계;Obtaining a first color image taken at a first point and a second color image taken at a second point adjacent to the first point;상기 제1 색상 이미지와 상기 제2 색상 이미지 간의 픽셀 닮음을 산출하고, 산출된 픽셀 닮음을 기초로 상기 제1 색상 이미지로부터 상기 제2 색상 이미지까지의 각 픽셀의 이미지 상의 픽셀 이동량을 산출하는 단계; 및calculating pixel similarity between the first color image and the second color image, and calculating a pixel movement amount on the image for each pixel from the first color image to the second color image based on the calculated pixel similarity; and상기 제1 지점 및 상기 제2 지점 간의 지점 이동정보와, 상기 픽셀 이동량을 기초로 각 픽셀에서의 거리를 산출하는 단계;calculating a distance at each pixel based on point movement information between the first point and the second point and the pixel movement amount;를 포함하는, Including,시차 분석을 기반으로 하는 거리맵 산출 방법.Distance map calculation method based on parallax analysis.
- 제1항에 있어서,According to paragraph 1,상기 거리맵 산출 방법은,The distance map calculation method is,산출된 상기 각 픽셀에서의 거리를 기초로, 상기 제1 색상 이미지에 대한 거리맵 이미지를 생성하는 단계;generating a distance map image for the first color image based on the calculated distance from each pixel;를 포함하는, Including,시차 분석을 기반으로 하는 거리맵 산출 방법.Distance map calculation method based on parallax analysis.
- 제1항에 있어서, According to paragraph 1,상기 제1 지점에서부터 상기 제2 지점까지의 이동은 평행 이동에 해당하는,Movement from the first point to the second point corresponds to parallel movement,시차 분석을 기반으로 하는 거리맵 산출 방법.Distance map calculation method based on parallax analysis.
- 제1항에 있어서,According to paragraph 1,상기 각 픽셀의 이미지 상의 픽셀 이동량을 산출하는 단계는,The step of calculating the amount of pixel movement on the image of each pixel is,상기 제1 색상 이미지 및 제2 색상 이미지에 대하여 픽셀 닮음 평가 함수를 적용하여 픽셀 닮음 정보를 생성하는 단계;generating pixel similarity information by applying a pixel similarity evaluation function to the first color image and the second color image;상기 지점 이동정보를 기초로, 기준 방향 벡터 및 이동 범위를 산출하는 단계; 및calculating a reference direction vector and movement range based on the point movement information; and픽셀 닮음 정보에 대해 상기 이동 범위 내에서 상기 기준 방향 벡터를 적용하여 상기 픽셀 이동량을 산출하는 단계;calculating the pixel movement amount by applying the reference direction vector within the movement range to pixel similarity information;를 포함하는,Including,시차 분석을 기반으로 하는 거리맵 산출 방법.Distance map calculation method based on parallax analysis.
- 제4항에 있어서,According to paragraph 4,상기 픽셀 닮음 정보는,The pixel similarity information is,상기 제1 색상 이미지 및 제2 색상 이미지를 UV 좌표에서의 스칼라 함수로 설정하고, 두 픽셀 간의 닮음값을 산출하여 표시되는 3차원 플롯 맵 어레이(3 Dimension Float Map Array)로 저장되는,The first color image and the second color image are set as a scalar function in UV coordinates, and the similarity value between the two pixels is calculated and displayed as a 3-dimensional plot map array (3 Dimension Float Map Array).시차 분석을 기반으로 하는 거리맵 산출 방법.Distance map calculation method based on parallax analysis.
- 제1 지점에서 촬영한 제1 색상 이미지와, 상기 제1 지점과 인접한 제2 지점에서 촬영된 제2 색상 이미지를 획득하는 촬영 단말; 및a photographing terminal that acquires a first color image photographed at a first point and a second color image photographed at a second point adjacent to the first point; and상기 제1 색상 이미지와 상기 제2 색상 이미지 간의 픽셀 닮음을 산출하고, 산출된 픽셀 닮음을 기초로 각 픽셀에서의 거리를 산출하는 서비스 서버;a service server that calculates pixel similarity between the first color image and the second color image and calculates a distance from each pixel based on the calculated pixel similarity;를 포함하고, Including,상기 서비스 서버는,The service server is,상기 산출된 픽셀 닮음을 기초로 상기 제1 색상 이미지로부터 상기 제2 색상 이미지까지의 각 픽셀의 이미지 상의 픽셀 이동량을 산출하고, 상기 제1 지점 및 제2 지점 간의 지점 이동정보와 상기 픽셀 이동량을 기초로 각 픽셀에서의 거리를 산출하는, Calculating a pixel movement amount on the image of each pixel from the first color image to the second color image based on the calculated pixel similarity, based on point movement information between the first point and the second point and the pixel movement amount Calculating the distance at each pixel,시차 분석을 기반으로 하는 거리맵 산출 시스템.Distance map calculation system based on parallax analysis.
- 제6항에 있어서,According to clause 6,상기 서비스 서버는, The service server is,산출된 상기 각 픽셀에서의 거리를 기초로, 상기 제1 색상 이미지에 대한 거리맵 이미지를 생성하는, Generating a distance map image for the first color image based on the calculated distance from each pixel,시차 분석을 기반으로 하는 거리맵 산출 시스템.Distance map calculation system based on parallax analysis.
- 제6항에 있어서,According to clause 6,상기 제1 지점에서부터 상기 제2 지점까지의 이동은 평행 이동에 해당하는,Movement from the first point to the second point corresponds to parallel movement,시차 분석을 기반으로 하는 거리맵 산출 시스템.Distance map calculation system based on parallax analysis.
- 제6항에 있어서,According to clause 6,상기 서비스 서버는,The service server is,상기 각 픽셀의 이미지 상의 픽셀 이동량을 산출함에 있어서,In calculating the amount of pixel movement on the image of each pixel,상기 제1 색상 이미지 및 제2 색상 이미지에 대하여 픽셀 닮음 평가 함수를 적용하여 픽셀 닮음 정보를 생성하고, Applying a pixel similarity evaluation function to the first color image and the second color image to generate pixel similarity information,상기 지점 이동정보를 기초로, 기준 방향 벡터 및 이동 범위를 산출한 후,After calculating the reference direction vector and movement range based on the point movement information,픽셀 닮음 정보에 대해 상기 이동 범위 내에서 상기 기준 방향 벡터를 적용하여 상기 픽셀 이동량을 산출하는,Calculating the pixel movement amount by applying the reference direction vector within the movement range to pixel similarity information,시차 분석을 기반으로 하는 거리맵 산출 시스템.Distance map calculation system based on parallax analysis.
- 제9항에 있어서,According to clause 9,상기 픽셀 닮음 정보는,The pixel similarity information is,상기 제1 색상 이미지 및 제2 색상 이미지를 UV 좌표에서의 스칼라 함수로 설정하고, 두 픽셀 간의 닮음값을 산출하여 표시되는 3차원 플롯 맵 어레이(3 Dimension Float Map Array)로 저장되는,The first color image and the second color image are set as a scalar function in UV coordinates, and the similarity value between the two pixels is calculated and displayed as a 3-dimensional plot map array (3 Dimension Float Map Array).시차 분석을 기반으로 하는 거리맵 산출 시스템.Distance map calculation system based on parallax analysis.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220123640A KR20240044174A (en) | 2022-09-28 | 2022-09-28 | Distance map generation method based on parallax analysis and system therefor |
KR10-2022-0123640 | 2022-09-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024071653A1 true WO2024071653A1 (en) | 2024-04-04 |
Family
ID=90478355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/011660 WO2024071653A1 (en) | 2022-09-28 | 2023-08-08 | Distance map calculating method based on parallax analysis, and system therefor |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240044174A (en) |
WO (1) | WO2024071653A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130085030A (en) * | 2010-07-08 | 2013-07-26 | 스피넬라 아이피 홀딩스, 인코포레이티드 | System and method for shot change detection in a video sequence |
KR101370785B1 (en) * | 2012-11-06 | 2014-03-06 | 한국과학기술원 | Apparatus and method for generating depth map of streoscopic image |
JP5751117B2 (en) * | 2011-09-29 | 2015-07-22 | 大日本印刷株式会社 | Image generation apparatus, image generation method, and program for image generation apparatus |
KR20200090391A (en) * | 2019-01-21 | 2020-07-29 | 엘지이노텍 주식회사 | Camera module and image generating method performed therein |
KR102278536B1 (en) * | 2020-11-09 | 2021-07-19 | 대한민국 | Apparatus and method for measuring distance using a video image |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102094506B1 (en) | 2013-10-14 | 2020-03-27 | 삼성전자주식회사 | Method for measuring changes of distance between the camera and the object using object tracking , Computer readable storage medium of recording the method and a device measuring changes of distance |
KR102263064B1 (en) | 2014-08-25 | 2021-06-10 | 삼성전자주식회사 | Apparatus and method for recognizing movement of a subject |
-
2022
- 2022-09-28 KR KR1020220123640A patent/KR20240044174A/en unknown
-
2023
- 2023-08-08 WO PCT/KR2023/011660 patent/WO2024071653A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130085030A (en) * | 2010-07-08 | 2013-07-26 | 스피넬라 아이피 홀딩스, 인코포레이티드 | System and method for shot change detection in a video sequence |
JP5751117B2 (en) * | 2011-09-29 | 2015-07-22 | 大日本印刷株式会社 | Image generation apparatus, image generation method, and program for image generation apparatus |
KR101370785B1 (en) * | 2012-11-06 | 2014-03-06 | 한국과학기술원 | Apparatus and method for generating depth map of streoscopic image |
KR20200090391A (en) * | 2019-01-21 | 2020-07-29 | 엘지이노텍 주식회사 | Camera module and image generating method performed therein |
KR102278536B1 (en) * | 2020-11-09 | 2021-07-19 | 대한민국 | Apparatus and method for measuring distance using a video image |
Also Published As
Publication number | Publication date |
---|---|
KR20240044174A (en) | 2024-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015005577A1 (en) | Camera pose estimation apparatus and method | |
WO2016095192A1 (en) | Optical-flow imaging system and method using ultrasonic depth sensing | |
CN110070598B (en) | Mobile terminal for 3D scanning reconstruction and 3D scanning reconstruction method thereof | |
WO2017150878A1 (en) | Leveraging multi cues for fine-grained object classification | |
WO2013015549A2 (en) | Plane-characteristic-based markerless augmented reality system and method for operating same | |
WO2016053067A1 (en) | 3-dimensional model generation using edges | |
WO2014185710A1 (en) | Method for correcting 3d image in tiled display and apparatus therefor | |
WO2013151270A1 (en) | Apparatus and method for reconstructing high density three-dimensional image | |
US20110091131A1 (en) | System and method for stabilization of fisheye video imagery | |
WO2021075772A1 (en) | Object detection method and device using multiple area detection | |
WO2021025364A1 (en) | Method and system using lidar and camera to enhance depth information about image feature point | |
WO2023169281A1 (en) | Image registration method and apparatus, storage medium, and electronic device | |
Eichhardt et al. | Affine correspondences between central cameras for rapid relative pose estimation | |
WO2017195984A1 (en) | 3d scanning device and method | |
WO2015056826A1 (en) | Camera image processing apparatus and method | |
WO2023027268A1 (en) | Camera-lidar calibration device and method | |
WO2024071653A1 (en) | Distance map calculating method based on parallax analysis, and system therefor | |
WO2021206200A1 (en) | Device and method for processing point cloud information | |
WO2011078430A1 (en) | Sequential searching method for recognizing plurality of feature point-based markers and augmented reality implementing method using same | |
JPH08242469A (en) | Image pickup camera | |
Hui et al. | Determination of line scan camera parameters via the direct linear transformation | |
WO2016159613A1 (en) | Object tracking method and system for image synthesis | |
WO2022203464A2 (en) | Method for real-time omnidirectional stereo matching using multi-view fisheye lenses and system therefor | |
WO2021182793A1 (en) | Method and apparatus for calibrating different types of sensors using single checkerboard | |
WO2020256517A2 (en) | Automatic phase mapping processing method and system based on omnidirectional image information |
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: 23872776 Country of ref document: EP Kind code of ref document: A1 |