comparison scripts/train-object-classification.py @ 998:933670761a57

updated code to python 3 (tests pass and scripts run, but non-executed parts of code are probably still not correct)
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Sun, 27 May 2018 23:22:48 -0400
parents e8eabef7857c
children d478d3122804
comparison
equal deleted inserted replaced
997:4f3387a242a1 998:933670761a57
1 #! /usr/bin/env python 1 #! /usr/bin/env python3
2 2
3 import numpy as np 3 import numpy as np
4 import argparse 4 import argparse
5 from cv2.ml import SVM_RBF, SVM_C_SVC, ROW_SAMPLE # row_sample for layout in cv2.ml.SVM_load 5 from cv2.ml import SVM_RBF, SVM_C_SVC, ROW_SAMPLE # row_sample for layout in cv2.ml.SVM_load
6 6
33 trainingSamplesPB = {} 33 trainingSamplesPB = {}
34 trainingLabelsPB = {} 34 trainingLabelsPB = {}
35 trainingSamplesPV = {} 35 trainingSamplesPV = {}
36 trainingLabelsPV = {} 36 trainingLabelsPV = {}
37 37
38 for k, v in imageDirectories.iteritems(): 38 for k, v in imageDirectories.items():
39 print('Loading {} samples'.format(k)) 39 print('Loading {} samples'.format(k))
40 trainingSamples, trainingLabels = cvutils.createHOGTrainingSet(v, moving.userType2Num[k], classifierParams.hogRescaleSize, classifierParams.hogNOrientations, classifierParams.hogNPixelsPerCell, classifierParams.hogBlockNorm, classifierParams.hogNCellsPerBlock) 40 trainingSamples, trainingLabels = cvutils.createHOGTrainingSet(v, moving.userType2Num[k], classifierParams.hogRescaleSize, classifierParams.hogNOrientations, classifierParams.hogNPixelsPerCell, classifierParams.hogBlockNorm, classifierParams.hogNCellsPerBlock)
41 trainingSamplesPBV[k], trainingLabelsPBV[k] = trainingSamples, trainingLabels 41 trainingSamplesPBV[k], trainingLabelsPBV[k] = trainingSamples, trainingLabels
42 if k != 'pedestrian': 42 if k != 'pedestrian':
43 trainingSamplesBV[k], trainingLabelsBV[k] = trainingSamples, trainingLabels 43 trainingSamplesBV[k], trainingLabelsBV[k] = trainingSamples, trainingLabels
45 trainingSamplesPB[k], trainingLabelsPB[k] = trainingSamples, trainingLabels 45 trainingSamplesPB[k], trainingLabelsPB[k] = trainingSamples, trainingLabels
46 if k != 'bicycle': 46 if k != 'bicycle':
47 trainingSamplesPV[k], trainingLabelsPV[k] = trainingSamples, trainingLabels 47 trainingSamplesPV[k], trainingLabelsPV[k] = trainingSamples, trainingLabels
48 48
49 # Training the Support Vector Machine 49 # Training the Support Vector Machine
50 print "Training Pedestrian-Cyclist-Vehicle Model" 50 print("Training Pedestrian-Cyclist-Vehicle Model")
51 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)
52 classifications = model.train(np.concatenate(trainingSamplesPBV.values()), ROW_SAMPLE, np.concatenate(trainingLabelsPBV.values()), True) 52 classifications = model.train(np.concatenate(list(trainingSamplesPBV.values())), ROW_SAMPLE, np.concatenate(list(trainingLabelsPBV.values())), True)
53 if args.computeConfusionMatrix: 53 if args.computeConfusionMatrix:
54 print(classifications) 54 print(classifications)
55 model.save(args.directoryName + "/modelPBV.xml") 55 model.save(args.directoryName + "/modelPBV.xml")
56 56
57 print "Training Cyclist-Vehicle Model" 57 print("Training Cyclist-Vehicle Model")
58 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)
59 classifications = model.train(np.concatenate(trainingSamplesBV.values()), ROW_SAMPLE, np.concatenate(trainingLabelsBV.values()), True) 59 classifications = model.train(np.concatenate(list(trainingSamplesBV.values())), ROW_SAMPLE, np.concatenate(list(trainingLabelsBV.values())), True)
60 if args.computeConfusionMatrix: 60 if args.computeConfusionMatrix:
61 print(classifications) 61 print(classifications)
62 model.save(args.directoryName + "/modelBV.xml") 62 model.save(args.directoryName + "/modelBV.xml")
63 63
64 print "Training Pedestrian-Cyclist Model" 64 print("Training Pedestrian-Cyclist Model")
65 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)
66 classifications = model.train(np.concatenate(trainingSamplesPB.values()), ROW_SAMPLE, np.concatenate(trainingLabelsPB.values()), True) 66 classifications = model.train(np.concatenate(list(trainingSamplesPB.values())), ROW_SAMPLE, np.concatenate(list(trainingLabelsPB.values())), True)
67 if args.computeConfusionMatrix: 67 if args.computeConfusionMatrix:
68 print(classifications) 68 print(classifications)
69 model.save(args.directoryName + "/modelPB.xml") 69 model.save(args.directoryName + "/modelPB.xml")
70 70
71 print "Training Pedestrian-Vehicle Model" 71 print("Training Pedestrian-Vehicle Model")
72 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)
73 classifications = model.train(np.concatenate(trainingSamplesPV.values()), ROW_SAMPLE, np.concatenate(trainingLabelsPV.values()), True) 73 classifications = model.train(np.concatenate(list(trainingSamplesPV.values())), ROW_SAMPLE, np.concatenate(list(trainingLabelsPV.values())), True)
74 if args.computeConfusionMatrix: 74 if args.computeConfusionMatrix:
75 print(classifications) 75 print(classifications)
76 model.save(args.directoryName + "/modelPV.xml") 76 model.save(args.directoryName + "/modelPV.xml")