使用 opencv 构建自定义 svm 内核矩阵

2023-11-22

我必须训练支持向量机模型,并且我想使用自定义内核矩阵,而不是预设的矩阵(如 RBF、Poly 等)。 我怎样才能用opencv的机器学习库做到这一点(如果可能的话)?

谢谢你!


AFAICT,OpenCV 不直接支持 SVM 的自定义内核。看起来 LIBSVM(OpenCV 为此使用的底层库)没有提供定义自定义内核的特别简单的方法。因此,许多使用 LIBSVM 的包装器也不提供此功能。似乎有一些,例如用于Python的scikit:具有自定义内核的 SVM 的 scikit 示例

您还可以看一下完全不同的库,例如SVMlight。它直接支持自定义内核。还看一下这个问题。那里的答案包括一些 SVM 库,以及简短的评论。

如果您有令人信服的理由留在 OpenCV 中,您也许可以通过使用内核类型来完成它CvSVM::LINEAR并在训练 SVM 之前将自定义内核应用于数据。我对这个方向是否会取得成果有点模糊,所以我希望有更多 SVM 经验的人能够插话并发表评论。如果它is可以通过选择“线性”作为内核来使用“预计算内核”,然后看看这个答案有关如何进行的更多想法。

您还可以考虑包含 LIBSVM 并直接调用它,而不使用 OpenCV。看LIBSVM 常见问题解答 #418,其中简要介绍了如何进行自定义内核:

问:我想使用我自己的内核。有什么例子吗?在 svm.cpp 中,有两个用于内核评估的子例程:k_function() 和 kernel_function()。我应该修改哪一项?

一个示例是 LIBSVM 工具中的“用于字符串数据的 LIBSVM”。

我们有两个函数的原因如下。对于RBF核exp(-g |xi - xj|^2),如果我们先计算xi - xj,然后计算范数平方,则有3n次运算。因此,我们考虑 exp(-g (|xi|^2 - 2dot(xi,xj) +|xj|^2)) 并通过在开始时计算所有 |xi|^2,操作次数减少到 2n。这是为了训练。对于预测,我们不能这样做,因此需要使用 3n 次操作的常规子例程。拥有自己的内核的最简单方法是通过替换任何内核将相同的代码放入这两个子例程中。

不过,最后一个选择听起来有点痛苦。我推荐 scikit 或 SVMlight。祝你好运!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 opencv 构建自定义 svm 内核矩阵 的相关文章

  • 指纹奇异点检测

    我正在尝试确定指纹的核心点和增量点 我正在使用庞加莱指数方法 但我无法成功检测到这一点 而且我不明白为什么 First I divide the image in 15x15 blocks then I calculate the x an
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma
  • OpenCV C++ 如何知道每行的轮廓数进行排序?

    我有一个二值图像 https i stack imgur com NRLVv jpg在这张图片中 我可以使用重载的函数轻松地对从上到下 从左到右找到的轮廓进行排序std sort 我首先通过以下方式从上到下排序 sort contours
  • OpenCV 2.3 与 VS 2008 - 鼠标事件

    强制性 我是新手 有一份涉及编程的工作 并且我一边工作一边自学 不用说 作为一名老师 我经常犯彻底的错误 我现在所处的位置 我创建了 Graph 类 它 令人惊讶的是 制作了图表 但现在我想通过单击鼠标来修改图形 但我似乎无法让鼠标处理程序
  • 选择 c 和 gamma 值

    您好 我正在使用 SMO 执行 SVM 分类 其中我的内核是 RBF 现在我想选择c and sigma值 使用网格搜索和交叉验证 我是内核函数的新手 请帮助 一步一步的过程 选择一些您认为有趣的 C 和 sigma 值 例如 C 1 10
  • 创建 OpenCV 的 mouseCallback 函数的基于类的实现时遇到问题

    正如标题所示 我在基于类的 C 结构中实现 OpenCV 的 mouseCallback 函数时遇到了一些麻烦 请允许我解释一下 我定义了一个名为 BriskMatching 的类 在其中创建了一个名为 mouseCallback 的成员函
  • ffmpeg AVFrame 到 opencv Mat 转换

    我目前正在开发一个使用 ffmpeg 解码接收到的帧的项目 解码后 我想将 AVFrame 转换为 opencv Mat 帧 以便我可以在 imShow 函数上播放它 我拥有的是字节流 我将其读入缓冲区 解码为 AVFrame f fope
  • 在监督分类中,使用partial_fit() 的MLP 比使用fit() 的表现更差

    我正在使用的学习数据集是灰度图像flatten让每个像素代表一个单独的样本 第二张图像在训练后将被逐像素分类Multilayer perceptron MLP 前一个分类器 我遇到的问题是MLP当它一次接收到所有训练数据集时表现更好 fit
  • 如何去除给定图像中的噪声,使 ocr 输出完美?

    我已经对这个孟加拉文本图像进行了大津阈值处理 并使用 tesseract 进行 OCR 但输出非常糟糕 我应该应用什么预处理来消除噪音 我也想校正图像 因为它有轻微的倾斜 我的代码如下 import tesserocr from PIL i
  • URL路径相似度/字符串相似度算法

    我的问题是我需要比较 URL 路径并推断它们是否相似 下面我提供了要处理的示例数据 GROUP 1 robots txt GROUP 2 bot html GROUP 3 phpMyAdmin 2 5 6 rc1 scripts setup
  • 如何使用 Python 裁剪图像中的矩形

    谁能给我关于如何裁剪两个矩形框并保存它的建议 我已经尝试过这段代码 但效果不佳 import cv2 import numpy as np Run the code with the image name keep pressing spa
  • OpenCV 错误:connectedComponents_sub1 中断言失败 (L.channels() == 1 && I.channels() == 1) [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我在 OpenCV python 中遇到以下错误 并用 google 搜索了很多 但无法解决 如果有人能为我提供一些线索
  • 从包含带边框的表格的图像中提取表格结构

    我正在尝试提取下表中的单元格位置 应用自适应阈值处理后 我能够获得细胞位置周围的轮廓 并且 HoughLines 获得垂直和水平结构元素 这是我的代码 img cv2 imread os path join img path file im
  • 在 GPU 支持下对高维数据进行更快的 Kmeans 聚类

    我们一直在使用 Kmeans 来对日志进行聚类 典型的数据集有 10 mill 具有 100k 特征的样本 为了找到最佳 k 我们并行运行多个 Kmeans 并选择轮廓得分最佳的一个 在 90 的情况下 我们最终得到的 k 介于 2 到 1
  • McNemar 在 Python 中的测试以及分类机器学习模型的比较 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有用 Python 实现的好的 McNemar 测试 我在 Scipy stats 或 Scikit
  • GradientTape 根据损失函数是否被 tf.function 修饰给出不同的梯度

    我发现计算的梯度取决于 tf function 装饰器的相互作用 如下所示 首先 我为二元分类创建一些合成数据 tf random set seed 42 np random seed 42 x tf random normal 2 1 y
  • 如何使用 opencv.omnidir 模块对鱼眼图像进行去扭曲

    我正在尝试使用全向模块 http docs opencv org trunk db dd2 namespacecv 1 1omnidir html用于对鱼眼图像进行扭曲处理Python 我正在尝试适应这一点C 教程 http docs op
  • 是否可以在 PyScript 中使用 OpenCV 模块?

    我想使用 opencv 模块 但无法导入 OpenCV 那么我该如何解决这个问题呢 顺便说一句 Pyodide 支持 OpenCV 示例代码 https i stack imgur com ahwex jpg 尚不支持 OpenCV 此时O
  • OpenCV:如何从网络摄像头获取原始 YUY2 图像?

    你知道如何获得吗raw YUY2来自网络摄像头的图像 使用 OpenCV DirectShow 无 VFW http opencv willowgarage com wiki CameraCapture http opencv willow
  • 如何在 cv2.VideoWriter 中使用 FPS 参数?

    好的 所以我正在制作视频 我想确切地知道如何使用 FPS 参数 它是一个浮点数 所以我假设这是我想要的每帧之间的间隔 你能给个例子吗 我只想知道视频会如何随着 FPS 参数值的变化而变化 因为我制作的视频现在太快了 谢谢 确实只是这样 fr

随机推荐

  • 如何编写自己的复制和粘贴上下文菜单?

    我正在编写一个带有 EditText 驱动小部件的应用程序 我想创建自己的复制和粘贴菜单 要替换 EditText 上的 android 默认菜单 我应该做什么 只是覆盖长按 或者还有其他方法来实施吗 提前致谢 EditText 应该已经启
  • 在.Net Core中使用CSharpCodeProvider

    我有一些 C 代码 可以从 SOAP WSDL 和 Swagger 文档动态生成源代码 然后使用 CSharpCodeProvider 类的名为 CompileAssemblyFromSource 的方法对其进行编译 使用 Net 4 8
  • 如何在Windows 7中设置应用程序的任务栏图标

    如何在 PyQt4 中设置应用程序的任务栏图标 我尝试过setWindowIcon 它成功地将图标设置在主窗口的左上角 但它不会影响Windows 7任务栏中显示的图标 任务栏图标仍然是默认的Python pyw图标 这是我的代码 from
  • __POSIX_VISIBLE 正在破坏我在 cygwin 上的 pthreading

    我正在编译一个在 cygwin 上使用 pthreads 和 gcc 确切地说是 g 的项目 鉴于我一直在linux上开发这个 我从来没有遇到过任何问题 但现在 我无法编译使用某些 pthread 函数的代码 编译器抱怨这些函数未声明 我意
  • 如何在 Linux 上中断任意 TCP/IP 连接?

    是否有任何命令可用于中断某个程序的现有 TCP IP 连接 操作系统是否知道 TCP 连接中的任何内容 或者操作系统是否只看到本地套接字上的 TCP 传输 并且不知道哪个请求被发送到哪个套接字 例如 如果 Firefox 向某个服务器的端口
  • 如何创建具有两个键(键对、值)的 HashMap?

    我有一个二维整数数组 我希望将它们放入 HashMap 中 但我想根据数组索引访问 HashMap 中的元素 就像是 对于 A 2 5 map get 2 5 它返回与该键关联的值 但是如何创建带有一对键的 hashMap 呢 或者一般来说
  • 在 Linux 上使用 ncurses 时未定义的引用

    我正在尝试开始在 Linux 上使用 ncurses 开发程序 我什至无法编译 Hello World 示例 这是代码 include
  • Angular UI 中的 $dialog.messageBox() 在哪里?

    我找不到 dialogAngularUI 中的服务 我尝试探索一个简单的messageBox 使用以下命令创建确认对话框 modal 也找不到那个 有人可以建议我如何使用 AngularJS Angular UI 创建一个简单的对话框 比如
  • 在 Spring 3 中组织类以进行组件扫描的明智方法是什么?

    我已经开始使用 Spring 3 开发一个新项目 并且正在使用注释 我喜欢我可以连接我的类来注入依赖项 但我知道这是一个不好的做法context component scan从基础包开始 我正在使用一个DispatcherServlet它有
  • mysql变量中的字段名

    是否可以选择名称为字符串的字段 SELECT fieldname FROM table 我需要这个触发器才能具有动态字段名称 就像是 SET fieldname NEW name UPDATE table SET fieldname 1 如
  • 免费如何知道要免费多少?

    在 C 编程中 您可以将任何类型的指针作为参数传递给 free 它如何知道要释放的已分配内存的大小 每当我将指针传递给某个函数时 我还必须传递大小 即 10 个元素的数组需要接收 10 作为参数才能知道数组的大小 但我不必将大小传递给免费功
  • AngularJS 对跨源资源执行 OPTIONS HTTP 请求

    我正在尝试设置 AngularJS 与跨域资源进行通信 其中提供模板文件的资产主机位于不同的域中 因此 Angular 执行的 XHR 请求必须是跨域的 我已为 HTTP 请求添加了适当的 CORS 标头到我的服务器 以使其工作 但它似乎不
  • 为什么 Serverless 在尝试打包或部署时会产生无效的跨设备链接错误?

    运行任一命令时 sudo serverless package or sudo serverless deploy 我得到以下回溯 错误 错误 异常 回溯 最近一次调用 文件 var lang lib python3 6 shutil py
  • WCF,发布 JSON 化数据

    我有一个复杂的类型 DataContract public class CustomClass DataMember public string Foo get set DataMember public int Bar get set 然
  • 计算用于定义二次贝塞尔曲线分段的参数

    我有一条二次贝塞尔曲线 描述为 startX startY 到 anchorX anchorY 并使用控制点 controlX controlY 我有两个问题 1 我想根据 x 点确定该曲线上的 y 点 2 然后 给定贝塞尔曲线上的线段 由
  • 如何在 Django 模板中声明变量

    如何在 Django 1 8 模板中声明变量 例如 my var My String 这样我就可以像这样访问它 h1 trans my var h1 Edit 为了证明我的目的 这是我的代码 my var String Text block
  • 使用 SetParameters.xml 通过 powershell 将网站发布到 Azure

    是否有机会使用 SetParameters xml 文件在 Web 部署包中设置参数 我想通过 powershell 脚本和 cmdlet 部署应用程序 选择 Azure订阅 发布 AzureWebsiteProject 但我还没有找到如何
  • 在 Python 版本 3.10 上使用 pip3 在 M1 Mac 上安装 numpy 时出现“不兼容的架构(具有 'arm64',需要 'x86_64')”错误

    我试图使用 pip3 在 M1 Macbook 上安装 numpy 版本 1 22 3 pip3 表示该包存在 但是当我尝试导入该模块时 会向我抛出一个错误 提示我 Importing the numpy C extensions fail
  • 如何中途开始测量?

    在我的赞美诗中 我需要从中间开始第一小节 它的拍值是 3 4 但我必须插入两个空的 不显示的八分音符 我怎么做 我用过o4 o4 c8 d 下面是第一个措施 但 lilypond 不喜欢这样 正确的方法是什么 这是该行 o4 o4 c8 d
  • 使用 opencv 构建自定义 svm 内核矩阵

    我必须训练支持向量机模型 并且我想使用自定义内核矩阵 而不是预设的矩阵 如 RBF Poly 等 我怎样才能用opencv的机器学习库做到这一点 如果可能的话 谢谢你 AFAICT OpenCV 不直接支持 SVM 的自定义内核 看起来 L