本站提供正體中文版。切換到正體中文本站提供简体中文版。切换到简体中文This site is available in English.View in Englishこのサイトには日本語版があります。日本語で表示이 사이트는 한국어로도 제공됩니다.한국어로 보기Diese Website ist auch auf Deutsch verfügbar.Auf Deutsch ansehenEste sitio web también está disponible en español.Ver en españolQuesto sito è disponibile anche in italiano.Visualizza in italianoCe site est également disponible en français.Afficher en françaisEste site também está disponível em português.Ver em portuguêsDeze website is ook beschikbaar in het Nederlands.In het Nederlands bekijkenЭтот сайт также доступен на русском языке.Смотреть на русскомयह वेबसाइट हिन्दी में भी उपलब्ध है।हिन्दी में देखेंهذا الموقع متاح أيضًا باللغة العربية.عرض بالعربيةSitus ini juga tersedia dalam bahasa Indonesia.Lihat dalam bahasa IndonesiaBu site Türkçe olarak da mevcut.Türkçe görüntüleTa strona jest dostępna także po polsku.Wyświetl po polskuTrang web này cũng có phiên bản tiếng Việt.Xem bằng tiếng Việtاین وب‌سایت به فارسی هم در دسترس است.مشاهده به فارسیЦей сайт також доступний українською.Переглянути українськоюTato stránka je k dispozici také v češtině.Zobrazit v češtiněEz az oldal magyarul is elérhető.Megtekintés magyarulAcest site este disponibil și în limba română.Vizualizare în română

การ Rejection ในการ Stacking: การเลือกอัลกอริทึมและการอ่าน Rejection Map

การประมวลผลล่วงหน้าและการ Stacking2021.01

Rejection ตอน Stacking คือขั้นตอนที่ตัดค่าผิดปกติซึ่งไม่ควรปรากฏออกโดยอัตโนมัติ ระหว่างการนำภาพหลายภาพมาซ้อนกัน เช่น รอยดาวเทียม จุดขาวจากรังสีคอสมิก hot pixel ที่หลงเหลืออยู่ รัศมีดาวที่สว่างจ้าเกินไป และอื่น ๆ การเลือกอัลกอริทึม Rejection ให้ถูกต้อง และอ่าน Rejection Map ที่มันสร้างขึ้นให้เป็น คือกุญแจสำคัญของการ Stacking ให้ได้ภาพที่สะอาด บทความนี้จะสรุปตรรกะการเลือกอัลกอริทึม Rejection พร้อมทั้งวิธีอ่าน Rejection Map สองแผ่นที่มักถูกมองข้าม

ตระกูลอัลกอริทึม Rejection

ตอน Stacking ด้วย PixInsight มีอัลกอริทึม Rejection ให้เลือกหลายแบบ เอกสารทางการได้ระบุสถานการณ์ที่เหมาะกับแต่ละอัลกอริทึมไว้ ควรค่าแก่การอ่านมาก (ควรสังเกตว่าเอกสารฉบับนี้เผยแพร่มาสักระยะแล้ว ยังไม่ครอบคลุมอัลกอริทึม GESD ที่เพิ่มเข้ามาภายหลัง)

อัลกอริทึม Rejection ที่ระบุไว้ในเอกสารทางการของ PixInsight Image Integration

แบ่งออกได้คร่าว ๆ เป็นสองกลุ่ม:

  • ตระกูล Sigma: การตัดค่าผิดปกติโดยอิงส่วนเบี่ยงเบนมาตรฐาน เช่น Sigma Clipping, รุ่นปรับปรุงอย่าง Winsorized Sigma Clipping และ Percentile Clipping หลักการและคณิตศาสตร์เบื้องหลังอยู่ในระบบเดียวกัน
  • GESD Test: อิง Grubbs’s test เป็นพื้นฐาน ทฤษฎีและคณิตศาสตร์แตกต่างจากวิธีแบบ sigma-based โดยสิ้นเชิง เป็นอัลกอริทึมที่เพิ่มเข้ามาทีหลังค่อนข้างมาก

GESD vs Sigma: เมื่อมีภาพน้อย ใครชนะ?

ผมเคยลองเปรียบเทียบจริง ครั้งหนึ่งใช้ชุดข้อมูลที่มีแค่ 12 ภาพ รัน GESD Test, Winsorized Sigma Clipping และ Sigma Clipping แบบดั้งเดิมพร้อมกัน

เปรียบเทียบ GESD, Winsorized Sigma และ Sigma Clipping ทั้งสามแบบ (ชุดข้อมูล 12 ภาพ)

12 ภาพนั้นไม่ตรงกับจำนวนภาพที่แนะนำสำหรับ GESD และ Winsorized Sigma แต่ในชุดนี้ GESD Test กลับให้ผลดีที่สุด แต่ขอเสริมท้ายไว้หน่อยว่า ถ้าเป็นข้อมูลสีและมีจำนวนภาพไม่พอ Winsorized Sigma หรือ Sigma ก็ยังเหมาะกว่า ดังนั้นจึงไม่มีอัลกอริทึมที่ “ดีที่สุดตลอดกาล” ขึ้นอยู่กับข้อมูล

GESD กับรอยดาวเทียมจาง ๆ

GESD ยังมีข้อได้เปรียบในการใช้งานจริงอีกอย่าง แต่ก่อนเวลา Stacking ด้วยตระกูล sigma มักเจอรอยดาวเทียมที่ค่อนข้างจางแล้วตัดออกไม่ได้ แม้จะมีถึง 17 ภาพ Stacking เสร็จแล้วก็ยังเหลือรอยบางส่วนอยู่ดี แถมรอยจาง ๆ แบบนี้ก็ไม่เหมาะกับการใช้ manual selective rejection (การป้ายสีดำด้วยมือ) เพื่อตัดออก

ปรับพารามิเตอร์ GESD และขยายรอยดาวเทียมจาง ๆ จนตัดออกได้สำเร็จ

พอเปลี่ยนมาใช้ GESD Test แล้วปรับพารามิเตอร์ให้เหมาะสม ขยาย (dilate) รอยดาวเทียมจาง ๆ ให้โตขึ้น ก็ตัดรอยที่จางมากออกได้สำเร็จ และโดยทั่วไปแล้วอัตราส่วนสัญญาณต่อสัญญาณรบกวนของ GESD จะสูงกว่า Sigma Clipping แบบดั้งเดิมหรือ Winsorized Sigma Clipping เสมอ (แต่ส่วนใหญ่แล้วการใช้ตระกูล sigma ก็ไม่ค่อยเจอปัญหาตัดไม่ออกแบบนี้ นี่เป็นกรณีที่ค่อนข้างสุดโต่ง)

อาวุธพิเศษ: Range Clipping

นอกจากการตัดค่าผิดปกติเชิงสถิติแล้ว ยังมีอีกวิธีหนึ่งที่ “หยาบ” แต่ใช้ได้ผลดี นั่นคือ Range Clipping

ใช้ Low Range clipping บังคับลบจุดดำที่เกิดจาก dark calibration ที่ไม่ดี

ถ้ามีภาพที่ dark calibration ไม่ดีจนเกิดจุดดำเยอะ (เช่น มีในภาพ 10 ภาพ แต่ไม่มีใน 5 ภาพ) อัลกอริทึม Rejection แบบปกติจะคัดจุดดำเหล่านี้ออกด้วยการหาค่าผิดปกติได้ยาก กรณีนี้สามารถใช้ Range Low Clipping ตอน Stacking เพื่อบังคับลบจุดดำที่ต่ำกว่าเกณฑ์ที่กำหนดทั้งหมดออกไปได้ เป็นวิธีตรงจุดสำหรับข้อบกพร่องเฉพาะแบบ และช่วยเสริมการ Rejection เชิงสถิติ

ผลลัพธ์ของ Low Range clipping ในการลบจุดดำ

อ่าน Rejection Map ให้เป็น

เมื่อ Stacking ด้วย ImageIntegration หรือ WBPP เสร็จแล้ว นอกจากภาพผลลัพธ์ยังจะได้แผนที่ Rejection สองแผ่น แผ่นหนึ่งสำหรับทิศทางความสว่างสูง (rejection high) อีกแผ่นสำหรับทิศทางความสว่างต่ำ (rejection low) คนส่วนใหญ่มักมองข้ามสองแผ่นนี้ไปเลย ทั้งที่จริง ๆ แล้วนี่คือการเสียข้อมูลวินิจฉัยที่มีประโยชน์มากไปเปล่า ๆ

รอยดาวเทียม รัศมีดาวที่บวม และร่องรอยวัตถุใกล้โลกที่ปรากฏในแผนที่ Rejection High

โดยทั่วไป rejection low ไม่ค่อยมีอะไรให้ดู จุดสำคัญอยู่ที่ rejection high ตรงนี้จะปรากฏสิ่งรบกวนต่าง ๆ ที่ไม่อยากให้ปรากฏในภาพผลลัพธ์ เช่น รอยดาวเทียม รัศมีดาวที่สว่างจ้าหรือบวมเกินไป ร่องรอยวัตถุใกล้โลก รวมถึง hot pixel และจุดขาวจากรังสีคอสมิก (hot pixel ผมมักเคลียร์ออกด้วย Cosmetic Correction ก่อน Stacking อยู่แล้ว ตรงนี้จึงมักมีจำนวนไม่มาก)

วิธีอ่านแผนที่นี้ที่ใช้ได้จริงที่สุดคือ ถ้าพิกเซลที่อยากตัดออกปรากฏใน rejection high แปลว่าตัดออกได้สำเร็จแล้ว แต่ถ้าไม่ปรากฏตรงนี้ แต่กลับเหลืออยู่ในภาพผลลัพธ์ที่ Stacking เสร็จแล้ว (เช่น รอยดาวเทียมที่หลงเหลือ) ก็แปลว่าพารามิเตอร์ Rejection ยังไม่พอ หรือควรเปลี่ยนอัลกอริทึม

คำถามยอดฮิต “จะตัดภาพนี้ทิ้งดีไหม”

พอเข้าใจหลักการข้างต้นแล้ว สิ่งที่มือใหม่หลายคนกังวลก็มีคำตอบ

ภาพที่ดาวบวม ควรตัดออกไม่ให้ร่วม Stacking ไหม? ถ้าไม่ใช่หลุดโฟกัส ผมมักปล่อยให้ร่วม Stacking ตามปกติ

ตัวอย่างรัศมีดาวที่บวม/สว่างจ้าเกินไปและรอยดาวเทียมที่ถูกตัดออกใน Rejection High

พอตรวจดู rejection high ก็จะเห็นว่าส่วนของดาวที่กว้างเกินไปหรือสว่างจ้าเกินไปนั้น ถูก Rejection ตัดออกไปแล้ว ไม่ได้ร่วมในการคำนวณ Stacking รอยดาวเทียมและก้อนขาวจากรังสีคอสมิกก็ตกอยู่ใน rejection high เช่นกัน งานแบบนี้ปล่อยให้ซอฟต์แวร์จัดการไปก็พอ

มีรอยดาวเทียมสว่างพาดผ่านเป้าหมาย ควรลบภาพนั้นด้วยมือไหม? คำตอบก็เหมือนเดิม คือไม่ต้อง

ในข้อมูล 7 ภาพ มีภาพหนึ่งที่รอยดาวเทียมพาดผ่านเป้าหมาย ตัดออกอัตโนมัติได้ด้วยพารามิเตอร์ Sigma High ที่เข้มงวด

วิธีทำ: ถ้าจำนวนภาพน้อย ให้ใช้อัลกอริทึมที่มีความสามารถ Rejection สูงกว่า (เช่น ตระกูล Sigma Clipping) แล้วตั้งพารามิเตอร์ Sigma High ให้เข้มงวดขึ้นหน่อย (เช่น ต่ำกว่า 2.5) มีตัวอย่างหนึ่งที่มีแค่ 7 ภาพ โดยภาพหนึ่งมีรอยดาวเทียมพาดขวางเป้าหมาย ทุกภาพสำคัญต่ออัตราส่วนสัญญาณต่อสัญญาณรบกวนมาก จึงตั้งพารามิเตอร์ให้เหมาะสม (ไม่ใช้ค่าเริ่มต้นของซอฟต์แวร์) แล้วปล่อยให้กระบวนการ Stacking ทำ Rejection ให้เสร็จเองอัตโนมัติ รอยที่ตัดออกได้สำเร็จก็ปรากฏใน rejection high อย่าให้พิกเซลที่ได้มาด้วยความยากลำบากต้องเสียเปล่าแม้แต่พิกเซลเดียว

ข้อยกเว้นคอลัมน์เสีย: Rejection ช่วยไม่ได้

สุดท้ายขอเสริมข้อยกเว้นที่ Rejection ช่วยไม่ได้อีกข้อ นั่นคือคอลัมน์เสีย (defect column) ของ CCD

ใช้ Defect Map กำจัดคอลัมน์เสียของ CCD ส่วนที่เหลือค่อยให้ Rejection จัดการ

คอลัมน์เสียมืดเกินไปและพาดตลอดทั้งคอลัมน์ ถ้าจะฝืนใช้ Rejection ตัดออกก็ต้องเสียพิกเซลดี ๆ ไปมาก แถมผลลัพธ์ก็ยังไม่ดี วิธีที่ถูกต้องคือทำ Defect Map ให้กล้องก่อน (ยกตัวอย่าง CCD 16803 ของ “Latte” มีคอลัมน์เสียเด่นชัดหนึ่งคอลัมน์อยู่กลางภาพ บวกอีกสามคอลัมน์ที่ไม่เด่นชัด) แล้วใช้กระบวนการ DefectMap โหลดและใช้กับ light frame เพื่อลดผลกระทบของคอลัมน์เสียลงอย่างมาก จากนั้นค่อยปล่อยให้ Rejection ตอน Stacking จัดการส่วนที่เหลือได้อย่างง่ายดาย พูดอีกอย่างคือ Rejection เป็นภารโรงที่ทำความสะอาดตอนท้าย ไม่ใช่แนวป้องกันด่านแรกที่วิเศษไปเสียทุกอย่าง ข้อบกพร่องที่ต้องใช้เครื่องมือเฉพาะทางก็ยังต้องใช้เครื่องมือที่ถูกต้องก่อนอยู่ดี