База знаний Rubetek

Справки

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ И РАСПРОСТРАНЕНИЕ ПО


1. Определения


Система распознавания автомобильных номеров - совокупность устройств и программных средств, позволяющих идентифицировать автомобильные номера по изображению.

Видеокамера - устройство с аппартной детекцией автомобилей. Характеризуется уникальным идентификатором uuid.

Автомобильный номер - последовательность цифр и букв определнной структуры (зависит от страны и типа номера).

Спецтранспорт - автомобили скорой помощи, полиции, пожарных.


2. Общая схема


2.1 Добавление/обновление камеры в системе распознавания номеров

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

Для изменения настроек камеры: зоны интереса (в которую должны попадать автомобильные номера для успешного распознавания), режима распознавания спцтранспорта (распознаванть/не распознавать спецтранспорт), установки времени проезда через камеру (включая время открытия шлагбаума, время проезда автомобиля через шлагбаум, время закрытия шлагбаума, время отъезда машины из зоны видимости второй камеры) используется запрос обновления камеры.

2.2 Удаления камеры из системы распознавания номеров

Для удаления камеры из системы распознавания номеров необходимо использовать запрос удаления камеры.

2.3 Получение информации о камере

Для получения информации о номерах, которым разрешен проезд через камеру, а так же информации о других характеристиках камеры необходимо использовать запрос получения информации о камере.

2.4 Добавление номера в систему распознавания номеров

Для добавление номера в систему распознавния номеров необходимо использовать запрос добавления номера.

2.5 Обновление номера в системе распознавания номеров

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

2.6 Удаление номера из системы распознавания номеров

Для удаления номера из системы распознавания номеров необходимо использовать запрос удаления номера.


3. Руководство по эксплуатации API



3.1 Добавление камеры



		
						

Для авторизации необходимо в headers передать ключ авторизации на сервере распознавания Authorization

Тело запроса - form-data

key
value
Описание
uuid
string
аппаратный идентификатор камеры
allow_emergency
boolean
разрешение на проезд спецтранспорта
zone
string (JSON - для кода)
зона интереса
attempt_time
int (сейчас НЕ обязательный параметр — значения от 1 до 180)
задержка на повторное открытие (в секундах). Если параметр не указан, задается значение по умолчанию 15 секунд

В запрос создания камеры для сервера npr необходимо передавать в параметре zone массив точек (x, y) в относительном формате:


		
						

в примере выше зона интереса определена четырьмя точками. Началом координат считается верхний левый угол изображения. Если изображение имеет размер, например, 1920х1080, то координаты точек переводятся в абсолютные значения следующим образом:


		
						

Результат запроса:


		
						

camera_id - идентификатор камеры в системе распознавания автомобильных номеров
uuid - аппаратный идентификатор камеры
allow_emergency - разрешение на проезд спецтранспорта
zone - зона интереса, представленная последовательностью точек в формате (x,y) в относительных координатах
attempt_time - задержка на повторное открытие шлагбаума (в секундах)

Если камера существует, будет возвращена информация о ранее созданной камере.

Если возникнет ошибка подключения к БД, сервис вернет ошибку (ошибка 500):


		
						

Если возникнет ошибка преобразования значения поля zone из JSON (ошибка 422):


		
						

Если зона интереса содержит меньше трех точек (ошибка 422):


		
						

Если хотя бы одна из точек зоны интереса определена НЕ двумя координатами (ошибка 422):


		
						

Если хотя бы одна координата одной из точек зоны интереса НЕ принадлежит отрезку [0, 1] (ошибка 422):


		
						

Если значение задержки открытия шлагбаума НЕ является натуральным числом из отрезка [1, upper_bound] (ошибка 422):


		
						

3.2 Обновление камеры (изменение зоны интереса, проезд спецтранспорта)


		
						

camera_id - целочисленное значение идентификатора камеры в системе распознавания автомобильных номеров.

Для авторизации необходимо в headers передать ключ авторизации на сервере распознавания Authorization

Тело запроса - form-data

key
value
Описание
allow_emergency
boolean
разрешение на проезд спецтранспорта
zone
string (JSON - для кода)
зона интереса
attempt_time
int (сейчас НЕобязательный параметр — значения от 1 до 180)
задержка на повторное открытие (в секундах). Если параметр не указан, задается значение по умолчанию 15 секунд

В запрос обновления камеры для сервера npr необходимо передавать в параметре zone массив точек (x, y) в относительном формате:


		
						

в примере выше зона интереса определена четырьмя точками. Началом координат считается верхний верхний угол изображения. Если изображение имеет размер, например, 1920х1080, то координаты точек переводятся в абсолютные значения следующим образом:


		
						

Результат запроса:


		
						

camera_id - идентификатор камеры в системе распознавания автомобильных номеров
uuid - аппаратный идентификатор камеры
allow_emergency - разрешение на проезд спецтранспорта
zone - зона интереса, представленная послоедовательностью точек в формате (x,y) в относительных координатах
attempt_time - задержка на повторное открытие шлагбаума (в секундах)

Если возникнет ошибка подключения к БД, сервис вернет ошибку (ошибка 500):


		
						

Если камера НЕ найдена в системе npr (ошибка 404):


		
						

Если возникнет ошибка преобразования значения поля zone из JSON (ошибка 422):


		
						

Если зона интереса содержит меньше трех точек (ошибка 422):


		
						

Если хотя бы одна из точек зоны интереса определена НЕ двумя координатами (ошибка 422):


		
						

Если хотя бы одна координата одной из точек зоны интереса НЕ принадлежит отрезку [0, 1] (ошибка 422):


		
						

Если значение задержки открытия шлагбаума НЕ является натуральным числом из отрезка [1, upper_bound] (ошибка 422):


		
						

3.3 Получение информации о камере



		
						

camera - либо целочисленное значение идентификатора камеры в системе распознавания автомобильных номеров, либо uuid камеры.

Для авторизации необходимо в headers передать ключ авторизации на сервере распознавания Authorization

Результат запроса:


		
						

camera_id - идентификатор камеры в системе распознавания автомобильных номеров
uuid - аппаратный идентификатор камеры
allow_emergency - разрешение на проезд спецтранспорта
zone - зона интереса, представленная последовательностью точек в формате (x,y) в относительных координатах
attempt_time - задержка на повторное открытие шлагбаума (в секундах)
plates - словарь номеров, имеющих право проезда через данную камеру, вида: ключ - целочисленный идентификатор номера в системе распознавания номеров, значение - номер автомобиля

Если возникнет ошибка подключения к БД, сервис вернет ошибку (ошибка 500):


		
						

Если камера НЕ найдена или удалена в системе npr (ошибка 404):


		
						

3.4 Удаление камеры



		
						

camera_id - целочисленное значение идентификатора камеры в системе распознавания автомобильных номеров.

Для авторизации необходимо в headers передать ключ авторизации на сервере распознавания Authorization

Результат запроса:


		
						

camera_id - униакльный идентификатор камеры в системе распознавания автомобильных номеров. Если камера была удалена ранее - ответ будет таким же.

Если возникнет ошибка подключения к БД, сервис вернет ошибку (ошибка 500):


		
						

Если камера НЕ найдена в системе npr (ошибка 404):


		
						

3.5 Добавление автомобильного номера



		
						

Для авторизации необходимо в headers передать ключ авторизации на сервере распознавания Authorization

Тело запроса - form-data

key
value
Описание
plate
string
автомобильный номер (без пробелов и дефисов)
model
string
автомобильный номер (без пробелов и дефисов)
color
string
цвет автомобиля
meta_info
string (JSON - для кода)
информация о связанных с данным номером идентификаторах камер. Если создается пустой номер, то заполняется значением [].


В запрос создания номера для сервера npr необходимо передавать в параметре meta_info массив аппаратных идентификаторов камер, например:


		
						

Результат запроса:


		
						

plate_id - идентификатор созданного автомобильного номера plate_id в системе распознавания автомобильных номеров
plate - значение созданного автомобильного номера

Если автомобильный номер существует, будет возвращена информация о ранее созданном автомобильном номере (ВАЖНО: при этом камеры для существующего номера НЕ будут переписаны).

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

Проверка автомобильного номера

Структура каждого добавляемого автомобильного номера проверяется на принадлежность следующим странам и категориям:

  • российские номера:
    • легковые автомобили (C222HA69)
    • мотоциклы (1133AA77)
    • полиция (автомобили - A123478, мотоциклы - 5537A99)
    • транспорт (AO36578)
    • дипломатические (два типа - 002CD178, 002D04078)
    • военные (0245OK43)
  • белоруские номера:
    • легковые автомобили (1234AB7, 0167EAO)
    • мотоциклы (1234AE7)
    • грузовые автомобили и автобусы (AT61617)
    • электрические ТС (E252AA4)
  • казахские:
    • легковые автомобили (143ABA12)
    • легковые автомобили, квадратные номера (12345ААА)
    • мотоциклы (2401KB)
    • номера, принадлежащие организациям (927PK06)
    • квадратные номера, принадлежащие организациям (12345АА)

Если возникнет ошибка подключения к БД, сервис вернет ошибку (ошибка 500):


		
						

Если автомобильный номер не относится ни к одной из перечисленных выше категорий, сервис вернет ошибку (422):


		
						

Если возникнет ошибка преобразования значения поля meta_info из JSON (ошибка 422):


		
						

Если возникнет ошибка передачи значений UUID камер в поле meta_info (не в качестве списка) (ошибка 422):


		
						

Если meta_info содержит UUID камеры, которой нет в системе npr, сервис вернет ошибку (404):


		
						

3.6 Обновление автомобильного номера (список камер, модель, цвет)



		
						

plate_id - целочисленное значение идентификатора автомобильного номера в системе распознавания автомобильных номеров.

Для авторизации необходимо в headers передать ключ авторизации на сервере распознавания Authorization

Тело запроса - form-data

key
value
Описание
plate
string
автомобильный номер (без пробелов и дефисов)
model
string
модель автомобиля
color
string
цвет автомобиля
meta_info
string (JSON - для кода)
информация о связанных с данным номером идентификаторах камер. Если автомобильный номер не имеет право проезда ни через одну камеру, то заполняется значением []

В запрос создания номера для сервера npr необходимо передавать в meta_info массив аппаратных идентификаторов камер, например:


		
						

Результат запроса:


		
						

plate_id - идентификатор автомобильного номера в системе распознавания автомобильных номеров
plate - автомобильный номер
model - модель автомобиля
color - цвет автомобиля
creation_date - время создания автомобильного номера
last_update_date - время последнего обновления автомобильного номера
meta_info - список аппаратных идентификаторов связанных с данным автомобильным номером камер (значения из meta_info в теле запроса)

Если meta_info заполняется значением [], список камер для данного автомобильного номера станет пустым:


		
						

Если возникнет ошибка подключения к БД, сервис вернет ошибку (ошибка 500):


		
						

Если номер с plate_id не найден в системе npr, сервис вернет ошибку (404):


		
						

Если автомобильный номер не относится ни к одной из перечисленных выше категорий, сервис вернет ошибку (422):


		
						

Если автомобильный номер зарегистрирован в npr под другим plate_id, сервис вернет ошибку (422):


		
						

Если meta_info содержит UUID камеры, которой НЕ существует в системе npr (404):


		
						

3.7 Получить информацию об автомобильном номере



		
						

plate - либо целочисленное значение идентификатора автомобильного номера в системе распознавания автомобильных номеров, либо непосредственно сам номер.

Для авторизации необходимо в headers передать ключ авторизации на сервере распознавания Authorization

Результат запроса:


		
						

plate_id - идентификатор автомобильного номера в системе распознавания автомобильных номеров
plate - автомобильный номер
model - модель автомобиля
color - цвет автомобиля
creation_date - время создания автомобильного номера
last_update_date - время последнего обновления автомобильного номера
meta_info - список аппаратных идентификаторов связанных с данным автомобильным номером камер

Если возникнет ошибка подключения к БД, сервис вернет ошибку (ошибка 500):


		
						

Если в качестве параметра запроса указан непосредственно автомобильный номер, и он не относится ни к одной из поддерживающихся категорий, сервис вернет ошибку (422):


		
						

Если автомобильный номер НЕ существует или удален в системе npr (ошибка 404):


		
						

3.8 Удаление автомобильного номера



		
						

plate_id - целочисленное значение идентификатора автомобильного номера в системе распознавания автомобильных номеров.

Для авторизации необходимо в headers передать ключ авторизации на сервере распознавания Authorization

Результат запроса:


		
						

plate_id - идентификатор удаленного автомобильного номера plate_id в системе распознавания автомобильных номеров. Если номер был удален ранее - ответ будет таким же.

Если возникнет ошибка подключения к БД, сервис вернет ошибку (ошибка 500):


		
						

Если данного автомобильного номера НЕ существует в системе npr (ошибка 404):


		
						

4. Инструкция по тестированию


Тестовое Серверное ПО «Rubetek Number Plate Recognition Software for Cloud» развернуто на виртуальной машине с внешним IP адресом — 84.201.150.208.

Функциональное API доступно на порте 9000, с ключом авторизации в заголовке запроса – bQeThWmZq4t7w!z%.

  1. Установить и запустить Postman.
  2. Скачать json файл на ПК.
    Для скачивания json файла, наведя курсор на файл, нажмите меню, затем выберите вариант Download.
    NPR_stage_collection.json
  3. Импортировать коллекцию запросов из json файла в Postman.
  4. Проверить корректность работы тестового Серверного ПО с помощью Postman или с помощью запросов непосредственно из кода.