Автоматизація UI без API: боти з комп'ютерним зором для RPA

Уявіть: legacy-система на COBOL, інтерфейс без API, а потрібно автоматизувати введення даних. Класичний RPA (UiPath, Automation Anywhere) з XPath зламається при першому ж зміщенні кнопки. Альтернатива — RPA-бот з [Computer Vision](https://en.wikipedia.org/wiki/Computer_vision), який «бачить» екран я

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Уявіть: legacy-система на COBOL, інтерфейс без API, а потрібно автоматизувати введення даних. Класичний RPA (UiPath, Automation Anywhere) з XPath зламається при першому ж зміщенні кнопки. Альтернатива — RPA-бот з Computer Vision, який «бачить» екран як зображення і знаходить елементи за візуальними ознаками. Ми займаємося розробкою CV RPA вже 5 років — це наша спеціалізація. Ми — команда з 5+ років досвіду в CV-RPA, реалізували 20+ проектів. Пропонуємо CV RPA під ключ з гарантією стабільності.

Для виявлення елементів використовуємо YOLOv8, донавчений на датасеті Rico (66k UI) + кастомна розмітка під інтерфейс замовника. Аугментація (яскравість, контраст, обертання) і квантизація INT8 знижують latency до 50 мс. Модель YOLOv8 використовує моділь CSPDarknet53 backbone, що забезпечує високу швидкість інференсу навіть на CPU. Текст вилучаємо за допомогою PaddleOCR (кирилиця) або EasyOCR з донавчанням на доменному словнику. У результаті бот обробляє до 10 операцій на хвилину. Автоматизація інтерфейсів без API — наша спеціалізація.

Згідно з документацією Ultralytics, YOLOv8 досягає mAP 50-95 на UI-датасетах, що підтверджує застосовність для автоматизації інтерфейсів.

Коли потрібен CV-RPA?

Комп'ютерний зір для RPA виправданий у конкретних сценаріях:

  • Робота з legacy-системами без API і з закритою віконною ієрархією (COBOL/AS400 термінали, Citrix Virtual Desktop).
  • Веб-додатки з динамічно генерованими класами (React/Angular з CSS Modules), де XPath нестабільний при кожному деплої.
  • Обробка PDF-документів і scanned images всередині RPA-потоку — без OCR інтеграція неповна.
  • Автоматизація десктопних додатків третіх сторін без SDK — SAP GUI або 1С в термінальному режимі.

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

import cv2 import numpy as np from ultralytics import YOLO class CVRPAAgent: def __init__(self, ui_detector_model: str): 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 (GitHub), донавчений на датасеті 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]]) 

Як CV-RPA справляється з динамічним UI?

Динамічні елементи (спливаючі вікна, змінні позиції кнопок) — типова проблема. Ми вирішуємо її через few-shot learning: збираємо 5-10 варіантів скріншотів з різним станом елемента і донавчаємо модель на них. Це дає стійкість до змін без повного перенавчання. Додатково використовуємо grid search за порогом впевненості — підбираємо conf threshold для мінімізації false positives.

Чому CV-RPA надійніший за класичний?

CV-RPA у 3 рази стійкіший до змін UI порівняно з класичним RPA на XPath. За швидкістю розпізнавання CV-RPA в 2 рази швидше за аналогі на основі OCR без детекції. Ось порівняння ключових метрик:

Метрика Класичний RPA CV-RPA
Стійкість до зміни позиції елемента Низька Висока
Стійкість до зміни UI framework Середня Висока
Швидкість виконання Швидко На 15–25% повільніше
Точність знаходження елемента 99% (при коректному XPath) 91–96%

Як впровадити CV-RPA: покроковий процес

  1. Аналіз і збір даних — скріншоти цільового UI, розмітка bounding boxes для кожного типу елементів.
  2. Навчання детектора — донавчання YOLOv8 на зібраному датасеті, валідація на тестовій вибірці.
  3. Інтеграція з RPA-платформою — вбудовування CV-агента в UiPath / Automation Anywhere через Python Activity.
  4. Тестування на реальних сценаріях — прогін 100+ операцій, замір точності та часу.
  5. Деплой і моніторинг — встановлення на RPA-ферму, логування помилок, циклічне донавчання.

Що входить в роботу

  • Донавчена модель YOLOv8 під ваш UI
  • Інтеграція з OCR (PaddleOCR під кирилицю)
  • Документація з архітектури та донавчання
  • Підтримка протягом 3 місяців після здачі
  • Вихідний код агента та конфіги деплою

Терміни та вартість

Складність автоматизації Термін
1–3 процеси, готові інтерфейси 2–4 тижні
5–10 процесів, Citrix/RDP 5–8 тижнів
Комплексна автоматизація з навчанням моделі 8–14 тижнів

Вартість пілотного проекту — від 5000 грн, що дозволяє швидко оцінити ефективність. Середня економія від впровадження — 30% операційних витрат. Вартість повного проекту розраховується індивідуально. Зв'яжіться з нами для безкоштовної консультації — обговоримо ваше завдання і підберемо оптимальне рішення. Замовте пілотний проект: протестуємо CV-RPA на одному процесі, оцінимо точність і час виконання.