Стажировка по проекту
Создание ИИ-системы идентификации приборов учета электроэнергии
Компания: ООО «ЭнерТест»
Суть проекта
Задача
Для чего
Вводные данные
Создание автоматизированной системы, считывающей информацию с фотографий счётчиков электроэнергии (ПУ), делаемых и загружаемых обходчиками, с последующей сверкой полученных о счётчиках данных с официальным Госреестром
Определения возможности дальнейшей эксплуатации проверяемых ПУ, если эти ПУ имеют действующую регистрацию в Госреестре. При отсутствии действующей регистрации в Госреестре принятие решения о замене ПУ в соотвествии с действующими нормативно-правовыми актами (НПА)

  • Датасет, состоящий из 1016 изображений счетчиков электроэнергии (ПУ), снятых на мобильные устройства
  • База данных, сдержащая 9636425 записей о счетчиках (ПУ)
  • Используемые технологии: YOLO v8, Label Studio, CVAT, EasyOCR, Nginx, MSSQL, Docker
Выходные данные
  • Обученные и протестированные архитектуры решения задачи с помощью вышеуказанных технологий
  • Разработанные и развернутые на сервере Заказчика Docker контейнеры с отлаженными архитектурами, позволяющими решать поставленные Заказчиком в техзадании задачами по определению действующей регистрации ПУ по фотографиям, снятым на мобильные устройства с возможностью последующего дообучения при расширении датасета ПУ и корректировке базы данных ПУ
Участники
1 команды проекта
Проект «ЭнерТест» продемонстрировал успешное взаимодействие команды, высокую вовлеченность стажёров и их готовность решать сложные задачи. Особо выделяются заслуги Валерия Зайцева, Николая Петрова, Александра Токарева и Дмитрия Панфилова, чьи усилия были решающими для успешной реализации проекта. В процессе реализации проекта были выявлены многочисленные неточности в имеющихся базах данных из-за отсутствия соответствия записей в базе данных записям в Госреестре, которые необходимо устранять силами Заказчика, что позволит повысить точность работы предложенных решений. Прогресс проекта создаёт прочную основу для дальнейшего развития и совершенствования автоматизированной системы, позволяя эффективно применять её в реальных условиях

  • Алексей Терещенко
    Тимлид проекта
  • Алексей Татаринов
    Помощник тимлида
  • Александр Токарев
    Руководитель направления в Дирекции ТРИЗ
    1. Разметил часть датасета с помощью инструментов Label Studio и CVAT
    2. Обучил модель Yolo8-obb (Oriented Bounding Box)
    3. Разметил датасет для обучения CRNN(5000 боксов)
    4. Обучил модель CRNN распознавать символы на СИ
    5. Создал Telegram-Bot
  • Сулоев Алексей
    Программист-инженер нейронных сетей
    1. Разметил часть датасета с помощью инструментов Label Studio и CVAT .
    2. Написал скрипт для обнаружения года, модели и других классов на электросчётчиках
  • Николай Петров
    DevOps/MLOps Engineer
    1. Произвел первичный анализ данных
    2. Разметил часть датасета с помощью инструментов Label Studio и CVAT
    3. Произвел обучение трех моделей YOLOv8
    4. Разработал Telegram-бот, отправляющий фотографии на модель Yolo8, с последующим распознавание классов изображений моделью EasyOCR
    5.  Развернул веб-сервер Nginx, на который отправляются распознанные данные
    6. Полученные с веб - сервера данные формируют промежуточную базу данных MSSQL.для вторичной проверки соответствия типов ПУ существующему Госреестру, с возможностью вносить необходимые корректировки в базу данных типов ПУ
    7. Создал на основе полученной интеграции Dockerfiles
    8. Установил и развернул полученную интеграцию на сервере Заказчика
    Архитектура интеграции: Telegram-бот -YOLOv8-obb - EasyOCR - Nginx - MSSQL. Docker
    • Установка и развертывание созданной архитектуры на сервере клиента
  • Дмитрий Панфилов
    Инженер, Специалист больших данных
    1. Разметил часть датасета с помощью инструментов Label Studio и CVAT.
    2. Сравнил различные моделиYOLOv8.
    3. Подбирал гиперпараметры и обучал модели на полном датасете
    4. Сравнивал разные системы распознавания ( Py Tesseract, easyOCR, OCR-2.0, GPT-4 Vision) и выбирал оптимальное решение, с корректировкой регулярными выражениями
    5. Разработал Telegram-бот
    6. Произвел интеграцию всех компонентов в единое решение в среде Linux следующей архитектуры: Telegram-бот- AIOGram 3.x - FastAPI - Torch- Docker
  • Игорь Лещинский
    Индивидуальный предприниматель в области розничной торговли
    1. Разметил часть датасета с помощью инструмента CVAT
    2. Принимал активное участие в создании презентации проекта
    3. Занимался организационной работой и созданием лендинга проекта
  • Пьянкова Екатерина
    Инженер-системотехник
    Разметила часть датасета с помощью инструмента и CVAT.
  • Валерий Зайцев
    ООО Группа НИКОС, Заместитель директора, Руководитель проекта Рунивер
    1. Анализ исходных данных - изображения счетчиков учета представленных заказчиком - - качество изображений, читаемость основных полей данных
    2. Анализ исходных данных - база данных - наименования и типы данных, определения ошибок в наименованиях и их корректировка
    3. Написание алгоритмов улучшения качества изображения и автоматической корректировки угла наклона изображения
    4.Разметка датасета для обучения модели YOLOv8-obb
    5. Объединение датасетов, их проверка и корректировка, формирование полного датасета, обучающих и проверочных выборок
    6. Эксперименты с параметрами модели для улучшения результатов предсказания. Анализ влияния параметров модели на результаты предсказания
    7. Обучение моделей YOLOv8-obb (yolov8n-obb.pt, yolov8s-obb.pt, yolov8m-obb.pt), выбор оптимальной модели для проекта по результатам анализа качества, размера и скорости работы
    8. Анализ качества систем распознавания на основе реальных данных получаемых в проекте (EasyOCR, Tesseract, дополнительно проанализировано качество распознавания с помощью больших языковых моделях OpenAI GPT-4V и Anthropic Claude 3,5 Opus)
    9. Подготовка датасета для дообучения модели распознавания EasyOCR
    10. Создание алгоритма и скрипта для корректировки данных по результатам распознавания. Написание масок для проверки наличия в данных русских, английских символов и цифр
    11. Написание тестовых вариантов модулей-скриптов для определения номера Госреестра счетчиков учета электроэнергии (ПУ) с созданием следующей архитектуры: Telegram-бот -YOLOv8-obb - EasyOCR
     12. Модуль для обработки распознанных данных со счетчиков электроэнергии и получения информации из базы данных номера Госреестра