Набор инструментальных данных для этой задачи имеет следующие трудности:
1. На шкале инструмента есть такие проблемы, как окклюзия и размытие, что влияет на распознавание оптического распознавания символов.
2. Изображение прибора имеет проблемы с вращением и наклоном, что влияет на измерение показаний.
Алгоритм разделен на 4 процесса. Сначала модель yolov5s используется для идентификации инструмента по исходному изображению, затем модель yolov8x-pose используется для обнаружения ключевых точек линий шкалы и указателей в инструменте, а затем — Модель DBNetpp используется для обнаружения числового поля, а модель SATRN используется для распознавания текста и, наконец, последующей обработки для получения результатов чтения.
Причина выбора
Yolov5s имеет небольшую сеть и высокую скорость. Хотя точность ПН невысока, ее вполне достаточно для обнаружения крупных целей, например приборов. Мы используем учебный комплект yolov5s, официально предоставленный Jishi для обучения. Легко начать, точность распознавания инструментов достигает 99,7%, а эффект соответствует реальным потребностям.
Причина выбора
YOLOv8 — это модель SOTA с открытым исходным кодом, созданная командой Ultralytics YOLOv5 в этом году, которая представляет новые улучшения для дальнейшего повышения производительности и гибкости. YOLOv8 спроектирован так, чтобы быть быстрым, точным и простым в использовании, что делает его отличным выбором для обнаружения объектов, сегментации экземпляров, классификации изображений и задач оценки позы.
йоло-поза — это модель оценки осанки человека, которая делит осанку человека на 17 ключевых точек.
Чтобы максимально повысить точность обнаружения ключевых точек, мы используем самую большую модель YOLOv8x-позы.
Создание набора данных по ключевым точкам указателя
Мы используем две точки указателя в качестве ключевых точек, а прямоугольную рамку, состоящую из этих двух точек, в качестве рамки обнаружения цели. Если прямоугольная рамка, состоящая из двух точек, слишком узкая, расширьте ее соответствующим образом.
Создание набора данных ключевых точек масштаба
Поскольку каждый инструмент имеет разное количество полей значений, мы рассматриваем каждое поле значений как одну и ту же категорию для обнаружения целей, и каждое поле значений содержит соответствующую точку шкалы в качестве ключевой точки.
Мы используем предварительно обученную модель, загруженную с официального сайта, для точной настройки набора данных инструмента и увеличения веса ключевой точки с 12 до 20.
Причина выбора
Из-за разных размеров инструментов мы выбираем модель DBNetpp, которая представляет модуль многоуровневого агрегирования функций (Adaptive Scale Fusion, ASF), основанный на модели DBNet. Модуль ASF состоит из подмодулей сценического и пространственного внимания. , что усиливает различные функции. Объединение функций масштабирования повышает надежность обработки изображений разных размеров.
Причина выбора
Модель SATRN использует механизм самообслуживания для моделирования двумерных пространственных отношений персонажей и вводит сверточный слой в модуль FFN, чтобы улучшить способность модели улавливать глобальные и локальные особенности.
Модель SATRN по-прежнему обладает достаточными возможностями распознавания для изогнутых и повернутых под большим углом текстов большой кривизны и достигает SOTA для нескольких наборов нерегулярных текстовых данных.
Вывод вышеуказанной модели подвергается постобработке с использованием opencv для получения результатов чтения. Конкретный процесс выглядит следующим образом:
Внутренний диаметр и внешний диаметр различаются в зависимости от расстояния между точкой шкалы и полем значения и началом указателя, и последующая обработка выполняется соответственно.
Разница углов от начальной точки до конечной точки — это наибольшая разница углов между двумя соседними точками. Нам нужно найти только эту наибольшую разницу углов, чтобы определить начальную точку.
Сначала преобразуйте координаты точки шкалы в полярные координаты с центром в начале указателя и отсортируйте их от меньшего к большему в соответствии с углом [16,0,4,8,12]
Затем вычислите разницу углов между двумя соседними точками шкалы, выберите следующую точку шкалы с наибольшей разницей в качестве начальной точки и измените порядок [0,4,8,12,16]
На картинке выше из-за засорения указателя 1500 распознается как 500, что исправляется через арифметическую последовательность.
шаг:
1. Определить координаты последней точки: Известно, что угол полярной координаты последней точки после преобразования перспективы равен 45°. Если предположить, что расстояние между всеми точками шкалы и центром круга равно R, то координаты будут равны. последнюю точку можно выразить как (45°, R ). Координаты в декартовой системе координат можно получить на основе полярных координат.
2. Определите координаты трех других точек: всего имеется 6 интервалов, которые делят пополам весь диапазон 270°, поэтому угол между каждым масштабом составляет 270/6=45°. На основании этого преобразуются координаты другого. три точки могут быть рассчитаны по очереди.
Таким образом, можно определить координаты четырех точек масштаба изображения после преобразования перспективы, и эти координаты можно использовать для выполнения преобразования перспективы.
шаг:
1. Сначала определите точки до и после недостающей точки, а также их среднее расстояние от центра круга. Эта информация будет использоваться для получения полярных координат недостающих точек.
2. Рассчитайте полярные координаты недостающей точки, исходя из угла и среднего расстояния между передней и задней точками. Полярные координаты состоят из полярного диаметра и полярного угла. Полярный диаметр представляет собой расстояние от точки до центра круга, а полярный угол представляет собой угол точки в полярной системе координат. Преобразуйте полярные координаты недостающих точек в декартовы координаты.
3. Если выполняется преобразование перспективы, преобразованные координаты необходимо применить к матрице перспективы, чтобы получить координаты исходного изображения.
Масштабные числа, вызванные перекрытием границ, не могут быть распознаны, и приведенный выше алгоритм не может с этим справиться.
В соответствии с распределением набора данных создайте список для каждого внутреннего и внешнего диаметра. В качестве примера возьмем внешний диаметр:
преимущество:
1. Алгоритм обнаружения целей и алгоритм распознавания OCR основаны на модели SOTA в библиотеке алгоритмов с открытым исходным кодом, которая проста и эффективна и имеет широкую поддержку промышленного развертывания.
2. Вместо использования традиционного метода обнаружения по прямой линии для обнаружения ключевых точек точность обнаружения ключевых точек повышается за счет метода, аналогичного оценке ориентации.
3. Предлагается надежный метод считывания показаний прибора, основанный на поиске в таблице, который также может хорошо справляться с серьезными ситуациями окклюзии.
4. Благодаря преобразованию перспективы деформированное изображение прибора корректируется, чтобы сделать показания более точными.
Моменты, которые можно улучшить:
1. Преобразуйте файл модели в формат TensorRT, чтобы ускорить вывод.
2. Измените модель распознавания OCR, чтобы повысить эффективность.