Software algorithm for automated digitalization of load curves

Cover Page

Cite item

Full Text

Abstract

AIM: This work aimed to describe an algorithm for empirical processing of load curves allowing to convert graphic files to data arrays suitable for further processing.

METHODS: The presented algorithm can be implemented in any high-level programming language, provided that there are pixel analysis capabilities for graphics. The paper uses the C# programming language.

RESULTS: We developed a console application for the .NET 9.0 platform with the required parameters that was used to process more than 250 load curves.

CONCLUSION: The algorithm presented in the paper can be used to process a wide class of similar images with appropriate adjustments.

Full Text

Введение

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

При выполнении научно-исследовательской работы в среде LabView было проведено моделирование множества вариантов графиков электропотребления подвижного состава в зависимости от различных параметров движения [1–4]. Пример такого изображения представлен на Рис. 1. В дальнейшем доступ к моделям был утерян и остались только изображения соответствующих результатов моделирования. Соответственно, возникла задача автоматизированного преобразования полученных изображений в текстовый формат, пригодный для последующей статистической обработки [5–7].

 

Рис. 1. Пример обрабатываемого изображения

Fig. 1. Example of the processed image

 

Проблема применения искусственного интеллекта

Искусственный интеллект достаточно эффективно анализирует содержимое изображений [8, 9]. Однако в ряде случаев может приводить к некорректным результатам или затруднению процесса получения решения [10, 11].

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

Чтобы решить задачу корректно, необходимо обучить систему искусственного интеллекта на некоторых уже известных данных в виде графиков и соответствующих им массивах данных [12]. При этом выборка должна быть представительной, достаточного объема, учитывающей возможные отклонения изображений друг от друга. Однако в поставленной задаче такие графики отсутствуют. Поэтому было принято решение разработать эмпирический алгоритм анализа имеющихся изображений.

Обоснование необходимости выбора эмпирического алгоритма обработки данных

Применение эмпирического алгоритма обработки также обусловлено необходимостью четкого контроля следующих требований.

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

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

В-третьих, необходимо четкое понимание алгоритма разрешения спорных моментов, которые могут возникать на графике. Например, на Рис. 1 видно, что в начальный момент график с нуля скачком поднимается до моделируемого уровня (в районе 25 кВ). Это особенность функционирования системы моделирования и в соответствии с поставленной в исследовании задачей данный участок не должен учитываться при анализе графика. Кроме того, в самом процессе электропотребления могут присутствовать скачкообразные изменения напряжения, и их обработка должна быть выполнена установленным образом.

В итоге для решения обозначенных проблем предлагается реализовать эмпирический алгоритм обработки данных изображений на языке программирования C# [13–16].

Требования к графическим файлам

Прежде всего, визуально были проанализированы обрабатываемые изображения (Рис. 1) и сформированы общие признаки, на которые можно будет опираться при разработке алгоритма. На всех изображениях:

  • присутствует внешняя граница области построения жирным темно серым цветом;
  • график начинается практически с нуля с левого нижнего угла;
  • присутствует координатная сетка светло серого цвета;
  • формат файлов *.png или *.jpeg;
  • имеется легенда внизу, ограниченная серой рамкой.

Однако имеется и ряд различий графиков:

  • размеры графика могут различаться от 680х540 до 1900х1000 пикселей;
  • начальное значение напряжения, соответствующее нижней линии координатной сетки может быть как нулевым, так и составлять один шаг сетки;
  • шаг сетки по вертикали может варьироваться и составляет 500, 1000 или 2000 В;
  • расстояния по горизонтали от левой границы области построения до нулевого значения, а также от последнего значения графика до правой границы области построения могут различаться.

Структура предлагаемого программного модуля обработки изображений

В основе алгоритма обработки лежит загрузка изображения в программу и последующий анализ цвета различных пикселей. Для ускорения работы использовался низкоуровневый блок кода, работающий напрямую с адресами каждого пикселя изображения, представленного четырехбайтным словом формата ARGB (прозрачность Alpha, красный Red, зеленый Green, синий Blue) [17, 18].

В целом для решения задачи были написаны три класса:

  • класс «Stat», описывающий в целом процесс обработки изображений (хранит результаты обработки загруженных графиков и добавляет следующее);
  • класс «Measure», реализующий статистическую обработку массива данных конкретного графика;
  • класс «Plot», собственно выполняющий саму обработку изображения и преобразование его в массив текстовых данных.

Для работы с текстовыми данными использовался формат *.CSV, реализующий удобную работу с таблично представляемыми данными. В файлы данного формата сохраняются результаты преобразования графиков (массивы напряжений) и общая статистическая информация по всем обработанным файлам [19, 20].

Структура класса «Stat» (Статистика) и назначение его элементов представлены на Рис. 2. 

 

Рис. 2. Класс «Stat» хранения информации обо всех обработанных файлах

Fig. 2. Stat class used to store all processed file data 

 

Структура класса «Measure» (Измерение) и назначение его элементов представлены на Рис. 3.

 

Рис. 3. Класс «Measure» хранения результата обработки одного файла

Fig. 3. Measure class used to store one file processing products

 

Структура основного класса «Plot» (График) и назначение его элементов представлены на Рис. 4. Общий алгоритм работы программы, координирующий работу всех трех классов, приведен на Рис. 5.

 

Рис. 4. Класс «Plot» непосредственной работы с изображением

Fig. 4. Plot class used to work directly with images

 

Рис. 5. Основной алгоритм работы программы

Fig. 5. Basic program algorithm

 

Основные этапы обработки изображений

Рассмотрим порядок обработки изображения на примере изображения, приведенного на Рис. 6. Первым шагом определяется область построения графика методами FindLeftAxis, FindRightAxis, FingBottomAxis и FindTopAxis. Для этого найдем расстояние от края изображения до линий, ограничивающих область построения графика. Распознавание пикселей выполняется по цвету соответствующими методами класса Plot (IsDark, IsLight, IsRed, IsGray). Расстояние определяется на базе циклической конструкции – перемещаемся по соответствующей координате до тех пор, пока пиксели светлые. При первом попадании на темный пиксель – выдвигается гипотеза о нахождении соответствующей оси координат. Рассмотрим особенности данного процесса.

 

Рис. 6. Детализированный пример обрабатываемого изображения

Fig. 6. A detailed example of the processed image

 

Определение левой оси связано с возможностью попадания на числовые подписи слева от оси при циклическом переборе слева направо (см. область А на Рис. 6). Поэтому для нахождения левой оси графика воспользуемся алгоритмом, принцип работы которого показан на Рис. 7.

 

Рис. 7. Алгоритм поиска левой оси графика: 1 – циклический перебор и нахождение левой границы графика; 2 – подтверждение гипотезы о действительном нахождении оси; 3 – согласование результата нахождения двух осей; 4 – корректировка действительного поля графика за счет исключения начального смещения

Fig. 7. Algorithm used to find the left curve axis: 1, cycle and search for the left curve boundary; 2, instantiation of the hypothesis on the actual location of the axis; 3, alignment of the two axes search results; 4, adjustment of the actual curve field by eliminating the initial shift

 

Когда в цикле по первому участку находим темный пиксель (линия 1), то выполняется проверка нескольких пикселей в вертикальной окрестности 2 данной точки (Рис. 7, линии 2). Если ось найдена корректно, то все точки окрестности дадут также темные значения, в то время как при попадании на цифровое значение вместо оси проверка покажет наличие светлых пикселей (в этом случае цикл горизонтального смещения 1 продолжает свою работу).

У верхней и правой осей ситуация проще (в корректировке нет нужды), а у нижней оси добавляется необходимость учесть наличие легенды (см. область С на Рис. 6) – пропустить две серые линии.

Когда найдены и левая и нижняя оси, для повышения надежности анализа выполняется дополнительная проверка соответствия угла графика: в окрестности точки 3 (Рис. 7, линии 3) верхние и правые пиксели должны быть темными, а левые и нижние – светлыми (область В на Рис. 6). Аналогично проверяется и правый верхний угол. Для этого реализованы методы TryLeftDownCorner и TryRightUpCorner.

Также следует учесть, что визуальное отображение левого нижнего угла может значительно различаться (Рис. 8): различный шаг сетки, различное начальное значение напряжения, различное расстояние до красной линии графика. Поэтому при успешном определении левого нижнего угла (Рис. 7, линии 3) выполняется переход на некоторое расстояние вправо и также циклическим перебором определяется скорректированная область графика от красной линии (Рис. 7, линия 4).

 

Рис. 8. Вариативность оформления левого нижнего угла

Fig. 8. Design variability of the lower left corner

 

Алгоритм дальнейшей обработки представлен на Рис. 9. Он реализован методом DefineYGridStep и связан с решением следующих задач:

  • положение нижней оси найдено путем пропуска двух серых линий легенды графика (Рис. 9, линия 1);
  • от нижней оси определяется положение первой линии координатной сетки: оно может быть меньше основных делений (Рис. 9, линия 2);
  • определяется расстояние от первой линии координатной сетки до второй: шаг координатной сетки в пикселях (Рис. 9, линия 3);
  • от левой оси на уровне первой координатной линии циклическим движением влево определяется количество пересекаемых серых линий (Рис. 9, линия 4).

 

Рис. 9. Алгоритм определения масштаба графика

Fig. 9. Curve scale algorithm

 

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

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

nс=YmaxY1Y2Y1,

где Ymax – ордината верхней оси графика, а Y1 и Y2 – соответственно, ординаты первой и второй линий сетки.

Возможные масштабы на всех рассматриваемых графиках составляли: 500, 1000 и 2000 В/дел. Соответственно, учитывая примерное максимальное напряжение, которое на графиках составляет около 30 кВ, по количеству делений можно легко выбрать наиболее подходящий масштаб. С этим масштабом выполняется пересчет максимальной ординаты графика из пикселей в вольты (метод DefineTopValue).

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

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

 

Рис. 10. Пример логгирующих сообщений обработки одного изображения

Fig. 10. Logging messages for one image processing

 

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

  • среднее значение напряжения;
  • среднеквадратическое отклонение;
  • коэффициент вариации;
  • долю высоких напряжений более 21 кВ;
  • общее количество обработанных точек.

Эти данные по итогам обработки всех изображений автоматически сводятся в Excel-таблицу, пример которой приведен на Рис. 11.

 

Рис. 11. Пример отчета обработки нескольких файлов

Fig. 11. Multiple files processing log

 

Заключение

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

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

Авторы заявляют что:

  1. У них нет конфликта интересов;
  2. Настоящая статья не содержит каких-либо исследований с участием людей в качестве объектов исследований.

The authors state that:

  1. They have no conflict of interest;
  2. This article does not contain any studies involving human subjects.
×

About the authors

Anton V. Ponomarev

Omsk State Transport University

Author for correspondence.
Email: antonyswork@gmail.com
ORCID iD: 0000-0003-1468-5402
SPIN-code: 8927-5050

Cand. Sci. (Engineering), Associate Professor

Russian Federation, Omsk

References

  1. Davydov AI, Dolgova AV, Komyakov AA, et al. Razrabotka conceptualnoy modeli sistemy podderjki prinyatiya resheniy v oblasti analiza i prognozirovaniya toplivno-energeticheskih resursov na tyagu poezdov: Report No. 224123000008-8. Omsk State Transport University. Omsk; 2024. (In Russ.) EDN: LFTCPW
  2. Komyakov AA, Ponomarev MA. Method for assessing the influence of a booster transformer on voltage asymmetry in traction power supply systems. In: Proceedings of the international science conference «Pribory i methodi izmereniy, kontrolya kachestva i diagnostiki v promyshlennosti i na transporte»; 2025 April 10. Omsk; 2025:240–248. (In Russ.) EDN: GMSJYG
  3. Komyakov AA, Tarasevich VA. Analysis of the rate of voltage change in the actraction power supply system based on the data of measuring systems. In: Proceedings of the international science conference «Pribory i methodi izmereniy, kontrolya kachestva i diagnostiki v promyshlennosti i na transporte»; 2025 April 10. Omsk; 2025:276–282. (In Russ.) EDN: CTREAN
  4. Komyakov A, Lavrukhin A, Komyakova O, Nikiforov M. Development of an Automatic Control System for a Booster Transformer in Traction Power Supply Systems. In: IEEE 5th New Energy and Energy Storage System Control Summit Forum (NEESSC). 2025:63–66. doi: 10.1109/NEESSC66038.2025.11199558 EDN: NLLRWR
  5. Vitovskaya VV, Gatelyuk OV. About the forecasting of electrical energy consumption for traction of train using regression models differentiated by types of freight trains. Journal of Transsib Railway Studies. 2025:62:80–90. (In Russ.) EDN: GYWXBA
  6. Bezjazychnyj VS, Veligura SA, Kalashnikov AI, Nadtoka LI. Analysis of the dependence of power consumption in the power system on wind speed and effective air temperature and their use in short-term forecasting. In: Proceedings of the international science conference «Electroenergetika glazami molodezhi»; 2020 September 15. Stavropol; 2020:147–150. (In Russ.) EDN: MRLJSK
  7. Komyakov AA, Komyakova TV, Shkulov AI. Application of a probabilistic approach for the formation of an electric traction load graph in the simulation of a traction power supply system. Vestnik rostovskogo gosudarstvennogo universiteta putej soobshcheniya. 2023:92:184–192. (In Russ.) doi: 10.46973/0201-727X_2023_4_184 EDN: JLRHET
  8. Serebryakov NA. The selection of the optimal architecture and configuration of the neural network for a short-term load forecasting of default provider. Vesti vysshyh uchebnyh zavedeniy Chernozemiya. 2021:64:26–42. (In Russ.) doi: 10.53015/18159958_2021_2_26 EDN: SMFLLS
  9. Analakova O, Yollyyeva O. Using artificial intelligence to analyze spatial data and identify patterns in cartography. Innovacionnaya nauka. 2024:5-2-2:158–160. (In Russ.) EDN: IXKRUG
  10. Echmaeva GA, Gutnik PhE. Problems of applying image recognition methods in computer vision. In: Collection of Selected Papers from All-Russian (National) Scientific and Practical Conferences GNII «Nacrazvitie»; 2021 July 10. Saint Petersburg; 2021:109–111. (In Russ.) EDN: UKAAYA
  11. Kravcova AS. Primenenie iskusstvennogo intellekta v programmnom obespechenii dlya avtomatizacii analiza ultrazvukovyh izobrajeniy. In: Proceedings of the All-Russian (National) students conference «Informacionnie tehnologii v sovremennom mire»; 2025 May 16. Ekaterinburg; 2025:92–94. (In Russ.) EDN: WQRRVX
  12. Febriani RA. Utilization Of Artificial Intelligence In Image-Based Medical Diagnosis. Jurnal Komputer Indonesia. 2023:2(1):41–46. doi: 10.37676/jki.v2i1.567 EDN: CBDOEZ
  13. Skotnikov NV, Belonozhko AV. Programma dlya ocifrovki graficheskih izobrazheniy. In: Proceedings of the international students conference «Aktualnye voprosy nauki i tehniki»; 2014 June 18. Voronezh; 2014:199–200. (In Russ.) EDN: WFWIYX
  14. Mahov V, Liferenko V, Borisov E. Obshchiy podkhod k otsifrovke graficheskikh zavisimostey v izobrazhenii v srede LabVIEW. Componenty i tehnologii. 2016:182:141–146. (In Russ.) EDN: WMPMTT
  15. Certificate of state registration of a computer program № 2019612907 / 2019.03.04 Bojkov AV, Vasilieva NV, Sizyakova EV. Programma ocifrovki diagramm s rastrovyh izobrazhenij. (In Russ.) EDN: CSOPEW
  16. Lavrov VV, Luchkin RS, Prokhorov ME, et al. Architecture of an object-oriented software implementation of algorithms for a full cycle of optical images of an unknown object processing. Radio Industry. 2020:30(4):23–34. (In Russ.) doi: 10.21778/2413-9599-2020-30-4-23-34 EDN: TTDMQT
  17. Unger AYu. Design Patterns on C++. Moscow: RTU MIREA; 2023. (In Russ.)
  18. Kozlov AYu, Khramichev AA. The software package of 2d image processing for the optoelectronic detection system, tracking and identification of dynamic objects. Software Journal: Theory and Applications. 2020:1:1. doi: 10.15827/2311-6749.20.1.1 EDN: YMBCOQ
  19. Kuznetsov A, Ponomarev A, Volchanin G, et al. Image Processing for Visual Inspection of Hollow Reinforced Concrete Supports’ Inside Surfaces. In: Conference proceedings «Networked Control Systems for Connected and Automated Vehicles»; 2023 February 8. Switzerland AG; 2023:403–409. doi: 10.1007/978-3-031-11051-1_39 EDN: XHNIUQ
  20. Rihter D. CLR via C#: Programming on the platform Microsoft.NET Framework 4.5 in language C#. St. Petersburg: Piter; 2019. (In Russ.)

Supplementary files

Supplementary Files
Action
1. JATS XML
2. Fig. 1. Example of the processed image

Download (294KB)
3. Fig. 2. Stat class used to store all processed file data

Download (57KB)
4. Fig. 3. Measure class used to store one file processing products

Download (107KB)
5. Fig. 4. Plot class used to work directly with images

Download (312KB)
6. Fig. 5. Basic program algorithm

Download (168KB)
7. Fig. 6. A detailed example of the processed image

Download (195KB)
8. Fig. 7. Algorithm used to find the left curve axis: 1, cycle and search for the left curve boundary; 2, instantiation of the hypothesis on the actual location of the axis; 3, alignment of the two axes search results; 4, adjustment of the actual curve field by eliminating the initial shift

Download (28KB)
9. Fig. 8. Design variability of the lower left corner

Download (43KB)
10. Fig. 9. Curve scale algorithm

Download (36KB)
11. Fig. 10. Logging messages for one image processing

Download (168KB)
12. Fig. 11. Multiple files processing log

Download (160KB)

Copyright (c) 2026 Ponomarev A.V.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

link to the archive of the previous title