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

WEB на Python с Django в Visual Studio

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

Раздел: 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

Обнаружение лиц на Python (Face Detection in Python)

Введение Обнаружение лица через OpenCV Обнаружение лица с помощью веб-камеры Обнаружение лица через MTCNN Полезные ссылки Ниже приводится перевод на русский язык статьи How to Perform Face Detection with Deep Learning in Keras  с авторской переработкой. Введение Обнаружение лица — локализация и выделение области лица из фона. Это первый из этапов реализации системы распознавания лиц. Два… Читать далее »

Нейросеть для классификации фруктов на 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 не предназначен для чего-то конкретного, это язык общего назначения: подходит для web-проектов, для desktop- и серверных приложений и даже ИИ. Он… Читать далее »

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

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

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

Постановка задачи Модель нейросети для идентификации Оптимизация погрешности выходных сигналов Полезные ссылки Постановка задачи Ниже исследуются возможности решения задачи идентификации по множеству признаков с помощью нейронной сети (НС). Распознающую систему представим в виде «чёрного ящика». У этого ящика есть n входов, на которые подаются значения признаков субъекта для распознавания x={x1,x2,…,xn}, и k выходов y={y1,…,yk} (по… Читать далее »

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

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

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

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

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

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

Основы Unity3D (Unity3D Basics)

Интерфейс редактора Unity3D Игровые объекты и их компоненты. Rigidbody C# скрипты Префабы Уничтожение объектов при запуске (runtime) Создание объектов при запуске (runtime) Добавление текстуры Подключение аудио Создание таймера при помощи скриптов Движение объектов Взаимодействие пользователя с приложением Соединения Интерфейс пользователя (UI). Переключение сцен Наследование на примере создания часов Создание окружающей среды Полезные ссылки Интерфейс редактора Unity3D… Читать далее »

Архитектура WebGL приложения для чайников (WebGL application architecture for Dummies)

Введение Приложение WebGL-Interactive Cube Матрицы для определения позиции вершины Задача модификации WebGL-Interactive Cube  в приложение Рупорная антенна Композиция элементарных преобразований в приложении WebGL-Interactive Cube Массивы, буферы и примитивы для определения модели Описание элементов модели через ассоциативные массивы Полезные ссылки Введение Архитектура WebGL-приложения относительно сложная для новичка в программировании и 3D моделировании.  Лучший способ разобраться в этой сложности… Читать далее »

Оптимизация OpenGL приложений (Optimizing OpenGL applications)

OpenGL конвейер Модель  клиент-сервер Пошаговый и пакетный режимы Массивы вершин Vertex Buffer Objects Полезные ссылки OpenGL конвейер OpenGL – библиотека (API — Application Programming Interface) для обработки графической информации и прямого доступа к железу («software interface to graphics hardware», как обозначаются они в спецификации). Библиотека содержит набор уже однажды написанных функций, от самых простых (вывод… Читать далее »

Взаимодействие HTML5 и JavaScript (HTML5 and JavaScript interaction)

Введение Структура  HTML документа Подключение и выполнение JavaScript Объектная модель HTML-документа Отображение графики с помощью элемента <canvas> Описание игры “Уголки” Полезные ссылки   Введение В статье описываются особенности создания графических приложений для WEB, связанных с аффинными преобразованиями. В Web приложениях элементы интерфейса описывается в HTML файлах, а логика приложения – в коде javascript (JS). При создании программных… Читать далее »

Раздел: Web

Shaders in Unity3d

Введение CPU и GPU Типы шейдеров Конвейер программного рендеринга Простые примеры написания шейдеров Полезные ссылки Введение Движок (жаргонизм от англ. engine – мотор, двигатель) – выделенная часть программного кода для реализации конкретной прикладной задачи. Использование движка сокращает время разработки программы. Графический движок – движок, основной задачей которого является визуализация (рендеринг) двухмерной или трёхмерной компьютерной графики. В… Читать далее »

Матрицы поворота, углы Эйлера и кватернионы (Rotation matrices, Euler angles and quaternions)

Матрицы преобразований Матрицы поворота и углы Эйлера Axis Angle представление вращения Кватернионы Основные операции над кватернионами Умножение кватернионов Конвертирование между кватернионом и Axis Angle представлением Конвертирование кватерниона в матрицу поворота Конвертирование матрицы поворота в кватернион Полезные ссылки Матрицы преобразований Объект обычно определяется в удобной для его описания локальной системы координат (ЛСК), а его положение  в пространстве… Читать далее »

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

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

C/C++ in Android applications

Введение При помощи Android SDK  можно писать приложения на Java или Kotlin. Кроме него есть еще Android  NDK — Native Development Kit. Это — сопутствующий инструмент Android SDK, который позволяет создавать  компоненты с помощью нативного кода (C/C++). Что означает Native (родной) код? Это означает, что C/C++  код компилируется непосредственно в понятные для процессора инструкции без… Читать далее »

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)

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

2D/3D моделирование в Android (2D/3D modeling in Android)

Загрузка картинок и пиксельное представление картинки 2D графика методами объекта класса Canvas Простейшее OpenGL ES приложение 3D графика на основе OpenGL ES Полезные ссылки Загрузка картинок и пиксельное представление картинки Постановка задачи. Создать приложение, которое обеспечивает загрузку 3-х картинок (скачать картинки здесь). При нажатии (click) на нижнюю картинку вместо нее отображается точечное (пиксельное) представление картинки, которая… Читать далее »

Введение в Android программирование (Introduction to Android Programming)

Android (Андроид) – операционная система, которая позволяет создавать приложения для всех видов современных мобильных устройств – телефоны, планшеты, смартбуки, мультимедийные плейеры, видеокамеры, электронные книги, GPS, бытовая техника и многое другое. Среди сред разработки приложений под мобильные устройства наиболее популярной средой разработки приложений под Android раньше считалась Eclipse с добавлением  различных надстроек,  ее сменила Android Studio. Следует отметить, что среды разработки приложений под… Читать далее »

Поиск объектов на изображении (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) – особая точка должна  быть отличимой в своей окрестности. Инвариантность (invariance) – … Читать далее »

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

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

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

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

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

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

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

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

Геометрическая модель камеры (Geometric camera model)

Последовательно перейдем от модели камеры обскура к модели центральной проекции (перспективы) и затем к системе координат снимка. Сначала перенесем объект на противоположную сторону относительно диафрагмы (центра проекций), сохраняя фокусное расстояние. При этом изображение перевернем. С экраном (плоскостью проекций) совместим систему координат. Значение координаты z = F-L. При F>L значение координаты z положительно:   Перспективная проекция… Читать далее »

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

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

Пошаговый чертеж в AutoCAD (Step by step drawing in AutoCAD)

Содержание задания Подготовка чертежа-шаблона Последовательность формирования чертежа двутавра Особенности построения кривых и ломаных Содержание задания Для того чтобы эффективно использовать AutoCAD API, вы должны быть знакомы с примитивами, объектами и особенностями AutoCAD, связанными с задачами, которые вы хотите автоматизировать. Чем больше у вас знаний по графическим и неграфическим свойствам объектов, тем легче для вас будет… Читать далее »