Распознавание чтения приборной панели
Распознавание чтения приборной панели

Набор инструментальных данных для этой задачи имеет следующие трудности:

1. На шкале инструмента есть такие проблемы, как окклюзия и размытие, что влияет на распознавание оптического распознавания символов.

2. Изображение прибора имеет проблемы с вращением и наклоном, что влияет на измерение показаний.

Разработка алгоритма

Алгоритм разделен на 4 процесса. Сначала модель yolov5s используется для идентификации инструмента по исходному изображению, затем модель yolov8x-pose используется для обнаружения ключевых точек линий шкалы и указателей в инструменте, а затем — Модель DBNetpp используется для обнаружения числового поля, а модель SATRN используется для распознавания текста и, наконец, последующей обработки для получения результатов чтения.

(1) Обнаружение инструментов на основе YOLOv5.

Причина выбора

Yolov5s имеет небольшую сеть и высокую скорость. Хотя точность ПН невысока, ее вполне достаточно для обнаружения крупных целей, например приборов. Мы используем учебный комплект yolov5s, официально предоставленный Jishi для обучения. Легко начать, точность распознавания инструментов достигает 99,7%, а эффект соответствует реальным потребностям.

(2) Обнаружение ключевых точек указателя и масштаба на основе позы YOLOv8x.

Причина выбора

YOLOv8 — это модель SOTA с открытым исходным кодом, созданная командой Ultralytics YOLOv5 в этом году, которая представляет новые улучшения для дальнейшего повышения производительности и гибкости. YOLOv8 спроектирован так, чтобы быть быстрым, точным и простым в использовании, что делает его отличным выбором для обнаружения объектов, сегментации экземпляров, классификации изображений и задач оценки позы.

йоло-поза — это модель оценки осанки человека, которая делит осанку человека на 17 ключевых точек.

Чтобы максимально повысить точность обнаружения ключевых точек, мы используем самую большую модель YOLOv8x-позы.

Создание набора данных по ключевым точкам указателя

Мы используем две точки указателя в качестве ключевых точек, а прямоугольную рамку, состоящую из этих двух точек, в качестве рамки обнаружения цели. Если прямоугольная рамка, состоящая из двух точек, слишком узкая, расширьте ее соответствующим образом.

Создание набора данных ключевых точек масштаба

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

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

(3) Обнаружение текста на основе DBNetpp

Причина выбора

Из-за разных размеров инструментов мы выбираем модель DBNetpp, которая представляет модуль многоуровневого агрегирования функций (Adaptive Scale Fusion, ASF), основанный на модели DBNet. Модуль ASF состоит из подмодулей сценического и пространственного внимания. , что усиливает различные функции. Объединение функций масштабирования повышает надежность обработки изображений разных размеров.

(4) Распознавание текста на основе модели SATRN.

Причина выбора

Модель SATRN использует механизм самообслуживания для моделирования двумерных пространственных отношений персонажей и вводит сверточный слой в модуль FFN, чтобы улучшить способность модели улавливать глобальные и локальные особенности.

Модель SATRN по-прежнему обладает достаточными возможностями распознавания для изогнутых и повернутых под большим углом текстов большой кривизны и достигает SOTA для нескольких наборов нерегулярных текстовых данных.

(5) Идентификация чтения

Вывод вышеуказанной модели подвергается постобработке с использованием opencv для получения результатов чтения. Конкретный процесс выглядит следующим образом:

  1. Различают внутренний и внешний диаметры.

Внутренний диаметр и внешний диаметр различаются в зависимости от расстояния между точкой шкалы и полем значения и началом указателя, и последующая обработка выполняется соответственно.

  1. Определить порядок отметок

Разница углов от начальной точки до конечной точки — это наибольшая разница углов между двумя соседними точками. Нам нужно найти только эту наибольшую разницу углов, чтобы определить начальную точку.

Сначала преобразуйте координаты точки шкалы в полярные координаты с центром в начале указателя и отсортируйте их от меньшего к большему в соответствии с углом [16,0,4,8,12]

Затем вычислите разницу углов между двумя соседними точками шкалы, выберите следующую точку шкалы с наибольшей разницей в качестве начальной точки и измените порядок [0,4,8,12,16]

  1. Правильные результаты распознавания OCR

На картинке выше из-за засорения указателя 1500 распознается как 500, что исправляется через арифметическую последовательность.

  1. перспективная трансформация

шаг:

1. Определить координаты последней точки: Известно, что угол полярной координаты последней точки после преобразования перспективы равен 45°. Если предположить, что расстояние между всеми точками шкалы и центром круга равно R, то координаты будут равны. последнюю точку можно выразить как (45°, R ). Координаты в декартовой системе координат можно получить на основе полярных координат.

2. Определите координаты трех других точек: всего имеется 6 интервалов, которые делят пополам весь диапазон 270°, поэтому угол между каждым масштабом составляет 270/6=45°. На основании этого преобразуются координаты другого. три точки могут быть рассчитаны по очереди.

Таким образом, можно определить координаты четырех точек масштаба изображения после преобразования перспективы, и эти координаты можно использовать для выполнения преобразования перспективы.

  1. Добавить точки, скрытые указателем

шаг:

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

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

3. Если выполняется преобразование перспективы, преобразованные координаты необходимо применить к матрице перспективы, чтобы получить координаты исходного изображения.

  1. Рассчитать показания

Оптимизация алгоритма

Есть проблема

Масштабные числа, вызванные перекрытием границ, не могут быть распознаны, и приведенный выше алгоритм не может с этим справиться.

Методы улучшения

В соответствии с распределением набора данных создайте список для каждого внутреннего и внешнего диаметра. В качестве примера возьмем внешний диаметр:

Подвести итог

преимущество:

1. Алгоритм обнаружения целей и алгоритм распознавания OCR основаны на модели SOTA в библиотеке алгоритмов с открытым исходным кодом, которая проста и эффективна и имеет широкую поддержку промышленного развертывания.

2. Вместо использования традиционного метода обнаружения по прямой линии для обнаружения ключевых точек точность обнаружения ключевых точек повышается за счет метода, аналогичного оценке ориентации.

3. Предлагается надежный метод считывания показаний прибора, основанный на поиске в таблице, который также может хорошо справляться с серьезными ситуациями окклюзии.

4. Благодаря преобразованию перспективы деформированное изображение прибора корректируется, чтобы сделать показания более точными.

Моменты, которые можно улучшить:

1. Преобразуйте файл модели в формат TensorRT, чтобы ускорить вывод.

2. Измените модель распознавания OCR, чтобы повысить эффективность.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose