将权重导入opencv MLP?

Posted

技术标签:

【中文标题】将权重导入opencv MLP?【英文标题】:Importing weights into opencv MLP? 【发布时间】:2015-04-25 19:38:24 【问题描述】:

假设我想使用其他产品来创建 MLP(R、Python、Matlab 等),但我想在 opencv 下运行该网络,即仅用于预测。假设训练产品和 opencv 之间的参数(例如激活函数)是兼容的。

如何将我训练的权重导入 opencv MLP?也许训练产品对每一层使用 MxN 权重矩阵,其中 M 是输入层,M 是输出(因此 W(i,j) 将是输入节点 i 和输出节点 j 之间的权重。)也许偏差是存储在单独的 N 元素向量中。原始格式的细节并不重要,因为只要我知道权重的含义以及它们的存储方式,我就可以转换它们,但是 opencv 需要它们。

那么,鉴于此,我如何将这些权重导入(仅限运行时预测)opencv MLP? opencv 需要什么权重偏差(等等?)格式,我如何设置它的权重+偏差?

【问题讨论】:

我遇到了同样的问题,一开始没有看到你的问题。 我认为不可能,因为 OpenCV 不接受分类数据作为“标签”。这不知何故弄乱了整个结构。但是导入能力将是未来版本的一个很好的特性。 (见My Question) 【参考方案1】:

我刚刚遇到了同样的问题。我还没有充分了解 Opencv 的 MLP 类,不知道是否有更简单/更简单的方法,但是 OpenCV 让您从 .xmls 和 .ymls 保存和加载 MLP,因此如果您在 OpenCV 中创建 ANN,则可以保存它对于其中一种格式,查看它以找出 OpenCV 想要的格式,然后将您的网络从 R/Python/MatLab 保存为该格式,或者至少保存为某种格式,并制作一个脚本以将其从那里转换为 OpenCV 的格式。一旦你完成了,它应该就像在代码中实例化 opencv 的 mlp 一样简单,你实际上想要使用它来预测并在其上调用 load("filename") 函数。 (我意识到这是事实发生后的一年,所以希望你能找到答案或解决方法。如果你找到了更好的主意,请告诉我,我很想知道)。

【讨论】:

【参考方案2】:

您必须像 OpenCV 中 MLP 的“读取”功能如何解析 xml 或 yml 一样解析您的模型。我认为这不会太难。

【讨论】:

以上是关于将权重导入opencv MLP?的主要内容,如果未能解决你的问题,请参考以下文章

神经网络ANN分类器及OpenCV实现

OpenCV——ANN神经网络

如何将 openCV 导入 iOS 8 项目

如何将 OpenCV 库导入 React-Native 项目

opencv4opencv视频教程 C++ 6图像混合线性混合混合权重相加addWeighted()混合加add()混合乘multiply()

OpenCV 机器学习函数需要 CvFileStorage* 而不是 cv::FileStorage*