用Python制作爆款视频,太绝了

前言

前几天小编在抖音上刷到一个慢慢变老的视频,播放量居然有 30W+,当时就在想这视频 Python 可不可以做?经过一番搜索,小编找到了

腾讯云的人脸年龄变化 API,上面介绍说只要用户上传一张人脸图片,基于人脸编辑与生成算法,就可以输出一张人脸变老或变年轻的图

片,并支持实现人脸不同年龄的变化。
在这里插入图片描述

准备工作

获取 API 秘钥

第一步,在注册账号之后,打开 API 密钥管理页面(https://console.cloud.tencent.com/cam/capi)获取到 SecretId 和 SecretKey。

在这里插入图片描述

第二步,安装腾讯云的 SDK

pip3 install tencentcloud-sdk-python

 

人脸属性

在人脸年龄变化 API 中有一个 AgeInfo 参数,它包含了 Age 和 FaceRect 两个属性,其中 FaceRect 属性必须填人脸在照片中基于左上角的

X、Y 坐标和人脸的高度与宽度。所以先要调用人脸检测与分析 API 得到这些数据。
在这里插入图片描述

下面的示例图是在百度图片中截取的。
在这里插入图片描述

Python学习交流Q群:906715085####
import json
import base64
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.iai.v20200303 import iai_client
from tencentcloud.iai.v20200303 import models as models03

sid = "xxx"
skey = "xxx"
try: 

    filepath = '/Users/imeng/Downloads/face/face.png'    
    file = open(filepath, "rb")    
    base64_data = base64.b64encode(file.read())
    
    cred = credential.Credential(sid, skey)     
    httpProfile = HttpProfile()    
    httpProfile.endpoint = "iai.tencentcloudapi.com"
    
    clientProfile = ClientProfile()    
    clientProfile.httpProfile = httpProfile    
    client = iai_client.IaiClient(cred, "ap-beijing", clientProfile) 
    
    req = models03.DetectFaceAttributesRequest()    
    params = {        
    "MaxFaceNum":2,       
    "Action":"DetectFace",       
     "Version":"2018-03-01",       
      "Image": base64_data.decode()  
        }    
       req.from_json_string(json.dumps(params))    
       resp = client.DetectFaceAttributes(req) 
       
    faceDetailInfos = resp.FaceDetailInfos    
    for faceDetailInfo in faceDetailInfos:        
    faceRect = faceDetailInfo.FaceRect        
    print(faceRect)
    except TencentCloudSDKException as err:     
    print(err)

 

示例结果

{"X": 62, "Y": 13, "Width": 145, "Height": 230}
{"X": 426, "Y": 113, "Width": 115, "Height": 139}

 

修改年龄

在上面已经得到了各个人脸的 X、Y、Width、Height 属性,加上变老的年龄 Age,就可以请求年龄变化 API 了。

这里需要注意的是 models 模块,人脸检测 models 模块是在 tencentcloud.iai.v20200303 包下,人脸年龄变化的 models 是在

tencentcloud.ft.v20200304 下,两个 models 模块并不兼容。

import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.ft.v20200304 import ft_client, models

cred = credential.Credential(sid, skey) 
httpProfile = HttpProfile()
httpProfile.endpoint = "ft.tencentcloudapi.com"
clientProfile.httpProfile = httpProfile
client = ft_client.FtClient(cred, "ap-beijing", clientProfile) 

req = models.ChangeAgePicRequest()
for age in range(70, 80):
params = {    
"Image": base64_data.decode(),    
"AgeInfos": [        
{            
"Age": age,            
"FaceRect": {                
"Y": faceDetailInfos[0].FaceRect.Y,                
"X": faceDetailInfos[0].FaceRect.X,               
 "Width": faceDetailInfos[0].FaceRect.Width,                
 "Height": faceDetailInfos[0].FaceRect.Height           
  }         
  },        
  {            
  "Age": age,            
  "FaceRect": {                
  "Y": faceDetailInfos[1].FaceRect.Y,               
  "X": faceDetailInfos[1].FaceRect.X,                
  "Width": faceDetailInfos[1].FaceRect.Width,                
  "Height": faceDetailInfos[1].FaceRect.Height            
  }        
   }    
   ],    
   "RspImgType": 
   "base64"
   }
   req.from_json_string(json.dumps(params))
   resp = client.ChangeAgePic(req) 
   image_base64 = resp.ResultImage
   image_data = base64.b64decode(image_base64)
   file_path = '/Users/imeng/Downloads/face/{}.png'.format(age)
   with open(file_path, 'wb') as f:    
   f.write(image_data)
   time.sleep(1)

 

示例结果
在这里插入图片描述

最后的视频可以将图片一张一张插入 PPT 幻灯片,点击保存为视频。呀!到这里就结束了,关注我看更多教程。今天的文章到这里就结束

了,喜欢的记得点赞收藏…
在这里插入图片描述

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用Python制作爆款视频,太绝了 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • Python爬取站长之家网页信息(附详细源码)

    一、实验目的 在信息时代高速发展的现在,“互联网+”的使用日趋zhanzhang过互联网学习知识,传递思想,沟通交流,在众多数据和用户的碰 撞中,互联网经济应运而生。学会利用网络收集信息是最基本的要求,接下来,我将以“行业网站”——站长之 家为例,通过Python爬取各个网站的信息(主要为名称、Alexa周排名、反链数等)来更直观、准确地分析其中各个网站在互…

    Python开发 2023年4月2日
    00
  • Python超好用的命令行界面实现工具,我保证你肯定不知道…

    前言 Click 是一个简洁好用的Python模块,它能用尽量少的代码实现漂亮的命令行界面。它不仅开箱即用、还能支持高度自定义的配 置。 官方文档:https://click.palletsprojects.com/en/8.0.x/   一个简单的示例如下: import click PYTHON插件/素材/源码加Q群:903971231#### @cli…

    Python开发 2023年4月2日
    00
  • Python实现秒杀某宝商品抢购(附超详细代码)

    前言 618过去了,前两天我干了一件惊天动地的大事,估计这件大事是很多小伙伴都想干的。我居然用python抢购淘宝商品,没想到 吧,最勇敢的还是我。关于抢购的思路以及代码,我将会在这篇文章中详细的介绍,感兴趣的可以往下看哟!!! 目录 1.项目环境 2.某宝抢购流程分析 3.程序实现思路 4.代码实践与梳理   标题项目环境 •操作系统:Windows 10…

    Python开发 2023年4月2日
    00
  • Python人脸识别签到考勤系统

    前言 本项目为IOT实验室人员签到考勤设计,系统实现功能: ◦人员人脸识别并完成签到/签退 ◦考勤时间计算 ◦保存考勤数据为CSV格式(Excel表格) PS:本系统2D人脸识别,节约了繁琐的人脸识别训练部分,简洁快捷 该项目为测试版,正式版会加入更多的功能,持续更新中… 测试版项目地址我会放到结尾 项目效果图 登陆界面 主界面展示图: 签到功能展示 签退功…

    Python开发 2023年4月2日
    00
  • 初学者也能边学边玩的6个Python小游戏,简直六翻了(含源码)

    前言 经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程?今天我想跟大家分享几个Python小游戏,教你如何通过边打游戏边学编程! 1、吃金币 没有人没玩过吃金币吧,但是用python来写一个吃金币小游戏还是十分有挑战的,写出来的小游戏不仅自己可以玩,还能顺带…

    Python开发 2023年4月2日
    00
  • Python 实现自动刷抖音,解放双手了

    前言 不知道有没有小伙伴跟我一样,每次刷抖音都不想动手,好希望能够有什么东西代替我的手指,我给它一个命令,它就明白我要什么。于 是,我利用空闲时间操作了一下,终于用Python把自动刷抖音给搞出来了,这下真的是解决了我长久以来的困扰… 工具准备 1.Python3.7.7 2.adb(Android debug bridge) 3.uiautomatorvi…

    Python开发 2023年4月2日
    00
  • Python—-异常处理、断言和路径处理,简单、清晰版

    1.路径处理 1.找模块:sys.path import sys print(sys.path)   – 1.理解 – 1.是python去查找包或模块 – 2.项目开始根目录,python内置的目录 – 3.虽然说python的安装目录下也可以存放我们写的模块,但是不建议(太多了,不大好找) – 4.如果以后你发现模块导入不了了 ,可以使用下sys.pat…

    Python开发 2023年4月2日
    00
  • Python 数据分析之双色球高频数据统计

    基础数据准备 基础数据是通过爬虫获取到。 以下是从第一期03年双色球开奖号到今天的所有数据整理,截止目前一共2549期,balls.txt 文件内容如下 Python 代码实现 分析数据特征和数据处理方式选择 python学习交流Q群:906715085### #导入Counter from collections import Counter def re…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部