Пользовательские метаданные в Tarantool
Часто бывает необходимо присвоить дополнительные метаданные объектам, извлеченным из загруженных в картотеку изображений и теперь хранящимся в базе данных векторов признаков.
В этом разделе:
Настройка метаполей для лиц
Для присвоения пользовательских метаданных лицам выполните следующие действия:
Подготовьте список пользовательских метаполей, которые будут присвоены лицам.
Откройте файл конфигурации
/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py.sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
В разделе
FFSECURITYраскомментируйте секциюCUSTOM_FIELDS->face_objectи измените ее примерное содержимое с учетом следующих правил:field_name: имя поля;type: тип данных (uint,stringилиbool);default: значение по умолчанию. Если значение по умолчанию больше ‘1e14 – 1’, то его следует записывать в виде строки, т. е.“123123..”вместо123123...
FFSECURITY = { ... # -- Custom model fields -- ... # Edit CUSTOM_FIELDS -> `face_object` section to customize face object fields. ... # 'CUSTOM_FIELDS': { ... 'face_object': { 'items': [ { "field_name": "tag_name_1", "type": "string", "default": "change_me" }, { "field_name": "tag_name_2", "type": "uint", "default": 123 }, { "field_name": "tag_name_3", "type": "bool", "default": True }, ] } }, }
Добавьте новые метаполя в структуру базы данных векторов признаков.
Выполните перезапуск контейнеров FindFace Multi.
cd /opt/findface-multi/ sudo docker-compose restart
Вы можете работать с новыми метаполями через HTTP API, используя методы
objects/faces/.
Настройка метаполей для силуэтов и транспортных средств
Назначение пользовательских метаполей силуэтам и транспортным средствам выполняется по аналогии с лицами. Единственное отличие состоит в том, что вам потребуется вручную создать разделы CUSTOM_FIELDS -> body_object и CUSTOM_FIELDS -> car_object. Рекомендуется продублировать раздел CUSTOM_FIELDS -> face_object и использовать дубликат в качестве отправной точки для дальнейших изменений.
FFSECURITY = {
...
# -- Custom model fields --
...
# Edit CUSTOM_FIELDS -> `face_object` section to customize face object fields.
...
# 'CUSTOM_FIELDS': {
...
'body_object': {
'items': [
{
"field_name": "tag_name_1",
"type": "string",
"default": "change_me"
},
{
"field_name": "tag_name_2",
"type": "uint",
"default": 123
},
{
"field_name": "tag_name_3",
"type": "bool",
"default": True
},
]
}
'car_object': {
'items': [
{
"field_name": "tag_name_1",
"type": "string",
"default": "change_me"
},
{
"field_name": "tag_name_2",
"type": "uint",
"default": 123
},
{
"field_name": "tag_name_3",
"type": "bool",
"default": True
},
]
}
},
}
Аналогично, вы можете работать с новыми метаполями, используя методы objects/bodies/ и objects/cars/ HTTP API.
Примечание
Назначение пользовательских метаполей для событий лиц, силуэтов и транспортных средств выполняется по аналогии с объектами (лицами, силуэтам и транспортными средствами). Вам также потребуется вручную создать разделы CUSTOM_FIELDS -> face_event, CUSTOM_FIELDS -> body_event и CUSTOM_FIELDS -> car_event аналогичным образом.
См.также
Для создания пользовательских вкладок, полей и фильтров в карточках см. Пользовательские вкладки, поля и фильтры в карточке.