Вы когда-нибудь задумывались над тем, что тысячи компаний создают свои продукты и технологии в отрыве от пользовательских потребностей и решают самостоятельно придуманные проблемы, которые слабо коррелируют с реально существующими?
В части создания одной из наших технологий мы, разработчики Macroscop, относились к таким компаниям: на протяжении 6 лет работали над функцией, которая, по нашему мнению, должна была сделать жизнь тысяч людей проще и удобнее.
В 2008 году у нас родилась идея максимально упростить процесс поиска в архивах видеосистем. Представьте среднего размера систему из 100 видеокамер и примерно 1000 часов видеозаписей, которые они оставили за сутки (обычно запись видео производится только когда есть активность в кадре). И вам нужно найти что-то в этих записях, но вы не знаете, где и когда это происходило. Вы будете просматривать записи час, второй, третий, и к моменту, когда найдете то, что нужно, проклянете все на свете.
Мы решили создать инструмент, который позволит искать по видео так же, как Google ищет по тексту: задаете в системе человека с какими-нибудь приметами, например, одетого в зеленую футболку и черные джинсы, и получаете всех, кто отвечает этим параметрам.
Мы создали такой инструмент и назвали его индексатором (технологией индексирования объектов). Решение работает с цветовыми сочетаниями образца для поиска: производится кластеризация объекта (выделяются одинаковые по цвету участки), для каждого кластера определяются его характеристики, которые в результате образуют индекс. Аналогично индексы вычисляются для всех объектов в архиве, и путем сравнения программа предлагает оператору набор результатов – всех объектов, индексы которых близки к индексу образца.
Так в индексаторе выглядит формирование поискового образца: оператор может вручную раскрасить фигуру человека в соответствующие цвета.
Поисковые результаты индексатора выдаются в виде набора изображений. Оператор выбирает нужный вариант, после чего просматривает отрезок видео из архива.
Индексатор стал для нас детищем, на котором мы в определенной степени помешались. Мы были поглощены этой идеей и тратили колоссальное количество сил, времени и денег на разработку. Так мы наняли 2 команды высококлассных разработчиков – команда «физиков», выпускников физического факультета, и команда «математиков» — выпускников мехмата, которые в течение целого года «соревновались», разными методами решая задачу индексирования. Кстати, «физики» в этом соревновании победили 🙂
Мы проводили немало забавных экспериментов, в ходе которых проверяли, как наш индексатор реагирует на то или иное освещение, одежду той или иной расцветки. Например, в тот год проходя по коридору бизнес-центра, в котором мы работали, вы запросто могли встретить мужчин в разноцветных семейных трусах поверх костюмов или джинсов. Это были наши разработчики, которые тестировали, как индексатор реагирует на разные узоры и текстуры.
Работа над развитием индексатора продолжалась вплоть до 2014 года. Мы существенно продвинулись в разработке и создали реально работающий инструмент, но задача распознавания цветовых сочетаний очень сложна, поэтому даже спустя 6 лет качество работы поиска по приметам не было идеальным. При этом индексатор и созданный на его базе модуль интерактивного поиска был доступен для пользователей: он продавался в качестве подключаемого модуля или предоставлялся бесплатно в рамках максимальной версии ПО. Периодически мы выпускали обновления, в рамках которых что-то улучшали, но что-то при этом «падало». Часто это был индексатор, но практически никто и никогда не обращался в компанию с проблемой, что поиск по приметам не работает. И в какой-то момент мы осознали, что такие запросы и жалобы не приходят из-за того, что просто никто им не пользуется и ДАЖЕ НЕ ПЫТАЕТСЯ ПОЛЬЗОВАТЬСЯ. А мы занимаемся абстрактными разработками, реализацией идей, абсолютно оторванных от реальности.
В 2014 году мы признали, что наша идея поиска по приметам потерпела неудачу, двигаться дальше в том же режиме было нельзя. Мы решили сделать разворот.
План был таким: плотно пообщаться с 50 реальными пользователями систем видеонаблюдения и узнать у них, что они ищут, как они ищут, что им нужно; понять, нужен ли им именно поиск или для них важна работа каких-то интеллектуальных функций в реальном времени.
Мы начали встречаться и общаться. В ходе одной такой встречи нам сказали: «Ваш поиск по приметам – это теоретически интересно, но на практике нам чаще нужно не просто найти человека, а понять, как он перемещался по объекту: откуда пришел, где был, когда и куда ушел». Вскоре эту же потребность независимо друг от друга высказали еще 5 или 7 пользователей.
Мы задумались, как можно решить эту проблему в рамках нашего ПО и предоставить пользователям данные о перемещениях человека по камерам всей системы видеонаблюдения. Мы приступили к разработке межкамерного трекинга.
Межкамерный трекинг позволяет отследить перемещение объектов (в текущей реализации людей) в поле зрения всех камер видеосистемы и получить траекторию этого перемещения. То есть понять, откуда любой интересующий человек пришел, куда ушел и как двигался в рамках системы видеонаблюдения. Технология межкамерного трекинга основывается на все том же индексаторе и поиске по приметам. Пользователь выбирает любого человека в кадре и задает его в качестве образца для поиска на других камерах. Macroscop ищет все визуально похожие объекты на ближайших камерах в смежных интервалах времени. Пользователю необходимо лишь пошагово подтверждать нужного человека в результатах.
Результат работы межкамерного трекинга — путь перемещения человека на плане объекта, видеоролик из фрагментов передвижения с разных камер или слайд-шоу изображений, которые позволяют восстановить полную картину его действий: в какое время появился на объекте, где находился, когда покинул объект.
При любой удобной возможности мы продолжаем валидировать эту идею. Так, например, на прошедшей месяц назад выставке Mips/Securika мы представили межкамерный трекинг и опросили о его полезности более десятка экспертов из лидирующих компаний отрасли. И вот что показали глубокие и детальные интервью:
Наш многолетний опыт разработки индексатора подтвердил общеизвестные истины, о которых пишут в книгах:
1. Генерация идей в отрыве от реальности и последующая их самоотверженная реализация — очень рискованное занятие. Придумали что-то – опросите 10, 50, 100 пользователей. А лучше не занимайтесь абстрактным придумыванием, а выявите реальное больное место.
2. Нащупали потребность, стали воплощать решение – начинайте с прототипов. И постоянно тестируйте, и проверяйте свои разработки на все тех же реальных пользователях. Чем теснее будет связь разработчиков с реальным миром, тем выше шансы не потратить все силы, средства и время на реализацию идеи впустую.
3. Если люди не критикуют ваш продукт, скорее всего, они им просто не пользуются.
4. И, наконец, главное – вовремя распознать, что ваша идея провалилась, и суметь признаться себе и вашей команде в этом. Не бояться делать развороты, анализировать прошлый опыт и быть готовым к тому, что и новая идея может провалиться. Но рано или поздно, пробуя и ошибаясь, все-таки прийти к успеху.