Вредные советы по подготовке датасета
Всем привет! Антон Кобак, CEO Kobak Lab. В последние 3 года многие наши проекты завязаны на видеоаналитику.
Как часто бывает, для внутреннего порядка, решили собрать мануал для новых сотрудников по организации сбора датасета, техническим требованиям и т.п. В конечном счете, все это вылилось в лонгрид в чате, которым решил поделиться.
Для тех, у кого мало времени - сразу резюме статьи. Вторая часть статьи будет посвящена всем недостающим здесь техническим деталям.
Максимально внимательно выбираем ракурсы и то, что вообще снимаем;
Планируем процесс сбора / съемки подробно;
Проверяем оборудование по десять раз;
Берем только свой проверенный ПК;
Сохраняем все данные, даже сырые;
Берем лишнее оборудование;
Согласуем с заказчиком все письменно и заранее;
Заранее продумываем доступ к Сети;
Думаем о себе и своем комфорте!
Для кого статья?
Вы делаете первые шаги в сборе датасетов на натуре, либо
Уже имеете опыт, но интересно посмотреть на мнение коллег.
Формат статьи – вредный совет и к нему чек-лист, как надо делать. Побежали!
Совет #1. Не ставьте жесткие критерии для включения данных в сет
Вообще. Не ставьте требований по ракурсу, углу съемки и движению объекта в камере. Угол обзора в 120 или 180 градусов? Без разницы. Не гонитесь за разнообразием. Все потом доучим.
Как правильно?
Определите универсальные точки установки камер системы и используйте записи с похожих ракурсов при обучении модели.
Зачем? Нейросеть не поймет, что от нее требуется, если вы обучили ее на одном наборе данных, а показываете совершенно другие.
Меньше, но качественнее: не берите ракурсы, где объект наблюдения теряется среди других. В таких ракурсах его почти невозможно отличить от окружения, что скажется на работе модели. Обратите внимание на ракурсы под углом и зону охвата камеры.
Включите в датасет видео, снятое на камеры, которые будут использоваться в конечном продукте. Кадры, снятые на другую камеру, могут не подойти. Вы можете использовать кадры с разных камер, но лучше всего модель будет работать на том разрешении, на котором обучалась.
Не используйте мутные и замыленные кадры в обучении.
Применяйте кадры с различным уровнем освещенности.
Универсальный совет, чтобы избежать проблем переобучения: обеспечьте разнообразие кадров, чтобы модель могла научиться обрабатывать разные ситуации. Чем выше разнообразие датасета, тем лучше модель будет генерализировать сущность детектируемого объекта.
Тестируйте модель как на кадрах с объектами наблюдения, так и без них. При испытаниях отсутствие людей в поле наблюдения может стать проблемой для модели.
Совет #2. Планируете испытания в реальных условиях: вас там уже ждут и готовы помочь всем, чем могут
Разрешение на съемку дадут сразу, использование несертифицированного оборудования (то есть вашей системы) разрешат. Не договаривайтесь заранее, потяните до последнего. Вы удивитесь, как сильно все хотят приобщиться к современным технологиям, особенно госучреждения.
Как правильно?
Попросите помощи. Представьтесь студентами или аспирантами. Объясните, что цель сбора данных – научная. Такой способ подходит, если у вас нет другой возможности реализовать сбор данных.
Дайте гарантии, что система не несет рисков для посетителей и лично руководства объекта. Приложите список оборудования, лицензии и все, что можете показать в плане безопасности (об этом ниже).
Подготовьте список объектов и контакты, где вы потенциально можете провести съемки. Делайте рассылку по списку и выставляйте статусы, чтобы не запутаться, кого спросили, кто отказал, кто не ответил.
Рассылайте письма в учреждения и компании, где планируете съемки ЗАРАНЕЕ! Идеально 2-3 месяца до съемок.
Не стесняйтесь и делайте массовую рассылку. Никто не хочет отвечать и разбираться в том, что вы написали. Из 30 компаний отвечают 1-2.
Берите с собой все сразу. Предположим, что вы собираете данные на заводе и рассчитываете, что там будут инструменты, которыми вы сможете воспользоваться для установки своего оборудования. Отвертки, плоскогубцы, дрель? Их нет или вам не дадут. Или дадут, но за деньги. Просто будьте готовы.
Совет #3. Не нужно никаких бумаг, это все канцелярщина
Вы, наконец, договорились по телефону с менеджером на объекте и приехали. Вас встретили, проводили, показали все розетки, подключили к связи, выдали спецодежду. Приставили к вам человека, который будет помогать. Он рассказывает про безопасность, знакомит с коллегами, помогает сориентироваться и остается на связи… и тут звонит будильник, пора вставать.
Как правильно?
Не верь, не бойся и проси. Просите все: договоренности, зафиксированные на бумаге, разрешение на съемку, на установку оборудования. Просите разрешение от службы безопасности, просите подписать договор на проведение работ. Ваши договоренности по почте с одним человеком на предприятии, где работает 10 тысяч человек, могут не сработать. Конечно, все зависит от масштаба объекта, где вы планируете делать сбор или испытания. И, не буду скрывать, нашей команде тоже приходилось работать на птичьих правах. Но нужно понимать, что это неверный и рискованный подход. Высеките в камне все договоренности, они помогут вам.
Определите требования к инфраструктуре и подтвердите их выполнение на объекте в письменной форме. Мощности на серверах, доступ к ним, наличие электричества, пропускная скорость интернета, сотрудник объекта, который поможет. Это приоритет. Вас могут отключить от электричества или порежут скорость в локальной сети. СБ будет все равно, с кем вы общались. Если у вас нет подтвержденного руководителем списка, работа закончена.
Подготовьте Программу и методику испытаний. Важность этого документа сложно переоценить при планировании работ и согласовании допуска на объект. В целом, сам документ можно упростить до нескольких основных таблиц, если вы сдаете проект не по ГОСТ. Вот примеры:
Таблица 1. Состав оборудования для проведения испытаний (пример)
№ | Компонент | Модель | Подключение | Характеристики |
1 | Камера подводная | Hikvision DS-2CD2955FWD-I | PoE: Cat 5e разъем RJ-45 | -60 до +60°C; IP54 |
2 | Блок питания | … | … | Выходное напряжение 5В |
Таблица 2. Перечень проверок и методика испытаний (пример)
№ | Действие | Результат |
1 | Проверка соответствия прототипа требованиям по распознаванию, фиксации, отслеживании и оповещении об уровнях опасности | |
| Определение и вывод на монитор пользователя спортивных метрик по надводным камерам. Обновление метрик не реже чем 1 раз в секунду | Успешное получение и обновление метрик людей в бассейне (расчёт проплыва расстояния и средней скорости) Успешное обновление метрик не реже 1 раза в секунду |
2 | Интеграция по API с системой охранного видеонаблюдения | .. |
Совет #4. Не проверяйте технику – она работает
Ставьте камеру и спокойно бегайте по объекту, не парьтесь с проверкой записи! Все само запишется.
Как правильно?
Проверьте, что камеры вообще работают. Проверьте еще раз: камеры пишут, картинка идет, поток не фризит и т.п.
Сделайте тестовую запись и убедитесь, что поток идет. Включите запись на каждой камере. И потом опять проверьте. И еще раз.
Настройте камеру. Вдруг качество будет плохое? Часто не исправленное на старте потом уже не выправить.
Проверьте заранее, что всё оборудование подключается к ПК, с которого будут проводиться тесты.
Совет #5. Настройку системы делайте на ПК, который видите впервые
Оставьте дома свой ноутбук, он дорогой и тяжелый. Возьмите ноутбук у коллеги. У него, может стоять чуть-чуть другой софт... Но вы как-нибудь разберетесь.
Как правильно?
Никогда не используйте компьютер, который вы впервые видите. Даже если вы планируете работать через веб, используйте знакомый ПК. В самый неудобный момент вы узнаете, что на чужом ноутбуке ничего не работает: нет драйверов, сервисы не работают, контейнеры не поднимаются. Весело, правда?
Делайте тесты! Проверьте возможности ПК и выполните полноценное тестовое развертывание.
Совет #6. Не сохраняйте сырой поток – сохраните, когда доделаете
Зачем хранить сырые данные? Да еще и на двух устройствах. Данные не могут пропасть, будьте уверены. Мир надежен и предсказуем.
Как правильно?
Храните как сырую, так и обработанную запись. Зачем? Сырую можно использовать для дообучения. Обработку с места сбора используйте для фото‑ и видео материалов и оценки, как работает система в моменте. Такая обработка применяется в пост-анализе проблем на испытаниях, чтобы заново не прогонять сырье и не тратить время на поиск. Плюс всегда будет материал для сравнения версий сети. Добавьте надежности и оставьте себе шанс вернуться к исходным данным.
Используйте два компьютера для хранения данных во время работы на объекте. На одном всегда может что-то не включится, сломаться и даже разбить ноутбук тоже вполне возможно.
Совет #7. Не берите лишние расходники, не тащите штативы – все выдадут
Точно рассчитайте количество соединений и длину провода. Запомните, одна камера – одно крепление. Не берите лишнего, все равно не понадобится. Разберётесь на месте, у вас же развитое инженерное мышление!
Как правильно?
Используйте штативы и универсальные крепления. Возьмите больше хомутов, никогда не будет лишним.
Будьте готовы к поворотам: вам потребуется минимум в 2 раза больше витой пары, чем вы рассчитали для расстояния на объекте.
Возьмите в 4 раза больше разъемов RJ 45. Потом скажите спасибо!
Кабельный тестер – обязательный пункт. Ваша задача – сразу проверить обжатие и не тратить потом время на поиск того, что не работает.
Посетите место испытаний заранее: определитесь с месторасположением, измерьте расстояния, посмотрите, что может помешать установке оборудования.
Совет #8. Не планируйте Интернет – он будет и так
Интернет есть везде, это известный факт. Вы сможете скачать Source пакеты для вашего фронтэнда и пересобрать докер-контейнеры прямо посреди чистого поля. Кстати, там и 5G ловит лучше. Обновить платформу, изменить код – ни в чем себе не отказывайте.
Как правильно?
Оцените условия на объекте. Толстые стены в цехе на заводе, удаленность от вышек, помехи – это все может помешать ловить сигнал даже мобильной связи, что говорить про Wi-Fi.
Уточните, как работает Интернет заранее. Возможно, вас подключат к сети? Может, на предприятии, где происходит сбор, стоит глушилка? Или интернет есть, но медленный? О таком лучше узнать сразу.
Возьмите сразу ВСЕ. Дистрибутивы, локальные репозитории. У вас должна быть локальная копия ВСЕГО кода на ПК. Проверьте, что она работает без сети. Продумайте пошаговый план развертывания и возможные варианты отказа техники, ПО, связи.
Совет #9. Думайте про проект как о веселом приключении
Это будет легкая прогулка! Вы еще потом друзьям будете рассказывать, как ставили камеры над движущейся лентой конвейера, в миллиметрах от механизмов. Кстати, когда будете проводить испытания в плавильном цеху – сделайте селфи около печей. Без спецодежды, чтобы как в Чужих.
Как правильно?
Подумайте о себе. Сбор данных в суровых условиях не такая уж редкая история: цех с раскаленными печами, башенный кран, карьеры, где ведется разработка, корабль или шахта. В конце концов, вы можете просто вести съемку зимой на улице в -20°C. Подготовьте себя. Спецодежда, обувь, каски, теплый чай в термосе – список зависит от условий. Помните – кроме вас это никому не интересно.
Подумайте о безопасности. Не надейтесь на сотрудников предприятия, они запросто оставят вас один на один с опасным оборудованием. Никто не объяснит вам что делать, что нажимать, почему не стоит ставить камеру там, где через минуту будет острый пар или раскаленный металл. Как я это узнал? Не спрашивайте…
Уточните на этапе согласования, необходима ли специальная защита или подготовка по технике безопасности. От вас потребуется список действий, которые вы планируете зафиксировать на камеры. От объекта – список помещений, к которым у вас должен быть доступ и согласие на сопровождение вас и проведение инструктажа.
Проверьте готовность оборудования. Посмотрите в паспорте диапазон температур и влажности. Уточните требования по герметичности, правилам монтажа, соединениям. Плохая новость: при работе на объекте будут сюрпризы. Например, наша команда сталкивалась с тем, что источник БП, на котором написано 600 Вт, выключался при пиковой нагрузке от блока питания компьютера. Да, теперь мы знаем, что у блока питания конденсаторы, которые используют в 600 Вт в момент пуска. Всегда будут нюансы, которые можно узнать, только встав на грабли.
Есть другое мнение? Комментируйте! Во второй части я расскажу больше про технические детали. Скоро!