大家都知道,昨天支付宝上线了“AR实景红包”功能。但,对不起,它被我们不小心破解了。
支付宝“AR实景红包”一不小心就激发了全民藏红包、找红包的热情,虎嗅昨天也第一时间体验并进行了报道。
相信已经有无数的人体验过,包括但不限于把红包藏在别人的脸上甚至某些羞羞的地方,充分开发了智力和脑洞的同时,一片欢乐祥和的气氛,大家对支付宝这次做出的努力给予了比较正面的评价。不过……向来以脑洞大著称的虎嗅藏着一群不安分的家伙。这个周五晚上,虎嗅的一位漂亮设计师妹妹和一位英俊潇洒的工程师哥哥,用各自最擅长的方法成功发现了这个引发狂欢的AR红包的漏洞。先来一个通俗版。我们的设计师妹妹经常把同事各种很糗的动作搞成一个gif图丢到群里,当然,还包括把我们虎嗅编外员工“小武”——一直正在发情期的猫——制作成各种微信表情,在虎嗅的江湖里流传。做好了心理建设后,我们来看一下设计师妹妹是如何破解支付宝的“AR红包”的。通俗的描述就是:第一步,在“找红包”里随便点开一个人的红包,按住下方的“按住看线索”按钮,跳出图片信息后截屏;第二步,在PS里把此图复制一张,并把深灰色横条处理掉,再和原图错位拼在一起,就可以基本上还原图片了;第三步,打开支付宝,扫描这张被还原的图片就可以抢到红包啦。其实,这一系列操作可以生成一个“PS动作”,然后把你想抢的那个红包的图片往PS里放,用动作P图,简直秒速,简直比富士康流水线上的工人速度还快10倍。当然,经过亲测,能够被破解的红包图片还是有一些规律可循的。比如,如果红包图片拍的是人像或者动物等,成功率几乎百分之百,主要是这个图像里的物体须是不规则的。我们测试了一张橙子的照片就没能成功,它太规则了。我们的工程师哥哥刚才欣喜若狂地跑来跟我说:“我破解了支付宝红包,你想知道吗?”
1,用深度卷积网络CNN在ImageNet上训练一个Autoencoder,训练的模型可以用AlexNet的改装版:
a,需要一个Tensorflow环境或者Caffe环境;b,用一个3层卷积(Conv)、3层解卷积(Deconv)的网络进行端对端训练 ,用sigmoid交叉熵作loss;
2,按上面的方法先截个图,并把横条图颜色部分都置为0,然后将此图片作为卷积网络的输入部分;3,对卷积网络进行Forward,我们就可以拿到不带横条的原图。2,这些高清图先变为800 * 800像素的固定大小图;4,用256 * 256做输入,800 * 800做输出进行端对端训练(这里就是将低像素图片高清还原);5,再重复上面第2条和第3条,得到的输出就是不带横条的高清图。这种方法可以看做是我们的设计师妹妹用PS的方法抢红包的高配版。它的核心是,让机器经过训练后能够把被遮挡的部分还原出来,让机器拥有识图的感觉。并且利用这种方法还可以把低像素变成高像素,把原图高清化。这种方法几乎可以秒杀所有的红包。所以,地图上那些满大街的红包,理论上,只要你点开它就可以抢到,不管他是张三李四王二麻子。想跟支付宝说声对不起,虎嗅不小心发现了这个AR红包的后门。不过想来你们是有办法把它堵上的吧?顺带说一句,虎嗅技术团队已经在探索如何通过人工智能,进行更高效的信息处理与分发,给虎嗅用户带去更有效率与质量的体验。所以呢,此处自带招聘特效,有深度学习、自然语言处理相关技能与经验的同学,欢迎你们来虎嗅一起Hack人工智能吧,欢迎将简历投递到:[email protected]。