Ми розробляємо та впроваджуємо 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+ проектів у різних кліматичних зонах — від житлових комплексів до промислових об'єктів.







