基于 wechaty 的 AR+LBS 漂流瓶轻社交游戏

基于微信聊天的 结合增强现实技术(AR)+LBS(暂时基于图像)星际漂流瓶 的轻社交游戏。重新认识你身边的世界,或许我们早已与外星生命共同生活着。

A. 项目介绍

A.1 项目模块:

项目由下面的模块组成,每个模块都可以单独使用,也可组合使用,如:直接按需就调用图像生成外星人、外星生物、外星植物、外星建筑

简要 具体描述 项目中的代码及模型
1.基于 LSGAN 的外星生物生成,利用爬虫与 GAN 生成我们想要的东西的过程 请跳转到本页中的 C.1 Train.zip
2.快速调用PaddleSeg的cityscapes模型,进行18类常见物体的分割 请跳转到本页中的 C.2 CityscapesModule.py +PetModel文件夹
3.OpenCV的seamlessClone实现图像融合,呈现各种AR效果,遮挡关系等 请跳转到本页中的 C.3 alienPetModule.py
4.外星人换脸,外星人脸与地球人脸融合效果的优化 请跳转到本页中的 C.4 alienHeadModule.py
5.YUV颜色空间实现颜色图案迁移,基于CV技术生成外星植物 请跳转到本页中的 C.5 vegetateModule.py
6.PaddleHub的msgnet实现图像迁移,基于深度学习生成类流沙或沙画效果 请跳转到本页中的 C.6 sandModule.py + msgnet文件夹
7.Wechaty漂流瓶游戏,微信漂流瓶及通过开发者模式控制整个流程 请跳转到本页中的 D bot文件夹

4front

A.2 太空漂流信息

你可能收到来自一个未知星域发过来的漂流瓶,你也可以把你想抒发的情感发向星际中

  • 嗨,别来无恙啊,此刻的你是否有些孤独,别怕,此时此刻,在浩瀚宇宙中,总有与你相似的灵魂,你们或许来自不同的星球,有着不同的文明,但你们仍然可以通过太空漂流瓶去表达内心的情感,快来开启你的太空漂流瓶之旅吧。

  • 用户可以在加本官方微信好友后,向本官方微信发出包含文本与图片的漂流瓶。也可以主动接收漂流瓶。

  • 甚至,在一个你意想不到的时刻会收到想象之外的漂流瓶信息。发送与接收漂流瓶都可以提升等级噢!

A.3 增强现实技术(AR)+位置服务(LBS)的游戏

接收漂流瓶任务,或主动出击,寻找身边潜藏的外星人、外星生物(宠物)、外星植物、外星建筑

  • 基于微信聊天中的图片及文本聊天。通过文本接受到任务或主动触发。

  • 可能是让用户帮忙寻找它丢失的某个外星宠物(外星生物),或者帮它找到急需用于治疗的外星植物,也可能是让你帮忙找到正在被通缉的外星人囚犯。

A.4 体验视频:(建议全屏观看)

B. 故事背景

  • 地球并不只是人类的天下,其实有数万名外星人及其外星低等生物生活在我们当中,他们有的因为母星被毁有的因为星际战乱而选择到地球避难。

  • 银河星际移民局则管理并协调着他们在地球的生活。借助超高级科技,他们隐藏原来的外观,装扮成是普通地球人,我们根本分辨不出来,说不定,站在你旁边的就是一位外星友人。

  • 同时,他们也带来了外星的低等生物及外星植物,通过超科技把他们隐藏起来,装扮成地球物种或我们完全看不到。

    bg

C. 项目中的技术功能介绍

C.1 AI寻找你身边的外星生物

建立外星人图鉴,让我们看一下AI预测的外星人形象是怎样的

先看一下AI预测的外星生物矢量图:

pets

a. 训练素材
  • 从百度爬取“外星人”的图片,但因为外星人搜出来的图太杂乱。所以改变思路,用关键词“外星人 矢量”来进行搜索爬取。搜出来的外星人图片相对没那么杂乱。勉强可以用来训练。勉强是有1/5左右是白底,有1/5左右是PS中那种透明图的格子底图或水印的,有1/5是背景各种颜色的图,还有1/5是多个外星元素组成的图。大概数据见下图:

    pets2

b. 数据处理与增广
  • 尝试过用midars模型或CV来提取单个外星生物,但效果都不是很好。所以,最终只使用水平翻转,增加了一倍的数量。尽管可以爬取来增加这个数量,但越到后面,爬取的图片质量越差。所以还是通过水平翻转来处理。
c. 模型
  • 训练文件:见项目中 Train压缩包下 TrainAlienPet.ipynb

  • 模型文件:见项目中 Train压缩包下 generator0725.params

  • 搜索了一下GAN的模型,结合可训练性与生成效果,选择了LSGAN。基于项目aistudio上“独楼望天涯”大佬的项目 https://aistudio.baidu.com/aistudio/projectdetail/1936908进行修改。

  • 在其基础上,每个epoch执行更多的Generation,以及修改了超参数( 偶尔判别器loss高时,会有些完全不像的图)。

  • 训练过程:Epoch 0 ~ Epoch 999 的LOSS及效果见下面动图:

    loss

  • 具体训练项目地址见:

    Paddle2.0-通过LSGAN让我们看看AI预测的外星人长什么样子

  • 不足:

    1. 大概在200epochs就已经差不多,再训练到1000epochs反而效果还下降了。loss方面,判别器可以达到0.02,但生成器只能到0.8。这方面还可以优化

    2. 最终会有不少彩色的杂点

    3. 生成的外星生物矢量图有些还保留训练图的方格背景之类的。

    4. 生成的外星生物可能有部分过拟合,为有些很向原来的。

d. 后处理
  • 在叠加到现实图像中做AR效果时,使用cv处理优化这部分(具体见3-d中的描述)

  • 为外星生物配上背景介绍,定义他们出现的位置,建立外星生物图鉴

生物图鉴:AI生成的外星生物

tujian

C.2 识别现场环境——CityscapesModule.py

a. 模型

PaddleSeg 中基于cityscapes数据集的SOTA模型

PaddleSeg训练了一个在cityscapes数据集上SOTA的模型。却很低调,只是放在contrib中,仅有个英文的介绍。里面的介绍还主要针对训练的,如果只是想要体验SOTA的cityscapes的效果是怎样的却很麻烦。本项目中化简了相关的代码,一行代码体验cityscapes分割。效果真的对得起SOTA的!

b. 相关文件
c. 功能/作用

让AI能感知环境里有哪几样物品,同时可以定位到其在图片中的具体位置。具体识别的物品如下:

(PS:注意真实返回的ID是从0开始的,所以是trainId-1,如sky实际返回的id是10 not 11):

sheet

d. 使用
  • 运行CityscapesModule.py脚本,设置待处理图片的路径,将返回大小于原图片大小一样的二维数组pred,其取值是从0~18。

  • 可以拿这个二维数组作为mask,例如用np.where(mask == index, 1, 0)来截取自己感兴趣的区域,index取值为上表中实际返回ID ,也即 trainID -1

  • CityscapesModule.py中把pred ×10后保存成图片,见右下图(图片像素的灰度值从0~180)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值