Заметки Computer Vision инженера
5.85K subscribers
36 photos
13 videos
334 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
Мы работаем с достаточно большим количеством компаний. Кому-то что-то разрабатываем, кого-то консультируем. Наверное, единовременно фирм 5-6 в среднем.
Одно из мест, которое я последние пару месяцев совсем немного консультирую, - ДиТ ДЗМ. Это такие ребята, через которых проходят почти все КТ и МРТ исследования Москвы. Недавно ребята попросили, чтобы я провёл какую-то лекцию про Computer Vision в медицине. Ну и я, естественно, не удержался рассказать в очередной раз, почему при переходе к практике большинство моделей перестают работать.
https://youtu.be/dExf8a7hm9U
🔥1
Редко, когда я сажусь и за пару часов пишу такую классную статью. Но реально, после последней статьи FaceBook прямо-таки нахлынули воспоминания на очень классную тему, которая весьма поучительна.
Реальное применение очень крутой сетки, опередившей своё время на практике:
https://cv-blog.ru/?p=310
Сейчас делаю очередной проект для себя, в котором, как водится, есть embedded, openvino, RPi, Computer Vision, сколько-то машинлёнинга и куча разных свистелок и перделок.
Такие проекты помогают немного встряхнуться, пересмотреть взгляд на окружающие проблемы, поделать руками что-то максимально простое и притом максимально быстро.
Про сам проект расскажу, наверное, через несколько месяцев, когда пойму, насколько всё работает и какой результат даёт.
Но по ходу родилось несколько прикольных решений, которые (на мой взгляд), может использовать много людей в своих других задачах. Сегодня небольшая статья про штуку, которая меня давно мучила:
"как использовать RaspberryPi в проектах машинного зрения, чтобы не нужно было каждый раз настраивать сеть через монитор/клавиатуру/ssh".
В итоге сделал решение, которое занимает несколько строк и можно использовать в любом другом проекте.
http://cv-blog.ru/?p=318 - описание
https://github.com/ZlodeiBaal/RPi_WiFi_autoconnect - сорсы
В целом я не люблю конференции по ML. И хожу обычно туда поговорить с людьми. Хорошая конференция - много интересного народу. Но иногда, в перерывах между разговорами, можно и что-то интересное послушать.
Хорошая популярная лекция в таких местах редкость, но бывает.
В последние года два всегда ходил на machinescansee. Из бесплатных она самая крутая среди тех что в Москве проходит. В этом году они будут онлайн, понятное дело (вечера с понедельника по среду). Может быть, кому-то тоже будет интересно - http://machinescansee.com/
Они, естественно, бесплатные.
Небольшой лайфхак про трекинг.
Обнаружил что много кто для трекинга объектов в видео использует очень сомнительные алгоритмы трекинга из 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