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

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

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

Start на GitHub

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

Раздел: Web

Основы машинного обучения в примерах (Machine learning basics by example)

Введение в AI и полезные ссылки Использовать традиционный алгоритмический подход для приложений с искусственным интеллектом уже стало не модно. Что приходит на смену? Как не зная алгоритм, а просто имея данные и ответ, получить из них алгоритм? Альтернатива традиционному алгоритмическому подходу – нейронная сеть, которую можно обучать предсказывать результат по выборке для обучения. Данные делятся на… Читать далее »

Алгоритмы регистрации облаков точек (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 сканеры Полезные ссылки Введение В компьютерном зрении, сегментация — это процесс разделения цифрового изображения на несколько сегментов (множество пикселей). Семантическая сегментация изображений — это разделение изображения на отдельные группы пикселей, области, соответствующие одному объекту с одновременным определением типа объекта в каждой… Читать далее »

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

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

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

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

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

Введение Классификация алгоритмов перехода от облака точек к поверхности Этапы перехода от облака точек к поверхности Пакеты для 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 project «A car that avoids obstacles»)

Статья на стадии разработки!!! Заказал самый дешевый (590 грн) конструкторский набор автомобиля (Конструктор Car kit для Arduino Uno) Полезные ссылки: Как сделать робота на Arduino UNO Сервопривод – Подключение к Ардуино Ультразвуковой дальномер HC-SR04 Кронштейн под сервоприводы SG-90 с улучшенной конструкцией Как Сделать Робота На Arduino Uno Сборка Bluetooth робота RoboCar-3 на Arduino UNO Простой… Читать далее »

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

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

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

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

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

Подключение камеры к Raspberry Pi Примеры подключения камеры через Python Инсталляция  OpenCV Запуск OpenCV программ на Python Полезные ссылки Подключение камеры к Raspberry Pi Приобретаю недорогую камеру для Raspberry Pi OV5647 через интернет.  Подключаю камеру к ранее установленному микрокомпьютеру Raspberry Pi B4Gb. Для испытания использую встроенные утилиты raspistill и raspivid, которые вводятся в командной строке (command in the Terminal) и служат для захвата… Читать далее »

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

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

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) Адекватность и оптимальность нейронной сети для распознавания поворота головы Полезные ссылки Введение Как не зная алгоритм, а просто имея данные и ответ, получить из них алгоритм?  Альтернатива традиционному алгоритмическому подходу – нейронная сеть, которую можно обучать предсказывать… Читать далее »

Introduction to AI and references

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

Tensorflow, Python, Visual Studio. Quick start

Введение Создание проекта и установка пакетов Предсказание результата по выборке для обучения Линейная регрессия Полезные ссылки Введение TensorFlow – популярнейший инструмент для машинного обучения нейросетей. В качестве упрощенного варианта понимания машинного обучения вы можете представить себе алгоритмы машинного обучения как функции, которые подбирают значения внутренних переменных таким образом, чтобы соответствующим входным значениям соответствовали корректные выходные… Читать далее »

AI based on Unity ML Agents. Quick start

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

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

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

WEB на Python с Django в Visual Studio

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

Раздел: Web

WEB на Python с Flask в Visual Studio

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

Раздел: Web

Обнаружение лица и выделение характерных точек (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… Читать далее »

Простейшие нейронные сети на Python в Visual Studio (Python neural networks in Visual Studio)

Введение Создание нейронной сети в Visual Studio (версия кода 1) Простая нейронная сеть (версия кода 2) Простая нейронная сеть (версия кода 3) Полезные ссылки Введение Из статьи вы узнаете, как написать простую нейросеть на Python в среде Visual Studio (VS). Для более глубокого понимания проблематики приводятся примеры различных  версий кода — от простого из 7 строк до более профессионального.… Читать далее »

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

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

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

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

Раздел: Web

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

Введение Инсталляция библиотеки 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)

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