Стабилизация полета без гироскопов или ИК-сенсоров

Хвост_Слона

Представляю Вам наши первые практические результаты работы системы распознавания образов применительно к FPV. Программа (автор Алексей Максимов) умеет в реальном времени обрабатывать видеопоток с курсовой камеры и вычислять крен и тангаж для стабилизации положения. Вот прогон программы по заранее записаным роликам. [video=youtube;zy8dT9TeVrk]horizon1.ogv"]YouTube- horizon1.ogv[/url] и [url="www.youtube.com/watch?v=zy8dT9TeVrk[/video] В перспективе планируется и 3D-расчет окружения.

Более подробно о работе здесь www.1slon.ru/video_hor.htm

Danzi

Мне кажется, что на земле обрабатывать и посылать на модель сгнал нет смысла. Пилот и так видит как летит модель… А вот при потере сиглала выровнять модель - это бы не помешало. И компьютеры в самолет пихать, хоть и маленькие, не очень хочется… Тут на оборот хочется уменьшить вес и стоимость… Разве что эта разработка для большого БПЛА, тогда может и целесообразно.

denisry

Забавно, но какая вычислительная мощность для этого нужна? сможете ли упаковать лоигку в Альтмегу? Если в кадре только небо, то как узнать линию горизонта? Если вы летаете ночью и видите только огни, она определить? Мне кажется её надо рассматривать как дополнение к гироскопам и ИК - сенсорам

milancrash

Стремно все это. Какой смысл в этом я так и не понял 😦 если стоит автопилот, а тут еще нужен комп. Или это планируется как замена автопилота?? Я не думаю что данное устройство сможет заменить автопилот.

baychi

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

milancrash

Честно сказать лично я не вижу будущего у данного устройства, т.к 3D-расчет окружения это будет не очень дешёвый вариант и что не мало важно только в будни и в хорошую погоду. Тут получается что это некое дополнения к автопилоту, вот только зачем такое дополнение. А что будет происходить если видео сигнал теряется на 0,5-3 секунды а в этот момент программа делала маневр (а такое бывает очень часто)??

fmkit
denisry:

Забавно, но какая вычислительная мощность для этого нужна? сможете ли упаковать лоигку в Альтмегу? Если в кадре только небо, то как узнать линию горизонта? Если вы летаете ночью и видите только огни, она определить? Мне кажется её надо рассматривать как дополнение к гироскопам и ИК - сенсорам

у меня есть проектик на 8-ми ногом CY8C24123A,
4MIPS 8bit контроллер вполне справляется с синхронизацией и сравнением отдельных строк
в моем случае требовалось засекать движение и вести запись “когда надо”

я так понимаю с 2 или 3 камерами качество стабилизации вырастет на порядки

Панкратов_Сергей

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

Brandvik

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

poldeco

то что это будет работать и при тумане и при облачности это ясно, была бы граница цветовая…
Brandvik - а там можно уже и отримировать ее для тангажа… и потом система показана на роликах у которых уровень горизонта убегает за экран, задача системы в реалтайме как раз что бы горизонт был почти всегда в “экране” при стабилизации.
интересно как будет работать при снежном покрове и облачности, где не будет четкой границы.
весь вопрос в надежности видео канала, на время пока эта штука на борт не перенесена…
вопрос разработчику. на каком компе производились вычисления, и расчет производился на “лету”? и еще. в левом верхнем углу FPS как расчет делали? я это к чему… частота кадров видеонабора, ну пусть к примеру будет 25 кадров в сек, у вас FPS в районе 15… идет пропуск кадров из за нехватки мощности или что то другое? и делаете ли вы межкадровое сравнение… (например как в некоторых кодеках видеосжатия)?

blade
Панкратов_Сергей:

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

Назад в будущее: берём оптический автопилот за 50 $ , добавляем ко всем его недостаткам: неработе в сумерки, против солнца, над бликующей водой, зимой…, цену, умноженную на 100 (камера +канал связи дуплексный+ компьютер в "полевом "исполнении), делим надёжность на 10 и- вуаля, (как говаривает Тим) получаем никому не нужное, но очень крутое изделие 😃
Не обижайтесь- ничего личного, просто всё опробовано на собственной шкуре 😦

Хвост_Слона

Наверное, я не совсем точно назвал данную тему. Вероятно, ее стоило назвать “Технологии распознавания образов в реальном времени для FPV”. То, что вы видите на роликах - первые шаги нашей реалтаймовой обработки, и конечно была выбрана самая простая задача. Никаких коммерческих устройств пока не планируется.
Но много интересного таит в себе возможность иметь на борту мощный вычислитель со стандартным UNIX-ом.

blade:

просто всё опробовано на собственной шкуре 😦

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

blade:

вопрос разработчику. на каком компе производились вычисления, и расчет производился на “лету”? и еще. в левом верхнем углу FPS как расчет делали? я это к чему… частота кадров видеонабора, ну пусть к примеру будет 25 кадров в сек, у вас FPS в районе 15… идет пропуск кадров из за нехватки мощности или что то другое? и делаете ли вы межкадровое сравнение… (например как в некоторых кодеках видеосжатия)?

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

Exception13
Хвост_Слона:

Представляю Вам наши первые практические результаты работы системы распознавания образов применительно к FPV

А можно поподробнее про используемый алгоритм ?
Я полагаю что стадии обработки изображения следующие:

  1. RGB -> grayscale
  2. grayscale -> monochrome (thresholding ?)
  3. математическая морфология (оконтуривание)
  4. анализ геометрии полученных объектов, рассчет их протяженности, соответственно самый узкий и протяженный объект - это и есть линия горизонта.
  5. Получаем уравнение прямой по методу наименьших квадратов (или используем преобразование Хафа) и берем оттудова угол.

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

blade
Хвост_Слона:

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

Очевидно, я несколько туманно выразился: я не пытался применить обработку видеосигнала для стабилизации, поскольку видел работу гораздо более простых (по начальным условиям) программ например- распознавание лица в толпе, которые “сбоят” в казалось бы очевидных ситуациях.
Те вычислительные ресурсы, которые для этого требуются- невозможно иметь на борту самолёта “модельных” размеров.
Да и не нужно.
А сам принцип выделения линии горизонта по картинке- я описал его недостатки на примере автопилота АР2300 (“Термик”, Красногорск), который потом делал Graupner а ещё более потом- Futaba. 😦
У всех эти проблемы были одинаковы.
Т.е. оптический (в видимом диапазоне) “горизонт”- делать можно только для интереса.
На практике он - не работает 😦

smalltim
Exception13:

Я полагаю что стадии обработки изображения следующие:

  1. RGB -> grayscale
  2. grayscale -> monochrome (thresholding ?)
  3. математическая морфология (оконтуривание)
  4. анализ геометрии полученных объектов, рассчет их протяженности, соответственно самый узкий и протяженный объект - это и есть линия горизонта.
  5. Получаем уравнение прямой по методу наименьших квадратов (или используем преобразование Хафа) и берем оттудова угол.

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

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

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

Вячеслав_Старухин

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

Что касается самой обработки видео, то я лет 15 назад в НТЦ Модуль занимался распознаванием движущихся целей на движущимся фоне на бортовом многопроцессорном компьютере с распределённой памятью для McDonnell Douglas. Для современного бортового оборудования это тем более вполне возможно.

Exception13
smalltim:

Если это, действительно, так, то ой. Полет над морем, над руслом реки, длинным ангаром, микрорайоном с длинными многоэтажкками, рядом с высокой одинокой многоэтажкой - ой.

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

smalltim:

На мой ламерский взгляд, математика там не такая уж неподъемная.

Для одной камеры - да, задача вполне подъемная, нахождение feature points - активно используется в glyph tracking’e, другая адская задача - отфильтровать кучу полученных точек и сопоставить с трехмерным изображением реальной местности - это уже из серии matrix has you, другими словами - вынос мозга.

smalltim:

судя по вашим заявлениям, вы с этим можете справиться.

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

K_Viktor
Exception13:

А можно поподробнее про используемый алгоритм ?
Вообще, очень заинтересовал меня проект, если интересно, у меня есть кое какие наработки в области операций автоматического threshold’инга и модуль для быстрой работы с бинарными изображениями (мат. морфология и рассчет параметров объектов). Могу поделиться, может повезет, и будет работать в реал тайм 😃

Если не секрет - из-за чего интерес к этой системе (определение горизонта по камере)?

Просто, я такую систему на моделях обкатывал еще в 2005 году… Программа написана на Delphi, для захвата видео используется готовый компонент VideoGrabber. Видео заводится через tv-тюнер AverMedia, который втыкается в PC-CARD разъем. Разрешение ввода 320х240.
Все это крутилось на ноутбуке IBM thinkpad 600e (400мгц проц) под 2000 виндой в реалтайме.

Соответственно, на авиамодели стояла мелкая cmos камера со 100мвт передатчиком, на земле - приемник и ноут. На ноуте писался в реалтайме лог файл со значениями крен/тангаж.

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

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

Другое дело - то что придумали в Транзасе. Теоретически, можно корректировать бортовую ИНС на мемсах при помощи данных с той проги.
Тут уже не жалко озадачиться установкой мощного бортового компьютера - так как потенциально это даст возможность летать без GPS, а под эту тему есть “правильные” клиенты (военные тут не причем 😃 )…