首页 > 其他分享 >2024“华为杯”数模研赛E数据提取代码

2024“华为杯”数模研赛E数据提取代码

时间:2024-09-22 21:13:30浏览次数:10  
标签:plot plt 研赛 代码 label 2024 数模 车流量 txt

2024年数学建模研究生赛E题从视频中提取数据的代码。主要包括三个部分:车流量计算、各车道车流量计算和平均速度计算。主要讲述了代码的使用方法,包括需要修改的参数和文件路径,以及一些特殊情况的处理方法。同时还提供了参数估计和绘图的相关代码,以及如何根据不同视频视角调整代码。

代码链接

2024“华为杯”数模研赛E数据提取代码

首先需要将所有视频文件直接复制到文件夹目录下

计算车流量

核心代码为1.py,运行代码会生成x.x.txt,然后使用1-draw.py读取txt,绘制折线图

需要修改内容如下:

第8行

# 导入视频
txt_name='4.2.txt'
video_path = '4.2.mp4'  # 视频文件路径

修改对应的路径、视频编号。

第31行

# 设定通过线的位置
point2x=0
point2y=int(height*0.50)
point1x=width
point1y=int(height*0.45)

这是检测线的个端点,合适的参数请查看参数记录.txt的前半部分

1-draw.txt中的第6行

file_path = '1.1.txt'

修改成你需要绘制的视频编号

1-draw.txt中的第31行

window_size = 5

可稍作修改,建议5~20之间

各车道车流量计算

核心代码为三车道.py,绘图代码为三车道-draw.py

相比于普通的车流量计算,还需要修改车道线的划分。

第38行

# 车道划分
side1=int(width*0.25)
side2=int(width*0.4)

需要调整参数。合适的参数也在最佳参数.txt中,如:

1
point1x=0
point1y=int(height*0.2)
point2x=width
point2y=int(height*0.5)

0.25 0.4

表示1系列视频需要调整两个划分线为0.25和0.4

三车道draw中的第46行

plt.plot(smoothed_total, label='总车流量')
plt.plot(smoothed_lane3, label='快车道车流量')
plt.plot(smoothed_lane2, label='慢车道车流量')
plt.plot(smoothed_lane1, label='应急车道车流量')

由于拍摄视角原因,可能需要交换“应急车道”和“快车道”,即变成

plt.plot(smoothed_total, label='总车流量')
plt.plot(smoothed_lane1, label='快车道车流量')
plt.plot(smoothed_lane2, label='慢车道车流量')
plt.plot(smoothed_lane3, label='应急车道车流量')

以画出图例正确的折线图

计算平均速度

估算k

使用代码标点.py启动视频,空格暂停,鼠标左键在画面中点击以生成坐标。请点击每辆车的前后两个轮子的位置。生成每行四个数据,复制到坐标\x.x.xlsx中,注意excel需要保留表头。

使用代码估算k.py读取excel表格,使用多项式以拟合函数\(k(x,y)\)。

上述操作可以跳过,比较好的表达式已经保存在参数估计.txt的后半部分

计算速度

核心代码为速度.py,绘图代码为速度-draw.py

对于不同视角的视频,将k的表达式复制到核心代码的第12行

def calc_k(x,y):
    k = 3.5060369468e-01 + 2.4844164330e-04 * x + -1.6744365346e-03 * y + 4.2032717049e-07 * x ** 2 + -1.3060908122e-06 * y ** 2 + 2.4295921693e-06 * x * y
    return k

替换其中的k的表达式。

由于是计算速度,所以不需要管检测线和车道线,也就是说只需要修改视频文件路径k的表达式即可。

标签:plot,plt,研赛,代码,label,2024,数模,车流量,txt
From: https://www.cnblogs.com/Vanilla-chan/p/18425863/2024-MCM-Huawei-Cup-E-Data-Extraction-Code

相关文章

  • 2024.9.20 近期练习
    CF461EApplemanandaGame我们可以先建出SAM,设\(dp_{i,u}\)表示当前处理到\(i\)位,SAM上到\(u\)节点当前最小答案。由于答案具有单调性,考虑二分答案,也就是二分\(mid\),考虑如何检验最短的串是否不超过\(\len\)。考虑把SAM修改一下,若某点不存在\(c\)的出边就将其......
  • 小美的数组合并(美团20240427年暑期实习笔试真题)
    题目:小美的数组合并小美拿到了一个数组,她每次操作可以将两个相邻元素ai合并为一个元素,合并后的元素为原来两个元素之和。小美希望最终数组的最小值不小于k。她想知道有多少种不同的合并结果?输入描述第一行输入两个正整数n,k,代表数组大小和数组的最大值。第二行输入个正整数ai,......
  • 2024 CSP-S 游记
    CSP-S第一轮(初赛)摘自Shadow-Dragon9.20(day0)疯狂星期五,狂砍10节奥赛,直接爽了上午第二节到第五节都是奥赛,来机房以后发现网没开,消费股:看同学们初赛都准备得挺辛苦的,给你们安排一场模拟赛可能是觉得初赛太容易我们没人过不了遂安排了一场模拟赛,像是消费股能干出来的赛时......
  • [CVPR2024]DeiT-LT Distillation Strikes Back for Vision Transformer Training on L
    在长尾数据集上,本文引入强增强(文中也称为OOD)实现对DeiT的知识蒸馏的改进,实现尾部类分类性能的提升。动机ViT相较于CNN缺少归纳偏置,如局部性(一个像素与周围的区域关系更紧密)、平移不变性(图像的主体在图像的任意位置都应该一样重要)。因此需要大型数据集进行预训练。长尾数据学习......
  • CSP-S 2024 提高组初赛解析(更新至单项选择)
    单项选择1在Linux系统中,如果你想显示当前工作目录的路径,应该使用哪个命令?ApwdBcdClsDechopwd:printworkingdirectorycd:跳转到指定目录ls:列出当前目录的所有子文件和子文件夹echo:输出指定内容2假设一个长度为n的整数数组中每个元索值互不相同,且......
  • CSP-S 2024一轮邮寄
    目录2024/9/21SatDay1BeforeWhileAfter2024/9/21SatDay1Before早上起来感觉有点不舒服,但是没在意。没跑操,早读,吃饭,然后上whk。不过第五节课是体活,爽了。先去超市买东西,然后直奔食堂,发现已经吃不进去饭了。勉强吃完了米饭,然后回宿舍躺平。狠快人多了,开始打狼。大概是这......
  • [20240920]跟踪library cache lock library cache pin使用gdb.txt
    [20240920]跟踪librarycachelocklibrarycachepin使用gdb.txt--//前一阵子,写的使用gdb跟踪librarycachelocklibrarycachepin的脚本有一个小问题,无法获得lockaddress以及pinaddress--//地址,有一点点小缺陷,尝试修改完善看看。--//按照https://nenadnoveljic.com/blog/tr......
  • 2024睿抗机器人开发者大赛CAIP-编程技能赛-本科组(省赛) RC-u5 工作安排详解
    本文参考https://www.cnblogs.com/Kescholar/p/18306136这一题可能对高手来说就能轻而易举的看出是个01背包,但是对于我这种小白还是要经过详细的分析才可以理解。我们题目要求的是获得的最大报酬,题目的影响因素有三个:工作时长、工作截止时间、对应的报酬,那么怎么样合理的去......
  • C++中模板的初级使用函数模板(刚刚接触模板概念的小白也能明白)
    文章目录模板分类函数模板函数模板的原理函数模板基本语法——typename以及class简单的函数模板多类型模板参数class和typename的选择类模板模板分类模板的核心思想是让编译器在编译时生成适用于具体类型的代码,这个过程称为模板实例化。C++中的模板分为两种:......
  • 2024年5月刚结课华为数通HCIE/HCIP/HCIA课程!(机构:誉天 讲师:杨大祥 阮维)
    今天不学习,明天变垃圾。各位长方体移动工程师大家好!小白有一份珍贵的24年刚结课华为数通HCIE/HCIP/HCIA课程!学习资料分享给大家,正所谓“少壮不努力,长大去工地”,只有学习才能出人头地。资料获取地址:https://mp.weixin.qq.com/s/jFljefKEG804vUb5ZCB3XQHCIA/HCIP/HCIE课程......