Телескопы покупают здесь


A A A A Автор Тема: Делаю ИИ приложение для поиска комет и астероидов на фотографиях. Нужно мнение.  (Прочитано 1446 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mo

  • *****
  • Сообщений: 17 501
  • Благодарностей: 1073
  • Олег Милантьев - L71 Vedrus Observatory
  • Награды Призер конкурса астрофото
    • Сообщения от mo
モ - mo

Оффлайн БорисЕ

  • ****
  • Сообщений: 404
  • Благодарностей: 393
  • Astromania
    • Instagram: astromania_info
    • Сообщения от БорисЕ
    • Astromania
Да, plain python было бы интересно
А нет ли планов выпуска версии под Linux? У меня в обсерватории есть машинка на Debian со старенькой NV Tesla M40.

Tensorflow использую в перловой YOLO для AllSky и CCTV задач.

Было бы интересно пропускать все лайты хостела через эту поисковую программу.
Да, python скрипты было бы вообще интересно!
Удаленная обсерватория в Краснодарском крае: Newton320/4.5|EQ8|QHY600m|ASAх0.95 3"|Ivan7enych FW/OAG|SX Lodestar X2|Baader LRGBHaOiiiSii 2"

А также: FSQ106|HEQ5|Atik383Lm|AtikEWF2|Baader LRGBHaOiiiSii 36|ASI120mm|MicroTouch, STF Mirage 8|EQ6|QHY5III462c, SW100+Coronado PST, AstroTrac TT320X|Canon 450Da, SW Retrac 12" SynScan, Canon IS 15x50 и др.

Оффлайн crypter

  • ***
  • Сообщений: 100
  • Благодарностей: 10
    • Сообщения от crypter
Цитата
А нет ли планов выпуска версии под Linux?
+1
Цитата
Фиты бы.... таки стандарт же.
+1

Оффлайн N0R1SАвтор темы

  • **
  • Сообщений: 82
  • Благодарностей: 110
  • Мне нравится этот форум!
    • Сообщения от N0R1S
А нет ли планов выпуска версии под Linux?
Мой код написан на Python, полагаю выпуск standalone версии не должен быть сложным, надо только машину с соответствующей осью.

У меня в обсерватории есть машинка на Debian со старенькой NV Tesla M40.
Текущую версию выпустил с CPU версией tensorflow, так как хотелось выдать что-то что можно скачать, распаковать и запустить, без плясок с бубном вокруг CUDA (обучаю то модель я таки на GPU, часов 5 потратил на настройку, хотя это было в первый раз)

Tensorflow использую в перловой YOLO
Yolo знаю, даже рассматривал возможность приспособить её сюда, но показалось, что не про то сетка.

Было бы интересно пропускать все лайты хостела через эту поисковую программу.
Уххх, было бы круто! Постараюсь помочь с этой идеей.

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

Фиты бы.... таки стандарт же.
Да, стандарт, но решать решённую задачу выравнивания по звёздам не хотелось, поэтому взял XISF как результат промежуточной работы Pix'ы для начала. Если откалибровать и выровнять FITS'ы, то тоже можно сделать и их поддержку.

А вообще очень рад, что появился отклик, значит, будем что-то делать =)

Оффлайн mo

  • *****
  • Сообщений: 17 501
  • Благодарностей: 1073
  • Олег Милантьев - L71 Vedrus Observatory
  • Награды Призер конкурса астрофото
    • Сообщения от mo
А вообще очень рад, что появился отклик, значит, будем что-то делать =)
Соглашусь, что это главное. Остальное приложится!
モ - mo

Оффлайн mo

  • *****
  • Сообщений: 17 501
  • Благодарностей: 1073
  • Олег Милантьев - L71 Vedrus Observatory
  • Награды Призер конкурса астрофото
    • Сообщения от mo
Да, стандарт, но решать решённую задачу выравнивания по звёздам не хотелось, поэтому взял XISF как результат промежуточной работы Pix'ы для начала. Если откалибровать и выровнять FITS'ы, то тоже можно сделать и их поддержку.
На питоне особой разницы получения картинки фит / xisf нет, мне кажется. Массив там и там ... https://github.com/sergio-dr/xisf/blob/main/example/xisf2fits.py

Кому-то xisf окажется удобней. Кому-то fit. Именно с xisf в питоне не общался, но выглядит не сложно.

Yolo знаю, даже рассматривал возможность приспособить её сюда, но показалось, что не про то сетка.

Я ошибся, написав "перловый" tensorflow. Питоний, конечно.
По применению, конечно же, тебе виднее в рамках решаемой тобой задачи.

Текущую версию выпустил с CPU версией tensorflow, так как хотелось выдать что-то что можно скачать, распаковать и запустить, без плясок с бубном вокруг CUDA (обучаю то модель я таки на GPU, часов 5 потратил на настройку, хотя это было в первый раз)

Есть такое дело :)
На linux эту теслу я тоже не сразу запустил.

Мой код написан на Python, полагаю выпуск standalone версии не должен быть сложным, надо только машину с соответствующей осью.

Под решение задачи классификации с YOLO я собрал docker-контейнер (пока тоже CPU-only). Теперь он работает на любой операционке на x64 / arm (7, 8 ) архитектурах.

В общем, интересно попробовать! Удачи проекту и спасибо автору.
モ - mo

Оффлайн N0R1SАвтор темы

  • **
  • Сообщений: 82
  • Благодарностей: 110
  • Мне нравится этот форум!
    • Сообщения от N0R1S
На питоне особой разницы получения картинки фит / xisf нет, мне кажется.
Да, уже посмотрел мельком документацию на astropy.io.fits, будет просто сделать работу либо с fits, либо с xisf. Думаю, завтра-послезавтра выкачу версию с поддержкой fits'ов.

Оффлайн jaker

  • *****
  • Сообщений: 1 467
  • Благодарностей: 232
  • Андрей
    • Сообщения от jaker
вот инструкция, как к пиксе прикрутить аннотатор астеройдов:
Если у кого есть скаченные там файлы с эфемеридами астероидов,можно их выложить на Яндекс или Google облако? В свое время не скачал, а доступа больше нет
Немного фоток: http://www.flickr.com/photos/jakerbe

Оффлайн N0R1SАвтор темы

  • **
  • Сообщений: 82
  • Благодарностей: 110
  • Мне нравится этот форум!
    • Сообщения от N0R1S
Появилась новая версия. v0.1.5

Windows: CelestialSurveyor_win_v0.1.5.zip: https://disk.yandex.com/d/bNxy_8Z5VFkINg
Debian: CelestialSurveyor_deb_v0.1.5.tar.gz: https://disk.yandex.com/d/c_NODMeBBWK9iw

Изменения:
- Linux сборка.
+1
На linux
Теперь есть и linux сборка собрана на debian, полагаю, будет работать и на Ubuntu, может и на других, но тестировалась именно на debian.
Если при запуске будет ругаться так:
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
То поможет установка это либы с любым пакетом, где она есть, например
apt install libgl1-mesa-glx

-Поддержка fits.
+1
Фиты бы.... таки стандарт же.
Теперь должно работать с xisf так и c fit(s) стандартом, только не вперемешку. Понимаются файлы с расширениями .xisf, .fits, .fit, и комбинации с большими символами.

-Оптимизирована загрузка снимков, теперь не происходит бёрста использования RAM в конце загрузки.

Текущие проблемы и граничения:
- Fits'ы грузятся дольше, чем xisf'ы в 1 процесс/тред, тут можно оптимизировать
- По-прежнему нужно много оперативки из расчёта 4bytes/pixel.
- Нет UI.
- Модель реагирует на "Всё подряд" при малом количестве кадров, не обучалась в таком сценарии.
- По-прежнему на вход должны идти откалиброванные, выравненные по звёздам кадры без смазов и ошибок гидирования в процессе экспозиции.

Благодарность @mo и @jaker за тестирование и отлов критических проблем.


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

Оффлайн N0R1SАвтор темы

  • **
  • Сообщений: 82
  • Благодарностей: 110
  • Мне нравится этот форум!
    • Сообщения от N0R1S
Долго-долго не было вестей в этой теме, но работы велись и тула дожила до беты (как я думаю).

Ссылки:
Windows: https://disk.yandex.com/d/dHb3j54xcWizTw
Debian 12: https://disk.yandex.com/d/UUd8OOkclWzqew
Ubuntu 22.04 LTS: https://disk.yandex.com/d/cchAJ6UaLQxGTg

Что нового:
- Графический интерфейс в пару с CLI.
- Возможность скармливать сырые файлы сразу после съемки (без выравнивания по звёздам и калибровки, всё это произойдёт внутри тулы)
- Новая модель, которая довольно точно находит всё о чём я знаю на моих снимках, то что она не видела при обучении. Проверим, что найдёт у вас?

Дисклеймер: есть еще много над чем поработать, улучшить и починить, но мне надо было на чём то остановиться и передохнуть.

Как пользоваться графическим интерфейсом.
При запуске появится такое окошко


Калибровка.
Если Вы собираетесь поискать астероиды или кометы на сырых снимках, то крайне рекомендуется выбрать папку, где расположены свежие Дарки, дабы минимизировать влияния битых пикселей на результат, а оно может быть в зависимости насколько случайным образом производились подвижки при съемке.
Далее: если есть Flat'ы и DarkFlat'ы/Bias'ы - можно выбрать папки с ними, тогда перед поиском все кадры будут полностью откалиброваны. Если одна из этих папок не указана - калибровка флэтами не случится.

Выбор Light'ов.
При нажатии на Add Files - выбираем лайт кадры fit(s) формата, которые отобразятся в списке по центру с тайм меткой и временем экспозиции. Можно добавлять в несколько заходов, из разных папок. Обязательно проверить, что время экспозиции у всех совпадает. Если нет - необходимо снять галку с тех, что мы не хотим использовать дальше.


Загрузка кадров.
Если все файлы добавлены - надо их загрузить и тут важно понять назначение галочек:
- Debayer - должна быть включённой, если вы используете цветную камеру
- Align images - должна быть включённой, если ранее не было произведено выравнивание, скажем в PixInsight.
- Non-linear - должна быть выключена кроме тех случаев, когда лайты почему то уже со стретчнутой гистограммой (опция нужна была мне на начальной фазе разработки)
Если загружаются сырые файлы, то все должно быть как на скриншоте выше. Жмем Load files. Пошла загрузка, её можно прервать. Если звёзд много на снимках, как иногда бывает в поле у RASA8 десятки тысяч звёзд - придётся набраться терпения.

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

Обработка
В случае выравнивания силами этой тулы рекомендуется использовать Secondary alignment 3x3 или 5x5, на ваше усмотрение, я обычно использую 3х3. Это значит, что каждое изображение будет разрезано на 9 частей, каждая часть будет выравниваться отдельно перед тем как уйти в нейронку. Это нужно потому что текущий алгоритм выравнивания делает это не слишком аккуратно на большом поле.
Выбрать папку, куда сложить результат, и всё, дальше можно жать Process. Ждать.


Результат
Когда поиск закончится - в выбранной папке для результата появится файл result.png на нём как и раньше - зелёные или жёлтые квадратики - те места, где нейронка нашла что-то движущееся с вероятностью сверху. Если вероятность >90% и <=95% - квадратик жёлтый, >95% - зелёный. Всё что меньше не показывается, там никогда ничего нет.
Красные квадратики с номером - номер гифки, которая лежит рядом.

При внимательном взгляде на результат видим 3 группы квадратиков с вероятностью 1.00 - именно так обычно выглядят астероиды. Остальное можно поизучать, но с бОльшей вероятностью там ничего нет.
Итак гифки с результата:
Гифка 2

Гифка 4

Гифка 12 (самый тусклый красавец)


Если вы собираетесь обрабатывать снимки тулой, которая сохраняет промежуточный результат после выравнивания по звёздам, то Alignment и Secondary Alignment делать не надо.
Если это PixInsight, то сделали сложение (я обычно использую WBPP скрипт) - в папке registered лежат XISF файлы пригодные к поиску. Тогда флэты, дарки, даркфлэты выбирать не надо, алайнить, делать debayer не надо, просто загружаем, отсеиваем плохие, если есть и отправляем в обработку.
Чтобы загрузить XISF - при выборе кадров справа снизу надо выбрать XISF вместо FITS.

Запуск из командной строки
Типичный запуск выглядит так:
CelestialSurveyor.exe -v -c -s .\Rosette\Light -o .\Rosette\ready -d -a --x_splits 3 --y_splits 3 --secondary_alignment --flat_folder .\Rosette\Flat\ --dark_flat_folder .\Rosette\DarkFlat --dark_folder .\Rosette\Dark
по ключам есть help (-h ключ, как обычно)

Ограничения
- Нет выбора эталонного кадра относительно которого будет выравнивание. Оно происходит по первому из выбранных лайтов.
- Нет выбора Дарков, Флэтов, даркфлэтов - берутся первые 10 из каждой папки, поэтому, если у вас дарки вперемешку для разных экспозиций - надо разложить их.
- Иногда модель реагирует на битые пиксели, оставшиеся после калибровки, поэтому желательо использовать свежие дарки.
- Работает довольно долго, особенно с богатыми звёздами полями.
- На превью отображается 8 бит градация серого. На превью не работает скролл вверх-вниз. Превью при смене кадра моргает.
- Временная метка берётся из заголовка без таймзоны (обычно там в UTC, поэтому не удивляемся расхождению времени на гифке с тем что вы снимали на часовой пояс)

Бонус
Полностью шарю весь набор данных по NGC 2237 из этого поста
https://disk.yandex.com/d/1hXNKN9NPtqJ6A
https://deepskyhosting.com/IV9Xtjc


P.S. Лично я очень доволен результатом. Да, есть помеченный мусор, но показать среди десятков тысяч звёзд несколько точек интереса, в которых есть все 3 объекта подходящих по звёздной величине, что есть в базах астеройдов - это прикольно. Я в восторге, но временно выдохся. буду рад отзывам.

Большая благодарность @AloneVoyager за неоценимую помощь в тестировании.
« Последнее редактирование: 23 Фев 2024 [13:51:05] от N0R1S »


Оффлайн Aldoshkin

  • ***
  • Сообщений: 118
  • Благодарностей: 26
  • Москва - Кассиопея
    • Сообщения от Aldoshkin
Добрый вечер!
Скачал по ссылке для Windows, распаковал на диск в папку C:\1\
Запускаю CelestialSurveyor.exe
Получаю ошибку.
Скриншоты приложил.
« Последнее редактирование: 24 Фев 2024 [22:11:38] от Aldoshkin »
Celestron Advanced VX 8" EdgeHD, TS-Optics Doublet SD Apo 72 mm f/6 - FPL53, SkyWatcher AllView mount, ZWO ASI MC533 Pro, Altair GPCAM2 IMX224 Color
мой астрофото блог http://aldoshkin.tilda.ws

Оффлайн N0R1SАвтор темы

  • **
  • Сообщений: 82
  • Благодарностей: 110
  • Мне нравится этот форум!
    • Сообщения от N0R1S
Запускаю CelestialSurveyor.exe
Получаю ошибку.
Доброго времени суток, спасибо за попытку! Я обязательно разберусь в причине. Приоритет наивысший.

Оффлайн Aldoshkin

  • ***
  • Сообщений: 118
  • Благодарностей: 26
  • Москва - Кассиопея
    • Сообщения от Aldoshkin
Проблема была в устаревшей модели процессора, которая не поддерживает инструкции AVX.
(AMD A6-3620). На Intel Core i3 все работает.
Спасибо за предоставленную информацию!
Celestron Advanced VX 8" EdgeHD, TS-Optics Doublet SD Apo 72 mm f/6 - FPL53, SkyWatcher AllView mount, ZWO ASI MC533 Pro, Altair GPCAM2 IMX224 Color
мой астрофото блог http://aldoshkin.tilda.ws

Оффлайн Aldoshkin

  • ***
  • Сообщений: 118
  • Благодарностей: 26
  • Москва - Кассиопея
    • Сообщения от Aldoshkin
Попробовал обработать свои дипскай серии за прошлый год.
Результат мне очень понравился! Великолепная работа!
ИИ оказался на высоте.

Наилучший результат был по серии от 16.09.2023 по М33.
Я взял 5 снимков fit с интервалом примерно 30 мин, выдержка 180 сек.
5 дарков, 5 флетов, даркфлеты не делал.

Нашлось 11 объектов.
Максимальный результат - 0.97 у 2 объекта, промелькнули 2 точки - не понятно , что это могло быть.
3 - 0.95 - очень слабый объект, но заметить можно.
4 - 0.99 - трудно понять, как будто что то есть чуть ниже центра, но в шумах теряется
5 - 0.95 - битый пиксель слева, очевидно
6 - 0.95 - тоже очень слабый объект в центре
8 - 0.95 - явно точка движется чуть ниже центра, похоже на астероид

Координаты 8 объекта (посмотрел по nova.astrometry.net)  Ra: 01h36m03s  Dec: +30:02:05
Время UTC 2023-09-16 19:30
Звездная величина - трудно сказать, ищу хороший звездный атлас.... Слабее 15m точно
Проверил объект 8 по каталогу MPChecker, похоже он науке пока не известен...

Результат работы программы скинул на Яндекс-диск, здесь не поместится:
https://disk.yandex.ru/d/v6nLU-JxFWqZ4A


Celestron Advanced VX 8" EdgeHD, TS-Optics Doublet SD Apo 72 mm f/6 - FPL53, SkyWatcher AllView mount, ZWO ASI MC533 Pro, Altair GPCAM2 IMX224 Color
мой астрофото блог http://aldoshkin.tilda.ws

Оффлайн Астровитянин

  • Первооткрыватель комет, астероидов, сверхновых звезд
  • *****
  • Сообщений: 1 186
  • Благодарностей: 192
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Астровитянин
    • Витебская астрономическая обсерватория
Просмотрел тему, сразу возник вопрос, прога может сама определять координаты найденных астероидов или это нужно делать в сторонних программах?
B42 <-> D00 <-> L96   300мм Ньютон f/5 + 0.95CC + ZWO294MMpro | 150мм Мак "Интес" |  25х100 бино.

Оффлайн N0R1SАвтор темы

  • **
  • Сообщений: 82
  • Благодарностей: 110
  • Мне нравится этот форум!
    • Сообщения от N0R1S
прога может сама определять координаты найденных астероидов или это нужно делать в сторонних программах?

Нужно делать в сторонних программах.

Оффлайн Астровитянин

  • Первооткрыватель комет, астероидов, сверхновых звезд
  • *****
  • Сообщений: 1 186
  • Благодарностей: 192
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Астровитянин
    • Витебская астрономическая обсерватория
С этого нужно начинать. Когда один два астера на снимке понятное дело не проблема проверить их координаты, хотя уверен далеко не каждый будет разбираться с этим. Но если площадка снята вблизи эклиптики и с хорошим проницанием их там может быть и 10 и 20...

Алгоритм должен быть следующий: plate solve, отождествление астероидов, определение координат астероидов на каждом кадре, верификация с базой MPC, создание списка отождествленных и неизвестных объектов и в идеале создание файла для отправки наблюдений. Тогда да, это приложение для поиска, а так это цацка для детей.
B42 <-> D00 <-> L96   300мм Ньютон f/5 + 0.95CC + ZWO294MMpro | 150мм Мак "Интес" |  25х100 бино.

Оффлайн Aldoshkin

  • ***
  • Сообщений: 118
  • Благодарностей: 26
  • Москва - Кассиопея
    • Сообщения от Aldoshkin
Так если программа все будет находить сама - люди не нужны будут... :)
Celestron Advanced VX 8" EdgeHD, TS-Optics Doublet SD Apo 72 mm f/6 - FPL53, SkyWatcher AllView mount, ZWO ASI MC533 Pro, Altair GPCAM2 IMX224 Color
мой астрофото блог http://aldoshkin.tilda.ws

Оффлайн N0R1SАвтор темы

  • **
  • Сообщений: 82
  • Благодарностей: 110
  • Мне нравится этот форум!
    • Сообщения от N0R1S
С этого нужно начинать.
Позвольте с Вами не согласиться, я начал с единственной уникальной вещи тут - обучения ИИ модели находить движение, и поменьше реагировать на артефакты. Всё остальное строится вокруг этого имеющимися модулями, никакого изобретательства, просто чтение документации и прикручивание всего на место.

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

Оффлайн Александр Иванов

  • *****
  • Сообщений: 14 709
  • Благодарностей: 608
  • МРС - C40, МРС - D04
    • Skype - ial1963
    • Сообщения от Александр Иванов
    • НАА
С этого нужно начинать.
Позвольте с Вами не согласиться, я начал с единственной уникальной вещи тут - обучения ИИ модели находить движение, и поменьше реагировать на артефакты. Всё остальное строится вокруг этого имеющимися модулями, никакого изобретательства, просто чтение документации и прикручивание всего на место.

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

Работа интересная, нужная, желаю успехов. Но как отметил коллега выше, это пока набор знаний.
Сейчас есть софт который через пару минут обработки сотни изображений дает все возможные варианты объектов в поле с привязкой к базам. И второе, чуть дольше (до часа максимум) движущиеся объекты, с привязкой к базам после обнаружения.
К этому и нужно стремиться. Еще раз успехов!!!
Храни Вас Господь!