Архив автора: sv

Преобразование координат при калибровке роботов (Coordinate transformation when calibrating robots)

Tags: Калибровка робот манипулятор TCP Введение Преобразования ЛСК относительно осей ГСК Вращение ЛСК относительно собственных осей Тестирование алгоритмов вращения относительно осей ГСК и ЛСК Задача совмещения 2-х ЛСК Тестирование алгоритма совмещения 2-х ЛСК Полезные ссылки Введение Цель калибровки — обеспечение точного перемещения элементов робота к заданному положению. Обычно программа робота управляет последовательностью позиций, в которые должен прийти манипулятор робота и… Читать далее »

Start на GitHub

Tags: GitHub СКВ VCS Git Bash репозиторий Введение Создание аккаунта GitHub Cоздание репозитория Полезные ссылки   Введение Системы контроля версий (СКВ, VCS, Version Control Systems) позволяют разработчикам сохранять все изменения, внесённые в код. Поэтому они могут просто откатить код до рабочего состояния вместо того, чтобы тратить часы на поиски ошибок, ломающих весь код. Существует три типа СКВ: локальная, централизованная… Читать далее »

Раздел: Web

Инструменты для машинного обучения через нейросети (Machine learning via neural networks)

Введение Нейросети — один из видов машинного обучения (см. Машинное обучение для людей). Краткая вводная информация о том, что такое НС, для чего нужны и какие бывают см. в статье От регрессии к нейронным сетям. Прежде, чем переходить к профессиональному машинному обучению через нейросети, рекомендуется ознакомиться с основами построения нейронных сетей на Python (numpy) в Visual Studio. … Читать далее »

Оценка глубины по 360-градусному изображению (Depth estimation from a 360-degree image)

Tags: Data Fusion Depth estimation проекция панорама Equirectangular Projection Кубическая проекция Введение Проекции панорамных изображений  Параллакс. Нодальная точка Карты глубины в дополнение к двумерному изображению BiFuse: оценка глубины для монокуляра на 360° с помощью Bi-Projection Fusion (перевод статьи) Аннотация 1. Введение 2. Ссылки на похожие работы (Related Work) 3. Наш подход 3.1. Введение 3.2 Предлагаемая процедура сферического наполнения (Proposed Spherical Padding… Читать далее »

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

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

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

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

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

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

Калибровка камеры (Camera Calibration)

Tags: Калибровка камера матрица внешние внутренние параметры вращение перенос OpenCV искажения объектива шахматная доска Python Введение Матрица внешних параметров камеры Матрица внутренних параметров камеры Коэффициенты радиальных и тангенциальных искажений объектива Особенности калибровки камеры с помощью шахматной доски Подготовка изображений для калибровки Выполнение калибровки Точность калибровки Сохранение результатов калибровки Полезные ссылки Введение Калибровка — это процедура установления зависимости между входом… Читать далее »

Преобразование mesh-модели в модель B-rep (Conversion mesh-model в B-rep model)

Tags: Преобразование mesh-модель B-rep STL Fusion САПР Введение Существует два основных типа форматов геометрических данных: сеточные (STL, OBJ) и граничные (B-Rep, от англ. Boundary Representation). Сеточные представляют собой не что иное, как набор треугольников (или полигонов в общем случае). В САПР они используются для 3D-печати . Форматы B-Rep содержат в себе куда больше данных. Они состоят из точек,… Читать далее »

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

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

От облака точек к поверхности (From point cloud to surface)

Tags: PyVista point cloud фотограмметрия PLY PCD mesh Введение Классификация алгоритмов перехода от облака точек к поверхности Этапы перехода от облака точек к поверхности Пакеты для 3D-визуализации сетей. Модуль PyVista Примеры, демонстрирующие возможности PyVista Форматы файлов облака точек Визуализация данных из PLY и PCD файлов Полезные ссылки Введение Облако точек (англ. point cloud) — набор вершин в трёхмерной… Читать далее »

Пример организации экзамена в ZOOM (ZOOM exam organization example)

Введение Выбор билета и формирование заданий Порядок проведения работы Введение Экзамен подготовлен для курса 2D/3D преобразования, составленного из следующих тем: 2D графика на основе WinApi C++ 3D графика на основе WinApi C++ 3D графика на основе OpenGL WinApi C++ Имитация полета крылатой ракеты на OpenGL WinApi C++ Определение ориентации 3D объекта по изображению 3D-реконструкция по… Читать далее »

Основы программирования Arduino (Arduino programming basics)

Tags:  Основы Arduino UNO Начало работы с Ардуино на Windows Основы работы с Arduino. Оглавление Полезные ссылки Начало работы с Ардуино на Windows Покупаю через интернет Стартовый набор с платой UNO R3 для начинающих (350грн) Недостаток этого набора — отсутствие проводов с разъемами «мама-папа» и «мама-мама». Есть только провода с разъемами «папа-папа». Потому, рекомендую еще заказать недостающие… Читать далее »

Кратко об Arduino и Raspberry Pi (Briefly about Arduino and Raspberry Pi)

Tags:  Микроконтроллер Arduino UNO Микрокомпьютер Raspberry Pi Введение Сравнение Arduino и Raspberry Pi Основные элементы Arduino UNO Основные элементы Raspberry Pi 4 Model B Полезные ссылки Введение Изначально компьютер создавался как чисто аппаратное устройство (без программирования) для решения конкретных задач. Прыжком в развитии компьютера послужила идея программного способа реализации задач (см. От машинного кода до API систем). Достоинство этого… Читать далее »

Подключение Raspberry Pi камеры и инсталляция OpenCV (Connecting a Raspberry Pi camera and OpenCV installing )

Tags:  Микрокомпьютер Raspberry Pi камера инсталляция OpenCV программирование Python Подключение камеры к Raspberry Pi Примеры подключения камеры через Python Инсталляция  OpenCV Запуск OpenCV программ на Python Полезные ссылки Подключение камеры к Raspberry Pi Приобретаю недорогую камеру для Raspberry Pi OV5647 через интернет.  Подключаю камеру к ранее установленному микрокомпьютеру Raspberry Pi B4Gb. Для испытания использую встроенные утилиты raspistill и raspivid, которые вводятся в командной… Читать далее »

Основы программирования на Raspberry Pi (Raspberry Pi programming basics)

Tags:  Инсталляция Raspbian микрокомпьютер Raspberry Pi  Hello world  Python C++ Введение Комплектация Raspberry Pi Инсталляция ОС Raspbian «Hello world!» на Python «Hello world!» на Си Пример проекта: мигание светодиодов Полезные ссылки Введение Raspberry Pi может делать одну вещь гораздо более эффективнее, чем любой домашний компьютер — он может управлять внешними устройствами. Устройства могут быть абсолютно любыми, от обычной лампочки, до… Читать далее »

Face recognition. Python, DLIB

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

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

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

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

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

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

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

Introduction to AI and references

Tags: Introduction AI DL ML нейронная сеть   Artificial Intelligance (AI) — это широкое понятие, которое включает в себя все: от обычной алгоритмической классификации, по введенным непосредственно в код условий с признаками, до технологий, таких как Deep Learning (DL). Простыми словами — все, что выполняется на основе алгоритма, можно назвать искусственным интеллектом. Примеры: Алгоритмы распознавания геометрических фигур Программа… Читать далее »

AI based on Unity ML Agents. Quick start

Tags:  Инсталляция Unity ML Agents NPC-агент Tensorboard Введение Инсталляция плагина ML Agents Создание среды для обучения NPC-агента Запуск процесса обучения Вывод результатов обучения через  Tensorboard Полезные ссылки Введение ML Agents — это плагин, который обеспечивает обучение NPC-агентов в Unity. NPC (от англ. Non-Player Character) — персонаж в играх, который не находится под контролем игрока. Любую задачу можно решить алгоритмически… Читать далее »

Модификация простой игры на Unity (Modification of a simple game on Unity)

Tags:  Unity простая игра модификация Введение Исходная игра Сюжет модификации игры Полезные ссылки Введение Решение любой задачи определяется целью и возможностями реализации. В первом приближении возможности Unity для создания игр  были рассмотрены в статьях: Основы Unity3D Игра “Snake” на Unity3D Unity3D симулятор «Умная змейка со стереозрением» Ознакомившись с ними, попробуйте создать собственную простую игру. Благо,… Читать далее »

WEB на Python с Django в Visual Studio

Tags:  Hello Django Web Project Visual Studio Python Введение Базовый проект на основе шаблона «Blank Django Web Project» Создание своего приложения в базовом проекте Использование шаблонов страниц Обслуживание статических файлов Добавление страницы в приложение Использование элемента в нескольких шаблонах Полезные ссылки Введение Python в Visual Studio поддерживает разработку веб-проектов в frameworks: Bottle, Django и Flask. Ниже… Читать далее »

Раздел: Web

WEB на Python с Flask в Visual Studio

Tags:  Hello Flask Web Project Visual Studio Python Введение Flask веб-сайт  с нуля Веб-сайт на основе Flask шаблона Полезные ссылки Введение Python в Visual Studio поддерживает разработку веб-проектов в frameworks Bottle, Django и Flask. Ниже рассмотрен процесс создания веб-сайта на основе Flask framework Перед началом разработки приложения убедитесь, что  для Visual Studio установлена поддержка «Разработка на Python». Она устанавливается через Visual Studio… Читать далее »

Раздел: Web

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

Tags:  OpenCV Face Detection keypoints landmarks Python MTCNN DLIB Введение Обнаружение лица через OpenCV Обнаружение лица в реальном времени (с помощью веб-камеры) Обнаружение лица через MTCNN Извлечение изображений лиц из фото Выделение 5 характерных точек лица через MTCNN Обнаружение лица и выделение 5 характерных точек  в реальном времени через MTCNN Обнаружение лица и выделение 68 характерных точек через DLIB Полезные… Читать далее »

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

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

Основы построения нейронных сетей на Python (numpy) в Visual Studio (Python numpy NN in Visual Studio)

Tags:  Python numpy neural networks Visual Studio Введение Создание нейронной сети в Visual Studio (версия кода 1) Простая нейронная сеть (версия кода 2) Простая нейронная сеть (версия кода 3) Примеры хорошо структурированных программ Нежное введение в тензоры для машинного обучения с NumPy Полезные ссылки Введение Из статьи вы узнаете, как написать простую нейросеть на Python с подключением библиотеки… Читать далее »

Быстрый старт в WebGL (Quickstart in WebGL)

Tags:  WebGL 3D HTML  JavaScript GLSL GPU шейдер OpenGL Введение Пример простого WebGL приложения Шаг 1. Определение WebGL контекста Шаг 2. Создание 3D-модели и сохранение ее в буферах Шаг 3. Создание, компиляция и подключение шейдеров Шаг 4. Связывание шейдеров с буферами Шаг 5. Отображение графики Полезные ссылки Введение WebGL (Web-based Graphics Library) — кроссплатформенный API для 3D-графики в браузере.… Читать далее »

Быстрый старт в WEB программирование (Quickstart in WEB programming)

Tags:  Web HTML CSS JS Open Server Front-end Back-end PHP MySQL WordPress Введение Front-end и Back-end. Что это? Front-end разработка. HTML, CSS и JS Редакторы кода Описание и установка локального сервера Open Server Back-end разработка. PHP, MySQL WordPress разработка Полезные ссылки  Введение WEB (англ. web — паутина) —  система доступа к связанным между собой документам на различных компьютерах, подключённых к Интернету.… Читать далее »

Раздел: Web

Быстрый старт с Qt C++ в Visual Studio (Quickstart with Qt C++ in Visual Studio)

Tags:  Qt C++ Visual Studio Hello World Введение Инсталляция библиотеки Qt в  Visual Studio Qt GUI приложение «Hello, World!» Signals и slots. Обработка событий Qt Desiner. Создание GUI в интерактивном режиме Полезные ссылки Введение Сегодня практически невозможно представить приложение, в котором нет графического интерфейса пользователя (GUI -Graphical User Interface). Windows API обладает необходимыми инструментами для создания GUI.… Читать далее »

Быстрый старт с Python в Visual Studio (Quickstart with Python in Visual Studio)

Tags:  Python Visual Studio Quickstart Введение Инсталляция Python в  Visual Studio Приложение «Hello, Visual Studio!» Основы Python GUI-приложения Связывание Python и C/C++ Полезные ссылки Введение Python — это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Python относится к наиболее востребованным и популярным языкам… Читать далее »

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

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

Идентификация по множеству признаков при помощи нейросети (Identification by multiple features. Using neural network)

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

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

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

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

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

Игра “Snake” на Unity3D (The game “Snake” on Unity3D)

Архитектура проекта Подготовка ресурсов Сцена MainMenu Сцена GameOver Сцена Level Скрипт LookAt Скрипт Tail Скрипт Player Скрипт Game Контрольное задание Архитектура проекта Сюжет игры и ее программная реализация на языке Java рассмотрены в разделе Игровое приложение ”Snake”.   Также см.  Snake Game with OpenCV Python  and the Python code. Ниже рассмотрено, как можно создать эту игру в Unity… Читать далее »