Распознавание спутниковых снимков: почему искусственный интеллект пока не идеален и как сервис распознавания капчи- картинок пришёл на помощь – практический пример

Распознавание спутниковых снимков: почему искусственный интеллект пока не идеален и как сервис распознавания капчи- картинок пришёл на помощь – практический пример

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

Распознавание спутниковых снимков: почему искусственный интеллект пока не идеален и как сервис распознавания капчи- картинок пришёл на помощь – практический пример

Конечно, современные алгоритмы (то есть ИИ) легко справляются с чтением простого текста, но как только задача усложняется, начинаются проблемы. А если задача масштабная? Тогда возникает вопрос: насколько можно доверять полученным результатам, особенно если с самого начала они оставляли желать лучшего.

Мне нужно было автоматически подсчитать объекты на спутниковом снимке. В принципе, любой внимательный человек смог бы выполнить эту работу, но идея автоматизации показалась мне привлекательной. Моментальное решение — применить нейросеть, ведь они уже умеют анализировать изображения и выдавать результаты.

Поначалу даже не приходило в голову использовать сервисы, где реальные люди распознают капчи картинки, ведь задача была не о типичной капче, верно? Но, как оказалось, многие проекты по разметке данных выросли именно из таких сервисов, где задействован человеческий фактор.

В моём случае потребовалось получить конкретное числовое значение, а не выделенную область. И вот тут появилась идея: почему бы не заменить стандартное изображение капчи на наш спутниковый снимок и не отправить его на сервис распознавания под видом обычной картинки, попросив посчитать объекты и ввести цифру в текстовое поле?

Нейросеть против капчи: почему ИИ не справился с подсчётом объектов

Представьте себе: куча спутниковых снимков отелей и курортов, на которых нужно зафиксировать количество пляжных зонтов и других элементов. На первый взгляд — простая задача. Но чем глубже копаешься, тем больше возникают сложности: плохое качество изображений, недостаточный контраст и недостатки используемых алгоритмов.

Нейросети дали задание подсчитать круглые объекты на нескольких снимках. Сначала всё казалось нормальным: я загрузил изображение, сформировал запрос вроде «ты классный аналитик, посчитай, сколько зонтов на снимке», и ожидал адекватного ответа. Однако результат оказался абсурдным — число, полученное ИИ, значительно превышало реальное количество.

Это напомнило мне анекдот про военного и двух учёных в воздушном шаре:

Два учёных, летя на воздушном шаре, заметили, что аппарат начал снижаться. Они увидели человека внизу и спросили:

«Подскажите, где мы?»

«В воздушном шаре», — молвил человек.

«Это солдат», — сказал один из учёных.

«Почему?» — удивился второй.

«Потому что ответ быстрый и точный, но совершенно бесполезный!»

Так и с нейросетью — она дала быстрый и «точный» ответ, скажем, 60 зонтов, хотя в реальности их было намного меньше. Последующие попытки с выделением конкретных областей давали непоследовательные результаты, что наводило на мысль о том, что модель сильно «галлюцинирует».

Методы, которые не принесли успеха

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

1. Хаффовский метод для обнаружения окружностей (Hough Circle Transform)

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

Плюсы:

  • Отлично работает при хорошем контрасте.
  • Быстро выдаёт результаты.

Минусы:

  • Может принять камни или бассейны за зонты.
  • Трудно обрабатывать частично закрытые объекты.

Результат: подсчитало 88 зонтов — завышенная цифра из-за ложных срабатываний.

2. Морфологический анализ

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

Плюсы:

  • Эффективен при регулярном расположении объектов.
  • Устраняет мелкие шумы.

Минусы:

  • Проблемы при наложении зонтов и сложных тенях.
  • Может пропустить менее заметные элементы.

Результат: дал 44 зонта — чуть точнее, но всё ещё с ошибками.

3. Кластеризация методом K-means

Суть: группировка пикселей по цвету и яркости для выделения объектов по их тональности и расположению.

Плюсы:

  • Хорош для сегментации больших изображений с повторяющимися элементами.

Минусы:

  • Не учитывает форму объектов, только цвет.
  • Требует точной настройки числа кластеров.

Результат: получилось 132 зонта — число сильно завышено из-за перекрытий.

4. Гистограммный анализ

Суть: анализ распределения яркости и цвета для определения частоты определённых оттенков (например, белых зонтов).

Плюсы:

  • Прост в реализации и применим даже к снимкам низкого качества.

Минусы:

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

Результат: подсчитало 87 зонтов — близко к реальному, но всё равно не идеально.

В конце я попросил нейросеть провести «визуальный» анализ изображения, как если бы его считал человек. И что же? Такой метод дал наиболее точный результат: 38 зонтов и 80–90 шезлонгов. Но даже тут остаётся сомнение, действительно ли ИИ выполнял анализ так, как описывал.

Когда спутниковые снимки «маскируются» под капчу

Вот в чём фишка: вместо того чтобы полагаться исключительно на нейросеть, я решил попробовать нечто иное. Воспользовавшись сервисом распознавания image CAPTCHA, где за обработку изображений отвечают реальные люди, мы отправили снимок с просьбой посчитать количество зонтов. Работники должны были ввести число, и, если ответ не выглядел как типичный автоматический «123», можно было поверить, что работа сделана тщательно.

Видео-демонстрация этого подхода:

Такой ручной метод дал значительно более надёжные результаты по сравнению с нейросетью. Для сравнения я даже использовал модель GPT-4, которая на момент тестирования умела работать с изображениями, но и она не смогла справиться с задачей так, как это сделали люди.

Дальнейшие перспективы и сбор команды профессионалов

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

Финансовая сторона вопроса

Перейдём к цифрам. В демонстрационном режиме стоимость одного распознавания составляла всего 0,001 доллара, что означает 1 доллар за 1000 изображений. Возможно, именно такая низкая цена и заставляла некоторых работников не уделять задаче должного внимания. Но если поднять ставку до, скажем, 3 долларов за 1000 снимков — экономика начинает играть в нашу пользу.

Для сравнения, если использовать API OpenAI с моделью GPT-4, то по тарифам за 1 миллион токенов приходится платить около 0,0150 доллара, плюс затраты на кэширование и ответ. Поскольку отправка изображения в формате base64 занимала примерно 850 тысяч токенов, стоимость одного снимка получалась около 0,0150 доллара, то есть 15 долларов за 1000 изображений.

Распознавание спутниковых снимков: почему искусственный интеллект пока не идеален и как сервис распознавания капчи- картинок пришёл на помощь – практический пример

«Экономия на использовании нейросети вызывает вопросы»

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

Начать дискуссию