ApertureData Platform natively supports high-dimensional feature vector operations allowing efficient similarity searches, particularly useful in ML pipelines. Feature vectors or descriptors are intermediate results of various machine learning or computer vision algorithms when run on visual data. These vectors can be labeled and classified to build search indexes. ApertureData Platform does not extract descriptors but once they are available, it can store, index, and search for similarity.

Before inserting any descriptor into ApertureData Platform, we need to create the DescriptorSet. When creating a DescriptorSet, we can specify the name that will be assigned to that set, the metric that will be used for searching, and the dimensions of the descriptors that will be inserted in the set (see AddDescriptorSet command).

A descriptor can then be added as below and associated with a set. The bare minimum requirement for this call is the name of the set and a descriptor blob of matching dimensions (to the set).

Properties can be added to the Descriptor, as well as link block can be used to specify relationships in a similar way AddImage supports. Link block can be used for creating connections between the inserted object (Image, Entity, etc) and other, previously referenced, object.


  • set: name of the set.
  • [optional] label: Label of the descriptor. If unspecified, the system will store it as “None”
  • [optional] _ref: for reference.


  • [optional] properties
  • [optional] link


# Insert a Descriptor for someone's face and associate with a previously inserted image (_ref = 1)

    "AddDescriptor": {
        "set": "party_faces",       # Specify the name of the DescriptorSet
        "label": "Ricky Fort"       # Assign a label to the descriptor
        "properties": {             # Add application-specific properties
            "gender": "M",
            "age": 45
        "link": {                   # We can create a connection between the image
            "ref": 1                # and the descriptor.