天猫双11狂欢夜上阿里云人工智能ET能猜中观众手上扑克牌的原理是什么?

jason云计算从业者

谢邀

昨晚看这个魔术的时候很是惊艳,电视机前的我下巴都要掉下来了,隔空猜物,花色、点数全中,怎么可能!一定有阴谋!

如果不是查询了一些数学类的相关文章,还真的差点被这个ET给忽悠了,那我就揣着明白装下柯南吧。

天猫双11狂欢夜上阿里云人工智能ET能猜中观众手上扑克牌的原理是什么?

其实仔细看完全程的小伙伴会发现两个疑点,一个是五名观众是依次抽取扑克牌的,而不是随机抽取;另一个是ET要求黑牌的人转身。

作为一个学渣,ET将黑牌和红牌之间做了区分,让我一下子就想到了二进制,网上一搜,果然,这个魔术就是利用了语音识别、图像识别等人工智能技术给大家变的一个“障眼法”。

网上视频出来了,且听我慢慢道来。

首先是ET出场,画面很炫,然后就切换成了左右对称的界面。右侧的窗口一直在扫描镜头,这应该是在做人脸识别,识别出主持人华少,并激活了语音识别模块。

天猫双11狂欢夜上阿里云人工智能ET能猜中观众手上扑克牌的原理是什么?

果然,华少问一句,ET答一句,触发的关键词就是“聪明的ET”。

天猫双11狂欢夜上阿里云人工智能ET能猜中观众手上扑克牌的原理是什么?

大家可能注意到了,在屏幕的下方,有一个“实时语音识别”,随着华少的口播实时将字幕打在屏幕上,虽然有个把错误,但准确率很高,以华少的语速,几乎做到了神同步,跟科大讯飞有的一拼。

天猫双11狂欢夜上阿里云人工智能ET能猜中观众手上扑克牌的原理是什么?

当主持人请ET开始变魔术的时候,请了台下5位观众,这5位一定是任意的,为什么这么说?因为这个魔术根本用不上托,无论是谁上去,ET都会百分之百答对,至于理由,先卖个关子。

天猫双11狂欢夜上阿里云人工智能ET能猜中观众手上扑克牌的原理是什么?

接着,华少和黄子佼开始让观众切牌,以示没有做手脚,然后又让观众依次抽取了5张牌,这时,ET已经对5位观众进行了面部识别。

天猫双11狂欢夜上阿里云人工智能ET能猜中观众手上扑克牌的原理是什么?

扫完观众后,ET和华少balabala说了一堆,说什么已经算出来了,其实都是转移视线的,当ET要求拿黑牌的观众转身时,注意,这里就是关键,其实这个时候ET才算出来5张牌分别是什么。

天猫双11狂欢夜上阿里云人工智能ET能猜中观众手上扑克牌的原理是什么?

刚才我说看了一篇数学文章才知道这个魔术的秘密,好了,关子也卖够了,就公布答案吧。它就是De Bruijn 序列,这个序列的原理很复杂,但效果很简单,就是从这样的序列中任意取出相邻n个数,它们的二进制排列一定不相同,这就意味着只要黑牌和红牌的排序出来,就只有一个唯一的解。ET需要做的就是识别出哪些人是转了身的(或者没转身)。

我在那篇文章里找到了这个图表,应该就是“魔术师”ET熟记于心的“易筋经”了吧——黑红如何排列,结果就是如何。

天猫双11狂欢夜上阿里云人工智能ET能猜中观众手上扑克牌的原理是什么?

估计阿里云就是找的这个图,也没修改,前面四张黑牌就是二进制的00001,查到表格里是

再看看官方公布的图

天猫双11狂欢夜上阿里云人工智能ET能猜中观众手上扑克牌的原理是什么?

100%准确,就是这么自信!

怎么样?是不是觉得太简单了?魔术就是这样,告诉你答案后,你就会觉得这个魔术一文不值,就跟看完《致命魔术》一样。

天猫双11狂欢夜上阿里云人工智能ET能猜中观众手上扑克牌的原理是什么?

但其实这个魔术真不简单,如果是人来变,那么他要记住至少32种排序。这些顺序对计算机来说根本不在话下,但要让计算机知晓谁是黑牌,是谁红牌,那就需要阿里云的工程师耗费众多心血才能有今天的效果。

阿里云想要传达的一定不是在全国观众面前作秀,而是一次全面展示人工智能的机会,现在想想,这个点子真是绝了。细数下来,这场show里出现了语音识别、语音合成、自然语言理解、语音互动、图像识别、人脸识别等场景,基本涵盖了当下人工智能的大部分应用。

没记错的话,阿里云ET应该是第一个在电视直播的条件下能展现如此全面的人工智能应用,而且成功率如此之高(虽然语音识别有些小瑕疵,考虑到现场声音吵杂,也可以接受)

这几年云计算发展迅速,对人工智能的发展推动也很快。人工智能的基础是机器学习,经过云搭建的深度神经网络等机器学习技术有望在很短的时间内就超过过去十几年的积累。

之前看到有文章说,阿里云的语音识别团队组建才1年多,识别率已经跟科大讯飞差不多了,要知道科大讯飞可是干了20年啊。

不过,阿里云在国内也算是人工智能的先驱了,而且是实干派的,随便搜了下新闻:

这个ET还真是多才多艺,作为老百姓,我希望ET能实现更多功能,作为创业者,我对马爸爸走的这步棋真是佩服得五体投地。

——————————分割线————————————————————

有人问5张连续的牌是怎么出来的。

在这个魔术里,这副牌只有1到8,而是按顺序排列好的,如下:

梅花8,梅花A,梅花2,梅花4,黑桃A,方片2,梅花5,黑桃3,方片6,黑桃4,红桃A,方片3,梅花7,黑桃7,红桃7,红桃6,红桃4,红桃8,方片A,梅花3,梅花6,黑桃5,红桃3,方片7,黑桃6,红桃5,红桃2,方片5,黑桃2,方片4,黑桃8,方片8。

这样排列的话,不管怎么切牌,都可以保证任意抽出五张连续的牌,其中黑色和红色的排列顺序一定是唯一的。

大家可以自己拿一副牌试试。

其实,对于同样的32张牌,De Bruijn 序列自然不是唯一的,可以有很多种排列方法,不同的排列方法也对应着不同的“解密表格”。De Bruijn 序列长度也可以更长,随之变大的是每次需要取出相邻牌的个数(n)。对于不同数量的观众,可以准备不同数量的牌,5个人是比较适中的而已。

编辑文章
到公众号