Ми розробляємо та впроваджуємо AI-системи моніторингу будівельних майданчиків з дронами. Щохвилини на будівництві змінюються десятки параметрів, а традиційний метод контролю — щотижневий обхід з фотофіксацією — дає суб'єктивні дані та пропускає до 30% дефектів. Дрон з AI-аналізом вирішує проблему: він фіксує об'єктивну картину, порівнює з планом і формує звіт без участі людини. Це структуровані дані для прийняття рішень. Ми працюємо на об'єктах від 5000 м². Кейс: мережа гіпермаркетів скоротила час інспекції з 8 годин до 40 хвилин, заощадивши 70% бюджету на контроль.
Проблеми, які вирішуємо
- Ручна інспекція пропускає дефекти. За статистикою, при візуальному огляді виконроб знаходить 60-70% тріщин та сколів. AI-детекція (YOLOv8) дає 92% точності.
- Облік техніки та робітників — хаос. На майданчику з 10 кранами та 50 робітниками людина витрачає 4 години на перекличку. AI підраховує об'єкти за 15 хвилин з точністю 96%.
- Прогрес будівництва — суб'єктивна оцінка. BIM-модель та фактичні ортофото розходяться на 10-15%. Ми автоматизуємо порівняння та формуємо об'єктивні метрики.
- Порушення безпеки фіксуються постфактум. Каски, огородження, робота на висоті — AI детектує порушення в реальному часі з прив'язкою до GPS.
"AI-моніторинг дозволив нам скоротити час інспекції на 80% та знизити відсоток браку на 15%" — виконроб мережі гіпермаркетів.
Як AI-система обробляє дані з дрона?
Pipeline складається з п'яти кроків:
- Планування місії: дрон автоматично облітає майданчик по сітці з перекриттям 60-80%.
- Фотограмметрія: зі знімків будується ортофото та 3D-модель (Agisoft, OpenCV).
- Семантична сегментація: модель YOLO детектує об'єкти, а EfficientNet класифікує етапи будівництва.
- Порівняння з попереднім обльотом: обчислюється прогрес по зонах та відхилення від BIM.
- Звіт: автоматично генерується дашборд з тепловими картами, графіками та фотоприкладами.
Приклад реалізації детектора на PyTorch:
import numpy as np import cv2 from ultralytics import YOLO from pathlib import Path import json from datetime import datetime class ConstructionDroneMonitor: def __init__(self, project_config: dict): # Детектор для будмайданчика self.detector = YOLO(project_config['model_path']) # Класи: crane, excavator, concrete_mixer, scaffolding, # worker, pile, rebar, formwork, brickwork, concrete_poured self.equipment_classes = project_config['equipment_classes'] self.material_classes = project_config['material_classes'] # Еталонний план + зони self.site_plan = project_config['site_plan'] self.gps_calibration = project_config['gps_calibration'] def process_flight_mission(self, images_dir: str, flight_log: dict) -> dict: """ Обробляємо серію знімків одного обльоту. flight_log містить GPS-координати для кожного знімка. """ images = sorted(Path(images_dir).glob('*.jpg')) all_detections = [] for img_path in images: frame = cv2.imread(str(img_path)) if frame is None: continue img_name = img_path.name gps = flight_log.get(img_name, {}) results = self.detector(frame, conf=0.4) img_detections = self._process_detections( results, frame, gps, str(img_path) ) all_detections.extend(img_detections) # Агрегуємо по типах та зонах summary = self._aggregate_detections(all_detections) return summary def _process_detections(self, results, frame: np.ndarray, gps: dict, img_path: str) -> list: detections = [] for box in results[0].boxes: cls = self.detector.model.names[int(box.cls)] bbox = list(map(int, box.xyxy[0])) conf = float(box.conf) # Пікселі → GPS-координати через проективне перетворення cx = (bbox[0] + bbox[2]) // 2 cy = (bbox[1] + bbox[3]) // 2 lat, lon = self._px_to_gps(cx, cy, gps, frame.shape) detections.append({ 'class': cls, 'confidence': conf, 'bbox': bbox, 'lat': lat, 'lon': lon, 'source_image': img_path }) return detections def _px_to_gps(self, px: int, py: int, gps: dict, frame_shape: tuple) -> tuple: """ Перетворення пікселів у GPS. Спрощено: для точної геоприв'язки потрібен RTK-GPS + GCP. """ if not gps: return None, None fov = gps.get('fov', 84) # DJI Phantom 4: 84° altitude = gps.get('altitude', 50) # метри drone_lat = gps.get('lat', 0) drone_lon = gps.get('lon', 0) h, w = frame_shape[:2] # Ground footprint gsd = (altitude * 2 * np.tan(np.radians(fov/2))) / w dx_m = (px - w/2) * gsd dy_m = (h/2 - py) * gsd lat = drone_lat + dy_m / 111320 lon = drone_lon + dx_m / (111320 * np.cos(np.radians(drone_lat))) return lat, lon def _aggregate_detections(self, detections: list) -> dict: summary = { 'equipment_count': {}, 'workers_on_site': 0, 'zones_progress': {}, 'timestamp': datetime.now().isoformat() } for det in detections: cls = det['class'] if cls in self.equipment_classes: summary['equipment_count'][cls] = \ summary['equipment_count'].get(cls, 0) + 1 elif cls == 'worker': summary['workers_on_site'] += 1 return summary Ортофото та 3D-модель прогресу
class SiteProgressAnalyzer: """Порівняння ортофото поточного тижня з попереднім""" def compare_orthomap(self, current_path: str, previous_path: str) -> dict: current = cv2.imread(current_path) previous = cv2.imread(previous_path) if current.shape != previous.shape: previous = cv2.resize(previous, (current.shape[1], current.shape[0])) # Semantic segmentation для класифікації зон # Класи: bare_ground, formwork, concrete, rebar, masonry, # roofing, scaffolding, finished current_seg = self._segment_site(current) previous_seg = self._segment_site(previous) # Прогрес по зонах progress_by_zone = {} for zone_name, zone_bbox in self.site_zones.items(): x1, y1, x2, y2 = zone_bbox curr_zone = current_seg[y1:y2, x1:x2] prev_zone = previous_seg[y1:y2, x1:x2] # Зміни в класі стадії будівництва progress_score = self._compute_progress_delta(curr_zone, prev_zone) progress_by_zone[zone_name] = progress_score return progress_by_zone Чому AI-моніторинг точніший за візуальний огляд?
Людина втомлюється через 30 хвилин концентрації — середня точність виявлення тріщин падає до 50%. AI використовує ту саму модель на всіх кадрах, без варіацій. Додатково, геоприв'язка з RTK дає точність координат ±10 см, що дозволяє прив'язати дефект до конкретного елемента конструкції. Для порівняння: при ручному обході середня похибка прив'язки до плану — 1-2 метри. AI-детекція в 1.5 рази точніша за візуальний огляд.
Замовте демонстрацію системи на вашому об'єкті — оцініть різницю самі.
Процес впровадження
- Аналітика: вивчаємо об'єкт, типи робіт, доступні дані (плани, паспорти, попередні обльоти).
- Збір даних: виконуємо 2-3 пілотних обльоти для калібрування моделі під умови освітлення та погоду.
- Розмітка: анотуємо дефекти (не менше 5000 об'єктів для навчання стабільної моделі).
- Навчання: доналаштовуємо YOLOv8 на зібраних даних, тестуємо на держауті.
- Інтеграція: зв'язуємо з вашою QMS, BIM-платформою або CRM.
- Деплой: запускаємо в експлуатацію з щотижневими обльотами.
- Підтримка: оновлюємо модель раз на квартал на нових даних.
Що входить у роботу
- Архітектурна документація pipeline (MLOps pipeline, версіонування моделей)
- Навчання ваших інженерів роботі з системою
- Щомісячні звіти про точність та рекомендації щодо покращення
- Техпідтримка 24/7 протягом першого року
Терміни орієнтовно
| Показник | Типові значення |
|---|---|
| Час обробки одного обльоту (400 фото) | 15–25 хв |
| Точність детекції техніки | 92–96% |
| Точність підрахунку робітників | 85–93% |
| Точність геоприв'язки (з RTK) | ±10–20 см |
| Тип проекту | Термін |
|---|---|
| Детекція техніки + робітників з обльоту | 4–6 тижнів |
| Моніторинг прогресу + щотижневі звіти | 8–14 тижнів |
| Повна платформа з ортофото + 3D + BIM | 14–22 тижні |
Вартість розраховується індивідуально під ваш об'єкт. Оцінимо проект за 1 день — зв'яжіться з нами.
Типові помилки при впровадженні
- Відсутність наземних контрольних точок (GCP) — геоприв'язка пливе на метри, дані некорисні.
- Зйомка в похмуру погоду без підсвітки — якість детекції падає на 15-20%.
- Мало розмічених даних — модель не узагальнює, хибні спрацювання на 30%.
- Ігнорування оновлень моделі — застаріла модель не бачить нові матеріали або етапи.
Ми допоможемо уникнути цих помилок: надаємо чек-лист підготовки та проводимо валідацію на ваших даних до запуску.
Отримайте консультацію
AI-моніторинг будмайданчика — це інструмент, який окупається за рахунок зниження браку та оптимізації ресурсів. Зв'яжіться з нами, щоб обговорити ваш об'єкт та отримати приклад звіту для однієї секції. Досвід 10+ проектів у різних кліматичних зонах — від житлових комплексів до промислових об'єктів.







