久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

太牛逼了!用 Python 實(shí)現(xiàn)抖音上的“人像動漫化”特效,,原來這么簡單!

 學(xué)外語做頭發(fā) 2020-07-14

前幾天,女友拉著我和她玩兒抖音,,就是這個人像動漫化的操作,頓時覺得很好玩兒,。我心想:python既然這么強(qiáng)大,,是不是也可以使用python程序來實(shí)現(xiàn)這樣一個操作呢?

哈哈,!我自己當(dāng)然是沒有這個本事編寫這樣一個牛逼的程序出來,,但是百度可以呀,并且還很好用,。百度AI開放平臺給我們提供了完整的接口,,甚至貼心的將代碼都給我們寫好了。這些接口還支持很多主流語言都呢,,像Java,、Python、PHP,、C#等,,我們做的就是直接調(diào)用它即可。效果怎么樣呢,?我們先來看看下方的對比圖吧,。

效果展示

原圖和動漫圖:

原圖和戴口罩的動漫圖:

那么這樣的動漫圖,究竟是怎么做出來的呢,?今天我就帶著大家一一探究一下,。

原理分析

這里首先給大家提供下面的一個網(wǎng)址,這就是百度AI開放平臺關(guān)于人像動漫化特效的網(wǎng)頁。http:///64FNvD

在這里我們可以上傳自己的圖片(如圖所示),,進(jìn)行人像動漫畫的操作,。

但是呢?這個并不是今天的重點(diǎn),,如果說我想要為動漫圖片帶口罩,,你就沒轍了吧。

在該頁面有一個重要的東西:軟件操作人像動漫化的接口(如圖所示),。從左邊可以看到,,這是一個Post請求,發(fā)送該請求的網(wǎng)址并不全,,需要你提供自己的access_token,。同時呢,發(fā)送Post請求不僅需要攜帶Headers,,還需要攜帶一個Params參數(shù),,其中Headers是固定的,image參數(shù)是圖片的Base64編碼格式,。該P(yáng)ost請求的返回值Response是一個字典,,我們這里先記住就行了。

除了上面所敘述的,,這個網(wǎng)址顯示的頁面中還有一個很重要的東西:人像動漫畫接口的API文檔(如圖所示),,該文檔可以幫助我們怎么寫代碼,百度夠貼心吧,。

API文檔網(wǎng)址http:///64FNZ9

從圖中可以看到,,這個API文檔中不僅有人像動漫畫的操作,還有黑白圖像上色,、圖像修復(fù)等一系列操作,,都是很好玩的。希望大家學(xué)習(xí)了本文以后,,能夠下去玩玩其他的操作,。

通過上述的原理分析:實(shí)現(xiàn)人像動漫畫操作,最終就轉(zhuǎn)化為發(fā)送一個Post請求,。而發(fā)送Post請求呢,,我們就需要獲取我們的access_token參數(shù)。

access_token參數(shù)的獲取

獲取access_token參數(shù),,需要使用百度的鑒權(quán)認(rèn)證機(jī)制,。下面就是鑒權(quán)認(rèn)證機(jī)制的網(wǎng)址,在該網(wǎng)頁上,,詳細(xì)介紹了我們怎么獲取自己的access_token參數(shù),。

鑒權(quán)認(rèn)證機(jī)制網(wǎng)址http:///6rUoTr

仔細(xì)查看本頁面上的文檔,,我們可以很容易的發(fā)現(xiàn):獲取access_token參數(shù),就是是發(fā)送一次Post請求,,該請求的返回值是一個字典,,里面有我們想要獲取的access_token參數(shù)。

https://aip./oauth/2.0/token?grant_type=client_credentials&client_id=【官網(wǎng)獲取的AK】&client_secret=【官網(wǎng)獲取的SK】

上面是這個Post請求的網(wǎng)址,,但是可以看到這個網(wǎng)址也是不全的,,它還需要我們在官網(wǎng)中獲取到自己的【官網(wǎng)獲取的AK】和【官網(wǎng)獲取的SK】,其中AK指的是API Key,,SK指的是Secret Key,。

通過上述分析:為了獲取access_token參數(shù),也是發(fā)送一個Post請求,,而發(fā)送Post請求,,就需要我們找到自己的API Key和Secret Key。

尋找API Key和Secret Key

首先登陸百度智能云的網(wǎng)址,。這個網(wǎng)址需要我們掃碼登陸,,我們按照提示進(jìn)行登陸即可。

百度智能云https://login.bce.baidu.com/

當(dāng)出現(xiàn)下面這個頁面,,我們完成圖中的操作,。

當(dāng)出現(xiàn)如下頁面,我們點(diǎn)擊應(yīng)用列表,。

可以看到,這里已經(jīng)有我創(chuàng)建好的兩個應(yīng)用,。如果你是第一次創(chuàng)建,,你這里什么也沒有,直接點(diǎn)擊創(chuàng)建應(yīng)用,。記住:這里就有我們想要的API Key和Secret Key。

當(dāng)出現(xiàn)如下界面,,完成如下的操作,。

創(chuàng)建成功后,直接查看應(yīng)用列表即可,,最終頁面如下,。

點(diǎn)擊展開后,我們可以查看某個API的使用次數(shù),。因?yàn)橛行〢PI接口并不是一直免費(fèi)的,,有效次數(shù)使用完了以后,需要付費(fèi)使用啦,。下圖也可以看到人像動漫畫操作大致也就500次的免費(fèi)使用次數(shù),。

代碼展示

1)單純的人像動漫化,不為人像戴口罩
import requests, base64
# 這個函數(shù)的操作是為了獲取access_token參數(shù)
def get_access_token():
    url = 'https://aip./oauth/2.0/token'
    data = {
        'grant_type''client_credentials',  # 固定值
        'client_id''3j8EWb6rgg..SPY2X693LBy',  # 在開放平臺注冊后所建應(yīng)用的API Key
        'client_secret''Px9KZuU0Gl...jTKktoCopnIWEiF57gf'  # 所建應(yīng)用的Secret Key
    }
    res = requests.post(url, data=data)
    res = res.json()
    #print(res)
    access_token = res['access_token']
    return access_token
    
# 下面的代碼就是API文檔中的代碼,直接搬過來使用即可,。
request_url = 'https://aip./rest/2.0/image-process/v1/selfie_anime'
f = open('zhao.jpg''rb')       # 二進(jìn)制方式打開圖片文件
img = base64.b64encode(f.read()) # 圖像轉(zhuǎn)為base64的格式,,這是百度API文檔中要求的

params = {'image':img}
access_token = '24.11731cd1f0...9f9b3a930f917f3681b.2592000.1596894747.282335-21221990'
request_url = request_url + '?access_token=' + get_access_token()
headers = {'content-type''application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
res = response.json()
# 前面我們講述了這個請求返回的是一個字典,其中一個鍵就是image,,代表的是處理后的圖像信息,。
# 將這個圖像信息寫入,得到最終的效果圖,。
if res:
    f = open('kouzhao4.jpg''wb')
    after_img = res['image']
    after_img = base64.b64decode(after_img)
    f.write(after_img)
    f.close()
2)人像動漫化,,并為人像戴口罩
import requests, base64
# 這個函數(shù)的操作是為了獲取access_token參數(shù)
def get_access_token():
    url = 'https://aip./oauth/2.0/token'
    data = {
        'grant_type''client_credentials',  # 固定值
        'client_id''3j8EWb6rgg...SPY2X693LBy',  # 在開放平臺注冊后所建應(yīng)用的API Key
        'client_secret''Px9KZuU0Gl...jTKktoCopnIWEiF57gf'  # 所建應(yīng)用的Secret Key
    }
    res = requests.post(url, data=data)
    res = res.json()
    #print(res)
    access_token = res['access_token']
    return access_token
    
request_url = 'https://aip./rest/2.0/image-process/v1/selfie_anime'
# 二進(jìn)制方式打開圖片文件
f = open('zhao.jpg''rb')
img = base64.b64encode(f.read())
# 注意:這里就是多了type參數(shù)和mask_id參數(shù),都是在源文檔中可以查看的參數(shù),。
# type的值為anime或者anime_mask,。前者生成二次元動漫圖,后者生成戴口罩的二次元動漫人像,。
# 1~8之間的整數(shù),,用于指定所使用的口罩的編碼。大家可以自行下去嘗試,。
params = {'image':img,'type':'anime_mask','mask_id':'2'}
access_token = '24.11731cd1f0...9f9b3a930f917f3681b.2592000.1596894747.282335-21221990'
request_url = request_url + '?access_token=' + get_access_token()
headers = {'content-type''application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
res = response.json()
# print(res)
if res:
    f = open('kouzhao5.jpg''wb')
    after_img = res['image']
    after_img = base64.b64decode(after_img)
    f.write(after_img)
    f.close()

??

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多