网站建设及推广外包,网站反链一般怎么做,甘肃兰州海拔多少米,中信建设投资发展有限责任公司目录 1、作者介绍2、基本概念2.1 人工智能云服务与百度智能云2.2 图像风格转换 3、调用百度API实现图像风格转换3.1 配置百度智能云平台3.2 环境配置3.3 完整代码实现3.4 效果展示3.5 问题与分析 1、作者介绍
张元帮#xff0c;男#xff0c;西安工程大学电子信息学院#… 目录 1、作者介绍2、基本概念2.1 人工智能云服务与百度智能云2.2 图像风格转换 3、调用百度API实现图像风格转换3.1 配置百度智能云平台3.2 环境配置3.3 完整代码实现3.4 效果展示3.5 问题与分析 1、作者介绍
张元帮男西安工程大学电子信息学院2022级研究生 研究方向语音信号处理 电子邮件2899460070qq.com
陈梦丹女西安工程大学电子信息学院2022级硕士研究生张宏伟人工智能课题组 研究方向机器视觉与人工智能 电子邮件1169738496qq.com
2、基本概念
2.1 人工智能云服务与百度智能云
人工智能云服务是一种基于云计算、虚拟化和分布式处理技术的在线服务提供了各种人工智能相关的功能包括自然语言处理(NLP)、图像识别、声音识别、机器学习、深度学习等。人工智能云服务通过API的方式对外提供接口用户可以通过调用这些API来使用相应的人工智能功能而无需在本地搭建和维护复杂的人工智能系统可以简化开发流程缩短研发时间并且具有良好的可扩展性和兼容性。目前市面上存在多种人工智能云服务提供商例如百度、阿里、腾讯、华为等。百度智能云是百度提供的一系列云端API接口其中就包括人工智能云服务可以用于实现文本分析、图像识别、语音识别和自然语言处理等各种应用场景。
2.2 图像风格转换
图像风格转换是一种利用深度学习和神经网络模型来实现图片风格转换的技术。该技术可以将一张图片按照指定的艺术风格进行重构使得原图片的内容保留不变同时又呈现出了与所选艺术风格相似的视觉效果。 通俗地说就是将一张照片做成另一个不同风格的照片。例如将一张普通的花卉照片以著名画作《向日葵》的风格呈现出来。这种技术常常被应用于数字艺术、电影制作、游戏动画等领域。
其中百度智能云的API支持将图像转化成卡通画、铅笔画、彩色铅笔画或者哥特油画、彩色糖块油画、呐喊油画、神奈川冲浪里油画、奇异油画、薰衣草油画等共计9种风格。下面演示如何使用百度智能云的API接口实现图像风格转换。
3、调用百度API实现图像风格转换
3.1 配置百度智能云平台
注册并登录百度智能云账号进入下图界面选择右上角“控制台”模块 选择“产品服务”中“人工智能”模块的“图像增强与特效”项目 点击领取免费的接口资源实名认证后可获取
选择全部可领接口然后点击0元领取这里已经领取不能再领 在 “应用列表” 中点击 “创建应用”免费创建图像风格转换模块 创建成功的应用模块如下从中可以获取个人应用模块的**API Key和Secret Key**
3.2 环境配置
代码使用python3运行导入的模块有Requests、base64、json、PIL、io、os。在运行代码前需要检查运行环境是否齐全。以下是对这些导入模块的介绍
Requests是Python编程语言第三方库用于发送 HTTP 请求和处理响应。它是一个常用的Python HTTP客户端库可以发送HTTP/1.1请求包括GET、POST、PUT、DELETE等请求方法。base64库是Python标准库之一提供了一些用于将二进制数据比如图片、音频、视频文件等转换为 ASCII 字符集中可打印字符的编码方法以便在网络中传输或存储。Json库是Python语言自带的标准库之一用于将Python对象如列表、字典等转换为JSON格式的字符串以及将JSON格式的字符串转换为Python对象。PILPython Imaging Library是Python编程语言中一个常用的图像处理库。这个库通过内置的图片格式扩展模块及自带的工具可以对常见的图像文件进行读写并进行多种基本的图像处理操作。Python标准库中的io库提供了一个通用的Python I/O体系结构可以轻松地访问各种类型的文件文本文件、二进制文件、管道和套接字等并统一这些不同文件类型的输入输出操作。os库是Python标准库提供的操作系统接口库它封装了大量实用的函数来和操作系统交互。通过该库我们可以实现一些常见的文件和目录相关的操作、操作系统平台相关功能的调用、进程相关操作等等。
3.3 完整代码实现
在代码的指定位置填入API_Key、Secret_Key、图片位置、风格然后运行代码。其中可选风格如下
cartoon卡通画风格pencil铅笔风格color_pencil彩色铅笔画风格warm彩色糖块油画风格wave神奈川冲浪里油画风格lavender薰衣草油画风格mononoke奇异油画风格scream呐喊油画风格gothic哥特油画风格
代码实现
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_Keyimg_locationpicture.png #图片放置位置
stylewarm #图片风格
###############################################class BaiduImgStyleConv:def __init__(self, API_Key, Secret_Key,request_url,headers):self.req_url request_urlself.AKAPI_Keyself.SKSecret_Keyself.headersheadersdef 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):该方法实现获得Tokenhost https://aip.baidubce.com/oauth/2.0/token?grant_typeclient_credentialsclient_id self.AK client_secret self.SKresponse requests.get(host, headersself.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_tokenresponse requests.post(request_url, dataself.params, headersself.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]) .jpgpil_image.save(output_filename, JPEG)print(转换后的图片已保存在,os.getcwd()\\output_filename)else:print(错误解析返回数据时出现问题)if __name____main__:#实例化对象img_convBaiduImgStyleConv(API_KeyAPI_Key,Secret_KeySecret_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_locationimg_location,stylestyle)#得到转换后的图片img_conv.get_convImg()3.4 效果展示
下图为原图经不同风格卡通、铅笔、呐喊转换后的效果图
3.5 问题与分析
已对部分常见报错在代码中进行了解释根据要求检查即可。弹出“token获取出现问题……”这一般是因为百度智能云没设置好或者key填错了导致的如果确定两个key没有填错务必检查API调用的余量。