Методы распознавания

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

Алгоритм Кондратьева

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

Алгоритм Кондратьева

Примечание

Чтобы этот метод корректно работал, цифры на обработанном изображение должны быть черными, а фон белым. Если у вас не так, установите/снимите галочку в флажок Инверсия (Настроить)

Настройка сетки

Настройка сетки

Чтобы настроить этот метод, вам нужно сначала перейти во вкладку Настройка сетки, затем указать количество цифр для распознавания и настроить сетку по внешнему контуру цифр с помощью ползунков Отступ слева, Отступ сверху, Ширина, Высота, Пробел и Наклон. Точка при этом должны быть снаружи между параллелограммами. Примеры правильной настройки зашиты в программе

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

Примечание

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

Настройка метода

Настройка метода

Далее выберете вкладку Настройки метода. Там есть ползунки Ширина шрифта и Чувствительность к цифре, которые, как правило, достаточно хорошо настроены по умолчанию и в большинстве случаев их менять не надо, но если в вашем случае распознавание происходит нестабильно, их можно изменить. Ширину шрифта стоит сделать больше, если в вашем шрифте используется толстые линии, и меньше, если они тонкие. Чувствительность рекомендуется повысить, если ваше изображение тусклое, но без шумов. И, наоборот, чувствительность стоит понизить, если цифры на вашем изображении достаточно четкие, но на нем также присутствуют шумы. Важно, чтобы количество пикселей шумов не превышали пикселей самих цифр.

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

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

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

Чтобы добавить распознавание минуса, нажмите Добавить минус и с помощью двух кликов выделите прямоугольник внутри текущей зоны (минус можно выделить только один и только внутри настраиваемой зоны), в котором должен находится минус. Чтобы удалить минус, нажмите Удалить минус.

Примечание

После всех настроек, не забудьте сохранить их в Файл, тогда вам не придется настраивать все заново при повторном использовании данного средства измерения

Стрелочные приборы: метод углов

Данный метод применяется для стрелочных (аналоговых) средств измерений и имеет следующий принцип работы:

  1. Удаление фона относительного движущегося объекта (стрелки). Чтобы правильно определить фон, программа должна обработать некоторое количество кадров.

  2. Поиск особых точек - углов (от англ. corner, не от angle)

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

  4. Накопление статистики найденных линий, поиск центра - оси вращения стрелки

  5. Перевод угла наклона стрелки в результаты по шкале, согласно выбранному методу градуировки (если необходимо)

Стрелочные приборы

Для успешной реализации этого метода и широкого применения в программе предусмотрены 3 дополнительных меню настроек

Примечание

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

Настройки изображения

Настройки изображения

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

Примечание

Режим Без фона удобен для настройки параметров распознавания, так как позволяет контролировать все изменения настроек

Остальные настройки данного меню влияют только на отображение разных объектов и надписей на изображении зоны. Для каждого объекта из списка можно:

  • включить/выключить отображение

  • установить цвет

  • установить размер

Настройки метода

Настройки метода

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

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

Примечание

Угол наклона стрелки отсчитывается против часовой стрелки от горизонтального правого положения и принимает значения от 0 до 360 градусов

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

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

Примечание

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

Величина Мак. отклонение (измеряется в пикселях) задействована в двух местах:

  • При построении прямой, которая описывает стрелку, берутся только такие углы (особые точки), которые лежат не дальше этой величины

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

Другими словами, чем меньше Макс. отклонение, тем меньше ожидается дисперсия центра (пересечение стрелок в разных положениях).

Примечание

После каждого нового кадра, на котором была найдена прямая, описывающая стрелку, значение центра уточняется. Таким образом, если средство измерение плавно перемещается в кадре, то центр также перемещается. Но, если произошел сильный сдвиг (на величину больше, чем Мак. отклонение), то новый центр не будет найден вообще. В этом случае следует начать обработку сначала с помощью кнопки Забыть статистику зоны. Также данные о фоне не сохраняются при сохранении настроек зон, поэтому если вы открываете ранее сохраненные настройки зон, то дайте время программе для вычисления фона

Мин. число точек определяет, какое минимальное количество углов (особых точек) должно быть для построения линии стрелки,

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

Порог качества угла задаёт минимальное качество угла, ниже которого точки не будут учитываться

Мин. расстояние между углами (измеряется в пикселях) задаёт минимальное расстояние между углами. После того как функция находит кандидатов на углы, она удаляет те, что расположены слишком близко друг к другу — ближе, чем Мин. расстояние между углами пикселей.

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

Надпись stats: x / [y…z] информирует пользователя об объеме выборки найденных линий стрелки (на каждом кадре может быть не более одной стрелки), по которым рассчитывается центр как пересечение этих линий. x - это текущее количество найденных линий стрелки, y - это минимальный объем выборки линий стрелки, необходимый для расчета центра (другими словам, если x < y, программа не будет вычислять центр вообще), z - это максимально возможный объем выборки линий стрелки. Если x = z, то каждая следующая найденная линия замещает самую старую линию из выборки. Таким образом, программа запоминает x последних линий стрелки, если выключена фиксация центра.

Кнопка Забыть статистику зоны позволяет забыть все найденные линии и центры на предыдущих кадрах, и начать обработку сначала. Это может быть необходимо в случае существенных изменений в изображении, например, если средство измерение было сдвинуто, изменилось освещение или по каким-то причинам центр был найден неверно

Кнопка Забыть фон позволяет начать вычислять фон заново. Это может быть полезно, если фон резко изменился.

Примечание

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

Градуировка

Градуировка

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

Для одной зоны можно настроить несколько шкал и переключаться между ними, когда это необходимо. Для этого сверху предусмотрены список шкал и кнопки + и -. Кнопка + позволяет создать новую шкалу как копию текущей, кнопка - удаляет текущую шкалу, если она не является последней. Выпадающий список шкал позволяет переключаться между существующими шкалами.

Примечание

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

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

Примечание

Чтобы установить градуировочную точку на риску наиболее точно, увеличьте изображение (см. Управление положением и размерами)

Чтобы удалить ненужные точки, выделите соответствующие строки в таблице и нажмите кнопку удалить выделенные точки (при выделении можно использовать клавиши ctrl и shift)

Далее выберете подходящий метод градуировки из списка Метод градуировки

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

К сплайнам относятся

  • Кусочно-линейная интерполяция

  • Кубический сплайн

  • Интерполяционный многочлен Лагранжа

Дополнительные настройки для них не требуются.

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

К функциям с явным аналитическим выражением относятся

  • Линейная зависимость

  • Логарифмическая зависимость

  • Гипербола

  • Пользовательская функция

При выборе любого из этих методов вы увидите явное выражение функции, которое будет использоваться для градуировки, в котором переменная x - угол в градусах, а остальные параметры (любые буквы, кроме x), будут найдены автоматически. Иногда программа не может самостоятельно вычислить точные значения параметров (особенно при использовании сложных функций и большого числа параметров), тогда необходимо будет ввести Начальное приближение для всех или хотя бы некоторых параметров. Вообще, даже если программа автоматически находит значения параметров, не будет лишним все равно ввести начальные приближения, примерно равные найденным параметрам, так как в дальнейшем это будет упрощать вычисления.

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

Если выражение для функции некорректно или в нем отсутствует переменная x, об этом будет сообщено над строкой ввода функции, а текст будет выделен красным цветом.

Примечание

Выражение для функции может вообще не содержать параметры, и оно не будет зависеть от градуировочных точек. Например, можно использовать причудливую функцию mod(90 - x, 360) / 6 для перевода угла наклона секундной стрелки часов в секунды (функция mod(a, b) возвращает остаток деления числа a на b)

При нажатии кнопки Показать график открывается окно с градуировочным графиком для текущей зоны. Он обновляется в режиме реального времени и на нем также показываются текущее результаты. В меню данного окна есть раздел Файл, в котором вы можете сохранить график в каталог по умолчанию (см. Каталог программы) с помощью кнопки Сохранить или выбрать путь для сохранения с помощью Сохранить как…

Градуировочный график

Примечание

Градуировочный график не обновляется, если программа не находит результат распознавания. Таким образом, если вы изменили градуировочный график, то он обновится только после первого найденного результата распознавания.

Стрелочные приборы: метод контуров

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

Примечание

Наличие нескольких методов позволяет сделать программу более универсальной. Где-то лучше работает один метод, где-то - другой

Настройки изображения

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

Настройки метода

Настройки метода

В настройках метода контуров есть такие же переменные и кнопки, как в настройках метода углов (см. Настройки метода), с теми же назначениями

  • Чек-боксы Зафиксировать фон и Зафиксировать центр

  • Радиокнопки Результат по шкале и Результат - угол наклона

  • Кадров в памяти

  • Макс. отклонение

А также несколько новых переменных (измеряются в пикселях):

  • Мин. длина контура стрелки

  • Макс. длина контура стрелки

  • Мин. площадь контура стрелки

  • Макс. площадь контура стрелки

Которые работают как фильтры длин и площадей контуров, которые позволяют найти нужный контур стрелки на кадре

Градуировка

Точно такие же настройки, как в методе углов (см. Градуировка)

Стрелочные приборы: метод цветов

Принцип работы данного метода также похож на Стрелочные приборы: метод углов, но имеет более существенные отличия

  1. В этом методе так же определяется фон, но не относительно движущегося объекта, а как отфильрованные по цветам пиксели

  2. Линия стрелки проводится по отфильтрованным пикселям. Прямая ищется таким образом, чтобы как можно больше отфильрованных пикселей лежали не дальше Макс. отклонение пикселей от прямой

Далее принцип работы такой же

Примечание

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

Настройки изображения

Настройки изображения такие же как в методе углов (см. Настройки изображения) с той лишь разницей, что в данном методе нет углов

Настройки метода

Настройки метода

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

  • Чек-бокс Зафиксировать центр

  • Радиокнопки Результат по шкале и Результат - угол наклона

  • Кадров в памяти

  • Макс. отклонение

  • Мин. число точек

  • Мин/Макс длина стрелки

А также несколько новых кнопок и переменных:

  • Выбрать цвет стрелки, при нажатии на которую открывается окно выбора цвета, в котором можно выбрать цвет стрелки. Справа от нее отображается квадрат с выбранным цветом.

  • Три ползунка для настройки диапазона цвета стрелки (красный, зеленый, синий). Как это работает: каждый пиксель цветного изображения задается тремя числами от 0 до 255 (красный, зеленый, синий). Для выбранного цвета, который задается тремя числами (x, y, z), ползунки позволяют задать диапазон (x ± dx, y ± dy, z ± dz), где dx, dy, dz - значение ползунка. Фоном будет считаться все, что не попадает в этот диапазон

Примечание

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

Заметим, что пипетка работает и в окне настройки цвета, которое открывается при нажатии на кнопку Выбрать цвет стрелки, но только не на операционной системе Windows

_images/pip.png

Градуировка

Точно такие же настройки, как в методе углов (см. Градуировка)

Нейросеть

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

Нейросеть

На картинке нейросеть обрабатывает зону 2

Примечание

Чтобы нейросеть работала, необходимо также установить программу Tesseract-OCR и указать путь до исполняемого файла в Главное менюНастройкиПодключить нейросеть…

Индикаторы

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

Индикаторы

В настройках этого метода также есть ползунок Порог и флажок Инверсия, но в отличие от методов Алгоритм Кондратьева и нейросеть, которые работают с изображением в оттенках серого, для данного метода обработка изображения осуществляется одновременно по трем каналам (красный, зеленый, синий).

Примечание

Например, если значение порога стоит равным 100, а некоторый пиксель изображения имеет значения (90, 150, 200) в палитре RGB, то после обработки этот пиксель будет иметь значение (0, 255, 255), что соответствует голубому цвету. А применение инверсии переведет этот пиксель в (255, 0, 0), что соответствует красному цвету

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

Примечание

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

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

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

Промежуточные значения позволяет отсечь лишние цвета