电子商务网站规划建设与管理,南昌有哪些企业网站,wordpress的留言功能,上海网站建设的企4D毫米波目标检测信息丰富#xff0c;可获得目标3维位置信息、径向速度vr和rcs等#xff0c;能够对目标准确分类。 4D毫米波和激光做好时空同步#xff0c;可以用激光目标给4D毫米波做标注#xff0c;提升标注效率。
1 激光用做4D毫米波分类真值 128线激光推理的结果作为4… 4D毫米波目标检测信息丰富可获得目标3维位置信息、径向速度vr和rcs等能够对目标准确分类。 4D毫米波和激光做好时空同步可以用激光目标给4D毫米波做标注提升标注效率。
1 激光用做4D毫米波分类真值 128线激光推理的结果作为4D毫米波雷达的真值但不同类别的尺寸存在重叠存在分类错误可能。
1.1 小车类别0点数070长度2m~7m宽度1.6m~2.7m 1.2 大车类别1点数0120长度4.5m14m宽度1.9m3.3m 1.3 两轮车类别4点数024长度1.4m2.4m宽度0.55m1.1m 1.4 行人类别5点数014长度0.5m1.5m宽度0.55m0.9m 总体来看128线激光标注的真值可靠性较高但仍存在一些小问题会对4D雷达分类结果造成一定影响如果要求更高的标注准确度和精度则需要提升128线激光雷达目标检测的性能或者人工辅助标注。
2 特征统计和分类验证 对标注数据进行统计分析部分统计结果如下
2.1 行人特征 2.2 两轮车特征 2.3 运动小汽车特征 2.4 运动大巴特征 从统计结果可以发现不同目标的特征有明显差异比如点云数量、RCS等通过对这些特征数据的训练则能对毫米波目标进行分类。 实验使用了距离、朝向、点云数、最大rcs、最大snr做训练使用了9000多组数据80%用做训练集20%用做测试集验证两轮车和一般车辆的分类准确率。 总共使用了3种机器学习方法最近邻KNN、支持向量机SVM和决策树Decision Tree分类准确率均在95%以上。
3 决策树用作4D毫米波分类的实现方法 使用4D毫米波雷达的一些特征可以对其做准确的分类。这里使用点数、距离、方位角、长、宽作为特征长宽通过估计目标朝向后将点云投影到朝向方向上计算得到。本文使用决策树算法来实现分类下面是详细的实现过程。 训练使用python的sklearn直接导入即可。
from sklearn.tree import DecisionTreeClassifier 这里使用了三个类别小车、大车、自行车8万多组数据80%用做训练集20%用做测试集。
from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test train_test_split(X, y, test_size 0.2) 然后调用函数进行训练。
decision_tree DecisionTreeClassifier() decision_tree.fit(X_train, y_train) 训练完成后在测试集上验证。
y_train_pred decision_tree.predict(X_train)y_test_pred decision_tree.predict(X_test) 再验证准确率。
from sklearn.metrics import accuracy_scoreprint(decision tree train accurary socre:, accuracy_score(y_train, y_train_pred), test accurary socre:, accuracy_score(y_test, y_test_pred))train_error_score 1 - accuracy_score(y_train, y_train_pred)test_error_score 1 - accuracy_score(y_test, y_test_pred)print(decision tree train error socre:, train_error_score, test error socre:, test_error_score) 如果使用默认参数则训练集准确率为100%测试集准确率为95%。 获取决策树深度发现有33层叶子数有2179个实在过于庞大。
tree_depth decision_tree.get_depth()tree_leaves decision_tree.get_n_leaves()print(depth,tree_depth,,leaves:,tree_leaves) 调用决策树可视化工具可以看到结果由于叶子树太多全屏显示只能看到一个个小点。 将其放大到100%才能看清细节。 这么多的层数和叶子树存在过拟合风险而且实现的代码也非常复杂因此考虑降低层数。
decision_tree DecisionTreeClassifier(max_depth9)
在生成决策树模型的时候设置最大深度为9则最后生成的决策树体量大幅减小实测结果层数为9叶子树为230。 训练集准确度有所降低但测试集反而提升表明降低了过拟合提升了泛化性能。 模型生成之后代码编写费事费力这里参考这位博主的方法用代码自动生成。不过python脚本有点小问题需要自行发现修改才能得到最后的结果。 使用Python训练好的决策树模型生成C代码_classversicolor-CSDN博客 使用m2cgen库也可以实现模型到c代码的转换 详细信息可以查看m2cgen · PyPI
import m2cgen as m2ccode m2c.export_to_c(decision_tree)file open(radar_tree_m2cgen_code.txt,w)file.write(code)file.close() 最后得到可以运行的C语言代码。 如果对效果不满意可以使用不同的特征组合进行对比实验以获得期望的结果。