Create and Train a Classifier
This section describes how to create and train a classifier.
To create and train a classifier
-
Create a new classifier with the action CreateClassifier.
curl http://localhost:14000/action=CreateClassifier -F classifier=vehicles -
Add classes to the classifier with the action CreateClass. Repeat this action for each class that you want to add.
curl http://localhost:14000/action=CreateClass -F classifier=vehicles -F identifier=car -
Add training images to a class with the action AddClassImages. Run this action as many times as necessary to add sufficient training images to each class.
curl http://localhost:14000/action=AddClassImages -F classifier=vehicles -F identifier=car -F imagedata=@cars/1.jpg,cars/2.jpg -
Choose the number of training iterations to run by setting the
iterationstraining option with the action SetClassifierTrainingOption.curl http://localhost:14000/action=SetClassifierTrainingOption -F classifier=vehicles -F key=iterations -F value=1000 -
(Optional) To take snapshots of the classifier at regular intervals during training, set the
snapshot_frequencytraining option. When you take snapshots, Media Server also sets aside images for evaluating the performance of the classifier. If you want to change the proportion of images that are set aside, you can set thevalidation_proportiontraining option.curl http://localhost:14000/action=SetClassifierTrainingOption -F classifier=vehicles -F key=snapshot_frequency -F value=250 -
Train the classifier by running the action BuildClassifier:
curl http://localhost:14000/action=BuildClassifier -F classifier=vehiclesThis action is asynchronous, so Media Server returns a token. You can use the
QueueInfoaction to check the status of the request.When the
BuildClassifieraction has finished, you can use the classifier. If you did not enable snapshots, the training process is complete. -
If you enabled snapshots, test the performance of the classifier and select the snapshot to use.
-
Run the ListClassifiers action to list the snapshots that are available.
curl http://localhost:14000/action=ListClassifiersThe response to this action includes an index number for each snapshot.
-
Run the TestClassifierSnapshot action for each snapshot that you want to evaluate. The action is asynchronous, so Media Server returns a token. You can use the
QueueInfoaction to check the status of your request(s).curl http://localhost:14000/action=TestClassifierSnapshot -F classifier=vehicles -F snapshotindex=0 -
Review the results with the GetClassifierSnapshotStatistics action.
curl http://localhost:14000/action=GetClassifierSnapshotStatistics -F classifier=vehicles -
If one of the snapshots provides acceptable performance, select the snapshot by running the action SelectClassifierSnapshot.
curl http://localhost:14000/action=SelectClassifierSnapshot -F classifier=vehicles -F snapshotindex=3If none of the snapshots provides acceptable performance, you might need to add additional training data or run more training iterations.
-