C++ 使用机器学习和小型数据库进行分类
我想创建一个阀门检测和分类,如以下视频: 检测阀门的开启、关闭和中间位置 我做了一些研究,找到了一些解决这个问题的方法,但我有一些条件来解决这个问题: 条件1:在应用程序中使用机器学习,我不能使用简单的方法,如模板匹配 条件2:使用一个小型数据库,按类别至少10张图像,按类别最多40张图像 条件3:如果摄像头位置发生变化,则检测阀门的位置,因此我不能仅使用颜色来检测阀门手柄 我想使用HOG直方图导向梯度+SVM/ANN,但是HOG需要很多图像来训练SVM/ANNC++ 使用机器学习和小型数据库进行分类,c++,opencv,image-processing,machine-learning,C++,Opencv,Image Processing,Machine Learning,我想创建一个阀门检测和分类,如以下视频: 检测阀门的开启、关闭和中间位置 我做了一些研究,找到了一些解决这个问题的方法,但我有一些条件来解决这个问题: 条件1:在应用程序中使用机器学习,我不能使用简单的方法,如模板匹配 条件2:使用一个小型数据库,按类别至少10张图像,按类别最多40张图像 条件3:如果摄像头位置发生变化,则检测阀门的位置,因此我不能仅使用颜色来检测阀门手柄 我想使用HOG直方图导向梯度+SVM/ANN,但是HOG需要很多图像来训练SVM/ANN 我不知道在这种情况下是否可以解决
我不知道在这种情况下是否可以解决这个问题?正如我们所知,ML方法需要正确工作的最重要的事情是数据。所以,我认为你的第一个和第二个条件是相互冲突的。此外,您的第三个条件增加了问题的复杂性。您可以通过包含来自不同角度和照明条件的更多数据来解决此问题。但同样,它与条件2相冲突 即便如此,如果您想遵循ML路径,我建议您使用预先训练的模型、强大的数据扩充,或者使用一组模型来帮助提高检测率。由于问题不是那么难,它应该有效
祝你好运。找到一个适用于你的应用程序的特征描述符,一定要使用SVM而不是NN。如果你选择好你的训练特征,支持向量机即使在训练集很小的情况下也能很好地工作。