Распознавание транспортных средств и их атрибутов
FindFace Multi может распознавать отдельные транспортные средства и их атрибуты.
Атрибуты ТС следующие:
регистрационный знак (для отдельных стран),
Примечание
Поддерживается распознавание регистрационных знаков для следующих стран:
Европа: Россия, Литва, Латвия, Эстония, Финляндия, Чехия, Сербия, Белоруссия, Украина, Молдавия, Грузия, Азербайджан, Армения, Турция.
Азия: ОАЭ, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Саудовская Аравия, Вьетнам, Индия, Пакистан, Таиланд, Китай, Япония, Монголия, Сингапур, Южная Корея, Бахрейн, Катар, Палестина, Иран, Ирак, Иордания, Кувейт, Оман.
Африка: Египет, Марокко, Тунис, ЮАР.
Северная Америка: Мексика.
Южная Америка: Аргентина, Бразилия, Колумбия, Перу.
цвет,
марка,
модель,
тип кузова,
категория ТС,
ракурс (вид спереди, сзади или сбоку),
принадлежность к спецтранспорту (такси, маршрутный транспорт, каршеринг, скорая помощь, полиция, спасательные службы, газоспасательные и аварийно-спасательные службы, военная техника, техника дорожных служб, автомобили службы инкассации, остальной спецтранспорт),
тип ТС по весу и размеру кузова.
Примечание
Распознавание спецтранспорта, так же как и распознавание ТС по весу и размеру кузова, работает только для некоторых стран. За дополнительной информацией обращайтесь к вашему менеджеру или в службу поддержки (support@ntechlab.com).
Распознавание транспортных средств вместе с выбором атрибутов распознавания можно настроить на уровне установки продукта. При стандартной установке система по умолчанию разворачивает объект car под распознавание регистрационного знака, а не транспортного средства. Это означает, что событие обнаружения транспортного средства будет создано только в случае распознавания регистрационного знака. В этом разделе описывается как включить распознавание ТС и их атрибутов, если этот шаг был пропущен при установке. Также вы узнаете, как настроить сервис findface-video-worker, чтобы события обнаружения создавались либо при распознавании транспортного средства, либо при распознавании регистрационного знака.
Для включения распознавания транспортных средств и их атрибутов выполните следующие действия:
В файле конфигурации
/opt/findface-multi/configs/findface-extraction-api/findface-extraction-api.yamlукажите модели нейронных сетей для распознавания транспортных средств и распознавания атрибутов транспортных средств.Важно
Удостоверьтесь, что для каждой модели вы указали правильный тип ускорения: CPU или GPU. Он должен совпадать с типом ускорения
findface-extraction-api. Обратите внимание, чтоfindface-extraction-apiна CPU может работать только с CPU-моделями, в то время какfindface-extraction-apiна GPU поддерживает как GPU-, так и CPU-модели.Откройте файл конфигурации
findface-extraction-api.yaml.sudo vi /opt/findface-multi/configs/findface-extraction-api/findface-extraction-api.yaml
Укажите модель детектора ТС в разделе
detectors → models, вставив следующий код:GPU
detectors: ... models: ... gustav: aliases: - car - efreitor model: detector/cardet.kali_accurate.008.gpu.fnk options: min_object_size: 32 resolutions: - 2048x2048 ...
CPU
detectors: ... models: ... gustav: aliases: - car - efreitor model: detector/cardet.kali_accurate.008.cpu.fnk options: min_object_size: 32 resolutions: - 2048x2048 ...
В разделе
objects → carукажитеquality_attribute: car_qualityи, в зависимости от вашего типа ускорения,base_normalizer: facenorm/cropbbox.v2.gpu.fnkилиbase_normalizer: facenorm/cropbbox.v2.cpu.fnk:GPU
objects: ... car: base_normalizer: facenorm/cropbbox.v2.gpu.fnk quality_attribute: car_quality ...
CPU
objects: ... car: base_normalizer: facenorm/cropbbox.v2.cpu.fnk quality_attribute: car_quality ...
Укажите нормализаторы, необходимые для работы экстракторов. Например, если вам требуется настроить распознавание автомобильных номеров, укажите нормализатор
carlicplate. Для остальных экстракторов укажите нормализаторcropbbox.Нормализатор
Модель нормализатора
Используется для экстракторов
carlicplate
carnorm/carnorm.briacon.v3.gpu.fnkcarnorm/carnorm.briacon.v3.cpu.fnkcar_license_platecropbbox
facenorm/cropbbox.v2.gpu.fnkfacenorm/cropbbox.v2.cpu.fnkcar_license_plate_quality,car_description,car_quality,car_special_types12,car_categories,car_orientation,car_weight_types7GPU
normalizers: ... models: ... carlicplate: model: carnorm/carnorm.briacon.v3.gpu.fnk ... cropbbox: model: facenorm/cropbbox.v2.gpu.fnk ...
CPU
normalizers: ... models: ... carlicplate: model: carnorm/carnorm.briacon.v3.cpu.fnk ... cropbbox: model: facenorm/cropbbox.v2.cpu.fnk ...
Укажите модели необходимых экстракторов в разделе
extractors → models:GPU
extractors: ... models: car_categories: default: model: carattr/carattr.categories.v1.gpu.fnk car_color: default: model: '' car_container_number: default: model: '' car_description: default: model: carattr/carattr.description.v1.gpu.fnk car_dumptruck_types: default: model: '' car_emben: default: model: carrec/bottas.gpu.fnk car_license_plate: default: model: carattr/carattr.license_plate.v11.gpu.fnk car_license_plate_quality: default: model: carattr/carattr.license_plate_quality.v4.gpu.fnk car_license_plate_visibility: default: model: '' car_make: default: model: '' car_orientation: default: model: carattr/carattr.orientation.v0.gpu.fnk car_quality: default: model: carattr/carattr.quality.v1.gpu.fnk car_special_types: default: model: '' car_special_types11: default: model: '' car_special_types12: default: model: carattr/carattr.special_types12.v0.gpu.fnk car_trash: default: model: '' car_weight_types7: default: model: carattr/carattr.weight_types7.v0.gpu.fnk
CPU
extractors: ... models: car_categories: default: model: carattr/carattr.categories.v1.cpu.fnk car_color: default: model: '' car_container_number: default: model: '' car_description: default: model: carattr/carattr.description.v1.cpu.fnk car_dumptruck_types: default: model: '' car_emben: default: model: carrec/bottas.cpu.fnk car_license_plate: default: model: carattr/carattr.license_plate.v11.cpu.fnk car_license_plate_quality: default: model: carattr/carattr.license_plate_quality.v4.cpu.fnk car_license_plate_visibility: default: model: '' car_make: default: model: '' car_orientation: default: model: carattr/carattr.orientation.v0.cpu.fnk car_quality: default: model: carattr/carattr.quality.v1.cpu.fnk car_special_types: default: model: '' car_special_types11: default: model: '' car_special_types12: default: model: carattr/carattr.special_types12.v0.cpu.fnk car_trash: default: model: '' car_weight_types7: default: model: carattr/carattr.weight_types7.v0.cpu.fnk
Доступны следующие экстракторы:
Экстрактор
Настройка
вектор признаков отдельного ТС
car_emben: carrec/bottas.cpu.fnkcar_emben: carrec/bottas.gpu.fnkномерной знак
car_license_plate: carattr/carattr.license_plate.v11.cpu.fnkcar_license_plate_quality: carattr/carattr.license_plate_quality.v4.cpu.fnkcar_license_plate: carattr/carattr.license_plate.v11.gpu.fnkcar_license_plate_quality: carattr/carattr.license_plate_quality.v4.gpu.fnkнабор атрибутов: марка / цвет / модель / тип кузова
car_description: carattr/carattr.description.v1.cpu.fnkcar_description: carattr/carattr.description.v1.gpu.fnkкачество изображения ТС
car_quality: carattr/carattr.quality.v1.cpu.fnkcar_quality: carattr/carattr.quality.v1.gpu.fnkспецтранспорт
car_special_types: carattr/carattr.special_types12.v0.cpu.fnkcar_special_types: carattr/carattr.special_types12.v0.gpu.fnkкатегория ТС
car_categories: carattr/carattr.categories.v1.cpu.fnkcar_categories: carattr/carattr.categories.v1.gpu.fnkтип ТС по весу и размеру кузова
car_weight_types7: carattr/carattr.weight_types7.v0.cpu.fnkcar_weight_types7: carattr/carattr.weight_types7.v0.gpu.fnkракурс ТС
car_orientation: carattr/carattr.orientation.v0.cpu.fnkcar_orientation: carattr/carattr.orientation.v0.gpu.fnkПримечание
Модель распознавания специальных транспортных средств по умолчанию
carattr.special_types12.v0указана в экстрактореcar_special_types12. Данная модель распознает 12 классов. Возможно, вам потребуется использовать модель распознавания спецтранспорта, которая распознает меньшее количество классов. Для подключения моделиcarattr.special_types11.v1укажите ее в экстрактореcar_special_types11в файле/opt/findface-multi/configs/findface-extraction-api/findface-extraction-api.yaml. Для подключения моделиcarattr.special_types.v0укажите ее в экстрактореcar_special_typesв файле/opt/findface-multi/configs/findface-extraction-api/findface-extraction-api.yaml.В файле
/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.pyизмените значение параметраCAR_SPECIAL_VEHICLE_TYPE_EXTRACTOR, которое по умолчанию установлено вcar_special_types12. Укажите включенный экстрактор распознавания специальных транспортных средств. Например, если вы включили модельcarattr.special_types11.v1, укажите'CAR_SPECIAL_VEHICLE_TYPE_EXTRACTOR': 'car_special_types11'.Стандартная установка FindFace Multi включает модель распознавания спецтранспорта
carattr.special_types12.v0. Если вы используете другую модель распознавания спецтранспорта, скопируйте ее в каталог/opt/findface-multi/models/carattr/перед тем как вносить изменения в файлы конфигурации.Важно
FindFace Multi распознает настроенные вами атрибуты. Значение уверенности распознавания атрибута зависит от используемых моделей нейронных сетей. За дополнительной информацией обращайтесь в службу поддержки по адресу support@ntechlab.com.
Внесите изменения в конфигурационный файл
/opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml.В зависимости от потребности можно настроить сервис
findface-video-workerтаким образом, чтобы события обнаружения создавались при распознавании ТС или ГРЗ. В примере ниже приведена конфигурацияfindface-video-worker, при которой события обнаружения ТС будут происходить только при распознавании регистрационного знака.Если вы хотите получать события обнаружения транспортного средства на основе распознавания самого транспортного средства, в примере ниже укажите модель
carattr.quality.v1в разделеextractors→car_quality. Остальные настройки останутся без изменений.В разделе
modelsукажите модели детектора, нормализатора и экстрактора для объектаcar, как показано в примере ниже:GPU
sudo vi /opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml models: ... detectors: ... car: fnk_path: /usr/share/findface-data/models/detector/car.gustav_normal.007.gpu.fnk min_size: 60 ... normalizers: ... car_norm: fnk_path: /usr/share/findface-data/models/facenorm/cropbbox.v2.gpu.fnk car_norm_quality: fnk_path: /usr/share/findface-data/models/facenorm/cropbbox.v2.gpu.fnk ... extractors: ... car_quality: fnk_path: /usr/share/findface-data/models/carattr/carattr.license_plate_quality.v4.gpu.fnk normalizer: car_norm_quality
CPU
sudo vi /opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml models: ... detectors: ... car: fnk_path: /usr/share/findface-data/models/detector/car.gustav_normal.007.cpu.fnk min_size: 60 ... normalizers: ... car_norm: fnk_path: /usr/share/findface-data/models/facenorm/cropbbox.v2.cpu.fnk car_norm_quality: fnk_path: /usr/share/findface-data/models/facenorm/cropbbox.v2.cpu.fnk ... extractors: ... car_quality: fnk_path: /usr/share/findface-data/models/carattr/carattr.license_plate_quality.v4.cpu.fnk normalizer: car_norm_quality
В раздел
objectsдобавьте раздел для объектаcar:objects: ... car: normalizer: car_norm quality: car_quality track_features: ''
Важно
При конфигурации
findface-video-workerпод распознавание ГРЗ событие обнаружения ТС может быть не создано, если не распознан ГРЗ.Откройте файл конфигурации
/opt/findface-multi/configs/findface-video-manager/findface-video-manager.yamlи убедитесь, что он содержит разделcarвdetectors, аналогичный приведенному ниже. Обратите внимание, что для параметраfilter_min_qualityпо умолчанию установлено значение0.6. Для получения более точных результатов с камер и других источников видео его можно увеличить. Рекомендованный порог равен0.73.sudo vi /opt/findface-multi/configs/findface-video-manager/findface-video-manager.yaml detectors: ... car: filter_min_quality: 0.6 filter_min_size: 100 filter_max_size: 8192 roi: '' fullframe_crop_rot: false fullframe_use_png: false jpeg_quality: 95 overall_only: true realtime_post_first_immediately: false realtime_post_interval: 1 realtime_post_every_interval: false track_interpolate_bboxes: true track_miss_interval: 1 track_overlap_threshold: 0.25 track_max_duration_frames: 0 track_send_history: false post_best_track_frame: true post_best_track_normalize: true post_first_track_frame: false post_last_track_frame: false tracker_type: simple_iou track_deep_sort_matching_threshold: 0.65 track_deep_sort_filter_unconfirmed_tracks: true track_object_is_principal: false track_history_active_track_miss_interval: 0 filter_track_min_duration_frames: 1 tracker_settings: oc_sort: filter_unconfirmed_tracks: true high_quality_detects_threshold: 0.6 momentum_delta_time: 3 smooth_factor: 0.5 time_since_update: 0 extractors_track_triggers: {}
Примечание
Настройка параметра
filter_min_qualityвлияет только на результаты, получаемые от видеоисточников, и не влияет на результаты подсчета транспортных средств и качество изображений транспортных средств, используемых в карточках. Чтобы получить более точные результаты подсчета или карточки ТС с изображениями лучшего качества, отдельно настройте параметрMINIMUM_CAR_QUALITYв файле конфигурацииfindface-multi-legacy.py. Эта настройка будет описана ниже.Включите распознавание транспортных средств и атрибутов распознавания в файле конфигурации
/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py. Выполните следующие действия:В разделе
FFSECURITYустановите'ENABLE_CARS': True.sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py FFSECURITY = { ... # optional objects to detect 'ENABLE_CARS': True, ...
В этом же разделе можно настроить параметр
MINIMUM_CAR_QUALITY. По умолчанию для него установлено значение0.6, что является рекомендуемым минимальным порогом качества изображения автомобиля, достаточным для создания карточки или для подсчета.FFSECURITY = { ... # minimum car quality sufficient to add it to a card and use object in counter # p.s. set this parameter equals to `0.73` for more accurate results 'MINIMUM_CAR_QUALITY': 0.6, # model: [carattr.quality.v1] ...
Если нужны более точные результаты подсчета или карточки автомобилей с изображениями лучшего качества, порог
MINIMUM_CAR_QUALITYможно увеличить. Рекомендовано значение, равное0.73.В разделе
FFSECURITYукажите атрибуты ТС, которые требуется отображать в событиях распознавания.# available features are: category, description, license_plate, orientation, special_vehicle_type, weight_type 'CAR_EVENTS_FEATURES': ['license_plate', 'category', 'special_vehicle_type', 'description', 'weight_type', 'orientation'],
Выполните перезапуск контейнеров FindFace Multi.
cd /opt/findface-multi/ sudo docker-compose restart
В веб-интерфейсе перейдите на вкладку Источники видео. Выберите камеру на вкладке Камеры (либо загруженный файл на вкладке Загрузки, либо внешний детектор на соответствующей вкладке). Перейдите на вкладку Основные. Поставьте флажок ТС в разделе Детекторы.