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







