这个仓库是南方科技大学,基础物理实验课,垂直电梯运行参数测量实验的数据处理程序,使用但不限于PaddleOCR作为辅助模块。该仓库由三部分程序组成:Pretreat、Analysis、Calculate。在Windows11,Python3.8.10可运行,其他平台应该也可以。
首先你需要使用其他的视频处理软件,比如剪映等,将视频裁剪为 只有中央电子显示屏。我建议裁剪时 不包含 末尾的单位字母"g",且数字边缘 不能 和视频边界过于靠近。如果你不按照建议操作,识别的准确率有可能大幅下降,增加人工工作量。同时,该视频的起始时刻应该为电梯门关闭的时刻,结束时刻应该为电梯门开启的时刻。我建议在剪辑视频时就将此条件处理好。如果忘记处理可以在程序中用参数调整。
Pretreat.py 是用于将视频文件转换为csv文件的程序,在命令行输入 python Pretreat.py -h
会指导你如何使用,我也会在接下来简要说明。
-
-r,或者--raw,是要求输入视频文件的路径,该参数为必需参数,例如
python Pretreat.py -r .\raw.mp4
-
-o,或者--output,是要求输入结果文件输出的路径,默认为当前目录,要求提前创建对应文件夹,输出文件名为
result.csv
-
-t,或者--threshold,是在图像二值化时使用的参数,该参数随环境亮度变化会取得更好的识别效果,数据范围是0-256,默认为170。如果识别效果不好,可以以间距10调整参数,设置到合适为止
-
-s,或者--start,是视频计算起始时刻设置,单位为秒,默认为0
-
-e,或者--end,是视频计算结束时刻设置,单位为秒,默认为完整视频长度
该程序的原理是逐帧提取视频文件的图像,在灰度化和二值化后,使用PaddleOCR识别数码管数字,并格式化输出。
Analysis.py 是用于分析csv文件,并生成图像的程序,在命令行输入 python Analysis.py -h
会指导你如何使用,我也会在接下来简要说明。
- -r,或者--raw,是要求输入csv文件的路径,该参数为必需参数,例如
python Pretreat.py -r .\result.csv
- -cor,或者--cor,是电子天平的零阶修正量,单位为克,默认为0
- -f,或者--figure,如果带有该参数,会按顺序生成加速度-时间图像,速度-时间图像,位移-时间图像
- -d,或者--detail,如果带有该参数,会将原始数据中2%低位,中位,98%高位,输出在.\detail.csv文件中,用于之后天平修正量的计算
- -c,或者--check,是数据异常检测阈值,默认为6。输出使用savgol过滤器做数据平滑时,预测数值和原始数值差距过大的数据点。这些数据点大概率是图像识别的异常,需要人工查看并修改数据
该程序的原理是先将电子天平示数转化为加速度值,使用 savgol
过滤器做平滑处理,使用 integrate.trapz
做数值积分,最后用 plt
绘制图像。
Calculate.py 是用于计算天平修正量的程序,在命令行输入 python Calculate.py -h
会指导你如何使用,我也会在接下来简要说明。
- -r,或者--raw,是要求输入csv文件的路径,该参数为必需参数,例如
python Pretreat.py -r .\detail.csv
该程序的原理是利用多组数据的极大差值和极小差值,假设电梯运行加速的最大加速度和减速的最小加速度不变的情况下,通过线性拟合的方式预测电子天平内会随着电梯运动,影响示数的部件重量。该程序会给出以减速计算和加速计算两个结果,一般取平均值为修正量。