vlambda博客
学习文章列表

耐能高级顾问史弋宇自述《芝加哥惊魂》:遭持枪劫车,靠“贪心算法”追回秒杀美国警察



故事的主人公——圣母大学计算机系终身副教授、博士生导师兼电子系终身副教授史弋宇博士,便是耐能的高级顾问。


耐能高级顾问史弋宇自述《芝加哥惊魂》:遭持枪劫车,靠“贪心算法”追回秒杀美国警察


史弋宇博士本科毕业于清华大学电子工程系,后在加州大学洛杉矶分校(UCLA)电子工程系获得博士学位。现任圣母大学计算机系副教授、博士生导师,并兼任电子系终身副教授,以及该校美国国家科学基金委员会新型可持续人工智能产学研究中心主任,他的研究方向主要是人工智能在嵌入式系统中的实现以及医疗领域的相关应用。


史弋宇博士同时担任耐能高级顾问,作为创新解决方案团队的核心成员,参与NPU芯片设计以及AI算法研发等工作。



点击阅读原文, 可阅读新智元的推送全文。


女儿一直嚷嚷着寒假要去个海岛度假以满足她扮演Moana公主的愿望,而我太太又因怀孕无法前往有寨卡病毒的地区(包括绝大部分加勒比海地区)。我盯着Google Map研究了好久,最终确定了 由芝加哥O’Hare经纽约前往百慕大的度假旅行。虽然最终并没有成行,但也算是丰富了人生阅历。


在此需要特别感谢我的朋友王XX,在警方完全无心破案且劫匪有枪的情况下,全程陪同我一大早在危险的芝加哥南郊追踪,锁定劫匪的住址,在劫匪驾车逃窜的情况下最终追回被劫车辆,全部重要证件和大部分财物(甚至还追回了一部分并不是我的赃物)。劫匪完全没有来得及清理车里的大量证物,让警方可以提取DNA和指纹。最后连警察们都被我们能够如此迅速解决此事而惊叹: “They shouldn’t have messed up with computer science professors!” 



加油站外观如图所示。


耐能高级顾问史弋宇自述《芝加哥惊魂》:遭持枪劫车,靠“贪心算法”追回秒杀美国警察


红圈处就是气泵所在地。我们当时停车的位置也和图中的黑色轿车几乎一致。当时加油站里的车并不少,而且也有些人在店里买东西,没有任何危险的征兆。


耐能高级顾问史弋宇自述《芝加哥惊魂》:遭持枪劫车,靠“贪心算法”追回秒杀美国警察


我下车后发现气泵其实非常简陋,需要投币4个quarter才能使用,而且并没有提供胎压读数。研究了半天后我决定去店里问问店员,其他人在车上等我。然而店员也是一脸懵逼: “Sorry I know nothing about cars.” 这时候我们在这里已经耽搁了大约十分钟,于是我决定换个加油站试试。上车后想起来似乎右前轮的气门帽并没有拧紧,打算下车拧紧。


但我刚下车,就有两个身材不高大约20来岁的黑人从后面的一辆车上下来并靠近,其中一个直接用一把枪指着我低声说“See the gun? Give me your wallet. Give me your key.” 并且反复重复,神情紧张。另一个则钻进了驾驶室让所有人下车。


考虑到车里还有孕妇和小孩,为了安全起见,我很配合地把钱包递给了他,他打开后从里面拿出了所有的现金。其实包里只有我准备去日本而换的三千日元,他也没有细看,我更加坚信他此刻神经非常紧张,所以非常配合(不知道为什么我倒是一点都不紧张)。他随后把钱包还给我,又让我赶紧把车钥匙给他。与此同时,车里的那个劫匪继续催促所有人下车。


我发现他并没有关上驾驶座的门,就趁此机会把我的手机扔到了门上的夹袋里,希望对后续追踪有所帮助。在大家都下车后,他们一溜烟地就把车开跑了,而我们所有的行李,包括我们的护照、绿卡等等,都还在后备箱里。


我们进到店里,我太太说她下车时顺手从车里拿了她的围巾,见到劫匪并没有什么意见,又顺手拿了她的手机。因为我的手机被我留在车里了,她的手机就成了我们的唯一通讯工具。我首先拨打911, 第一次大约等了十几秒并没有被接通。于是第二次再打,还是没有成功(所以关键时候911也不一定靠谱!) 第三次再打,终于通了。


911接线员:This is 911. What is your emergency?


我: I’m at a Shell gas station at Ruble St near I-94. My vehicle was hijacked by at least two men, one with a gun.


911接线员:What is your license plate number?


我告知我的plate number.


911接线员:Okay. Let me check your license plate number first. Uh, sorry, I cannot find it in the system.


我:Can you send some cops here first?


911接线员:I cannot find your license plate number sir. I cannot do anything. You will need to go to a local police station and file the report.


我已经无话可说。我被劫匪持枪抢了车,打911报警,居然还得自己去警察局做笔录,估计等我搞完,车都已经被chop shop大卸八块了。


于是我继续拨打911。这一次接线员好了一些,在我又一次描述了案情后帮我转到了Chicago Central Police Station. 他们的接线员又问了一遍情况,说这个你应该打给911啊。This is a true emergency and you should call 911 directly. 我都想骂人了,忍住气继续说我打了,但是他们把我转过来的。他们骂了几句娘后又帮我转回了911,这次接线员终于说We will dispatch police officers to assist you soon. 此时离抢劫发生已经过去了大约十分钟。


又等了大约十分钟,和我想象中大量警车闪着警灯蜂拥而至的场景不同,只来了一辆警车。车上下来了两个警察,仔细的询问了我案发的经过,包括有没有看清劫匪的长相,年龄等。我说你们能不能先帮我去追一下车子,这些信息我慢慢给你提供。他们说Don’t Worry Sir. Once we have all the information we need we will enter your plate info into the system and blast it so every police car will be aware of it. 


好吧,我就继续提供信息。大概十分钟后他终于问完了,给了我一个report number说一周后可以去警局拿report, 也可以提供给保险公司作为证明。直到这时,他们才终于开始通过电台通告车辆信息,离我的车被劫走已经过了整整半个小时。


通告完后,他们发现加油站里布满了监控摄像头,于是进到店里要看监控。这时店主接到店员报告已经赶了过了,先是一脸同情的慰问了我们,然后就和一个警察一起进去调监控。


但不一会儿那个警察就出来了,问另一个警察: I don’t know how to upload the video footage, do you? 很显然,另一个警察回答I don’t know either. 他们于是告诉我,没关系,会有侦探会来料理这个video footage, 我们的事情就办到这里啦,你需要一个ride吗?我说不用啦,我自己想办法回去吧(我相信他们肯定不会把我们五个人送回100英里以外的地方的)。于是他们打算开车离去。


刚上车又下来问我:Your Mazda CX-9 is two-door right?


我已经完全无语了……Sir, it’s a four-door SUV.


OMG. It’s an SUV? Fuck.


然后立刻冲回车里拿起对讲机说: It is not a small car. It’s a four-door SUV.


这时候离我的车被抢已经过去了四十多分钟。但我想起了一个关键问题,希望对他们的追踪有所帮助。


Sir, I left my phone in the car. Can you track it?


警察顿时一脸兴奋: Is it an iPhone? Do you have the tracking function on?


No, Sir. It’s a Huawei phone.


What phone?


Huawei. H-U-A-W-E-I


I’ve never heard of it. Can you track it?


Yes, but it will take time for me to do so. Can’t you just track my cell phone signal?


No. You are misled by movies. It’s impossible to track a phone through cellular signals.


我又想骂人了。不然Sprint's Family Locator and AT&T's FamilyMap 都是骗人的吗?明明三角追踪是很容易的。好吧,我说那让我试试我手机里安卓的追踪功能,之前怕找不到手机,这个功能我是一直开着的。




很快警察一脸无奈地走了。


We will call you when we find your car.


How long does it take?


I don’t know. Maybe tonight. Maybe tomorrow. Maybe in a couple of days. Maybe in a few months… Maybe…


I have all my travel documents including passports and green cards in the car.


Then I suggest you go ahead and get them replaced.


于是我们也只好一脸沮丧地打了个Uber回家。因为距离有100多英里,第一次司机接单后立刻取消了。第二次车倒是来了,但是个小车,我们生怕司机看到我们有五个人(而且还有个幼儿又没有安全座椅)而拒载。好在司机很热情地把我们顺利送回了家里。




那时我对找回被劫汽车已经不抱任何希望。就算是找回了,里面的包也不一定还在,更不用说包里的证件了。从我之前一位朋友的经历我已经知道在美国同时遗失护照和绿卡就意味着接下来至少8-13个月的时间没有办法离开美国。还有我电脑里大量的数据和文件,并不是所有的都有备份。绝望。



折腾了一天,回到家里很快我就睡觉了。故事本来也应该到此结束,但是我做了个梦,于是凌晨五点醒来时事情有了新的转机。


大概我太想把车找回来了,当天晚上我做了个梦,梦到我留在家里的那把车钥匙上有个远程遥控,摁一下车子就自己开回来了,而且所有行李都还在车上。来不及开心就醒了过来,看了看时间是凌晨五点。


在意识到这是个梦的同时,我也想到了一件事:当时在买车的时候,和dealer讨价还价了很久,到最后价格实在压不下来时,就让他们给免费装了一个Mazda Mobile Start (MMS),可以利用手机远程发动汽车引擎,给车辆上锁和开锁。其实装完后我们就没怎么用过这个功能,但没想到它最终成了我们能找回车子的关键。我的判断是既然能用手机远程控制车子,那在安装这个MMS的时候也一定启动了 GPS定位的功能。



尝试着在网上续租了一年的服务,然后就很顺利地登录进了App。不得不说,马自达的IT实在是太烂了。从软件工程角度来说,没有续租导致的无法登录居然显示密码错误,这是UI设计的反面典型。


只是这样也就算了,当我在App里找到CarFinder的界面,他的显示就是一个红点和一个大圈,红点代表车的位置,大圈代表车的位置,然后右上角有距离显示81.8英里和相对误差+/- 22 英尺。没有地图,没有提供GPS坐标。所以,我除了能知道我和车的直接距离和相对位置,别的什么都不知道(后来发现其实那个相对位置也只有距离车很近的时候才会比较准,距离远的时候完全可能是错的)。我顺便看了一下引擎的状态,是OFF的,说明车子被停在了某个地方。


耐能高级顾问史弋宇自述《芝加哥惊魂》:遭持枪劫车,靠“贪心算法”追回秒杀美国警察


不管怎么样,总算有车的线索了。我立刻打911,结果接线员说这事儿不紧急啊,你直接联系Chicago Central Police Station吧,我们不管。





我把驾驶任务交给了朋友,而我则开始在车上进行一些信息搜集和准备工作。首先大概搜索了一下,发现按照MMS提示的直线距离,大概目标位置会是在芝加哥的南郊,一个以暴乱和枪击闻名的地区。对方手里有枪,按照我当时目测的口径应该不超过9mm, 查下来大概有效射程是100米左右。 


这样的话,只要我们保持车辆始终在移动状态下,没有经过专业射击训练的枪手是很难击中车里的人的。而且我们只要始终警惕100米范围内是否有人靠近就可以了。查完这些我心里稍微安定了一些。


我发现MMS相对位置提示有问题是因为我们出发的时候它提示车子位于正北方,而芝加哥位于正西方,我判断劫匪肯定还把车留在芝加哥,因此决定忽略方位提示而直接前往芝加哥。结果上了高速就很明显看到直线距离在快速减小,说明我们的方向是正确的。


一路无话,在快到芝加哥南郊I-94 130th st出口时,距离减小到了2英里 。我们于是从该出口下去以后转了一圈,发现周围都是公园,而且距离也没有继续减小,于是又开回I-94, 继续前行,距离又开始减小,到了Roseland区域时,降到了1英里以下,但偏偏I-94在这里分叉了另一支高速 I-57 West, 我们又只好转到了I-57并在下一个出口 Halsted St下了高速。此时距离提示又增加到了2英里。


于是我们最终把车辆位置确定在了图中红色的区域里。


耐能高级顾问史弋宇自述《芝加哥惊魂》:遭持枪劫车,靠“贪心算法”追回秒杀美国警察


该区域的放大地图。


耐能高级顾问史弋宇自述《芝加哥惊魂》:遭持枪劫车,靠“贪心算法”追回秒杀美国警察



因为相对方位并不靠谱,我们选择了计算机算法中最直接的greedy approach,也就是沿着一个方向开,直到距离不再明显变小(这是说明我们前进的方向已经几乎垂直于我们和目标之间连线),就转到垂直方向的街道再继续搜寻。


就这样在一片破败的小区中兜了一段时间以后,终于在S Eberhart Ave在101st St和102nd St之间某个位置直接距离显示为200英尺, 说明我们离目标已经很近了。此时我朋友发现在路边有一辆非常新的豪车,和周围其他破败的建筑和车辆非常不协调,于是怀疑那辆车是不是也是被偷来或者抢来的。但奇怪的是,我们并没有在路边看到被抢的Mazda。在周围其他街道上时提示距离也大于200英尺。我们完全没有办法让距离进一步减小了。


耐能高级顾问史弋宇自述《芝加哥惊魂》:遭持枪劫车,靠“贪心算法”追回秒杀美国警察


Google Map显示的这一区域的卫星图。


耐能高级顾问史弋宇自述《芝加哥惊魂》:遭持枪劫车,靠“贪心算法”追回秒杀美国警察


转来转去,我们最后发现其实在S Vernon Ave和S Eberhart Ave之间还有一条小路,这条路并没有名字,在Google Map上甚至没有显示,但在上面这张卫星图里面可以看到这条路的存在(红色标记左侧的第一条路)。我们从101st St上转入了这条小路,入口是这样的。


耐能高级顾问史弋宇自述《芝加哥惊魂》:遭持枪劫车,靠“贪心算法”追回秒杀美国警察


当时时间大概是早上八点多一点,周围一个人都没有。我们保持缓慢的速度进入了小路。一进入就发现MMS里提示的距离又开始明显下降,直到我们开过倒数第三间车库的时候,车库门是关着的,但距离显示小于5英尺, MMS发出提示音,车子就在里面!



我们没有敢多停留,在转到102nd St上后,我立刻拨打911,告诉接线员我找到了被劫车辆。接线员问清了我的位置和我所在的车辆信息后,让我们在原地等待,警察很快会到。就在我们紧张的在路边等待的时候,我朋友提醒我说看看现在我们和被劫车辆的距离。我看了一下,大吃一惊。此时距离已经变成了1.5英里, 而且引擎已经启动,说明车辆正在行驶中。


我不知道是我们刚才惊动了他们,还是他们本来就打算离开,但前者的可能性更大。于是我们一边懊悔应该把车停到一个能看得到那个车库的位置,一边立刻决定我们要跟上。但不幸的是MMS并不是设计用来追踪行驶状态下的车辆的,因此他的位置和距离更新不是实时的。



我向他们简单描述了我们是如何寻找到被劫车辆的位置,并且告诉他们对方又跑了。警察从我手里借走了手机,让我们在路边等待,他们会去追踪。我告诉了他们如何使用MMS定位,并再三强调只能相信距离,不要去看相对位置。警察留了他的手机号给我,很快就开走了。我们决定还是继续在附近寻找,而不是在路边等待,一方面是碰碰运气,另一方面则是出于安全考虑,不想要停留在一个地方。




我拿回手机,更新一下状态,发现引擎已经处于了停止状态,说明车子又被停在了某个地方,距离显示是4.3英里. 于是我们又开始重复早上那套简单但行之有效的greedy search方案。很快,我们就在位于2801 W 87th St的Citgo加油站里看到了被劫车辆。车子就停在图中左边那辆白色汽车左边的位置,打着双闪,无法看清车内是否有人。


汲取之前的教训,这次我们把车也开进了加油站,停到了图里黑色汽车所在的位置,确保我们能看到被劫车辆,随后我再次拨打了911。这次我直接告诉接线员,我看到了被劫车辆,就在我不远处,车里好像有人,他们还有枪。


我知道不把情况说得严重一些,他们是不会认真严肃对待的。果然,这次过了不到五分钟,第一辆警车就到了。在随后的几分钟里,呼啦啦来了七八辆警车把加油站围了个水泄不通,下来的警察都穿着防弹背心,手放在腰间的枪上。一群警察小心翼翼的靠近那辆马自达,很快就确定了车里并没有人。


我于是也走了过去。打开后尾箱,发现里面有我的书包,装着单反和几个镜头的相机包,我太太的LV包,以及不知道是谁的一双崭新的Nike boots。我摸了摸我的书包,知道里面电脑还在。又赶紧看了一下前面的口袋,里面已经空空如也,我们的证件已经不见了。车里弥漫着一股大麻的味道,后座上还留了他们吃剩下的一些食物的袋子和可乐罐。外观上,驾驶侧两个车门严重变形,右前轮挡板脱落。在警察的告诫下,我没有再去碰其他任何东西。他们需要等到刑侦部门的人前来拍照取证。


几乎所有的警察都好奇我是如何找到这辆车的。于是我化身成为马自达代言人,一遍遍的宣传MMS功能的强大。他们感叹说every car should have that! 随后大家听说我是Notre Dame的计算机系教授后,又来了一轮感慨说They should not have messed up with computer science professors! 接着就把话题转到了NCAA football playoff ND惨败于Clemson上。但我完全没有心思和他们聊这个。


虽然找到了车,但我的心情很不好。其实我之前想过事情的三个可能结局。一,我没有找到车,当然也就找不到车里的任何东西。二,我找到了车,但我们的证件没了。三,我找到了车,但我们的证件还在。我最不想看到的就是第二个结局,因为如果车没找到,保险公司会全赔,我正好能换个新车。而如果车找到了,他们只会赔修车的费用,但是被劫持过有案底的车辆以后卖的时候会很麻烦。我们的证件没找到,等于就是我白忙了一场(或者说是帮保险公司忙乎了一场)。但当时的情况看起来恰恰就是第二个结局。


虽然劫匪在附近丢弃那些证件的可能性很小,我们还是把加油站里的垃圾桶都翻了一遍,但没有任何收获。看到现场没有劫匪,警车陆陆续续的开走了,只留了一辆陪我们等痕检和侦探到场。


大约一个多小时后,在我们又饿又困又冷累到了极点的时候,他们终于到了。痕检很熟练的开始在各个证物前面放上编号的小黄牌,开始咔咔的拍照。DNA和指纹提取也很快开始。但不久一个痕检就兴奋地朝我跑了过来,手里拿着一个蓝色的本子。We found your daughter’s passport! 总算有一个好消息了。随后很快他们又在车内的不同角落里找回了我和我太太的绿卡以及护照。


天知道我当时有多激动,和在场的每个警察都表达了感谢。大家都认为这是一个奇迹,因为在通常情况下劫匪应该随手把他们扔进垃圾桶而不是扔在车里。


等一切都结束后,警察提走了所有的物证,包括那双不属于我的boots,然后把车和剩下的物品换给了我。我打开书包,发现除了两台电脑,我的Bose耳机也完好无损,而且原本放在箱子里的ipad mini也被他们放在了书包里(虽然已经被关机了,说明他们其实还是有些常识的)。这么想来,我们的行李箱和里面的衣服显然已经被他们扔掉了。他们留下最值钱的东西放在车里,应该是准备去卖掉的 。但还没来得及销赃,又被我们给找到了。


我和侦探说了我找到了劫匪可能的住址,他们说他们会找时间去看一下。但最后他们应该还是没有抓到劫匪,因为按照他们的说法if we make any arrests we will notify you immediately。好吧,反正我作为受害人已经尽到了我的义务了,后面的事情也不是我能管的了的。



为了安全,我最后让拖车公司直接把车拖到了20英里以外芝加哥北部富人区的一个马自达修车店(他们最后拖错了地方还把我的唯一的钥匙锁在了车里,导致我又一次依靠MMS才解决了问题,不过这已经是另一个故事了)。