Дополнительные условия подходят ко всем видам запросов. Условия всегда объединяются логическим «И». Например запрос «объект высотой не более четверти кадра находящийся в центре поля зрения камеры в течении 5 секунд» выглядит так:
{
"queryType": "zone",
"figures": [
{
"shape": [
[0.3, 0.3],
[0.7, 0.3],
[0.7, 0.7],
[0.3, 0.7]
]
}
],
"objectProperties": {
"size": {
"height": [0, 0.25]
}
},
"conditions": {
"duration": 5
}
}
Тип объекта (objectProperties/category)
Объект может быть оставленным (abandoned) или движущимся (face, human, group, vehicle). В запросе нельзя смешивать abandoned с другими типами объектов (иначе требование abandoned будет проигнорировано).
Поиск оставленных объектов в любой точке кадра:
{
"queryType": "zone",
"figures": [
{
"shape": [
[0, 0],
[1, 0],
[1, 1],
[0, 1]
]
}
],
"objectProperties": {
"category": ["abandoned"],
}
}
Поиск одиночных или небольших групп людей, пересекших заданную линию:
{
"queryType": "line",
"figures": [
{
"shape": [
[0.5, 0.8],
[0.5, 0.2]
]
}
]
"objectProperties": {
"category": ["human", "group"],
}
}
Размер объекта (objectProperties/size)
Задает минимальные и максимальные ширину и высоту объекта.
Например, чтобы найти объекты не больше четверти кадра в высоту можно использовать такой запрос:
{
"queryType": "zone",
"figures": [
{
"shape": [
[0.3, 0.3],
[0.7, 0.3],
[0.7, 0.7],
[0.3, 0.7]
]
}
],
"objectProperties": {
"size": {
"width": [0, 1],
"height": [0, 0.25]
}
}
}
Так как не обязательно указывать оба габарита, этот запрос будет эквивалентен предыдущему:
{
"queryType": "zone",
"figures": [
{
"shape": [
[0.3, 0.3],
[0.7, 0.3],
[0.7, 0.7],
[0.3, 0.7]
]
}
],
"objectProperties": {
"size": {
"height": [0, 0.25]
}
}
}
Цвет объекта (objectProperties/color)
Задает минимальные и максимальные координаты цвета объекта в пространстве HSV. hue измеряется в градусах (от 0 до 360), а saturation и brightness в долях от 0 до 1.
Запрос на получение ярко зеленых объектов в зоне:
{
"queryType": "zone",
"figures": [
{
"shape": [
[0.3, 0.3],
[0.7, 0.3],
[0.7, 0.7],
[0.3, 0.7]
]
}
],
"objectProperties": {
"color": {
"hue": [75, 135],
"saturation": [0.5, 1],
"brightness": [0.5, 1]
}
}
}
В пространстве HSV темные почти черные цвета могут обладать любыми тоном и насыщенностью. Поэтому для поиска черных объектов запрос должен выглядеть так:
{
"queryType": "zone",
"figures": [
{
"shape": [
[0.3, 0.3],
[0.7, 0.3],
[0.7, 0.7],
[0.3, 0.7]
]
}
],
"objectProperties": {
"color": {
"hue": [0, 360],
"saturation": [0, 1],
"brightness": [0, 0.2]
}
}
}
Аналогичный запрос для белых объектов:
{
"queryType": "zone",
"figures": [
{
"shape": [
[0.3, 0.3],
[0.7, 0.3],
[0.7, 0.7],
[0.3, 0.7]
]
}
],
"objectProperties": {
"color": {
"hue": [0, 360],
"saturation": [0, 0.1],
"brightness": [0.8, 1]
}
}
}
Скорость (conditions/velocity)
Задает минимальную и максимальную скорость объекта.
Измеряется в долях кадра в секунду. То есть скорость объекта переместившегося от левой границы кадра к правой за одну секунду равна 1.
{
"queryType": "zone",
"figures": [
{
"shape": [
[0.3, 0.3],
[0.7, 0.3],
[0.7, 0.7],
[0.3, 0.7]
]
}
],
"conditions": {
"velocity": [0.25, 1]
}
}
Направление движения (conditions/directions)
Задает направление движения объекта в виде массива углов. Углы измеряются в радианах и отсчитываются от оси направленной вправо по часовой стрелке.
Таким образом запрос на получение объектов двигавшихся вправо ±45° выглядит так:
{
"queryType": "zone",
"figures": [
{
"shape": [
[0.3, 0.3],
[0.7, 0.3],
[0.7, 0.7],
[0.3, 0.7]
]
}
],
"conditions": {
"directions": [
[315, 45]
]
}
}
Обратите внимание, что угол 45° -- 315° захватывает все направления кроме «вправо».
Если необходимо найти объекты двигавшиеся преимущественно в горизонтальном направлении понадобиться задать уже два угла:
{
"queryType": "zone",
"figures": [
{
"shape": [
[0.3, 0.3],
[0.7, 0.3],
[0.7, 0.7],
[0.3, 0.7]
]
}
],
"conditions": {
"directions": [
[315, 45],
[135, 225]
]
}
}
Длительность (conditions/duration)
Задает время в секундах в течении которых объект должен удовлетворять всем поставленным условиям непрерывно.
С помощью этого условия может быть выражен запрос «длительное пребывание в зоне»:
{
"queryType": "zone",
"figures": [
{
"shape": [
[0.3, 0.3],
[0.7, 0.3],
[0.7, 0.7],
[0.3, 0.7]
]
}
],
"conditions": {
"duration": 5
}
}
Количество объектов (condtions/count)
Задает минимальное необходимое количество объектов одновременно удовлетворяющих остальным условиям запроса.
Обычно применяется для поиска большого количества объектов в зоне, например:
{
"queryType": "zone",
"figures": [
{
"shape": [
[0.3, 0.3],
[0.7, 0.3],
[0.7, 0.7],
[0.3, 0.7]
]
}
],
"conditions": {
"count": 3
}
}