Архив рубрики: Computer vision

Алгоритмы регистрации облаков точек (Point cloud registration algorithms)

Введение Алгоритм RANSAC для регистрации облаков точек Алгоритм итерации ближайшей точки (ICP) Выделение плоскостей в облаке точек Регистрация облаков точек через преобразование  в 2D-изображения Нейронная сеть MaskNet для маскировки  точек-выбросов 3D-регистрация облаков точек по алгоритму TEASER++ Классификация алгоритмов регистрации облаков точек Полезные ссылки Введение Регистрация облаков точек – процесс совмещения нескольких облаков точек одного объекта в… Читать далее »

Регистрация облаков точек с оценкой соответствия. Основы (Compliance-Assessed Point Cloud Registration. The basics)

Введение Евклидово расстояние Определение минимального расстояния между парами из множества точек Регистрация облаков точек. Постановка задачи Оценка соответствия особых точек Регистрация 3D облаков точек, используя SVD Полезные ссылки Введение Регистрация облаков точек – процесс совмещения нескольких облаков точек одного объекта в единую систему координат. Цель регистрации — найти преобразование, которое оптимально позиционирует два облака (см. Алгоритмы регистрации облаков… Читать далее »

Cемантическая сегментация, панорама и фотограмметрия (Semantic segmentation, panorama and photogrammetry)

Введение 2D и 3D сегментация Примеры семантической 3D сегментации сцены Панорамное фото Фотограмметрия 3D сканеры Полезные ссылки Введение В компьютерном зрении, сегментация — это процесс разделения цифрового изображения на несколько сегментов (множество пикселей). Семантическая сегментация изображений — это разделение изображения на отдельные группы пикселей, области, соответствующие одному объекту с одновременным определением типа объекта в каждой… Читать далее »

Фотограмметрия (Photogrammetry)

Введение Пример реконструкции 3D-объекта Алгоритм 3D реконструкции по набору изображений Описание технологии работы программных продуктов по трехмерной фотограмметрии Полезные ссылки Введение Фотограмметрия — реконструкция поверхности 3D объекта с помощью фотографий (по одному или нескольким изображениям). В статье 3D-реконструкция по двум изображениям была представлена простая математическая модель восстановления облака точек. Пример реконструкции 3D-объекта Ниже рассмотрен пример реконструкции 3D-объекта в редакторе… Читать далее »

Face recognition. Python, DLIB

Введение Верификация лица с dlib Полезные ссылки Введение В статье Распознавание лиц на основе OpenCV для C++  рассматривается подход к распознаванию на основе признаков, в качестве которых используются расстояния между характерными точками лица. Альтернативный метод распознавания лиц. Изображение каждого лица обрабатывается уже обученной сверточной нейронной сетью (см. ссылку  или  ссылку), которая выдает на выходе матрицу из 80… Читать далее »

Распознавание лиц с IP камер. Выбор, хранение и обработка данных для принятия решения (Face recognition from IP cameras. Selection, storage and processing of data for decision making)

Введение Подключение IP камеры и доступ к видео-потоку Решение проблемы торможения видео-потока от IP камеры Цикличное переключение видеопотоков от разных камер Детекция лиц с landmarks точками Формализация задачи распознавания лица Выбор из видео-потока корректных изображений лиц Выбор признаков лица Принятие решения при распознавании лица Чтение и запись данных Полезные ссылки Введение Получил комментарий к одной из статей по… Читать далее »

Адекватность и оптимальность нейронной сети на примере распознавания поворота головы (Adequacy and optimality of the neural network for detecting head rotation)

Введение Постановка задачи Проверка нейронной сети на адекватность Выбор архитектуры сети Парадокс нейронной сети Наклон сигмоидальной функции Размер и соотношение разнотипных сигналов в обучающей выборке Линия размежевания разнотипных сигналов в обучающей выборке Обучение сети положительному (YES) и отрицательному (NO) жестам головой Анализ и выбор данных Общие выводы Программный код для проведения экспериментов Полезные ссылки Введение Первое,… Читать далее »

Машинное обучение распознавать поворот лица (Machine learning to recognize face turn)

Введение Постановка задачи Оценка возможностей распознавать поворот лица через машинное обучение Программный код (вариант 1) Программный код (вариант 2) Адекватность и оптимальность нейронной сети для распознавания поворота головы Полезные ссылки Введение Как не зная алгоритм, а просто имея данные и ответ, получить из них алгоритм?  Альтернатива традиционному алгоритмическому подходу – нейронная сеть, которую можно обучать предсказывать… Читать далее »

Обнаружение лица и выделение характерных точек (Face Detection in Python)

Введение Обнаружение лица через OpenCV Обнаружение лица в реальном времени (с помощью веб-камеры) Обнаружение лица через MTCNN Извлечение изображений лиц из фото Выделение характерных точек лица Обнаружение лица и выделение характерных точек  в реальном времени Обнаружение лица и выделение характерных точек через DLIB Полезные ссылки Введение Обнаружение лица — локализация и выделение области лица из фона. Это… Читать далее »

Нейросеть для классификации фруктов на Python (Fruit Neural Network)

Введение Гистограммы изображений Создание Pickle-файлов Структура нейросети Полезные ссылки Введение В статье Идентификация образов по цвету, текстуре и форме  рассмотрен алгоритмический подход к решению задачи распознавания фруктов. В статье Artificial Neural Network Implementation using NumPy and Classification of the Fruits360 Image Dataset автора Ahmed Gad рассматривается альтернативный подход к решению подобной задачи  — с помощью нейросети (Artificial Neural… Читать далее »

Распознавание лиц. 3D- реконструкция ASM модели (Face Recognition. 3D reconstruction of ASM)

Постановка задачи Пространственная система координат, привязанная к лицу Алгоритм определения 3D-координат Программа для тестирования предложенного метода Полезные ссылки Постановка задачи В статье Распознавание лиц на основе OpenCV для C++  изложены концепции распознавания лиц  на основе ASM (Active Shape Models). Признаки для идентификации определяются из статистических связей (расстояний) между расположением антропометрических точек лица. Очевидно, что расстояния между точками проецируются… Читать далее »

Идентификация по множеству признаков. Основы (Identification by multiple features. Basics)

Постановка задачи Классификация множеств признаков Идентификация субъекта по сумме одинаковых оценок признаков Средневзвешенная оценка веса признаков Последовательный попарный отбор претендентов на сходство Отбор претендентов на сходство по круговой системе Оценка признака на основе треугольного закона распределения Полезные ссылки Постановка задачи На сайте рассмотрено решение двух задач: Идентификация образов по цвету, текстуре и форме; Распознавание лиц… Читать далее »

Unity3D симулятор «Умная змейка со стереозрением» (Unity3D simulator «Smart snake with stereo vision»)

Постановка задачи Движение змейки к цели по прямой Установка камер на глазах змейки Поток изображений с камер Формализация движения в обход преград Считывание и анализ точек изображений Определение траектории движения Полезные ссылки Постановка задачи В статье Игра “Snake” на Unity3D было рассмотрено, как создать игру «Змейка». Змейка двигается вперед и меняет направление под управлением клавиш влево/вправо. Задача… Читать далее »

Выделение объектов на изображении по методу Виолы-Джонса (Object selection in the image according to the Viola-Jones method)

Объекты (например, лица) выделяются, если признаки в сканирующем окне совпадают с признаками на выделенной окном части изображения: Этот подход к детектированию объектов на изображении комбинирует четыре ключевые концепции: Простые прямоугольные функции-признаки, называемые функциями Хаара. Интегральное изображение для быстрого обнаружения функции. Метод машинного обучения AdaBoost. Каскадный классификатор для эффективного совмещения множественных функций. Результаты обучения каскадов складываются… Читать далее »

CMake компоновка OpenCV (CMake OpenCV layout)

У меня возникла проблема при создании проекта приложения с OpenCV. После вставки кода появляются ошибки из-за того, что  что  в OpenCV 3.4.3-vc14-vc15 отсутствуют ряд библиотек, необходимых для запуска приложения. Возможное решение проблемы — компоновка OpenCV из новейших модулей при помощи  системы CMake. Новые модули часто не имеют стабильного API пока они не прошли проверку. Поэтому они не… Читать далее »

Распознавание лиц на основе OpenCV для C++ (Facial Recognition based on OpenCV C++)

Введение Захват видеопотока с камеры и выделение лица Выделение особых точек лица (Facial Landmark Detection) Выбор признаков для фильтрации изображений и распознавания лиц Алгоритм распознавания лиц по 2D-каркасу точек  Программа сравнения лиц по одному признаку 3D- реконструкция ASM (Active Shape Models) Идентификация по множеству признаков. Основы Идентификация по множеству признаков при помощи нейросети Машинное обучение распознавать поворот… Читать далее »

OpenCV in Android

Инсталляция  OpenCV в  Android Studio Захват видео с камеры Отслеживание лица из видео-потока, используя каскад Хаара Полезные ссылки Инсталляция  OpenCV в  Android Studio Скачиваю с сайта OpenCV архив opencv-3.4.3-android-sdk.zip, распаковываю его и размещаю папку из распакованного архива в корень диска C. Создаю в в  Android Studio проект: File -> New -> New Project. Даю проекту имя opencv_project. Нажимаю Next ->… Читать далее »

Введение в OpenCV программирование на C++ (Introduction to OpenCV C++ programming)

Инсталляция  OpenCV Выделение контуров на изображении Выделение лица на изображении Захват видеопотока с камеры и выделение контуров Полезные ссылки   OpenCV (англ. Open Source Computer Vision Library, библиотека компьютерного зрения с открытым исходным кодом) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Инсталляция  OpenCV Загружаю OpenCV-3.4.3-vc14-vc15 для Windows (у меня на компьютере Windows 10) Тестирование OpenCV проводил … Читать далее »

Основы компьютерного зрения  (Basics of computer vision — CV)

Цель задачи создания компьютерного зрения (КЗ) –  проложить мостик между тем, что видит компьютер, и, что видим мы. Для компьютера изображение — это набор пикселей, у каждого из которых есть своё значение цвета. Что в действительности зрение обозначает?  Зрение – это источник метрической и семантической информации о трехмерном мире. Т.е., с помощью зрения мы определяем… Читать далее »

Поиск объектов на изображении (Search for objects in the image)

Базовые методы: Цветовые фильтры. Выделение и анализ контуров. Сопоставление с шаблоном. Работа с особыми точками. Методы машинного обучения. Машинное обучение — для решения задач обнаружения и распознавания, которые сводятся к построению классификатора изображений. Классификатор изображений состоит из двух частей: метод извлечения признаков (feature extractor) и собственно классификатор. Способы построения классификатора изображений: Гистограмма направленных градиентов (Histogram… Читать далее »

Алгоритмы вычитания фона (Background Subtraction Algorithms)

Обнаружение объектов методом Оцу: Из гистограммы человек легко видит, что имеется два четко разделяющихся класса точек (объекта и фона). Суть метода Оцу заключается в том, чтобы выставить порог между классами таким образом, чтобы каждый их них был как можно более «плотным». Если выражаться математическим языком, то это сводится к минимизации внутриклассовой дисперсии. При решении задачи идентификации… Читать далее »

Поиск похожего изображения (Search for a similar image)

  Сначала конкретизируем задачу. Что такое “похожие” изображения? Это — собачка определенной породы, детский школьный рюкзак,  … Прежде всего необходимо  определить метрику похожести изображений. Метрика может отличаться от задачи к задаче. Например, нам нужно находить картинки, близкие по цветовой гамме, по формам объектов или как определить фотографии одной и той же собаки в разных ракурсах. Если… Читать далее »

Выделение особенностей на изображении (Highlighting features in the image)

Введение Детекторы углов Детекторы пятен Дескрипторы и матчеры точек Полезные ссылки Введение Особенности (features) – точечные участки (особые точки), которые чем-то выделяются на изображении: углы; пятна (Blob); особые точки линий (ответвления, окончания, пересечения …). Подходы к определению особых точек: на основе интенсивности точек изображения; использование контуров изображения; использование модели-шаблона. Требования к особым точкам: Отличимость (distinctness)… Читать далее »

Сегментация изображения (Image segmentation)

Сегментация — выделение областей, однородных по какому-либо критерию, например по яркости. Существуют два альтернативных подхода к решению задачи сегментации: путем выделения границ областей; путем наращивания точек области. Первый подход основан на идее “разрывности” свойств точек изображения при переходе от одной области к другой.  При этом выделение границ областей позволяет идентифицировать и сами области. Второй подход реализует стремление… Читать далее »

Выделение, отслеживание и описание контуров (Select, track and describe contours)

Выделение контуров — определение набора пикселей, которые проходят на границе между двумя областями изображения. Отслеживание контуров (векторизация) — представление граничных точек контура последовательностью из множество точек контура. Описание контуров — определение линий, которыми аппроксимируется последовательность из множество точек контура. Выделение контуров Теория Под контуром изображения будем понимать точки, между которыми происходит изменение значений яркости яркости. Изменение яркости характеризуется высотой… Читать далее »

Предварительная обработка изображений (Preliminary image processing)

Предварительная обработка изображения — процесс улучшения качества изображения, ставящий целью получение на основе оригинала максимально точного и адаптированного для автоматического анализа изображения . Среди дефектов цифрового изображения можно выделить следующие виды: Цифровой шум Цветовые дефекты (недостаточные или избыточные яркость и контраст, неправильный цветовой тон) Размытость (расфокусировка) Методы предварительной обработки изображений зависят от задач исследований и могут включать… Читать далее »

Алгоритмы cжатия изображений (Image Compression Algorithms)

Сжатие – представление информации в более эффективном виде, влекущее за собой уменьшение объема данных (как правило). В основном алгоритмы сжатия используют свойства графических данных: избыточность – группы одинаковых символов; предсказуемость – часто повторяющиеся одинаковые комбинации символов; необязательность – данные, мало влияющие на человеческое восприятие. Оценки методов сжатия: степень сжатия – отношение объема сжатого файла к… Читать далее »

Геометрическая модель камеры — внешние и внутренние параметры (Geometric camera model — external and internal parameters)

Введение Определение внешних параметров камеры Определение внутренних параметров камеры Полезные ссылки Введение Камера-обскура — это простая камера без объектива и с одной маленькой апертурой. Лучи света проходят через апертуру и проецируют перевернутое изображение на противоположную сторону камеры. Чтобы перейти к модели центральной проекции представим себе виртуальную плоскость изображения, находящуюся перед камерой и содержащую уже неперевернутое изображение… Читать далее »

Формирование изображения в цифровой камере (Imaging in a digital camera)

Введение. Камера-обскура Формирование изображения через линзу Матрица камеры Процессор камеры Цветовые и геометрические искажения снимков Форматы изображений Сжатие изображений Введение. Камера-обскура Начнем с простого. Рассмотрим простейшую камеру (Камера-обскура) От каждой из точек объекта отражаются лучи света. Отверстие в преграде  пропускает только лишь один луч. Если не установить преграду, то на пленке получим бессмысленное изображение. Отверстие… Читать далее »

3D-реконструкция по двум изображениям (3D reconstruction from two images)

Введение Формализация задачи Алгоритм 3D-реконструкции Простейшая модель для тестирование алгоритма Создание фото при помощи программы 3D GL WinApi Подготовка программы для тестирования алгоритма Тестирование алгоритма с реальным объектом Контрольные задания Выводы Полезные ссылки Введение Трехмерная реконструкция (англ. 3D reconstruction) – это процесс получения 3D объекта на основе изображений (cм. статью Фотограмметрия).  На вход алгоритма обработки подается… Читать далее »