从GPS和加速度计数据中识别驾驶事件



我有一个IOT设备,每秒从正在驾驶的汽车发送以下信息:

  1. 时间戳
  2. GPS坐标(纬度/经度)
  3. GPS方位或方位
  4. 来自GPS的车速
  5. X、Y和Z轴上的加速度计读数

根据这些信息,我必须识别以下驾驶事件:

  1. 制动
  2. 加速度
  3. 左转
  4. 右转

    我正试图使用ENCOG.net库中的神经网络分类器来实现这一点,但我被困在以下几点:

1。如何格式化输入,以便将其输入到神经系统网络我所拥有的是一个包含8列和可变行数:

右转弯可能是下面的矩阵

Timestamp  Lattitude  Longitude   Azimuth     Speed  Xacc        Yacc        Zacc
4:57:08 PM 39.937185  -74.9530667 305.3293762 0     -0.904202607 0.33408456  0.105773433
4:57:09 PM 39.93719   -74.95307   303.1105042 0     -0.89096231  0.37406743  0.091855986
4:57:10 PM 39.9372067 -74.9530783 299.4731445 9     -0.880157497 0.395575262 0.058842602

类似地,左转可能是

Timestamp  Lattitude  Longitude   Azimuth     Speed Xacc         Yacc        Zacc
4:57:26 PM 39.9377    -74.954015  257.7362976 18    -0.932709113 0.267096326 -0.024819622
4:57:27 PM 39.937715  -74.9540733 247.346344  18    -0.94067372  0.271379559 -0.054581382
4:57:28 PM 39.937715  -74.9541317 225.6322174 17    -0.923718111 0.293954308 -0.081829668
4:57:29 PM 39.937695  -74.9541917 213.6928406 20    -0.911598183 0.317324907 -0.128199049
4:57:30 PM 39.93766   -74.9542433 208.975174  24    -0.90052994  0.351010895 -0.121179532
4:57:31 PM 39.9376017 -74.9542833 205.9306641 28    -0.891561502 0.373537211 -0.078259489
4:57:32 PM 39.9375367 -74.9543267 206.532135  31    -0.891412538 0.389423688 -0.047274249

2.神经网络模式和类型可以应用于什么解决它?

3。可以使用哪种训练算法?

如果有人能阐明如何解决这个问题,我将不胜感激。

以下是我试图解决此问题的方法。

  1. 缩小输入矩阵以仅包含相关信息以识别事件。因此,以下列将从输入
    • 时间戳
    • 纬度
    • 经度和
    • 速度

2.减少的输入看起来像

Az      Xacc        Yacc
257.736 -0.93270911 0.267096326
247.346 -0.94067372 0.271379559
225.632 -0.92371811 0.293954308
213.693 -0.91159818 0.317324907
208.975 -0.90052994 0.351010895
205.931 -0.8915615 0.373537211

3.对输入重新采样,以具有至少10个实例(行)

  • 对于使用类似[Ramer–Douglas–Peucker算法]的10多个下采样实例:https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm
  • 对于少于10个实例,使用任何插值技术进行上采样

4.将10行展平为包含30个值的向量,如下

Az1     Xacc1       Yacc1       Az2     Xacc2       Yacc2       Az.. Xacc.. Yacc..   Az10       Xacc10      Yacc10      Target
257.736 -0.93270911 0.267096326 247.346 -0.94067372 0.271379559 ..   ..     ..       206.532    -0.89141254 0.389423688 Left

5.使用前馈模式,如带有的多层感知器

  • 30个输入神经元
  • 2个隐藏层(使用修剪技术识别神经元的数量)
  • 4个输出神经元(使用等边编码:3个用于上述4类,1个用于非事件)
  • 激活函数:双曲正切

6.使用弹性传播进行训练

请告诉我你对这个解决方案的看法。

最新更新