本篇文章通过对高德地图的红绿灯倒计时提示,引发作者对此方案设计的猜测。作者以方案分析、功能梳理两个方面为主要论述内容,分析他对其的思考猜测,希望能对你有所帮助。
作为一个产品经理,尤其是有好奇心的产品经理,分析拆解已发布的产品功能是必不可少的事儿。
而最近对高德红绿灯预测的方案分析就是其中之一。
一、起因一天下午和我们的技术同学一同出差,路上在十字路口等着漫长的红灯读秒。而此时高德导航上也在显示红绿灯倒计时,第一反应是这个功能有意思且有用,解决因前方大车遮挡而看不到红绿灯的问题能提高通行效率(可以让司机提前准备驾驶,从抖音、朋友圈的娱乐中回到驾驶中)。
我在感叹这个功能不错同时,也在想它是如何实现。
而我们的技术同学强烈表示这是个硬件方案,要不咋能这么准确哪?
虽然在接下来的路口我们认真核对APP倒计时和灯杆上倒计时的差距,大概有2到3秒的误差。但是其仍认为是硬件的IOT方案,在保持没有深入思考就没有发言权的原则同时,我选择回来想想到底要如实现。
二、方案分析如果想知道是不是硬件IOT方案,首先要想:如果是这个方案,那么需要和谁合作?有什么成本?
通过以上看,硬件IOT的方案是理论上可行,但是成本太大,大概率不会是这个方案。
如果有硬件且需要多方协调的成本如此大,是否可以纯软件平台介入哪?比如直接拿各个地方交管平台的数据哪?
我理解这个也不行,除了数据安全的角度外,最大的一个悖论是:如果我拿到了交管平台的数据,我为啥不把所有路口的倒计时都做了哪?为啥只有一部分路口数据,而另一部分没有哪?
因为从交管平台的角度看,各个红路灯的倒计时数据是没有本质差别的。
而这个矛盾点的存在,证明现有的方案也不是交管平台接入。
如果既不是硬件也不是平台,还能是什么?大数据挖掘。这个方案的好处是:
我们分析完,发现最可能得是组织内部的纯软件方案, 那么结合一个case,我们尝试梳理下需要哪些数据,及如何实现。
我们以一个十字路口要识别直行的红灯、绿灯时长为例子来考虑。
基于如上的信息,先看司机是否在导航中,再看要识别的这个路口是否在用户当前的规划路线中。如果是,我们再看当前车辆在红绿灯前后的表现,也就是关注速度的变化。
当考虑如下图的一个十字路口时,我们先看不同车道的通行限制。其中只有中间车道可以直行,所以可以忽略后续左转和右转的车辆,仅仅看那些车辆从当前俯视图路口的左侧到达了右侧。
比如图中的轿车和跑车的行驶数据,而其中右转的皮卡则无需关注,因为他的数据对当前直行红绿灯时间判断几乎没有影响。
然后再看不同车辆在这个路口附近(附近这个概念可以是上一个路口到这个路口,或者限定多远的距离内,或者两者结合取最小值)速度的变化。
如果我们以当前路口为例,将一天内各个时段经过该路口的不同车辆速度都画在一个二维坐标系中,会是怎么样哪?
我们以三台车和一个红绿灯周期为例子还尝试画出来:
因为不同车辆在到达该红绿灯附近的速度不同,而且在该红绿灯前方停止的车辆数量不同,会导致其刹车时的加速度不同。也就是影响了曲线斜率(为了简单,假设加速度都是线性变化),同时会导致其停止的时间不同。
如果考虑这三辆车的速度变化,绿色停的最晚、起步也最晚;而红色停的最早,起步也最早。
大概率是红色排在第一,蓝色第二,绿色第三,而他们三个的停车时长所占用的是时间段,就是该红绿灯的红灯时段。
我们可以把这个例子再扩充下,考虑两辆车遇到红绿灯需要停车再起步,另一辆车遇到绿灯直接开过去的情况。
红车和绿车符合刚才说的规律,在其起步并且速度起来后的时段中,蓝色车以一定速度驶入,并且做了减速(过路口一般要减速),然后在提速。
那么可以看到在蓝色车的这个时间段内就是紧接着刚才红灯时段的绿灯时段,然后再会进入下一个红绿灯时段的循环。
再接着如上的例子,我们将右转扩展为右转加直行,那么这种情况会比刚才复杂。当直行红灯时,在最右侧车道上需直行的车辆依然会停车,从速度减为零,再从零起步这个过程与刚才类似。
但是如果此时是绿灯,一部分行人和电瓶车的直行导致右转车辆停车等待,而此时在右侧车道要直行的车辆,必然也需要等待。
如图中需要直行的蓝色车辆和需要右转的灰色车辆(用对应颜色线表示其即将走的轨迹),此时与已经直行的车辆数据要如何处理?
笔者大胆猜测,当有一定数量的直行数据时候,这部分为零的数据,可以不要。或者我们考虑使用该数据,但是需要如下思考:
上面所有信息都没有基于导航的地理位置数据来分析,如果考虑可以精确到车道级别的数据来分析,就回更加简单。
比如刚才右侧车道允许直行的例子就好处理,可以将所有右侧车道的数据单独处理,或者作为辅助判断即可,也可以用同一个时刻右转车辆的等待时间结合起来计算。
相对简单的办法就是用中间直行车道数据来计算,因为数据量足够大,所以暂时剔除一部分应该对预测准确性影响不大。
当一个简单情况分析后(类似我们学数学的特例),我们再扩展条件,比如上文提到的右转车道上允许直行。
在考虑这个扩展后,我们还可以考虑如下更多因素:
当模型已经有了一个版本,如何更新迭代?
此时建立一个数据模型循环飞轮即可。笔者认为该功能在最初上线前,除了通过原始数据中部分未参与模型训练数据进行模式测试,同时可结合实际线上的、实时的车辆行驶数据进行测试。
以上的分析都是站在厨房门外,闻着味道猜测做了什么菜、怎么做的菜。如果有读者知道菜谱,还望联系分享。
专栏作家
代成龙,人人都是产品经理专栏作家,智能硬件创业公司产品狗,从视频巨头公司到玩智能硬件的公司,继续产品设计工作。
本文原创发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于CC0协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved