Распознавание автомобилей и их атрибутов
FindFace Multi позволяет распознавать отдельные автомобили и их атрибуты.
Атрибуты следующие:
номерной знак (для отдельных стран),
цвет,
марка,
модель,
тип кузова.
Важно
Распознавание отдельных автомобилей является экспериментальной функцией. Поэтому, для того чтобы улучшить качество распознавания, мы настоятельно рекомендуем вам включить дополнительный анализ атрибутов. В этом случае система будет сравнивать не только векторы признаков двух автомобилей, но также их атрибуты, такие как цвет, тип кузова, марка и модель. Вывод о совпадении автомобилей будет делаться только в том случае, если совпадают как векторы признаков, так и атрибуты автомобилей.
Подробное описание того, как включить дополнительный анализ атрибутов, вы найдете в пошаговых инструкциях ниже.
Для включения распознавания автомобилей и их атрибутов выполните следующие действия:
В файле конфигурации
/etc/findface-extraction-api.iniукажите модели нейронных сетей для распознавания объектов типа автомобиль и их атрибутов. Выполните следующие действия:Важно
Удостоверьтесь, что для каждой модели вы указали правильный тип ускорения CPU или GPU: он должен совпадать с типом ускорения
findface-extraction-api. Обратите внимание, чтоfindface-extraction-apiна CPU может работать только с CPU-моделями, в то время какfindface-extraction-apiна GPU поддерживает как GPU-, так и CPU-модели.Откройте файл конфигурации
/etc/findface-extraction-api.ini.sudo vi /etc/findface-extraction-api.ini
Укажите модель детектора автомобилей в разделе
detectors -> models, вставив следующий код:GPU
detectors: ... models: ... efreitor: aliases: - car model: cadet/efreitor.gpu.fnk options: min_object_size: 32 resolutions: [256x256, 384x384, 512x512, 768x768, 1024x1024, 1536x1536, 2048x2048] ...
CPU
detectors: ... models: ... efreitor: aliases: - car model: cadet/efreitor.cpu.fnk options: min_object_size: 32 resolutions: [256x256, 384x384, 512x512, 768x768, 1024x1024, 1536x1536, 2048x2048] ...
Укажите модели для экстракции векторов признаков в разделе
extractors -> models, в зависимости от необходимых экстракторов:GPU
extractors: ... models: car_color: '' car_description: carattr/description.v0.gpu.fnk car_emben: carrec/alonso.gpu.fnk car_license_plate: carattr/carattr.license_plate.v0.gpu.fnk car_license_plate_quality: carattr/carattr.license_plate_quality.v0.gpu.fnk car_make: '' car_quality: carattr/carattr.quality.v0.gpu.fnk
CPU
extractors: ... models: car_color: '' car_description: carattr/description.v0.cpu.fnk car_emben: carrec/alonso.cpu.fnk car_license_plate: carattr/carattr.license_plate.v0.cpu.fnk car_license_plate_quality: carattr/carattr.license_plate_quality.v0.cpu.fnk car_make: '' car_quality: carattr/carattr.quality.v0.cpu.fnk
Доступны следующие экстракторы:
Экстрактор
Настройка
отдельный объект типа автомобиль
car_emben: carrec/alonso.cpu.fnkcar_emben: carrec/alonso.gpu.fnkномерной знак
car_license_plate: carattr/carattr.license_plate.v0.cpu.fnkcar_license_plate_quality: carattr/carattr.license_plate_quality.v0.cpu.fnkcar_license_plate: carattr/carattr.license_plate.v0.gpu.fnkcar_license_plate_quality: carattr/carattr.license_plate_quality.v0.gpu.fnkнабор атрибутов: марка / цвет / модель / тип кузова
car_description: carattr/description.v0.cpu.fnkcar_description: carattr/description.v0.gpu.fnkкачество изображения автомобиля
car_quality: carattr/carattr.quality.v0.cpu.fnkcar_quality: carattr/carattr.quality.v0.gpu.fnkСовет
Для того чтобы отключить модель, передайте в соответствующий параметр пустое значение. Не удаляйте сам параметр, поскольку в этом случае будет выполняться поиск модели по умолчанию.
extractors: ... models: car_color: '' car_description: '' car_emben: '' car_license_plate: '' car_license_plate_quality: '' car_make: '' car_quality: '' car_trash: ''
Укажите нормализаторы, необходимые для работы экстракторов, заданных на предыдущем шаге. Например, если вам требуется настроить распознавание автомобильных номеров, укажите нормализатор
carlicplate.Нормализатор
Модель нормализатора
Используется для экстракторов
carlicplate
carnorm/anaferon.v0.gpu.fnkcarnorm/anaferon.v0.cpu.fnkcar_license_platecropbbox
facenorm/cropbbox.v2.gpu.fnkfacenorm/cropbbox.v2.cpu.fnkcar_license_plate_quality,car_description,car_qualityGPU
normalizers: ... models: carlicplate: model: carnorm/anaferon.v0.gpu.fnk ... cropbbox: model: facenorm/cropbbox.v2.gpu.fnk
CPU
normalizers: ... models: carlicplate: model: carnorm/anaferon.v0.cpu.fnk ... cropbbox: model: facenorm/cropbbox.v2.cpu.fnk
Убедитесь, что раздел
objects -> carсодержитquality_attribute: car_qualityиbase_normalizer: facenorm/cropbbox.v2.*.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
После внесения изменений в файл конфигурации убедитесь, что он выглядит аналогично
следующему примеру.Перезапустите
findface-extraction-api.sudo systemctl restart findface-extraction-api
Внесите изменения в файл конфигурации
/etc/findface-video-worker-gpu.ini(/etc/findface-video-worker-cpu.ini). В разделеcarукажите модели нейронных сетей по аналогии с примером ниже. Перезапуститеfindface-video-worker-gpu(findface-video-worker-cpu).GPU
sudo vi /etc/findface-video-worker-gpu.ini #------------------------------ [car] #------------------------------ ## detector param ## type:number env:CFG_CAR_MIN_SIZE longopt:--car-min-size min_size = 60 ## path to car detector ## type:string env:CFG_CAR_DETECTOR longopt:--car-detector detector = /usr/share/findface-data/models/cadet/efreitor.gpu.fnk ## path to normalizer (usually crop2x) ## type:string env:CFG_CAR_NORM longopt:--car-norm norm = /usr/share/findface-data/models/facenorm/cropbbox.v2.gpu.fnk ## path to car quality extractor ## type:string env:CFG_CAR_QUALITY longopt:--car-quality quality = /usr/share/findface-data/models/carattr/carattr.quality.v0.gpu.fnk ## path to car quality normalizer ## type:string env:CFG_CAR_NORM_QUALITY longopt:--car-norm-quality norm_quality = /usr/share/findface-data/models/facenorm/cropbbox.v2.gpu.fnk
sudo systemctl restart findface-video-worker-gpu.service
CPU
sudo vi /etc/findface-video-worker-cpu.ini #------------------------------ [car] #------------------------------ ## detector param ## type:number env:CFG_CAR_MIN_SIZE longopt:--car-min-size min_size = 60 ## path to car detector ## type:string env:CFG_CAR_DETECTOR longopt:--car-detector detector = /usr/share/findface-data/models/cadet/efreitor.cpu.fnk ## path to normalizer (usually crop2x) ## type:string env:CFG_CAR_NORM longopt:--car-norm norm = /usr/share/findface-data/models/facenorm/cropbbox.v2.cpu.fnk ## path to car quality extractor ## type:string env:CFG_CAR_QUALITY longopt:--car-quality quality = /usr/share/findface-data/models/carattr/carattr.quality.v0.cpu.fnk ## path to car quality normalizer ## type:string env:CFG_CAR_NORM_QUALITY longopt:--car-norm-quality norm_quality = /usr/share/findface-data/models/facenorm/cropbbox.v2.cpu.fnk
sudo systemctl restart findface-video-worker-cpu.service
Откройте файл конфигурации
/etc/findface-video-manager.confи убедитесь, что он содержит разделcarвdetectors, аналогичный приведенному ниже.Совет
В качестве эталонного значения параметра
filter_min_qualityможно взять значение параметраMINIMUM_CAR_QUALITYиз файла конфигурации/etc/findface-security/config.py.sudo vi /etc/findface-video-manager.conf detectors: ... car: filter_min_quality: 0.73 filter_min_size: 1 filter_max_size: 8192 roi: '' fullframe_crop_rot: false fullframe_use_png: false jpeg_quality: 95 overall_only: false 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
Включите распознавание автомобилей и атрибутов автомобилей в файле конфигурации
/etc/findface-security/config.py. Выполните следующие действия:В разделе
FFSECURITYустановите'ENABLE_CARS': True.sudo vi /etc/findface-security/config.py FFSECURITY = { ... # optional objects to detect 'ENABLE_CARS': True, ...
В том же разделе укажите атрибуты автомобилей, которые требуется отображать в событиях распознавания.
# available features are: description, license_plate 'CAR_EVENTS_FEATURES': ['description', 'license_plate'],
Для того чтобы улучшить качество распознавания отдельных автомобилей, мы настоятельно рекомендуем вам включить дополнительный анализ атрибутов. В этом случае система будет сравнивать не только векторы признаков двух автомобилей, но и атрибуты автомобилей. Вывод о совпадении автомобилей будет делаться только в том случае, если совпадают как векторы признаков, так и атрибуты.
Для дополнительного анализа вы можете использовать следующие атрибуты:
color: цвет автомобиля,body: тип кузова,make: марка,model: модель.
Для того чтобы включить дополнительный анализ атрибутов, установите
Trueв разделеFFSECURITY->EXTRA_CAR_MATCHINGдля атрибутов, которые вы хотите сравнивать.FFSECURITY = { # use additional features for extra confidence when matching cars by emben 'EXTRA_CAR_MATCHING': { 'color': {'enabled': False, 'min_confidence': 0}, 'body': {'enabled': False, 'min_confidence': 0}, 'make': {'enabled': False, 'min_confidence': 0}, 'model': {'enabled': False, 'min_confidence': 0}, },
Важно
Для того чтобы анализ атрибутов работал, в файлах конфигурации
/etc/findface-extraction-api.iniи/etc/findface-security/config.pyдолжна быть включена модельdescription(см. выше).Примечание
Включение дополнительного анализа атрибутов уменьшает количество ложноположительных срабатываний, однако могут быть пропущены также некоторые реальные совпадения.
Предупреждение
Не меняйте значения по умолчанию, установленные для
min_confidence, без предварительной консультации с нашими техническими специалистами (support@ntechlab.com).Перезапустите сервис
findface-security.sudo systemctl restart findface-security.service