Пользовательские метаданные в Tarantool

Часто бывает необходимо присвоить дополнительные метаданные объектам, извлеченным из загруженных в картотеку изображений и теперь хранящимся в базе данных векторов признаков.

В этом разделе:

Настройка метаполей для лиц

Для присвоения пользовательских метаданных лицам выполните следующие действия:

  1. Подготовьте список пользовательских метаполей, которые будут присвоены лицам.

  2. Откройте файл конфигурации /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py.

    sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
    
  3. В разделе 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
                      },
                  ]
              }
          },
    }
    
  4. Добавьте новые метаполя в структуру базы данных векторов признаков.

  5. Выполните перезапуск контейнеров 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 аналогичным образом.

См.также

Для создания пользовательских вкладок, полей и фильтров в карточках см. Пользовательские вкладки, поля и фильтры в карточке.