🍅0 寫在前面
👨?🎓 博主介紹:大家好,我是可可卷,很高興又和大家見面了~
??情景引入:最近剛加入了百度松果人才培養菁英班,直接被安利了一波百度大腦,用起來真是嚇了一跳,不用寫模型也能玩轉人工智能?
🔎仔細觀察:詳細了解了一番,發現功能還挺多,主要還是免費的,這不得開發下新用法?嘿嘿~

文章目錄
- 🍅0 寫在前面
- 🍅1 概念介紹
- 🍅2 效果展示
- 🍅3 使用方法
- 🍓3.1 注冊賬戶
- 🍓3.2 免費額度
- 🍓3.3 創建應用
- 🍓3.4 領取免費資源
- 🍓3.5 創建應用
- 🍓3.6 獲取key
- 🍓3.7 呼叫介面
- 🍓3.8 在線除錯API
- 🍓3.9 python呼叫
- 🍓3.10 獲取token
- 🍓3.11 查看圖片
- 🍅4 完整代碼
🍅1 概念介紹
人像動漫化 運用對抗生成網路技術,結合人臉檢測、頭發分割、人像分割等技術,為用戶量身定制千人千面的二次元動漫形象,并支持通過引數設定,生成戴口罩的二次元動漫人像
🍅2 效果展示
官方展示的效果~
我制作的效果~
是不是很傳神?
還有更神奇的!
貓貓變成了透明!
🍅3 使用方法
🍓3.1 注冊賬戶
打開百度開發平臺,直接注冊賬戶就可以
🍓3.2 免費額度
所有的API都會贈送一定免費額度,大家可以放心嘗試哦~
🍓3.3 創建應用
進入控制臺創建應用,選擇產品服務->影像增強與特效

🍓3.4 領取免費資源

領取成功后會在圓圈所示區域顯示剩余次數~
🍓3.5 創建應用
點擊創建應用,填寫應用名稱(任意),選擇需要的介面(比如 影像增強與特效–人像動漫化),選擇應用歸屬為個人,隨便寫一下應用描述

***
🍓3.6 獲取key
點擊左側應用串列,查看、保存API Key和Secret Key,后面會用到

🍓3.7 呼叫介面
請求示例
HTTP 方法:
POST請求URL:
https://aip.baidubce.com/rest/2.0/image-process/v1/style_transURL引數:
引數 值 access_token 通過API Key和Secret Key獲取的access_token,參考”Access Token獲取” Header如下:
引數 值 Content-Type application/x-www-form-urlencoded Body中放置請求引數,引數詳情如下:
請求引數
引數 是否必選 型別 可選值范圍 說明 image 和url二選一 string - base64編碼后大小不超過10M(參考:原圖大約為8M以內),最短邊至少10px,最長邊最大5000px,長寬比4:1以內,注意:圖片的base64編碼是不包含圖片頭的,如 (data:image/jpg;base64,)url 和image二選一 string - 圖片完整URL,URL長度不超過1024位元組,URL對應的圖片base64編碼后大小不超過10M(參考:原圖大約為8M以內),最短邊至少10px,最長邊最大5000px,長寬比4:1以內,支持jpg/png/bmp格式,當image欄位存在時url欄位失效, option true string cartoon pencil color_pencil warm wave lavender mononoke scream gothic cartoon:卡通畫風格 pencil:鉛筆風格 color_pencil:彩色鉛筆畫風格 warm:彩色糖塊油畫風格 wave:神奈川沖浪里油畫風格 lavender:薰衣草油畫風格 mononoke:奇異油畫風格 scream:吶喊油畫風格 gothic:哥特油畫風格
🍓3.8 在線除錯API
大家可以進入在線除錯介面,嫌麻煩的也可以跳過這一步,直接通過代碼除錯
🍓3.9 python呼叫
官方給出的代碼如下:
# encoding:utf-8
import requests
import base64
'''
人像動漫化
'''
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 二進制方式打開圖片檔案
f = open('[本地檔案]', 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
access_token = '[呼叫鑒權介面獲取的token]'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
print (response.json())
我們對其稍作修改
# encoding:utf-8
import requests
import base64
def image_process(img_name,client_id,client_secret):
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 二進制方式打開圖片檔案
f = open(img_name, 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
access_token = get_token(client_id,client_secret)
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
print (response.json())
return response.json()['image']
🍓3.10 獲取token
官方給出的token獲取方式:
# encoding:utf-8
import requests
# client_id 為官網獲取的AK, client_secret 為官網獲取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官網獲取的AK】&client_secret=【官網獲取的SK】'
response = requests.get(host)
if response:
print(response.json())
我們對其稍作修改
def get_token(client_id,client_secret):
# client_id 為官網獲取的AK, client_secret 為官網獲取的SK
host = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}'
response = requests.get(host)
if response:
print(response.json())
return response.json()['access_token']
else:
print('no response!')
然后,運行代碼就可以獲取處理后圖片的base64編碼啦~
# client_id 為官網獲取的AK, client_secret 為官網獲取的SK
client_id='xxx'
client_secret='xxx'
img_name='img_name.jpg'
img_base64=image_process(img_name,client_id,client_secret)
print(img_base64)
可以發現,官方已經給出了很詳細的代碼模板,我們真正需要改的部分也就只有
client_id='xxx'
client_secret='xxx'
兩行而已~
🍓3.11 查看圖片
獲取到編碼后,可以在瀏覽器輸入data:image/jpeg;[你的base64編碼,注意需要去掉中括號]查看圖片
或者使用下面的代碼將base64編碼轉換成圖片
def base2picture(img_base64,img_save):
imgdata = base64.b64decode(img_base64)
with open(img_save,'wb') as f:
f.write(imgdata)
img_save='img_save.jpg'
base2picture(img_base64,img_save)
🍅4 完整代碼
# encoding:utf-8
import requests
import base64
def image_process(img_name,client_id,client_secret):
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 二進制方式打開圖片檔案
f = open(img_name, 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
access_token = get_token(client_id,client_secret)
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
print (response.json())
return response.json()['image']
def get_token(client_id,client_secret):
# client_id 為官網獲取的AK, client_secret 為官網獲取的SK
host = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}'
response = requests.get(host)
if response:
print(response.json())
return response.json()['access_token']
else:
print('no response!')
def base2picture(img_base64,img_save):
imgdata = base64.b64decode(img_base64)
with open(img_save,'wb') as f:
f.write(imgdata)
if __name__=='__main__':
client_id='xxx'
client_secret='xxx'
img_name='1.jpg'
img_base64=image_process(img_name,client_id,client_secret)
print(img_base64)
# 或者在瀏覽器輸入 data:image/jpeg;[base64]
img_save='2.jpg'
base2picture(img_base64,img_save)
大家都學會了嗎? 快去試試吧~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/382888.html
標籤:python



