Этот репозиторий является внутренней библиотекой нашего приложения с графическим интерфейсом — MOTHe-GUI.
Mothe — это библиотека PYPI для обнаружения и отслеживания нескольких животных в гетерогенной среде. MOTHe — это репозиторий на основе Python, который использует архитектуру сверточной нейронной сети (CNN) для задачи обнаружения объектов. Он принимает цифровое изображение в качестве входных данных и считывает его характеристики, чтобы присвоить категорию. Эти алгоритмы являются алгоритмами обучения, что означает, что они извлекают функции из изображений, используя огромные объемы помеченных обучающих данных. После обучения моделей CNN эти модели можно использовать для классификации новых данных (изображений). MOTHe разработан как универсальный, который позволяет пользователю отслеживать интересующие объекты даже в естественных условиях.
MOTHe может автоматизировать все задачи, связанные с классификацией объектов, и разделен на 5 методов, предназначенных для следующих задач:
Конфигурация системы : Конфигурация системы используется для настройки MOTHe в системе пользователя. Основные сведения, такие как путь к локальному репозиторию, путь к видео для обработки, размер кадра, который нужно обрезать, количество кадров, которые нужно пропустить при обнаружении или отслеживании (чтобы сократить время вычислений/запустить тестовый пример). и размер ограничивающей рамки, которая будет нарисована на этапе обнаружения.
Генерация набора данных . Генерация набора данных является важным шагом на пути к обнаружению и отслеживанию объектов. Ручные усилия, необходимые для создания необходимого объема обучающих данных, огромны. Класс генерации данных и исполняемый файл в высокой степени автоматизируют процесс, позволяя пользователю обрезать интересующую область простым щелчком мыши по графическому интерфейсу и автоматически сохранять изображения в соответствующих папках.
Обучение сверточной нейронной сетиtrain_model : после создания достаточного количества обучающих примеров данные используются для обучения нейронной сети. Нейронная сеть выдает на выходе классификатор. Точность классификатора зависит от того, насколько хорошо обучена сеть, что, в свою очередь, зависит от качества и количества обучающих данных (см. раздел Сколько обучающих данных мне нужно? ). Различные параметры настройки сети фиксированы, чтобы упростить процесс для пользователей. Эта сеть хорошо работает для бинарной классификации — объект интереса (животные) и фон. В этом конвейере не поддерживается многоклассовая классификация.
Обнаружение объектов . Этот метод выполняет две ключевые задачи: сначала он идентифицирует области изображения, в которых потенциально могут быть животные, это называется локализацией; затем он выполняет классификацию обрезанных регионов. Эта классификация выполняется с использованием небольшой CNN (6 сверточных слоев). Выходные данные представляют собой файлы .csv , содержащие местоположения идентифицированных животных в каждом кадре.
Отслеживание объектов : Отслеживание объектов является конечной целью MOTHe. Этот модуль присваивает уникальные идентификаторы обнаруженным лицам и генерирует их траектории. У нас есть отдельные модули обнаружения и отслеживания, так что их также может использовать тот, кого интересуют только данные подсчета (например, опросы). Эта модульность также обеспечивает гибкость использования более сложных алгоритмов отслеживания для опытных программистов. Мы используем существующий код для задачи отслеживания (со страницы Github). Этот алгоритм использует фильтры Калмана и венгерский алгоритм. Этот сценарий можно запустить после того, как на предыдущем шаге будут созданы обнаружения. Выходные данные представляют собой файл text{.csv}, который содержит отдельные идентификаторы и местоположения для каждого кадра. Также генерируется видеовыход с уникальными идентификаторами каждого человека.
MOTHe — это пакет Python, который использует несколько других библиотек Python, которые могли быть обновлены. Поэтому важно знать версии, которые мы загружаем/устанавливаем. Рекомендуемые версии Python — это стабильные версии Python3.6–Python3.7 (последние LTS-версии Linux (например, Ubuntu 20.04 Focal Fossa) устанавливаются со стандартным Python3.8, который несовместим с MOTHe). Python3.8 не поддерживает версии Tensorflow ниже версии 2.2, которые необходимы MOTHe для работы. Обратите внимание на версии некоторых библиотек, которые довольно быстро модифицируются и используются для тестирования MOTHe совсем недавно: