Разработка интеллектуальных RPA-ботов с Computer Vision для работы с UI

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Разработка интеллектуальных RPA-ботов с Computer Vision для работы с UI
Средняя
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1240
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1167
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    867
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1084
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    563
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    829

Разработка интеллектуальных RPA-ботов с Computer Vision для работы с UI

Классические RPA-боты (UiPath, Automation Anywhere, Blue Prism) работают с UI через селекторы и координаты. Они хрупки: изменилась кнопка на 5 пикселей — бот сломался. Computer Vision устраняет эту зависимость: бот «видит» экран как изображение и находит нужный элемент по визуальным признакам, независимо от его позиции и внутренней структуры DOM или оконной иерархии.

Когда CV-подход необходим

CV-расширение для RPA оправдано в конкретных сценариях:

  • Работа с legacy-системами без доступа к API и с закрытой оконной иерархией (старые COBOL/AS400 терминалы, Citrix Virtual Desktop)
  • Веб-приложения с динамически генерируемыми классами (React/Angular с CSS Modules), где XPath нестабилен
  • Работа с PDF-документами и scanned images внутри RPA-потока
  • Автоматизация десктопных приложений третьих сторон без SDK

Архитектура CV-RPA бота

import cv2
import numpy as np
from ultralytics import YOLO

class CVRPAAgent:
    def __init__(self, ui_detector_model: str):
        # YOLOv8 дообученный на UI элементах
        self.detector = YOLO(ui_detector_model)
        self.screenshot_engine = ScreenshotEngine()

    def find_element(self, element_type: str,
                     text_hint: str = None) -> tuple[int, int]:
        screenshot = self.screenshot_engine.capture()
        detections = self.detector.predict(screenshot, conf=0.7)

        candidates = [d for d in detections if d.class_name == element_type]
        if text_hint:
            candidates = self._filter_by_ocr_text(candidates, screenshot, text_hint)

        if not candidates:
            raise ElementNotFoundError(f"Cannot find {element_type}")

        best = max(candidates, key=lambda d: d.confidence)
        return best.center_x, best.center_y

    def click(self, element_type: str, text_hint: str = None):
        x, y = self.find_element(element_type, text_hint)
        pyautogui.click(x, y)

Для обнаружения UI-элементов используем YOLOv8, дообученный на датасете UI компонентов (кнопки, поля ввода, чекбоксы, дропдауны). Базовая модель: Rico Dataset (66k Android UI) + кастомная разметка под конкретный интерфейс заказчика.

OCR-интеграция для чтения данных

Для извлечения текстовых данных из экрана: PaddleOCR (лучший баланс скорости и точности для кириллицы) или EasyOCR. Интеграция в поток: найти элемент → извлечь из ROI (Region of Interest) текст → передать в логику обработки.

import paddleocr

ocr = paddleocr.PaddleOCR(use_angle_cls=True, lang='ru')

def extract_text_from_region(image, bbox):
    x1, y1, x2, y2 = bbox
    region = image[y1:y2, x1:x2]
    result = ocr.ocr(region, cls=True)
    return ' '.join([line[1][0] for line in result[0]])

Работа в Citrix и RDP окружениях

В Citrix-среде бот не имеет доступа к оконной иерархии удалённого рабочего стола. Решение: захват скриншота через Citrix Virtual Channel или простой screen capture, анализ через CV-модель, клики через виртуальный mouse/keyboard input. Дополнительная сложность: компрессия видеопотока Citrix снижает качество изображения — обучаем модель на скриншотах низкого качества.

Метрики надёжности

Метрика Классический RPA CV-RPA
Устойчивость к смене позиции элемента Низкая Высокая
Устойчивость к смене UI framework Средняя Высокая
Скорость выполнения Быстро На 15–25% медленнее
Точность нахождения элемента 99% (при корректном XPath) 91–96%
Сложность автоматизации Срок
1–3 процесса, готовые интерфейсы 2–4 недели
5–10 процессов, Citrix/RDP 5–8 недель
Комплексная автоматизация с обучением модели 8–14 недель