Привет всем читателям Geektimes. Сегодня у нас появилась возможность поговорить о “живом” развитии своих собственных идей с основателем стартапа Petiole Андреем Селезнёвым. Мы постараемся обойти стороной победные реляции и внушения о том, как это всё легко (или тяжело) и как приятно чувствовать на себе внимание прессы.

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

Мы бы хотели избежать рекламных заявлений, но сказать пару слов придётся. Речь идёт о технически специализированном приложении Petiole, которое при помощи камеры мобильного телефона позволяет определить площадь листьев растений и содержание хлорофилла.


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

Да, Petiole решает вполне специфическую задачу. В этом наша особенность. Мысль пришла, когда эта проблема жила с тобой три месяца. Точнее, я жил с другом Вячеславом Быковым в одной комнате. Он в это время работал в Институте эволюционной экологии НАН Украины, занимался исследованием влияния негативных факторов на тополь пирамидальный. Для этого измерял площадь листьев. Процесс выглядел очень бюджетно и не оптимально — сканер, фотошоп, ImageJ через консоль, сведение данных в экселе. При этом лицензионное программное обеспечение находилось в режиме “бесконечная демо-версия”, что добавляло пикантности такого рода исследованиям. Вячеслав приходил домой поздно и с зелеными пальцами, от постоянного контакта с сухими и свежими листьями. Я захотел ему помочь и в один вечер поумничал, что задачу можно решить с помощью обычного смартфона. Слово за слово, завертелось закружилось, и в конце концов нам удалось это реализовать. Потенциальная аудитория у приложения разнообразная. Сначала это были ученые-биологи, экологи. Потом у нас появился интерес со стороны ученых-агрохимиков. Потом мы добавили хлорофилл и к нам начали звонить представители крупных агрохолдингов.


Фото Petiole

Если говорить цифрами, то они намного отличаются от аудитории популярных социальных сетей. Сейчас у нас 88 активных месячных пользователя. Рост небольшой от месяца к месяцу, но он есть, и это нас радует.

ОК, тогда уцепимся за “задачу можно решить с помощью обычного смартфона” и “Слово за слово, завертелось закружилось, и в конце концов нам удалось это реализовать”. Расскажи, пожалуйста, о своем опыте программирования и сколько времени заняло создание рабочего кода Petiole ?

Опыт программирования разный и своеобразный. Свою первую программу я написал в возрасте девяти лет на языке программирования FoxPro 2.5. Родители работали в Вычислительном центре Донецкой железной дороги. И после школы я любил захаживать в гости и рассматривать толстые книги с исходным кодом (обычно я их разрисовывал всякими картинками). Потом баловался Pascal, Delphi, Qt, Ruby on rails. Хочу заметить, что у меня нет классического компьютерного образования, сам я по диплому инженер — землеустроитель. И на “галерах” проработал в общей сложности не более, чем два года. Но это не помешало мне и моей молодой команде примерно за семь месяцев с перерывами написать рабочий код Петиоля. С учетом того, что мы три раза переписывали базовый алгоритм.

По ходу процесса уже было ясно, что у проекта должно быть какое-то будущее? Был создан блог, искались связи с инвесторами, было общение с целевой аудиторией ?

Нет, примерно до половины пути проект был изначально направлен на решение проблемы одного человека. Но в июне прошлого года мы стали финалистами GIST Tech-I. И с этого момента проект приобрел более глобальные задачи и цели. Блог был создан месяца три назад. С инвесторами мы общались активно осенью прошлого года. С целевой аудиторией постоянно пытаемся держать контакт и получать обратную связь. В основном это украинские ученые.

Можешь подробнее рассказать о GISTech-I. Понятно, что всё можно нагуглить, но интересно авторское отношение к этому. Почему это выгодно, круто, полезно? Кстати, насколько велика твоя команда ?

GIST Tech-I — глобальный конкурс технологических и научных проектов для развивающихся стран. Он организован при поддержке U.S. Department of State и реализуется силами AAAS (Американская ассоциация содействию науки). Кульминация конкурса проходит в рамках Global Enterpreneurship Summit. К слову, мы стали первыми финалистами из Украины за все время его проведения начиная с 2011 года. Главное отличие от других конкурсов — команды только из стран с развивающейся экономикой. Проекты оценивались по критериям нацеленности на благосостояние и улучшения микроэкономических показателей для общества. Лично нам был полезен этап полуфинала. Необходимо было собрать как можно больше голосов в онлайн голосовании на протяжении одного месяца. Фишка голосования — один человек может голосовать каждый день.

Мы собрали 5775 голосов, что позволило нам занять 15 место в категории “идеи” и пройти в финал. Сам финал заключался в двухдневном тренинге (как создать компанию, маркетинг, продвижение в социальных сетях) и три дня участия в саммите с питчем своего проекта на большой сцене. Лично у меня осталась куча впечатлений как от Африки, так и от саммита и конкурса. Главное — я познакомился с замечательными людьми из Африки, Мексики, Казахстана, Азербайджана, Малайзии, Чили, Перу, расширил свой кругозор и первый раз в жизни полетал на самолетах.

Наша команда состоит из 8 — 10 человек, которые сильно помогли на разных этапах становления проекта. К сожалению у нас нет бюджета платить заработную плату. Но несмотря на это люди работали в свободное время и за идею, что нас очень радовало. В основном, это мои друзья из стипендиальной программы “Завтра.ЮА”.

А где проходило все мероприятие? Как было обставлено? С кем приходилось конкурировать? И как вы попали в этот список ?

Мероприятие проходило в Найроби, столице Кении. Физически первые два дня тренинга проходили в конференц-зале пятизвездочного отеля Sarova Stanley. Остальные три дня на территории The United Nations Office. Обстановка в целом была рабочая. Каждый из финалистов был нацелен на победу. Постоянные тренировки питча и подготовка презентации до трех часов утра. Наш проект конкурировал в секции “идеи”. Из 15 человек, по моему мнению, все были как на подбор. Конкуренция была сильная и мой слабый разговорный английский немного снижал мои шансы на победу. Большую часть призов забрали команды из Африки и Южной Америки.

В список нас отобрали по результатам конкурса “Startup Open 2015”. Это глобальное соревнование стартапов, включая и развитые страны. Для нас это было приятной неожиданностью. И я горжусь, что наш проект попал в один список с такими проектами как Lishot, AeroAnalytics, AppleDoc, BethClip и Smart Mobile Farming.

ОК, давай вернемся к практической стороне вопроса. Приложение существовало до того, как вы приняли участие в GIST Tech-I. Потом вы приняли участие в различных мероприятиях. Что изменилось? С другой стороны: какой фидбек вы получаете сейчас? От реальных агрономов или ученых?

Да, рабочее приложение существовало до того, как мы приняли участие в GIST Tech-I. Но, первое, мы использовали алгоритм с калибровочным квадратом. Он давал плохие измерения. Часто выскакивала систематическая ошибка в два квадратных сантиметра. Плюс нестабильность самого приложения в целом. Также у нас не была реализована функция измерения хлорофилла по индексу темного зеленого. Второе — к весне 2015 года активная разработка приложения была приостановлена. В целом я забыл ещё сказать, что у нас есть ещё и облако, где собираются данные измерений от всех пользователей. Но это отдельная история.

На тот момент был прототип с базовыми функциями. Осенью 2015 и весной 2016 мы приняли участие в около десяти мероприятиях (конференции, ярмарки, выставки, пикники), где рассказывали, показывали как работает приложение и что с ним можно делать. Больше всего выступлений было на “Научных Пикниках” в Киеве. Собственно там произошла первая публичная демонстрация летом 2014. Главное изменение для нас — люди стали понимать, что смартфон можно использовать не только для игр, а и для решения сложных задач. У нас появились запросы с различных университетов. Мы даже заняли третье место на первом агрохакатоне Украины (проводился в Тернополе).

Сейчас больше обратной связи идет от ученых. Недавно я получил письмо от нашего пользователя в Тернопольском национальном педагогическом университете, кафедра биологии и химии. Они тестировали Петиоль вдоль и поперек в контексте измерения площади. Результат — площадь статистически достоверна, измерения происходят быстро и удобно для пользователя.


Фото Petiole

От агрономов мы фидбека дождемся разве что в 3016 году. Причина, в том, что в целом агрономы не заинтересованы нашим приложением. Так как видят в нем конкурента. Наш клиент — это собственник агробизнеса, который хочет автоматизировать труд агронома и полностью исключить его из цепочки принятия решений. Но в решение в таком виде, как оно сейчас есть — ходить по полям с приложением — их мало интересует (в контексте Украины). Площадь полей среднего предприятия от 10 000 га. Если брать для сравнения Южную Корею, то там средняя площадь фермерского хозяйства 2 га. Петиоль — идеальное решение для них.

Насколько можно понять из фотографий, то к приложению необходимо иметь калибровочный стенд или нечто подобное? Можешь рассказать об этом? Сколько стоит приспособление? Не влияет ли его наличие на конечное решение об использовании Petiole ?

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

Бывалые люди советовали отливать из пластика. Но, услышав стоимость изготовления формы для заливки, мы решили с этим подождать. Потом я случайно попал в большой строительный супермаркет и увидел ступени из бука и антибликовые листы полистирола. И понял, что это оно. Все режется на фрезере и собирается с помощью липучек.


Фото Petiole

Себестоимость стенда — наша коммерческая тайна. Цена продажи — тридцать долларов США. Для академического использования мы даем стенды бесплатно. Уже штук восемь раздали. Конечно, его наличие влияет на решение об использовании. Каждый из нас мечтает просто поднести камеру смартфона к растению и получить чуть ли не весь химический состав. Но если человек очень хочет, он сможет обойти данную проблему. Мы ему в этом помогаем — можно скачать файл с шахматкой и вместо стойки использовать стопку книг. Приложению две недели назад делали рецензию Greenappsandweb. Так они смогли выполнить весь цикл измерений без наличия стенда.

Ясно. А можно в общих чертах набросать алгоритм работы приложения? Какие библиотеки используются? Какие были проблемы и какие источники или консультанты использовались ?

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

Координаты точек контура пересчитываем из координат камеры в реальные координаты. По этим значениям находим площадь листа. Одновременно мы работаем с тенью (минимизируем) и с черешком (отсекаем). Для индекса темного зеленого мы переводим картинку из режима КЗС (RGB) в HSV. Делим на каналы и по каналу “Цветность” находим среднее значение по листу в заданном диапазоне. Нормализуем его к диапазону и получаем индекс. Используя зависимости хлорофилла от индекса темного зеленого (это обычно линейные модели, типа y = ax + b), полученные в нашей агро-лаборатории, мы пересчитываем его в содержание хлорофилла прямо в приложении. Кроме этого мы используем Fabric, Volley, Material Design.


Фото Petiole

На раннем этапе были проблемы с точностью измерений площади, но мы его решили, добавив в процесс измерений нахождение матрицы гомографии. Дальше были проблемы с производительностью. К сожалению, смартфон — это не компьютер, у него процессор относительно слабый. Google решил бы эту проблему просто отправляя данные в облако. Но не везде есть интернет-покрытие, 3G и другие прелести цивилизации. Особенно в поле на экспериментальных участках. Алгоритм работал медленно и часто вылетал с ошибками переполнения памяти типа void*cv::OutOfMemoryError(std::size_t). Но переписав его в третий раз, нам удалось побороть такое его странное поведение.

По источникам нам хорошо помогают электронные книги по OpenCV (Packt Publishing), база знаний answers.opencv.org, публичные репозитории на Github и хорошая документация на самом сайте библиотеки OpenCV. Понятно, что по Android тоже были необходимы знания. Особенно в плане настройки компиляции нативных алгоритмов в библиотеки, используя NDK, и чтобы это все хорошо работало. Но нам удалось быстро восполнить пробел, используя замечательный ресурс Udacity.

Значит часть кода написана не на Java, а на С++ ?

Да. Код отвечающий за работу приложения, сохранение данных в БД, написан на Java в рамках Android SDK. Код, отвечающий за работу алгоритма, написан на C++ и при помощи Android NDK преобразован в статическую библиотеку. Приложение при запуске загружает библиотеку и использует нативные вызовы функций библиотеки OpenCV. В целом есть java-библиотека для использования OpenCV прямо в коде приложения, без использования JNI. Но производительность отличается от нативных вызовов кода. Сейчас у нас производительность около 5FPS при измерении площади листа в режиме реального времени. С использованием java-библиотеки было бы наверное около 2FPS.

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

Довольно сложный вопрос. Но можно попробовать. Для начала необходимо понять, что мы вкладываем в “профессиональную поддержку”. Если это деньги, то необходимо, прежде чем ввязываться во всю эту историю, их предварительно заработать на обычной работе или фрилансе. Если это покровительство, то тут как кому повезет. Если это медиапокрытие, то нужны знакомства в среде журналистов (будет страдать печень) или хороший медиаповод (выиграли хакатон, например). Наличие одного, а лучше сразу всех факторов, повысит ваши шансы, что о вас узнают потенциальные инвесторы. Но, есть одно но. Узнать не равно инвестировать. О нашем проекте знают практически все потенциальные инвесторы в Украине, но ни один из них не инвестировал ни копейки. Почему? Вопрос риторический.
Поделиться с друзьями
-->

Комментарии (21)


  1. Terras
    05.09.2016 10:27
    +3

    The science in action!

    Это замечательно, что делают реально полезные приложения, а не очередные «заменим уши на уши кролика»


    1. Garbus
      05.09.2016 11:14

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


  1. xirahai
    05.09.2016 11:44

    Программа редкая, и потребность в ней реально существует. Хоть и немногим, но крайне необходимо. Желательно и версию под Windows, для обработки в лаборатории сторонних данных.
    На мой взгляд необходимый функционал:

    • Отдельное измерение площадей целой части листа, дырок и боковых повреждений
    • Автокалибровка для приведения к реальной мере площади. По распечатке сетки с известным размером клеток, что актуально для лаборатории где камера на стационарном стенде. А также когда изучаемый листок сфотографирован на фоне сетки в процессе полевого сбора информации.
    • В идеале встроенная статистическая обработка по множеству выборок с одного объекта. Хотя это можно сделать и потом в экселе, только заморочнее.
    • Оптимальный формат для передачи информации в ms excel на последующую обработку

    Также желательно учитывать неидеальность короткофокусной камеры телефоны, дающей заметную дисторсию, особенно вблизи. Поэтому всё же предпочитают сканер или фотоаппарат.


    1. andrii_seleznov
      05.09.2016 22:28

      Дисторсию удается немного снизить за счет калибровки по шахматке. Наше видение было в использовании смартфона для решения подобных задач прямо в поле


  1. GreenGoblin
    05.09.2016 11:46

    Программа наверняка полезная. Однако не понятно, что может быть такого сложного в измерении площади листа и определении его цвета, что на это потребовалось больше года работы команды из десяти человек. Еще не понятно, почему это так медленно работает и в чем здесь стартап.


    1. xirahai
      05.09.2016 12:47

      Если вникать — сложностей немало. Алгоритм выделения контуров, адаптивный и устойчивый к реальным условиям съемки, способный выделить объекты на фоне сетки при необходимости привязки к реальныой мерности.
      Колориметрия — отдельная непростая тема.
      Подготовить наиболее оптимальные форматы вывода результатов.
      Прога должна быть функциональной, точной, и безглючной — причем с самого начала, иначе кривое недоделанное глюкало никому не надо. Оптимизация интерфейса под обычного пользователя, чтобы для работы с ней не пришлось зубрить многотомную инструкцию.
      Должна съедать любые форматы фотографий и сканов, не требуя предварительной обработки и подгонки снимков в другом софте.
      И всё это при понимании что рынок сбыта очень ограниченный. Её покупатели вряд ли согласятся на что-то большее, чем приобрести готовый продукт. В силу специфичности, программа используется не постоянно как например MS Excel — поэтому по подписке вряд ли удастся охватить весь рынок. Значит остается лишь одноразовый доход с продажи экземпляров.


      1. andrii_seleznov
        05.09.2016 22:25

        Мы планируем продавать подписку на облачное приложение. Там будут храниться данные и другая полезная информация.


        1. xirahai
          05.09.2016 22:39

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


    1. andrii_seleznov
      05.09.2016 22:14

      В измерении площади одного листа нет ничего сложного. В измерении 1000 листьев сложность заключается в скорости. В измерении 1000 листьев в поле сложность заключается в отсутствии денег на покупку дорогостоящего оборудования.


      1. xirahai
        05.09.2016 23:17

        Можно сделать быстро.
        Берем десятка два студентов, вывозим на объект. Там они фотают своими смартфонами как умеют листья на фоне клетчатой бумаги, на которой присуствует еще и номер объекта. Затем перевозим на следующий объект, и т.д. Полученные сотни фотогрвфий сливаются на комп — где прога сама отсеивает дупликаты, распознает номера объектов, и группирует по ним снимки. А дальше либо автоматически (в идеале), либо интерактивно обсчитываем листья.


    1. andrii_seleznov
      05.09.2016 22:19

      Определение цвета листа довольно простая задача, если нужно сказать желтый он или зеленый. Если необходимо определить один из 1000 оттенков зеленого задача немного усложняется. Мы работали в выходные и после работы. Код писали и переписывали четыре раза с нуля два человека. Большая часть времени ушла на customer development.


    1. andrii_seleznov
      05.09.2016 22:23

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


  1. Mu57Di3
    05.09.2016 12:27
    +1

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

    У меня диплом была подобная программа, только мне надо было обмерять лист, собирать надо было примерно 6 параметров с листа. Автоматику так и не реализовал не хватило знаний да и библиотека OpenCV появилась через несколько лет после того как я защитился.


    1. andrii_seleznov
      05.09.2016 22:09

      От экологов и биологов мы уже получили обратную связь. Все хорошо, только платить за сервис они не готовы. Если под массовой обработкой материала понимается скорость — то на данный момент скорость измерений в разы выше скорости при использовании сканера.


  1. krox
    05.09.2016 12:43

    Занимаюсь схожей разработкой по гранту по программе УМНИК. Так вот, изначально работая с исследователями по данной тематике скажу вам, что один лист ничего не даёт. Чтобы получить достоверные данные нужны десятки и сотни листьев (здравствуй мат.стат). Подводных камней много… Но блин, чисто по площади листа говорить что-то — думаю сложно. Ещё вопрос в том, как влияет освещение на уровень хлорофила?


    1. andrii_seleznov
      05.09.2016 22:03

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


      1. krox
        06.09.2016 03:57

        А что вы можете чисто по площади листа узнать?


  1. doom369
    05.09.2016 13:54
    +1

    У Вас и так пользователей не ахти. Еще и сделали искуственный барьер в виде необходимой регистрациии, да еще и нужно писать письма в суппорт для этого…


    1. andrii_seleznov
      05.09.2016 21:55

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


  1. madf
    06.09.2016 12:46

    «Как пришла в голову мысль» написать тут на русском или сделать сайт на английском — не логичны.


  1. iva2000
    07.09.2016 07:35

    1) Поставил на смартфон Lenovo S90, запустил, гостевой пароль ввел, нажимаю на единственную кнопку — требует калибровку. Затем требует установки OpenCV, затем говорит, что OpenCV устновлено некорректно. Перезагрузка не помогает. Ждать следующей версии?

    2) У вас есть форум пользователей? Интересно бы почитать, что они пишут о своей работе, зачем им это надо и как они листья отбирают.