Распознавание транспортных средств и их атрибутов
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.fnk
carnorm/carnorm.briacon.v3.cpu.fnk
car_license_plate
cropbbox
facenorm/cropbbox.v2.gpu.fnk
facenorm/cropbbox.v2.cpu.fnk
car_license_plate_quality
,car_description
,car_quality
,car_special_types12
,car_categories
,car_orientation
,car_weight_types7
GPU
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.fnk
car_emben: carrec/bottas.gpu.fnk
номерной знак
car_license_plate: carattr/carattr.license_plate.v11.cpu.fnk
car_license_plate_quality: carattr/carattr.license_plate_quality.v4.cpu.fnk
car_license_plate: carattr/carattr.license_plate.v11.gpu.fnk
car_license_plate_quality: carattr/carattr.license_plate_quality.v4.gpu.fnk
набор атрибутов: марка / цвет / модель / тип кузова
car_description: carattr/carattr.description.v1.cpu.fnk
car_description: carattr/carattr.description.v1.gpu.fnk
качество изображения ТС
car_quality: carattr/carattr.quality.v1.cpu.fnk
car_quality: carattr/carattr.quality.v1.gpu.fnk
спецтранспорт
car_special_types: carattr/carattr.special_types12.v0.cpu.fnk
car_special_types: carattr/carattr.special_types12.v0.gpu.fnk
категория ТС
car_categories: carattr/carattr.categories.v1.cpu.fnk
car_categories: carattr/carattr.categories.v1.gpu.fnk
тип ТС по весу и размеру кузова
car_weight_types7: carattr/carattr.weight_types7.v0.cpu.fnk
car_weight_types7: carattr/carattr.weight_types7.v0.gpu.fnk
ракурс ТС
car_orientation: carattr/carattr.orientation.v0.cpu.fnk
car_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
В веб-интерфейсе перейдите на вкладку Источники видео. Выберите камеру на вкладке Камеры (либо загруженный файл на вкладке Загрузки, либо внешний детектор на соответствующей вкладке). Перейдите на вкладку Основные. Поставьте флажок ТС в разделе Детекторы.