用vs通过c++、opencv、dlib实现视频换脸效果

用vs通过c++、opencv、dlib实现视频换脸效果

用vs通过c++、opencv、dlib实现视频换脸效果

我们经常看见抖音里面有换脸的特效,那么怎么实现的呢,其实opencv及dlib提供一个开源的库,只要调用一下就ok了,脸部模型直接下载一下就ok了,上面两张图片是两个人的脸部视频,我们看处理完之后的效果。

用vs通过c++、opencv、dlib实现视频换脸效果

女主的脸换上了男主的脸,看上去有点猥琐,哈哈,但是女主的脸换到男主头上看上去有点小清新,好了,那么我们讲一下怎么通过代码实现吧。

核心的代码就是通过opencv获取视频数据进行模型识别,然后输出流

    small_frame = getMinFrame(frame, rect_ann, rect_bob);

    frame_size = cv::Size(small_frame.cols, small_frame.rows);

    getFacePoints(small_frame);

    getTransformationMatrices();

    mask_ann.create(frame_size, CV_8UC1);
    mask_bob.create(frame_size, CV_8UC1);
    getMasks();

    getWarppedMasks();

    refined_masks = getRefinedMasks();

    extractFaces();

    warpped_faces = getWarppedFaces();

    colorCorrectFaces();

    auto refined_mask_ann = refined_masks(big_rect_ann);
    auto refined_mask_bob = refined_masks(big_rect_...

点击查看剩余70%

{{collectdata}}

网友评论0