Mercurial Hosting > traffic-intelligence
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") |