Заметки Computer Vision инженера
5.84K subscribers
36 photos
13 videos
333 links
Мои статьи из разных мест.
Моя телега - @wk_zb

Про консультации - https://telegra.ph/Pro-konsultacii-03-19
Про рекламу - https://telegra.ph/Pro-reklamu-v-bloge-03-19
Про политоту - https://telegra.ph/Pro-politiku-na-kanale-vo-izbezhanie-bana-04-11
Download Telegram
Небольшой лайфхак про трекинг.
Обнаружил что много кто для трекинга объектов в видео использует очень сомнительные алгоритмы трекинга из OpenCV или Dlib. По сути корреляционные или их аналоги.
Оно и логично. Ведь 90% примеров в интернете именно про это.
Как правильно делать трекинг и какой он бывает - я расскажу как-нибудь на Хабре, статья уже почти готова.
Но не мог удержаться чтобы не сделать минималистичный пример о том как трекинг всё-же делать надо. Из всех подходов что мне встречались/что я использовал этот самый простой - https://cv-blog.ru/?p=322
Вчера вышло YoloV5. Уже читая статью стало понятно что что-то там не так:
1) А где описания того что сделано собственно?
2) А где нормальные тесты со всем что есть?
3) А где нормальное портирование хоть на какие-то фреймоврки? После того как v4 было портировано всюду
4) А какое отношение оно имеет к прошлым релизам
Примерно про это и записал видео - https://youtu.be/ptDTHla2U3o
Сегодня натолкнулся на то что Nvidia выпустила "NVIDIA Feature Map Explorer". Я, скорее, считаю что визуализация внутренних состояний сети - скорее бесполезная затея, но решил посмотреть.
Инструмент и его интерфейс скорее меня рассмешил своей бесполезность, зато дал повод поговорить о интересной теме. А зачем вообще может на практике потребоваться визуализировать отклики или внутренние параметры сети, как это делать, и что для этого нужно.
Короче, пара лов про Class Activation Mapping, Attention-like механизмы, и прочее велосипедостроение.

https://youtu.be/b1adJbT2mb4
1
Недавно спросили вопрос, который меня поставил в ступор: "какая математика нужна чтобы заниматься Computer Vision?".
Проскрипев шариками за роликами сделал небольшую подборку тех скилов которые помогают в CV. По сути две части:
1) Обязательная - то без чего соваться бессмысленно
2) Дополнительная - то что увеличит вашу цену как специалисту + поможет решать интересные задачи.
А дальше - смотрите в видео!
https://youtu.be/lUH2QHSVFdk
Прошлое видео достаточно неплохо зашло, так что решил записать продолжение на более общий вопрос: "Как стать специалистом в ComputerVision".
У меня достаточно своеобразный взгляд на эту тему. Мне кажется, что для того чтобы стать специалистом - не нужны курсы. Это бесполезно. Вам нужна практика и интерес. Научиться решать проблемы, научиться понимать почему ваше решение не работает.
Этого не дадут ни на Курсере, ни в очередной пачке курсов от СкилБокса или Мэйла.
Вам надо находить задачи и учиться их решать. Общаться с людьми, нарабатывать знакомства, обсуждать решения, пробовать что-то сделать.
Машинное обучение это не та тема где можно слушать и получать знания. Представьте себе музыканта который 10 лет изучает нотную грамоту или как играть гаммы. Вам нужно сломать стереотивы и научить себя работать и решать проблемы.
Собственно об этом и видео.
Может эта позиция работает не для всех, но есть люди для кого всё устроено так же.
https://youtu.be/EgdyvMfPBOQ
Недавно в очередной раз спросили о том как в своей статье 8-летней давности я обучал какой-то каскад Хаара... Не выдержал и написал статью-шаблон чтобы отвечать на такие вопросы:)
http://cv-blog.ru/?p=327
Одна из проблем рассказов о любых задачах Computer Vision - обычно вся разработка под NDA. Нельзя рассказывать как задача реально реализована у заказчика. Нельзя показывать промежуточные результаты и что-то спойлерить.
Но, ведь можно рассказывать про свои проекты! Так что записал видео про то как делали систему распознавания по радужке, и куда оно в итоге пришло. Проект начинался пока мы были студентами (году в 2008) - так что выглядит местами безумно. Но, надеюсь, кому-то будет полезно:)
https://youtu.be/qRRCsk19-o8
Одна из задач машинного зрения которую мы делали "для себя" - классическое распознавание автомобильных номеров. Она дала на безумное количество опыта в том как можно с помощью нейронок делать классические алгоритмы. Показала много примеров того как надо и не надо заходить на рынок (да, да, много вынесенных "полезных" уроков на тех граблях что мы собрали).
Я попробовал кратко рассказать весь пройденный путь. От каскадов Хаара до того что используем сейчас.
https://youtu.be/OAUokQgnupA
Не так много тем в организации процесса в CV, про которые я совсем не писал. Тут понял - что совсем не писал про ТЗ. А там тоже есть интересные вопросы и решения.
http://cv-blog.ru/?p=335
Внезапно узнал что один из самых популярных запросов ведущих в мой блог - "Dlib" и его вариации. Но, алло, мы живём в 2020 году. Не надо так!
Краткий рассказ что лучше использовать вместо него в 2020 году (Естественно OpenCV), и какие методы когда-то популярные в Dlib есть в других библиотеках:
https://youtu.be/2fnNhYCpToE
В ComputerVision дескрипторы особых точек это одна из самых старых тем. Я столкнулся с ними ещё году в 2010. И, глобально, с тех пор тема не менялась. Даже приходы нейронных сетей не поменяли основную стратегию.
Но в последнее время стали появляться интересные работы. Наверное я сделаю какой-нибудь краткий обзор в ближайшее время.
В работе про которой пойдёт речь - фишка совсем в другом. Она не просто про то как можно работать в этой странной теме. Она о том как в ComputerVision использовать нейронки для графов. До сих пор не встречал ни одной интересной реализации этого подхода.
http://cv-blog.ru/?p=341
Вчера я рассказывал про применение Graph Neural Network в задаче сопоставления особых точек. Сегодня чуть более общий рассказ. Откуда задача сопоставления особых точек пошла, как к ней подходят, и что нового появилось в 2020 году (первые реально классные изменения за последние 20 лет).
https://youtu.be/kBZVZbKiTk4
Сегодня Mail.ru выпустила сервис электронного диктора новостей. Вбиваете свой текст - получаете обработанную видюшку где диктор его начитывает. Вообще, мне кажется, классная штука, в ближайшее время будет масса похожих.
В этом видео я попробовал разобраться с тем как такие сервисы делают.
Так как сам я такого ни разу не разрабатывал, то рассказал про два основных, на мой взгляд варианта -
https://youtu.be/PG5GjZ5TI3I
Периодически делаю ComputerVision проекты для себя:)
Прошлый крупный был про птичью кормушку. Текущий я пока пилю и окончательно выложу где-то через месяц.
Но, сейчас, речь не совсем о том. В текущем проекте решил разметить датасет через Толоку. На проде мы её иногда используем, но редко. А в хоббийных проектах раньше не использовал.
Цель рассказа - показать что это не сложно. Зачастую это сильно проще чем делать свой разметчик и плодить сущности.
Статья - http://cv-blog.ru/?p=350
И видео - https://youtu.be/BvQY_PpI7zE
Вчера я рассказывал про различные новые Embedded платформы, появившиеся за последний год, а сегодня небольшой рассказ, почему мы чаще других платформ используем именно Jetson в своих проектах.
https://youtu.be/bkhkGYMcxzA
Четыре года назад я рассказывал о том, как устроен NDA в задачах ML - http://cv-blog.ru/?p=46
С тех пор появилось несколько новых мыслей, так что решил заапдейтить статью видео.
В целом, ничего нового:
- NDA в России не работает.
- NDA хорошая проверка на адекватность заказчика/нанимающей фирмы.
- На мой взгляд, в NDA можно помещать только эксклюзивные вещи, разработанные под заказчика, такие как датасеты или написанный код. И никогда математику.
- Самый грамотный NDA - вписанный в договор
https://youtu.be/UQ5itWwK240
В наших проектах часто приходится использовать Intel - процессоры в качестве основного движка выполнения. И тогда без OpenVino никак. Но в реальности OpenVino это множество различных применений.
В OpenVino есть множество готовых сетей, которые можно использовать из коробки. Есть поддержка странных железных устройств.
И это открывает путь к прототипированию. Попробовал рассказать про это подробнее - https://youtu.be/GzgeGbHSl7A
Война между разными фреймворками идёт давно. И это приятно. Мы остаёмся всегда в прибыли. Очередной удар от TFLite по OpenCV|OpenVino - выпуск нового бэкенда на XNNPACK. Немного рассказываю про это.
https://blog.tensorflow.org/2020/07/accelerating-tensorflow-lite-xnnpack-integration.html

https://youtu.be/aHYZ9m0vHQM