Comments 15
Привет Алексей, эта задача конечно имеет прикладное значение, более того занимаются этим практически с самого начала использования телевизионных трубок в астрономии, т.е задолго до пзс. В расширенном виде также ставится задача идентификации звездного узора с каталогом опорных звезд. Методы насколько знаю в основном корреляционные с использованием метода наименьших квадратов.
Приветствую, Виктор. Согласен, задача сама по себе далеко не новая. И инструменты для её решения существуют, я сам пользовался программами IRIS, DeepSkyStacker, Sequator. Предложенный в этой статье алгоритм показывает себя в сравнении с ними весьма хорошо, не уступает им в скорости и качестве, а кое-где и выигрывает. Подробнее расскажу об этом в следующей статье.
еще один аспект - поиск новых астероидов и пр., если новый кадр совпадает с предыдущим за исключением одного объекта - есть шанс что объект движется и можно построить траекторию, далее сравнить параметры с каталогом известных астероидов, и возможно предотвратить катастрофу типа как в известном фильме :)
https://www.imdb.com/title/tt0120591/
ps
заметим это было реализовано десятки лет назад в действующих системах с использованием высокоскоростных dsp, в mit этим занимались в 70х с использованием pdp 11/70
Ищем звёзды
Не проще ли использовать готовые библиотеки компьютерного зрения? То же OpenCV, например.
Алгоритм занимает несколько десятков строк, при этом работает достаточно быстро и точно. Не думаю, что разумно тянуть такую большую зависимость для этой задачи, которая гораздо уже, чем задачи компьютерного зрения в общем случае.
Если есть для чего экономить память то - да. Ели же нет, то на самом деле комп. зрение этим и занимается... в общем случае. Есть даже, практически как у вас, задача в исследования газовых потоков, где необходимо искать пылевые частицы на фото. Есть уже готовые пакеты для этого, например PIV.
Спасибо за подсказку вам и@Jury_78,изучу библиотеку.
Я в своей программе разбивал звёзды на треугольники и искал одинаковые треугольники в опорном и текущем кадре. Алгоритм работает очень быстро, в том числе на одноплатниках типа Raspberry (или Orange) Pi (проверял там его специально, т.к. хочу реализовать live stacking)
Тема dark, flat и bias не раскрыта.
Фотографии не совпадают из-за вращения земли, такое же вращение происходит во время съёмки панорамы - а съёмка панорамы хорошо изучена и для неё существует много готовых библиотек. В целом поиск параметров совмещения кадров там делается примерно так же, как у вас, но никакой триангуляции там не делается, вместо этого вычисляются характеристики объектива (в идеале их можно посчитать заранее), проективная проекция переводится в цилиндрическую, после чего фотографии уже можно усреднять и избавляться от шума попиксельно. Думаю такой подход сильно повысит качество и даст возможность детектировать движущиеся объекты
можно на CUDA сделать алгоритмом Map, грубо говоря вместо цикла перебора каждого пикселя, запускается по одному треду на пиксель, и фото считается за O(1)
Астрофото: совмещаем одиночные кадры