REST API для размытия лиц и номерных знаков

Watermarkly Blur API автоматически обнаруживает и размывает автомобильные номера и лица на изображениях.

API для размытия лиц и автомобильных номеров на изображениях

Этот сервис полностью размещен в инфраструктуре AWS и гарантирует конфиденциальность, не используя файлы клиентов для обучения моделей ИИ.
Мы используем AWS Lambda, что позволяет нам обрабатывать тысячи параллельных запросов надежно и предлагать услугу в нескольких регионах по всему миру.

Возможности

  • Автоматически обнаруживает и размывает автомобильные номера и лица на изображениях.
  • Позволяет заменять автомобильные номера логотипом вашего проекта.
  • По желанию изменяет размер, обрезает или конвертирует обработанные изображения.
  • Поддерживает до 500 запросов в секунду.
  • Обрабатывает изображения параллельно для ускорения работы.
  • Максимальный поддерживаемый размер изображения: 6000x6000 пикселей.

Если вам требуется более высокая скорость обработки, поддержка изображений большего размера или увеличение предельного количества запросов, свяжитесь с нами по адресу api-support@watermarkly.com.

API также позволяет заменять автомобильные номера логотипом вашей компании.

API для размытия лиц и автомобильных номеров на изображениях

Конечные точки API

Регионы

В настоящее время API доступен в двух регионах:

Вы можете использовать любой из этих конечных точек. Вторую точку можно использовать в качестве резервной в случае сбоя региона AWS.
Если вам нужен API в другом регионе, пожалуйста, свяжитесь с нами.

Методы запросов

Вы можете отправлять изображения на обработку с помощью GET или POST запросов.
Если ваши изображения находятся в открытом доступе, мы рекомендуем GET запросы, так как они немного быстрее, чем POST.

Размытие изображения с использованием GET-запроса (рекомендуется)

GET https://blur-api-eu1.watermarkly.com/blur/?url={image_url}

или

GET https://blur-api-us1.watermarkly.com/blur/?url={image_url}

Сервис загружает изображение по image_url и обрабатывает его.

Запрос

  • Метод: GET
  • Параметры URL:
    • url (Обязательно): Полный URL изображения для обработки.
    • blur_intensity (Необязательно): Число от 0.0 до 20.0, определяющее степень размытия. По умолчанию: 1.0. Значение 0.0 отключает размытие.
    • file_size (Необязательно): Указывает желаемый размер выходного файла в байтах.
    • width (Необязательно): Указывает желаемую ширину выходного изображения.
    • height (Необязательно): Указывает желаемую высоту выходного изображения.
    • format (Необязательно): Указывает формат выходного изображения (JPEG, PNG, WEBP).
    • logo_url (Необязательно): URL-адрес логотипа для замены автомобильных номеров.
    • logo_size (Необязательно): Указывает размер логотипа (от 0.1 до 1.0).
    • plate_screws (Необязательно): Добавляет болты к номерным знакам (работает только с logo_url).

Ответ

Успешный ответ: (HTTP Status: 200) Возвращает обработанное изображение в формате JPEG, PNG, WEBP.

Ошибка: (HTTP Status: 500, 403)

{
  "message": "Ошибка обработки"
}

Размытие изображения с использованием POST-запроса

POST https://blur-api-eu1.watermarkly.com/blur/

или

POST https://blur-api-us1.watermarkly.com/blur/

Отправляет изображение на обработку.

Запрос

  • Метод: POST
  • Content-Type: application/octet-stream
  • Заголовки:
    • x-api-key: Ваш API-ключ.
  • Параметры запроса:
    • blur_intensity, file_size, width, height, format, logo_url, logo_size, plate_screws — такие же, как в GET.

Ответ

Успешный ответ: (HTTP Status: 200) Возвращает обработанное изображение в формате JPEG, PNG, WEBP.

Ошибка: (HTTP Status: 500, 403)

{
  "message": "Ошибка обработки"
}

Детали обработки

  • Обработанные изображения не сохраняются на серверах.
  • Поддерживаемые форматы: JPEG, PNG, WEBP, AVIF, HEIC/HEIF.
  • AVIF и HEIF автоматически конвертируются в JPEG, если не указан другой формат.
  • Максимальный размер входного изображения:
    • GET-запросы: 20MB или 6000x6000 пикселей.
    • POST-запросы: 6MB или 6000x6000 пикселей.
  • Ограничения API:
    • 500 параллельных запросов
    • 500 запросов в секунду
    • 100 000 запросов в день
  • Для увеличения лимитов свяжитесь с api-support@watermarkly.com.

Безопасность и конфиденциальность

  • API-запросы требуют аутентификации с использованием API-ключа.
  • Файлы клиентов не используются для обучения ИИ.
  • Вся обработка выполняется в инфраструктуре AWS. Мы можем развернуть API в любом регионе по вашему запросу.

Примеры использования

Python

import requests
import urllib.parse
import time

API_KEY = 'your_api_key'
API_URL = 'https://blur-api-eu1.watermarkly.com/blur/'

input_path = 'input.jpg'
output_path = 'output.jpg'

with open(input_path, 'rb') as image_file:
    response = requests.post(API_URL, headers={'x-api-key': API_KEY}, data=image_file)
    if response.status_code == 429:
        time.sleep(0.1)
        response = requests.post(API_URL, headers={'x-api-key': API_KEY}, data=image_file)

with open(output_path, 'wb') as f:
    f.write(response.content)

Node.js

import { promises as fs } from "fs";

const API_KEY = 'your_api_key';
const API_URL = 'https://blur-api-eu1.watermarkly.com/blur/';

(async () => {
  const inputPath = 'input.jpg';
  const outputPath = 'output.jpg';
  const imageData = await fs.readFile(inputPath);

  let response = await fetch(API_URL, {
    method: 'POST',
    headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/octet-stream' },
    body: imageData
  });

  await fs.writeFile(outputPath, Buffer.from(await response.arrayBuffer()));
})();