Отбраковка при интеграции: выбор алгоритма и чтение Rejection Map
«Отбраковка» (rejection) при интеграции — это процесс, в ходе которого при наложении нескольких снимков друг на друга автоматически отбрасываются выбросы, которых там быть не должно, — следы спутников, белые пятна от космических лучей, оставшиеся горячие пиксели, раздутые ореолы вокруг слишком ярких звёзд и так далее. Выбор правильного алгоритма отбраковки и умение читать создаваемую им Rejection Map — ключ к чистой интеграции. В этой статье я излагаю логику выбора алгоритма отбраковки, а также то, как на самом деле следует читать те две карты отбраковки, которые так часто игнорируют.
Семейство алгоритмов отбраковки
PixInsight предлагает несколько алгоритмов отбраковки при интеграции. Официальная документация перечисляет, для каких сценариев подходит каждый алгоритм, и её действительно стоит прочитать (учтите, что этот документ опубликован уже довольно давно и не охватывает алгоритм 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, соответствующим образом настроив параметры и расширив (вырастив) слабый след спутника, мне удалось отбраковать чрезвычайно слабый след; и в целом отношение сигнал/шум у GESD выше, чем у традиционного Sigma Clipping или Winsorized Sigma Clipping. (Впрочем, в большинстве случаев с семейством sigma такая неустранимая проблема не возникает — это довольно крайний отдельный случай.)
Особое оружие: Range Clipping
Помимо статистической отбраковки выбросов, есть ещё один «грубый», но удобный приём — Range Clipping.

Если у вас есть снимки с плохой калибровкой по дарк-кадрам, на которых появилось много чёрных точек (например, они есть на 10 кадрах и отсутствуют на 5), обычным алгоритмам отбраковки трудно убрать эти чёрные точки, выявляя выбросы. В этом случае при интеграции можно использовать Range Low Clipping, чтобы принудительно удалить все чёрные точки ниже определённого порога. Это прямой приём, нацеленный на конкретный дефект, дополняющий статистическую отбраковку.

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

Обычно на rejection low смотреть особо не на что; важна rejection high: здесь появляются все помехи, которые вы хотели бы «не видеть в готовом изображении», — следы спутников, ореолы слишком ярких или раздутых звёзд, следы околоземных объектов, а также горячие пиксели и белые пятна от космических лучей (горячие пиксели я обычно убираю ещё до интеграции с помощью Cosmetic Correction, поэтому здесь их немного).
Самый практичный способ читать эту карту таков: если пиксель, который вы хотели отбраковать, появляется на rejection high, значит, он был успешно удалён; если он не появляется здесь, но остаётся в готовом проинтегрированном изображении (например, остаточный след спутника), значит, ваших параметров отбраковки недостаточно или стоит сменить алгоритм.
Несколько частых вопросов вроде «отбраковывать ли этот кадр?»
Разобравшись в изложенном выше принципе, многие новички получают ответы на то, над чем они мучились.
Кадр с раздутыми звёздами — стоит ли исключать его из интеграции? Если только это не расфокусировка, я обычно позволяю ему участвовать в интеграции.

Посмотрев на rejection high, вы обнаружите, что чрезмерно большие или слишком яркие части этих звёзд уже были удалены отбраковкой и не участвовали в вычислении интеграции; следы искусственных спутников и белые пятна от космических лучей точно так же попадают на rejection high. Такую работу можно спокойно оставить программе.
Яркий след спутника пересекает объект насквозь — стоит ли вручную удалить этот кадр? Ответ снова: не нужно.

Как поступить: если кадров немного, используйте алгоритм с более сильной способностью к отбраковке (например, семейство Sigma Clipping) и установите параметр Sigma High немного строже (например, ниже 2,5). В одном случае у меня было всего 7 кадров, на одном из которых след спутника пересекал объект насквозь; каждый кадр был важен для отношения сигнал/шум, поэтому, задав подходящие параметры (а не используя настройки по умолчанию), я позволил процессу интеграции автоматически выполнить отбраковку, и успешно отбракованный след появился на rejection high. Не тратьте впустую ни один с трудом добытый пиксель.
Исключение: дефектный столбец отбраковка не спасёт
Наконец, добавлю ещё одно исключение, которое отбраковка спасти не может, — дефектный столбец (defect column) ПЗС-матрицы.

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