【问题标题】:Mapping Vision Outputs To Neural Network Inputs将视觉输出映射到神经网络输入
【发布时间】:2012-09-12 06:07:09
【问题描述】:

我对 MATLAB 还很陌生,但在过去几天里熟悉了 Simulink 和计算机视觉。我的问题陈述涉及获取交通/高速公路视频输入并检测是否发生事故。

我计划通过提取质心的值来绘制轨迹、速度差(帧之间)和两辆车之间的距离来做到这一点。我可以成功地跟踪质心,并旨在导出其余的特征。

我不知道如何将这些映射到 ANN。我的意思是,每张图像都有不止一个车辆斑点,这意味着在单个帧/图像中有多个质心。那么,NN 如何同时作用于多个输入(每辆车提取的特征)?我显然错过了链接。请帮我弄清楚。

另外,我在看时间序列数据吗?

【问题讨论】:

  • 您能否准确描述一下输入是什么?比如什么是车辆斑点?是不是,车辆ID,x,y,速度,方向,大小等?您是否打算在数据时间上将神经网络反馈几个时间步长?
  • 我不确定你是否需要一个人工神经网络;如果你必须判断一个 blob 是否是汽车,那么 ANN 会很好……也就是说,你可以使用随时间变化的数据、汽车的速度等,并进行时间序列数据分析,然后你会看对于时间序列中的特定事件(峰值...)。它们可以是多维的,因此您可以收集多个信息(速度、汽车之间的距离……),从而做出更好的猜测。小心使用时间序列,一旦完成,您将不得不降低维数(PCA ...),也许 ANN 会很合适。 SVM 也适用于时间序列。
  • 这个想法是通过查看每个时间步的方差即方差来检测事件。因此,Centroid 2 - Centroid 1, Velocity 2- Velocity 1 等将作为输入提供。因此,理想情况下,输入是每个时间步之间的方差。是否可以在每帧不止一辆车辆的情况下执行此操作?因为那时我必须检查所有车辆的差异。假设我在单帧中有 3 辆汽车,每辆汽车有 4 个特征,所以要跨时间跟踪 4 + 4 + 4 个特征。我们该怎么做?
  • 如果我没记错的话,PCA 需要处理整个值矩阵,对吗?这不会使实时性的全部目的失效吗?
  • 只需使用每个变量的时间步长之间的所有差异,尽可能多的时间步长,并将这些作为您的 ANN 的输入。

标签: matlab computer-vision neural-network time-series simulink


【解决方案1】:

我不太确定您的问题。问题可能是时间序列数据,也可能不是。您也许可以转换问题的时间序列版本,以便可以使用 ANN 解决它,但它有点像马斯洛的锤子:)。另外,您能否重新表述一下这个问题。

如你所说,你可以给它两三帧的特征,然后使用分类器来检测事故与否,但训练这样的分类器可能会很困难。这个问题真的很困难,所以你可能需要大量的训练样本才能解决问题,尤其是非常好的负样本(例如彼此靠近的汽车)等等。

您可以尝试多种方法来解决此事故检测问题。例如:构建一个分类器(ANN/SVM 等)来检测没有时间序列数据的事故。在这种情况下,您的输入将是事故图像和非事故图像或某种用于训练的正样本和负样本以及用于测试的后续图像。在这种特定情况下,您不会查看时间序列数据。但是在这里您可能需要很多功能来检测相同的内容(这在某种意义上是问题的单帧版本)。

第二种方法是使用时间序列数据,在这种情况下,您必须检测特征、跟踪特征(例如使用 Lucas Kanade/Horn 和 Schunck),然后使用有关速度和质心的信息来检测意外。您甚至可以为 HMM 制定它。

【讨论】:

  • 好吧,我们来打个比方。我的目的类似于螃蟹分类。螃蟹分类需要通过分析图像来检测螃蟹的性别。考虑螃蟹的六个物理特征:种类、长度、宽度和深度等,并将其馈送到 NN 以确定结果。我的疑问是,如果我在一张图片中有两只螃蟹怎么办?或者在我的情况下,视频的同一屏幕截图/帧中有两辆车。如何为 NN/frame 提供多组特征?
  • 我明白了。这实际上是一个先有鸡还是先有蛋的问题。但通常所做的就是这样。你有一个检测器和识别引擎。检测器检测汽车或螃蟹等,识别引擎对其性别或汽车类型进行分类。因此,您首先需要获得一个检测器(使用分类器,对“螃蟹”或“非螃蟹”进行分类,或一些临时方法)。您还可以使用其他信息使检测变得非常容易,例如,如果我知道汽车会首先出现在左上角,我可以单独在左上角放置一个检测器。
猜你喜欢
  • 2017-03-16
  • 1970-01-01
  • 2019-03-18
  • 2012-10-05
  • 2015-02-23
  • 1970-01-01
  • 2010-10-13
相关资源
最近更新 更多