[AI创造营]Wechaty实用小工具---证件照助手

简介: [AI创造营]Wechaty实用小工具---证件照助手

你是否苦恼于没有条件将证件照换背景色或是只有大头照。或是只有某种底色,要换其他底色,请使用它~那么请使用它~它就是你的证件照小助手(为了可玩性更高、所以不仅限于证件照)84237d2bd39329d99e51725b84b28747.png


话不多说

先搞个token再说

http://pad-local.com


1 配置服务器

我这里是搞了一台腾讯云的centos7.6的云服务器,其他也都一样的。

在终端中依次粘贴入下列命令即可:

(部分人可能自己搭建的有项目,8080端口存在被占用,随便换个808X端口就行了)

$ yum install docker
$ docker pull docker.io/wechaty/wechaty
$ export WECHATY_LOG="verbose"
$ export WECHATY_PUPPET="wechaty-puppet-wechat"
$ export WECHATY_PUPPET_SERVER_PORT="8080"
$ export WECHATY_TOKEN="puppet_padlocal_xxxxxx" # 这里输入你自己的token
$ docker run -ti --name wechaty_puppet_service_token_gateway --rm -e WECHATY_LOG -e WECHATY_PUPPET -e WECHATY_TOKEN -e WECHATY_PUPPET_SERVER_PORT -p "$WECHATY_PUPPET_SERVER_PORT:$WECHATY_PUPPET_SERVER_PORT" docker.io/wechaty/wechaty:latest


上述执行完成之后,在浏览器网址中输入你自己的地址:(换成自己的token)

https://api.chatie.io/v0/hosties/puppet_padlocal_xxxxxxxx

出现如下的字符即为成功!

{“host”:“xxx.xxx.xxx.xxx”,“ip”:“xxx.xxx.xxx.xx”,“port”:8080}

78adbdd18ec454c9450397c78801c3f0.png


2 登录二维码

在终端中出现如下的online链接,在浏览器中复制后打开,即可看到二维码,进行扫描登录即可!

6d26065f29451cbf6608b4655fdd8aa0.png


3 本地安装wechaty环境

aistudio无法开放端口,需要自行本地实现或者搭在服务器上

项目仅为部分核心代码

# 0.8.15版本不太好使 切勿踩坑
!pip install wechaty==0.8.11


4 项目功能实现

项目主题为证件照生成,但为了功能不那么单一,也提供了其他api的功能

如:情话、藏头诗、对联、天气查询


4.1 证件照生成

采用paddlehub的人脸识别和人像分割得到图片

再进行换底!

# 证件照生成函数
def makeZjz(img):
    pic_path = img
    face_landmark = hub.Module(name="face_landmark_localization")
    human_seg = hub.Module(name="deeplabv3p_xception65_humanseg")
    rate = 1.3
    thresh = 2
    # 人脸识别
    result = face_landmark.keypoint_detection(paths=[pic_path])
    face = np.array(result[0]['data'][0], dtype=np.int64)
    # 剪裁
    left = face[:, 0].min()
    right = face[:, 0].max()
    w = right - left
    cw = int((right + left) / 2)
    upper = face[:, 1].min()
    lower = face[:, 1].max()
    h = lower - upper
    ch = int((lower + upper) / 2)
    h = int(413 * w / 295)
    box = (cw - rate * w, ch - rate * h, cw + rate * w, ch + rate * h)
    img = Image.open(pic_path)
    img = img.crop(box)
    img = img.resize((295, 413), Image.ANTIALIAS)
    result = human_seg.segmentation(images=[cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR)],
                                    use_gpu=False,
                                    visualization=True,
                                    output_dir='humanseg_output')
    path = result[0]["save_path"]
    print("humanseg path:",path)
    # 上色
    for pic in ["red.png","blue.png","white.png"]:
        # 获取图片,方便后面的代码调用
        frame = Image.open(pic)
        # 给图片指定色彩显示格式
        logo = Image.open(path)
        logo = logo.convert("RGBA")
        frame.paste(logo, (0, 20), mask=logo)
        # 保存图片
        frame.save("result/final_"+pic)
        print("结果:result/final_"+pic)


4.2 情话 藏头诗 对联

# Paddlehub文本模型
text_model1 = hub.Module(name='ernie_gen_lover_words')     # 情话模型
text_model2 = hub.Module(name="ernie_gen_acrostic_poetry", line=4, word=7)   # 藏头诗模型
text_model3 = hub.Module(name="ernie_gen_couplet")   # 获取对联下句
def chat_bot(content, mode):
    res = ''
    if mode == '0':
        res = get_content(content)
        # print(res)
    elif mode == '1':# 清话
        res = text_model1.generate(texts=[content], use_gpu=False, beam_width=1)
        if res is None:
            return
        res = res[0][0]
        # print(res)
    elif mode == '2':#藏头诗
        res = text_model2.generate(texts=[content], use_gpu=False, beam_width=1)
        if res is None:
            return
        res = res[0][0]
    elif mode == '3':#对联
        res = text_model3.generate(texts=[content], use_gpu=False, beam_width=1)
        out = []
        res = res[0][0]
    return res


4.3 地域天气

# 获取城市天气
def get_weather_data(city_name):
    weatherJsonUrl = "http://wthrcdn.etouch.cn/weather_mini?city={}".format(city_name)  # 将链接定义为一个字符串
    response = requests.get(weatherJsonUrl)  # 获取并下载页面,其内容会保存在respons.text成员变量里面
    response.raise_for_status()  # 这句代码的意思如果请求失败的话就会抛出异常,请求正常就上面也不会做
    # 将json文件格式导入成python的格式
    weather_dict = json.loads(response.text)
    # print(weather_dict)
    if weather_dict['desc'] == 'invilad-citykey':
        weather_info = '请输入正确的城市名!'
    else:
        forecast = weather_dict.get('data').get('forecast')
        city = '城市:' + weather_dict.get('data').get('city') + '\n'
        date = '日期:' + forecast[0].get('date') + '\n'
        type = '天气:' + forecast[0].get('type') + '\n'
        wendu = '温度:' + weather_dict.get('data').get('wendu') + '℃ ' + '\n'
        high = '高温:' + forecast[0].get('high') + '\n'
        low = '低温:' + forecast[0].get('low') + '\n'
        ganmao = '感冒提示:' + weather_dict.get('data').get('ganmao') + '\n'
        fengxiang = '风向:' + forecast[0].get('fengxiang')
        weather_info = city + date + type + wendu + high + low + ganmao + fengxiang
    return weather_info


参考项目

不仅限于以下项目:

【AI创造营+七夕特辑】七夕孤寡机器人

一步一步教你用wechaty+百度云主机打造一个带你穿越星际的微信机器人


总结

本人: iterhui

致谢:

感谢团队成员的各类建议和合作配合

感谢参考项目的各位大佬帮助

感谢积极帮助解决问题的各路大佬

最后感谢主办方的机会和精良的活动~~~

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
8天前
|
人工智能 自然语言处理 API
Mathtutor on Groq:AI 数学辅导工具,实时计算并展示解题过程,支持通过语音提出数学问题
Mathtutor on Groq 是一款基于 Groq 架构的 AI 数学辅导工具,支持语音输入数学问题,实时计算并渲染解题过程,适用于代数、微积分等领域的学习和教学辅助。
39 5
Mathtutor on Groq:AI 数学辅导工具,实时计算并展示解题过程,支持通过语音提出数学问题
|
5天前
|
人工智能 移动开发 JavaScript
如何用uniapp打包桌面客户端exe包,vue或者uni项目如何打包桌面客户端之electron开发-优雅草央千澈以开源蜻蜓AI工具为例子演示完整教程-开源代码附上
如何用uniapp打包桌面客户端exe包,vue或者uni项目如何打包桌面客户端之electron开发-优雅草央千澈以开源蜻蜓AI工具为例子演示完整教程-开源代码附上
|
7天前
|
人工智能 前端开发 小程序
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
|
5天前
|
数据采集 人工智能 自然语言处理
FireCrawl:开源 AI 网络爬虫工具,自动爬取网站及子页面内容,预处理为结构化数据
FireCrawl 是一款开源的 AI 网络爬虫工具,专为处理动态网页内容、自动爬取网站及子页面而设计,支持多种数据提取和输出格式。
52 18
FireCrawl:开源 AI 网络爬虫工具,自动爬取网站及子页面内容,预处理为结构化数据
|
5天前
|
机器学习/深度学习 人工智能 编解码
VideoVAE+:AI 生成视频高保真重建和跨模态重建工具,基于文本信息指导视频重建,提升视频细节质量
VideoVAE+ 是香港科技大学推出的先进跨模态视频变分自编码器,通过时空分离压缩机制和文本指导,实现了高效视频压缩与精准重建。
33 7
VideoVAE+:AI 生成视频高保真重建和跨模态重建工具,基于文本信息指导视频重建,提升视频细节质量
|
7天前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
55 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
4天前
|
人工智能 自然语言处理 算法
打破AI信息差:2024年20款好用的人工智能工具大盘点
本文带你了解20款值得一试的AI工具,帮助你在内容创作、图像设计、音频视频编辑等领域提高效率、激发创意。
47 1
打破AI信息差:2024年20款好用的人工智能工具大盘点
|
7天前
|
存储 人工智能 自然语言处理
效率翻倍!2024免费AI流程图生成工具评测
2分钟了解有哪些好用的AI流程图生成工具。
45 4
效率翻倍!2024免费AI流程图生成工具评测
|
13天前
|
人工智能 自然语言处理 JavaScript
Univer:开源全栈 AI 办公工具,支持 Word、Excel、PPT 等文档处理和多人实时协作
Univer 是一款开源的 AI 办公工具,支持 Word、Excel 等文档处理的全栈解决方案。它具有强大的功能、高度的可扩展性和跨平台兼容性,适用于个人和企业用户,能够显著提高工作效率。
82 7
Univer:开源全栈 AI 办公工具,支持 Word、Excel、PPT 等文档处理和多人实时协作
|
11天前
|
人工智能 自然语言处理 搜索推荐
Open Notebook:开源 AI 笔记工具,支持多种文件格式,自动转播客和生成总结,集成搜索引擎等功能
Open Notebook 是一款开源的 AI 笔记工具,支持多格式笔记管理,并能自动将笔记转换为博客或播客,适用于学术研究、教育、企业知识管理等多个场景。
73 0
Open Notebook:开源 AI 笔记工具,支持多种文件格式,自动转播客和生成总结,集成搜索引擎等功能