赞
踩
张元帮,男,西安工程大学电子信息学院,2022级研究生
研究方向:语音信号处理
电子邮件:2899460070@qq.com
陈梦丹,女,西安工程大学电子信息学院,2022级硕士研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:1169738496@qq.com
人工智能云服务是一种基于云计算、虚拟化和分布式处理技术的在线服务,提供了各种人工智能相关的功能,包括自然语言处理(NLP)、图像识别、声音识别、机器学习、深度学习等。人工智能云服务通过API的方式对外提供接口,用户可以通过调用这些API来使用相应的人工智能功能,而无需在本地搭建和维护复杂的人工智能系统,可以简化开发流程,缩短研发时间,并且具有良好的可扩展性和兼容性。目前,市面上存在多种人工智能云服务提供商,例如百度、阿里、腾讯、华为等。百度智能云是百度提供的一系列云端API接口,其中就包括人工智能云服务,可以用于实现文本分析、图像识别、语音识别和自然语言处理等各种应用场景。
图像风格转换是一种利用深度学习和神经网络模型来实现图片风格转换的技术。该技术可以将一张图片按照指定的艺术风格进行重构,使得原图片的内容保留不变,同时又呈现出了与所选艺术风格相似的视觉效果。
通俗地说,就是将一张照片做成另一个不同风格的照片。例如:将一张普通的花卉照片以著名画作《向日葵》的风格呈现出来。这种技术常常被应用于数字艺术、电影制作、游戏动画等领域。
其中,百度智能云的API支持将图像转化成卡通画、铅笔画、彩色铅笔画,或者哥特油画、彩色糖块油画、呐喊油画、神奈川冲浪里油画、奇异油画、薰衣草油画等共计9种风格。下面演示如何使用百度智能云的API接口实现图像风格转换。
注册并登录百度智能云账号进入下图界面,选择右上角“控制台”模块:
选择“产品服务”中“人工智能”模块的“图像增强与特效”项目:
点击领取免费的接口资源(实名认证后可获取):
选择全部可领接口,然后点击0元领取(这里已经领取,不能再领)
在 “应用列表” 中点击 “创建应用”,免费创建图像风格转换模块:
创建成功的应用模块如下,从中可以获取个人应用模块的**API Key和Secret Key**:
代码使用python3运行,导入的模块有Requests、base64、json、PIL、io、os。在运行代码前,需要检查运行环境是否齐全。以下是对这些导入模块的介绍:
在代码的指定位置填入API_Key、Secret_Key、图片位置、风格,然后运行代码。其中可选风格如下:
代码实现:
import requests import base64 import json from PIL import Image import io import os ###############修改这里,然后运行################## """ 可选图片风格: cartoon:卡通画风格 pencil:铅笔风格 color_pencil:彩色铅笔画风格 warm:彩色糖块油画风格 wave:神奈川冲浪里油画风格 lavender:薰衣草油画风格 mononoke:奇异油画风格 scream:呐喊油画风格 gothic:哥特油画风格 """ API_Key=' 你的API_Key ' #API_Key Secret_Key=' 你的Secret_Key ' #Secret_Key img_location='picture.png' #图片放置位置 style="warm" #图片风格 ############################################### class BaiduImgStyleConv: def __init__(self, API_Key, Secret_Key,request_url,headers): self.req_url = request_url self.AK=API_Key self.SK=Secret_Key self.headers=headers def set_para(self,img_location,style): ''' 该方法实现图片和风格设置 ''' try: f = open(img_location, 'rb') #尝试打开图片 except: print("错误:没有找到图片或者图片格式不支持,请检查图片路径")#无法打开图片 exit() img = base64.b64encode(f.read())# 二进制方式打开图片文件 if style in {'cartoon','pencil','color_pencil','warm','wave','lavender','mononoke','scream','gothic'}:#检测风格是否在列表中 self.params = {"image": img, "option": style} else: print("错误:图像风格不对,请检查拼写") exit() def get_accessToken(self): ''' 该方法实现获得Token`在这里插入代码片` ''' host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + self.AK + '&client_secret=' + self.SK response = requests.get(host, headers=self.headers) json_result = json.loads(response.text) try: print('token获取正常=',json_result['access_token']) return json_result['access_token'] except: print('token获取出现问题,这是错误原因:',json_result['error'], json_result['error_description']+'\n建议先检查百度智能云的图像风格转换应用是否可用,其次保证上面的API_Key和Secret_Key填写正确') exit() def get_convImg(self): ''' 该方法实现图像风格转换 ''' access_token = self.get_accessToken() request_url = self.req_url + "?access_token=" + access_token response = requests.post(request_url, data=self.params, headers=self.headers)#获取响应 if response: # 解码base64编码图片并保存为jpg格式 img_data = base64.b64decode(response.json()['image']) pil_image = Image.open(io.BytesIO(img_data)) pil_image.show() # 保存为jpg格式,并以log_id命名文件 output_filename = str(response.json()['log_id']) + ".jpg" pil_image.save(output_filename, "JPEG") print("转换后的图片已保存在",os.getcwd()+'\\'+output_filename) else: print('错误:解析返回数据时出现问题') if __name__=='__main__': #实例化对象 img_conv=BaiduImgStyleConv(API_Key=API_Key,Secret_Key=Secret_Key,request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/style_trans",headers={'content-type': 'application/x-www-form-urlencoded'}) #设置图片和风格 img_conv.set_para(img_location=img_location,style=style) #得到转换后的图片 img_conv.get_convImg()
下图为原图经不同风格(卡通、铅笔、呐喊)转换后的效果图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。