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

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

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

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

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

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

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

Tesla – взгляд через замочную скважину на правильную систему

Всегда когда я разговариваю с человеком который хочет сделать новую систему распознавания я рассказываю о том что машинное обучение неидеально. Что всегда есть ошибки. Что всегда что-то будет идти не так. И что цель – не обучить один раз систему распознавания. А цель  – выстроить систему которая будет стабильна к любым ошибкам распознавания.

Continue reading “Tesla – взгляд через замочную скважину на правильную систему”

MIPS 2019

На прошлой неделе сходил на Mips. Очень прикольно смотреть как год от года меняется стек основных технологий на выставке. При этом одно дело – изменение стека. А второе дело – изменение применения.
Ну, условно. За последние два года взлетели компании распознавания по лицу. Компании то взлетели. И на выставке появилось куча демо стендов с прикрученным face detection. Но вот до embedded устройств доступа технология дошла так, что практически нет изменений по качеству, применению, функционалу по сравнению с решениями два года назад, пять лет назад.
Реальному бизнесу не нужно распознавание лиц в толпе, которое не даёт 100% результата по огромной базе. Или нужно, но очень кастомное под бизнес задачу. А предложить что то базовое, что ощутимо изменит существующий стек технологий для 90%девайсов ntech вижнлабс и прочие не могут.
Или распознавание номеров. Как работало, так и работает. Нет новых решений, которые смогли закрыть новые ниши или создать их.
Ну, то есть они есть. Но они штучные и не на этой выставке. А масс продакшн как ест мутные плохо работающие системы, так и ест.
Менять систему и изобретать новое применение никто не готов.
К чему это все. Выставка отрезвляет. Ты понимаешь насколько все решения в мире стары и банальны. И как сложно что то изменить. Даже если технология новая и принципиально круче всего что есть, то люди не смогут её применить и найти новые смыслы.
Тем смешнее смотреть на выставке стенды по PoseRecognition где люди которые следят за экспозицией даже не могут ответить зачем нужно всё то что у них представлено.
Сначала думал записать на выставке видео.Но мне стало грустно – и не стал…:)

Почему не работает 3D сканирование

Есть одна огромная тема, которая лежит на границе старого машинного зрения, (где нет нейронных сетей и чистая математика), и нового машинного зрения, где всё делается сеточками.
Это 3D. Лезть в него без знания аналита, матана и теорвера – сложно. Но тем не менее, именно различные способы 3D сканирования – это единственное, что позволяет решать многие задачи. Тут я попробовал сделать кратенький обзор по тому какие способы существуют.

Портирование и ускорение

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

Но иногда приходится. В этом видео я рассказываю о том, какие платформы могут быть, какие удобнее использовать, какие проблемы будут вас ждать.

Продолжаем в ютубчег

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

Заказчики в CV, какие они бывают

Эта статья – некоторое обобщение опыта, который появился у меня за последние лет 10. Я не претендую что он однозначно правильный. Или на то, что наша стратегия единственная рабочая. Но для себя я его использую как некоторую априорную оценку того имеет шанс на жизнь договор или нет.

Continue reading “Заказчики в CV, какие они бывают”

Новый формат?

Решил сделать несколько видео на те темы, на которые всё не хватает времени написать нормальную статью. Начнём с банальной темы по распознаванию по лицам!
Почему они не работают?

И ещё раз про базы данных

Краткий обзор вещей по датасетам на которые я наталкивался в последний год.

Я думаю, что все прекрасно понимают, что в нормальной работе по ComputerVision 80% работы может занимать взаимодействие с базой (картинку с заглавия утащил отсюда).  Создание базы, разметка, выбор критериев, создание загрузки, модели зашумления, и.т.д. Конечно, я видел случаи, когда это и 95% занимает (медицина), и 20%(использование открытых датасетов). Всякое бывает.
Решил запечатлеть несколько вещей, на которые я натыкался в последний год.

Continue reading “И ещё раз про базы данных”