# Patent

## Title
Method for creating face replacement database

## Abstract

A method for creating a face replacement database includes steps of creating a face database for storing a plurality of replaced images with a face image rotation angle by using a method for estimating a 3D vector angle from a 2D face image, and defining a region to be replaced in the replaced image. The method for estimating a 3D vector angle from a 2D face image includes the steps of creating a feature vector template; detecting a corner of eye and mouth in a face image; defining a sharp point in a vertical direction of the quadrilateral plane, and converting the vertices into 3D coordinates; computing the four vectors from the sharp point to the four vertices to obtain a vector set, and matching the vector set with the feature vector model to obtain an angle which is defined as a rotation angle of the input face image.

## Background
REFERENCE TO RELATED APPLICATION
This is a divisional application for applicant's former patent application Ser. No. 14/615,770 filed on Feb. 6, 2015, currently pending.


BACKGROUND OF THE INVENTION
1. Fields of the Invention
This divisional application relates to a method for creating a face replacement database, and more particularly, to the method with the effect of replacing a face image by detecting a rotation angle of the face image and then replacing a region to be replaced of the face image by a replaced image.
2. Descriptions of Related Art
Face replacement technology gains more attentions in recent years, primarily due to its wide scope of applicability in the fields of movies, entertainments and medical cosmetology. For example, when a movie is shot, a stuntman's face image is replaced by a main actor's face image, so that the main actor no longer needs to perform an action of high level of difficulty, and a cameraman needs not to avoid the angle of shooting at the stuntman's face. Such face replacement technique can ensure the safety of the main actor and improve the efficiency of shooting the film and saving the production cost effectively. In the aspect of entertainment, users may replace faces with others to achieve the effect of having fun. In the aspect of medical cosmetology, patients requiring a plastic surgery may observed the result of the surgery ahead of time before deciding whether or not to take the surgery in order to avoid unexpected results.
In a conventional face replacement technique, the feature points of an image to be replaced and a target image are calculated manually, so as to designate a region and an angle to be replaced, and then the range of the calculated feature points of the target image is replaced by a range of calculated feature points of the replaced image. However, this technique is applicable for the replacement of a single static image only, but is difficult to be applied for replacing dynamic images. In addition, it is necessary to manually mark the feature points of the image to be replaced and the target image, and thus the operation is inconvenient to users and time-consuming. Color difference may occur at the boundary of the replaced image easily, and thus the overall visual perception of the replaced image is unnatural. Furthermore, the method of estimating a face angle applied in the replacement process is too complicated and takes lots of computation time. Therefore, this technique fails to provide a quick image replacement.
In view of the aforementioned problems, the inventor of the present invention based on years of experience in the related industry to conduct extensive researches and experiments, and finally designed a face replacement technique in accordance with the present invention to overcome the aforementioned problems of the prior art.
SUMMARY OF THE INVENTION
The present invention overcomes the drawbacks of the conventional face replacement technique that requires the users to manually mark the feature points of the image to be replaced and the target image and causes tremendous inconvenience to the users, and the method of estimating a face angle is time-consuming, and color difference may occur at the boundary of the replaced image easily and result in an unnatural visual perception of the replaced image.
To achieve the aforementioned objective, the present invention provides a method for creating a face replacement database by using a method for estimating the 3D vector angle from a 2D face image, wherein the method for estimating the 3D vector angle from a 2D face image comprises the steps of: creating a feature vector template including a feature vector model of a plurality of different rotation angles; detecting a corner of eye and a corner of mouth in a face image to be processed, and defining the corners of eye and the corners of mouth as vertices of a quadrilateral respectively; defining a sharp point in a vertical direction of the quadrilateral plane, and converting the vertices into 3D coordinates, wherein the sharp point and the vertices of the quadrilateral form a quadrangular pyramid; computing the four vectors from the sharp point to the four vertices whose coordinates are 3D coordinates to obtain a vector set, and matching the vector set with the feature vector model to obtain an angle which has the shortest distance between a feature vector model and the vector set, and defining the angle value as a rotation angle of the input face image.
The method for creating a face replacement database comprising the steps of creating a face database for storing a plurality of replaced images with a face image rotation angle by using the method for estimating a 3D vector angle from a 2D face image, and defining a region to be replaced in the replaced image.
Preferably, the region to be replaced is a surface region formed by the vertices.
Preferably, the method for creating a face replacement database further comprises the steps of:
obtaining a center point from two adjacent vertices, and shifting the center point towards the exterior of the quadrilateral; and
using an arc to connect the vertices and the center point to form the region to be replaced.
Preferably, the arc is a parabola, and the surface region is in the shape of a convex hull.
Preferably, the corner of eye and the corner of mouth are detected from two eye regions and a mouth region of the face image respectively, and a first leftmost point and a first rightmost point are obtained from a top edge of the eye region respectively, and a second leftmost point and a second rightmost point mouth region are obtained from a bottom edge of the eye region respectively, and a center point is obtained from two adjacent points between the second leftmost point and the second rightmost point, and the center point is shifted towards the exterior of the quadrilateral, and an arc is used for connecting the first leftmost point, the first rightmost point, the second leftmost point, the second rightmost point and the center point to form a closed surface region which is defined as the region to be replaced.
In summation of the description above, the present invention has the following advantages and effects:

    
    
        1. The present invention performs the steps of forming the vertices of a quadrilateral through the corners of eye and corners of mouth of a planar image, defining a sharp point in the vertical direction of the quadrilateral, computing the four vectors from the sharp point to four vertices whose coordinates are 3D coordinates to obtain the vector set, matching the vector set with the feature vector model to obtain an angle which has the shortest distance between a feature vector model and the vector set, and defining the angle value as the rotation angle of the input face image. Obviously, the present invention can estimate the rotation angle of a face image instantly without any manual operation or complicated and huge computations. The invention is applicable for dynamic and static images and almost synchronized with the dynamic image without any delay.
        2. The present invention defines and forms the region to be replaced by the corners of eye and the corners of mouth in a face image, so that the region to be replaced will change according to the rotation of the face image, so that the face replacement is done precisely without any deviation. In addition, the values of the R channel, G channel and B channel of the target replacing image are adjusted according to the zoom factors between the RBG color of the replaced image and that of the target replacing region, and the replaced image is pasted onto the target replacing region by an edge feathering method, so that the color of the target replacing region is made to be natural.
        3. The present invention simply requires a low cost camera and personal computer, and does not require the installation of any additional expensive equipment.
    
    





BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a flow chart of a method for estimating a 3D vector angle from a 2D face images in accordance with the present invention;
FIG. 2 is a schematic view of a first region of interest and a second region of interest defined in a face image in accordance with the present invention;
FIG. 3 is a schematic view of a vector set obtained from a face image in accordance with the present invention;
FIG. 4 is a schematic view of a vector set of different rotation angles of a face image in accordance with the present invention;
FIG. 5 is a flow chart of a method for creating a face replacement database by using a 2D face image to estimate a 3D vector angle of the face image in accordance with the present invention;
FIG. 6 is a schematic view of a region to be replaced defined in a replaced image in accordance with the present invention;
FIG. 7 is a flow chart of a method for automatic video face replacement by using a 2D face image to estimate a 3D vector angle of the face image in accordance with the present invention;
FIG. 8 is a schematic view of a region to be replaced defined in a face image in accordance with the present invention;
FIG. 9 is a schematic view of a region to be replaced pasted onto a target replacing region in accordance with the present invention, and
FIG. 10 is a schematic view of an application of pasting a replaced image onto a target replacing region of a face image in accordance with the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
The present invention will become more obvious from the following description when taken in connection with the accompanying drawings which show, for purposes of illustration only, a preferred embodiment in accordance with the present invention.
With reference to FIG. 1 for a method for estimating a 3D vector angle from a 2D face image in accordance with the present invention, the method comprises the following steps of:
S001: Create a feature vector template, wherein the feature vector template includes a feature vector model of a plurality of different rotation angles and a standard eyes distance which is the distance between two eyes of the face image and used for scale normalization. In general, the feature vector model is created offline in advance. For a general user's face rotation, the rotation is performed within a range of rotation angles (say from −30° to 30°) with respect to the X-axis, Y-axis and Z-axis, so that if the X-axis, Y-axis and Z-axis are quantized into rotation units of N1, N2 and N3 respectively, then a feature vector model containing N feature vectors is formed, and its mathematical equation 1 is given below:

N=N1×N2×N3  [Mathematical Equation 1]

Therefore, the vector rotation matrixes within a range of the rotation angles with respect to the X-axis, Y-axis and Z-axis are multiplied to define a feature vector model.
S002: Capture a static or dynamic image by a camera such as a webcam or capture a single face image 1 through a transmission network as shown in FIG. 2. In this preferred embodiment, Haar features is used as the features for classification, and Cascade Adaboost classifier is used to detect a human face and facial features. To detect a corner of eye and a corner of mouth of the face image 1 effectively, a first region of interest 11 (ROI) is defined separately on both left and right halves of an upper part of the face image 1 as two eye regions 12 in advance, and a second region of interest 13 is defined at a position within one-third of a lower part of the face image 1 as a mouth region 14, and a corner of eye and a corner of mouth are searched from the eye region 12 and the mouth region 14 respectively. Since this invention relates to the detection of corners of eye and corners of mouth, the detection of a corner of eye is used as an example to illustrate the technical characteristics of the invention, wherein the first region of interest 11 is defined in the face image first, and after the first region of interest 11 is searched, a corner of eye is searched from the eye region 12. In a preferred embodiment, the eye region 12 situated on the left half of the face image 1 has a start point from the left side of the face image 1 for scanning the brightness of a skin region. Since the skin brightness of the corner of eye is darker than that of the neighborhood of the corner of eye, therefore the lowest scanned brightness occurs at the corner of eye, and the eye region 12 situated on the right half of the face image 1 similarly has a start point from the right side of the face image 1 for scanning the brightness of a skin region to obtain the corner of eye. As to the search for the corner of mouth, the same method for scanning the corner of eye is used, but this corner of eye and corner of mouth searching method is used for the purpose of illustrating the present invention only, but not intended for limiting the scope of the invention.
S003: Define the corner of eyes and the corners of mouth are the vertices P1, P2, P3, P4 of a quadrilateral respectively as shown in FIG. 3. Since the size of each face image may not be the same due to the factor of the shooting distance of each face image 1 from the camera, the distance from the vertices of corners of eye is computed for scale normalization in order to determine the angle of the face image 1 accurately and correct the error by the scale normalization. Since the face image 1 is a 2D image, the coordinates of the vertices are 2D coordinates. To standardize the rotation angle of each face image 1 for different face images 1, this preferred embodiment computes the height h and the 2D coordinates (x0, y0) and the centroid G of the quadrilateral, while converting the vertices and the centroid into 3D coordinate, so that the coordinate value of the vertices and the centroid G situated at the third dimension is equal to 0. For example, the 3D coordinates of the centroid are represented by (x0, y0, 0), and a multiple constant k is defined, and a sharp point O is extended from the centroid G to a predetermined multiple of height h in a vertical direction of the quadrilateral plane. In other words, the sharp point O is defined at a position of k times of the height h, such that the 3D coordinates of the sharp point O are represented by (x0, y0, kh), and the sharp point O and the vertices P1, P2, P3, P4 of the quadrilateral form a quadrangular pyramids, and a scale normalization of the quadrangular pyramid is performed according to the standard eyes distance and distance between the vertices of the corners of eye, and the four vectors {right arrow over (QP1)}, {right arrow over (QP2)}, {right arrow over (QP3)}, {right arrow over (QP4)} from the sharp point O to the vertices P1, P2, P3, P4 are computed to obtain a vector set. In FIG. 4, different rotation angles of the face image 1 result in different quadrangular pyramids and different vector sets.
S004: Compare the vector set with the feature vector model to obtain an angle which has the shortest distance between the feature vector model and the vector set. Define the angle value as the rotation angle of the input face image 1.
In FIG. 5, the present invention provides a method for creating a face replacement database by using a 2D face image to estimate a 3D vector angle of the face image, and the method comprises the following steps:
S005: Create a face database for storing a plurality of replaced images with a face image rotation angle by using the method for estimating a 3D vector angle from a 2D face image, and obtain a replaced image 2 of the rotation angle of the face image 1, wherein the replaced image 2 is obtained by capturing a face image 1 by a camera such as a webcam, and the face image 1 may be a static or dynamic image, or by selecting and uploading a static or dynamic image by users, and the rotation angles of the face image 1 detected by the face angle estimation method are saved one by one to form the replaced image 2.
S006: Define a target replacing region 21 in the replaced image 2 to assure the replacement of the replacing portion by the replaced image 2, wherein the region to be replaced is a surface region formed by the vertices P1, P2, P3, P4. In a preferred embodiment, a center point C is obtained respectively between two adjacent vertices P1, P2, P3, P4, and the center point C is shifted towards the exterior of the quadrilateral, and an arc is used for connecting the vertices and the center point to form a target replacing region 21. In order to provide a natural look of the replaced image 2, the arc is a parabola, and the surface region is preferably in the shape of a convex hull. In FIG. 6, a first leftmost point P5 and a first rightmost point P6 are obtained from a top edge of the eye region 12, such that the first leftmost point P5 and the first rightmost point P6 are higher than the vertices P1, P2 of the original corner of eye, and a second leftmost point P7 and a second rightmost point P8 are obtained from the bottom edge of the mouth region 14 such that the second leftmost point P7 and the second rightmost point P8 are lower than the vertices P3, P4 of the original corner of mouth, and a center point C is obtained from two adjacent points between the first leftmost point P5, the first rightmost point P6, the second leftmost point P7 and the second rightmost point P8, and the center point C is shifted towards the exterior of the quadrilateral, and an arc is used for connecting the first leftmost point P5, the first rightmost point P6, the second leftmost point P7, the second rightmost point P8 and the center point C to form a closed surface region which is defined as the target replacing region 21.
With reference to FIG. 7 for a method for automatic video face replacement by using a 2D face image to estimate a 3D vector angle of the face image, and the method comprises the following steps:
S007: Capture a face image 1 through a camera such as webcam, and the face image 1 may be a static or dynamic image, or select and upload a static or dynamic face image 1 by users, and a rotation angle of the face image 1 is detected according to the method for estimating a 3D vector angle from a 2D face image.
S008: Define a region to be replaced 15 in the face image 1 as shown in FIG. 8, wherein the region to be replaced 15 is defined by the same method of defining the target replacing region 21 in the aforementioned step S006, and thus the method will not be repeated.
S009: Search the replaced image 2 with the rotation angle of the corresponding face image 1, so that the target replacing region 21 of one of replaced images 2 corresponding to the rotation angle of the face image 1 is pasted onto the region to be replaced 15.
S010: Since the sewing and processing portion of the face has been processed by adjusting the color and brightness of the source image, and processing the boundary between sewing portions of the image, the result must be adjusted after the replacement takes place, so as to give a more natural and coordinative image. However, the color and brightness of the region to be replaced 15 and the target replacing region 21 have a difference to a certain extent, so that it is necessary to adjust the color and brightness of the target replacing region 21 to provide a natural visual effect of the replaced image. Therefore, the statistics of the histograms of R channel, G channel and B channel in RGB color space of the region to be replaced 15 and the target replacing region 21 are taken and normalized into a probability (i), while avoiding a black region from affecting the computation result. In the computation process, 0 is not included in the range, and the probability is used for computing the expected values of the region to be replaced 15 and target replacing region 21 as shown in the following mathematical equation 2:




  
    
      
        E
        =
        
          
            ∑
            
              i
              =
              1
            
            n
          
          ⁢
          
            
          
          ⁢
          
            i
            ⁢
            
              
            
            ⁢
            
              p
              ⁡
              
                (
                i
                )
              
            
          
        
      
    
    
      
        [
        
          Mathematical
          ⁢
          
            
          
          ⁢
          Equation
          ⁢
          
            
          
          ⁢
          2
        
        ]
      
    
  




Therefore, zoom factors of the R channel, G channel and B channel between the region to be replaced 15 and the target replacing region 21 are computed, and the values of the R channel, G channel and B channel of the target replacing region 21 are computed according to the zoom factor as given in the following mathematical equation 3:

C′i=Ci*wi, i=1(B),2(G),3(R),  [Mathematical Equation 3]

S011: Although the color of the target replacing region 21 after being replaced may match the expected value of the color of the replaced region, yet there may be a slight difference of the color and brightness at the boundary. To compensate the color and bright difference, the transparency value of the pixels at the boundary of the target replacing region 21 or outside the boundary is set a higher value, and a decreasingly lower value at a position progressively moving towards the inside of an edge of the region to be replaced. The compensation can be represented as the e following mathematical equation 4.

Idst(x,y)=αIsrc(x,y)+(1−α)Itgt(x,y)  [Mathematical Equation 4]

Wherein, Idst(x,y) is an image of the region after compensation; Isrc(x,y) is an image of the target replacing region 21; Itgt(x,y) is an image of the region to be replaced 15, and a is the weight in the range [0,1], so that the image to be replaced 2 may be gradually layered and pasted on the region to be replaced 15 by an edge feathering method as shown in FIG. 10. As a result, a natural face image 1 is shown in the region to be replaced 15 after being replaced.
While we have shown and described the embodiment in accordance with the present invention, it should be clear to those skilled in the art that further embodiments may be made without departing from the scope of the present invention.

## Claims

1. A method for creating a face replacement database, comprising:
creating a face database for storing a plurality of replacement face images, each replacement face image having a rotation angle determined according to a method for estimating a 3-D vector angle from a 2-D face image, and
defining a target replacing region in each replacement face image,
wherein the method for estimating a 3-D vector angle from a 2-D face image includes:
creating a feature vector template including a feature vector model of a plurality of different rotation angles,
detecting a corner of each of two eyes and two corners of a mouth in a face image to be processed,
defining the corners of the eyes and the two corners of the mouth as respective vertices of a quadrilateral,
defining a sharp point displaced in an orthogonal direction relative to the quadrilateral plane,
converting the vertices into 3-D coordinates, wherein the sharp point and the vertices of the quadrilateral form a quadrangular pyramid,
computing four 3-D vectors, each 3-D vector extending from the sharp point to a respective one of the four vertices of the quadrilateral, wherein the coordinates of said 3-D vectors are 3-D coordinates, and wherein said 3-D vectors are computed to obtain a vector set,
matching the vector set with the feature vector model to obtain an angle which has the shortest distance between a feature vector model and the vector set, and
defining the obtained angle value as a rotation angle of the input face image.

2. The method for creating a face replacement database as claimed in claim 1, wherein the target replacing region is a surface region formed by the vertices of the quadrilateral.

3. The method for creating a face replacement database as claimed in claim 2, further comprising:
obtaining a center point between two adjacent vertices of the quadrilateral;
shifting the center point towards an exterior of the quadrilateral; and
connecting the vertices and the center point with an arc, the arc thereby defining a boundary of the surface region.

4. The method for creating a face replacement database as claimed in claim 3, wherein the arc is a parabola, and the surface region is in the shape of a convex hull.

5. The method for creating a face replacement database as claimed in claim 2, wherein:
the corners of the eyes are detected from first and second eye regions of the face image, respectively, and the corners of the mouth are detected from a mouth region of the face image,
a first leftmost point and a first rightmost point are obtained from top edges of the first and second eye regions, respectively, and a second leftmost point and a second rightmost point are obtained from a bottom edge of the mouth region,
a center point is obtained from two adjacent points between the first leftmost point, the first rightmost point, the second leftmost point, and the second rightmost point, the center point then being shifted towards the exterior of the quadrilateral, and
an arc connects the first leftmost point, the first rightmost point, the second leftmost point, the second rightmost point and the shifted center point, the arc thereby defining a boundary of the surface region.