Pull to refresh
1
@tron_lineread⁠-⁠only

User

Send message

Создание GIF-анимации с помощью OpenCV

Reading time16 min
Views13K


Из этого туториала вы узнаете, как создавать анимированные GIF-файлы с помощью OpenCV, Python и ImageMagick. Затем объедините эти методы, чтобы создать генератор мемов с OpenCV!

Нам всем нужно время от времени посмеяться. И, возможно, лучший способ найти лулзы — это мемы. Некоторые из моих любимых:

  • Лягушка Кермит: «Но это не мое дело»
  • Сварливый кот
  • Эпик фейл
  • Хороший парень Грег

Но лично для меня ни один из этих мемов не сравнится с мемом ”Deal With It" («Смирись с этим» или «Разбирайся сам»), пример которого приведён в начале статьи.
Читать дальше →

Венгерский алгоритм в задаче слежения за множеством движущихся объектов

Reading time4 min
Views25K
Хочу рассказать об известном, но мало освещенном в литературе подходе к слежению за множеством движущихся объектов. Сложность этой задачи во многом заключается в том, что алгоритмы обнаружения и выделения объектов часто дают сбои, а сами объекты могут заслоняться другими объектами и элементами фона.

В общем случае решение задачи слежения содержит три основных этапа:
– выделение сегментов;
– установление соответствия между выделенными сегментами и отслеживаемыми объектами;
– уточнение или прогнозирование положения объектов интереса.

Сегментом в данном случае называют связную область изображения, выделяемую по признаку движения. В рамках данной заметки нас будут интересовать 2-й и 3-й из перечисленных этапов.
Читать дальше →

Обнаружение движущихся объектов с помощью OpenCV с использованием обнаружения контуров и вычитания фона

Reading time12 min
Views28K

Обнаружение движущихся объектов широко используется в самых разных приложениях, от видеонаблюдения до мониторинга дорожного движения. Это важнейшая задача в постоянно развивающейся области компьютерного зрения. Библиотека OpenCV с открытым исходным кодом, известная своим полным набором инструментов для компьютерного зрения, предоставляет надежные решения для обнаружения движущихся объектов. В этой статье рассмотрим комбинацию обнаружения контуров и вычитания фона, которые можно использовать для обнаружения движущихся объектов с помощью OpenCV.

Читать далее

OpenCV (компьютерное зрение). Установка под MSVS 2008. «Hello World»

Reading time4 min
Views13K
image
OpenCV — это библиотека алгоритмов компьютерного зрения, обработки изображений. Исходный код является октрытым.

Эта вещь очень интересная и ей можно найти много применений: идентификация пользователя за компьютером, распознавание предметов, трэкинг объектов, а уж в робототехнике применений ещё больше!

В этом посте я опишу подробную установку данной библиотеки и мы напишем простейшую программу — этакий «Hello World» в компьютерном зрении. :)
Читать дальше →

Kornia — библиотека компьютерного зрения

Level of difficultyMedium
Reading time15 min
Views14K

Kornia это open source библиотека для решения задач компьютерного зрения. Она использует PyTorch в качестве основного бэкенда и состоит из набора дифференцируемых процедур и модулей. Создатели библиотеки вдохновлялись OpenCV, и поэтому Kornia является его аналогом, но при этом в некоторых моментах превосходит. Главным преимуществом Kornia по сравнению с тем же OpenCV, scikit-image или с Albumentations является возможность обрабатывать изображения батчами, а не по одному изображению и возможность обрабатывать данные на GPU.

Читать далее

Робототехнические манипуляторы с компьютерным зрением

Level of difficultyEasy
Reading time8 min
Views12K
Картинка Freepik

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

Работа в этой области позволит освоить микроконтроллеры, компьютерное зрение, изучить различные виды кинематики манипуляторов.

Читать дальше →

Построение системы оптического распознавания структурной информации на примере Imago OCR

Reading time19 min
Views37K
В настоящей заметке я расскажу о том, как можно построить систему оптического распознавания структурной информации, опираясь на алгоритмы, применяющиеся в обработке изображений и их реализации в рамках библиотеки OpenCV. За описанием системы стоит активно развивающийся open source проект Imago OCR, который может быть непосредственно полезен в распознавании химических структур, однако в заметке я не буду говорить о химии, а затрону более общие вопросы, решение которых поможет в распознавании структурированной информации различного рода, например таблицы или графики.
Читать дальше →

Повышение качества склейки панорамы с помощью согласования графа проективных преобразований

Reading time8 min
Views5.3K

Привет, Хабр! Сегодня мы расскажем про один из способов повышения качества склейки панорамы. Существует широко используемый подход склейки панорамы плоских объектов, но поскольку данный подход не лишен недостатков, мы предлагаем свое улучшение.

Читать дальше →

Зачем нужна низкоуровневая оптимизация на Эльбрусе или как ускорить распознающую систему в полтора раза

Reading time14 min
Views11K

Встретив 2019 год и немного отдохнув от разработки новых фич для Smart IDReader, мы вспомнили, что давно ничего не писали об отечественных процессорах. Поэтому мы решили срочно исправиться и показать еще одну распознающую систему на Эльбрусе.


В качестве распознающей системы была рассмотрена система распознавания объектов живописи “в неконтролируемых условиях методом с обучением по одному примеру” [1]. Эта система строит описание изображения на основе особых точек и их дескрипторов, по которому выполняет поиск в индексированной базе картин. Мы проанализировали производительность данной системы и выделили наиболее времязатратную низкоуровневую часть алгоритма, который затем оптимизировали с помощью инструментов платформы Эльбрус.

Читать дальше →

Повторяй за мной или двигаем виртуальной камерой like a pro

Level of difficultyMedium
Reading time8 min
Views4K

DVD – как много в этой аббревиатуре! Уверен, что вы наверняка помните такое явление, как ларьки и палатки с дисками, исчезнувшие только к началу 2010-х годов (по крайней мере так было в столице). В один из таких ларьков в конце 2009-го заглянул десятилетний я, внимание которого тут же привлекла коробка с надписью «3D Studio Max 2010»... Аниматором я, увы, так и не стал, однако интерес к области визуальных эффектов сохранился надолго.

В поисках обучающих материалов с англо-русским словарём наперевес в один прекрасный день я забрёл на Videocopilot. В одном из уроков автор с помощью неведомой волшебной софтины под названием Boujou показал, как отследить движение камеры в отснятом материале для его дальнейшего совмещения с трёхмерной графикой, что в подростковом мозгу произвело эффект разорвавшейся бомбы. Много позже, курсе на втором-третьем, меня всё чаще посещала навязчивая мысль – а как это вообще работает?

В данной статье мне бы хотелось рассмотреть математический аппарат, при-меняемый в данном классе задач, а также сдобрить её щепоткой практики. Приятного чтения!

Читать далее

Дополненная реальность на Qt

Reading time8 min
Views37K


Сейчас дополненная реальность – это одно из самых интересных направлений. Поэтому я и взялся за ее изучение, а результатом этого стала собственная реализация кроссплатформенной безмаркерной дополненной реальности на Qt. Речь в этой статье пойдет о том, как это было реализовано (или же как это реализовать самому). Под катом можно найти демку и ссылку на проект на гитхабе.
Читать дальше →

Компьютерное зрение. Ответы экспертов Intel

Reading time15 min
Views15K
Две недели назад мы предложили читателям Хабры задать свои вопросы создателям библиотеки компьютерного зрения OpenCV. Вопросов было задано много, причем, интересных — значит, эта тема интересует не только компанию Intel, но и широкие массы разработчиков. Без лишних слов переходим к публикации ответов и приглашаем к их обсуждению. А также объявляем авторов лучших вопросов! В самом конце поста.


Читать дальше →

Ориентация мобильного робота, выбор способа регистрации особых точек изображений

Reading time2 min
Views6.6K
Это предыстория и продолжение статьи:

Дело было вечером… все статьи на Хабре были прочитаны, затеял «небольшой» проект по автономной ориентации робота на RaspberryPi 3. С железом проблем нет, собирается недорого из г-на и палок купленных на ебау деталек, камера с хорошей стеклянной оптикой (это важно для стабильности калибраций), привод камеры вверх, вниз и компас, гироскоп и тд прикрепленные к камере:



Существующие системы SLAM не устраивают, или по цене, или по качеству/скорости. Поскольку наработок деталей для Visual SLAM у меня много, решил шаг за шагом писать и выкладывать алгоритмы и код в открытый доступ, с обоснованием причин выбора тех или иных алгоритмов.
У Вас есть план?

Быстрая регистрация особых точек изображений с помощью голосования биграфа

Reading time2 min
Views7.9K
Детектирование и регистрация особенностей изображений имеет много приложений в робототехнике, видео компрессии и т.д. Быстрая и аккуратная регистрация — пока недостижимая мечта многих программистов и пользователей. Она или быстрая, или аккуратная…
Читать дальше →

Осваиваем анализ лидарных данных и измеряем дорожные знаки

Reading time14 min
Views52K

Всем привет! Сегодня мы хотели бы поделиться с вами нашим опытом анализа лидарных облаков. В заметке расскажем: 

какими инструментами и библиотеками можно пользоваться для анализа и обработки лидарных данных;

рассмотрим практический пример анализа лидарных облаков, полученных с лидарного комплекса, установленного на автомобиле;

попробуем применить стандартные библиотеки и техники для анализа и визуализации данных.

Читать далее

Как объяснить роботу свою точку зрения

Reading time5 min
Views4.2K
Когда-нибудь задумывались зачем сегодня нужны роботы? С детства мне казалось, что роботы стоят где-то на современных фабриках, что это где-то далеко от нас. Или в фантастике.
Но уже нет. Роботы на сегодня — это автоматизация любого рутинного процесса. Их могут ставить и на фермах, и в автомастерских.


Если раньше цена такой автоматизации была огромной, то сейчас она падает. Становятся доступны более сложные технологические манипуляции. Роборуки — это по сути такой универсальный манипулятор, который не нужно проектировать под каждую задачу, => снижение цены внедрения, ускорение внедрения (хотя роборука может быть дороже чем кусок конвейера, который делает аналогичную операцию).

Но роборука это лишь половина процесса. Вторая половина — научить роборуку думать. И тут до недавних пор ситуация была ужасная. Нет универсальных подходов, которые сможет настроить любой инженер. Надо нанимать программистов/разработчиков/математиков, чтобы они сформулировали проблему, попробовали сделать решение. Конечно, такая ситуация не могла существовать долго. Да и Computer Vision с глубоким обучением подвезли. Так что сейчас начинает появляться какая-то первичная автоматизация не только сторого повторяющихся процессов. Сегодня о ней и поговорим.

Можно порешать: задача про лидарное облако от команды беспилотных автомобилей Яндекса

Reading time6 min
Views11K


Меня зовут Андрей Гладков, я разработчик в направлении беспилотных автомобилей. Сегодня я поделюсь с сообществом Хабра задачей, которая связана с важнейшим сенсором беспилотника — лидаром, и с тем, как мы обрабатываем лидарные данные. Вы можете попробовать решить задачу самостоятельно на платформе Контест. Система проверит решение с помощью автотестов и сразу сообщит результат. Разбор и код решения — в спойлерах ближе к концу поста. Тем, кто был на митапе в нашем цехе в прошлом году, задача покажется знакомой — мы предлагали ее в качестве входного билета, но публично никогда ей не делились.
Читать дальше →

Организация университетского курса по обработке сигналов

Reading time32 min
Views5.8K

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

Читать дальше →

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

Level of difficultyMedium
Reading time17 min
Views11K

Рассказываем, зачем обрабатывать данные перед загрузкой в модель, как провести предобработку и какие инструменты использовать.

Читать далее

Обзор методов визуальной одометрии в ROS: использование камер глубины

Reading time5 min
Views16K
Добрый день, уважаемые читатели! В предыдущих статьях по робототехнической платформе ROS я коснулся темы локализации и построения карты местности, в частности мы изучили методы SLAM: gmapping в статье и hector_slam в статье. В этой статье я продолжу знакомство с алгоритмами локализации в ROS и представлю обзор нескольких алгоритмов визуальной одометрии, реализованных на платформе ROS. Визуальная одометрия имеет важное значение в робототехнике поскольку позволяет оценить перемещение робота, его текущую позицию и ускорение на основе данных видеопотока с камеры. Можно использовать как обычную RGB камеру (в этом случае говорят о монокулярной одометрии), так и стереокамеру (стерео одометрия) и даже RGBD камеру.

При использовании камер RGBD таких как Microsoft Kinect возможно получить более аккуратную визуальную одометрию, чем со стереокамерами, так как в этом случае мы используем 3D данные. В данной статье мы рассмотрим такие алгоритмы. Кого заинтересовала эта тема, прошу под кат.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity

Specialization

Software Developer, Game Developer
Python
OOP
C++
Unreal Engine
Shaders
Game Development
AR and VR development