声明:以下内容仅为视频内容分析,不代表本人观点。本文谢绝一切形式转载。
更新于2021年5月9日2时
有人提到了误差啊,那我们就来分析一下,这里大概存在哪些误差。
首先,我对本计算为定性分析,而不是定量分析,因此,比例尺这种乘法传递的误差可以不考虑。
剩下的误差来源主要为5点
1.视频编码
视频编码会将视频分为关键帧和预测帧,其中关键帧和原始画面基本一致,而预测帧基于其它帧进行运算。但是,即使是预测帧,和原始画面也不会有根本性上的差异,尤其是这种变化较小的画面。
2.手机转录和原始画面上帧率差异产生的误差
这个确实是一个痛点,实际上,图2中0秒,0.2秒和0.7秒后对应的三处明显偏离的数据,就是三处出现帧率不同步的地方,具体可以看切分后画面。帧率不同步带来的误差通过通过平均滤波和拟合后可以一定程度上降低,但是无法消除。(弃用这几帧的数据后的结果见图1)
3.画面透视、镜头畸变产生的误差
参考下图中标注,标准差为1.382像素,考虑到手工标注,出现1到2像素的误差是完全可能的,此处可以考虑镜头畸变和透视没有可影响到结论的误差。
4.摄像头帧间时长抖动带来的误差
一般来说,这种监控画面的帧间时长的标准差都能控制在10ms,而帧间时长是40ms。除非出现出现极大值,否则抖动带来的误差可以基本通过平均滤波消除。
5.手动标注的误差
可以基本通过平均滤波消除。
综上,带来误差的主要是帧率同步,那么我们把这三个点的数据去掉,再进行计算和拟合。(由于是手工标注,多次数据间有差别)
RMSE=2.484kmph
更新于2021年5月8日16时3刻
很多人提到了镜头畸变的问题,于是我在图中标了几个点,计算了点之间的距离。考虑到手工取点的误差,以及道路轻微的弯曲,可以判断,镜头畸变的程度不影响分析。
更新于2021年5月8日15时
(由于是手工标注,多次数据间有差别)
结论(已失效,请见更新):
接下来是分析过程。
首先,我们需要知道时间参考,即视频的帧率。
从第43,44帧,和第67,68帧中可以看出,视频的帧率为24帧。
然后,我们需要知道空间上的参考,从某在线卫星地图上,我们能发现这两个点之间的距离大约为21米。又由于这条线和汽车轨迹大致平行,因此可以将其作为参考。
在视频中,这两个点的坐标为(101,122)和(216,211)
将像素每帧换算为千米每小时的话就是
因此,最后的程序里的换算系数就是12.477
接下去,首先将视频分割成单独帧
def video_to_pic(input_file,output_dir): cap = cv2.VideoCapture(input_file) cnt = 0 if(not os.path.exists(output_dir)): os.makedirs(output_dir) ret, frame = cap.read() while ret: cv2.imwrite(output_dir+"/{0:04d}.jpg".format(cnt), frame) ret, frame = cap.read() cnt += 1
然后通过SIFT特征匹配,将图片正则化,以碰撞的117帧为目标,从而可以计算距离
def pic_normalize(pic_file,target_file,out_file): pic1 = cv2.imread(target_file) pic2 = cv2.imread(pic_file) sift=cv2.xfeatures2d.SIFT_create() k1, d1 = sift.detectAndCompute(pic1, None) k2, d2 = sift.detectAndCompute(pic2, None) matcher = cv2.BFMatcher() mat = matcher.knnMatch(d1, d2, k=2) fmat = [] for m1, m2 in mat: if m1.distance < 0.8 * m2.distance: fmat.append((m1.trainIdx, m1.queryIdx)) km1 = np.float32([k1[i].pt for (t, i) in fmat]) km2 = np.float32([k2[i].pt for (i, t) in fmat]) H, t = cv2.findHomography(km2, km1, cv2.RANSAC,5.0) rst = cv2.warpPerspective(pic2, H, (pic2.shape[1], pic2.shape[0])) cv2.imwrite(out_file, rst) def normalize(begin_num,end_num,input_dir,output_dir): cnt = 0 if(not os.path.exists(output_dir)): os.makedirs(output_dir) for i in range(begin_num,end_num+1): pic_normalize( input_dir+"/{0:04d}.jpg".format(i), input_dir+"/{0:04d}.jpg".format(end_num), output_dir+"/{0:04d}.jpg".format(cnt) ) cnt += 1
(由于我不怎么会神经网络,这里是手动标定位置的)
然后标出每一帧中车辆的位置
def labelize(begin_num,end_num,input_dir,output_dir): global cnt if(not os.path.exists(output_dir)): os.makedirs(output_dir) rst=[] cnt=0 pic=cv2.imread(input_dir+"/{0:04d}.jpg".format(cnt)) def mouse_down(event, x, y, flags, param): global cnt if event == cv2.EVENT_LBUTTONDOWN: rst.append((x,y)) pic=cv2.imread(input_dir+"/{0:04d}.jpg".format(cnt)) cv2.circle(pic, rst[-1], 3, (0, 0, 255), thickness = -1) cv2.imwrite(output_dir+"/{0:04d}.jpg".format(cnt), pic) cnt+=1 if(cnt==end_num+1): cv2.destroyAllWindows() return pic=cv2.imread(input_dir+"/{0:04d}.jpg".format(cnt)) cv2.imshow("image", pic) cv2.namedWindow("image") cv2.setMouseCallback("image", mouse_down) cv2.imshow("image", pic) cv2.waitKey(0) return rst
最后计算速率曲线,并绘图
def calcAndPlot(rst,ratio): xrst=[i[0] for i in rst] yrst=[i[1] for i in rst] xfrst=[] yfrst=[] for i in range(len(rst)-4): xfrst.append(sum(xrst[i:i+5])/5) yfrst.append(sum(yrst[i:i+5])/5) v=[] for i in range(len(xfrst)-1): v.append(((xfrst[i]-xfrst[i+1])**2+(yfrst[i]-yfrst[i+1])**2)**0.5) v=[i*ratio for i in v] x=[i/24 for i in range(len(v))] plt.plot(x,v) plt.xlabel("time(second)") plt.ylabel("speed(kmph)") plt.ylim((0,200)) plt.show() return v
完整代码可见我的github,附有视频源文件和我标注的文件
参考链接:
这肯定是驾驶员的问题!!!!!
鉴于以下事实是不可辩驳的真理:
1、特斯拉是不可能有问题的;
2、你说特斯拉有问题,你就是故意黑特斯拉。
并有如下事实:
1、本人暂无自杀的打算;
2、本人说过特斯拉有问题;
3、本人拒绝驾驶、乘坐特斯拉汽车。
易证得:
如果你强行让我驾驶特斯拉,特斯拉就会处于“出车祸”与“不出车祸”的叠加态。
我为了故意黑特斯拉就会开着它去出车祸,而我不想自杀则会尽力避免出车祸,特斯拉绝对不会有问题那么它在一系列安全措施(它声称的)作用下是不可能出车祸的,但是我极力想让它出车祸以证明它有问题同时又不想死因此我会采取保守驾驶的方式去制造车祸,这时候到底出不出车祸完全在于我刻意制造轻微交通事故的技术水平与特斯拉准确识别环境避免出车祸的较量之中。
我们把这种现象称为“特斯拉测不准原理”。你不可能同时得知,特斯拉刹车的工作状态与特斯拉驾驶员的技术水平。
这时候只有在车祸发生或者不发生的那一刻才能判断到底出不出车祸,我们观察到概率波坍缩。就像薛定谔的猫一样,打开盒子才知道死了没。
总之,特斯拉牛逼(破音)!!!!
所以大家都以为特斯拉是靠电力驱动的,这是一个巨大的误解,特斯拉是人类制造出的第一种使用概率波驱动的车辆,术语叫做“无限非概率发动机”。著名的银河系总统座驾就是一艘装备了无限非概率驱动引擎的飞船,“黄金之心号”。
黄金之心号性能有目共睹:
在目前已知的非常重,黄金之心号(heart of gold)速度最快。特斯拉作为一种高级车,是肯定要装备这种高级引擎的。
无限非概率驱动引擎的原理极其复杂,我也只有在喝了不少于300毫升的银河系含漱爆破剂之后才敢斗胆描述如下:
当某一个事件发生的概率越小的时候,发动机的动力就越强劲。
比如说一个暴露在外太空、没有穿戴宇航服的人类,能够存活的时间不超过3分钟。而在这三分钟里,刚好有一艘飞船经过,把这个人救起来的概率大概是1.9562238499735662乘以10的93次方分之一,这个概率能够为发动机提供极其强劲的动力,因此使用无限非概率发动机驱动的飞船非常喜欢跑过来把这个人救起来。
再比如说一颗正在以13.5马赫速度向你飞来的防空导弹,在真空量子涨落的作用下突然变成一头抹香鲸的可能性大概是2.2251729964331乘以10的114次方分之一,这个概率会让无限非概率发动机跑到飞起来,因此装备了无限非概率驱动引擎的飞船都非常喜欢把防空导弹变成抹香鲸。
因此,当无限非概率发动机使用得越来越多,大家都会开始去争抢这种极小概率事件,从而导致极小概率事件发生的概率迅速增大,导致无限非概率发动机动力急剧下降。
这就形成了一个悖论:因为当一个事件发生概率极小的时候它可以为无限非概率发动机提供动力,反而导致该事件发生概率急剧增大,结果导致无限非概率发动机动力急剧下降。
这就是量子力学的玄妙之处。
所以中国古代著名哲学家、科学家、文学家龙牙先生说,“万事不决,量子力学”。
特斯拉装备的无限非概率发动机也陷入了这种奇怪的悖论:
1、当它在绝对不会有问题的前提下,遇到驾驶员奇怪的驾驶动作的时候,一些概率极小的事件比如说车祸就会发生,导致特斯拉的无限非概率发动机动力大增;
2、当特斯拉的无限非概率发动机动力急剧增大的时候,特斯拉发生极小概率事件比如说车祸的概率就会急剧增大;
3、急剧增大的概率导致无限非概率发动机动力急剧下降,这又导致极小概率事件比如说车祸发生的概率急剧减小;
4、if step(3)=true then loop to step (1) elseif end loop。
目前暂时不知道这种悖论最终是走向收敛还是发散,特斯拉发生极小概率事件例如说车祸的可能性应该是一条类似于正弦波的曲线,同时特斯拉使用的无限非概率发动机动力就是一条余弦波曲线,它们之间相位差了一个周期。
一切特斯拉车祸的罪魁祸首就这样被我找到了:是司机不适应特斯拉的无限非概率驱动方式导致的!
一般的车子,你一脚跺到油门上动力是直线增大的,车辆速度也是直线增加;一脚跺到刹车上的时候动力瞬间切断,车辆速度直线减少。
而特斯拉因为使用了无限非概率驱动发动机,遇到了无限非概率悖论,那么你一脚跺到油门上动力呈正弦波增大、减少,车辆加速度呈正弦波增加、减少,体现在车速上则是周期性在加速与不加速之间徘徊。刹车的时候情况相似、方向相反。
要是不明白这个过程的朋友可以去P站,或者找一点两三个演员就能演完的那种日本爱情动作片看看。
用我们四川话说就叫做“一耸一耸的”。
车子“一耸一耸的”为汽车驾驶增加了无穷的乐趣,我以前有个女朋友就是开的特斯拉,我一坐上去就一耸一耸的,我就问她,“你是不是喜欢看我一耸一耸的嘛?”她顿时面似酡红、眼含春水以非常恰到好处的力度拧了我一把,同时表达了“你好讨厌~”与“哎呀你好坏~”以及“你还在等什么~”三重意思。
你看这驾驶乐趣!什么车能有这样的驾驶乐趣?什么车能比特斯拉更高级?
当然了这其实是个悲伤的故事,爱情就像特斯拉,你想把它紧紧的抓在手里,它却冲向了别的车。这就是为什么后来我再也不坐特斯拉的原因,绝对不是特斯拉的问题,是我,抓不住爱情也抓不住那个春天。
言归正传,加速的时候一耸一耸的,紧急刹车的时候肯定也是一耸一耸的,一般的驾驶员不懂这个道理,还是按照一jio刹车车子就慢慢停下来的固定思维驾驶装备了无限非概率驱动引擎的特斯拉,没有意识到它跟小电影一样一耸一耸的本质,导致追尾失控撞车。
所以,这不是特斯拉的问题。
(此条5月8日早9:00发,括号内删除,超过1000赞到财务领300元。)
报道,死者是原韶关市公安局副局长,60。
想我的感想是。第一个这种单板模式跟其他的车操作模式不一样。紧急情况下越是开车多年的老司机其他车的经验甚至是本能来自救,恰恰加快了事故的发生。第二是特斯拉这种超速发生的处理软件绝对是问题的。可能设计逻辑思路。就有点问题。波音Max都是一样。对于自己的软件去控制极度自信但对极端情况考虑不足。或者说程序有bug. 在极端情况发生后软件强行接管接管了控制。让驾驶人员无法自救。
从波音max飞机的情况来看。概率也是很低的。但是一出就是大事。所以这个东西不能按某人的话说90%是满意的来推掉。国家应该要好好来进行一次正规场地的测试。那么多车评人都模拟出那么多情况。能不能好好测试一下?
跟之前的一些事故很像。
1、 2020年12月18日,广东深圳
一辆蓝色Model S突然加速,撞开了一辆出租车,然后继续加速撞上了一辆货车尾部。而且第一次撞车之后依然没有减速。深圳事故的车主曾反映,事故发生时,突然之间感觉刹车踩不动,方向也打不了,车自己往前冲,撞上出租车,再撞上大货车,最终被大货车阻停,整个车就像手机系统死机一样。
2、2020年12月30日,浙江杭州
一辆特斯拉撞进一酒店,门口立柱砖被撞碎。据杭州当地媒体《钱江晚报》报道,事故车辆驾驶员表示驾车从停车场出来后,感觉车辆突然加速,那个瞬间感觉踩刹车也没用,他想用酒店门口树盆缓冲未果,在撞击了一辆停着的特斯拉和一辆奔驰车后,最终冲进了酒店大堂。
3、2021年3月11日,美国底特律
美国国家公路交通安全管理局在调查一起3月11日在底特律发生的事故,事故中,一辆特斯拉汽车冲入一辆牵引式大卡车车底,导致一名乘客重伤。不过当地警方表示,他们认为当时特斯拉汽车没有使用自动驾驶模式。
4、2021年4月17日,广州增城
广州增城警方通报了一起特斯拉车祸,17日左某驾驶特斯拉轿车载着一名男乘客从另一辆轿车后方超车过程中撞击到路边水泥桥体,损毁严重,事故造成男乘客当场死亡。随后左某所驾驶的特斯拉发生燃烧,事故原因仍在进一步调查中。
又是特斯拉
单就视频跟图片看
这速度明显超速了
正常驾驶一般不会这样
就视频截图来看,短短几秒内车只有一个转向减速的动作,但是无力回天了(我个人认为在之前有一个刹车动作,至于评论区讨论的刹车痕迹,这个等警方的最终确认)
车主得进行尸检,排除毒驾,醉驾。
如果车主没有问题
那这辆车开这么快的动机是什么?
这个车有没有问题?
如果刹车系统,或者驾驶系统有问题,我们该怎么办?
现在等一个警方通告,保持关注。
如果是特斯拉的问题
个人建议特斯拉立刻马上道歉,并召回车辆。
这不是汽车,这是隐形杀手。
玛莎拉蒂撞车女表示当初如果买的是特斯拉就不用坐牢了。
这件事儿,细思极恐。
先来做一个事故分析:
这次的时速,从传出的视频来看,第5秒刚开始的时候是刚到白色实线,随后在1秒的时间内连续开过3组白色虚线并追尾大货车。
https://www.zhihu.com/video/1374129833706958848事发地点属于二级公路,白色虚线长4米,间隔6米。这一点可以从旁边的私家车长度进行确认。
这也就是说1秒左右跑过30米,时速大约在120km/h左右。
所以死亡原因和责任认定非常简单,特斯拉车主方全责,原因是严重超速。
而且这个视频明显是在旁边的私家车和大货车中间进行了一个躲避动作,一开始我也以为就是个危险驾驶的傻哔,死不足惜。
但后来网传死者是当地某公安局副局长(未证真伪),似乎也有知乎网友在评论区表示死者是二十多年的老司机。
按说,这种四五六十岁的中年人又是中流砥柱,又上有老下有小,不至于干出来飙车的事情。
但!
你们还记不记得去年6月份,江西南昌的特斯拉失控事故?
车主同样是中年老司机,同样是超速到128km/h,狂飙了好几分钟,最终翻车才停下来。幸亏事发当时车少,捡回一条命。
还有对向车拍下行车视频,对方借道超车险些酿成事故。
视频找不到了……各位自行搜索吧。
再联想一下上海车展维权的女司机,公开数据显示飙到118km/h,最终结果也是追尾,也是上有老下有小的中年老司机。
短短的一年间,至少3起中年男性特斯拉车主飙车到120km/h左右引发严重交通事故。
再加上此前广州不让特斯拉上高速、军区大院儿不让特斯拉进屋……
这不得不让我怀疑——
特斯拉是不是想通过这种方式干掉祖国的前浪,好给我们这些后浪开辟前进的路?
果真如此的话。
我们每一个年轻人,都欠特斯拉一个道歉。
从视频上这辆车一直保持高速没有任何减速
不太可能是司机把油门当刹车了,因为这种速度大概率是一直踩着油门就没松开过
所以要么是司机身体出了问题,要么是精神出了问题,要么是车辆的刹车功能出了问题。
司机操纵失误。我们的产品没有问题。看火箭看火箭,我们火箭又成功了!我们都要星辰大海了,车还能有问题吗?没毛病!