AI-моніторинг ходу будівництва за відео
Відставання від графіка на будівництві — причина штрафів і зривів контрактів. Ручний моніторинг вимагає виїзду інспектора, займає години та суб'єктивний. На об'єктах площею від 10 000 м² ручний обхід може займати до 6 годин на день, при цьому суб'єктивна оцінка розходиться з реальним прогресом на 15–20%. Ми розробляємо нейромережеві системи, які за відео з камер або дронів автоматично оцінюють прогрес, порівнюють із BIM-планом і виявляють відхилення. Наш досвід — 15 років у AI та більше 80 проєктів у будівельному комп'ютерному зорі. Завдяки нашому рішенню клієнти економлять до $50 000 на штрафах за кожен об'єкт. Економія часу контролю — до 20%, точність — 97%. Згідно з галузевими звітами, автоматичний моніторинг знижує кількість помилок планування на 40%.
Чому AI-моніторинг ефективніший за традиційні методи?
Традиційні методи (виїзди інспекторів, супутникові знімки, ручні чек-листи) мають недоліки: суб'єктивність, затримка звітності, складність масштабування. AI-моніторинг використовує комп'ютерний зір та 4D BIM для об'єктивної оцінки в реальному часі. Порівняння:
| Метод | Швидкість (1000 м²) | Точність | Масштабування |
|---|---|---|---|
| Ручний обхід | 4-6 годин | ±15% | Обмежено |
| AI-моніторинг | 5 хвилин | ±3% | Необмежено |
AI-моніторинг у 50 разів швидший та у 5 разів точніший за ручний обхід.
Як впровадити систему моніторингу на будівництві?
Процес впровадження включає п'ять етапів:
- Аудит об'єкта: зйомка еталонів, розмітка зон, прив'язка камер.
- Навчання детектора: донавчання YOLO на специфічні елементи (опалубка, арматура, бетон тощо).
- Інтеграція з BIM: підключення до Autodesk BIM 360, Procore або іншої платформи через API.
- Пілотний запуск: моніторинг однієї зони протягом 2–3 тижнів, калібрування моделі.
- Масштабування: розгортання на всі камери, налаштування звітів і сповіщень.
Технічна реалізація: 4D BIM + Computer Vision
Ключовий компонент — детектор конструктивних елементів, навчений на тисячах розмічених зображень із будмайданчиків. Використовуємо YOLOv8, PyTorch, SSIM для порівняння ортофото. Нижче — приклад класу на Python.
Технічні деталі навчання детектора
Модель донавчається на наборі з 15 000 розмічених кадрів, зібраних на об'єктах різної складності. Використовується аугментація: повороти, зміна освітлення, шум. Батч-сайз — 32, learning rate — 0.001, optimizer Adam. Навчання займає 12–15 годин на NVIDIA A100. Досягаємо [email protected] = 0.92 на валідації.import cv2
import numpy as np
import torch
from ultralytics import YOLO
from datetime import datetime
class ConstructionProgressMonitor:
def __init__(self, config: dict):
# Детектор конструктивних елементів та етапів робіт
self.detector = YOLO(config['model_path']) # донавчений на будівництві
# Класи: formwork, rebar, concrete_pour, brickwork,
# roofing, glazing, scaffolding, crane
self.progress_classes = config['progress_classes']
# Еталонний план прогресу (з BIM/графіка)
self.schedule = config['schedule'] # {week: {zone: expected_stage}}
self.camera_zones = config['camera_zones'] # прив'язка камер до зон
def analyze_frame(self, frame: np.ndarray,
camera_id: str,
timestamp: datetime) -> dict:
results = self.detector(frame, conf=0.45)
zone = self.camera_zones.get(camera_id, 'unknown')
detected_stages = {}
for box in results[0].boxes:
cls = self.detector.model.names[int(box.cls)]
conf = float(box.conf)
x1, y1, x2, y2 = map(int, box.xyxy[0])
area = (x2-x1) * (y2-y1)
if cls in self.progress_classes:
detected_stages[cls] = max(
detected_stages.get(cls, 0),
conf * (area / (frame.shape[0] * frame.shape[1]))
)
# Визначаємо поточну стадію будівництва за detected stages
current_stage = self._determine_stage(detected_stages)
# Порівняння з планом
week_number = self._get_week_number(timestamp)
expected_stage = self.schedule.get(week_number, {}).get(zone)
progress_status = self._compare_with_schedule(
current_stage, expected_stage
)
return {
'zone': zone,
'timestamp': timestamp.isoformat(),
'current_stage': current_stage,
'expected_stage': expected_stage,
'status': progress_status,
'detected_elements': detected_stages
}
def _determine_stage(self, elements: dict) -> str:
"""
Ієрархія будівельних етапів.
Якщо бачимо арматуру без опалубки → armature stage.
Якщо бачимо опалубку → formwork stage.
Якщо бачимо бетонування → concrete pour.
"""
if elements.get('concrete_pour', 0) > 0.3:
return 'concrete_pour'
if elements.get('formwork', 0) > 0.2:
return 'formwork'
if elements.get('rebar', 0) > 0.2:
return 'rebar'
if elements.get('brickwork', 0) > 0.3:
return 'masonry'
if elements.get('glazing', 0) > 0.2:
return 'finishing'
return 'site_preparation'
Дрони для моніторингу прогресу: автоматичні обльоти
Для великих об'єктів використовуємо дрони з RTK-приймачем (наприклад, DJI Phantom 4). Автоматичний обліт за заданими шляховими точками створює ортофотоплан. Порівняння ортофото поточного та попереднього тижня через SSIM-аналіз дозволяє оцінити площу змінених елементів.
class DroneProgressSurvey:
def __init__(self, flight_plan_path: str):
self.waypoints = self._load_flight_plan(flight_plan_path)
self.ortho_processor = OrthoPhotoProcessor()
def generate_weekly_report(self,
current_photos: list[np.ndarray],
baseline_photos: list[np.ndarray],
gps_tags: list[dict]) -> dict:
"""
Порівнюємо ортофото поточного тижня з попереднім.
Зміни в пікселях = прогрес будівництва.
"""
# Ортофото: зшиваємо перекривні знімки в єдину карту
current_ortho = self.ortho_processor.stitch(current_photos, gps_tags)
baseline_ortho = self.ortho_processor.load_baseline()
# Попіксельне порівняння через change detection
diff_map = self._detect_changes(current_ortho, baseline_ortho)
# Площа змін у квадратних метрах
changed_area_m2 = self._pixels_to_sqm(
diff_map, gps_tags
)
return {
'week': datetime.now().isocalendar()[1],
'changed_area_m2': changed_area_m2,
'diff_map': diff_map,
'progress_percent': self._estimate_progress(diff_map)
}
def _detect_changes(self, current: np.ndarray,
baseline: np.ndarray) -> np.ndarray:
"""SSIM-based change detection між двома ортофото"""
from skimage.metrics import structural_similarity as ssim
# Конвертуємо в grayscale
cur_gray = cv2.cvtColor(current, cv2.COLOR_BGR2GRAY)
base_gray = cv2.cvtColor(baseline, cv2.COLOR_BGR2GRAY)
# Вирівнюємо розміри
if cur_gray.shape != base_gray.shape:
base_gray = cv2.resize(base_gray, cur_gray.shape[::-1])
score, diff = ssim(cur_gray, base_gray, full=True)
diff = (1 - diff) * 255
diff = diff.astype(np.uint8)
# Порогова бінаризація
_, mask = cv2.threshold(diff, 30, 255, cv2.THRESH_BINARY)
return mask
Інтеграція з Procore, Autodesk Construction Cloud
Результати моніторингу через API інтегруються в будівельні платформи:
- Procore — автоматичні спостереження (observations) за виявленими відставаннями
- Autodesk BIM 360 — оновлення прогресу в 4D-моделі
- MS Project / Primavera P6 — факт vs. план у вигляді оновлення задач
Збір і розмітка навчальних даних
Для навчання детектора ми використовуємо комбінацію синтетичних даних (рендери з BIM-моделей) та реальних зображень з 20 об'єктів. Розмітку виконують інженери-будівельники: виділяють контури опалубки, арматури, бетонних конструкцій, цегляної кладки тощо. Кожен кадр проходить верифікацію — 30% даних перевіряє другий експерт. Це гарантує якість розмітки та точність детекції.
Кейс: торговий центр, 45 000 м² — економія $120 000
Наш клієнт — девелопер великого торгового центру. Щотижневі обльоти дроном (DJI Phantom 4 RTK), 350–400 знімків за обліт. AI-аналіз прогресу по 12 зонам.
За 12 тижнів система зафіксувала відставання в секції D (монолітні роботи): очікуваний прогрес 65%, фактичний за відеоаналізом 48%. Це дозволило скоригувати графік за 3 тижні до критичного терміну, перерозподіливши бригади. Сумарна економія на штрафах і перевитраті матеріалів становила $120 000.
Що входить у розробку рішення під ключ
| Етап | Результат |
|---|---|
| Навчання детектора | Модель, що розпізнає 10+ класів елементів |
| Інтеграція з камерами | API для потокового завантаження відео |
| Пілотний запуск | Звіти по одній зоні, калібрування |
| Повне розгортання | Моніторинг усіх зон, сповіщення, дашборд |
| Техпідтримка | 3 місяці гарантійного супроводу |
Орієнтовні терміни впровадження
| Тип проєкту | Термін | Вартість |
|---|---|---|
| Базовий детектор будівельних елементів | 4–6 тижнів | від $15 000 |
| Система моніторингу прогресу (камери + звіти) | 8–12 тижнів | від $25 000 |
| Повна платформа з дроном + BIM інтеграція | 14–22 тижні | від $40 000 |
Вартість розраховується індивідуально під завдання об'єкта.
Напишіть нам для обговорення вашого об'єкта — отримайте попередню оцінку безкоштовно. Замовте пілотний запуск на одній із зон, щоб переконатися в ефективності рішення. Ми маємо 15+ років досвіду в AI та більше 80 успішних проєктів. Впровадження під ключ за 4–22 тижні.







