Реализован распределенный алгоритм имитации отжига. Имитация отжига - универсальный и общий алгоритм предназначенный для поиска минимума функции. Так как сам алгоритм плохо параллелится и является случайным и стохастическим, то улучшения результата можно добиться выполнив его много раз и выбрав наилучшее найденное решение. С использованием этого факта и реализована его распределенная версия в приложении к задаче коммивояжера. Язык с++, библиотека параллельных вычислений MPI.

Гитхаб репозиторий: https://github.com/DeliriumV01D/DistributedSimulatedAnnealing

Модуль разработан на языке с++ с использованием библиотеки компьютерного зрения opencv и библиотеки анализа данных dlib. 

Детектирование осуществляется каскадным детектором, который, в числе прочих, использует метод опорных векторов с гистограммами ориентированных градиентов. Ректификация номера и сегментация символов осуществляются сверточными нейронными сетями. Распознавание символов реализовано методом опорных векторов. Существенное увеличение точности алгоритмов возможно за счет увеличения обучающей выборки.

 

 

Работа основана на исследованиях проводимых в 2007 - 2016 гг в НИИ Прикладной Физики Иркутского Государственного Университета.

По мере сил о-о-чень неторопливо причесываю материал и использую эту тему для отработки интересующих меня техник. Например: использование глубинного обучения для физических вычислений.

Github проекта: https://github.com/DeliriumV01D/AREUHEN

Разработка ведется на языке c++ с использованием библиотек Root и TorchLib(PyTorch c++ API)

 

 

 

 

Checkpoint (кодовое название "начальник шлагбаума") разрабатываемый мной программный комплекс объединяющий в себе функционал видеонаблюдения с функциями видеоаналитики. Что планируется сделать в первую очередь: 

  • Серверная программа, обеспечивающая одновременную работу с несколькими источниками видео потока и несколькими клиентскими программами
  • Обеспечение возможности даже неподготовленному человеку запустить и настроить сервер видеонаблюдения в том числе на обычном персональном компьютере под управлением ОС Windows, Linux
  • Возможность подключения ip/web камер
  • Клиентские программы для Windows и Android
  • Простая организация хранения архива видео, удобный поиск в архиве
  • Настройка зон и времени срабатывания детекторов и фильтров
  • Распознавание автомобильных номерных знаков
  • Распознавание лиц
  • Детектирование движения
  • Подсчет объектов, построение карты активности (тепловые карты)
  • Возможность настройки действий при наступлении события: 
    • SMS с заданным текстом на номер
    • Сетевой пакет заданной структуры на адрес
    • Посылка данных в серийный порт
    • Запись видео при наступлении события
  • Автоматическое обновление
  • Накопление аналитики по событиям и построение отчетов
  • Удаленная работа с программой, в том числе со смартфона

Видео тестирования алгоритмов распознавания лиц и автомобильных номеров

Модуль распознавания лиц

Модуль распознавания автомобильных номерных знаков

Журнал разработки Checkpoint

 

Модуль распознавания лиц разработан с использованием сверточных нейронных сетей, библиотеки компьютерного зрения opencv и библиотеки анализа данных dlib на языке c++. Качество распознавание существенно зависит от освещения и ориентации лица относительно камеры и источников освещения, разрешения изображения. Для фронтальных изображений лиц размером 100 на 100 пикселей при фронтальном освещении точность распознавания может достигать 95%. 

Детектирование осуществляется композицией детекторов на комбинации гистограммы ориентированных градиентов и метода опорных векторов. Экстракция фич производится посредством сверточной нейронной сети. Конечная классификация осуществляется линейным классификатором. Существенную часть текущих ограничений алгоритма планируется снять, обучив нейросетевой single shot detector(SSD). Большую точность можно достичь при увеличении количества обучающих примеров.