Всем привет. Скажу сразу - пост будет длинным, но я постараюсь, чтобы он был интересным.
Мы долго оставались в тени и почти нигде не писали о нашей разработке (кстати, открытой и свободной для использования - главное, чтобы был указан источник технологии и данных). Пожалуй, наступает время исправить этот пробел.
Начнём с описания проблемы и постановки задачи (а там как пойдёт). Поехали.
Проблема, которую мы взялись решать - это улучшение поиска пропавших людей.
Да, на территории нашей огромной и необъятной страны продолжают пропадать люди - и весьма нередки случаи, когда пропадают они в природных условиях. Уходят в лес на прогулку\за грибами, утрачивают ориентиры - и вместе с ними возможность самостоятельно вернуться к родным\в цивилизацию.
Розыском таких пропавших людей занимаются как и государственные структуры (МЧС, полиция), так и волонтёры в составе Поисково-Спасательных Отрядов. Отрядов много, они разные - пожалуй, самые известные из них - Лиза Алерт, Экстремум, Сова, Запад, ОренСпас - увы, перечислить всех очень хотелось бы, но для этого лучше будет запилить отдельный пост.
Наиболее старая и проверенная методика поиска человека, пропавшего в природной зоне (Лес\степь\лесостепь) - пеший поиск. Волонтёры собираются в группы, забирают себе часть поискового квадрата, вооружаются картой\фонарями и методично медленно проходят выбранный участок по заранее оговоренному маршруту с целью постараться увидеть\получить отклик потерявшегося человека. Это тяжёлая, непростая, изнурительная и достойная работа, требующая подготовки, навыков - и - самое непростое - людей, которые её могут выполнить. Для такой тактики поиска добровольцев нужно весьма немало.
Как улучшить поиск? Достаточно хорошие результаты можно получить, запросив на поиск вертолёт. С высоты видно больше, можно увидеть потерявшегося человека, можно набрать ему на телефон и попытаться услышать шум лопастей - вариантов много. За одним минусом. Вертолёт - это дорого, пилотов - немного, встаёт вопрос стоимости лётного часа и множество других, не менее острых вопросов. Дорого. Но эффективно.
Ещё варианты? Правильно. Коптеры. Можно взять коптер, натыкать ему маршрут в поисковом квадрате и чтобы по пути следования он фотографировал территорию. И чтобы на фотографии была геометка. Остаётся найти нужную фотографию с потерявшимся человеком, получить данные о геометке - и можно выдвигаться на координаты и спасать.
Если бы не одно "но". Деревья и прочая растительность + площадь охвата. Поисковиками опытным путём было установлено, что более\менее безопасная и оптимальная высота пролёта коптера при съёмке - 50 метров (выше крон деревьев с запасом). Человек на такой фотографии занимает очень мало места (зачастую без приближения на самой фотографии его даже не идентифицируешь). И таких фотографий с поиска может "приехать" порядка 4 тысяч. Даже опытный глазастый просмотрщик на сотой (а то и пятидесятой) фотографии начнёт уставать - и повышается шанс пропуска потеряшки. Вместе с этим снижаются шансы вовремя спасти человека - время в решении данной задачи играет против нас.
Как ускорить процесс поиска человека по фотографиям с коптера?
Мы проанализировали эту задачу и начали её решать. Собрали данные (банк фотографий с размеченными на них людьми) - потратив огромное количество времени и сил. На собранных данных натренировали нейросеть, написали к ней интерфейс-обёртку, чтобы операторам было удобно работать. Длительно и постоянно работали над улучшением работы как программы, так и нейросети.
Кто это мы? Мы - Лакмус. Свободное сообщество программистов и специалистов по анализу данных. Lacmus Foundation. Мы разрабатываем наше решение в свободное время.
Наша программа свободна в рамках лицензии OpenSource (Лицензия с открытым исходным кодом)
Для проверки эффективности работы программы мы, помимо тестов на собранных данных установили её отдельно взятым операторам БПЛА.
Установили - И...
И программа начала находить потерявшихся людей. В полях, в условиях продолжающегося поиска - с коптера можно загрузить фотографии на ноутбук, скормить их программе - и она сама подсветит те, на которых есть люди .
Получилось быстро. Быстрее, чем фотографию отсмотрит человек. И всяко быстрее, чем если человек будет отсматривать 3-4 тысячи фотографий.
Для сравнения прикрепляю достаточно простую фотографию зимой. Постарайтесь найти на ней человека. Правильный ответ будет ниже, в комментариях.
Немного цифр (Да,мы любим цифры). На фотографии в разрешении 4000x3000 (именно такие мы получаем с коптеров) фигура человека занимает крошечный прямоугольник до 100x50 пикселей. У опытного оператора отсмотр одной фотографии (в зависимости от сложности ландшафта) занимает от 20 секунд до нескольких минут. Наша программа и нейросеть обрабатывает её в среднем за 2 секунды на ноутбуке средней мощности (процессор Core i5, два ядра)
Почему мы решили написать здесь? Нам хочется, чтобы об этой технологии узнало как можно больше людей. И начали её применять - Она в свободном доступе.
Мы создавали программу для того, чтобы помогать спасать потерявшихся.
И будем рады, если с её помощью удастся увеличить количество вовремя спасённых потерявшихся людей.
P.S. В феврале 2020-го мы победили на соревновании разработчиков социальных решений. После чего про наш проект сняли интересный ролик - добро пожаловать по ссылке, будем безумно рады лайкам на Ютубе (серьёзно. Каждому лайку).
В завершении поста хотел бы поблагодарить:
- Сообщество OpenDataScience. Сообщество специалистов, занимающихся анализом данных
- Всех, кто принимает участие в нашем проекте - пишет код, собирает и размечает фотографии
- Тех, кто предоставлял нам фотографии с коптеров. (Владельцы коптеров DJI - вы тоже можете принять участие в пополнении банка данных и улучшении нашей нейросети. Отписывайтесь в комментариях).
- Компанию DTL, с которой мы взаимодействуем в части обучения нейросетей. Это - тяжёлые расчёты, для этого нужны суровые вычислительные мощности. в DTL сервера с жидкостным охлаждением (это есть на ролике в Ютуб) - и это помогает использовать мощности эффективнее (и, что немаловажно - экологичнее)
- Теплицу Социальных Технологий. Которая помогла нам найти новые направления для улучшения нашей программы.
- Режиссёру и оператору, которые сняли информативный ролик и помогли донести сложное простыми словами.
- И, конечно же, всех неравнодушных, кто - несмотря на погоду, забыв про сон, продолжает искать потерявшихся людей. Вы их обязательно найдёте. Обязательно.
P.P.S. Нам нужно улучшать нейросеть. Для этого нужно больше фотографий. С коптеров и с геотегами. Поэтому - пожалуйста, отписывайтесь в комментариях, если Вы готовы помочь с фотографиями.
Подписывайтесь на нас)
Засим всё. Хороших выходных. Берегите себя.