Всем привет, давно не виделись! Я за последний год наваял свою программку для обработки дипская, буду благодарен за отзвывы :krasneet:2
https://github.com/astrowander/acmb
Графического интерфейса нет (пока), работает из командной строки. Инструкции по сборке и запуску есть в readme, если непонятно что-то спрашивайте, объясню (и допишу в readme :dd:) Приветствуются отзывы и багрепорты.
Также приведу пару результатов работы проги, никакая другая постобоработка не применялась специально
https://drive.google.com/drive/folders/1l-_9N4-FFcPjHbkC4LQwqxXQXQklUB7B?usp=sharing
Дело хорошее, раз уж автор тут как тут, вот прям отдельная тема тебе)
Пока потыкал буквально чуть-чуть и по ленивому, поэтому пока два вопроса: 1) no aligner - это он не нашел звезд или корреляции между ними на разных снимках? 2) делал стэк дарков без выравнивания из DNG с выходом в TIFF. Получилась цветная дебаеризированная картинка. Потому что DNG? Или так надо? Как делать мастердарк тогда?
Еще хочется минимального индикатора прогресса какого-нибудь)
1) ты из консоли вызывал или из кода? Вообще похоже, что не запустилось выравнивание, а результат его нужен
2) Я пробовал стекать dng, получается норм. Пришли серии по обоим пунктам, посмотрю)
Цитата: Артём от 04 октября 2022, 14:09:092) делал стэк дарков без выравнивания из DNG с выходом в TIFF. Получилась цветная дебаеризированная картинка.
А, я, кажется. понял. При открытии RAW у меня всегда делается дебайеризация, и вычитается цветная картинка из цветной
Цитата: astrowander от 04 октября 2022, 14:53:59из консоли
Да
Цитата: astrowander от 04 октября 2022, 15:03:27При открытии RAW у меня всегда делается дебайеризация, и вычитается цветная картинка из цветной
Вот это надо потом, после дарков-флэтов делать
Окей, займусь этим, как будет время:)
Цитата: astrowander от 04 октября 2022, 15:59:30Вот это надо потом, после дарков-флэтов делать
Выпустил новую версию, где именно так и делается.
https://github.com/astrowander/acmb/releases/tag/v0.0.2.1
Команда, чтобы приготовить мастердарк:
acmb --input "C:/Images/Darks/ISO6400_3.2s/" --stack darks --output "C:/Images/Darks/ISO6400_3.2s/masterdark.pgm"
Чтобы вычесть мастердарк из всех лайтов, сложить лайты и сохранить результат:
acmb --input "C:/Images/Sagittarius_ISO6400_3.2s/" --subtract "C:/Images/Darks/ISO6400_3.2s/masterdark.pgm" --stack lights --output "C:/Images/output/sagittarius_new.tif"
Минутка сравнительного анализа. Проверил, как справятся с одной и той же серией кадров DeepSkyStacker (v4.2.6), Sequator (v1.6.0 и acmb (v0.0.2.1).
Снимал серию в Киргизии в июне этого года, рядом с тем местом, где был в 2009 году, кстати :dd:.
Параметры кадров: Canon 6D, размеры 5472x3648, фокус 24mm, выдержка 10 sec, ISO 3200, неподвижный штатив, 50 кадров в серии, калибровки нет.
В DSS выставил настройки стекинга аналогичные тем, что используются в acmb: Kappa-Sigma clipping (kappa = 3, iterations = 1), Bisquared alignment, threshold 25%
В Sequator поставил галочку Reduce distortion effects и Auto Brightness
Процессор компьютера intel i7-3770k, 3.4 ГГц, доступно 8 потоков.
DSS справился с задачей за 6 мин 55 секунд, Sequator за 2 мин 14 сек, acmb за 2 мин 33 сек. Немного проигрывает в скорости Sequator'у и значительно выигрывает у dss. Посмотрим теперь на результаты. Полные файлы без какого-либо постпроцессинга, то что выдали сами программы (только у dss поднял яркость немного), по ссылке:
https://drive.google.com/drive/folders/1VrbAOp_WSRm9-gNNKwgI66NWKG55n_Ux?usp=sharing
К посту прикладываю 100% кропы Млечного пути около центра кадра. Sequator хоть и немного быстрее работает, но у него вижу проблемы с выравниванием, звезды значительно разъехались. acmb не справился с выравниванием звёзд только непосредственно за опорой ЛЭП. Конечно, это только одна серия, на других все, возможно, будет по-другому. Но acmb уже вполне себе на уровне с аналогами.
UPD. Прогнал ту же серию через линуксовую версию acmb. Результат тот же, а время работы уже 2 мин 10 сек. Возможно, если под виндой компилировать clang'ом вместо msvc, скорость тоже возрастёт. В целом, простор для оптимизации, ещё, думаю, есть.
Выпустил новую версию acmb v0.0.2.16, с поддержкой флэтов.
https://github.com/astrowander/acmb/releases/tag/v0.0.2.16
Команда, чтобы приготовить мастерфлэт:
acmb --input "C:/Images/Flats/" --subtract "C:/Images/DarkFlats/masterdarkflat.tif" --subtract --stack flat --output "C:/Images/Flats/masterflat.tif"
Чтобы вычесть мастердарк из всех лайтов, поделить их на мастерфлэт, сложить лайты и сохранить результат:
acmb --input "C:/Images/Sagittarius_ISO6400_3.2s/" --subtract "C:/Images/Darks/ISO6400_3.2s/masterdark.pgm" --divide "C:/Images/Flats/masterflat.tif" --stack light --output "C:/Images/output/sagittarius_new.tif"
Небольшая ремарка, у параметров ключа "--stack" убраны окончания. Теперь надо писать --stack dark вместо --stack darks, и т. д.
Также у --divide, который делит картинку на мастерфлэт есть опциональный параметр intensity, можно задать от 0 до 100, по дефолту равен 100. Если сделать его меньше, то эффект от деления будет ослаблен. Добавил его, потому что на некоторых моих примерах со стопроцентной интенсивностью края кадра становятся слишком светлыми.
--divide "C:/Images/Flats/masterflat.tif" [intensity = [0..100]
Опубликована новая версия v0.0.3.5, пока как pre-release.
Что нового: исправлены несколько багов. В том числе тот, где при большом числе входных файлов (больше 50) выскакивала ошибка 'no aligner'. сам на него не наткнулся, пока не снял достаточно длинную серию. Добавлена возможность сресайзить картинку к любому произвольному размеру. Чтобы это сделать, нужно добавить к команде ключ "--resize", после него указать желаемые ширину и высоту. В примере это 1920x1080/
--resize 1920 1080
https://github.com/astrowander/acmb/releases/tag/v0.0.3.5
надо уже враппер с гуями, чтобы популяризировать среди несклонного к скриптованию населения)
Да, это уже в планах) Наверно через месяц будет
https://github.com/astrowander/acmb/releases/tag/v0.0.3.11
Последний релиз перед добавлением графического интерфейса, над которым нужно будет немало попотеть
Что нового:
Ресайз картинок работает быстрее, потому что сделан многопоточным
Добавлен кроп, то есть возможность вырезать прямоугольную область из картинки. Для этого нужно дописать к команде ключ "-crop", координаты левого верхнего угла, и размер прямогуольника
--crop x y width height
На Хабре опубликовали мою статью о проекте:
https://habr.com/ru/post/698992/
Всем привет! Давно не было обновлений в этой теме, уже больше года прошло. Но всё это время проект был не заброшен. Самые главное обновление: наконец-то есть графический интерфейс! Также, если на компе есть видеокарта от Nvdia и установлена CUDA, то можно включить GPU-ускорение. Оно может дать некислую прибавку в скорости работы. https://github.com/astrowander/acmb/releases/tag/v1.0.0.4-alpha (https://github.com/astrowander/acmb/releases/tag/v1.0.0.4-alpha)
Немного о том, как пользоваться программой в её новом виде. Вкратце - принцип работы похож на Excel, только в ячейках таблицы находятся не числа и формулы, а изображения и инструменты по их обработке. Каждый инструмент может либо читать (импортировать) изображения с диска, либо как-то их обрабатывать. Результат своих вычислений он может передать ячейку справа или внизу от себя. Также можно сохранить результат на диск, в этом случае дальше ничего не передаётся.
Когда вы откроете программу, вы увидите пустую таблицу и ряд кнопок над ней. Чтобы познакомиться с приложением, рассмотрим в качестве примера типичную задачу по астрофотографии. Допустим, что мы хотим сложить набор снимков одной сцены звёздного неба в единое изображение, оптимизировать его для показа на экране с разрешением 4K и сохранить в формате JPEG. Исходные кадры сняты фотоаппаратом Canon в формате CR2.
Импортирование изображений
Основные кадры, на которых запечатлены, собственно, звёзды - это так называемые светлые кадры. Импортируем их в первую очередь. Для этого выделите ячейку A2 и нажмите на кнопку Import. В ячейке появится инструмент Import Images. В нём необходимо нажать кнопку Select Images и выбрать ваши светлые кадры.
Вычитание темнового кадра
Так как каждый светлый кадр кроме полезной информации содержит шумы светочувствительного элемента, рекомендуется снять тёмный кадр с той же экспозицией и вычесть его из светлого кадра. Выделите стрелками на клавиатуре или щелчком мыши правую соседнюю ячейку B2 и добавьте в неё инструмент Dark Frame. Обратите внимание, что ячейки A2 и B2 соединены тремя стрелками. Это означает, что кадры между ними передаются в пакетном режиме, один за другим.
Этому инструменту требуется и темновой кадр, который мы будем вычитать из светлых. Так как ячейка слева уже занята, поместим его в ячейку сверху. Чтобы свести к минимуму случайные колебания, рекомендуется суммировать несколько темновых кадров. Добавьте в ячейку B1 инструмент Import Images и загрузите серию темновых кадров. Щёлкните двойным кликом по стрелкам, соединяющим ячейки B1 и B2. Теперь они соединены тремя сходящимися линиями. Это означает, что изображения из верхней ячейки будут просуммированы, прежде чем попадут в нижнюю ячейку.
Коррекция плоского поля
Из-за оптических недостатков объектива на фотографиях часто встречается виньетирование или неравномерное распределение яркости. Чтобы компенсировать этот эффект, нужно сфотографировать равномерно освещенное поле и увеличить яркость светлого кадра, там, где плоский кадр темнее.
Иными словами, мы должны поделить светлый кадр на плоское поле. Для этого поместите в ячейку C2 инструмент Flat Field. По аналогии с предыдущим инструментом в ячейку C1 необходимо загрузить серию флэтов с помощью инструмента Import Images и указать, что их нужно суммировать при помощи двойного клика по стрелкам.
Суммирование изображений
После того как светлые кадры откалиброваны с помощью темновых и плоских кадров, мы можем сложить их в одно изображение. Для этого поместим в ячейку D2 инструмент Stacker. По умолчанию в нём указан режим сложения "Light Frames". Это означает, что программа будет искать звёзды на светлых кадрах, совмещать их друг с другом так, чтобы звёзды совпали и только после этого суммировать значения пикселей. Второй режим "Dark/Flat Frames" означает, что кадры будут складываться без выравнивания, но нам нужен именно первый режим.
Изменение размера
Размер сенсора камеры имеет соотношение сторон 3:2, а мы хотим подготовить кадр для демонстрации на экране 4K разрешением 3840x2160 пикселей. Нужно изменить размер изображения до необходимой ширины. Для этого поместите в ячейку E2 инструмент Resize и укажите в полях Width и Height значения 3840 и 2560 соответственно. Такие параметры сохранят соотношение сторон исходных кадров.
Кадрирование
Чтобы изображение поместилось на экран полностью, нужно его кадрировать. Добавьте инструмент Crop в ячейку F2 и укажите следующие параметры: Left = 0, Top = 200, Width = 3840, Height = 2160.
Изменение глубины цвета
Так как мы работаем с кадрами в формате RAW, наше итоговое изображение имеет глубину цвета в 16 бит на пиксель. Его вначале нужно преобразовать к глубине цвета 8 бит на пиксель, потому что JPEG не поддерживает большую глубину цвета. Добавьте инструмент Converter в ячейку G2 и выберите в нём формат RGB24.
Экспортирование результата
Теперь мы можем сохранить результат всех вычислений на диск. Поместите инструмент Export в ячейку H2. Нажмите кнопку Select File и укажите файл с расширением JPEG, куда вы желаете сохранить результат работы.
Запуск вычислений
Теперь, когда схема готова, можно запустить вычисления. Нажмите кнопку Run и дождитесь сообщения об окончании процесса. Обратите внимание, что для сохранения целостности данных на время вычислений весь интерфейс блокируется.
Сохранение и загрузка проекта
Чтобы не создавать схему каждый раз с нуля, её можно сохранить на диск при помощи кнопки Save и потом загрузить с помощью кнопки Open. Во встроенном каталоге presets, который открывается первым, находятся три готовые схемы: lights.acmb, lights&darks.acmb и lights&darks&flats.acmb для наиболее распространённых сценариев обработки астрофотографий.
Использование графического процессора
Если в вашем компьютере установлен графический адаптер Nvidia с поддержкой технологии CUDA вы можете включить её, отметив соответствующую галочку. Это может существенно ускорить работу acmb.
Еще не пробовал, но интерфейс выглядит очень не скучно!
Прикольная двумерная структура пакета заданий.
Цитата: Артём от 04 октября 2022, 14:09:09Еще хочется минимального индикатора прогресса какого-нибудь)
- подавись =))
Прикручивай чтение FITS, пожалста)
https://heasarc.gsfc.nasa.gov/fitsio/
Прикрутил не только чтение FITS, но и запись тоже :) Читать можно файлы с глубиной цвета 8 или 16 бит, а также float32. Запись - только целые числа, глубина 8 или 16 бит.
https://github.com/astrowander/acmb/releases/tag/v1.0.1.1-alpha
Потыцкал, скорость и точность обработки при бешенной автоматизации внушают трепет. Шайтан машина!
На старых FITSах от QHY6 выдал странное, но там и заголовок файла китайцы какой попало генерили.
Спасибо :krasneet:2 Значит восемь лет в коммерческой разработке не прошли даром.
Скинь мне эти FITS'ы где-нибудь, плз, посмотрю. Вообще я этот формат пока только на выхлопе FITSwork тестировал, да на одном примере с оф. сайта. Сыроваты пока :)
Была проблема с обработкой монохромных кадров. Теперь исправлено!
https://github.com/astrowander/acmb/releases/tag/v1.0.1.2-alpha
https://github.com/astrowander/acmb/releases/tag/v1.0.1.5-alpha
Добавил новый режим стекинга - лайты без выравнивания. Это может быть полезно для наземной части фотографий и будущих таймлапсов. Также исправлен баг, когда программа могла обработать не все кадры серии или попытаться открыть несуществующий кадр и выдать ошибку.
https://github.com/astrowander/acmb/releases/tag/v1.0.2.0-alpha
Долгожданная новая версия, в которой можно записывать таймлапсы! Для этого в окошке Export надо выбрать формат .y4m или .h265. Первый вариант- это самый простой формат без сжатия, а второй - не совсем полноценный формат. скорее видеопоток, но плееры его воспроизводят. Позже упакую его в более привычный контейнер типа mp4 или mkv, а пока так. Можно открыть также встроенный файл проекта timelapse.acmb, там уже всё настроено, надо только входные и выходной файлы указать.
Ещё в этой версии стало можно читать JPEG файлы, что полезно для таймлапсов. Но, конечно, записывать их можно и из других поддерживаемых входных форматов - Tiff, Raw, даже Fits, если кому-то захочется :)
Приходилось сталкиваться с критикой вида "зачем нужна ещё одна программа при десятке аналогов". Поэтому я решил провести сравнительное исследование. Десяток аналогов правда пока не смотрел, проверил только три. Какие еще аналоги стоит посмотреть? Может стоит добавить в таблицу ещё какие-то параметры?
В канун нового года я представляю новый релиз acmb. Теперь у программы есть нескучная иконка, а также предпросмотр входных изображений и результата. В общем, теперь можно смотреть картинки прямо в самом приложении, ура!
Поздравляю с наступающим новым годом!
https://github.com/astrowander/acmb/releases/tag/v1.0.3.0-alpha
Я выпускаю новый релиз acmb! В нём появилось так много нового, что я решил не только увеличить вторую цифру, но и присвоить ему статус бета-версии (раньше была альфа). Как все эти новинки выглядят и работают, можно увидеть в новом видео-туториале. В нём я для примера создаю таймлапс из RAW, с калибровкой и цветокоррекцией. Прошу поддержать просмотрами и лайками :)
https://youtu.be/uJEVtISbjT0?si=XB-NDA9EOeY7VvpG
Ну и скачать новую версию, чтобы потрогать своими руками, можно тут:
https://github.com/astrowander/acmb/releases/tag/v1.1.0.0-beta