Где обучать модели?

Казалось бы, банальный вопрос. Каждый скажет что на “….”. Но, по опыту, ответы очень разные. Кто-то обучает на машине где разрабатывает. Кто-то на Амазоне.
Сделал небольшое видео где попробовал структурировать все это:

А в этом посте чуть больше ссылок про которые говорю:

Continue reading “Где обучать модели?”

Чем заменить RealSense?

Возможно вы слышали, что недавно Intel остановил производство RealSense. Потом опомнился и сказал что все же останавливают только лидары (тут подробности есть). Записали с Васей небольшое видео о том чем можно заменить Intel:

А в этом после приведу небольшой список того что мы обсуждаем.

Continue reading “Чем заменить RealSense?”

Про статьи в ML

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

Continue reading “Про статьи в ML”

OAK от DepthAI

Я люблю делать всякие странные штуки с Computer Vision. Назовем их “условно полезные девайсы”. Из того что я выкладывал на Хабре был рассказ про умную кормушку для птиц и штука для слежения за ребенком. Стараюсь держать себя в форме и смотреть что происходит вокруг. Какая новая аппаратура появляется, что с ней можно сделать и куда засунуть.

Летом на Kickstarter появилась интересная штука – OpenCV AI Kit.  Ребята засунули в одну небольшую плату камеру + акселератор нейронных сетей (Movidius 2).
Короче, первая штука в жизни которую заказал с кикстартера. Хотелось попробовать – необычный формфактор.

Continue reading “OAK от DepthAI”

Что обсуждать с заказчиком на первом разговоре

Любой разговор с заказчиками начинается с того что нужно как можно подробнее понять задачу. Чем дальше заказчик от ML, тем хуже он понимает какие есть варианты, как он собирается интегрировать решение, как оно должно работать и какие его ждут риски.
Разговор повторяется каждый раз. И надо не забывать все аспекты, все проблемы и все беды которые могут ждать готовое решение. У меня есть некоторый чек-лист/список, по которому я прохожусь каждый раз. По сути он был ещё лет пять назад, но тогда он был в голове, и был ограничен теми знаниями которые в тот момент были. В какой -то момент я решил его структурировать. Понимать не забыл ли что-то спросить (особенно это актуально когда большая задача и долго проговариваешь по каждому пункту). 

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

Continue reading “Что обсуждать с заказчиком на первом разговоре”

Разбираем пример автоматического магазина

Иногда на своем канале я разбираю как работают различные системы машинного зрения. Точнее, анализирую как бы я реализовал какую-нибудь интересную систему, исходя из тех проявлений что я вижу. Для меня это полезно, так как позволяет понять “а не упускаю ли я какие то подходы или технологии”. Но, возможно для кого-то будет полезно, чтобы понимать как устроены кишки какой-нибудь системы.
Сегодня мы будем препарировать “Магазин без касс” от Азбуки Вкуса. Чуть подробнее агитку можно посмотреть вот тут. А в статье разберем как он сделан с технической стороны, и как бы я его сделал с алгоритмической.

Continue reading “Разбираем пример автоматического магазина”

Нейронные сети на телефоне (запуск через Unity, Flutter и JS)

Я уже писал большую статью о том как запускать нейронные сети на телефонах. Точнее, статья была про разные аппаратные платформы и библиотеки выполнения нейронных сетей. Но, она абсолютно не рассматривала вопрос запуска нейронных сетей. Ведь библиотеку можно позвать из разных сред, можно из Java разрабатывая на Android studio/Eclipse/Idea. Можно на с++ модулях. Можно из JS, сделав веб-страничку (кстати, на эту тему я тоже делал ролик, а на Хабре была не моя неплохая статья на эту тему). А можно и другими способами.
В этой статье я чуть подробнее расскажу те способы которые мне нравятся и понятны.

Continue reading “Нейронные сети на телефоне (запуск через Unity, Flutter и JS)”

Про хакатоны

Недавно помогал в подготовке одной задачки и ее проведении на хакатоне. Обещал сделать некоторый обзор того что там происходило. Плюс решил вообще рассказать про то где мы участвовали и своё отношение к хакатонам.

Continue reading “Про хакатоны”

Как поставить камеры для Computer Vision

Один из самых распространённых вопросов которые задают мне коллеги и заказчики – не имеет ни малейшего отношения к ComputerVision. Ну, как не имеет. Без этого вопроса большинство задач ComputerVision решить нельзя. Но вопрос этот не решается в удобном кабинете, его не преподают на курсах. Для его решения требуется тыкать в железо, много экспериментировать, лазить по стремянкам с дрелью, и.т.д., и.т.п.

И, скажу честно, зачастую ответить на этот вопрос более чем общими рекомендациями не могу. Собственно вопрос даже не один, а их несколько:

  • Какую камеру выбрать?
  • Как установить камеру?
  • Что ещё нужно сделать чтобы распознавать?
камер и подсветки мало не бывает
Continue reading “Как поставить камеры для Computer Vision”

Как мы задачи решаем + исходники сервера разметки

Последние года три большую часть наших доходов составляют различные работы где мы что-то делаем под заказ. Список таких работ проще всего посмотреть тут – http://cvml.ru/ . Есть далеко не все (многие фирмы не хотят светиться лишний раз). Но в целом спектр можно представить. Наверное основное это:

  • Распознавание буквенных и числовых последовательностей (номера/отметки/знаки/символы)
  • Биометрия и её интеграция
  • Детекция различных странных объектов
  • Трекинг объектов

И каждый третий раз делать надо одно и то же:

  1. Собрать данные
  2. Разметить
  3. Обучить модель
  4. Собрать больше данных и найти ошибки
  5. Goto п.2 пока качество неудовлетворительно

Ещё года два назад мы сделали сервер где весь пайплайн был достаточно удобно убран в одну сущность. Есть ли аналоги? Да. Но каждый раз когда смотришь как они устроены кажется “ну почему же всё так сложно”. Понятно, что у нас сдвинут биас. Но всё же нам кажется наш подход весьма симпатичным.
Где-то с прошлой осени мы решили что надо выложить сервер в OpenSource. Лежит он в открытом гитхабе уже месяца 4, но, наконец, решил сделать небольшое описание.

Continue reading “Как мы задачи решаем + исходники сервера разметки”