Детектор объекта ACF канала
возвращает детектор объекта обучаемых агрегированных характеристик канала (ACF). Функция использует положительные экземпляры объектов в изображениях, приведенных в detector = trainACFObjectDetector(trainingData)trainingData и автоматически собирает отрицательные экземпляры из изображений во время обучения. Чтобы создать основную таблицу истинности, используйте приложение Image Labeler или Video Labeler.
возвращает detector = trainACFObjectDetector(trainingData,Name,Value)detector объект с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары.
Используйте trainACFObjectDetector с обучающими изображениями для создания детектора объекта ACF, который может обнаруживать знаки остановки. Протестируйте детектор с помощью отдельного изображения.
Загрузите данные обучения.
load('stopSignsAndCars.mat')Выберите истинность основания для стоп-сигналов. Эта наземная истина - набор известных мест стоп-знаков на изображениях.
stopSigns = stopSignsAndCars(:,1:2);
Добавьте полный путь к файлам изображений.
stopSigns.imageFilename = fullfile(toolboxdir('vision'),... 'visiondata',stopSigns.imageFilename);
Обучите извещатель ACF. Можно отключить выходные данные о ходе обучения, указав 'Verbose',false в качестве Name,Value пара.
acfDetector = trainACFObjectDetector(stopSigns,'NegativeSamplesFactor',2);ACF Object Detector Training The training will take 4 stages. The model size is 34x31. Sample positive examples(~100% Completed) Compute approximation coefficients...Completed. Compute aggregated channel features...Completed. -------------------------------------------- Stage 1: Sample negative examples(~100% Completed) Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 19 weak learners. -------------------------------------------- Stage 2: Sample negative examples(~100% Completed) Found 84 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 20 weak learners. -------------------------------------------- Stage 3: Sample negative examples(~100% Completed) Found 84 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 54 weak learners. -------------------------------------------- Stage 4: Sample negative examples(~100% Completed) Found 84 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 61 weak learners. -------------------------------------------- ACF object detector training is completed. Elapsed time is 18.9314 seconds.
Протестируйте детектор ACF на тестовом изображении.
img = imread('stopSignTest.jpg');
[bboxes,scores] = detect(acfDetector,img);Отображение результатов обнаружения и вставка ограничивающих прямоугольников для объектов в изображение.
for i = 1:length(scores) annotation = sprintf('Confidence = %.1f',scores(i)); img = insertObjectAnnotation(img,'rectangle',bboxes(i,:),annotation); end figure imshow(img)

trainingData - Маркированные изображения истинности землиПомеченные изображения истинности грунта, заданные как таблица с двумя столбцами. Первый столбец должен содержать пути и имена файлов для изображений в градациях серого или в цветном цвете (RGB). Хотя детекторы на основе ACF лучше всего работают с цветными изображениями. Второй столбец содержит матрицы M-by-4, которые содержат местоположения ограничивающих прямоугольников, связанных с соответствующим изображением. Местоположения имеют формат [x, y, width, height]. Второй столбец представляет положительный экземпляр одного класса объектов, например, автомобиль, собаку, цветок или знак остановки. Отрицательные экземпляры автоматически собираются из изображений в процессе обучения .

Каждая ограничительная рамка должна иметь формат [x, y, width, height]. Формат определяет расположение верхнего левого угла и размер объекта на соответствующем изображении. Имя класса объектов определяется именем переменной (столбца) таблицы. Для создания базовой таблицы истинности используйте приложение Image Labeler.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'ObjectTrainingSize', [100 100]'ObjectTrainingSize' - Размер объектов во время обучения'Auto' (по умолчанию) | 2-элементный векторРазмер объектов во время обучения, заданный как 2-элементный вектор вида [ширина высоты
] в пикселях. Минимальный размер обучения: [8 8]. В процессе обучения размер объектов изменяется до высоты и ширины, заданных 'ObjectTrainingSize'. Увеличение размера может повысить точность обнаружения, но также увеличивает время обучения и обнаружения.
При указании 'Auto'размер задается на основе отношения ширины медианы к высоте положительных экземпляров.
Пример: [100,100]
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
'NumStages' - Количество этапов обучения4 (по умолчанию) | положительное целое числоКоличество этапов обучения для итеративного процесса обучения, указанное как разделенная запятыми пара, состоящая из 'NumStages"и положительное целое число. Увеличение этого числа может улучшить детектор и уменьшить ошибки обучения, за счет более длительного времени обучения.
Типы данных: double
'NegativeSamplesFactor' - Отрицательный коэффициент выборки5 (по умолчанию) | скаляр с действительным значениемОтрицательный коэффициент выборки, указанный как разделенная запятыми пара, состоящая из 'NegativeSamplesFactorи действительный скаляр. Количество отрицательных выборок для использования на каждом этапе равно
NegativeSamplesFactor × количество положительных образцов, использованных на каждом этапе
Типы данных: double
'MaxWeakLearners' - Максимальное число слабых учащихся2048 (по умолчанию) | скаляр положительных целых чисел | вектор положительных целых чиселМаксимальное число слабых учеников на последнем этапе, указанное как пара, разделенная запятыми, состоящая из 'MaxWeakLearners"и положительный целый скаляр или вектор положительных целых чисел. Если вход является скаляром, MaxWeakLearners указывает максимальное число для последнего этапа. Если вход является вектором, MaxWeakLearners указывает максимальное количество для каждого из этапов и должно иметь длину, равную "NumStages'. Эти значения обычно увеличиваются на всех стадиях. Детектор объектов ACF использует алгоритм повышения для создания ансамбля более слабых учеников. Можно использовать более высокие значения для повышения точности обнаружения за счет снижения скорости обнаружения. Рекомендуемые значения варьируются от 300 до 5000.
Типы данных: double
'Verbose' - Отображение информации о ходе выполненияtrue (по умолчанию) | falseПараметр для отображения информации о ходе процесса обучения, указанный как разделенная запятыми пара, состоящая из 'Verbose«и» true или false.
Типы данных: logical
detector - Обученный детектор объекта на основе ACFacfObjectDetector объектОбученный детектор объектов на основе ACF, возвращенный как acfObjectDetector объект.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.