Mercurial > hg > nsaunier > 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") |
