Рубрика «opencv» - 10

Вчера я опубликовал статью про машинное обучение и NVIDIA DIGITS. Как и обещал, сегодняшняя статья — почему всё не так уж и хорошо + пример выделения объектов в кадре на DIGITS.

NVIDIA подняла волну пиара по поводу разработанной и имплиментированной в DIGITS сетки DetectNet. Сетка позиционируется как решение для поиска одинаковых/похожих объектов на изображении.

Почему супер-мега-про машинного обучения за 15 минут всё же не стать - 1
Читать полностью »

Тем, кто занимается системами машинного обучения и компьютерным зрением, хорошо знакома такая библиотека как OpenBLAS (Basic Linear Algebra Subprograms). OpenBLAS написан на C и используется повсеместно там где нужна работа с матрицами. Так же у него есть несколько альтернативных реализаций таких как Eigen и двух закрытых имплементацией от Intel и Apple. Все они написаны на СС++.

В настоящий момент OpenBLAS используется в матричных манипуляциях в таких языках как Julia и Python (NumPy). OpenBLAS крайне хорошо оптимизирована и значительная её часть вообще написана на ассемблере.

Однако так ли хорош для вычислений чистый C, как это принято считать?

Встречайте Mir GLAS! Нативная реализация библиотеки линейной алгебры на чисто D без единой вставки на ассемблере!
Читать полностью »

Доброе утро, дамы и господа. Внимательные читатели заметили, что на российском рынке вновь проклюнулись переводные книги на тему компьютерного зрения. Нас также не могла не заинтересовать следующая книга:

OpenCV и обработка изображений - 1

Поскольку технологии компьютерного зрения в значительной степени завязаны и на Python, и на C++, мы подобрали статью с разбором проблемы и кодом на обоих языках. Кроме того, искренне надеемся, что девушка под катом вам понравится.
Читать полностью »

Подходит к концу первая проектная смена в образовательном центре «Сириус». Обычно здесь проводятся образовательные смены, на которых учащиеся школ готовятся к олимпиадам всероссийского и мирового уровня. Например, команда математиков перед всемирной олимпиадой проходила сборы в «Сириусе». Предполагается в будущем сделать это место одним из основных центров притяжения талантливой молодежи для дальнейшей интеграции в высокотехнологичные проекты, которые находятся на особом счету государства.
Команда Университета ИТМО, помимо обширного участия в проектах, связанных с нанотехнологиями, работала с учащимися школ над несколькими робототехническими проектами. Наша группа состояла из 19 учеников и 3 преподавателей. Заранее мы определили основные технологии и особенности конструкции, которые будут реализованы в ходе проекта. Некоторые проекты ориентированы на автоматизацию определенных процессов, а какие-то имеют больше творческую визуальную составляющую. В качестве основы для создания роботов было решено использовать робототехнический конструктор ТРИК. Здесь уже публиковались примеры использования этого конструктора.
Проектная смена в образовательном центре «Сириус» - 1
Читать полностью »

Распознаем лица на фото с помощью Python и OpenCV - 1
В этой статье я хотел бы остановиться на алгоритмах распознавания лиц, а заодно познакомить вас с очень интересной и полезной библиотекой OpenCV. Уверен, что этот материал окажется полезным для новичков в этой области.

Что нам понадобится:
• Установленный Python 2.7 с библиотеками NumPy и PIL
• OpenCV 2-й версии

Здесь ссылка на материал по установке всех необходимых компонентов. Установка всего необходимого не составит труда.
Читать полностью »

По работе я занимаюсь разработкой алгоритмов обработки изображений и в частности алгоритмами автоматического слежения за объектами на видео для специального применения. Недавно понадобилось сделать модель алгоритма, управляемую с удаленного компьютера для отладки логики работы в сложной системе. Раньше такая задача не стояла, т.к. все алгоритмы реализовывались в итоге на FPGA. Давно работаю с OpenCV и, потерев руки, подошел к написанию программы. Но энтузиазм быстро погас, когда столкнулся непосредственно с передачей видео по сети.

Задача заключалась в следующем:

1. Написать программу сервер, которая загружает видео из файла, сжимает в JPEG и передает по протоколу TCP программе клиенту.
2. Написать программу клиент, которая принимает видео по TCP, декодирует и отображает.
Читать полностью »

3D-сканер из молока и смартфона - 1

На сайте Instructables опубликована инструкция, как собрать самый простой и дешёвый 3D-сканер из подручных средств. Автор проекта GotMesh подсмотрел идею использовать молоко у коллег из проекта Milkscanner, которые применили его для создания сложных 3D-моделей ещё до того, как 3D-печать пошла в массы. Новый способ намного проще, автоматизирован с помощью скрипта и OpenCV, а также оптимизирован конкретно для 3D-печати отсканированного предмета.
Читать полностью »

Компьютерное зрение и мобильные роботы. Часть 1 — V-REP, Python, OpenCV - 1

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

В нашем хакспейсе — создать робота не такая большая проблема. Но не у всех и не всегда есть возможность экспериментировать с реальным «железом» — поэтому интересно было попробовать решить задачу — в виртуальной среде, и после уже оживить «железо».

Так и возникла идея серии статей, про решение простейшей задачи ориентации робота в пространстве — от виртуальной симуляции, до воплощения в реальном мобильном роботе:

Часть 1. Настройка виртуальной среды, интеграция с python и OpenCV для распознавания образов из виртуального мира.
Часть 2. Создание виртуального мобильного робота, алгоритм автономного перемещения (поиск объекта)
Часть 3. Создание реального робота, перенос логики на него.

Хочется добиться такого результата — чтобы python скрипт, управляющий виртуальным роботом — был бы максимально идентичным тому, что будет управлять реальным роботом.

Мозгом робота будет микрокомпьютер RaspberryPi2 — на котором без проблем работает и python, и OpenCV. Таким образом необходимо состыковать систему виртуальной робототехники V-REP — с Python и OpenCV. Вот про это и будет первая часть — данная публикация.

Видео, что получилось (поиск зеленого объекта)


На верхнем окне — прямое изображение с видео-камеры в 3д виртуальном мире, на нижнем окне — результат выполнения python скрипта, что получает изображение передаёт её OpenCV и рисует маркер, вокруг найденного объекта.

Нарисуем архитектуру нашего мобильного робота.
Читать полностью »

Тир на Raspberry, версия 2.0 - 1
Статья о дальнейшем улучшении прошлой версии тира geektimes.ru/post/255350
Пользоваться тиром дома быстро наскучило, поэтому, на радость коллегам, он был установлен на работе. Однако после непродолжительной эксплуатации был выявлен ряд недостатков:

  • «игрушечность» и непрактичность пистолета
  • необходимость кропотливой калибровки
  • пропуски выстрелов
  • перспективные искажения камеры и вследствие — значительные погрешности
  • система подсчета очков без округления

Все это было исправлено в новой версии.
Читать полностью »

Постановка задачи компьютерного зрения - 1
Последние лет восемь я активно занимаюсь задачами, связанными с распознаванием образов, компьютерным зрением, машинным обучением. Получилось накопить достаточно большой багаж опыта и проектов (что-то своё, что-то в ранге штатного программиста, что-то под заказ). К тому же, с тех пор, как я написал пару статей на Хабре, со мной часто связываются читатели, просят помочь с их задачей, посоветовать что-то. Так что достаточно часто натыкаюсь на совершенно непредсказуемые применения CV алгоритмов.
Но, чёрт подери, в 90% случаев я вижу одну и ту же системную ошибку. Раз за разом. За последние лет 5 я её объяснял уже десяткам людей. Да что там, периодически и сам её совершаю…

В 99% задач компьютерного зрения то представление о задаче, которое вы сформулировали у себя в голове, а тем более тот путь решения, который вы наметили, не имеет с реальностью ничего общего. Всегда будут возникать ситуации, про которые вы даже не могли подумать. Единственный способ сформулировать задачу — набрать базу примеров и работать с ней, учитывая как идеальные, так и самые плохие ситуации. Чем шире база-тем точнее поставлена задача. Без базы говорить о задаче нельзя.

Тривиальная мысль. Но все ошибаются. Абсолютно все. В статье я приведу несколько примеров таких ситуаций. Когда задача поставлена плохо, когда хорошо. И какие подводные камни вас ждут в формировании ТЗ для систем компьютерного зрения.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js