Класс: imageCategoryClassifier
Оцените классификатор изображений на наборе наборов изображений
confMat = evaluate(classifier,imds)[confMat,knownLabelIdx,predictedLabelIdx,score] =
evaluate(classifier,imds)[___] = evaluate(___,'Verbose',true)confMat = evaluate( возвращает нормированную матрицу беспорядка, classifier,imds)confMat.
[confMat,knownLabelIdx,predictedLabelIdx,score] =
evaluate( дополнительно возвращает соответствующие индексы метки и счет.classifier,imds)
[___] = evaluate(___, также включает отображение прогресса на экран. Установите на 'Verbose',true)false, чтобы выключить его.
imds ИзображенияImageDatastoreИзображения, заданные как объект ImageDatastore.
classifier — Отобразите классификатор категорииimageCategoryClassifierОтобразите классификатор категории, заданный как объект imageCategoryClassifier.
imgSet — Изображение установленоimageSetНабор изображений, заданный как объект imageSet.
confMat — Матрица беспорядкаМатрица беспорядка, возвращенная как матрица. Индексы строки соответствуют известным меткам, и столбцы соответствуют предсказанным меткам.
knownLabelIdx — Маркируйте индекс для набора изображенийМаркируйте индекс для набора изображений, возвращенного как M-by-1 вектор для изображений M. Выходное значение knownLabelIdx соответствует индексу набора изображений, используемого, чтобы обучить мешок функций.
predictedLabelIdx — PredictedПредсказанный индекс метки, возвращенный как M-by-1 вектор для изображений M. Выходное значение predictedLabelIdx соответствует индексу набора изображений, используемого, чтобы обучить мешок функций. Предсказанный индекс соответствует классу с самым большим значением в score вывод.
score — Счет прогнозаСчет прогноза, заданный как M-by-N матрица. N представляет количество классов. M представляет количество изображений во входном объекте imageSet, imgSet. Счет предоставляет отрицаемую среднюю бинарную потерю в классе. Каждый класс является классификатором мультикласса машины вектора поддержки (SVM), который использует подход выходных кодов с коррекцией ошибок (ECOC).
Загрузите две категории изображений.
setDir = fullfile(toolboxdir('vision'),'visiondata','imageSets'); imds = imageDatastore(setDir,'IncludeSubfolders',true,'LabelSource',... 'foldernames');
Разделите набор данных в обучение и тестовые данные. Выберите 30% изображений от каждого набора для данных тренировки и остатка 70% для тестовых данных.
[trainingSet,testSet] = splitEachLabel(imds,0.3,'randomize');Создайте мешок визуальных слов.
bag = bagOfFeatures(trainingSet);
Creating Bag-Of-Features. ------------------------- * Image category 1: books * Image category 2: cups * Selecting feature point locations using the Grid method. * Extracting SURF features from the selected feature point locations. ** The GridStep is [8 8] and the BlockWidth is [32 64 96 128]. * Extracting features from 4 images...done. Extracted 76800 features. * Keeping 80 percent of the strongest features from each category. * Using K-Means clustering to create a 500 word visual vocabulary. * Number of features : 61440 * Number of clusters (K) : 500 * Initializing cluster centers...100.00%. * Clustering...completed 21/100 iterations (~0.17 seconds/iteration)...converged in 21 iterations. * Finished creating Bag-Of-Features
Обучите классификатор с наборами обучающих данных.
categoryClassifier = trainImageCategoryClassifier(trainingSet,bag);
Training an image category classifier for 2 categories. -------------------------------------------------------- * Category 1: books * Category 2: cups * Encoding features for 4 images...done. * Finished training the category classifier. Use evaluate to test the classifier on a test set.
Оцените классификатор с помощью тестовых изображений. Отобразите матрицу беспорядка.
confMatrix = evaluate(categoryClassifier,testSet)
Evaluating image category classifier for 2 categories.
-------------------------------------------------------
* Category 1: books
* Category 2: cups
* Evaluating 8 images...done.
* Finished evaluating all the test sets.
* The confusion matrix for this test set is:
PREDICTED
KNOWN | books cups
--------------------------
books | 0.75 0.25
cups | 0.25 0.75
* Average Accuracy is 0.75.
confMatrix = 2×2
0.7500 0.2500
0.2500 0.7500
Найдите среднюю точность классификации.
mean(diag(confMatrix))
ans = 0.7500
Примените недавно обученный классификатор, чтобы категоризировать новые изображения.
img = imread(fullfile(setDir,'cups','bigMug.jpg')); [labelIdx, score] = predict(categoryClassifier,img);
Отобразите метку классификации.
categoryClassifier.Labels(labelIdx)
ans = 1x1 cell array
{'cups'}
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.