Проблема: люди не носят каски, а менеджеры не спят по ночам
Представьте стройплощадку на 500 человек. Каждый день - это 500 потенциальных травм головы. OSHA (Управление по охране труда) штрафует за каждое нарушение так, что проще было бы построить золотой унитаз для инспектора. Менеджеры проекта ходят с тремором в руках, потому что один работник без каски - это не просто риск, это гарантированный штраф в десятки тысяч долларов и остановка работ.
TrueLook, компания, которая ставит камеры на стройках для таймлапсов, столкнулась с этим в лоб. Их клиенты спрашивали: "У вас же камеры уже висят, почему они не могут крикнуть, когда кто-то без каски зашел в опасную зону?"
Вот и вся проблема. Видео есть. Мозга - нет.
Классический подход - поставить человека мониторить экраны - не работает. Человек отвлекается, устает, засыпает. За первые 20 минут он заметит 95% нарушений. Через 2 часа - только 30%. Это не вина человека, это особенности восприятия.
Решение: заставить камеры думать, но не разоряться на инфраструктуре
TrueLook не хотел становиться дата-центром. У них уже были камеры, интернет и облако AWS. Задача свелась к тому, чтобы встроить "мозг" в существующий поток.
Их выбор пал на Amazon SageMaker. Не потому что это модно (хотя и это тоже), а потому что SageMaker в 2026 году - это уже не просто площадка для тренировки моделей. Это полноценный MLOps-стек, который умеет работать с потоковым видео из коробки.
Архитектура, которую они построили, напоминает конвейер на заводе, где вместо деталей - кадры видео, а вместо станков - нейросети.
Архитектурный разбор: от пикселя до алерта
Давайте разберем по косточкам, как работает эта система. Это не теория - это production-архитектура, которая обрабатывает тысячи часов видео ежедневно.
1 Сбор и потоковая передача видео
Камеры TrueLook - это обычные IP-камеры, которые уже стоят на стройках. Они не "умные", они просто тупо шлют H.264 поток на медиасервер в AWS.
Здесь первая хитрость: вместо того чтобы слать сырое видео 4K, камеры настроены на оптимальное качество для детекции. 1080p, 15 кадров в секунду. Этого достаточно, чтобы увидеть каску на голове, но в 4 раза меньше данных, чем в 4K.
# Пример конфигурации потока с камеры
stream_config = {
"resolution": "1920x1080",
"fps": 15,
"codec": "h264",
"bitrate": "2048k", # Достаточно для детекции, мало для оплаты трафика
"motion_threshold": 0.05, # Запускать анализ только при 5% изменения в кадре
"regions_of_interest": [ # Анализировать только опасные зоны
{"x": 100, "y": 100, "width": 800, "height": 600},
{"x": 900, "y": 200, "width": 500, "height": 400}
]
}
2 Предобработка и детекция движения
Видеопоток попадает в AWS Kinesis Video Streams. Это сервис, который создан именно для работы с потоковым видео. Он умеет разбивать поток на фрагменты (чанки), хранить их временно и отдавать для обработки.
Лямбда-функция, подписанная на Kinesis, получает каждый чанк и делает первую фильтрацию: детекция движения. Если в кадре ничего не движется - чанк отбрасывается. Если движение есть - чанк отправляется дальше.
Важно: детекция движения делается на дешевой лямбде с OpenCV, а не на дорогой нейросети. Это экономит 60-70% вычислительных ресурсов. Зачем использовать танк, чтобы убить комара?
3 Детекция объектов: где YOLO v11 в 2026 году
Вот здесь начинается магия. Кадры с движением попадают в SageMaker Endpoint с реальным временем инференса (real-time inference).
TrueLook использует YOLO v11 (на 2026 год это последняя стабильная версия), дообученную на своих данных. Почему YOLO, а не какой-нибудь fancy трансформер? Потому что скорость. YOLO v11 на T4 GPU обрабатывает 1080p кадр за 15-20 мс. Трансформеру нужно 100-150 мс. На масштабе тысяч камер эта разница - это или Ferrari, или Запорожец в парке машин.
Модель обучена детектировать:
- Каски (разных цветов - важно для区分 subcontractors)
- Жилеты повышенной видимости
- Защитные очки
- Перчатки
- Лица (чтобы отличать людей от, скажем, мешков с цементом)
Архитектура SageMaker Endpoint настроена на автоскейлинг. Нет движения - 1 инстанс. Пиковая нагрузка (утренний приход рабочих) - 10 инстансов. В 22:00 система сама скалируется обратно до 1.
# Конфигурация SageMaker Endpoint для YOLO v11
endpoint_config = {
"InstanceType": "ml.g5.2xlarge", # GPU инстанс с 24GB памяти
"InitialInstanceCount": 1,
"AutoScaling": {
"MinInstanceCount": 1,
"MaxInstanceCount": 10,
"TargetValue": 70.0, # Scale out при 70% утилизации GPU
"ScaleInCooldown": 300, # Не scale in чаще чем раз в 5 минут
"ScaleOutCooldown": 60
},
"ModelDataUrl": "s3://truelook-models/yolo-v11-2026-01/model.tar.gz",
"Environment": {
"MODEL_SERVER_WORKERS": "2",
"MAX_CONCURRENT_TRANSFORMS": "10"
}
}
4 Постобработка и бизнес-логика
Детекция - это только половина дела. Нейросеть говорит: "В кадре 3 человека, у 2 есть каски". Бизнес-логика должна решить: "Это нарушение? Кому и как сообщить?"
TrueLook использует Step Functions для оркестрации потока:
- Получить результат детекции от SageMaker
- Применить правила (например, в зоне крана каска обязательна, в офисе на стройплощадке - нет)
- Если нарушение - проверить, не было ли уже предупреждения этому человеку в последние 5 минут (чтобы не спамить)
- Отправить алерт: в мобильное приложение прораба, в Slack-канал безопасности, записать в базу данных
- Если нарушение критическое (человек в опасной зоне без СИЗ) - запустить сирену на стройплощадке
Вся эта логика живет в Step Functions, которые легко дебажить и мониторить. Если что-то пошло не так - видно на диаграмме, где именно застрял процесс.
5 MLOps: как модель не сходит с ума со временем
Самая интересная часть. Модель, обученная в январе 2026, к июню уже может "глючить". Появляются новые типы касок, рабочие носят худи под касками (да, это реальная проблема), освещение меняется с сезоном.
TrueLook построил continuous retraining pipeline:
- Каждый день система собирает "сложные" кадры, где уверенность модели была низкой (confidence < 0.7)
- Эти кадры попадают в S3 bucket для разметки
- Разметчики (и автоматическая разметка через модель-учитель) обрабатывают 100-200 кадров в день
- Каждую неделю запускается тренировка на SageMaker на обновленном датасете
- Новая модель проходит A/B тестирование на 5% трафика
- Если метрики лучше - полный rollout
Это тот самый MLOps, о котором все говорят, но мало кто делает правильно. Если интересно, как строить такие пайплайны, у меня есть подробный разбор в статье про on-prem AI стек.
Технические нюансы, о которых молчат в маркетинговых брошюрах
Вот что действительно важно, но редко обсуждается:
| Проблема | Решение TrueLook | Почему это важно |
|---|---|---|
| Ложные срабатывания на похожие объекты | Добавили в обучение "negative samples": оранжевые конусы, ведра, круглые камни | Снизили false positive rate с 15% до 3% |
| Разное освещение (утро/день/ночь) | Использовали augmentation: изменение яркости, контраста, добавление "дождя" на кадры | Модель работает стабильно в любых условиях |
| Стоимость GPU инференса | Использовали SageMaker Serverless Inference для пилотных проектов | Платили только за миллисекунды инференса, а не за часы работы инстансов |
| Задержка (latency) алертов | Оптимизировали весь пайплайн: от камеры до алерта < 2 секунд | Рабочий еще не успел сделать 2 шага в опасную зону, а сирена уже воет |
Ошибки, которые совершил бы я (и, наверное, вы)
Глядя на архитектуру TrueLook, я вижу несколько мест, где большинство инженеров (включая меня в прошлом) наступали на грабли:
- Пытаться детектировать все и сразу. Первая версия детектила 20 классов объектов. Точность была 60%. Вторая версия - только 5 критических классов. Точность - 94%. Иногда меньше - это больше.
- Игнорировать бизнес-контекст. Модель видит человека без каски. Бизнес-логика должна знать, что в столовой это нормально, а в котловане - нет. Без этого любая AI система превращается в игрушку.
- Экономить на мониторинге модели. Модель - это не "натренировал и забыл". Ее accuracy падает на 1-2% каждый месяц просто потому что мир меняется. Нужен мониторинг дрифта, как в статье про почему падают модели CV.
- Не готовить масштабирование с дня 1. Пилот на 5 камерах работает отлично. Попробуйте запустить на 500. Все ломается. TrueLook с самого начала строил архитектуру для тысяч камер, даже если начинал с десятка.
Что дальше? AI-прораб, который сам выписывает штрафы
TrueLook уже работает над следующими фичами:
- Predictive analytics: AI предсказывает, где и когда вероятны нарушения, основываясь на погоде, времени дня, усталости рабочих
- Интеграция с wearables: данные с умных касок (удар, падение) + видео с камер = полная картина инцидента
- Автоматические отчеты для OSHA: система сама генерирует ежемесячные отчеты о нарушениях и мерах по их устранению
Самое интересное - это потенциальная интеграция с городскими системами, где данные со стройплощадок помогают планировать инфраструктуру.
Финансовый итог для клиентов TrueLook: снижение штрафов OSHA на 40-60%, снижение страховых взносов на 15-20%, нулевые смертельные случаи на проектах с системой более 1 года. AI окупается за 3-6 месяцев. После этого он просто печатает деньги.
И последнее: эта архитектура - не уникальна. Ее можно адаптировать для любой отрасли, где нужно следить за соблюдением правил: склады, заводы, больницы, аэропорты. Главное - начать с простого (детекция касок), отточить пайплайн, а потом добавлять сложность.
Как сказал мне техлид TrueLook: "Мы начали с того, что отличали человека от столба. Через год наша система отличала субподрядчика по цвету каски и знала, что у него истек срок обучения по технике безопасности".
Вот что значит настоящий MLOps - когда модель не просто видит пиксели, а понимает контекст.