Video Face Swapping
Date
2020
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Face swapping is the challenge of replacing one or multiple faces in a target image with a
face from a source image, the source image conditions need to be transformed in order to
match the conditions in the target image (lighting and pose). A code for Image Face Swapping
(IFS) was refactored and used to perform face swapping in videos. The basic logic
behind Video Face Swapping (VFS) is the same as the one used for IFS since a video is just
a sequence of images (frames) stitched together to imitate movement. In order to achieve
VFS, the face(s) in an input image are detected, their facial landmarks key points are calculated
and assigned to their corresponding (X,Y) coordinates, subsequently the faces are
aligned using a procrustes analysis, next a mask is created for each image in order to determine
what parts of the source and target image need to be shown in the output, then the
source image shape has to warp onto the shape of the target image and for the output to look
as natural as possible, color correction is performed. Finally, the two masks are blended to
generate a new image output showing the face swap. The results were analysed and obstacles
of the VFS code were identified and optimization of the code was conducted.
In estonian: Näovahetusena mõistetakse käesolevalt lähtekujutiselt saadud ühe või mitme näo
asendamist sihtpildil. Lähtekujutise tingimusi peab transformeerima, et nad ühtiksid
sihtpildiga (valgus, asend). Pildi näovahetus (IFS, Image Face Swapping) koodi refaktoreeriti ja kasutati video
näovahetuseks. Video näovahetuse (Video Face Swapping, VFS) põhiline loogika on sama kui IFSi puhul,
kuna video on olemuselt ühendatud kujutiste järjestus, mis imiteerib liikumist. VFSi
saavutamiseks tuvastatakse nägu (näod) sisendkujutisel, arvutatakse näotuvastusalgoritmi
abil näojoonte koordinaadid, pärast mida joondatakse näod Procrustese meetodiga.
Järgnevalt luuakse igale kujutisele image-mask, määratlemaks, milliseid lähte- ja
sihtkujutise osi on vaja näidata väljundina; seejärel ühitatakse lähte- ja sihtkujutise kujud ja
võimalikult loomuliku tulemuse jaoks viiakse läbi värvikorrektsioon. Lõpuks hajutatakse
kaks maski uueks väljundkujutiseks, millel on näha näovahetuse tulemus.
Tulemusi analüüsiti ja tuvastati VFS koodi takistused ning seejärel optimeeriti koodi.
Description
Keywords
Computer vision, Video Face Swapping, Face Detection, Digital Image Processing, arvuti nägemine, video näovahetus, näotuvastus, digitaalne pilditöötlus