網上看到了一個教程,調用騰訊雲的人臉識別api和修改年齡api來實現模擬人物不同年齡的面貌
但是大多數教程的代碼都是想同的,估計是抄襲哪個人的關鍵是執行不了
剛好周傑倫馬上要發新專輯了,小改一下,拿傑倫的照,做個實驗咯
開始了
1、首先到騰訊雲上注冊賬號,打開 API 密鑰管理頁面(https://console.cloud.tencent.com/cam/capi)獲取到 SecretId 和 SecretKey,這串值要保存好,後面的腳本需要用上
2、然後創建資源,左上角雲產品入口,依次選擇“人臉識別”和“人臉變換”創建資源,現在的規則是每個賬號有1000個資源可以使用,而且創建資源後並不會馬上可用,所以這一步先做好。
創建完成後,在左側資源目錄下就可以看到當前資源情況
3、 安裝騰訊雲的 SDK,
pip3 install tencentcloud-sdk-python
4、接下來就是腳本,實現人臉變化需要先後調用“人臉識別”和“人臉變換”兩個api,原計劃是打算把兩個腳本合二為一,有空再折騰把。
首先是執行“人臉識別”步驟,獲取面部屬性值,直接上代碼了
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 = "xxxxx"#第一步獲取的SecretId
skey = "xxxxxx"#第一步獲取的SecretKey
try:
filepath = 'test.jpg'#需要變臉的圖片,最好是正面照
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、y等值
5,執行修改年齡的腳本,將上一步獲取的X、Y、Width等值填到腳本對應內容
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.ft.v20200304 import ft_client, models
import time sid = "xxxx"#第一步獲取的SecretId
skey = "xxxx"#第一步獲取的SecretKey cred = credential.Credential(sid, skey)
httpProfile = HttpProfile()
httpProfile.endpoint = "ft.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = ft_client.FtClient(cred, "ap-beijing", clientProfile) filepath = 'test.jpg'
file = open(filepath, "rb")
base64_data = base64.b64encode(file.read()) req = models.ChangeAgePicRequest()
for age in range(10, 80):#這裡設置年齡,比如(10,30)意味著生成10歲到79歲的圖片,一共71張
params = {
"Image": base64_data.decode(),
"AgeInfos": [{
"Age": age,
"FaceRect": {
"Y": 120, #注意第一個和第二個X、Y、Width、Height值都需要修改
"X": 198,
"Width": 150,
"Height": 201
}},
{
"Age": age,
"FaceRect": {
"Y": 120,
"X": 198,
"Width": 150,
"Height": 201
}}],
"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 = '{}.png'.format(age)
with open(file_path, 'wb') as f:
f.write(image_data)
time.sleep(1)
執行腳本,腳本同目錄下就會生成各年齡時期的圖片了,铛铛铛,後面就自由發揮了
注意文件目錄,當然,你會改腳本,可以不這麼存放,我省事
在上一張原圖把,致敬!!!!
目錄 python調用騰訊雲短信接口 賬號注冊 python中封裝騰訊雲短信接口 python調用騰訊雲短信接口 賬號注冊 去騰訊雲官網注冊一個騰訊雲賬號,通過實名認證 然後開通短信服務,創建短信應用 ...
最近項目有用到騰訊雲的身份識別接口,話不多說,直接上代碼: private void IDCardVerification(HttpContext context) { string imgStr = ...
//獲取時間戳 .net framework /* DateTime dt = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1 ...
一.寫在前面 最近做項目需要用到識別圖片中文字的功能,本來用的Tesseract這個寫的,不過效果不是很理想. 隨後上網搜了一下OCR接口,就准備使用騰訊雲.百度的OCR接口試一下效果.不過這個騰訊雲 ...
由於自己管理的雲服務器數量比較多,時不時需要更換IP,在管理台上一下下點擊,實在浪費時間,於是就想到了通過API調用的方式,將更換IP一系列動作,全部集成到Python代碼裡面,實現一行命令,完成IP ...
前言:本篇博客是筆者第一次使用百度雲api進行人臉檢測,主要內容包括兩部分,一是獲取接口,二是借助接口進行人臉檢測.筆者也是初步了解這方面的內容,也是參考了雜七雜八的博文,內容可能存在錯誤及其他毛病, ...
做項目需要上傳視頻,獲取時長,上傳教程很多,獲取信息很少,官方只有一條請求地址. 找了好久,都沒有說這個請求地址怎麼用.最後發現需要調用騰訊雲SDK 官方地址:https://github.com/Q ...
開門見山地說一下問題的原因:調用 web api 時請求頭中多了雙引號,請求體中少了雙引號. 騰訊雲提供的對象存儲(COS)C# SDK 是基於 .NET Framework 用 WebRequest ...
依賴: <!--騰訊短信依賴--> <dependency> <groupId>com.github.qcloudsms</groupId> <a ...
簡介 騰訊位置服務為微信小程序提供了基礎的標點能力.線和圓的繪制接口等地圖組件和位置展示.地圖選點等地圖API位置服務能力支持,使得開發者可以自由地實現自己的微信小程序產品. 在此基礎上,騰訊位置服務 ...
兩種解決方法: 1.右鍵點擊項目->Build Path->Add Libraries..->Server Runtime 選擇Apache Tomcat v8.0 2.右鍵點擊項目 ...
/*變量操作 (兩個變量之間的運算符需要用空格隔開,否則會報錯.)==,!= <,>,<=,>=+,-,*,/,% */ $width1:50px;$width2:100px; ...
0x00 標准模塊 Module : standardFull name : Standard moduleDescription : Basic commands (does not require ...
JSP(Java Server Pages) 什麼是JSP Java Server Pages(Java服務器端的頁面) 使用JSP:SP = HTML + Java代碼 + JSP自身的東西.執行J ...
Roadmap Motivation and Primal Problem Dual Problem Messages behind Soft-Margin SVM Model Selection S ...
1.vi /etc/apt/sources.list deb http://mirrors.aliyun.com/debian wheezy main contrib non-free deb-src ...
1. 修改 安裝目錄下 web.config的文件. 一般目錄為: C:\Program Files\GenerSoft\bscw_local\web.config 為了保證安全想把文件備份一下. 2 ...
I need a table to store all the working days. I dont like loop, so I tried sql. The following is the ...
一.如何選擇PHP5.3的VC9版本和VC6版本 VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本. VC9版本是使用 ...
ionic2: 1.創建項目: ionic start MyIonic2Project tutorial --v2 (下載 tutorial 模板來初始化項目) ionic start MyIonic ...