comparison scripts/train-object-classification.py @ 993:e8eabef7857c

update to OpenCV3 for python
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Wed, 16 May 2018 21:06:52 -0400
parents 2757efeabbb4
children 933670761a57
comparison
equal deleted inserted replaced
992:2cd1ce245024 993:e8eabef7857c
1 #! /usr/bin/env python 1 #! /usr/bin/env python
2 2
3 import numpy as np 3 import numpy as np
4 import argparse 4 import argparse
5 from cv2 import SVM_RBF, SVM_C_SVC 5 from cv2.ml import SVM_RBF, SVM_C_SVC, ROW_SAMPLE # row_sample for layout in cv2.ml.SVM_load
6 #from cv2.ml import SVM_RBF, SVM_C_SVC, ROW_SAMPLE # row_sample for layout in cv2.ml.SVM_load
7 6
8 import cvutils, moving, ml, storage 7 import cvutils, moving, ml, storage
9 8
10 parser = argparse.ArgumentParser(description='The program processes indicators for all pairs of road users in the scene') 9 parser = argparse.ArgumentParser(description='The program processes indicators for all pairs of road users in the scene')
11 parser.add_argument('-d', dest = 'directoryName', help = 'parent directory name for the directories containing the samples for the different road users', required = True) 10 parser.add_argument('-d', dest = 'directoryName', help = 'parent directory name for the directories containing the samples for the different road users', required = True)
48 trainingSamplesPV[k], trainingLabelsPV[k] = trainingSamples, trainingLabels 47 trainingSamplesPV[k], trainingLabelsPV[k] = trainingSamples, trainingLabels
49 48
50 # Training the Support Vector Machine 49 # Training the Support Vector Machine
51 print "Training Pedestrian-Cyclist-Vehicle Model" 50 print "Training Pedestrian-Cyclist-Vehicle Model"
52 model = ml.SVM(args.svmType, args.kernelType, args.degree, args.gamma, args.coef0, args.cvalue, args.nu, args.svmP) 51 model = ml.SVM(args.svmType, args.kernelType, args.degree, args.gamma, args.coef0, args.cvalue, args.nu, args.svmP)
53 classifications = model.train(np.concatenate(trainingSamplesPBV.values()), np.concatenate(trainingLabelsPBV.values()), True) 52 classifications = model.train(np.concatenate(trainingSamplesPBV.values()), ROW_SAMPLE, np.concatenate(trainingLabelsPBV.values()), True)
54 if args.computeConfusionMatrix: 53 if args.computeConfusionMatrix:
55 print(classifications) 54 print(classifications)
56 model.save(args.directoryName + "/modelPBV.xml") 55 model.save(args.directoryName + "/modelPBV.xml")
57 56
58 print "Training Cyclist-Vehicle Model" 57 print "Training Cyclist-Vehicle Model"
59 model = ml.SVM(args.svmType, args.kernelType, args.degree, args.gamma, args.coef0, args.cvalue, args.nu, args.svmP) 58 model = ml.SVM(args.svmType, args.kernelType, args.degree, args.gamma, args.coef0, args.cvalue, args.nu, args.svmP)
60 classifications = model.train(np.concatenate(trainingSamplesBV.values()), np.concatenate(trainingLabelsBV.values()), True) 59 classifications = model.train(np.concatenate(trainingSamplesBV.values()), ROW_SAMPLE, np.concatenate(trainingLabelsBV.values()), True)
61 if args.computeConfusionMatrix: 60 if args.computeConfusionMatrix:
62 print(classifications) 61 print(classifications)
63 model.save(args.directoryName + "/modelBV.xml") 62 model.save(args.directoryName + "/modelBV.xml")
64 63
65 print "Training Pedestrian-Cyclist Model" 64 print "Training Pedestrian-Cyclist Model"
66 model = ml.SVM(args.svmType, args.kernelType, args.degree, args.gamma, args.coef0, args.cvalue, args.nu, args.svmP) 65 model = ml.SVM(args.svmType, args.kernelType, args.degree, args.gamma, args.coef0, args.cvalue, args.nu, args.svmP)
67 classifications = model.train(np.concatenate(trainingSamplesPB.values()), np.concatenate(trainingLabelsPB.values()), True) 66 classifications = model.train(np.concatenate(trainingSamplesPB.values()), ROW_SAMPLE, np.concatenate(trainingLabelsPB.values()), True)
68 if args.computeConfusionMatrix: 67 if args.computeConfusionMatrix:
69 print(classifications) 68 print(classifications)
70 model.save(args.directoryName + "/modelPB.xml") 69 model.save(args.directoryName + "/modelPB.xml")
71 70
72 print "Training Pedestrian-Vehicle Model" 71 print "Training Pedestrian-Vehicle Model"
73 model = ml.SVM(args.svmType, args.kernelType, args.degree, args.gamma, args.coef0, args.cvalue, args.nu, args.svmP) 72 model = ml.SVM(args.svmType, args.kernelType, args.degree, args.gamma, args.coef0, args.cvalue, args.nu, args.svmP)
74 classifications = model.train(np.concatenate(trainingSamplesPV.values()), np.concatenate(trainingLabelsPV.values()), True) 73 classifications = model.train(np.concatenate(trainingSamplesPV.values()), ROW_SAMPLE, np.concatenate(trainingLabelsPV.values()), True)
75 if args.computeConfusionMatrix: 74 if args.computeConfusionMatrix:
76 print(classifications) 75 print(classifications)
77 model.save(args.directoryName + "/modelPV.xml") 76 model.save(args.directoryName + "/modelPV.xml")