Распознавание объектов на изображениях

Автоматизированное распознавание иконок на изображениях при помощи нейросети.

Сколько стоит?   8 руб. / 1000 запросов |

  • Получение координат в заданной последовательности иконок
  • Создавалось изначально под задачи ZennoPoster и BAS
  • Оптимизировано под большие нагрузки на GPU-процессорах
  • 100 распознаваний бесплатно на тест после регистрации
SmartCaptcha Яндекс распознавание нейросети

API документация

API построен на HTTP-запросах. Адреса:

  • http://api.white-captcha.com/in.php POST используется для отправки изображения;
  • http://api.white-captcha.com/res.php GET/POST используется для получения ответа и результатов.

Алгоритм распознавания изображения с помощью сервиса:

  1. Получите ваш персональный ключ API в настройках вашего аккаунта. Для каждого пользователя генерируется уникальный аутентификационный токен. Это строка из 32 символов, которая может выглядеть так: 098f6bcd4621d373cade4e832627b4f6. Полученный ключ используется для всех ваших запросов к серверу.
  2. Отправьте POST-запрос на URL: http://api.white-captcha.com/in.php с персональным ключом API и параметрами, указанные ниже. Сервер вернёт идентификатор id изображения или код ошибки, если сервер не смог обработать запрос. Подождите 5 секунд.
  3. Отправьте GET или POST-запрос на URL: http://api.white-captcha.com/res.php с полученным ранее идентификатором id изображения, чтобы получить результат. Если ваша капча уже решена, сервер вернёт ответ на неё в формате, соответстующем виду капчи.
    По умолчанию сервер возвращает ответ как простой текст, например: OK|ТЕКСТ. Ответ также можно получить в формате JSON {"status":1,"request":"ТЕКСТ"}, для этого нужно использовать параметр json.
    Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. Далее можете повторять запрос каждую 1 секунду.

1. Отправка запроса

Список параметров POST-запроса к http://api.white-captcha.com/in.php

Важно: запрос должен в формате json отправляться: 'Content-type': 'application/json'
Важно: если формат принятия изображений выбран base64, то для более точного распознания изображения советуется отправлять оригинал изображения, а не делать его скриншот (актуально для пользователей ZennoPoster и Browser Automation Studio).
Параметр Тип Обязателен Описание
key Строка Да Персональный API ключ.
body или body0 Строка Да Изображение, закодированное в формат base64 или ссылка url. Содержит картинку для распознавания объектов на изображении.
imginstructions или body1 Строка Да Изображение, закодированное в формат base64. Содержит картинку с последовательностью объектов.
format Строка
По умолчанию: base64
Нет Актуально для параметра body или body0.
base64 — сервер будет принимать изображение в формате base64.
url — сервер будет принимать изображение в формате прямой ссылки, взятой из тега <img src="...">. Не рекомендуется использовать данный метод, потому что будет повторный запрос с IP нашего сервера на скачивание картинки, что является подозрительной операцией.
json Число
По умолчанию: 0
Нет 0 — сервер вернёт ответ в виде простого текста.
1 — сервер вернёт ответ в формате JSON.
Рекомендуется ставить 1.

При успешном получении задания или в случае ошибки сервер всегда вернет ответ с кодом состояния (status code) HTTP 200.

Идентификатор id изображения будет содержаться в ответе. Помимо этого сервер вернет в переменную balance информацию о денежном балансе аккаунта. Пример ответа текстом и в формате json (при задании значения 1):

  • OK|60db34b7-eb63-4499-8775-2403946b27ad
  • {"status": 1, "request": "60db34b7-eb63-4499-8775-2403946b27ad", "balance": 9615.231}

Пример ответа в случае ошибки:

  • ERROR_KEY_DOES_NOT_EXIST
  • {"status": 0, "request": "ERROR_KEY_DOES_NOT_EXIST", "error_text": "Указанный ключ не существует"}

2. Получение результатов

Список параметров GET или POST-запроса к http://api.white-captcha.com/res.php

Параметр Тип Обязателен Описание
id Строка Да ID капчи, полученный из /in.php
get_coordinates Строка
По умолчанию: string
Нет string — координаты будут получены в текстовом формате.
array — координаты будут получены в виде массива (работает только при json=1).
json Число
По умолчанию: 0
Нет 0 — сервер вернёт ответ в виде простого текста.
1 — сервер вернёт ответ в формате JSON.
Рекомендуется ставить 1.

Пример GET-запроса:

http://api.white-captcha.com/res.php?id=cfc62353-60ed-4191-94c8-de199172f01d&json=1&get_coordinates=array

Отправлять запросов на получение результатов стоит через 5 секунд после создания задания на распознавание изображения. Ответ всегда возврашается с кодом состояния (status code) HTTP 200.

Пример успешного ответа текстом и в формате json (при задании значения 1):

  • OK|coordinates:x=35,y=107;x=234,y=71;x=149,y=107;x=43,y=30;x=137,y=32
  • {"status": 1, "request": "coordinates:x=35,y=107;x=234,y=71;x=149,y=107;x=43,y=30;x=137,y=32"}
  • {"status": 1, "request": [{"x": 35, "y": 107}, {"x": 234, "y": 71}, {"x": 149, "y": 107}, {"x": 43, "y": 30}, {"x": 137, "y": 32}]}

Если изображение еще не решено, то ответ от сервера будет CAPCHA_NOT_READY. В этом случае нужно подождать 2 секунды и отправить запрос снова:

  • CAPCHA_NOT_READY
  • {"status": 0, "request": "CAPCHA_NOT_READY", "error_text": "Изображение в очереди распознавания"}

3. Таблица ошибок

Код ошибки Описание
ERROR_WRONG_USER_KEY Параметр key не указан
ERROR_KEY_DOES_NOT_EXIST Указанный API ключ не существует
ERROR_EMPTY_BODY Параметры body или body0 не заданы
ERROR_EMPTY_IMGINSTRUCTIONS Параметры imginstructions или body1 не заданы
ERROR_TOO_BIG_IMAGE_FILESIZE Размер body или body0 превышает 200 Кб или размер imginstructions или body1 превышает 20 Кб
ERROR_ZERO_IMAGE_FILESIZE Размер body, body0, imginstructions или body1 менее 100 байт
ERROR_UPLOAD Одно из изображений не удалось декодировать из base64
ERROR_ZERO_BALANCE На счету недостаточно средств для создания задания
ERROR_INTERNAL_SERVER Внутренняя ошибка сервера. Все такие ошибки логируются, поэтому вскоре будет устранено, иначе обратитесь в поддержку
ERROR_WRONG_CAPTCHA_ID Параметр id изображения не задан или не найден
ERROR_BAD_REQUEST Один из входных параметров имеет недопустимое значение
CAPCHA_NOT_READY Изображение в очереди распознавания
ERROR_CAPTCHA_UNSOLVABLE Изображение не удалось распознать. Оплата в этом случае не списывается
ERROR_ACCOUNT_FREEZE Аккаунт заморожен на 15 минут по причине отправки слишком много нерешаемых изображений.
Убедитесь, что вы отправляете оригинальные размеры изображения и задания, а не скриншот экран (если ответ от сервера приходит в json формате от /res.php, то в случае отправки не оригинвальных изображений будет подсказка в параметре hint).
ERROR_TOO_MANY_REQUESTS От вас приходит слишком много запросов в единицу времени. Для увеличения обратитесь в поддержку.

4. Примеры кода

Пример кода на языке Python. Скачать весь код с дополнениями.

import requests

data = {
    'key': '', # API ключ
    'body': body, # base64 изображения
    'imginstructions': imginstructions, # base64 изображения последовательности
    'json': 0, # 0|1
}
response = requests.post('http://api.white-captcha.com/in.php', json=data, headers={'Content-type': 'application/json'})
print(response.text)

r = response.text.split('|')
if r[0] == 'OK': task_id = r[1]

response = requests.get(f"http://api.white-captcha.com/res.php?id={task_id}&json=0&get_coordinates=string")
print(response.text)

Пример кода в программе Browser Automation Studio. Скачать полный шаблон.

_switch_http_client_main()
http_client_post("http://api.white-captcha.com/in.php",
    [
        "key", {{key}}, // ключ сервиса
        "body", [[IMAGE_1_BASE64]],
        "imginstructions", [[IMAGE_2_BASE64]],
        "json", 1
    ],
    {
        "content-type":("json"), // важно отправить запрос в формате json
        "encoding":("UTF-8"),
        "method":("POST"),
        headers:("")
    }
)!

_switch_http_client_main()
[[RESPONSE_IN_RESULTS]] = http_client_encoded_content("auto")
[[CAPTCHA_ID]] = JSON.parse([[RESPONSE_IN_RESULTS]])['request']
log([[RESPONSE_IN_RESULTS]])

var data = {
    "id": [[CAPTCHA_ID]],
    "json": 1,
    "get_coordinates": "array" // array|string
}
var queryString = Object.keys(data).map(function(key) {
    return key + '=' + data[key]
}).join('&');

_switch_http_client_main()
http_client_get2("http://api.white-captcha.com/res.php?"+queryString,{method:("GET"),headers:("")})!

_switch_http_client_main()
[[RESPONSE_IN_RESULTS]] = http_client_encoded_content("auto")
log([[RESPONSE_IN_RESULTS]])

Пример шаблона на ZennoPoster еще не создан, но в данных темах есть информация как получить base64 из картинки и <canvas>:


5. Замена других сервисов

Если вы используете стороннее программное обеспечение на Windows для задач распознавания изображений, а наш сервис не добавлен в функционал, то вы можете сделать подмену адреса. Наши API запросы идентичны таким сервисам, как rucaptcha и captcha guru. Поэтому можно осуществить переадресацию отправки изображений на наш сервер.

Для этого нужно зайти в файл C:\Windows\System32\drivers\etc\hosts и добавить эти стоки:

api.white-captcha.com rucaptcha.com
api.white-captcha.com www.rucaptcha.com
api.white-captcha.com api.rucaptcha.com
api.white-captcha.com 95.143.190.209 # замена captcha guru
api.white-captcha.com api.cap.guru

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