Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Сориентироваться по звездам. Помогите придумать алгоритм (https://javascript.ru/forum/offtopic/84571-sorientirovatsya-po-zvezdam-pomogite-pridumat-algoritm.html)

rgl 17.10.2022 16:53

Сориентироваться по звездам. Помогите придумать алгоритм
 
Вопрос не имеет отношения к JavaScript, язык тут не важен.
Есть такая задача - имеется фотография кусочка звездного неба (размер примерно 30 градусов, на которой видны несколько звезд). Нужно программно совместить это изображение с картой звездного неба. Пусть для простоты даже известно примерно что это за участок.
Даже не представляю с какой стороны к задаче подходить. Перебор - невообразимо долго (три угла надо подбирать, склонение, прямое восходжение, и где на картинке север). А как еще? Ведь наверняка эту задачу уже решали, вот только найти ничего не могу.
Буду признателен за любые идеи, или "наводки" на литературу.

MallSerg 18.10.2022 07:43

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

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

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

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

Хотя если делать по уму метрик стоит выделить как можно больше и использовать их совместно это позволит многократно увеличить точность и скорость алгоритма.

rgl 18.10.2022 15:05

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

rgl 18.10.2022 15:10

Как вариант, можно смотреть на расстояния, лишняя или пропущенная звезда тут не будет "портить" другие звезды.

рони 18.10.2022 15:12

Цитата:

Сообщение от rgl
почему у меня нет прав нажать на плюсик?

возможно вы уже плюсовали данный ник, после этого надо проплюсовать других. как-то так)))

MallSerg 18.10.2022 16:30

В этом весь и фокус что нужно отбирать звезды по яркости т.е. самые яркие. Тогда станет не так важно качество снимков или искажение линзой атмосферы. Думаю достаточно будет подготовить 500 - 10 000 звезд со снятой метрикой и можно подготовить несколько метрик для каждой звезды ориентируясь на пяток ближайших ярких звезд для каждой звезды яркие звезды станут радиусом для алгоритма подготовки метрики. И уже по подготовленной базе полученных метрик искать метрику полученную из снимка.

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

MallSerg 18.10.2022 17:14

Цитата:

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

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

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

Что гораздо сложнее хранения пятка углов к ярким звездам.


Часовой пояс GMT +3, время: 00:28.