目录

  • 1、作者介绍
  • 2、基本概念
    • 2.1 人工智能云服务与百度智能云
    • 2.2 图像风格转换
  • 3、调用百度API实现图像风格转换
    • 3.1 配置百度智能云平台
    • 3.2 环境配置
    • 3.3 完整代码实现
    • 3.4 效果展示
    • 3.5 问题与分析

1、作者介绍

张元帮,男,西安工程大学电子信息学院,2022级研究生
研究方向:语音信号处理
电子邮件:2899460070@qq.com

陈梦丹,女,西安工程大学电子信息学院,2022级硕士研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:1169738496@qq.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对象。
  • PIL(Python 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_location='picture.png'                      #图片放置位置
style="warm"                                    #图片风格
###############################################class BaiduImgStyleConv:def __init__(self, API_Key,  Secret_Key,request_url,headers):self.req_url = request_urlself.AK=API_Keyself.SK=Secret_Keyself.headers=headersdef 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.SKresponse = 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_tokenresponse = 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()

3.4 效果展示

下图为原图经不同风格(卡通、铅笔、呐喊)转换后的效果图:

3.5 问题与分析

  • 已对部分常见报错在代码中进行了解释,根据要求检查即可。
  • 弹出“token获取出现问题……”,这一般是因为百度智能云没设置好或者key填错了导致的,如果确定两个key没有填错,务必检查API调用的余量

调用百度API实现图像风格转换相关推荐

  1. Linux python PyQt5调用百度API实现图片文字转换

    系统:Linux Mint 18.3 xfce 64bit 参考链接:http://blog.csdn.net/u012236875/article/details/74726035 根据参考链接的代 ...

  2. SpringBoot项目调用百度API 实现文本与图像审核功能

    SpringBoot项目调用百度API 实现文本与图像审核功能 最近在开发一款微信小程序,其中具有发布帖子的功能,因此需要审核发布的文本与图像(不然开发的微信小程序过不了审).本来是调用微信小程序的A ...

  3. 调用百度API实现logo商标识别

    1.作者介绍 严松,男,西安工程大学电子信息学院,2022级研究生 研究方向:机器人抓取检测 电子邮件:2448052777@qq.com 2.百度API实现logo商标识别接口介绍 该请求用于检测和 ...

  4. (二)快速图像风格转换

    快速图像风格迁移是在"原始"图像风格迁移基础上的一种"高效"转换方案. [github传送门]https://github.com/hzy46/fast-neu ...

  5. Java调用百度API出现{status:211,message:APP SN校验失败}

    Java调用百度API出现{"status":211,"message":"APP SN校验失败"} {"status" ...

  6. python3调用百度API完成人脸识别,检测人种-年龄-性别-颜值-眼镜

    https://ai.baidu.com/docs#/Face-Detect/top 这个是百度人脸识别api 参考博客:https://blog.csdn.net/qq_38412868/artic ...

  7. 调用百度API,来实现人脸活体(人脸展示攻击)(人脸反欺骗)的实时检测

    目录 一.登录百度API网站,申请API接口 二.创建应用列表,查看API Key 与 Secret Key 三.应用API Key 与 Secret Key,将模型部署在本地环境中 四.以视频流的方 ...

  8. python通过调用百度api实现语音识别(超详细)

    python通过调用百度api实现语音识别(超详细) 2021.04.18:该文章是在18年,初学Python时写的,所以功能仅限于当时可用,至于现在(貌似依然可用)和以后就不确定了.完整的demo也 ...

  9. python aipspeech_Python调用百度API实现语音识别(二)

    咪哥杂谈 本篇阅读时间约为 5 分钟. 1 前言 上一篇文章里,大致介绍了百度官方 api 的一些前置准备工作. 想回顾的同学,可以看完本篇在下面找到历史链接. 今天就来上手实战编码,体验一下代码实现 ...

最新文章

  1. 【ACM】杭电OJ 2007
  2. 面试:说说你对“零拷贝”的理解?
  3. 前端学python有什么用-原来 Python 还有这些实用的功能和特点!
  4. cgo的几种使用方式
  5. optee应用程序中malloc函数的原理介绍
  6. Linux(四) 用户、用户组
  7. .NET Core跨平台:使用.NET Core开发一个初心源商城总括
  8. php搜索文件名,window_Windows7内置搜索如何同时搜索文件名与内容,  Win7的搜索功能效果非常强 - phpStudy...
  9. vue 实现压缩图片上传到oss
  10. [转载] python之flask框架
  11. 年薪最低十万签订协议
  12. unity 如何获取到屏幕中间_【Unity】屏幕空间位置变换到世界空间位置的方法
  13. 设计模式 ( 一 ) 单例模式
  14. C/C++回调方式系列之一 函数指针和函数回调模式
  15. 中心极限与大数定理律的关系_实数系基本定理(一)
  16. python基础练习题:查找首都【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
  17. css实现闪烁的灯,纯CSS实现的闪烁霓虹灯文本动画特效
  18. 看图写英语作文关于计算机,看图说话 英语作文图片上是一个小女孩看着电脑发呆,要求120字~...
  19. 数据库系统概论(第五版)王珊 自用复习笔记
  20. php岗位范文,PHP开发工程师岗位个人简历个人技能范文

热门文章

  1. Unity3d 集成 Android 系统打印功能
  2. unity应用开发实战案例_Unity开发实战游戏教学案例分享
  3. pythonrequests代理ip_python使用requests模块使用ip代理池
  4. Mariadb安装相关
  5. Arachni安全工具渗透漏扫检测
  6. PDF 破解软件注册码
  7. 鸿蒙能用linux许可证,【HarmonyOS HiSpark AI Camera试用连载 】Linux下的鸿蒙
  8. 零基础学习PHP编程——基本概念详解之域名解析与DNS缓存
  9. 200道网络安全常见面试题合集(附答案解析+配套资料)
  10. 萤幕不再输- iPhone 6 与各 Android 旗舰并排比 [图库]