Разработка AI-системы мониторинга строительства по видео

AI-мониторинг хода строительства по видео

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

AI-мониторинг хода строительства по видео

Отставание от графика на стройке — причина штрафов и срывов контрактов. Ручной мониторинг требует выезда инспектора, занимает часы и субъективен. На объектах площадью от 10 000 м² ручной обход может занимать до 6 часов в день, при этом субъективная оценка расходится с реальным прогрессом на 15–20%. Мы разрабатываем нейросетевые системы, которые по видео с камер или дронов автоматически оценивают прогресс, сравнивают с BIM-планом и выявляют отклонения. Наш опыт — 15 лет в AI и 80+ проектов в строительном компьютерном зрении. Экономия времени контроля — до 20%, точность — 97%. Согласно отраслевым отчетам, автоматический мониторинг снижает количество ошибок планирования на 40%.

Почему AI-мониторинг эффективнее традиционных методов?

Традиционные методы (выезды инспекторов, спутниковые снимки, ручные чеклисты) имеют недостатки: субъективность, задержка отчетности, сложность масштабирования. AI-мониторинг использует компьютерное зрение и 4D BIM для объективной оценки в реальном времени. Сравнение:

Метод Скорость (1000 м²) Точность Масштабирование
Ручной обход 4-6 часов ±15% Ограничено
AI-мониторинг 5 минут ±3% Неограниченно

Как внедрить систему мониторинга на стройке?

Процесс внедрения включает пять этапов:

  1. Аудит объекта: съемка эталонов, разметка зон, привязка камер.
  2. Обучение детектора: дообучение YOLO на специфические элементы (опалубка, арматура, бетон и т.д.).
  3. Интеграция с BIM: подключение к Autodesk BIM 360, Procore или другой платформе через API.
  4. Пилотный запуск: мониторинг одной зоны в течение 2–3 недель, калибровка модели.
  5. Масштабирование: развертывание на все камеры, настройка отчетов и уведомлений.

Техническая реализация: 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 м²

Наш клиент — девелопер крупного торгового центра. Еженедельные облёты дроном (DJI Phantom 4 RTK), 350–400 снимков за облёт. AI-анализ прогресса по 12 зонам.

За 12 недель система зафиксировала отставание в секции D (монолитные работы): ожидаемый прогресс 65%, фактический по видеоанализу 48%. Это позволило скорректировать график за 3 недели до критического срока, перераспределив бригады. Суммарная экономия на штрафах и перерасходе материалов составила более $18k–26k.

Что входит в разработку решения

Этап Результат
Обучение детектора Модель, распознающая 10+ классов элементов
Интеграция с камерами API для потоковой загрузки видео
Пилотный запуск Отчёты по одной зоне, калибровка
Полное развёртывание Мониторинг всех зон, уведомления, дашборд
Техподдержка 3 месяца гарантийного сопровождения

Ориентировочные сроки внедрения

Тип проекта Срок
Базовый детектор строительных элементов 4–6 недель
Система мониторинга прогресса (камеры + отчёты) 8–12 недель
Полная платформа с дроном + BIM интеграция 14–22 недели

Стоимость рассчитывается индивидуально под задачи объекта.

Свяжитесь с нами для обсуждения вашего объекта и получите предварительную оценку. Закажите пилотный запуск на одной из зон, чтобы убедиться в эффективности решения.