WO2021256319A1 - 情報処理装置、情報処理方法および記録媒体 - Google Patents
情報処理装置、情報処理方法および記録媒体 Download PDFInfo
- Publication number
- WO2021256319A1 WO2021256319A1 PCT/JP2021/021615 JP2021021615W WO2021256319A1 WO 2021256319 A1 WO2021256319 A1 WO 2021256319A1 JP 2021021615 W JP2021021615 W JP 2021021615W WO 2021256319 A1 WO2021256319 A1 WO 2021256319A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- hair
- image
- model data
- silhouette
- information processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
Definitions
- This disclosure relates to an information processing device, an information processing method, and a recording medium.
- 3D hair A technique for generating "3D (three dimensions) hair" by selecting a plurality of hairstyles similar to the hairstyle of the subject from a database and combining them is known.
- the 3D hair is represented, for example, as a 3D object representing the hair, defined by a set of line segments that continuously connect points in virtual space.
- Non-Patent Document 1 a 2D (two dimensions) image of a subject for which 3D hair is desired is first input to the system, and a stroke representing the flow of the subject's hair is accepted for the 2D image.
- the system selects 3D hair including "3D hair" having a shape similar to the input stroke from a database in which a plurality of 3D hairs are registered in advance.
- the 3D hair is data corresponding to each hair constituting the 3D hair, and the system projects the 3D hair onto the 2D image plane to which the stroke is input, and constitutes the 3D hair and the stroke, respectively. Similarity is determined by comparing the distances of the vertices.
- an information processing device an information processing method, and a recording medium capable of improving the accuracy of the selection process of 3D hair and improving the quality of the finally generated 3D hair.
- the information processing apparatus has the 3D face model data in the direction corresponding to the shooting direction of the 2D image from the side corresponding to the 2D image including the face of the subject.
- the 2D image includes a deletion unit that deletes a range having a predetermined offset amount, and a part of the 3D face model data that is the remaining part of the 3D face model data whose range is deleted by the deletion unit.
- It is provided with a hair search unit that determines whether or not it corresponds to the hairstyle of the subject, and if it is determined that it corresponds, selects the 3D hair associated with the 3D face model data from the database.
- FIG. 1 is a schematic explanatory diagram of an information processing method according to an embodiment of the present disclosure.
- FIG. 2 is a schematic block diagram of an information processing apparatus according to a comparative example of the embodiment of the present disclosure.
- FIG. 3 is a flowchart showing a processing procedure of the information processing apparatus according to the comparative example of the embodiment of the present disclosure. Note that FIG. 1 shows an outline of both the comparative example and the present embodiment.
- the information system selects a plurality of hairstyles similar to the hairstyle of the subject from the 3D hair DB (Database) 111 in which a plurality of 3D hairs are registered in advance. It is a part of the system that generates 3D hair corresponding to the hairstyle of the subject by combining.
- 3D hair DB Database
- the 3D hair DB111 collects data on 3D hair shared by, for example, online communities related to games, unifies the format, and many of the 3D head models equipped with such 3D hair have their faces aligned. It is stored.
- the actual hair is an aggregate of elongated fibers, and it is difficult to capture each hair with a camera.
- most of the hair is shielded by other hairs, and it is difficult to estimate the internal structure. Is. Therefore, as a 3D object in virtual space, it is known as an object that is difficult to automatically or semi-automatically generate.
- a "hair search process" for selecting 3D hair including 3D hair having a shape similar to the input stroke is executed from the 3D hair DB111. ..
- the information processing apparatus to which the information processing method according to the comparative example is applied has an image acquisition unit 121, a stroke acquisition unit 122, and a hair search unit 125.
- the image acquisition unit 121 acquires a 2D image of a subject for which the user wants to make 3D hair, which is taken by a camera (for example, a monocular RGB camera), as an input image.
- a camera for example, a monocular RGB camera
- the stroke acquisition unit 122 acquires a stroke manually drawn by the user via the input unit (for example, a mouse) with respect to the input image acquired by the image acquisition unit 121. For example, several to 10 strokes are input, but the number is not limited. In the hair search process in the subsequent stage, the same number of 3D hair candidates as the number of strokes acquired by the stroke acquisition unit 122 is selected from the 3D hair DB 111.
- the hair search unit 125 searches for and selects 3D hair including 3D hair having a similar shape from the 3D hair DB 111 for each stroke based on the stroke acquired by the stroke acquisition unit 122.
- the hair search unit 125 projects the 3D hair onto the 2D image plane in order to compare the stroke drawn on the 2D image with the shape of the 3D hair.
- the projection mentioned here is all the 3D hair that the 3D hair has, assuming that the 3D hair arranged in the virtual space is taken from a virtual camera (hereinafter, appropriately referred to as "virtual camera") arranged in the virtual space. Refers to the process of moving vertices onto a 2D image plane.
- the hair search unit 125 makes the positional relationship between the virtual camera and the 3D hair correspond to the positional relationship between the camera in the real space where the input image was taken and the subject, so that the 3D hair and the reality originally exist in the virtual space. It is possible to compare the positional relationship between the input stroke and the input image taken by the camera in space on the 2D image plane.
- the hair search unit 125 determines the similarity of the 3D hair and the stroke projected on the 2D image plane by comparing the distances of the vertices constituting each of them.
- a stroke processed by a computer is defined as a continuous connection of a set of vertices that make up such a stroke, so the distance between the stroke and the vertices of the 3D hair on the 2D image plane is calculated. can.
- the hair search unit 125 searches for the projected 3D hair having the shortest distance from each stroke drawn on the 2D image. By such a process, the number of 3D hairs equal to the number of strokes input by the user is selected as similar 3D hairs. Then, the hair search unit 125 selects a number of 3D hairs equal to the number of strokes, including each of the selected 3D hairs.
- FIG. 3 shows in more detail the processing procedure of the information processing apparatus according to the comparative example. Note that FIG. 3 shows a processing procedure of the hair search process for one stroke S (i) by the hair search unit 125.
- i is the index number of the stroke S.
- j is an index number of 3D hair stored in the 3D hair DB 111.
- j max is the number of 3D hairs stored in the 3D hair DB 111.
- d c is a variable to which the distance between the stroke (i) and the 3D hair (j) of the 3D hair is substituted.
- d is a variable to which the distance between the stroke (i) and the 3D hair (j) is substituted.
- d max is the maximum value that can be expressed in the data format for storing the value corresponding to d in the processing system of the information processing apparatus according to the comparative example.
- the hair search unit 125 executes the loop process shown in step S11 for each stroke S (i). Such a loop process is executed while j is assigned 0, d max is assigned to d, and j is incremented while j ⁇ j max is true.
- the hair search unit 125 acquires the 3D hair (j) from the 3D hair DB 111 (step S111). Then, the hair search unit 125 projects the 3D hair (j) onto the 2D image plane (step S112).
- the hair search unit 125 calculates the distance d c between each 3D hair of the 3D hair (j) and the stroke S (i) (step S113).
- the hair retrieval unit 125 extracts the value of the smallest distance d c (step S114), the distance d c is determined whether the distance d is less than or not (step S115).
- step S115, Yes if the smaller (step S115, Yes), and updates the distance d in the distance d c, and record the value of j (step S116), while the step S11 is executed, the process is repeated from step S111. If it is large (steps S115, No), the process from step S111 is repeated while step S11 is executed.
- step S11 is executed for all the strokes S (i)
- the distance to each of the strokes S (i) is the smallest based on the value of j recorded for each of the strokes S (i). That is, the 3D hair (j) having the most similarity is selected.
- the information processing method according to such a comparative example has the following problems (a) and (b).
- the first problem (a) is that the comparison target for the similarity with the stroke is the 3D hair corresponding to each hair of the 3D hair, so the similarity of the shape of the entire 3D hair is taken into consideration. The point is that it cannot be done.
- 3D hair may be selected, which is very similar to the stroke only in part, but has a completely different shape of the entire hair.
- the shape of the final 3D hair may be significantly different from the hairstyle of the subject included in the input image.
- the second problem (b) is that the 3D hair in the part that is originally invisible from the shooting direction of the subject (hereinafter, appropriately referred to as "invisible part”) can also be compared with the stroke.
- the depth information of the 3D hair is lost in the projection process described above.
- Depth information is position information in the direction from the front to the back when viewed from the virtual camera in the virtual space. When such depth information is lost, it becomes difficult for the computer to grasp the context of the object.
- the 3D hair existing in the virtual space is used.
- Projection processing is a necessary means for searching with 2D information.
- a head-mounted display that realizes VR (Virtual Reality), a device that realizes AR (Augmented Reality), etc. can be attached, and a special that enables input in virtual space. It requires a technology to actually input strokes using such a special device, and it cannot be said that everyone can use it.
- VR Virtual Reality
- AR Augmented Reality
- the anteroposterior relationship between the bangs and the back hair becomes unclear due to the projection in the hair search process.
- the hair that cannot be seen from the front which is the shooting direction
- the hair that cannot be seen from the front which is the shooting direction
- the problem (a) is subjected to the "silhouette determination process".
- the "invisible part deletion process” is executed for each of the points (b).
- step S1 similarity comparison using silhouette images is performed.
- silhouette images there are two types of silhouette images, one based on the input image and the other based on the 3D hair DB 111.
- the image based on the input image is an image in which the hair part of the subject included in the input image taken by the camera in the real space is painted in a single color, and the rest is painted in another color. ..
- This is hereinafter referred to as “silhouette image MH " or "hair shape comparison image” as appropriate.
- a virtual camera is placed in front of the 3D face model data, which is a 3D head model equipped with the 3D hair in the virtual space, and the virtual camera is placed. It is an image generated assuming that it was taken by a camera. As shown in the figure, in such an image, the portion of the 3D hair in the image is filled with a single color. Here it is hereinafter referred to as "silhouette image M S".
- Silhouette determination process these silhouette images M H, by comparing the M S, determining the similarity of the shape of the entire hair.
- the stroke is used to limit the similarity comparison area (step S2).
- step S2 the silhouette image M H, with respect to M S, by applying the extraction process to be described later by using the start and end points of the stroke entered by the user, to limit the target area of the subsequent processing. Then, for a limited target area, the calculation processing described later, the silhouette image M H, calculates the degree of overlapping between the hair portion in the M S, the similarity of the silhouette image M H, M S on the basis of the superposition degree To judge.
- the invisible part is deleted using the depth information (step S3).
- the depth information includes, for example, a depth value, and the depth value represents the distance between the virtual camera arranged in the virtual space and the 3D object arranged in the virtual space.
- a depth image in which the depth value which is the distance to the 3D hair seen from the virtual camera is recorded is used as the depth information.
- step S3 using the above-mentioned 3D face model data, the depth value when the 3D face model data is viewed from the position of the virtual camera arranged in the virtual space is calculated, and the depth image in which the depth value is recorded (hereinafter, appropriately referred to as a "depth image M D".) to generate.
- the value obtained by adding a predetermined offset amount in the depth direction when viewed from the virtual camera arranged in the virtual space to the depth value is used as a threshold value, and among the 3D hairs included in the 3D face model data, the virtual space is used.
- a threshold value the value obtained by adding a predetermined offset amount in the depth direction when viewed from the virtual camera arranged in the virtual space to the depth value.
- the offset amount is, as is known, a value used to realize some processing by adding or decreasing a constant value to a threshold value or a parameter.
- offset amount Od an offset amount applied to the shooting direction of the virtual camera arranged in the virtual space to the depth value.
- the 3D hair that is regarded as an invisible part is deleted from the comparison target with the stroke in the hair search process.
- the above-mentioned problem (b) can be solved and the selection accuracy of 3D hair can be improved.
- the above-mentioned problems with respect to (a), the silhouette image M H it was decided to compare the shape of the entire hair using M S. Further, in response to the above problem (b), by utilizing the positional relationship between the virtual camera and the 3D hair in the virtual space, the invisible part which is the 3D hair part other than the 3D hair seen from the virtual camera is preliminarily projected. It was decided to remove it from the comparison target with the stroke and compare only the visible part with the stroke.
- the above problems (a) and (b) are solved, the accuracy of the 3D hair selection process is improved, and the quality of the finally generated 3D hair is improved. Improvement can be realized.
- FIG. 4 is a block diagram showing a configuration example of the information processing apparatus 10 according to the embodiment of the present disclosure. Note that FIG. 4 shows only the components necessary for explaining the features of the present embodiment, and the description of general components is omitted.
- each component shown in FIG. 4 is a functional concept and does not necessarily have to be physically configured as shown in the figure.
- the specific form of distribution / integration of each block is not limited to the one shown in the figure, and all or part of it may be functionally or physically distributed in any unit according to various loads and usage conditions. It can be integrated and configured.
- the information processing apparatus 10 includes a storage unit 11 and a control unit 12. Further, the information processing apparatus 10 includes a camera 3, an input unit 5, and an output unit 7.
- the information processing device 10 is realized by, for example, the above-mentioned PC, tablet PC, smartphone, or the like.
- the camera 3 is realized by, for example, a monocular RGB camera.
- the input unit 5 is realized by, for example, a mouse.
- the output unit 7 is realized by, for example, a display monitor.
- the input unit 5 may be a pointing device capable of inputting strokes by the user, and may be, for example, a pen type. Further, the input unit 5 and the output unit 7 may be realized by the touch panel display together, and the input unit 5 may accept the input of the stroke by the user's finger.
- the storage unit 11 is realized by, for example, a semiconductor memory element such as a RAM (Random Access Memory), a ROM (Read Only Memory), or a flash memory (Flash Memory), or a storage device such as a hard disk or an optical disk.
- a semiconductor memory element such as a RAM (Random Access Memory), a ROM (Read Only Memory), or a flash memory (Flash Memory), or a storage device such as a hard disk or an optical disk.
- the storage unit 11 stores the 3D hair DB 111.
- the control unit 12 is a controller, and for example, various programs stored in the storage unit 11 are executed using the RAM as a work area by a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like. Is realized by. Further, the control unit 12 can be realized by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
- ASIC Application Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- the control unit 12 has an image acquisition unit 121, a stroke acquisition unit 122, a silhouette determination unit 123, an invisible portion deletion unit 124, and a hair search unit 125, and has functions and actions of information processing described below. Realize or execute.
- the image acquisition unit 121 acquires a 2D image of the subject for which the user wants to make 3D hair, which is taken by the camera 3, as an input image.
- the stroke acquisition unit 122 acquires a stroke manually drawn by the user via the input unit 5 with respect to the input image acquired by the image acquisition unit 121.
- FIGS. 5 and 6 are explanatory views (No. 1) and (No. 2) of the stroke.
- the stroke is a plurality of lines representing the rough flow of the hair of the subject, which is manually drawn by the user via the input unit 5 with respect to the input image output to the output unit 7. ..
- the stroke is defined as a set of line segments connecting each vertex continuously with an arbitrary point on the 2D image plane as a vertex.
- the stroke has a start point and an end point.
- the start point and the end point may be reversed. Such start points and end points are used in the cutting process described later.
- the silhouette determination unit 123 executes the silhouette determination process (see FIG. 1) according to the above-described embodiment. As shown in FIG. 4, the silhouette determination unit 123 includes a silhouette image generation unit 123a, a cutting unit 123b, a calculation unit 123c, and a determination unit 123d.
- the silhouette image generation unit 123a generates the silhouette image MH described above based on the input image acquired by the image acquisition unit 121.
- FIG. 7 is a diagram showing an example of the silhouette image MH. As shown in FIG. 7, the silhouette image generation unit 123a is an image in which the hair portion of the subject included in the input image taken by the camera 3 in the real space is painted in a single color, and the rest is painted in another color. Generate silhouette image MH.
- the silhouette image generation unit 123a uses an image in which the hair portion of the image and the rest of the image are painted separately as teacher data, and uses the hair portion of the subject of the input image as the subject based on a learning model learned by using an algorithm such as semantic segmentation. Estimate and generate a silhouette image MH.
- FIG. 8 is a diagram showing an example of 3D face model data.
- 9 is a diagram showing an example of a silhouette image M S.
- the 3D face model data corresponds to the data in which the 3D head model with the 3D hair attached, in other words, the 3D hair and the 3D head model are displayed together.
- Silhouette image generating unit 123a based on the assumed image and captured by the virtual camera placed in front of such a 3D face model data to generate the silhouette image M S.
- the silhouette image generating unit 123a includes a silhouette image M S as an image that fills the portion of at least 3D hair in the image is assumed to have taken with monochromatic by the virtual camera placed in front of the 3D face model data To generate.
- the silhouette image generation unit 123a converts the coordinates of all the 3D face model data included in the 3D hair DB 111 based on the external parameters of the camera 3 at the time of shooting the input image, and converts the hair portion, the skin portion, and the background portion into the hair portion, the skin portion, and the background portion. to produce a silhouette image M S is painted in a different color.
- the external parameters of the camera 3 generally hold the position and rotation direction of the camera 3, and by knowing these, each vertex defined in the coordinate system of a specific virtual space is in another coordinate system. It is possible to calculate the position.
- Cutout portion 123b is silhouette image M H generated by the silhouette image generating unit 123a, to M S, using the start and end points of the stroke entered by the user, limiting the target region to be processed in the subsequent processing do.
- 10 to 12 are explanatory views (No. 1) to (No. 3) of the cutting process executed by the cutting unit 123b. As she is shown in FIG. 10, cutout portions 123b, on the basis of the stroke S input by the user (i), to remove unwanted portions of the silhouette image M H, M S.
- the cutout portion 123b extracts the leftmost and rightmost vertices on the 2D image plane, that is, the start point and the end point shown in FIG. 6 among the vertices constituting the stroke S (i). Then, the cutout portion 123b sets the extracted start point position and end point position as the temporary left end and right end of the region to be compared with each other. Sonouede, cutout portion 123b, as shown in FIG. 10, an area that fits the position of applying the predetermined offset amount O w to such left and right edges, and cut-out target area A c.
- cutout portion 123b is an offset O w, and 5% with respect to the lateral length defined by start and end points.
- the offset amount O w is a variation of practical processing and is not essential for this embodiment. What is the offset amount O d applied in the depth direction when viewed from the virtual camera arranged in the virtual space described above? It's different.
- FIG. 11 shows an example of the result of the cutout portion 123b performing the cutout process on the silhouette image MH shown in FIG. 7.
- FIG. 9 shows an example of a result of cutout portion 123b is subjected to clipping processing is shown in FIG 12.
- the calculation unit 123c executes the calculation process according to the present embodiment described above. Calculator 123c, compared target region defined by the cutout portion 123b, and calculates a silhouette image M H, the superposition degree of the hair portion in the M S.
- FIG. 13 is an explanatory diagram of the calculation process executed by the calculation unit 123c.
- Calculator 123c the silhouette image M H cut out on the basis of the cut-out target area A c, compare M S, overlap areas representing a hair in each (see “overlapping region” in FIG. 13) the IOU (Intersection-over- Calculated as Union).
- region A in hair portion of silhouette images M H, region B is the hair portion of the silhouette image M S, corresponding respectively.
- Determining unit 123d based on the IoU calculated by the calculating unit 123c, and determines the similarity of silhouette images M H, M S. Specifically, when the calculated IoU is equal to or greater than a predetermined value, the determination unit 123d sets the corresponding 3D hair as a search target candidate in the hair search process of the stroke S (i). Further, when the calculated IoU is less than a predetermined value, the determination unit 123d excludes the corresponding 3D hair from the search target candidates in the hair search process of the stroke S (i).
- the above-mentioned predetermined value which is a threshold value indicating whether or not the shape of the entire hair of the 3D hair is different from the hair shape of the subject included in the input image, is set to, for example, "0.45". It is just an example and does not limit the value.
- the invisible portion deletion unit 124 executes the invisible portion deletion process (see FIG. 1) according to the above-described embodiment. As shown in FIG. 4, the invisible portion deletion unit 124 has a depth image generation unit 124a and a deletion unit 124b.
- the depth image generation unit 124a uses the above-mentioned 3D face model data, calculates the depth value when the 3D face model data is viewed from the position of the virtual camera arranged in the virtual space, and records the depth image. to generate the M D.
- Figure 14 is a diagram showing an example of such a depth image M D.
- the depth image generation unit 124a determines the positions of the contours of the eyes, mouth, and face of the subject in the input image, and the eyes, mouth, and face when the 3D face model data is viewed from a virtual camera arranged in the virtual space. Use parameters including the shooting position and rotation direction calculated to minimize the error from the contour position.
- the depth image generation unit 124a uses such a parameter to align the virtual camera so that it is placed in front of the 3D face model data in the virtual space, and the virtual camera takes a picture in the virtual space. assuming generates a depth image M D by distance read as depth value up 3D face model data appearing on each pixel of the image.
- Deleting unit 124b performs deletion of the invisible parts using depth image M D generated by the depth image generating unit 124a. 15 to 19 are explanatory views (No. 1) to (No. 5) of the deletion process executed by the deletion unit 124b.
- the invisible part deletion process uses the positional relationship between the virtual camera and the 3D hair in the virtual space to stroke the invisible part, which is the 3D hair part other than the 3D hair seen from the virtual camera, in advance before projection. It is a process of deleting from the comparison target with and making only the visible part the comparison target of the stroke.
- Deleting unit 124b the determination unit 123d result of the determination by, using a 3D hair contained in the 3D hair remaining as a search target candidates, the depth value extracted from the depth image M D generated by the depth image generating unit 124a Then, the positions in the depth direction are compared in the camera coordinate system of the virtual camera 3V (see FIG. 18) arranged in front of the 3D face model data.
- deleting unit 124b by applying an offset O d against the recorded depth value in the depth image M D, taking out only the visible part of the 3D hair that searched candidate.
- the deletion unit 124b applies the offset amount O d in the depth direction as viewed from the virtual camera 3V defined in a virtual space with respect to the depth values stored in each pixel of the depth image M D.
- FIG. 15 corresponds to an example before the application of the offset amount Od
- FIG. 16 corresponds to an example after the application of the offset amount Od.
- the depth value D shown in both figures corresponds to a threshold value for separating the visible portion and the invisible portion.
- the value used as the offset amount Od corresponds to, for example, 5 cm in the real space. This length is based on the assumption that the distance between the frontmost bangs of the face and the hairline in real space is within 5 cm for a general hairstyle.
- Coordinate information depth image M D according to the offset amount O d holds is as shown in FIG. 16 is a virtual space in which 3D hair is present.
- a range defined by the offset amount O d is defined as "a part of the face model data”.
- the “part of the face model data” corresponds to the visible part of the 3D hair.
- the range excluding "a part of the face model data" in the entire 3D face model data is defined as "the range having an offset amount”.
- the direction in which the offset amount Od is applied is defined as "the direction corresponding to the shooting direction”.
- the deletion unit 124b separates the visible portion and the invisible portion using the above-mentioned depth value D.
- the deletion unit 124b has the 3D hair based on the ratio in which each vertex constituting one 3D hair ST exists on the virtual camera 3V side with the depth value D as a boundary. Judge the visibility of.
- the deletion unit 124b exists in the region C1 on the virtual camera 3V side with the depth value D as a boundary, for example, 50% of the vertices constituting one 3D hair ST. If so, it is determined that the 3D hair ST is visible, and in other cases, it is determined to be invisible.
- the region C1 is all regions on the virtual camera 3V side with the depth value D as a boundary.
- Such a process is a process for correctly determining that half or more of the 3D hair ST is visible when the depth value D and the 3D hair ST are present in a state similar to the positional relationship shown in FIG. ..
- the deletion is applied to the invisible 3D hair ST, and it is excluded from the comparison target with the stroke as the "invisible part" shown in FIG.
- deletion unit 124b for 3D hair not excluded the invisible part of FIG. 18, based on the cut-out target area A c described above, further refine the 3D hair to be compared with the stroke.
- the deleting unit 124b determines 3D hair that has not been excluded, the horizontal direction on the 2D image plane, whether fit in the target area A c cut in the width direction of the face other words.
- the deleting unit 124b is a 3D hair to fit in cut-out target area A c, leaving the comparison as 3D hair likely to have a shape similar to the inputted stroke. Further, the deletion unit 124b applies deletion to the 3D hair that does not fit in the cutout target area Ac, and excludes it from the comparison target with the stroke.
- FIG. 19 corresponds to an example of the execution result of the deletion process by the deletion unit 124b up to the above.
- the hair search unit 125 compares strokes and individual 3D hairs with respect to only the visible portion left by the invisible portion deletion unit 124 among the 3D hairs selected as search target candidates by the silhouette determination unit 123, and is similar. Select 3D hair including 3D hair with a shaped shape.
- the hair search unit 125 compares the distance between the vertices constituting the stroke and the vertices of the 3D hair constituting the 3D hair, as in the comparative example described above. Specifically, the hair search unit 125 matches the stroke and the number of vertices of 3D hair (for example, 100 vertices), calculates the Euclidean distance between the corresponding vertices in order from the beginning, and combines the total value with the stroke. 3D hair distance d c .
- Hair searching unit 125 when comparing the similarity of 3D hair in a certain stroke, all calculates the distance d c for 3D hair, stroke and 3D hair its value the smallest with the 3D hair of interest Let the distance d be.
- the hair search unit 125 performs this for all visible parts of the 3D hairs that are candidates for search by the silhouette determination unit 123, and the 3D hair having the smallest distance d value is 3D having a shape similar to the stroke. Elected as hair.
- the hair search unit 125 performs such a process a number of times equal to the number of strokes input by the user, so that 3D hair estimated to have a portion having a shape most similar to each stroke is selected. Further, the hair search unit 125 outputs the selection result of the 3D hair for each selected stroke to the output unit 7.
- FIG. 20 shows a specific example of the selection result output to the output unit 7.
- FIG. 20 is a diagram showing an example of output to the output unit 7.
- the upper part of FIG. 20 shows an output example in the above-mentioned comparative example, and the lower part shows an output example in the present embodiment.
- the difference in the selection results between the comparative example and the present embodiment is reflected in the shape of the bangs and the length of the hair.
- the subject included in the input image shown in FIG. 1 and the like has a hairstyle that exposes the forehead portion.
- the selected 3D hair will tend to expose the forehead, but in the third from the left of the comparative example, the 3D hair that hides the forehead is selected. You can see that there is.
- the forehead is not hidden in the 3D hair whose bangs are close to the subject, that is, the third from the left in the comparative example, and the forehead is relatively exposed. It can be seen that 3D hair has been selected.
- long hair 3D hair is selected as the first and second from the right in the comparative example, although the hairstyle is short hair. You can see that.
- the information processing apparatus 10 has no UI (User Interface) other than accepting the input of the stroke for the input image and outputting the selection result of the 3D hair which is considered to be the most similar for each stroke.
- the UI is not limited to this. Such a modification will be described later with reference to FIG.
- FIG. 21 is a flowchart showing a processing procedure of the information processing apparatus 10 according to the embodiment of the present disclosure.
- FIG. 21 corresponds to FIG. 3, and similarly to FIG. 3, the processing procedure for one stroke S (i) is shown.
- i is an index number of the stroke S.
- j is an index number of 3D hair stored in the 3D hair DB 111.
- j max is the number of 3D hairs stored in the 3D hair DB 111.
- d c is a variable to which the distance between the stroke (i) and the 3D hair (j) of the 3D hair is substituted.
- d is a variable to which the distance between the stroke (i) and the 3D hair (j) is substituted.
- d max is the maximum value that can be expressed in the data format for storing the value corresponding to d in the processing system of the information processing apparatus 10.
- control unit 12 executes the loop process shown in step S101 for each stroke S (i). Such a loop process is executed while j is assigned 0, d max is assigned to d, and j is incremented while j ⁇ j max is true.
- the silhouette image generating unit 123a is, (step S1011) to acquire 3D hair to (j) from the 3D hair DB 111, generates a silhouette image M H, M S from the input image and the 3D hair (j).
- the cutout portion 123b based on the start and end points of the stroke S (i), the silhouette image M H, a part from M S (i.e., cut-out target area A c) cut out (step S1012).
- calculating unit 123c is cut out silhouette image M H, compares the M S, calculates the IOU (step S1013). Then, the determination unit 123d determines whether or not the IoU is 0.45 or more (step S1014).
- the deletion unit 124b deletes the invisible portion by using the depth image MD and the offset amount Od (step S1015).
- the hair search unit 125 projects the 3D hair (j) onto the 2D image plane with respect to the visible portion left by the deletion unit 124b (step S1016).
- the hair search unit 125 calculates the distance d c between each 3D hair of the 3D hair (j) and the stroke S (i) (step S1017).
- the hair retrieval unit 125 extracts the value of the smallest distance d c (step S1018), the distance d c is determined whether the distance d is less than or not (step S1019).
- step S1019 Yes
- step S1020 the process is repeated from step S1011.
- step S1014 If the condition of step S1014 is not satisfied (step S1014, No), or if the condition of step S1019 is not satisfied (step S1019, No), the process from step S1011 is repeated while step S101 is executed.
- step S101 is executed for all the strokes S (i)
- the distance to each of the strokes S (i) is the smallest based on the value of j recorded for each of the strokes S (i). That is, the 3D hair (j) having the most similarity is selected.
- the calculation using the offset amount Od when determining the invisible portion of the 3D hair was performed assuming a typical hairstyle.
- the typical hairstyle referred to here is a hairstyle having a shape such that at least the bangs extend forward for a human and exist along the forehead.
- all-back determining, for example, after having applied an offset by the offset amount O d, if there are vertex of about 10% in the region C1, and visible for such 3D hair.
- the height of the all-back is high and the stroke can be sufficiently drawn with respect to the input image taken from the front of the subject, it is possible to cope with it by applying the first modification.
- the information processing apparatus 10 has a UI other than receiving the input of the stroke for the input image and outputting the selection result of the 3D hair which is considered to be the most similar for each stroke. No, but the UI is not limited to this. Next, a third modification example of the UI will be described.
- FIG. 22 is an explanatory diagram of the third modification.
- a UI as shown in FIG. 22 is assumed.
- the input image and the stroke drawn for the input image are displayed at the top of the display layout.
- the selection results of 3D hair having 3D hair similar to each stroke are displayed, for example, in descending order of similarity, and the user selects the 3D hair to be used for the final 3D hair generation. Provide the functions that can be done.
- the middle part of FIG. 22 shows how the 3D hair surrounded by a thick solid line or a broken line frame is selected by the user's operation via the input unit 5.
- this embodiment improves the selection accuracy of 3D hair as compared with the comparative example, it does not always automatically select the best candidate. Therefore, by providing the function of selecting the 3D hair to be used by the user in this way, the user can be made to select the best candidate by his / her own judgment and generate the final 3D hair.
- the integrated result of the selected 3D hair (see the left figure at the bottom) and the image of the finally generated 3D hair may be previewed. (See the figure on the right at the bottom).
- the camera 3 is a monocular RGB camera as an example, but the camera 3 may be a photographing device capable of acquiring the shape of a subject, and may be another RGBD camera or the like.
- the output unit 7 has taken as an example a display monitor or a touch panel display, but any display device having a function of accepting and displaying video input such as a television, a projector, and a screen can be used. Since the modification of the input unit 5 has already been described, the description thereof is omitted here.
- each component of each device shown in the figure is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of them may be functionally or physically distributed / physically in arbitrary units according to various loads and usage conditions. Can be integrated and configured.
- the image acquisition unit 121 and the stroke acquisition unit 122 shown in FIG. 4 may be integrated.
- the silhouette determination unit 123 and the invisible portion deletion unit 124 shown in FIG. 4 may be integrated.
- FIG. 22 is a hardware configuration diagram showing an example of a computer 1000 that realizes the functions of the information processing apparatus 10.
- the computer 1000 has a CPU 1100, a RAM 1200, a ROM 1300, an HDD (Hard Disk Drive) 1400, a communication interface 1500, and an input / output interface 1600. Each part of the computer 1000 is connected by a bus 1050.
- the CPU 1100 operates based on the program stored in the ROM 1300 or the HDD 1400, and controls each part. For example, the CPU 1100 expands the program stored in the ROM 1300 or the HDD 1400 into the RAM 1200, and executes processing corresponding to various programs.
- the ROM 1300 stores a boot program such as a BIOS (Basic Input Output System) executed by the CPU 1100 when the computer 1000 is started, a program depending on the hardware of the computer 1000, and the like.
- BIOS Basic Input Output System
- the HDD 1400 is a computer-readable recording medium that non-temporarily records a program executed by the CPU 1100 and data used by such a program.
- the HDD 1400 is a recording medium for recording an information processing program according to the present disclosure, which is an example of program data 1450.
- the communication interface 1500 is an interface for the computer 1000 to connect to an external network 1550 (for example, the Internet).
- the CPU 1100 receives data from another device or transmits data generated by the CPU 1100 to another device via the communication interface 1500.
- the input / output interface 1600 is an interface for connecting the input / output device 1650 and the computer 1000.
- the CPU 1100 receives data from an input device such as a keyboard or mouse via the input / output interface 1600. Further, the CPU 1100 transmits data to an output device such as a display, a speaker, or a printer via the input / output interface 1600. Further, the input / output interface 1600 may function as a media interface for reading a program or the like recorded on a predetermined recording medium (media).
- the media is, for example, an optical recording medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk), a magneto-optical recording medium such as MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.
- an optical recording medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk)
- a magneto-optical recording medium such as MO (Magneto-Optical disk)
- tape medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk)
- MO Magneto-optical disk
- the CPU 1100 of the computer 1000 realizes the function of the control unit 12 by executing the information processing program loaded on the RAM 1200.
- the information processing program according to the present disclosure and the data in the storage unit 11 are stored in the HDD 1400.
- the CPU 1100 reads the program data 1450 from the HDD 1400 and executes the program, but as another example, these programs may be acquired from another device via the external network 1550.
- the information processing apparatus 10 has a direction corresponding to the shooting direction of the 2D image from the side corresponding to the 2D image including the face of the subject with respect to the 3D face model data.
- the deletion unit 124b that deletes the range having a predetermined offset amount, and a part of the 3D face model data that is the remaining part of the 3D face model data whose range is deleted by the deletion unit 124b are converted into the 2D image. It is determined whether or not it corresponds to the hairstyle of the included subject, and if it is determined that it corresponds, the 3D hair associated with the 3D face model data is selected from the 3D hair DB111 (corresponding to an example of the "database").
- the hair search unit 125 is provided. As a result, the accuracy of the 3D hair selection process can be improved, and the quality of the finally produced 3D hair can be improved.
- the present technology can also have the following configurations.
- a deletion unit that deletes a range of 3D face model data having a predetermined offset amount from the side corresponding to the 2D image including the face of the subject in the direction corresponding to the shooting direction of the 2D image. It is determined whether or not a part of the 3D face model data, which is the remaining part of the 3D face model data whose range is deleted by the deletion unit, corresponds to the hairstyle of the subject included in the 2D image.
- a hair search unit that selects 3D hair associated with the 3D face model data from the database when it is determined to correspond to the hair search unit.
- An information processing device An information processing device.
- An acquisition unit that acquires a stroke representing the hair flow of the subject, which is input to the 2D image by the user.
- the hair search unit Based on the stroke, it is determined whether or not a part of the 3D face model data corresponds to the hairstyle of the subject included in the 2D image.
- the information processing device according to (1) above.
- (3) The hair search unit A part of the 3D face model data is projected onto the image plane of the 2D image, and on the image plane, the vertices constituting each of the 3D hairs included in the part of the 3D face model data and the vertices constituting the stroke. By comparing the distances of the above, it is determined whether or not a part of the 3D face model data corresponds to the hairstyle of the subject included in the 2D image.
- the information processing device according to (2) above.
- the hair search unit For each of the strokes, it is determined whether or not a part of the 3D face model data corresponds to the hairstyle of the subject included in the 2D image.
- the information processing device according to (3) above.
- the deleted part is The range having the offset amount is deleted based on the depth information including the depth value representing the distance between the virtual camera placed in the virtual space and the 3D object.
- the information processing apparatus according to (3) or (4) above.
- the depth information is A depth image in which the depth value is retained in each pixel.
- the deleted part is The depth value is the distance to the 3D face model data held by each pixel of the image assumed to be taken by the virtual camera arranged so that at least the face can be photographed in the virtual space.
- the deleted part is Calculated to minimize the error between the positions of the contours of the eyes, mouth and face of the subject in the 2D image and the positions of the contours of the eyes, mouth and face when the 3D face model data is viewed from the virtual camera. Based on the parameters, the virtual camera is aligned so as to be arranged in front of the 3D face model data in the virtual space, and it is assumed that the image is taken by the virtual camera.
- the deleted part is The offset amount is added to the depth value held in each pixel of the depth image in the depth direction as seen from the virtual camera.
- a part of the 3D face model data corresponds to a visible part of the 3D hair when the 3D face model data is viewed from the virtual camera.
- the deleted part is By using the value obtained by adding the offset amount to the depth value as a threshold value for separating the visible portion and the invisible portion other than the visible portion, the range having the offset amount corresponding to the invisible portion is deleted.
- the information processing apparatus according to (8) above. (10) The deleted part is Of all the vertices constituting one 3D hair, when the vertices having a predetermined ratio or more exist in the area on the side of the virtual camera with the threshold as the boundary, the 3D hair is regarded as the visible portion. judge, The information processing apparatus according to (9) above.
- the deleted part is Using the offset amount set based on the distance between the frontmost bangs of the face and the hairline in real space.
- the information processing apparatus according to any one of (2) to (10).
- a silhouette determination unit for determining the similarity between the first silhouette, which is the silhouette of the hair portion of the subject included in the 2D image, and the second silhouette, which is the silhouette of the hair portion of the 3D face model data. Further prepare The silhouette determination unit When it is determined that the first silhouette and the second silhouette are similar, the 3D hair of the 3D face model data is selected by the hair search unit, and when it is determined that they are not similar, the hair Excluded from selection by the search department, The information processing apparatus according to any one of (2) to (11).
- the silhouette determination unit The degree of superimposition of the first silhouette and the second silhouette is calculated, and the similarity between the first silhouette and the second silhouette is determined based on the calculated degree of superimposition.
- the silhouette determination unit The degree of superimposition is calculated as IoU (Intersection over Union), and when the IoU is equal to or higher than a predetermined value, it is determined that the first silhouette and the second silhouette are similar.
- the silhouette determination unit The first image showing the first silhouette is generated based on the 2D image, and the 3D face model data is coordinate-converted according to the shooting position and rotation direction at the time of shooting the 2D image.
- a second image showing the second silhouette is generated, and the degree of superimposition is calculated based on the first image and the second image.
- the silhouette determination unit The cutout target area defined based on both ends of one stroke is cut out from the first image and the second image, respectively, and the first silhouette and the second silhouette in the cutout target area are cut out. To determine similarity, The information processing apparatus according to (15) above.
- the deleted part is A part that does not correspond to the cutout target area is further deleted from a part of the 3D face model data.
- the hair search unit The selection results of the 3D hairs corresponding to each of the strokes are presented to the user in descending order of similarity, and the selected 3D hairs are selected by the user arbitrarily selecting each of the selected 3D hairs. Presenting the combined image to the user, The information processing apparatus according to any one of (2) to (17). (19) With respect to the 3D face model data, the range having a predetermined offset amount in the direction corresponding to the shooting direction of the 2D image is deleted from the side corresponding to the 2D image including the face of the subject. It is determined whether or not a part of the 3D face model data, which is the remaining part of the 3D face model data whose range is deleted by the deletion, corresponds to the hairstyle of the subject included in the 2D image.
- the 3D hair associated with the 3D face model data is selected from the database.
- Information processing methods including. (20) On the computer For 3D face model data, deleting a range having a predetermined offset amount in the direction corresponding to the shooting direction of the 2D image from the side corresponding to the 2D image including the face of the subject. It is determined whether or not a part of the 3D face model data, which is the remaining part of the 3D face model data whose range is deleted by the deletion, corresponds to the hairstyle of the subject included in the 2D image. , Select the 3D hair associated with the 3D face model data from the database when it is determined to correspond.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
情報処理装置(10)は、3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から上記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除する削除部(124b)と、削除部(124b)によって上記範囲が削除された上記3D顔モデルデータの残りの部分である上記3D顔モデルデータの一部が上記2D画像に含まれる上記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、上記3D顔モデルデータに関連付けられた3D頭髪を3D頭髪DB(111)(「データベース」の一例に相当)から選出する頭髪検索部(125)と、を備える。
Description
本開示は、情報処理装置、情報処理方法および記録媒体に関する。
データベースから被写体の髪型と類似した髪型を複数選出し、これらを組み合わせることで「3D(three dimensions)頭髪」を生成する技術が知られている。3D頭髪は、例えば、仮想空間における点を連続的に接続した線分の集合で定義された、頭髪を表す3Dオブジェクトとして表される。
非特許文献1に開示された技術では、まず3D頭髪を作りたい被写体の2D(two dimensions)画像をシステムへ入力し、かかる2D画像に対し、被写体の頭髪の流れを表すストロークの入力を受け付ける。
そして、システムは、ストロークが入力されたならば、予め複数の3D頭髪が登録されたデータベースから、入力されたストロークに類似した形状の「3D髪の毛」を含む3D頭髪を選出する。なお、3D髪の毛は、3D頭髪を構成する一本一本の髪の毛に相当するデータであり、システムは、かかる3D髪の毛をストロークが入力された2D画像平面へ投影し、3D髪の毛およびストロークをそれぞれ構成する頂点の距離を比較することで類似性を判定する。
L.Hu, C.Ma, L.Luo, and H.Li, "Single-View Hair Modeling Using A Hairstyle Database," ACM Transactions on Graphics, Volume 34, Issue 4, No.125, August 2015.
しかしながら、上述した従来技術を用いた場合、ストロークとの類似性の比較対象は一本一本の髪の毛に相当する3D髪の毛であるため、頭髪全体の形状の類似性を考慮できないという問題点がある。また、被写体の撮影方向からは不可視な部分の3D髪の毛も比較対象となるという問題点もある。
そこで、本開示では、3D頭髪の選出処理の精度を向上させて、最終的に生成される3D頭髪の品質向上を実現可能な情報処理装置、情報処理方法および記録媒体を提案する。
上記の課題を解決するために、本開示に係る一形態の情報処理装置は、3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から前記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除する削除部と、前記削除部によって前記範囲が削除された前記3D顔モデルデータの残りの部分である前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、前記3D顔モデルデータに関連付けられた3D頭髪をデータベースから選出する頭髪検索部と、を備える。
以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
また、以下に示す項目順序に従って本開示を説明する。
1.概要
1-1.本実施形態の比較例の概要
1-2.本実施形態の比較例における問題点
1-3.本実施形態の概要
2.情報処理装置の構成
3.情報処理装置の処理手順
4.変形例
4-1.第1の変形例
4-2.第2の変形例
4-3.第3の変形例
4-4.その他の変形例
5.ハードウェア構成
6.むすび
1.概要
1-1.本実施形態の比較例の概要
1-2.本実施形態の比較例における問題点
1-3.本実施形態の概要
2.情報処理装置の構成
3.情報処理装置の処理手順
4.変形例
4-1.第1の変形例
4-2.第2の変形例
4-3.第3の変形例
4-4.その他の変形例
5.ハードウェア構成
6.むすび
<<1.概要>>
図1は、本開示の実施形態に係る情報処理方法の概要説明図である。また、図2は、本開示の実施形態の比較例に係る情報処理装置の概略ブロック図である。また、図3は、本開示の実施形態の比較例に係る情報処理装置の処理手順を示すフローチャートである。なお、図1は、比較例および本実施形態双方の概要を示すものとなっている。
図1は、本開示の実施形態に係る情報処理方法の概要説明図である。また、図2は、本開示の実施形態の比較例に係る情報処理装置の概略ブロック図である。また、図3は、本開示の実施形態の比較例に係る情報処理装置の処理手順を示すフローチャートである。なお、図1は、比較例および本実施形態双方の概要を示すものとなっている。
図1に示すように、比較例および本実施形態に係る情報処理システムは、予め複数の3D頭髪が登録された3D頭髪DB(Database)111から被写体の髪型と類似した髪型を複数選出し、これらを組み合わせることで被写体の髪型に対応する3D頭髪を生成するシステムの一部である。
3D頭髪DB111は、例えばゲームに関するオンラインコミュニティ等で共有された3D頭髪のデータを収集してその形式を統一し、かかる3D頭髪が装着された3D頭部モデルにおいて顔の向きを合わせたものが多数格納されている。
ところで、現実の頭髪は細長い繊維の集合体であり、一本一本の髪の毛をカメラで捉えることが困難であることに加え、その大部分は他の髪の毛により遮蔽され、内部構造の推定も困難である。したがって、仮想空間における3Dオブジェクトとして、自動的または半自動的な生成が困難な対象として知られている。
このため、高品質な3DCG(three-dimensional computer graphics)を使用する映画やゲームの制作過程では、専門のアーティストが手作業で3D頭髪を制作することが多い。すなわち、3D頭髪を制作する作業は高度な専門知識と技術を必要とする作業であり、誰もが簡単に行える作業ではない。
その一方で、近年、PC(Personal Computer)やタブレットPC、スマートフォン等の高性能化、SNS(Social Networking Service)等の普及により、専門知識や技術を持たない一般のユーザが例えばCG(computer graphics)コンテンツを自身で制作し、発信する機会が増えてきている。
そこで、比較例および本実施形態では、かかる一般のユーザが、上述したPCやタブレットPC、スマートフォン等の簡易な機材を用いて、2D画像上へ入力を行うだけで3D頭髪をつくる状況を想定する。
<1-1.本実施形態の比較例の概要>
比較例の概要から説明する。図1に示すように、比較例に係る情報処理方法では、まず3D頭髪を作りたい被写体の2D画像を「入力画像」としてシステムへ入力し、かかる入力画像に対し、ユーザが被写体の頭髪の大まかな流れを表す「ストロークを入力」する。
比較例の概要から説明する。図1に示すように、比較例に係る情報処理方法では、まず3D頭髪を作りたい被写体の2D画像を「入力画像」としてシステムへ入力し、かかる入力画像に対し、ユーザが被写体の頭髪の大まかな流れを表す「ストロークを入力」する。
そして、比較例に係る情報処理方法では、ストロークが入力されたならば、3D頭髪DB111から、入力されたストロークに類似した形状の3D髪の毛を含む3D頭髪を選出する「頭髪検索処理」を実行する。
具体的には、比較例に係る情報処理方法を適用した情報処理装置は、図2に示すように、画像取得部121と、ストローク取得部122と、頭髪検索部125とを有する。画像取得部121は、カメラ(例えば、単眼RGBカメラ)によって撮影された、ユーザが3D頭髪を作りたい被写体の2D画像を入力画像として取得する。
ストローク取得部122は、画像取得部121によって取得された入力画像に対し、入力部(例えば、マウス)を介してユーザにより手動で描かれたストロークを取得する。ストロークは、例えば数本~10本程度入力されるが、本数に制限はない。後段の頭髪検索処理では、ストローク取得部122によって取得されたストロークの本数と同数の3D頭髪の候補が3D頭髪DB111から選出される。
頭髪検索部125は、ストローク取得部122によって取得されたストロークに基づいて、ストロークごとに、3D頭髪DB111から類似した形状の3D髪の毛を含む3D頭髪を検索し、選出する。
ここで、頭髪検索部125は、2D画像上に描かれたストロークと3D髪の毛の形状を比較するため、3D頭髪を2D画像平面上へ投影する。ここに言う投影とは、仮想空間に配置された3D頭髪を、仮想空間に配置した仮想のカメラ(以下、適宜「仮想カメラ」と言う)から撮影したと仮定して、3D頭髪が持つすべての頂点を2D画像平面上へ移動させる処理を指す。
かかる際、頭髪検索部125は、仮想カメラと3D頭髪の位置関係を、入力画像を撮影した現実空間のカメラと被写体の位置関係に対応させることで、本来は仮想空間に存在する3D頭髪と現実空間のカメラにより撮影された入力画像に対して入力されたストロークとの位置関係を、2D画像平面上で比較することが可能となる。
そして、頭髪検索部125は、2D画像平面上へ投影された3D髪の毛およびストロークにつき、これらをそれぞれ構成する頂点の距離を比較することで類似性を判定する。一般的に、コンピュータによって処理されるストロークは、かかるストロークを構成する頂点の集合を連続的に結んだものとして定義されるため、ストロークと3D髪の毛の頂点同士の2D画像平面上での距離を計算できる。
すなわち、頭髪検索部125は、2D画像上に描かれたそれぞれのストロークとの距離が最も小さい投影済み3D髪の毛を検索する。かかる処理によって、ユーザが入力したストロークの本数に等しい本数の3D髪の毛が、類似した3D髪の毛として選出されることとなる。そして、頭髪検索部125は、選出された3D髪の毛をそれぞれ含む、ストロークの本数に等しい数の3D頭髪を選出する。
図3に、比較例に係る情報処理装置の処理手順をより詳細に示しておく。なお、図3には、頭髪検索部125によるストロークS(i)一本分の頭髪検索処理の処理手順を示している。
ここで、iは、ストロークSのインデックス番号である。jは、3D頭髪DB111に格納された3D頭髪のインデックス番号である。jmaxは、3D頭髪DB111に格納されている3D頭髪の数である。dcは、ストローク(i)と3D頭髪(j)の3D髪の毛それぞれとの距離が代入される変数である。dは、ストローク(i)と3D頭髪(j)との距離が代入される変数である。dmaxは、比較例に係る情報処理装置の処理系において、dにあたる値を保存するデータ形式が表現できる最大値である。
図3に示すように、頭髪検索部125は、ストロークS(i)一本分につき、ステップS11に示すループ処理を実行する。かかるループ処理は、jへ0が代入され、dへdmaxが代入されて、jをインクリメントしながら、j<jmaxが真である間実行される。
かかるループ処理において、頭髪検索部125は、3D頭髪(j)を3D頭髪DB111から取得する(ステップS111)。そして、頭髪検索部125は、3D頭髪(j)を2D画像平面へ投影する(ステップS112)。
そして、頭髪検索部125は、3D頭髪(j)の3D髪の毛一本一本とストロークS(i)との距離dcを算出する(ステップS113)。そして、頭髪検索部125は、最も小さい距離dcの値を抽出し(ステップS114)、距離dcが距離dより小さいか否かを判定する(ステップS115)。
ここで、小さい場合(ステップS115,Yes)、距離dを距離dcに更新し、jの値を記録して(ステップS116)、ステップS11が実行される間、ステップS111からの処理を繰り返す。また、大きい場合(ステップS115,No)、ステップS11が実行される間、ステップS111からの処理を繰り返す。
そして、すべてのストロークS(i)についてステップS11が実行された後、ストロークS(i)のそれぞれにつき記録されたjの値に基づき、ストロークS(i)のそれぞれに対し、最も距離が小さい、すなわち最も類似性を有する3D頭髪(j)が選出されることとなる。
<1-2.本実施形態の比較例における問題点>
ところで、このような比較例に係る情報処理方法であるが、次に示す(a),(b)の問題点が存在する。まず、一点目の問題点(a)は、ストロークとの類似性の比較対象は、3D頭髪の一本一本の髪の毛に相当する3D髪の毛であるため、3D頭髪全体の形状の類似性を考慮できない、という点である。
ところで、このような比較例に係る情報処理方法であるが、次に示す(a),(b)の問題点が存在する。まず、一点目の問題点(a)は、ストロークとの類似性の比較対象は、3D頭髪の一本一本の髪の毛に相当する3D髪の毛であるため、3D頭髪全体の形状の類似性を考慮できない、という点である。
比較例に係る情報処理方法では、ユーザが入力したストロークに近い形状を持つ3D髪の毛を選出する際、ストロークおよび一本の3D髪の毛がそれぞれ有する頂点を順番に比較していく。ただし、この処理は、ストロークと最も形状が近い3D髪の毛を選出することに特化しており、最終的に選出される3D頭髪全体の形状については考慮していない。
この結果、一部のみがストロークと非常に類似している一方で、頭髪全体の形状は全く異なる3D頭髪が選出される場合がある。このような場合、最終的な3D頭髪の形状が、入力画像に含まれる被写体の髪型とは大きく異なる形状となる場合がある。
二点目の問題点(b)は、被写体の撮影方向からは本来不可視である部分(以下、適宜「不可視部分」と言う)の3D髪の毛も、ストロークとの比較対象となるという点である。
比較例に係る情報処理方法では、上述した投影処理において、3D頭髪の奥行き情報が失われる。奥行き情報とは、仮想空間において仮想カメラから見て手前から奥へ向かう方向の位置情報である。かかる奥行き情報が失われた場合、コンピュータは物体の前後関係を把握することが困難となる。
しかしながら、高度な専門知識や技術を持たないユーザが、簡易な機材を用いて実行可能な操作のみによって3D頭髪を生成させようとする比較例および本実施形態では、仮想空間に存在する3D頭髪を2D情報で検索するために、投影処理は必要な手段となる。
例えば仮想空間で直接ストロークを入力する手法では、VR(Virtual Reality)を実現するヘッドマウントディスプレイや、AR(Augmented Reality)を実現するデバイス等の装着、および、仮想空間での入力を可能とする特殊なデバイス、加えてかかる特殊なデバイスを用いて実際にストロークを入力する技術が必要となり、誰もが使用可能とは言えない。
すると、投影処理を行う以上、頭髪検索処理では、投影によって前髪と後ろ髪の前後関係が不明となる。この結果、ユーザが入力したストロークとの類似性を算出する際、例えば撮影方向である正面からは見えない頭髪が、最も類似した3D髪の毛として選出されるケースが発生する。このケースでは、例えば本来長くなるべき後ろ髪が短くなった3D頭髪が最終的に生成されてしまうといった問題が発生する。
<1-3.本実施形態の概要>
そこで、実施形態に係る情報処理方法では、問題点(a)に対し、シルエット画像を用いて頭髪全体の形状を比較することとした。また、問題点(b)に対し、仮想空間での仮想カメラと3D頭髪との位置関係を利用して、仮想カメラから見える3D髪の毛以外の3D頭髪部分である不可視部分を投影前に予めストロークとの比較対象から削除し、可視部分のみをストロークと比較することとした。
そこで、実施形態に係る情報処理方法では、問題点(a)に対し、シルエット画像を用いて頭髪全体の形状を比較することとした。また、問題点(b)に対し、仮想空間での仮想カメラと3D頭髪との位置関係を利用して、仮想カメラから見える3D髪の毛以外の3D頭髪部分である不可視部分を投影前に予めストロークとの比較対象から削除し、可視部分のみをストロークと比較することとした。
具体的には、図1に示すように、本実施形態に係る情報処理方法では、入力画像が取得され、ストロークが入力された後、問題点(a)に対し「シルエット判定処理」を、問題点(b)に対し「不可視部分削除処理」をそれぞれ実行する。
シルエット判定処理では、シルエット画像を使用した類似性比較を行う(ステップS1)。ここで、シルエット画像は、入力画像に基づくものと3D頭髪DB111に基づくものの2種類がある。
入力画像に基づくものは、同図に示すように、現実空間でカメラを用いて撮影された入力画像に含まれる被写体の頭髪部分を単色で、それ以外を別の色で塗り分けた画像である。こちらは、以下、適宜「シルエット画像MH」または「頭髪形状比較用画像」と言う。
3D頭髪DB111に基づくものは、3D頭髪DB111に含まれるすべての3D頭髪について、仮想空間でかかる3D頭髪を装着した3D頭部モデルである3D顔モデルデータの正面に仮想カメラを配置し、かかる仮想カメラによって撮影されたと仮定して生成される画像である。同図に示すように、かかる画像では、画像内の3D頭髪の部分が単色で塗りつぶされる。こちらは、以下、適宜「シルエット画像MS」と言う。
シルエット判定処理は、これらシルエット画像MH,MSを比較することによって、頭髪全体の形状の類似性を判定する。なお、かかる判定に際し、シルエット判定処理では、ストロークを使用して類似性比較領域を限定する(ステップS2)。
ステップS2では、シルエット画像MH,MSに対し、ユーザが入力したストロークの始点と終点を使用して後述する切り出し処理を適用して、後段の処理の対象領域を限定する。そして、限定された対象領域に対して、後述する算出処理により、シルエット画像MH,MSにおける頭髪部分の重畳度合いを算出し、かかる重畳度合いに基づいてシルエット画像MH,MSの類似性を判定する。
そして、かかる判定の結果に基づいて、頭髪全体の形状が、入力画像に含まれる被写体の頭髪形状とは異なる3D頭髪を、頭髪検索処理の検索対象から除外する。これにより、上記の問題点(a)を解消し、3D頭髪の選出精度を向上させることができる。
なお、シルエット判定処理における各処理の具体例については、図4および図6~図13を用いた説明で後述する。
また、不可視部分削除処理では、深度情報を使用した不可視部分の削除が行われる(ステップS3)。深度情報は、例えば深度値を含み、深度値は、仮想空間に配置した仮想カメラと、仮想空間に配置した3D物体との距離を表す。本実施形態では、3D頭髪DB111に含まれるすべての3D頭髪について、仮想カメラから見た3D頭髪までの距離である深度値を記録した深度画像を深度情報として使用する。
ステップS3では、前述の3D顔モデルデータを使用し、仮想空間に配置した仮想カメラの位置から3D顔モデルデータを見た際の深度値を算出し、かかる深度値を記録した深度画像(以下、適宜「深度画像MD」と言う。)を生成する。
そして、深度値に対して、仮想空間に配置した仮想カメラから見て奥行き方向に所定のオフセット量を加えた値を閾値として利用し、3D顔モデルデータに含まれる3D頭髪のうち、仮想空間に配置した仮想カメラを基準とした可視性を判定する。
ここで、オフセット量は、知られている通り、閾値やパラメータに対して一定の値を加えるまたは減ずることで何らかの処理を実現するために使用される値である。本実施形態では、深度値に対し、仮想空間に配置した仮想カメラの撮影方向にかかるオフセット量(以下、適宜「オフセット量Od」と言う)を加えることで、3D頭髪の可視部分のみを取り出すことを実現する。
そして、かかる可視性の判定の結果、不可視部分とされた3D髪の毛を、頭髪検索処理におけるストロークとの比較対象から削除する。これにより、上記の問題点(b)を解消し、3D頭髪の選出精度を向上させることができる。
なお、不可視部分削除処理における各処理の具体例については、図4および図14~図19を用いた説明で後述する。
このように、実施形態に係る情報処理方法では、上記の問題点(a)に対し、シルエット画像MH,MSを用いて頭髪全体の形状を比較することとした。また、上記の問題点(b)に対し、仮想空間での仮想カメラと3D頭髪との位置関係を利用して、仮想カメラから見える3D髪の毛以外の3D頭髪部分である不可視部分を投影前に予めストロークとの比較対象から削除し、可視部分のみをストロークと比較することとした。
したがって、実施形態に係る情報処理方法によれば、上記の問題点(a),(b)を解消し、3D頭髪の選出処理の精度を向上させて、最終的に生成される3D頭髪の品質向上を実現させることができる。
以下、上述した実施形態に係る情報処理方法を適用した情報処理装置10の構成例について、より具体的に説明する。
<<2.情報処理装置の構成>>
図4は、本開示の実施形態に係る情報処理装置10の構成例を示すブロック図である。なお、図4では、本実施形態の特徴を説明するために必要な構成要素のみを表しており、一般的な構成要素についての記載を省略している。
図4は、本開示の実施形態に係る情報処理装置10の構成例を示すブロック図である。なお、図4では、本実施形態の特徴を説明するために必要な構成要素のみを表しており、一般的な構成要素についての記載を省略している。
換言すれば、図4に図示される各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、各ブロックの分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することが可能である。
また、図4を用いた説明では、既に説明済みの構成要素については、説明を簡略するか、省略する場合がある。
図4に示すように、情報処理装置10は、記憶部11と、制御部12とを備える。また、情報処理装置10は、カメラ3と、入力部5と、出力部7とを有する。情報処理装置10は、例えば上述したPCや、タブレットPC、スマートフォン等によって実現される。
カメラ3は、例えば単眼RGBカメラによって実現される。入力部5は、例えばマウスによって実現される。出力部7は、例えばディスプレイモニタによって実現される。
なお、入力部5は、ユーザによってストロークの入力が可能なポインティングデバイスであればよく、例えばペン型であってもよい。また、入力部5および出力部7を併せてタッチパネルディスプレイによって実現し、入力部5はユーザの指によるストロークの入力を受け付けてもよい。
記憶部11は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図4に示す例では、記憶部11は、3D頭髪DB111を記憶する。
制御部12は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、記憶部11に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部12は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現することができる。
制御部12は、画像取得部121と、ストローク取得部122と、シルエット判定部123と、不可視部分削除部124と、頭髪検索部125とを有し、以下に説明する情報処理の機能や作用を実現または実行する。
画像取得部121は、カメラ3によって撮影された、ユーザが3D頭髪を作りたい被写体の2D画像を入力画像として取得する。ストローク取得部122は、画像取得部121によって取得された入力画像に対し、入力部5を介してユーザにより手動で描かれたストロークを取得する。
ここで、図5および図6は、ストロークの説明図(その1)および(その2)である。図5に示すように、ストロークは、出力部7に対し出力された入力画像に対し、入力部5を介してユーザにより手動で描かれる、被写体の頭髪の大まかな流れを表す複数の線である。
図6に示すように、ストロークは、2D画像平面上における任意の点を頂点とし、各頂点を連続的に接続する線分の集合として定義される。同図に示すように、ストロークは、始点および終点を有する。なお、同図で始点および終点は逆であってもよい。かかる始点および終点は、後述する切り出し処理において用いられる。
図4の説明に戻る。シルエット判定部123は、上述した本実施形態に係るシルエット判定処理(図1参照)を実行する。図4に示すように、シルエット判定部123は、シルエット画像生成部123aと、切り出し部123bと、算出部123cと、判定部123dとを有する。
シルエット画像生成部123aは、画像取得部121によって取得された入力画像に基づいて、上述したシルエット画像MHを生成する。図7は、シルエット画像MHの一例を示す図である。図7に示すように、シルエット画像生成部123aは、現実空間でカメラ3を用いて撮影された入力画像に含まれる被写体の頭髪部分を単色で、それ以外を別の色で塗り分けた画像としてシルエット画像MHを生成する。
例えば、シルエット画像生成部123aは、画像の頭髪部分とそれ以外とを塗り分けた画像を教師データとし、セマンティックセグメンテーション等のアルゴリズムを用いて学習した学習モデルに基づいて入力画像の被写体の頭髪部分を推定し、シルエット画像MHを生成する。
図4の説明に戻る。また、シルエット画像生成部123aは、3D頭髪DB111に基づいて、上述したシルエット画像MSを生成する。図8は、3D顔モデルデータの一例を示す図である。また、図9は、シルエット画像MSの一例を示す図である。
図8に示すように、3D顔モデルデータは、3D頭髪を装着した3D頭部モデル、言い換えれば3D頭髪と3D頭部モデルとを併せて表示したデータに相当する。シルエット画像生成部123aは、かかる3D顔モデルデータの正面に配置した仮想カメラによって撮影したと仮定した画像に基づいて、シルエット画像MSを生成する。
図9に示すように、シルエット画像生成部123aは、3D顔モデルデータの正面に配置した仮想カメラによって撮影したと仮定した画像内の少なくとも3D頭髪の部分を単色で塗りつぶした画像としてシルエット画像MSを生成する。
例えば、シルエット画像生成部123aは、入力画像の撮影時におけるカメラ3の外部パラメータに基づき、3D頭髪DB111に含まれるすべての3D顔モデルデータの座標を変換し、頭髪部分と肌部分、背景部分を別の色で塗り分けてシルエット画像MSを生成する。
なお、カメラ3の外部パラメータは一般的に、カメラ3の位置と回転方向を保持しており、これらを知ることで特定の仮想空間の座標系で定義された各頂点の、別の座標系における位置を算出することが可能である。
図4の説明に戻る。切り出し部123bは、上述した本実施形態に係る切り出し処理を実行する。切り出し部123bは、シルエット画像生成部123aによって生成されたシルエット画像MH,MSに対し、ユーザが入力したストロークの始点と終点を使用して、後段の処理の処理対象となる対象領域を限定する。
図10~図12は、切り出し部123bが実行する切り出し処理の説明図(その1)~(その3)である。図10に示すように、切り出し部123bは、ユーザが入力した各ストロークS(i)に基づいて、シルエット画像MH,MSの不要部分を削除する。
まず、切り出し部123bは、ストロークS(i)を構成する頂点のうち、2D画像平面上で最も左にあるものと最も右にあるもの、すなわち図6に示した始点と終点とを抽出する。そして、切り出し部123bは、抽出した始点の位置および終点の位置を、類似性の比較対象となる領域の仮の左端および右端とする。そのうえで、切り出し部123bは、図10に示すように、かかる左端および右端に所定のオフセット量Owを適用した位置に収まる領域を、切り出し対象領域Acとする。
例えば、切り出し部123bは、オフセット量Owを、始点および終点によって規定される横方向の長さに対して5%とする。なお、オフセット量Owは、実用上の処理のバリエーションであり、本実施形態に必須のものではなく、上述した仮想空間に配置した仮想カメラから見て奥行き方向に適用するオフセット量Odとは異なるものである。
図7に示したシルエット画像MHに対し、切り出し部123bが切り出し処理を施した結果の一例を示したものが図11である。同様に、図9に示したシルエット画像MSに対し、切り出し部123bが切り出し処理を施した結果の一例を示したものが図12である。
図4の説明に戻る。算出部123cは、上述した本実施形態に係る算出処理を実行する。算出部123cは、切り出し部123bによって限定された対象領域に対し、シルエット画像MH,MSにおける頭髪部分の重畳度合いを算出する。
図13は、算出部123cが実行する算出処理の説明図である。算出部123cは、切り出し対象領域Acに基づいて切り出されたシルエット画像MH,MSを比較し、それぞれにおいて頭髪を表す領域の重なり(図13の「重畳領域」参照)をIoU(Intersection over Union)として算出する。
IoUは、画像同士の重なりを定量化する際の一般的な指標であり、IoU=(領域A∩領域B)/{領域A+領域B-(領域A∩領域B)}の式により算出される。なお、本実施形態では、例えば領域Aはシルエット画像MHの頭髪部分に、領域Bはシルエット画像MSの頭髪部分に、それぞれ相当する。
図4の説明に戻る。判定部123dは、算出部123cによって算出されたIoUに基づいて、シルエット画像MH,MSの類似性を判定する。具体的に、判定部123dは、算出されたIoUが所定値以上である場合に、該当する3D頭髪を、ストロークS(i)の頭髪検索処理における検索対象候補とする。また、判定部123dは、算出されたIoUが所定値未満である場合に、該当する3D頭髪を、ストロークS(i)の頭髪検索処理における検索対象候補から除外する。
なお、本実施形態では、3D頭髪の頭髪全体の形状が、入力画像に含まれる被写体の頭髪形状と異なるか否かを示す閾値となる上述の所定値を例えば「0.45」とするが、あくまで一例であって、値を限定するものではない。
図4の説明に戻る。不可視部分削除部124は、上述した本実施形態に係る不可視部分削除処理(図1参照)を実行する。図4に示すように、不可視部分削除部124は、深度画像生成部124aと、削除部124bとを有する。
深度画像生成部124aは、前述の3D顔モデルデータを使用し、仮想空間に配置した仮想カメラの位置から3D顔モデルデータを見た際の深度値を算出し、かかる深度値を記録した深度画像MDを生成する。図14は、かかる深度画像MDの一例を示す図である。
具体的に、深度画像生成部124aは、入力画像における被写体の目、口および顔の輪郭の位置と、仮想空間に配置した仮想カメラから3D顔モデルデータを見た際の目、口および顔の輪郭の位置との誤差を最小化するように計算した撮影位置および回転方向を含むパラメータを使用する。
また、深度画像生成部124aは、かかるパラメータを使用して、仮想空間において3D顔モデルデータの正面に仮想カメラが配置されるよう位置合わせを行い、仮想カメラが仮想空間内で写真撮影をしたと仮定して画像の各ピクセルに映る3D顔モデルデータまでの距離を深度値と読み替えることで深度画像MDを生成する。
削除部124bは、深度画像生成部124aによって生成された深度画像MDを使用した不可視部分の削除を行う。図15~図19は、削除部124bが実行する削除処理の説明図(その1)~(その5)である。
既に述べたが、不可視部分削除処理は、仮想空間での仮想カメラと3D頭髪との位置関係を利用して、仮想カメラから見える3D髪の毛以外の3D頭髪部分である不可視部分を投影前に予めストロークとの比較対象から削除し、可視部分のみをストロークの比較対象とさせる処理である。
これは、「ユーザが入力するストロークは、入力画像上で実際に見えている可視の頭髪部分に対して引かれている」という前提に基づき、入力画像には含まれない3D髪の毛を比較対象から除外するものである。
削除部124bは、判定部123dによる判定の結果、検索対象候補として残っている3D頭髪に含まれる3D髪の毛と、深度画像生成部124aによって生成された深度画像MDから取り出した深度値を使用して、3D顔モデルデータの正面に配置した仮想カメラ3V(図18参照)のカメラ座標系において奥行き方向の位置を比較する。
かかる際、削除部124bは、深度画像MDに記録された深度値に対してオフセット量Odを適用することで、検索対象候補としている3D頭髪の可視部分のみを取り出す。
典型例では、削除部124bは、深度画像MDの各ピクセルに保存される深度値に対して仮想空間上で定義した仮想カメラ3Vから見た奥行き方向にオフセット量Odを適用する。
図15は、オフセット量Odの適用前の一例に相当し、図16は、オフセット量Odの適用後の一例に相当する。また、両図に示す深度値Dは、可視部分および不可視部分を切り分けるための閾値に相当する。
なお、典型例において、オフセット量Odとして使用される値は、例えば現実空間における5cmに相当する。かかる長さは、現実空間で顔の最も前方にある前髪と生え際の距離が、一般的な髪型では5cmの間に収まるとの想定による。
オフセット量Odを適用した深度画像MDが保持する座標情報は、3D頭髪が存在する仮想空間では図16のようになる。なお、ここで、同図に示すように、3D顔モデルデータ全体のうち、オフセット量Odによって規定される範囲を「顔モデルデータの一部」と定義する。「顔モデルデータの一部」は、3D頭髪の可視部分に相当する。また、3D顔モデルデータ全体のうち、「顔モデルデータの一部」を除く範囲を「オフセット量を有する範囲」と定義する。また、オフセット量Odを適用する向きを、「撮影方向に対応する方向」と定義する。
そして、削除部124bは、前述の深度値Dを用いて可視部分および不可視部分を切り分ける。本実施形態では、図17に示すように、削除部124bは、一本の3D髪の毛STを構成する各頂点が、深度値Dを境界として仮想カメラ3V側に存在する比率に基づいて当該3D髪の毛の可視性を判定する。
具体的には、図17に示すように、削除部124bは、一本の3D髪の毛STを構成する頂点のうち、例えば50%が深度値Dを境界とする仮想カメラ3V側の領域C1に存在する場合に、当該3D髪の毛STを可視であると判定し、それ以外の場合は不可視であると判定する。なお、図17には模式的に示しているが、領域C1は、深度値Dを境界とする仮想カメラ3V側のすべての領域である。
かかる処理は、図17に示す位置関係に類する状態で深度値Dと3D髪の毛STが存在する場合に、当該3D髪の毛STの半分以上が可視であるものを正しく可視と判定するための処理である。
かかる処理において条件に合致しない場合、不可視である3D髪の毛STに対しては削除が適用され、図18に示す「不可視部分」として、ストロークとの比較対象からは除外される。
なお、図17では、説明を分かりやすくするため、一本の3D髪の毛STが人間にとっての前方方向に伸びている様子を誇張して表しているが、実際の典型的な髪型では、前髪は前方方向に伸びつつ、額に沿って存在することとなる。
また、削除部124bは、図18の不可視部分として除外されなかった3D髪の毛について、上述した切り出し対象領域Acに基づいて、ストロークとの比較対象とする3D髪の毛をさらに絞り込む。
すなわち、削除部124bは、除外されなかった3D髪の毛が、2D画像平面上における横方向、言い換えれば顔の幅方向について切り出し対象領域Acに収まるか否かを判定する。
そして、削除部124bは、切り出し対象領域Acに収まる3D髪の毛を、入力されたストロークと類似した形状をもつ可能性の高い3D髪の毛として比較対象に残す。また、削除部124bは、切り出し対象領域Acに収まらない3D髪の毛については削除を適用し、ストロークとの比較対象からは除外する。図19は、以上までの削除部124bによる削除処理の実行結果の一例に相当する。
図4の説明に戻る。頭髪検索部125は、シルエット判定部123によって検索対象候補とされた3D頭髪のうち、不可視部分削除部124によって残された可視部分のみにつき、ストロークおよび一本一本の3D髪の毛を比較し、類似した形状の3D髪の毛を含む3D頭髪を選出する。
頭髪検索部125は、上述した比較例と同様に、ストロークを構成する頂点群と、3D頭髪を構成する3D髪の毛が持つ各頂点の距離を比較する。具体的には、頭髪検索部125は、ストロークおよび3D髪の毛の頂点数を合わせ(例えば、100頂点)、先頭から順に、対応する頂点同士のユークリッド距離を算出し、その合計値をストロークと一本の3D髪の毛の距離dcとする。
頭髪検索部125は、あるストロークとある3D頭髪の類似性を比較する場合、対象となる3D頭髪が持つすべての3D髪の毛について距離dcを算出し、その値が最小のものをストロークと3D頭髪との距離dとする。頭髪検索部125は、これをシルエット判定部123によって検索対象候補とされたすべての3D頭髪の可視部分に対して行い、距離dの値が最小の3D頭髪を、当該ストロークに類似した形状の3D頭髪として選出する。
頭髪検索部125が、かかる処理を、ユーザが入力したストロークの本数に等しい回数だけ実施することで、各々のストロークに最も類似する形状をした部分を持つと推定される3D頭髪が選出される。また、頭髪検索部125は、選出したストロークごとの3D頭髪の選出結果を、出力部7へ出力する。
出力部7へ出力される選出結果の具体例を図20に示す。図20は、出力部7への出力例を示す図である。なお、比較のため、図20の上段には上述した比較例における出力例を、下段には本実施形態における出力例を、それぞれ示している。
図20に示すように、比較例および本実施形態のそれぞれにおける選出結果の違いは、前髪の形状と髪の長さに表れている。図1等で示した入力画像に含まれる被写体は、額部分を露出させる髪型を有している。
かかる特徴が正しく反映された場合は、選出される3D頭髪は額を露出させる傾向となることが期待されるが、比較例の左から三番目では、額を隠すような3D頭髪が選出されていることが分かる。
これに対し、本実施形態では、例えば不可視部分削除処理の効果により、前髪の形状が被写体に近い3D頭髪、すなわち比較例の左から三番目ほどには額を隠さず、比較的額が露出された3D頭髪が選出されていることが分かる。
また、図1等で示した入力画像に含まれる被写体は、髪型が短髪であるにも関わらず、比較例では、右から一番目および二番目のように、長髪の3D頭髪が選出されていることが分かる。
このような3D頭髪が選出結果に混入した場合、選出された3D頭髪を統合して新たな3D頭髪を生成する際に、想定と異なる形状の3D頭髪が生成される可能性がある。これを防ぐためには、選出処理の精度を向上させ、不必要に髪の長い3D頭髪が選出されないように調整する必要がある。
そこで、本実施形態の選出結果を見ると、シルエット判定処理の効果により、被写体の頭髪のシルエットと類似した、短髪の3D頭髪を選出できていることが分かる。
なお、これまでの説明では、情報処理装置10は、入力画像に対しストロークの入力を受け付け、ストロークごとに最も類似するとされる3D頭髪の選出結果を出力する以外のUI(User Interface)を持たないが、UIはこれに限られるものではない。かかる変形例については、図22を用いた説明で後述する。
<<3.情報処理装置の処理手順>>
次に、実施形態に係る情報処理装置10が実行する処理手順について、図21を用いて説明する。図21は、本開示の実施形態に係る情報処理装置10の処理手順を示すフローチャートである。
次に、実施形態に係る情報処理装置10が実行する処理手順について、図21を用いて説明する。図21は、本開示の実施形態に係る情報処理装置10の処理手順を示すフローチャートである。
なお、図21は図3に対応しており、図3と同様に、ストロークS(i)一本分の処理手順を示している。
また、図3と同様に、iは、ストロークSのインデックス番号である。jは、3D頭髪DB111に格納された3D頭髪のインデックス番号である。jmaxは、3D頭髪DB111に格納されている3D頭髪の数である。dcは、ストローク(i)と3D頭髪(j)の3D髪の毛それぞれとの距離が代入される変数である。dは、ストローク(i)と3D頭髪(j)との距離が代入される変数である。dmaxは、情報処理装置10の処理系において、dにあたる値を保存するデータ形式が表現できる最大値である。
図21に示すように、制御部12は、ストロークS(i)一本分につき、ステップS101に示すループ処理を実行する。かかるループ処理は、jへ0が代入され、dへdmaxが代入されて、jをインクリメントしながら、j<jmaxが真である間実行される。
かかるループ処理において、シルエット画像生成部123aが、3D頭髪(j)を3D頭髪DB111から取得するとともに(ステップS1011)、入力画像および3D頭髪(j)からシルエット画像MH,MSを生成する。
そして、切り出し部123bが、ストロークS(i)の始点と終点とに基づき、シルエット画像MH,MSから一部(すなわち、切り出し対象領域Ac)を切り出す(ステップS1012)。
そして、算出部123cが、切り出されたシルエット画像MH,MSを比較し、IoUを算出する(ステップS1013)。そして、判定部123dが、IoUが0.45以上であるか否かを判定する(ステップS1014)。
ここで、IoUが0.45以上である場合(ステップS1014,Yes)、削除部124bが、深度画像MDとオフセット量Odを使用して不可視分を削除する(ステップS1015)。
そして、頭髪検索部125が、削除部124bによって残された可視部分につき、3D頭髪(j)を2D画像平面へ投影する(ステップS1016)。
そして、頭髪検索部125は、3D頭髪(j)の3D髪の毛一本一本とストロークS(i)との距離dcを算出する(ステップS1017)。そして、頭髪検索部125は、最も小さい距離dcの値を抽出し(ステップS1018)、距離dcが距離dより小さいか否かを判定する(ステップS1019)。
ここで、小さい場合(ステップS1019,Yes)、距離dを距離dcに更新し、jの値を記録して(ステップS1020)、ステップS101が実行される間、ステップS1011からの処理を繰り返す。
なお、ステップS1014の条件を満たさない場合(ステップS1014,No)、また、ステップS1019の条件を満たさない場合(ステップS1019,No)、ステップS101が実行される間、ステップS1011からの処理を繰り返す。
そして、すべてのストロークS(i)についてステップS101が実行された後、ストロークS(i)のそれぞれにつき記録されたjの値に基づき、ストロークS(i)のそれぞれに対し、最も距離が小さい、すなわち最も類似性を有する3D頭髪(j)が選出されることとなる。
<<4.変形例>>
なお、上述してきた実施形態には、いくつかの変形例を挙げることができる。
なお、上述してきた実施形態には、いくつかの変形例を挙げることができる。
<4-1.第1の変形例>
上述した実施形態では、3D頭髪の不可視部分を判定する際のオフセット量Odを用いた計算を、典型的な髪型を想定して行った。ここに言う典型的な髪型とは、少なくとも前髪が人間にとって前方方向に伸び、額に沿って存在するような形状の髪型である。
上述した実施形態では、3D頭髪の不可視部分を判定する際のオフセット量Odを用いた計算を、典型的な髪型を想定して行った。ここに言う典型的な髪型とは、少なくとも前髪が人間にとって前方方向に伸び、額に沿って存在するような形状の髪型である。
このような形状の髪型を想定した場合、上述した実施形態で説明した設定のオフセット量Odを使用することで、可視な3D髪の毛と不可視な3D髪の毛とを分離することが可能である。
ただし、ここで定義した典型的な髪型に当てはまらない場合、例えばオールバックのような髪型である場合には、上述のオフセット量Odの設定では、期待通りに可視な3D頭髪と不可視な3D頭髪とを分離できないことが予想される。
この理由としては、オールバックのような髪型の場合は、すべての3D頭髪が人間にとっての後方方向に向かって伸びており、深度画像MDに対してオフセット量Odによるオフセットをかけたとしても、3D頭髪の半分以上が不可視であると判定される可能性が高いためである。
このような場合には、オフセット量Odの設定だけでなく、可視または不可視を判定する際の比率、すなわち図17を用いて50%と説明した領域C1に存在する頂点数の比率についても変更する必要がある。
オールバックの場合を例とするのであれば、例えばオフセット量Odによるオフセットをかけたうえで、領域C1に10%程度の頂点が存在すれば、かかる3D髪の毛については可視と判定する。オールバックの高さが高く、被写体の正面から撮影した入力画像に対してストロークを十分に引ける場合には、当該第1の変形例を適用することで対応することが可能である。
なお、オールバックの高さがなく、ストロークを側面から引く必要がある場合には、次に説明する第2の変形例を用いることができる。
<4-2.第2の変形例>
上述した実施形態および第1の変形例では、カメラ3を設置する方向を被写体の正面としたが、以下に示す手法を導入することで、被写体の横方向からの撮影に対応することも可能である。
上述した実施形態および第1の変形例では、カメラ3を設置する方向を被写体の正面としたが、以下に示す手法を導入することで、被写体の横方向からの撮影に対応することも可能である。
例えば、被写体を左方向または右方向から撮影する場合、片目、鼻、口、顎の半分、耳、頬の皮膚等が、入力画像上の個人の特徴として取得できると想定できる。これに基づき、第2の変形例では、3D頭髪を2D画像平面上へ投影する投影処理において、上記個人の特徴から得られる特徴点に対応する点を3D顔モデルデータ上で選択し、かかる対応点同士の距離が最も近づくような2つの点群同士の位置合わせを、例えばICP(Iterative Closest Point)のアルゴリズムを用いて行う。かかる位置合わせを行った後は、上述した実施形態の投影処理以降の処理を行うことで、対応可能である。
また、既に述べたが、上述した実施形態に係る情報処理装置10は、入力画像に対しストロークの入力を受け付け、ストロークごとに最も類似するとされる3D頭髪の選出結果を出力する以外のUIを持たないが、UIはこれに限られるものではない。次に、かかるUIに関する第3の変形例について説明する。
<4-3.第3の変形例>
図22は、第3の変形例の説明図である。第3の変形例では、図22に示すようなUIを想定する。
図22は、第3の変形例の説明図である。第3の変形例では、図22に示すようなUIを想定する。
具体的には、図22に示すように、第3の変形例に係るUIでは、例えば表示レイアウトの最上段に入力画像、および、かかる入力画像に対し描かれたストロークを表示する。
そして、かかる入力画像の下に、各ストロークに類似する3D髪の毛を有する3D頭髪の選出結果を、例えば類似性が高い順に表示し、ユーザが最終的な3D頭髪の生成に使用する3D頭髪を選択できる機能を提供する。
例えば、図22の中段には、太い実線や破線の枠で囲まれた3D頭髪が、入力部5を介したユーザによる操作により、選択された様子を表している。
なお、本実施形態は、比較例に比して3D頭髪の選出精度を向上させるものであるが、必ずしも最良の候補を自動的に選出しているとは限らない。したがって、このように、ユーザが使用する3D頭髪を選択できる機能を提供することによって、ユーザに、自身の判断によって最良とする候補を選ばせ、最終的な3D頭髪を生成させることができる。
また、同図の最下段に示すように、併せて、選択された3D頭髪の統合結果と(最下段の左図参照)、最終的に生成される3D頭髪のイメージをプレビュー表示してもよい(最下段の右図参照)。
これにより、ユーザは、最終的に生成される3D頭髪を目視しつつ、ユーザがイメージしている通りの頭髪形状が生成されるか否かを確認しながら作業を進めることが可能となる。すなわち、ユーザビリティを高めることができる。
<4-4.その他の変形例>
その他にも変形例を挙げることができる。例えばカメラ3は、単眼RGBカメラを例に挙げたが、カメラ3は被写体の形状を取得可能な撮影装置であればよく、例えば他にはRGBDカメラ等であってもよい。
その他にも変形例を挙げることができる。例えばカメラ3は、単眼RGBカメラを例に挙げたが、カメラ3は被写体の形状を取得可能な撮影装置であればよく、例えば他にはRGBDカメラ等であってもよい。
また、例えば出力部7は、ディスプレイモニタやタッチパネルディスプレイを例に挙げたが、テレビ、プロジェクタ、スクリーン等、映像の入力を受け付け、表示する機能を有する表示装置であればいずれも使用可能である。入力部5の変形例については既に述べたため、ここでの説明は省略する。
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、図4に示した画像取得部121およびストローク取得部122は統合されてもよい。同じく、例えば、図4に示したシルエット判定部123および不可視部分削除部124は統合されてもよい。
また、上記してきた実施形態は、処理内容を矛盾させない領域で適宜組み合わせることが可能である。また、本実施形態のシーケンス図或いはフローチャートに示された各ステップは、適宜順序を変更することが可能である。
<<5.ハードウェア構成>>
上述してきた実施形態に係る情報処理装置10は、例えば図23に示すような構成のコンピュータ1000によって実現される。図22は、情報処理装置10の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD(Hard Disk Drive)1400、通信インターフェイス1500、及び入出力インターフェイス1600を有する。コンピュータ1000の各部は、バス1050によって接続される。
上述してきた実施形態に係る情報処理装置10は、例えば図23に示すような構成のコンピュータ1000によって実現される。図22は、情報処理装置10の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD(Hard Disk Drive)1400、通信インターフェイス1500、及び入出力インターフェイス1600を有する。コンピュータ1000の各部は、バス1050によって接続される。
CPU1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。例えば、CPU1100は、ROM1300又はHDD1400に格納されたプログラムをRAM1200に展開し、各種プログラムに対応した処理を実行する。
ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるBIOS(Basic Input Output System)等のブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を非一時的に記録する、コンピュータが読み取り可能な記録媒体である。具体的には、HDD1400は、プログラムデータ1450の一例である本開示に係る情報処理プログラムを記録する記録媒体である。
通信インターフェイス1500は、コンピュータ1000が外部ネットワーク1550(例えばインターネット)と接続するためのインターフェイスである。例えば、CPU1100は、通信インターフェイス1500を介して、他の機器からデータを受信したり、CPU1100が生成したデータを他の機器へ送信したりする。
入出力インターフェイス1600は、入出力デバイス1650とコンピュータ1000とを接続するためのインターフェイスである。例えば、CPU1100は、入出力インターフェイス1600を介して、キーボードやマウス等の入力デバイスからデータを受信する。また、CPU1100は、入出力インターフェイス1600を介して、ディスプレイやスピーカーやプリンタ等の出力デバイスにデータを送信する。また、入出力インターフェイス1600は、所定の記録媒体(メディア)に記録されたプログラム等を読み取るメディアインターフェイスとして機能してもよい。メディアとは、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る情報処理装置10として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされた情報処理プログラムを実行することにより、制御部12の機能を実現する。また、HDD1400には、本開示に係る情報処理プログラムや、記憶部11内のデータが格納される。なお、CPU1100は、プログラムデータ1450をHDD1400から読み取って実行するが、他の例として、外部ネットワーク1550を介して、他の装置からこれらのプログラムを取得してもよい。
<<6.むすび>>
以上説明したように、本開示の一実施形態によれば、情報処理装置10は、3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から上記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除する削除部124bと、削除部124bによって上記範囲が削除された上記3D顔モデルデータの残りの部分である上記3D顔モデルデータの一部が上記2D画像に含まれる上記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、上記3D顔モデルデータに関連付けられた3D頭髪を3D頭髪DB111(「データベース」の一例に相当)から選出する頭髪検索部125と、を備える。これにより、3D頭髪の選出処理の精度を向上させて、最終的に生成される3D頭髪の品質向上を実現することができる。
以上説明したように、本開示の一実施形態によれば、情報処理装置10は、3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から上記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除する削除部124bと、削除部124bによって上記範囲が削除された上記3D顔モデルデータの残りの部分である上記3D顔モデルデータの一部が上記2D画像に含まれる上記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、上記3D顔モデルデータに関連付けられた3D頭髪を3D頭髪DB111(「データベース」の一例に相当)から選出する頭髪検索部125と、を備える。これにより、3D頭髪の選出処理の精度を向上させて、最終的に生成される3D頭髪の品質向上を実現することができる。
以上、本開示の各実施形態について説明したが、本開示の技術的範囲は、上述の各実施形態そのままに限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、異なる実施形態及び変形例にわたる構成要素を適宜組み合わせてもよい。
また、本明細書に記載された各実施形態における効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
なお、本技術は以下のような構成も取ることができる。
(1)
3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から前記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除する削除部と、
前記削除部によって前記範囲が削除された前記3D顔モデルデータの残りの部分である前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、前記3D顔モデルデータに関連付けられた3D頭髪をデータベースから選出する頭髪検索部と、
を備える、情報処理装置。
(2)
ユーザにより前記2D画像に対して入力された、前記被写体の髪の流れを表すストロークを取得する取得部、
をさらに備え、
前記頭髪検索部は、
前記ストロークに基づいて、前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定する、
前記(1)に記載の情報処理装置。
(3)
前記頭髪検索部は、
前記3D顔モデルデータの一部を前記2D画像の画像平面へ投影し、前記画像平面において、前記3D顔モデルデータの一部に含まれる3D髪の毛のそれぞれを構成する頂点と前記ストロークを構成する頂点の距離を比較することによって、前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定する、
前記(2)に記載の情報処理装置。
(4)
前記ストロークは、複数入力され、
前記頭髪検索部は、
前記ストロークのそれぞれについて、前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定する、
前記(3)に記載の情報処理装置。
(5)
前記削除部は、
仮想空間に配置した仮想カメラおよび3D物体の間の距離を表す深度値を含む深度情報に基づいて、前記オフセット量を有する範囲を削除する、
前記(3)または(4)に記載の情報処理装置。
(6)
前記深度情報は、
各ピクセルに前記深度値が保持された深度画像であって、
前記削除部は、
前記仮想空間において前記3D顔モデルデータの少なくとも顔を撮影可能に配置された前記仮想カメラが撮影したと仮定する画像の各ピクセルが保持する前記3D顔モデルデータまでの距離を前記深度値とする、
前記(5)に記載の情報処理装置。
(7)
前記削除部は、
前記2D画像における被写体の目、口および顔の輪郭の位置と、前記仮想カメラから前記3D顔モデルデータを見た際の目、口および顔の輪郭の位置との誤差を最小化するように計算されたパラメータに基づき、前記仮想空間において前記3D顔モデルデータの正面に前記仮想カメラが配置されるよう位置合わせを行い、前記仮想カメラによる撮影を仮定する、
前記(6)に記載の情報処理装置。
(8)
前記削除部は、
前記深度画像の各ピクセルに保持される前記深度値に対して前記仮想カメラから見た奥行き方向へ前記オフセット量を加える、
前記(6)または(7)に記載の情報処理装置。
(9)
前記3D顔モデルデータの一部は、前記仮想カメラから前記3D顔モデルデータを見た場合の前記3D頭髪の可視部分に相当し、
前記削除部は、
前記深度値に対して前記オフセット量を加えた値を、前記可視部分および当該可視部分以外の不可視部分を切り分ける閾値として用いることによって、前記不可視部分に対応する前記オフセット量を有する範囲を削除する、
前記(8)に記載の情報処理装置。
(10)
前記削除部は、
一つの前記3D髪の毛を構成するすべての頂点のうち、所定の比率以上の頂点が前記閾値を境界とする前記仮想カメラの側の領域に存在する場合に、当該3D髪の毛を前記可視部分であると判定する、
前記(9)に記載の情報処理装置。
(11)
前記削除部は、
現実空間で顔の最も前方にある前髪と生え際の距離に基づいて設定された前記オフセット量を用いる、
前記(2)~(10)のいずれか一つに記載の情報処理装置。
(12)
前記2D画像に含まれる前記被写体の頭髪部分のシルエットである第1のシルエット、および、前記3D顔モデルデータの頭髪部分のシルエットである第2のシルエットの類似性を判定するシルエット判定部、
をさらに備え、
前記シルエット判定部は、
前記第1のシルエットおよび前記第2のシルエットが類似すると判定される場合に、前記3D顔モデルデータの前記3D頭髪を前記頭髪検索部による選出対象とし、類似しないと判定される場合に、前記頭髪検索部による選出対象外とする、
前記(2)~(11)のいずれか一つに記載の情報処理装置。
(13)
前記シルエット判定部は、
前記第1のシルエットおよび前記第2のシルエットの重畳度合いを算出し、算出した前記重畳度合いに基づいて前記第1のシルエットおよび前記第2のシルエットの類似性を判定する、
前記(12)に記載の情報処理装置。
(14)
前記シルエット判定部は、
前記重畳度合いをIoU(Intersection over Union)として算出し、前記IoUが所定値以上である場合に、前記第1のシルエットおよび前記第2のシルエットが類似すると判定する、
前記(13)に記載の情報処理装置。
(15)
前記シルエット判定部は、
前記2D画像に基づいて前記第1のシルエットを示す第1の画像を生成するとともに、前記2D画像の撮影時における撮影位置および回転方向に応じて座標変換された前記3D顔モデルデータに基づいて前記第2のシルエットを示す第2の画像を生成し、前記第1の画像および前記第2の画像に基づいて前記重畳度合いを算出する、
前記(13)または(14)に記載の情報処理装置。
(16)
前記シルエット判定部は、
一つの前記ストロークの両端に基づいて規定される切り出し対象領域を前記第1の画像および前記第2の画像からそれぞれ切り出し、切り出された前記切り出し対象領域における前記第1のシルエットおよび前記第2のシルエットについて類似性を判定する、
前記(15)に記載の情報処理装置。
(17)
前記削除部は、
前記3D顔モデルデータの一部から、前記切り出し対象領域に該当しない部分をさらに削除する、
前記(16)に記載の情報処理装置。
(18)
前記頭髪検索部は、
前記ストロークのそれぞれに対応する前記3D頭髪の選出結果を類似性が高い順にユーザへ提示するとともに、選出された前記3D頭髪のそれぞれをユーザが任意に選択することによって、選択された前記3D頭髪を組み合わせたイメージをユーザへ提示する、
前記(2)~(17)のいずれか一つに記載の情報処理装置。
(19)
3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から前記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除することと、
前記削除することにおいて前記範囲が削除された前記3D顔モデルデータの残りの部分である前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、前記3D顔モデルデータに関連付けられた3D頭髪をデータベースから選出することと、
を含む、情報処理方法。
(20)
コンピュータに、
3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から前記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除すること、
前記削除することにおいて前記範囲が削除された前記3D顔モデルデータの残りの部分である前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、前記3D顔モデルデータに関連付けられた3D頭髪をデータベースから選出すること、
を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
(1)
3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から前記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除する削除部と、
前記削除部によって前記範囲が削除された前記3D顔モデルデータの残りの部分である前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、前記3D顔モデルデータに関連付けられた3D頭髪をデータベースから選出する頭髪検索部と、
を備える、情報処理装置。
(2)
ユーザにより前記2D画像に対して入力された、前記被写体の髪の流れを表すストロークを取得する取得部、
をさらに備え、
前記頭髪検索部は、
前記ストロークに基づいて、前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定する、
前記(1)に記載の情報処理装置。
(3)
前記頭髪検索部は、
前記3D顔モデルデータの一部を前記2D画像の画像平面へ投影し、前記画像平面において、前記3D顔モデルデータの一部に含まれる3D髪の毛のそれぞれを構成する頂点と前記ストロークを構成する頂点の距離を比較することによって、前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定する、
前記(2)に記載の情報処理装置。
(4)
前記ストロークは、複数入力され、
前記頭髪検索部は、
前記ストロークのそれぞれについて、前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定する、
前記(3)に記載の情報処理装置。
(5)
前記削除部は、
仮想空間に配置した仮想カメラおよび3D物体の間の距離を表す深度値を含む深度情報に基づいて、前記オフセット量を有する範囲を削除する、
前記(3)または(4)に記載の情報処理装置。
(6)
前記深度情報は、
各ピクセルに前記深度値が保持された深度画像であって、
前記削除部は、
前記仮想空間において前記3D顔モデルデータの少なくとも顔を撮影可能に配置された前記仮想カメラが撮影したと仮定する画像の各ピクセルが保持する前記3D顔モデルデータまでの距離を前記深度値とする、
前記(5)に記載の情報処理装置。
(7)
前記削除部は、
前記2D画像における被写体の目、口および顔の輪郭の位置と、前記仮想カメラから前記3D顔モデルデータを見た際の目、口および顔の輪郭の位置との誤差を最小化するように計算されたパラメータに基づき、前記仮想空間において前記3D顔モデルデータの正面に前記仮想カメラが配置されるよう位置合わせを行い、前記仮想カメラによる撮影を仮定する、
前記(6)に記載の情報処理装置。
(8)
前記削除部は、
前記深度画像の各ピクセルに保持される前記深度値に対して前記仮想カメラから見た奥行き方向へ前記オフセット量を加える、
前記(6)または(7)に記載の情報処理装置。
(9)
前記3D顔モデルデータの一部は、前記仮想カメラから前記3D顔モデルデータを見た場合の前記3D頭髪の可視部分に相当し、
前記削除部は、
前記深度値に対して前記オフセット量を加えた値を、前記可視部分および当該可視部分以外の不可視部分を切り分ける閾値として用いることによって、前記不可視部分に対応する前記オフセット量を有する範囲を削除する、
前記(8)に記載の情報処理装置。
(10)
前記削除部は、
一つの前記3D髪の毛を構成するすべての頂点のうち、所定の比率以上の頂点が前記閾値を境界とする前記仮想カメラの側の領域に存在する場合に、当該3D髪の毛を前記可視部分であると判定する、
前記(9)に記載の情報処理装置。
(11)
前記削除部は、
現実空間で顔の最も前方にある前髪と生え際の距離に基づいて設定された前記オフセット量を用いる、
前記(2)~(10)のいずれか一つに記載の情報処理装置。
(12)
前記2D画像に含まれる前記被写体の頭髪部分のシルエットである第1のシルエット、および、前記3D顔モデルデータの頭髪部分のシルエットである第2のシルエットの類似性を判定するシルエット判定部、
をさらに備え、
前記シルエット判定部は、
前記第1のシルエットおよび前記第2のシルエットが類似すると判定される場合に、前記3D顔モデルデータの前記3D頭髪を前記頭髪検索部による選出対象とし、類似しないと判定される場合に、前記頭髪検索部による選出対象外とする、
前記(2)~(11)のいずれか一つに記載の情報処理装置。
(13)
前記シルエット判定部は、
前記第1のシルエットおよび前記第2のシルエットの重畳度合いを算出し、算出した前記重畳度合いに基づいて前記第1のシルエットおよび前記第2のシルエットの類似性を判定する、
前記(12)に記載の情報処理装置。
(14)
前記シルエット判定部は、
前記重畳度合いをIoU(Intersection over Union)として算出し、前記IoUが所定値以上である場合に、前記第1のシルエットおよび前記第2のシルエットが類似すると判定する、
前記(13)に記載の情報処理装置。
(15)
前記シルエット判定部は、
前記2D画像に基づいて前記第1のシルエットを示す第1の画像を生成するとともに、前記2D画像の撮影時における撮影位置および回転方向に応じて座標変換された前記3D顔モデルデータに基づいて前記第2のシルエットを示す第2の画像を生成し、前記第1の画像および前記第2の画像に基づいて前記重畳度合いを算出する、
前記(13)または(14)に記載の情報処理装置。
(16)
前記シルエット判定部は、
一つの前記ストロークの両端に基づいて規定される切り出し対象領域を前記第1の画像および前記第2の画像からそれぞれ切り出し、切り出された前記切り出し対象領域における前記第1のシルエットおよび前記第2のシルエットについて類似性を判定する、
前記(15)に記載の情報処理装置。
(17)
前記削除部は、
前記3D顔モデルデータの一部から、前記切り出し対象領域に該当しない部分をさらに削除する、
前記(16)に記載の情報処理装置。
(18)
前記頭髪検索部は、
前記ストロークのそれぞれに対応する前記3D頭髪の選出結果を類似性が高い順にユーザへ提示するとともに、選出された前記3D頭髪のそれぞれをユーザが任意に選択することによって、選択された前記3D頭髪を組み合わせたイメージをユーザへ提示する、
前記(2)~(17)のいずれか一つに記載の情報処理装置。
(19)
3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から前記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除することと、
前記削除することにおいて前記範囲が削除された前記3D顔モデルデータの残りの部分である前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、前記3D顔モデルデータに関連付けられた3D頭髪をデータベースから選出することと、
を含む、情報処理方法。
(20)
コンピュータに、
3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から前記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除すること、
前記削除することにおいて前記範囲が削除された前記3D顔モデルデータの残りの部分である前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、前記3D顔モデルデータに関連付けられた3D頭髪をデータベースから選出すること、
を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
3 カメラ
3V 仮想カメラ
5 入力部
7 出力部
10 情報処理装置
11 記憶部
111 3D頭髪DB
12 制御部
121 画像取得部
122 ストローク取得部
123 シルエット判定部
123a シルエット画像生成部
123b 切り出し部
123c 算出部
123d 判定部
124 不可視部分削除部
124a 深度画像生成部
124b 削除部
125 頭髪検索部
3V 仮想カメラ
5 入力部
7 出力部
10 情報処理装置
11 記憶部
111 3D頭髪DB
12 制御部
121 画像取得部
122 ストローク取得部
123 シルエット判定部
123a シルエット画像生成部
123b 切り出し部
123c 算出部
123d 判定部
124 不可視部分削除部
124a 深度画像生成部
124b 削除部
125 頭髪検索部
Claims (20)
- 3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から前記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除する削除部と、
前記削除部によって前記範囲が削除された前記3D顔モデルデータの残りの部分である前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、前記3D顔モデルデータに関連付けられた3D頭髪をデータベースから選出する頭髪検索部と、
を備える、情報処理装置。 - ユーザにより前記2D画像に対して入力された、前記被写体の髪の流れを表すストロークを取得する取得部、
をさらに備え、
前記頭髪検索部は、
前記ストロークに基づいて、前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定する、
請求項1に記載の情報処理装置。 - 前記頭髪検索部は、
前記3D顔モデルデータの一部を前記2D画像の画像平面へ投影し、前記画像平面において、前記3D顔モデルデータの一部に含まれる3D髪の毛のそれぞれを構成する頂点と前記ストロークを構成する頂点の距離を比較することによって、前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定する、
請求項2に記載の情報処理装置。 - 前記ストロークは、複数入力され、
前記頭髪検索部は、
前記ストロークのそれぞれについて、前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定する、
請求項3に記載の情報処理装置。 - 前記削除部は、
仮想空間に配置した仮想カメラおよび3D物体の間の距離を表す深度値を含む深度情報に基づいて、前記オフセット量を有する範囲を削除する、
請求項3に記載の情報処理装置。 - 前記深度情報は、
各ピクセルに前記深度値が保持された深度画像であって、
前記削除部は、
前記仮想空間において前記3D顔モデルデータの少なくとも顔を撮影可能に配置された前記仮想カメラが撮影したと仮定する画像の各ピクセルが保持する前記3D顔モデルデータまでの距離を前記深度値とする、
請求項5に記載の情報処理装置。 - 前記削除部は、
前記2D画像における被写体の目、口および顔の輪郭の位置と、前記仮想カメラから前記3D顔モデルデータを見た際の目、口および顔の輪郭の位置との誤差を最小化するように計算されたパラメータに基づき、前記仮想空間において前記3D顔モデルデータの正面に前記仮想カメラが配置されるよう位置合わせを行い、前記仮想カメラによる撮影を仮定する、
請求項6に記載の情報処理装置。 - 前記削除部は、
前記深度画像の各ピクセルに保持される前記深度値に対して前記仮想カメラから見た奥行き方向へ前記オフセット量を加える、
請求項6に記載の情報処理装置。 - 前記3D顔モデルデータの一部は、前記仮想カメラから前記3D顔モデルデータを見た場合の前記3D頭髪の可視部分に相当し、
前記削除部は、
前記深度値に対して前記オフセット量を加えた値を、前記可視部分および当該可視部分以外の不可視部分を切り分ける閾値として用いることによって、前記不可視部分に対応する前記オフセット量を有する範囲を削除する、
請求項8に記載の情報処理装置。 - 前記削除部は、
一つの前記3D髪の毛を構成するすべての頂点のうち、所定の比率以上の頂点が前記閾値を境界とする前記仮想カメラの側の領域に存在する場合に、当該3D髪の毛を前記可視部分であると判定する、
請求項9に記載の情報処理装置。 - 前記削除部は、
現実空間で顔の最も前方にある前髪と生え際の距離に基づいて設定された前記オフセット量を用いる、
請求項2に記載の情報処理装置。 - 前記2D画像に含まれる前記被写体の頭髪部分のシルエットである第1のシルエット、および、前記3D顔モデルデータの頭髪部分のシルエットである第2のシルエットの類似性を判定するシルエット判定部、
をさらに備え、
前記シルエット判定部は、
前記第1のシルエットおよび前記第2のシルエットが類似すると判定される場合に、前記3D顔モデルデータの前記3D頭髪を前記頭髪検索部による選出対象とし、類似しないと判定される場合に、前記頭髪検索部による選出対象外とする、
請求項2に記載の情報処理装置。 - 前記シルエット判定部は、
前記第1のシルエットおよび前記第2のシルエットの重畳度合いを算出し、算出した前記重畳度合いに基づいて前記第1のシルエットおよび前記第2のシルエットの類似性を判定する、
請求項12に記載の情報処理装置。 - 前記シルエット判定部は、
前記重畳度合いをIoU(Intersection over Union)として算出し、前記IoUが所定値以上である場合に、前記第1のシルエットおよび前記第2のシルエットが類似すると判定する、
請求項13に記載の情報処理装置。 - 前記シルエット判定部は、
前記2D画像に基づいて前記第1のシルエットを示す第1の画像を生成するとともに、前記2D画像の撮影時における撮影位置および回転方向に応じて座標変換された前記3D顔モデルデータに基づいて前記第2のシルエットを示す第2の画像を生成し、前記第1の画像および前記第2の画像に基づいて前記重畳度合いを算出する、
請求項13に記載の情報処理装置。 - 前記シルエット判定部は、
一つの前記ストロークの両端に基づいて規定される切り出し対象領域を前記第1の画像および前記第2の画像からそれぞれ切り出し、切り出された前記切り出し対象領域における前記第1のシルエットおよび前記第2のシルエットについて類似性を判定する、
請求項15に記載の情報処理装置。 - 前記削除部は、
前記3D顔モデルデータの一部から、前記切り出し対象領域に該当しない部分をさらに削除する、
請求項16に記載の情報処理装置。 - 前記頭髪検索部は、
前記ストロークのそれぞれに対応する前記3D頭髪の選出結果を類似性が高い順にユーザへ提示するとともに、選出された前記3D頭髪のそれぞれをユーザが任意に選択することによって、選択された前記3D頭髪を組み合わせたイメージをユーザへ提示する、
請求項2に記載の情報処理装置。 - 3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から前記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除することと、
前記削除することにおいて前記範囲が削除された前記3D顔モデルデータの残りの部分である前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、前記3D顔モデルデータに関連付けられた3D頭髪をデータベースから選出することと、
を含む、情報処理方法。 - コンピュータに、
3D顔モデルデータにつき、被写体の顔を含む2D画像に対応する側から前記2D画像の撮影方向に対応する方向へ所定のオフセット量を有する範囲を削除すること、
前記削除することにおいて前記範囲が削除された前記3D顔モデルデータの残りの部分である前記3D顔モデルデータの一部が前記2D画像に含まれる前記被写体の髪型に対応するか否かを判定し、対応すると判定される場合に、前記3D顔モデルデータに関連付けられた3D頭髪をデータベースから選出すること、
を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020103017 | 2020-06-15 | ||
JP2020-103017 | 2020-06-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021256319A1 true WO2021256319A1 (ja) | 2021-12-23 |
Family
ID=79267922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/021615 WO2021256319A1 (ja) | 2020-06-15 | 2021-06-07 | 情報処理装置、情報処理方法および記録媒体 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2021256319A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002083318A (ja) * | 2000-09-07 | 2002-03-22 | Sony Corp | 画像処理装置および方法、並びに記録媒体 |
JP2006163871A (ja) * | 2004-12-08 | 2006-06-22 | Sony Corp | 画像処理装置、画像処理方法、およびプログラム |
US20140233849A1 (en) * | 2012-06-20 | 2014-08-21 | Zhejiang University | Method for single-view hair modeling and portrait editing |
US20160314619A1 (en) * | 2015-04-24 | 2016-10-27 | Adobe Systems Incorporated | 3-Dimensional Portrait Reconstruction From a Single Photo |
WO2020063527A1 (zh) * | 2018-09-30 | 2020-04-02 | 叠境数字科技(上海)有限公司 | 基于多特征检索和形变的人体发型生成方法 |
-
2021
- 2021-06-07 WO PCT/JP2021/021615 patent/WO2021256319A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002083318A (ja) * | 2000-09-07 | 2002-03-22 | Sony Corp | 画像処理装置および方法、並びに記録媒体 |
JP2006163871A (ja) * | 2004-12-08 | 2006-06-22 | Sony Corp | 画像処理装置、画像処理方法、およびプログラム |
US20140233849A1 (en) * | 2012-06-20 | 2014-08-21 | Zhejiang University | Method for single-view hair modeling and portrait editing |
US20160314619A1 (en) * | 2015-04-24 | 2016-10-27 | Adobe Systems Incorporated | 3-Dimensional Portrait Reconstruction From a Single Photo |
WO2020063527A1 (zh) * | 2018-09-30 | 2020-04-02 | 叠境数字科技(上海)有限公司 | 基于多特征检索和形变的人体发型生成方法 |
Non-Patent Citations (3)
Title |
---|
CHENG, L. G. ET AL.: "Automatic hair modeling from one image", 2019 INTERNATIONAL CONFERENCE ON VIRTUAL REALITY AND VISUALIZATION (ICVRV, 18 November 2019 (2019-11-18), pages 108 - 112, XP033836443, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/document/9212824> DOI: 10.1109/ICVRV47840.2019.00026 * |
HU, L. W. ET AL.: "Single- view hair modeling using a hairstyle database", ACM TRANSACTIONS ON GRAPHICS, vol. 34, no. 4, 27 July 2015 (2015-07-27), XP055399332, Retrieved from the Internet <URL:https://dl.acm.org/doi/10.1145/2766931> DOI: 10.1145/2766931 * |
ZHANG, M. ET AL.: "Hair-GANs: recovering 3D hair structure from a single image", ARXIV, 15 November 2018 (2018-11-15), XP0081680871, Retrieved from the Internet <URL:https://arxiv.org/abs/1911.06229> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102658960B1 (ko) | 얼굴 재연을 위한 시스템 및 방법 | |
US10860838B1 (en) | Universal facial expression translation and character rendering system | |
US11907839B2 (en) | Detail-preserving image editing techniques | |
KR101635730B1 (ko) | 몽타주 생성 장치 및 방법, 그 방법을 수행하기 위한 기록 매체 | |
CN110688948B (zh) | 视频中人脸性别变换方法、装置、电子设备和存储介质 | |
US9734637B2 (en) | Semantic rigging of avatars | |
US11282257B2 (en) | Pose selection and animation of characters using video data and training techniques | |
US9202312B1 (en) | Hair simulation method | |
US10467793B2 (en) | Computer implemented method and device | |
JP2024500896A (ja) | 3d頭部変形モデルを生成するための方法、システム及び方法 | |
JP2024503794A (ja) | 2次元(2d)顔画像から色を抽出するための方法、システム及びコンピュータプログラム | |
KR20230110787A (ko) | 개인화된 3d 머리 및 얼굴 모델들을 형성하기 위한 방법들 및 시스템들 | |
US20220237751A1 (en) | Techniques for enhancing skin renders using neural network projection for rendering completion | |
US11361467B2 (en) | Pose selection and animation of characters using video data and training techniques | |
KR102604424B1 (ko) | 표준 얼굴 모델 기반 얼굴 특징점 추정 영상 처리장치 및 표준 얼굴 모델 기반 얼굴 특징점 추정 영상 처리를 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 물리적 기록매체 | |
WO2021256319A1 (ja) | 情報処理装置、情報処理方法および記録媒体 | |
US20230079478A1 (en) | Face mesh deformation with detailed wrinkles | |
Vanakittistien et al. | 3D hair model from small set of images | |
KR20110131947A (ko) | 영상 처리 장치 및 방법 | |
US11983819B2 (en) | Methods and systems for deforming a 3D body model based on a 2D image of an adorned subject | |
JP2023073038A (ja) | 情報処理装置、情報処理方法及びプログラム | |
WO2023211527A1 (en) | Progressive transformation of face 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: 21826902 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21826902 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |