Imagine Cup 2014: путь к победе



Дорогой читатель, в этой статье мы решили рассказать тебе о нашем проекте [self tune]. За последние полтора года мы прошли большой путь от идеи до стартапа. Пусть мы окончательно еще не запустились, но у нас уже есть какой-никакой результат — победа в российском финале Imagine Cup 2014 в категории «Инновации». Путь этот был очень извилистый и проходил по очень ухабистой дороге. Надеемся, что тебе понравится наша история и ты тоже вдохновишься на свершения в сфере IT-стартапов.

Как все начиналось


Осенним вечером позапрошлого года пятеро студентов МФТИ пили чай в кабинете своего будущего научного руководителя. Он с упоением рассказывал о своем новом проекте, призванном помочь в психологической подготовке летчиков к полетам. Изюминкой его рассказа была технология, позволяющая определить уровень эмоционального напряжения человека, анализируя последовательность его сердечного ритма. Особенно впечатляло то, что для этого не требовалось ни какого-либо громоздкого и дорогостоящего оборудования, ни прохождения специальной процедуры измерения. Все, что было нужно — миниатюрный фитнес-датчик, надевающийся на грудь, и 5 минут измерения.

Мы и до этого интересовались современными технологиями, много программировали в учебных и рабочих целях и даже имели опыт создания собственных проектов. И, естественно, мы были воодушевлены новой идеей и не смогли отказаться от возможности воплотить её в жизнь своими руками. Мы с радостью приняли предложение заняться этим проектом в качестве нашей бакалаврской научной работы.

Первые шаги


Тогда мы даже и не подозревали, во что вырастет наш проект в будущем. Но мы сразу подошли к делу с большим энтузиазмом. Мы изучили все имеющиеся на рынке портативные датчики сердечного ритма, а также технологии, с помощью которых они обмениваются данными с телефоном или компьютером. Была куплена первая партия из 10 датчиков (как на картинке), работающих на Bluetooth 4.0, для тестирования. Стартовала разработка приложений для Windows и OS X. Работа закипела.



И вот, спустя небольшое количество времени, большое количество строчек кода и огромное количество выпитого в процессе пива, мы задумались над ключевым в истории нашей команды вопросом: почему, имея преимущество дешевизны, доступности и удобства, мы ограничиваем использование нашей технологии такой узкой группой людей, как летчики? Ведь в наших руках была технология, позволяющая любому человеку быстро и точно измерять уровень стресса в домашних условиях. Чтобы максимально упростить процесс с точки зрения пользователя, мы решили перенести нашу технологию на смартфоны.

Набираем обороты


С этого момента мы принялись за работу с двойной силой и рвением. Собирались вместе в общежитии или институте как только у нас появлялось свободное время, в том числе и ночью, — и кодили, кодили, кодили. Были нарисованы, затем запрограммированы, затем перерисованы, переделаны и снова перерисованы и переделаны экраны приложения для iOS. Затем был написан сервер, реализующий сложные и громоздкие вычисления уровня стресса по последовательности пульса. После этого от сервера решено было отказаться, и точно такой же функционал был написан на Objective-C. Потом мы поняли, что погорячились, и решили объединить усилия наших серверных и мобильных разработчиков. Каждый день мы наперебой спорили о добавлении новых фич и улучшении существующих. Мы постоянно перерисовывали экраны приложения и меняли дизайн.

Мы были настолько увлечены происходящим, что проигнорировали одну из типичных ошибок начинающих IT-проектов. Мы подходили ко всему процессу только с позиции разработки и технологий, совершенно не задумываясь о пользователях. В итоге мы создали сложного и громоздкого монстра, оперирующего научными терминами и считающего все 30 различных показателей методики определения эмоционального напряжения, которую мы все еще параллельно развивали в рамках научной работы. Всем, кому мы показывали наше творение, безумно нравилась его идея, но в то же время всем приходилось долго объяснять как работает приложение и что оно вообще делает. В какой-то момент пришло понимание того, что дальше продолжать работу в том же ключе нельзя.

В то же время нарастал конфликт в команде. Наша технология находила другие возможные применения и направления развития. Часть нашей команды хотела развивать все и сразу, других же это не устраивало — они хотели довести до конца начатое дело и не распыляться на каждую новую идею. В результате нам пришлось пережить уход двоих членов команды, которые унесли с собой, среди прочего, и старое название проекта. За этим последовал очень напряженный период в отношениях с научным руководителем. На фоне доставшегося нам никому не нужного приложения-монстра такое положение дел выглядело очень удручающе.

Второе рождение


Мы не стали мириться с тем, что по сути остались у разбитого корыта. Было решено начать все с чистого листа, при этом не повторяя старых ошибок. Буквально в тот же день после длительного брейнсторма мы придумали новое название — [self tune], и сделали на коленке наш сайт-визитку. Тогда же к нашей команде присоединился дизайнер и, по совместительству, супруга одного из основателей. Вооружившись новомодными веяниями из мира стартапов, а также книгами Стива Бланка и Эрика Риса, мы решили в корне изменить наш подход к проекту. Мы попытались понять, как наша технология сможет быть полезна пользователям и решить какую-то их насущную проблему. Оказалось, что уже сам факт того, что мы испытываем постоянное эмоциональное напряжение и стрессы, сам по себе является большой проблемой.

Действительно, мы испытываем стресс постоянно. Вспомните себя после напряженного рабочего дня, во время стояния в километровых пробках по дороге на работу, во время сдачи экзаменов — все эти и многие другие события являются источниками стресса. Избежать их всех невозможно, но зато можно свести на ноль их негативные последствия. Мы поняли, что одного измерения эмоционального напряжения недостаточно, и нужно предлагать пользователям эффективный способ борьбы с ежедневными стрессами.

Именно так и зародилась идея приложения [self tune] в его нынешнем виде. Оно предлагает пользователю выполнить простой алгоритм из трех действий: померяй, расслабься и сравни результаты. Чтобы максимально упростить процесс измерения и никак не ограничивать наших пользователей, мы решили отказаться от использования датчиков. Вместо этого было решено реализовать в приложении современную технологию определения сердечного ритма с помощью пальца, приложенного к камере смартфона. Сам процесс измерения должен был занимать около минуты.



Как же это работает?


Приложение работает по принципу «Померяй, Расслабься, Сравни».

На первом шаге измеряется исходный уровень стресса. Это возможно благодаря методике вариабельности сердечного ритма. Суть методики достаточно проста: частота сердцебиений изменяется с течением времени и даже два соседних сердцебиения имеют разную частоту (если можно так выразится). Например, значение пульса 60 вовсе не означает, что сердце бьется ровно 60 раз в минуту и временной промежуток между каждым из биений 1 секунда. На самом деле, временные промежутки между биениями сердца постоянно варьируются, и по закономерностям в этих вариациях можно судить о различных состояниях нервной системы, в том числе и стрессе.



А как собственно мы получаем эти самые временные промежутки? Для этого используется камера телефона. Когда сердце человека работает, кровь пульсирует по всему телу, в том числе по пальцам. Это приводит к тому, что изображение пальца, освещенное ярким светом (например, вспышкой телефона), немного меняется, в частности меняется красная составляющая («R») этого изображения.



Далее, по последовательности красных компонент, можно построить график, и, взяв пики графика за основу, посчитать эти самые расстояния. В конце измерения пользователь получает оценку своего «Stress health» от 0 до 100, где 100 — наилучший результат, который означает, что пользователь здоров (по-крайней мере, с точки зрения стресса). В конце измерения пользователь имеет возможность отметить свое субъективное эмоциональное состояние и текущий вид активности.



На втором шаге, «Расслабься», мы предлагаем пользователю методику для расслабления, подобранную на основании данных о его фактическом (наша оценка) и субъективном состояниях, текущей активности, местоположении, истории записей и многих других параметрах. В этом и заключается наша инновация. Мы не просим пользователя выбрать методику, а сами предлагаем ему наиболее подходящую в данный момент. Это могут быть простые дыхательные упражнения, расслабляющая музыка, общие советы по избежанию стресса: например, пойти на прогулку, почитать книжку, сходить на пиво с друзьями. Список возможных методик нами только начинает формироваться и пополняется постоянно.



После расслабления мы предлагаем пользователю померять свой стресс еще раз и сравнить, фактически, два числа: ДО и ПОСЛЕ. Таким образом, у пользователя будет возможность следить за своим прогрессом и на реальных результатах убеждаться в действенности методик. После всего этого пользователь может рассказать своим друзьям на Facebook о том, как он воспользовался приложением.



Вот примерно так это работает:



Imagine Cup


Итак, работа снова закипела. Мы, следуя заветам Эрика Риса, твердо решили написать приложение с минимальным функционалом и выложить его в AppStore для скорейшего получения обратной связи от пользователей. Но этим планам не суждено было сбыться, по крайней мере пока, так как мы узнали о конкурсе Imagine Cup.

Решение принять участие в конкурсе было для нас очень важным и ответственным. В 2005 году команда из МФТИ, которую также курировал наш научный руководитель, победила на мировом финале Imagine Cup в Японии. К тому же, в последне время физтеховским командам не удавалось победить даже на российском финале, поэтому мы решили взять на себя ответственность защитить честь нашего института.

К подготовке мы подошли очень серьезно, и изначально нацеливались на победу. Много сил вкладывалось не только в доработку приложения, но и в подготовку красочной презентации и яркого оригинального выступления. С последним нам активно помогали ребята из совместного учебно-научного центра Parallels-МФТИ. В итоге к региональному финалу выступление было готово, но выложить приложение в AppStore мы не успели.

После победы на региональном финале нам намекнули, что для дальнейших побед в конкурсе от Microsoft необходимо иметь хотя бы прототип своего продукта на базе одной из технологий Microsoft.



Времени до российского финала оставалось меньше месяца, но мы приняли этот вызов. К концу этого месяца напряжение только нарастало и страсти только накалялись. Кроме разработки приложения для Windows Phone, мы полностью переделали нашу презентацию, сценарий выступления, а также сняли промо-видео. Перед самим конкурсом мы много репетировали, и в последние дни почти не спали.

В результате все намеченные планы были выполнены, а демо-версия нашего приложения появилась в Windows Store.

Финал


И вот настал момент нашего выступления в категории «Инновации». Долгое время упорной работы над проектом и долгое время подготовки к конкурсу дали о себе знать. Мы стали победителями в своей категории, а также получили грант на доработку приложения от Фонда посевного финансирования Microsoft.

Но для участия в мировом финале нам нужно еще оказаться лучшими из победителей в трех категориях конкурса. Сейчас мы отправили материалы для онлайн-полуфинала, и с нетерпением и надеждой на лучшее ждем результатов.



За сценой


У всех без исключения участников команды основная профессия — «программист». За время разработки мы столкнулись с необходимостью научится писать программы для достаточно внушительного списка платформ: Windows 7, Windows 8/Store, OS X, iOS, Windows Phone, Azure и даже Android. В каждой из них есть свои прелести и свои недостатки. Например, для человека, привыкшего разрабатывать на C# для Windows, используя при этом Visual Studio, очень диким, сперва, покажутся XCode и Objective-C. Но постепенно привыкаешь к тому, что, казалось бы, элегантный код на C#, использующий Linq, например такой:

peaks.Sort((p1,p2) => p2.signalPower.CompareTo(p1.signalPower));

легким движением руки превращается в такой:

NSArray *sortedPeaksByPower = [peaks sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){
        
        HRPoint *p1 = (HRPoint*)obj1;
        HRPoint *p2 = (HRPoint*)obj2;
        if (p1.signalPower > p2.signalPower) {
            return (NSComparisonResult)NSOrderedAscending;
        }
        
        if (p1.signalPower < p2.signalPower) {
            return (NSComparisonResult)NSOrderedDescending;
        }
        return (NSComparisonResult)NSOrderedSame;
    }];


И это только вершина айсберга. На самом деле, кросс-платформенность — самый большой вызов для любого IT-стартапа, ведь если ты не займешь свою нишу на Android, iOS или Windows Phone, это сделает кто-то другой.

Вместо послесловия


Нашей молодой, но очень амбициозной команде уже удалось столкнуться со многими проблемами современных IT-стартапов. Надеемся, что этой статьей мы вдохновим многих на то, чего раньше стеснялись или просто боялись. Ведь у этой сферы сейчас проходит вторая молодость и многие «гиганты» рынка всячески помогают маленьким неокрепшим командам вроде нашей.

В свою очередь, хочется поблагодарить Microsoft за отличную возможность посоревноваться с лучшими студенческими IT-проектами, а также всех тех, кто помогал нам в работе. Всем без исключения участникам Imagine Cup мы желаем не останавливаться на достигнутом и продолжать развивать свои проекты! И в свою очередь надеемся, что наш проект сможет получить достойное развитие и изменить жизнь миллионов своих пользователей к лучшему.

Ссылки по теме


Поделиться публикацией

Комментарии 16

    +1
    Звучит очень футуристично. Не знаю работает ли ваша методика или нет, но выглядит это все достаточно интересно.

    Может сдружиться с производителями каких-нибудь спортивных и не очень пульсометров (Nike+, например) и встроить возможность отслеживать уровень стресса в течении дня? Мне кажется, это было бы очень полезно.
      +1
      Спасибо.

      Да! Именно над этим мы и собираемся работать в будущем. С разработок, связанных с разными трекерами, мы и начинали, но этот путь в данный момент не очень популярен. Для этого мы пока что ограничили функционал измерением с помощью камеры.
        0
        Саша, Юра, Вася и Ксюша — вы неимоверные молодцы. Научная подоплека всего этого дела замечательна. Идея красивая и начинание хорошее. А самое крутое в ваших промыслах, так это то, что у вашего приложения, есть научное обоснование.
        Добро пожаловать на хабр.
        с ув. друг
          0
          Спасибо. Все только начинается!
      +2
      У всех без исключения участников команды основная профессия — «программист».

      Когда сердце человека работает, кровь пульсирует по всему телу, в том числе по пальцам. Это приводит к тому, что изображение пальца, освещенное ярким светом (например, вспышкой телефона), немного меняется, в частности меняется красная составляющая («R») этого изображения.


      Хотел спросить, если основная профессия программист, то откуда такие данные? Это личные исследования или же вычитанный материал? Насколько можно доверять результатам приложения с точки зрения медицины/биометрии/нумерологии (подчеркнуть нужное)? Спасибо.
        0
        Спасибо за проявленный интерес.

        Отвечу по пунктам:

        — Что касается приведенного абзаца — изменение красной компоненты достаточно известный факт, который можно легко проверить экспериментально. Для этого достаточно взять приложение-фонарик и приложить к вспышке палец. При достаточном окружающем освещении изменение цвета пальца можно наблюдать невооруженным глазом. Если не получается — скачайте приложение-пульсометр, некоторые из них стримят изображение с камеры на экран.

        — Мы не позиционируем себя как медики-исследователи. Технологию мы не придумывали, она была изобретена до нас. По ссылке внизу статьи можно почитать о ней по-подробнее. Инновацией в нашем случае является не сама технология, а возможность ее применения в любом смартфоне. Кроме этого, мы предлагаем персонализированный механизм расслабления, это уже является нашей разработкой. Для этого не нужно быть медиком или нумерологом. Ведь любые данные однажды преобразованные в цифры моментально становятся элементами некой мат. модели, а с такими вещами мы, как выпускники Физтеха, работать умеем.

        Так что доверять этому можно и нужно, потому что это проверенные медицинские технологии, которым мы нашли применение в нашем приложении. Спасибо.
          0
          Спасибо большое за подробный ответ. Успехов вам!
        +2
        Ндяяя… Котики, за которых автора на хабре перевели в read-only, принесли людям первое место на Imagine Cup. Куда катится мир?
          +3
          Насколько я помню, этот проект очень плохо работал в реальных тестах. То выдавал заоблачные результаты, то просто не работал.
          Зачем нужно приложение, которое работает хуже, чем HeartRate от Runtastic — непонятно.
          Ну и если я правильно помню (финал был месяц назад, подзабылось уже что-то), то никаких особенных медицинских подоплёк там нет.

          И да, в прошлом году был мировой финал Imagine Cup в Питере. Там были намного круче проекты из России, но ни один не выиграл.
          Так что, я, конечно, пожелаю команде удачи, но на что-то надеяться с текущими результатами не стоит.
            0
            P.S. Да, печеньки с визитками были вкусными. Но т.к. бумажки промаслились, то пришлось выкинуть.
            Ребята поймут
              0
              Печеньки действительно получились не очень удачными, это были наши первые печеньки в подобном формате, просим у всех прощения.

              Ну а что касается проекта: на финале была продемонстрирована программа, которая ударными темпами допиливалась в последнюю неделю перед выступлением. Уже сейчас она работает намного лучше, можете сами попробовать. Естественно, сейчас это прототип, который еще улучшать и улучшать.

              А про медицинские подоплёки я уже писал выше. Когда из медицинской технологии построена мат. модель, это становится математика. А для обработки математических данных медики не так уж и важны, хотя, безусловно, мы поддерживаем с ними контакт.

              В любом случае, спасибо за критику. Идеальных продуктов не бывает. Но и неидеальные всегда можно улучшить.
                0
                То есть вы вот прямо верите, что у вас сейчас продукт? Ну или хотя бы — прототип продукта?
                  +1
                  Продукта нет, этого никто и не отрицает. А прототип есть. Написанный за 2 недели. Он более-менее демонстрирует работу приложения и позволяет попробовать его любому желающему. Хотя и не работает так, как хотелось бы.
            +1
            Проект из серии «Мы хотим спасти мир от зла и рака, но пока мы не придумали — как этого добиться. Поэтому присядьте и позырьте на котиков».

            Мда.
              +1
              А в чем смысл приложения? Ок, у меня уровень стресса 20, или 40 или 80%. Ну и что? Я расслаблюсь отдохну, но я и так отдыхаю если беру телефон и использую игры\развлекательные программы, чем ваша по сути является.
              Похоже на психологический возраст и остальное.
                0
                Ответ на этот вопрос можно найти в самой статье:

                На втором шаге, «Расслабься», мы предлагаем пользователю методику для расслабления, подобранную на основании данных о его фактическом (наша оценка) и субъективном состояниях, текущей активности, местоположении, истории записей и многих других параметрах. В этом и заключается наша инновация. Мы не просим пользователя выбрать методику, а сами предлагаем ему наиболее подходящую в данный момент. Это могут быть простые дыхательные упражнения, расслабляющая музыка, общие советы по избежанию стресса: например, пойти на прогулку, почитать книжку, сходить на пиво с друзьями. Список возможных методик нами только начинает формироваться и пополняется постоянно.


                Различные развлекательные программы позволяют всего лишь отвлечься от источника стресса, перевести дыхание. При этом, они никак не учитывают, так сказать, «масштабы бедствия», какие-то личные предпочтения и, конечно же, сами источники стресса. Развлекательные приложения и игры позволяют избавиться от симптомов, мы же, в свою очередь, предлагаем справиться с проблемой на более глубоком уровне.

                Конечно же, это все звучит очень футуристично и многие могут сказать «у вас же ничего не работает, показываете каких-то котов». Но мы ведь работаем над технологией, а Imagine Cup — отличный способ заявить о ней на весь мир. Спасибо.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое