Я хочу сравнить производительность модели yolov3, которая может обнаружить несколько классов, с моделью yolov3, которая может обнаружить только один класс.
Что я сделал до сих пор:
- Для сравнения я использую модель yolov3, которая предварительно обучена на наборе данных COCO. Поэтому я использую файлы yolov3.cfg coco.data и файлы yolov3.weights, которые упоминаются здесь: https://pjreddie.com/darknet/yolo/
- Затем я загрузил данные train и val для уточнения c класс с сайта COCO. ~ 6400 обучающих изображений и ~ 2600 проверочных данных для человека класса и ~ 12744 обучающих изображений и ~ 580 проверочных изображений для кресла класса.
- для моделей с одним классом, я изменил yolov3.cfg в соответствующей линии (# классы = 1 и # фильтры = 18)
- Затем я обучил модель yolov3 для каждого (человек и кресло) на основе файла предварительно обученных весов: darknet53.conv.74
Обучение
- Я обучил модель для классного человека примерно 267100 партиям. (AVG-LOSS: 1.3)
- Я подготовил модель для кресла класса примерно для 51200 партий. (AVG-LOSS: 1.0)
Проверка
- Я использовал загруженные проверочные изображения для расчета карты -value / ар-значение. Я сделал это, позвонив по номеру
darknet detector map model.data model.cfg model.best.weights
из класса
Когда я использую модель кокоса по умолчанию, которая может обнаружить 80 классов, я получаю:
class_id = 0, name = person, ap = 76.56%, (TP=7684, FP=3982)
Обученная одноклассная модель достигает:
class_id = 0, name = person, ap = 66.63%, (TP=6515, FP=2259)
стул класса
Когда я использую модель кокоса по умолчанию, которая может обнаружить 80 классов, я получаю:
class_id = 0, name = person, ap = 60.58%, (TP=880, FP=504)
Обученная одноклассная модель достигает:
class_id = 0, name = person, ap = 38.59%, (TP=482, FP=232)
Вопросы
Почему средняя потеря во время тренировки все еще превышает 1,0? Похоже, что функция уже сошлась, и я уже выше эмпирического правила ~ 2000 пакетов в классе.
Разве объем данных не должен быть достаточным для обучения только один класс? Особенно, когда я использую предварительно подготовленные веса для конвальных слоев?
Являются ли средние значения точности (ap) реалистичными c? Верно ли, что модели с одним классом работают хуже, чем модель, которая обучается во всех 80 классах? Если нет, что может быть причиной того, что точность одноклассной модели хуже?
Если да, то это связано с тем, что если мы тренируемся со всеми классами, мы действительно можем узнать различия между классами, и это приводит к лучшей производительности, что просто изучение только одного класса ?
изображение поезда класса стул
изображение поезда человека класса