实时 SVM 性能差
Poor real-time SVM performance
我正在开发一个手势识别程序。我的数据集由不同姿势的手组成。在进入神经网络之前,我尝试使用 SVM 来获取基线。我的数据集有 6 个 class 我正在尝试 class 验证,每个 class.
大约有 1000 个示例
我使用了 80-20 的拆分。 80% 用于训练,20% 用于测试。在 运行 测试集上的 SVM 模型之后,我绘制了一个混淆矩阵,它向我展示了它获得 ~96% Precision 、~96% Recall 和 ~96% F1-Score。
以下是我的训练集图像的一些示例:
https://imgur.com/gwRSx3C
https://imgur.com/UxUPj5t
https://imgur.com/wXcaUq6
网络摄像头图像
https://imgur.com/j97cTnp
https://imgur.com/6QDHMAD
https://imgur.com/C9DELsr
这是我的网络摄像头中的一些图像。
我很自然地兴奋起来。唯一的缺点是,当我将我的模型连接到网络摄像头进行实时推理时,该模型是边缘对接。如果精度、召回率、f1 如此之高,有人知道为什么它会做得这么糟糕吗?
有 2 个可能的答案
您的模型过拟合。
您的训练和测试数据集的来源分布与您网络摄像头的数据不同。
我认为你的问题是你的网络摄像头数据与你的训练数据有很大不同。
要调试您的模型,您应该执行以下操作
- 将训练数据与您的网络摄像头图像进行比较。
- 使用验证集,只在最后一刻使用测试集。
- 重新考虑您的功能。
- 使用您的一些网络摄像头数据进行训练,并将其混合到数据集中。
我正在开发一个手势识别程序。我的数据集由不同姿势的手组成。在进入神经网络之前,我尝试使用 SVM 来获取基线。我的数据集有 6 个 class 我正在尝试 class 验证,每个 class.
大约有 1000 个示例我使用了 80-20 的拆分。 80% 用于训练,20% 用于测试。在 运行 测试集上的 SVM 模型之后,我绘制了一个混淆矩阵,它向我展示了它获得 ~96% Precision 、~96% Recall 和 ~96% F1-Score。
以下是我的训练集图像的一些示例:
https://imgur.com/gwRSx3C
https://imgur.com/UxUPj5t
https://imgur.com/wXcaUq6
网络摄像头图像
https://imgur.com/j97cTnp
https://imgur.com/6QDHMAD
https://imgur.com/C9DELsr
这是我的网络摄像头中的一些图像。
我很自然地兴奋起来。唯一的缺点是,当我将我的模型连接到网络摄像头进行实时推理时,该模型是边缘对接。如果精度、召回率、f1 如此之高,有人知道为什么它会做得这么糟糕吗?
有 2 个可能的答案
您的模型过拟合。
您的训练和测试数据集的来源分布与您网络摄像头的数据不同。
我认为你的问题是你的网络摄像头数据与你的训练数据有很大不同。
要调试您的模型,您应该执行以下操作
- 将训练数据与您的网络摄像头图像进行比较。
- 使用验证集,只在最后一刻使用测试集。
- 重新考虑您的功能。
- 使用您的一些网络摄像头数据进行训练,并将其混合到数据集中。