Демистификация серии блогов Clearview AI (часть 7)
Шаблон стека бережливого производства
Демонстрационное приложение CCTView основано на шаблоне LEAN Stack, развернутом на Free-dyno Heroku. Он был реализован для работы в автономном режиме с предварительно обработанными кадрами видеонаблюдения NYCDOT со вторника, 5 мая 2020 г., с 13:00 до 14:00.
Суть стека LEAN заключается в использовании одного и того же языка и шаблона (например, TypeScript и внедрения зависимостей) как на клиенте, так и на сервере. Использование TypeScript (т. е. NodeJS) на стороне сервера стало возможным благодаря предварительному извлечению функций в независимый от языка формат.
Клиент
Клиент был сгенерирован с помощью Angular CLI версии 10.2.0 и содержит несколько не требующих пояснений компонентов.
Чтобы начать, просто нажмите на камеру FDR @ E 53 St (733–681-N) , затем наведите курсор на нужный автомобиль или нажмите на него.
Сервер
Сервер основан на Стартовом шаблоне Nest TypeScript и содержит единый сервис для подсчета различной статистики и метрик. Для расчета евклидова расстояния в NodeJS я использовал NPM-пакеты scijs ndarray и ndarray-distance.
Менее 20 МБ с хранилищем данных 10 ГБ
Развертывание приложения (15 МБ для клиента, 4 МБ для сервера) содержит только бизнес-логику для пользовательского интерфейса и серверную службу для вычисления минимального евклидова расстояния для определения соответствия транспортных средств.
Обнаружения объектов и извлечения функций (примерно 10 ГБ) хранятся вне сайта в следующих репозиториях:
- https://github.com/samdbrice/cctview-data-frames--735-683-N
- https://github.com/samdbrice/cctview-data-frames--733-681-N
- https://github.com/samdbrice/cctview-data-frames--732-680-N
- https://github.com/samdbrice/cctview-data-frames--731-679-N
- https://github.com/samdbrice/cctview-data-frames--689-640-S
- https://github.com/samdbrice/cctview-data-frames--253-134-S
Возможности для совершенствования
Это приложение демонстрирует, что возможно с готовыми опциями по умолчанию. Конечно, есть много возможностей для улучшения.
В большинстве случаев вы захотите настроить как обнаружение объектов, так и модели ReID, используя обучающие данные из производственной системы. Если вы поиграете с демонстрацией, вы заметите, что MED рассчитывается для всех совпадений в кадре. Простая оптимизация будет заключаться в использовании сегментации полосы движения для сопоставления только транспортных средств, движущихся в соответствующем направлении.