Машинное зрение: почему вам оно, возможно, не понадобится

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

В закладки

Реальность такова, что в большинстве ситуаций вам не нужно разрабатывать такие алгоритмы. Разработка сожрёт кучу сил и средств, а результата который вы ожидаете не будет, или его можно было достичь способами сильно проще. Я бы сказал, что в моей практике 80% ситуаций когда предпринимателю приходит идея "мне нужно распознавание" - оно ему не нужно.

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

Не придумывайте велосипед

Посмотрите на уже готовое. Это банально, но в 90% случаев оно будет. Распознавание лиц. Распознавание номеров. Учёт автомобилей. Распознавание документов. Распознавание товаров в магазинах. Распознавание эмоций. Учёт рабочего времени, проверка безопасности. Гуглите решения. На всё есть коммерческие решения.

Дорого? В большей части случаев цена обоснована. Разработки в ML дорогие (об этом ниже). Потребителей готовых платить не очень много. Если вы не гигант, то это будет ощутимо. Сначала используйте готовое. Если поймете, что для вашего случая можно разработать самим, и оно бьётся по деньгам - разработаете. Но по моему опыту где-то 40% компаний которые разрабатывают решение в продакшн запускают что-то другое/не запускают совсем. Не вкладывайте деньги в разработку до тех пор пока не попробуете использовать уже готовое. Начните с эксперимента.

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

Стоимость разработки

Любая задача машинного зрения - работа с сырыми, бажными, вечно меняющимися фреймворками. С большими данными. С обучающими/распознающими серверами. Это долго. Пока что реально мало людей с руками не из задницы. Я помогал нанимать/собеседовать разработчиков машинного зрения в 3-4 разных компании. Знаком с большим числом руководителей отделов машинного обучения. Наша команда разработала решения для десятка фирм.

По Москве новичка в ML вы сможете нанять за 130-170т.р. Человека с каким-то опытом в 1-2 проекта, но без понимания того как решать проблемы за 180-250. Те товарищи, компетенция которых не вызывает у меня вопросов, кто выстроил несколько систем от начала до конца, либо кто выигрывал на Kaggle, либо кто руководил крупной группой разработчиков - редко хотят меньше 300т.р. И это те кто нанимается на фултайм. Если вы хотите разовую разработку - время человека выйдет дороже.

Думаете вам хватит одного человека? А кто будет писать обвязки/интерфейсы/подготавливать интеграцию с системой? Цену железа включать? Оно нужно топовое.Да, есть способы оптимизировать стоимость. Но они не всегда работают и имеют свои риски.

Кстати, про риски

Любая ML система несёт его в себе огромное их число. Вам нужна точность работы 95%? Никто вам её не будет гарантировать. Да, скорее всего оценят порядок. Но ни один здравый разработчик не пропишет в договор высокие точности в качестве метрики приёма задачи. А кто такое скажет - не компетентен, или вас обманывает. Никто не знает как в продакшне поведёт себя какая-то система, даст она 90% или 95%. У нас бывали проекты где точность была выше и ниже того что планировали.

Да и точность - это не единственный критерий. Даже если вы написали какую-то точность, система её достигает - далеко не факт, что вам её хватит. Любая система машинного зрения несёт интеграционные риски. Если на этапе "A" система генерирует 5% ошибок, а на этапе "B" - ещё 5%, это не значит, что выход "А" поданный в "B" даст вам 10%. Видел примеры когда результат мог быть и 30% ошибок.

Если есть готовая система на рынке - вы хотя бы можете оценить то какие точности достижимы. Можете прикинуть сложность системы. Если вы делаете с нуля - все риски лежат на вас. И да, вернитесь к пункту про велосипед. Может такая система невозможна?

Рабский труд

Простите, но очень часто нанять неквалифицированного разметчика дешевле. Яндекс.Толока имеет цену рабочего часа ~100 рублей. Нанять разметчика где-нибудь в депрессивном городе в России - будет стоить ~20 тысяч рублей в месяц. Знаю фирмы которые организуют разметку данных не в России, а в ближнем зарубежье, где много русскоговорящих. Зарплата в месяц там будет ~13-15 т.р.. Сравнили стоимость с п.2? Там вам лишь аренда одного сервера в эту цену встанет.

Я знаю бизнесы где машинное зрение не зашло, было дешевле держать работников. И ещё больше работающих систем, где машинное обучение это лишь способ повысить эффективность работников. Например если в 70% система правильно принимает решение, то вы повышаете эффективность работников на 50-60%. Такие точности встречаются при распознавании чеков, распознавании товаров в супермаркетах. Как я понимаю, автоматически call-центры примерно там же, хотя это не моя тематика.

Если у вас поток обслуживает 50 операторов, а вы хотите сократить расходы на них - вот тут то и повод внедрить машинное обучение. Не забывайте, что без человека который размечает данные - не обойдётся ни одна система машинного обучения. Хотите разработать что-то своё? Сначала наймите оператора, оцените теоретически доступную эффективность, соберите данные для обучения. И лишь потом внедряйте машинное обучение. Где-то оно вытеснит оператора. А где-то точность ML будет ниже продуктового качества и оператора придётся оставить.

Мечты о захвате рынка

Вы думаете что сейчас сделаете удобное решение и захватите рынок? Все будут его использовать? Скорее всего нет. Я видел много систем машинного зрения. И, пожалуй, лишь в биометрии есть востребованность и много заказчиков. Немного есть в распознавании номеров/технических данных. Все остальные системы которые я помогал собирать - в России не нужны. Их использует лишь тот кто разработал под себя.

Минимальное число интеграций по рынку. Да, можно разрабатывать для Долины/для Европы. Там такое проще прокатывает. Но есть куча других сложностей, которые я тут не рассматриваю и в которых я куда менее компетентен.

Поддержка

Думаете вы сделаете готовое решение и всё? Нет. Нейронные сети устаревают. То что вчера стоило X через год будет стоить X/2. Появится больше готовых решений, лучше точность.Вам придётся поддерживать свою систему и конкурировать на рынке. Без поддержки конкуренты сделают что-то лучше. Возможно наняв ту же команду которую вы уволили.

Итого

Несколько ситуаций когда вам нужно разработать что-то своё:

  • У вас есть много денег которые вы способны инвестировать. Или у вашего проекта есть крупный инвестор. Нужно понимать что любой проект может тянуть деньги очень долго прежде чем появится отдача.
  • Ваша задача очень специализированная. Похожих решений нет, но специалисты не видят сложности в том, чтобы реализовать решение/переделать из готового. Обычно это какое-то уникальное направление бизнеса, где вы и так лидер/монополист.
  • У вас уже есть команда без дела, есть люди которым интересно. Я видел пару ситуаций когда такие команды взяли что-то готовое OpenSource, прикрутили куда-то и получили готовый прототип. Из 5-7 таких проектов у 1-2 даже что-то дельное вышло. После того как прототип доработали, вложились, отшлифовали. Но далеко не любая команда согласится работать с незнакомыми технологиями.
    Иногда заходит идея “нанять студентов которым любопытно”. Но риски тоже учитывайте.
  • Вы хотите клонировать уже работающую систему. Обычно это упрощает работы на порядок. Особенно если есть OpenSource. Но помните написанное выше! Не забудьте проверить что решения реально работают/подходят вам и повышают эффективность.
  • Вы разбираетесь в последних трендах ML и знаете как хайпануть сделав очередной маскарад/призму. Но блин, я знаю мало людей у которых это вышло;)

Обычно я пишу статьи на Хабре. Но в этой целевая аудитория скорее не хабр. Так что попробую тут. Если понравилось - пишите, могу в дальнейшем продолжить.

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Антон Мальцев", "author_type": "self", "tags": [], "comments": 9, "likes": 14, "favorites": 6, "is_advertisement": false, "subsite_label": "life", "id": 63227, "is_wide": false, "is_ugc": true, "date": "Tue, 02 Apr 2019 15:40:31 +0300" }
{ "id": 63227, "author_id": 276538, "diff_limit": 1000, "urls": {"diff":"\/comments\/63227\/get","add":"\/comments\/63227\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/63227"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199123, "last_count_and_date": null }

9 комментариев 9 комм.

Популярные

По порядку

Написать комментарий...
0

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

Ответить
0

Индусы, зачастую, дороже русских уже выходят:(
АмазонМеханикалТурк раза в 2-3 дороже Толоки...

Ответить
0

это как надо не ценить себя, чтоб в таких сервисах пытаться заработать, теряя свое драгоценное время

Ответить
0

Привет Антон, спасибо большое за статью!
Не так давно списывались с тобой по поводу проекта (там распознавание машин, думаю поймёшь о чем речь), опять подкинул порцию сомнений и размышлений для мозга-)
Но и надежду на коммерческий успех идей проектов с cv/ml тоже даёшь этой статьей - на фоне описанной тобой "нашей депрессивной реальности" - есть же ещё западный заказчик, где рынок чуть более "готов"...кстати, про внедрение подобных систем "у них" тоже было бы интересно от тебя почитать-)

Ответить
0

Не за что:)
Да, это меня подтолкнуло чтобы дописать статью из загашника:)
На западе я всё же хуже реалии знаю. У нас 3-4 заказчика всего есть, сложно экстраполировать.
И все русскоговорящие.

Ответить
0

Очень даже ДА! По всем пунктам.
Всегда крутилось в голове, но не осмеливался озвучить.
Красава!

Ответить
0

Спасибо!

Ответить
–2

Машинное обучение - огонь! Вообще тема ИИ - это настоящий прорыв в будущее!!! Хочу попробовать GPUшки от Рег.ру, коллега сотрудничал с ними, говорит, что вообще тема! Посмотрим, что из этого получится.

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Компания отказалась от email
в пользу общения при помощи мемов
Подписаться на push-уведомления
{ "page_type": "default" }