Чукча не писатель, чукча программист, поэтому пост написан как есть.
Давно лелеял мысль познакомиться с ИИ технологиями, читал, узнавал, а потом внезапно пришла мысль, а почему бы не сделать пет-проект связанный с моим хобби?
Вводные: у меня есть куча сырых фотографии, некоторые объекты снимались по-нескольку ночей, почему бы не попытаться на них найти не только звёзды, а еще и малые тела солнечной системы?
Да, в PixInsight есть скрипт AnnotateImage, скачав каталоги - можно разметить известные астеройды, и если какой-нибудь достаточно яркий, то он будет виден. Но! мы же не ищем лёгких путей и есть мечта найти что-то новенькое, тогда каталоги нам не в помощь. Отсматривать все снимки (или даже разницы) в поисках перемещающейся точки лень и глаза жалко.
ИИ: Почитав, погуглив, собрал свою модель, написал генератор обучающего датасета, и понеслось обучение. Каково было счастье, когда подсунул фотографии с RASA8 телескопа, и оно нашло настоящий астероид! Попробовал разных архитектур сетей и пришёл к той, что пока работает лучше всего. Отмечает она не 100% точно, иногда наблюдаются ложные срабатывания, но чем меньше артефактов на сабах- тем лучше.
На тех сабах, что у меня есть с RASA8 оно смогло найти несколько десятков астероидов (все пробиваются по каталогу) и переменную звезду в туманности Ориона (V* MM Ori).
Тему создал, чтобы поделиться альфа версией и получить фидбэк, а может, кто-нибудь найдет что-то интересное=)
Как пользоваться:
1) Скачать архив. Вирусов быть не должно, кто первый найдёт - не стесняйтесь кидаться помидорами.
https://drive.google.com/file/d/1q-IgCL0GMzxk1pqeS0BxHCWzPR-RGqUV/view?usp=drive_link2) Распаковать. Размер приличный, так как туда включены все зависимости, в частности довольно увесистый tensorflow.
3) Приложение пока работает из командной строки и не имеет UI (альфа же). Запустить его
CelestialSurveyor.exe -s <source_folder> -o <output_folder>Есть help, но тут поясню следующее:
В качестве source_folder надо указать путь до папки с отклиброванными и выровненными по звёздам снимками, проще говоря папка registred с промежуточными файлами, которые получаются в процессе работы WBPP в PixInsight. В текущем виде приложение понимает
ТОЛЬКО XISF формат. Снимки могут быть как цветные, так и монохромные. ВАЖНО: убедиться, что все снимки ориентированы одинаково, нет перевернутых, в старых сетах у меня такие есть. Так же важно отбраковать откровенно плохие снимки смазанные, с ореолами от облаков.
В качестве output_folder указывается папка куда сложить результат, если её нет, то она будет создана.
Ключ -n надо указать, если по каким то причинам снимки в source_folder не в linear state, если были стречнуты, например, с линейными снимками его указывать не надо.
Пример работы:
CelestialSurveyor>CelestialSurveyor.exe -s C:\Users\bsolomin\Astro\NGC_1333_RASA\cropped -o C:\Users\bsolomin\Astro\ready11
WARNING:tensorflow:AutoGraph is not available in this environment: functions lack code information. This is typical of some environments like the interactive Python shell. See
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/autograph/g3doc/reference/limitations.md#access-to-source-code for more information.
WARNING:tensorflow:From keras\src\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead.
Loading images...
100%|██████████████████████████████████████████████████████████████████████████████████| 24/24 [00:08<00:00, 2.95it/s]
Raw image data loaded:
SHAPE: [(24, 3237, 4903)]
Used RAM: 1453 Mb
Processing object number 1 of 1
100%|████████████████████████████████████████████████████████████████████████████████| 190/190 [01:36<00:00, 1.98it/s]
На варнинги внимания можно не обращать, их кидает tensorflow, причём превентивно, попытки их отключить пока не увенчались успехом.
В output_folder должен появиться файлик results0.png, каждый пиксель которого есть максимум от всех изображений в input_folder после autostretch. И если что-то нашлось - на нём появятся пометки куда смотреть. Как пример мой самый плодовитый объект, снятый на RASA8 сабами по 5 минут, видны объекты до 18,5 звездной величины.
Зелёными квадратиками отмечены найденные участки. Красными с номерами - построенные гифки для удобного просмотра, которые так же находятся в output_folder.
Например гифка номер 7.
Пример этого сета:
https://drive.google.com/file/d/1vPQ9mERABDkdkO9fDGdhAWmLdITaNQlN/view?usp=drive_linkВот и всё... Дайте знать в случае проблем.
Ах да, вот инструкция, как к пиксе прикрутить аннотатор астеройдов:
http://www.youtube.com/watch?v=n2zI3aX0iSA#