Skip to content

zhzgithub/svm-opencv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

准备工作: 图片什么尺寸需要在train.py文件的开头设置,如WIDTH = 16 HEIGHT = 32
然后根据自己的数据集情况,在get_hog()函数中设置HOG的参数,尤其注意get_hog()函数中winSize尺寸需要自己指定为具体数字尺寸,不要用变量或者什么加减乘除的。(关于hog参数的设置解释可以参考 https://blog.csdn.net/yangpan011/article/details/78353873),之前识别箭头把winsize设置为图像相同大小是因为箭头占满了整张图片,对于关键特征并没有占满整张图片的时候,需要把winsize设置小一点。
然后再把train.py文件中的类别标签name_and_label = {'lightOn': 0, 'lightOff': 1}修改为自己的类别即可。
1.如果环境需要使用opencv3的svm,先在train.py中设置label,然后运行opencv3下的python3 train.py,之后会得到hog_descriptor.xmlsvm.xml两个文件。哪里需要用到svm模型直接用hog_descriptor.xmlsvm.xml再新建一个label.txt文件共三个文件即可,这个新建的label.txt文件中的各个类别名称按svm的分类顺序填写。 2.如果环境需要使用opencv2的svm,可以先使用opencv3/下的程序训练模型,然后会得到一个svm.xml的模型文件,该文件中里面有Cgamma,然后把opencv2-train.pymodel = SVM(C=1.25, gamma=0.03375)这句话的Cgamma值修改为opencv3训练完成的svm.xml中的Cgamma值,然后再进行使用opencv2进行训练,训练完成会得到hog_descriptor.xmlsvm-opencv2.xml两个文件。 3.数据集放在opencv2/opencv3/下的data文件夹下。 把每个类别文件夹下的图片前缀以类别文件夹名命名(python3 rename.py是用来重命名图片名的),训练时可以不用这么命名,测试时候测试图片也需要这么来命名。

4.测试 如果需要用其他的数据测试训练好的模型,可以把测试图片放入test目录下,文件命名方式为 类别名_*.jpg,比如left_1234.jpg。然后注释掉train()函数使用test()函数进行测试。

if __name__ == '__main__':
    # train()
    test()

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published