训练此数据的训练算法

Posted

技术标签:

【中文标题】训练此数据的训练算法【英文标题】:Training Algorithm to train this data 【发布时间】:2014-07-22 11:04:15 【问题描述】:

我在 MATLAB 中工作

注意:这里,绘制的数据是所有帧中FIRST帧的(i,j)位置像素x - position的轨迹。这意味着第一帧中 (23,87) 处的像素在序列末尾具有 x-position35 (如在图中可见)。

这里是 x_pos 的一些典型图,用于 (i,j) 的一些不同值。 (i,j) 指的是第一帧中(i,j) 处的像素,而不是所有帧

对于(i,j) = (23 ,87)

(i,j) = (42 ,56)

(i,j) = (67 ,19)

【问题讨论】:

您能告诉我们更多关于这些像素代表什么的信息吗?对我来说,您的图表看起来像一些复杂的函数,没有良好的可预测结构,就像房间里苍蝇的移动一样。也就是说,作为一个人类,我无法预测特定像素将进一步前进的位置,只能预测大致方向。所以首先我想知道它是否可以从训练数据中预测,或者随机误差会太大。 @ffriend 数据是可预测的,请查看 EDIT 中的输入帧。输入帧是对象在短时间内的运动,因此对象很可能在特定路径上移动。由于相机的运动以及物体的运动,该图看起来有点复杂 @Nishant 我删除了我的答案,我认为这样对您的问题/赏金更好。我(已删除)答案的摘要只是为了预测特定像素的值,您的算法需要查看您尝试预测的像素周围的像素值(在前面的帧中)。您确实需要尝试跟踪框架中每个对象的移动方向。 @Nishant:我相信困惑部分来自问题本身。它实际上不是在帧中移动的像素,而是一些现实生活中的对象。像素是静止的并绑定到特定的框架,我们的大脑将框架连接在一起并识别它们上的移动对象。我相信如果你强调对象轨迹部分而不是像素部分,整个问题可能会被简化。 @Max 我完全按照你的建议去做。 【参考方案1】:

视频就像一系列真实物体的照片。 而真实的物体,在镜头前,只能做两种不同的事情:

    他们站着不动 他们移动

如果您尝试预测的像素来自视频,那么您需要查看像素在屏幕上的移动方式,因为物体在屏幕上移动。

这就是视频编解码器压缩的工作原理(H264、H265...)(显然,视频压缩算法要复杂得多,只是试图了解像素的方向...:-))

这里有一些关于 *** 的问题/答案可能对您有所帮助:

Motion vectors calculation Kalman filter in computer vision: the choice of Q and R noise covariances How to do motion tracking of an object using video? Vehicle segmentation and tracking

【讨论】:

准确地说是For each pixel of the first frame , I have 92 values of where they have been in the next frames,所以它们是相关的。请参阅编辑。 请编辑您的答案,以免让其他查看此问题的人感到困惑。你所说的与我问题的问题部分相矛盾。 @Nishant 我编辑了答案,您认为其余的答案仍然适用吗?还是我完全误解了你的问题?我的意思是,要预测特定像素的值,您的算法需要查看您要预测的像素周围的像素值(在前面的名称中)。 不,它仍然不能解释我的问题。我很清楚你在说什么。您的意思是所有帧中特定位置的强度不相关。这是真的。但我没有那个。我在所有帧中都有 FIRST 帧的特定像素的位置。请再次阅读问题并参考PLOT部分的NOTE。然后相应地编辑您的答案,因为它已经让那些投票的人感到困惑。 感谢额外的链接,我已经计算了光学犁并有一个对象跟踪,快速浏览一下,我发现所有这些方法都是用于跟踪对象,因此很难预测对象大小减少,不过我会研究这些细节【参考方案2】:

所以它不是关于图像中的像素,而是更多关于移动对象,这使得任务更容易处理。您的数据确实是时间序列,因此时间感知算法更可取。马尔可夫模型(尤其是马尔可夫链和更复杂的隐马尔可夫模型)是其中的经典例子。

但是,由于相机不稳定,您的输入嘈杂。因此,更好的解决方案是使用Kalman filter - 类似于 HMM 的模型,但具有明确的噪声概念。它广泛用于机器人、导航和类似领域,根据不精确的传感器数据和历史信息估计车辆的当前位置和预测未来的位置。听起来不像你需要的吗?

我对 Matlab 不是很感兴趣,但它似乎有实现上述过滤器的 kalman 函数。

【讨论】:

你是对的,它是一个时间序列,我试过matlab中的时间序列工具箱。你能看到它的算法并告诉我它是否与马尔可夫模型不同。卡尔曼滤波器听起来很相似。我去看看。 如果您在谈论closeloop 函数,那么不,这不是关于马尔可夫模型,而是关于神经网络(可能是循环的)。递归神经网络也是一种很好的方法,尽管有时很难为它们选择好的超参数。无论如何,您需要寻找基于时间序列的方法,而不是像普通的多层感知器或 SVM 那样。 顺便说一句,如果这些方法都失败了,那么很可能相机不稳定噪声太高,您需要先运行相机稳定算法。但这是一个不同的故事,值得单独提问。 我也有关于固定摄像头的数据,但对于 我尝试过的方法中的上述任何方法,我仍然没有接近预测 mean square error 小于 2问题的一部分。 100x100 图像中的 2 个像素?好吧,实际上,这似乎是一个非常好的结果。无论如何,我看到您尝试了许多不同的方法,但没有解决其中任何一种。仅仅使用内置函数是不够的。正如我上面所概述的,调整超参数(例如 NN 中的层数和神经元数)、选择好的特征等非常重要。你真的应该更多地关注具体方法的细节,而不是各种各样的不同方法。

以上是关于训练此数据的训练算法的主要内容,如果未能解决你的问题,请参考以下文章

MachineLearning入门-11(算法评估)

算法训练 9-7链表数据求和操作

机器学习之数据模型算法和服务

如何使用 sklearn 训练算法对数据点进行加权

训练集、验证集和测试集

树的算法总结