Відбракування пікселів при інтеграції: вибір алгоритму та читання Rejection Map
«Відбракування» (rejection) при інтеграції — це процес, коли під час накладання кількох кадрів одне на одне автоматично прибираються ті викиди, яким там не місце: сліди супутників, білі плями від космічних променів, залишкові «гарячі пікселі», роздуті гало надто яскравих зір тощо. Правильний вибір алгоритму rejection і вміння читати Rejection Map, який він видає, — ключ до чистої інтеграції. У цій статті розкладено логіку вибору алгоритму rejection, а також те, як саме читати ті дві карти rejection, на які так часто не звертають уваги.
Сімейство алгоритмів rejection
PixInsight під час інтеграції пропонує кілька алгоритмів rejection. В офіційній документації перелічено, для яких сценаріїв підходить кожен алгоритм, і її справді варто прочитати (зауважте, що цей документ опубліковано вже досить давно і він не охоплює алгоритм GESD, доданий пізніше).

Загалом їх можна поділити на дві категорії:
- Родина Sigma: відбракування викидів на основі стандартного відхилення — наприклад, Sigma Clipping, вдосконалена версія Winsorized Sigma Clipping, а також Percentile Clipping. Їхній принцип і математика належать до однієї системи.
- GESD Test: заснований на Grubbs’s test, його теорія й математика повністю відрізняються від методів на основі sigma. Це алгоритм, доданий порівняно пізно.
GESD проти Sigma: хто перемагає при малій кількості кадрів?
Я справді проводив таке порівняння. Одного разу взяв набір лише з 12 кадрів і одночасно запустив GESD Test, Winsorized Sigma Clipping і традиційний Sigma Clipping.

12 кадрів насправді не відповідають рекомендованій кількості для GESD та Winsorized Sigma, але саме в цьому наборі найкращий результат несподівано дав GESD Test. Проте варто додати ремарку: якщо йдеться про кольорові дані й до того ж недостатню кількість кадрів, усе одно краще підходить Winsorized Sigma або Sigma. Тож алгоритму, який «завжди найкращий», не існує — усе залежить від даних.
GESD проти тьмяних слідів супутників
GESD має ще одну практичну перевагу. Раніше, коли я інтегрував дані за допомогою родини sigma, часто траплялися доволі тьмяні сліди супутників, які ніяк не вдавалося відбракувати: навіть за 17 кадрів після інтеграції частина сліду все одно залишалася, а такий тьмяний слід не годиться для manual selective rejection (ручного зафарбовування чорним).

Коли я перейшов на GESD Test і відповідно налаштував параметри — з розширенням (нарощуванням) тьмяного сліду супутника, — мені вдалося відбракувати надзвичайно тьмяний слід; і загалом відношення сигнал/шум (SNR) у GESD вище, ніж у традиційного Sigma Clipping чи Winsorized Sigma Clipping. (Утім, здебільшого з родиною sigma така нерозв’язна проблема не трапляється — це доволі крайній окремий випадок.)
Особлива зброя: Range Clipping
Окрім статистичного відбракування викидів, є ще один «грубий», але зручний прийом — Range Clipping.

Якщо у вас є такі кадри з поганим калібруванням кадрами dark, на яких з’являється багато чорних точок (наприклад, вони є на 10 кадрах і відсутні на 5), звичайним алгоритмам rejection складно прибрати ці чорні точки через відбір викидів. У такому разі під час інтеграції можна скористатися Range Low Clipping, щоб примусово видалити всі чорні точки нижче певного порогу. Це прямий прийом, спрямований на конкретний дефект, який доповнює статистичне відбракування.

Як читати Rejection Map
Після інтеграції за допомогою ImageIntegration або WBPP, крім готового зображення, також з’являються дві карти rejection: одна для напрямку високої яскравості (rejection high), інша — для напрямку низької яскравості (rejection low). Більшість людей просто ігнорують обидві — а це насправді марнує дуже корисну діагностичну інформацію.

Зазвичай на rejection low особливо нема на що дивитися; головне — це rejection high: тут з’являються всі перешкоди, які ви хотіли б «не бачити в готовому зображенні», — сліди супутників, гало надто яскравих або роздутих зір, сліди навколоземних об’єктів, а також «гарячі пікселі» й білі плями від космічних променів («гарячі пікселі» я зазвичай прибираю ще до інтеграції за допомогою Cosmetic Correction, тож тут їх небагато).
Найпрактичніший спосіб читати цю карту такий: якщо піксель, який ви хотіли відбракувати, з’являється на rejection high, це означає, що його успішно прибрано; якщо він тут не з’являється, але залишається в готовому проінтегрованому зображенні (наприклад, залишковий слід супутника), це означає, що параметрів rejection недостатньо або варто змінити алгоритм.
Кілька частих запитань «чи відбраковувати цей кадр?»
Розібравшись у принципі вище, багато речей, над якими мучаться новачки, отримують чітку відповідь.
Кадр із роздутими зорями — чи варто виключати його з інтеграції? Якщо це не розфокусування, я зазвичай дозволяю йому брати участь в інтеграції.

Переглянувши rejection high, ви побачите, що надто великі за розміром або надто яскраві частини цих зір уже прибрані відбракуванням і не брали участі в обчисленні інтеграції; сліди штучних супутників і білі плями від космічних променів так само потрапляють на rejection high. Таку роботу можна спокійно залишити програмі.
Яскравий слід супутника перетинає ціль наскрізь — чи варто вручну видаляти цей кадр? Відповідь знову ж — не потрібно.

Ось як діяти: якщо кадрів мало, скористайтеся алгоритмом із сильнішою здатністю до rejection (наприклад, родиною Sigma Clipping) і встановіть параметр Sigma High трохи суворіше (наприклад, нижче 2.5). В одному прикладі було лише 7 кадрів, і на одному з них слід супутника перетинав ціль; кожен кадр був важливий для SNR, тож, задавши відповідні параметри (а не використовуючи типові налаштування програми), я дозволив процесу інтеграції автоматично виконати відбракування, і успішно відбракований слід з’явився на rejection high. Не марнуйте жоден важко здобутий піксель.
Виняток дефектного стовпця: відбракування тут не рятує
Насамкінець додам ще один виняток, який rejection не врятує, — дефектний стовпець (defect column) матриці CCD.

Дефектний стовпець надто темний і до того ж тягнеться через увесь кадр; намагатися прибрати його лише відбракуванням означає пожертвувати надто великою кількістю добрих пікселів, а результат усе одно виходить не найкращим. Правильний підхід — спершу створити для камери Defect Map (на прикладі CCD-матриці 16803 камери «Latte»: один явний дефектний стовпець посередині кадру плюс три менш помітні), завантажити її й накласти на кадри light за допомогою процесу DefectMap, суттєво послабивши вплив дефектного стовпця, а решту вже без зусиль прибере відбракування під час інтеграції. Інакше кажучи, rejection — це прибиральник наприкінці, а не всемогутній перший рубіж оборони: дефекти, які потребують спеціалізованого інструмента, усе одно варто спершу обробити відповідним інструментом.