В рамках хакатона «Задачи БАС в области энергетики», который проходил в Екатеринбурге с 10 по 13 февраля 2025 года, наша команда just_misis разработала прототип автономной системы для инспекции линий электропередачи (ЛЭП). Задача заключалась в автоматическом анализе видеоданных с беспилотника для выявления дефектов на проводах ЛЭП в режиме реального времени. Проект объединил современные подходы компьютерного зрения — нейросетевые и классические алгоритмы — с веб-технологиями, вдохновив нас на новые идеи в области умных дронов для энергетики. В итоге решение принесло нашей команде победу на хакатоне и открыло путь к дальнейшему развитию проекта.
«В сжатые сроки нам удалось сделать дрон автономным, а это не так просто. В дальнейшем мы хотим доработать автономное защелкивание и отщелкивание сервоприводов, чтобы беспилотник надежно держался на ЛЭП», — отметил Георгий Бондарь, студент НИТУ МИСИС, о ключевых технических вызовах проекта.
О хакатоне

Хакатон был организован екатеринбургской компанией «Лаборатория будущего» (резидент ИТ-кластера Сколково), которая разрабатывает беспилотные системы для диагностики высоковольтных линий. Соревнование проходило в технопарке «Университетский» в формате четырёхдневного интенсива: участники сначала предлагали решения удалённо, а затем дорабатывали и демонстрировали прототипы очно на специальном полигоне перед экспертным жюри. Командам (школьникам и студентам) были предложены реальные кейсы от индустриального заказчика. Основная цель – разработать элементы дрона-инспектора ЛЭП, способного автономно работать на линиях электропередачи.
Всего было три кейса на выбор: 1) алгоритмы автономной посадки робота на провод ЛЭП с учётом различных условий; 2) анализ и обработка видеоданных для выявления дефектов проводов; 3) алгоритмы работы дрона в аварийных ситуациях. Наша команда just_misis сфокусировалась на втором кейсе – визуальном контроле состояния проводов с воздуха. Параллельно две другие команды от студенческой лаборатории робототехники НИТУ МИСИС (misis.drones и misis_robo_family) выбрали соседние задачи посадки на провод и поведения при сбоях. Все три команды объединили решения в единый проект – автономный дрон, способный прилететь к проводам, закрепиться на них и проанализировать видео с камеры для обнаружения повреждений. Такой междисциплинарный подход позволил охватить сразу несколько аспектов инспекции ЛЭП и в итоге занять весь пьедестал призёров хакатона.

Технологии и инструменты
Мы использовали современный стек технологий, сочетая программные и аппаратные компоненты:
Беспилотник и камера. В качестве платформы выступал квадрокоптер с закреплённой камерой. На дроне установлен миниатюрный одноплатный компьютер (весом всего 38 грамм) для локального запуска алгоритмов.
Python & FastAPI. Серверная часть прототипа написана на Python с использованием фреймворка FastAPI. Бэкенд обрабатывает данные от камеры, запускает модели CV и предоставляет API для передачи результатов в интерфейсы.
YOLOv8. Для обнаружения объектов на видео мы задействовали свежую версию нейросетевой модели YOLOv8 (Ultralytics) – она выполняла детекцию проводов и потенциальных дефектов на изображении.
OpenCV. Классические методы компьютерного зрения (библиотека OpenCV) применялись для анализа формы проводов. В частности, алгоритмы на основе преобразования Хафа выявляли искривления проводов и помогали отличить нормальный провод от повреждённого.
React (Web-интерфейс). Фронтенд реализован на React: веб-приложение в реальном времени отображало положение дрона на карте, список обнаруженных дефектов, фотографии повреждённых участков и другую телеметрию.
Прочие инструменты. Для быстрого прототипирования интерфейса оператора использовался Python Tkinter (настольное приложение админ-панели). Реализация беспилотного полёта опиралась на ArUco-маркеры для навигации и специальную прошивку полётного контроллера, разработанную коллегами.
Реализация алгоритмов обнаружения
Обнаружение проводов с помощью YOLOv8
Чтобы научить ИИ «видеть» провода ЛЭП, мы собрали небольшой датасет изображений проводов и опор в разных условиях и дообучили модель YOLOv8 на этих данных. Нейросеть научилась по видеопотоку с дрона уверенно находить сами провода и связанные объекты (например, изоляторы, крепления) в кадре. Детектор выдавал координаты областей, где находится провод. Эти области передавались на дальнейший классический анализ. Несмотря на тонкость и однообразие проводов на фоне неба, YOLOv8 справилась с задачей благодаря высокой точности и возможности обучения на кастомных классах.
Отдельно рассматривалась идея искать дефекты (повреждения) непосредственно средствами нейросети. Однако обучение сети на все виды возможных дефектов требовало бы большого объёма данных. Мы выбрали комбинированный подход: нейросеть находит сам провод, а уже классические методы выявляют аномалии в его форме. Такой разделение обязанностей позволило эффективно использовать сильные стороны обеих технологий.
Анализ кривизны провода (OpenCV)
После детекции региона провода нейросетью, система применяла алгоритмы OpenCV для определения кривизны (искажений) этого проводного сегмента. Основной инструмент – преобразование Хафа для поиска линий (функция HoughLines
). Алгоритм ищет на бинаризованном изображении все линии; прямой, ровный провод обычно даёт одну чёткую линию, тогда как изогнутый или провисший провод будет аппроксимироваться несколькими отрезками с разным наклоном. Анализируя количество найденных линий и их углы, мы определяли, присутствует ли заметное искривление.
Чтобы повысить надёжность, перед Хаф-преобразованием применялась предварительная обработка изображения: фильтрация шумов, выравнивание яркости, увеличение контраста на провод. Эти шаги позволили сгладить влияние помех – бликов солнца, вибраций дрона, фоновых объектов. В результате система уверенно распознавала даже небольшие провисы или заломы проводов. Например, если обнаруживалось более двух линейных сегментов с разными углами вместо одной прямой линии, участок помечался как потенциально повреждённый.
Ниже приведён упрощённый фрагмент кода на Python, демонстрирующий подход к выявлению искривления провода с помощью OpenCV и метода Хафа:
import cv2
import numpy as np
# Получаем кадр с дроном (например, уже обрезанный по области провода)
frame = cv2.imread('wire_region.jpg')
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Преобразование к изображению границ (канни для выделения контура провода)
edges = cv2.Canny(gray, threshold1=50, threshold2=150)
# Поиск прямых линий на изображении методом Хафа
lines = cv2.HoughLinesP(edges, rho=1, theta=np.pi/180, threshold=50,
minLineLength=80, maxLineGap=5)
if lines is not None:
angles = []
for line in lines:
x1, y1, x2, y2 = line[0]
# вычисляем угол наклона линии (в градусах)
angle = np.degrees(np.arctan2(y2 - y1, x2 - x1))
angles.append(angle)
# Проверяем разброс углов и количество сегментов
if len(lines) > 1 and np.std(angles) > 5:
print("Обнаружено возможное искривление провода!")
Фрагмент кода: сначала с помощью Canny-детектора получаем контур провода, затем ищем линии методом Хафа. Если обнаружено несколько отрезков с различающимися углами (стандартное отклонение уголков > 5°) – делаем вывод о кривизне (провисании) провода.
Интеграция в единую систему
Все компоненты связаны между собой через бэкенд на FastAPI. Алгоритм на борту дрона или наземной станции обрабатывает видеопоток покадрово: YOLOv8 находит координаты проводов, для каждого региона OpenCV оценивает степень кривизны. Если дефект подтверждается (например, угол наклона сегментов превышает порог), информация тут же отправляется на сервер. Сервер присваивает выявленному дефекту отметку (время, геокоординаты дрона, фотография кадра) и сохраняет в базу для истории.
Пользовательский веб-интерфейс (React) периодически запрашивает у сервера свежие данные. Таким образом, оператор или инженер в режиме реального времени видит на экране, где сейчас находится дрон и есть ли на его пути проблемные места. Интерфейс администратора (настольное приложение) позволял также просматривать статистику системы – сколько дефектов найдено за вылет, уровень сигнала, состояние дрона и пр. Совместно эти компоненты обеспечили удобный контроль за работой беспилотника-инспектора.

Отдельно отметим, что одной из главных трудностей разработки стало грамотное разделение задач между нейросетью и классическим CV. Мы экспериментировали с различными подходами: от полной отдачи ответственности нейросети (обучить YOLO искать любые дефекты формы проводов) до ручного программирования всех критериев дефекта. В итоге нашли баланс: наиболее общие признаки (наличие провода в кадре) выделяет нейросеть, а более тонкие метрические оценки (наклон, дуга провиса) выполняются алгоритмами OpenCV. Этот компромисс помог уложиться в сжатые сроки хакатона и добиться работоспособности системы.
Демонстрация и результаты
Финальные испытания проходили на учебном полигоне, имитирующем участок ЛЭП: в зале были натянуты макеты проводов между опорами. Наш дрон, оснащённый разработанной системой, успешно выполнил автономный облет и обследование линии. Благодаря сотрудничеству с коллегами, отвечавшими за навигацию, квадрокоптер смог точно подлететь к проводу и даже осуществить посадку на него, закрепившись с помощью специального механизма. В этот момент наш код компьютерного зрения начал анализировать видео с неподвижно сидящего на проводе дрона.

Прямо перед жюри в реальном времени на экране ноутбука отображалась картина: видео с камеры дрона и поверх него – подсветка обнаруженных объектов. Когда алгоритм фиксировал дефект провода, система мгновенно маркировала этот кадр, сохраняла изображение и выводила предупреждение в интерфейсе.
Жюри высоко оценило комплексность решения. Фактически мы показали замкнутый цикл: от автономного движения дрона вдоль ЛЭП до автоматического выявления проблем и визуализации для пользователя. Особо было отмечено, что объединение нейросетевых методов (YOLOv8) с классическими (OpenCV) позволило добиться работоспособности на таком сложном деле, как распознавание тонких объектов в реальном мире.
Работа в команде
Наша команда just_misis была со следующим составом на данном хакатоне:
Георгий Варин — специалист по нейросетям и алгоритмам детекции. Отвечал за обучение и интеграцию модели YOLOv8, а также за реализацию логики анализа видеопотока и автоматического выявления дефектов проводов.
Серафима Пахомова — разработчик алгоритмов компьютерного зрения. Занималась разметкой данных, настройкой предобработки изображений, реализацией анализа искривления проводов с использованием OpenCV и методов Хафа.
Кристина Егорова — fullstack-разработчик, создатель пользовательского веб-интерфейса. Реализовала фронтенд на React и бэкенд на FastAPI, обеспечив удобную визуализацию координат дрона и обнаруженных дефектов в реальном времени.
Важность и перспективы
Наш проект показал, что связка беспилотников и искусственного интеллекта открывает новые возможности для мониторинга инфраструктуры. Рутинные и опасные операции, такие как проверка линий электропередачи на дефекты, могут выполняться автономными дронами, что повышает безопасность сотрудников и снижает затраты на эксплуатацию. Уже в текущей реализации система на базе YOLOv8 и OpenCV способна эффективно выявлять провисания проводов, тем самым предотвращая возможные аварии на ранней стадии. Данные сразу поступают в цифровую платформу, где могут быть проанализированы специалистами — это упрощает принятие решений о ремонтных работах и обслуживании сети.
Комментарии (13)
randomsimplenumber
20.05.2025 17:28Непонятно зачем роботу летать. Сделайте робота-ленивца, пусть неспешно ползет по проводам и изоляторам и измеряет чего ему надо.
man55
20.05.2025 17:28Взгляните, как устроено крепление провода к изолятору.
randomsimplenumber
20.05.2025 17:28У ленивца лапы достаточно длинные, чтобы переступить через крепление, если что.
Хотя эта штука должна обладать фантастический надёжностью - лазить по проводам лет 10 без обслуживания. Вычеркиваем ;)
man55
20.05.2025 17:28Это не всегда и не совсем так.
randomsimplenumber
20.05.2025 17:28хотите сказать, тележка, перебирающая хваталками по проводу, не перелезет?
elfrog
20.05.2025 17:28А как быть с возможностью междуфазных КЗ, при пролете дрона?
firehacker
20.05.2025 17:28Расстояние между фазами на ВЛ представляете?
Вот для примера опора типа У110-3:
Это всего лишь 110-ка. На 330, 500, 750 кВ (где двухцепные ВЛ чрезвычайно редки) все ещё больше.
Нужен не дрон, а небольшой вертолёт, чтобы устроить межфазное.
maikuss
Интересно, а можно ли ему на борт установить катушку для бесконтактной зарядки от ЛЭП? Чтобы он мог там и жить, домой не возвращаясь.
vesowoma
Не, на 50 Гц катушка не работает, там сильно она большой геометрически выйдет, что не хватит подъемной силы и сможет межфазное замыкание сделать. Токов наводки вокруг ЛЭП много, особенно 330 кВ и выше, но чтобы эффективно использовать эту энергию, нужна земля, а у дрона это проблема. Разве что садиться на саму опору (заземленную) и пытаться получить энергию от фазы, но тут нужно не катушку, и длинный провод вдоль фазного провода, но не лежащий на земле - так что это все фантастика пока.
firehacker
Не в ту степь вы думаете. Гуглите, что такое трансформатор тока и трансреактор.
holgw
А какой в этом смысл, если для запуска дрона оператор должен находиться в непосредственой близости? Т.е. если оперативный персонал в любом случае должен сесть в машину и приехать на местность, то принципиальной разницы нет -- придется ли ему везти дрон с собой или дрон его будет уже ждать на одной из опор.
Ну и возникает вопрос -- как будет дрон храниться? Под открытым небом он жить не сможет -- УФ, влажность, ветер. Значит нужен какой то мини-ангар. Т.е. придется крепить на опору какую то металлическую коробку. В которую придется каждый раз очень аккуратно этот дрон загонять, так чтобы винтами ничего не зацепить. Как-то слишком много проблем и ноль профита.
cheburen
смысл в том, что осмотр не только с низу, но и сверху-сбоку, автоматическая маркировка и занесение координат повреждений, автоматическое журналирование процесса, сохранение видеоархива осмотра. Проблема хранения дрона давно решена китайскими товарищами, у них есть системы осмотра дорог полностью автоматические, но это и не нужно, бригады всё равно осмотр проводят или по графику или после аварийных случаев с выездом на места.