本站提供正體中文版。切換到正體中文本站提供简体中文版。切换到简体中文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ă

การแก้ปัญหา WBPP: ข้อผิดพลาดที่พบบ่อยและบั๊กที่ทราบแล้ว

การประมวลผลล่วงหน้าและการ Stacking2022.04บันทึกเก่า

บทความนี้เรียบเรียงจากบันทึกในช่วง ค.ศ. 2022–2025 เครื่องมือหรือขั้นตอนบางส่วนอัปเดตไปแล้ว จึงควรพิจารณาประกอบขณะอ่าน ข้อความแสดงข้อผิดพลาดและพฤติกรรมเฉพาะเวอร์ชันที่กล่าวถึงในบทความนี้ล้วนบันทึกไว้ตามสภาพขณะนั้น สำหรับอินเทอร์เฟซของ WBPP เฟรม master calibration และขั้นตอนการทำงานปกติ ให้ดู “The Complete Guide to WBPP”

การรัน WBPP แบบคลิกเดียวจบถือว่าสะใจดี แต่พอใช้งานจริงมักเจอสถานการณ์ที่ค้าง ขึ้นข้อผิดพลาด หรือผลลัพธ์ดูแปลก ๆ อยู่เสมอ บทความนี้รวบรวมปัญหา WBPP หลายประเภทที่เจอมาตลอดหลายปีและมีคนถามถึงบ่อยที่สุด เรียบเรียงเป็นคู่มือแก้ปัญหาหนึ่งฉบับ ตั้งแต่แนวคิดในการวินิจฉัยไปจนถึงบั๊กที่ทราบแล้วบางตัวโดยละเอียด

ขั้นตอนแรกในการแก้ปัญหา: ดู Process Console ก่อน

เมื่อ PixInsight ประมวลผลแล้วเกิดปัญหา สิ่งแรกที่ควรนึกถึงเสมอคือการดู Process Console Process Console จะบอกว่าข้อผิดพลาดเกิดขึ้นที่ไหนและเป็นข้อผิดพลาดประเภทใด เป็นจุดเริ่มต้นของการวินิจฉัยทั้งหมด

อย่างไรก็ตาม WBPP เป็นสคริปต์ ในสถานะที่สคริปต์ยังไม่ทำงาน console จะยุบตัวลงและเลือกไม่ได้ ดังนั้นหากอยากดู console มักต้องปิด WBPP ก่อน ฟังดูยุ่งยาก แต่กลับเป็นแหล่งเบาะแสเดียวของปัญหาหลายอย่าง การไขบั๊กหลายตัวในตอนถัดไปล้วนเริ่มจากข้อความสีแดงบรรทัดนั้นใน console ทั้งสิ้น

ความล้มเหลวและบั๊กในขั้นตอน Calibration

Calibration ล้มเหลว (failed) – ปิด PI ก่อนแล้วค่อยเปิดใหม่ ถ้าตอนรัน WBPP ขั้น Calibration แรกสุด (ที่ใช้ master calibration frame) ล้มเหลวทันที และ status ขึ้น failed สีแดง ให้หยุดกระบวนการทั้งหมดไว้ก่อน ปิด PI แล้วเปิด WBPP ขึ้นมาใหม่แล้วรันอีกครั้ง ข้อผิดพลาด Calibration ล้มเหลวนี้มักจะหายไป ตอนประมวลผลภาพ OSC เจอบั๊กนี้มาอย่างน้อยสี่ครั้งขึ้นไป ทุกครั้งแก้ด้วยวิธีนี้

หน้าจอขั้นตอน Calibration ของ WBPP ที่ status ขึ้น failed สีแดง

Calibration ของ flat frame ผิดพลาดซ้ำ ๆ – เปลี่ยนกลับไปทำทีละขั้นตอนด้วยมือ WBPP บางเวอร์ชันมีบั๊กที่ทำให้การ Calibration flat frame ผิดพลาดซ้ำอยู่เรื่อย ๆ ในสถานการณ์แบบนี้ การรู้จักลงมือทำเองทีละขั้นตอนด้วยมือจึงสำคัญมาก ขอทบทวนขั้นตอน Pre-Process ไปพร้อมกันเลย:

  1. Calibration: light − dark / ((flat − flat dark) * med(flat))
  2. Cosmetic Correction
  3. Debayer: ประมาณค่าภายในเมทริกซ์ Bayer
  4. Star Alignment
  5. NSG
  6. Integration

ข้อผิดพลาดในการ Calibration flat frame ของ WBPP และขั้นตอนอ้างอิงสำหรับการทำทีละขั้นตอนด้วยมือ

เมื่อพึ่งพาระบบอัตโนมัติไม่ได้ การแยกขั้นตอนออกมารันด้วยมือกลับช่วยระบุได้ง่ายขึ้นว่าปัญหาอยู่ที่ขั้นตอนไหน

ปัญหาพาธไฟล์: สองสาเหตุที่เป็นไปได้ของ File I/O Error

เมื่อใช้ WBPP บน Windows ถ้าขั้นตอน Calibration ขึ้น File I/O Error มักเป็นหนึ่งในสองสาเหตุนี้:

  1. พาธไฟล์รวมชื่อไฟล์ยาวเกินไป เกินขีดจำกัดของระบบ ต้องย่อให้สั้นลง
  2. โฟลเดอร์ปลายทางเขียนไม่ได้ เช่น ตั้งค่าเอาต์พุตไว้ที่โฟลเดอร์ระบบ

หน้าจอข้อผิดพลาด File I/O Error ที่ปรากฏในขั้นตอน Calibration ของ WBPP

แบบแรกพบบ่อยที่สุด หากต้องการแก้ปัญหา “พาธยาวเกินไป” ให้หายขาด สามารถเปิดใช้การรองรับพาธยาวใน Windows ได้ (ตั้งค่า LongPathsEnabled เป็น 1 ใน regedit) นอกจากนี้ยังแนะนำให้หลีกเลี่ยงพาธที่มีอักขระภาษาจีน รายละเอียดการตั้งค่าสภาพแวดล้อมเบื้องต้นทั้งสองข้อนี้เขียนไว้ในหัวข้อการตั้งค่าสภาพแวดล้อม Windows ของ “The Complete Guide to WBPP” แล้ว จึงไม่ขอกล่าวซ้ำที่นี่

บั๊กพิกัด RA/DEC “60 วินาทีไม่ทดขึ้น”

นี่คือปัญหาที่ซับซ้อนที่สุดและคุ้มค่าที่สุดที่จะแยกออกมาพูดถึงต่างหาก เพราะอาการมีรูปแบบแปลกประหลาดหลากหลาย แต่สาเหตุหลักเป็นอย่างเดียวกัน: ใน FITS Header พิกัดไรต์แอสเซนชัน (RA) และเดคลิเนชัน (Dec) มีค่าวินาทีเป็น “60” แต่ไม่ได้ทดขึ้น

เจอปัญหานี้มาสองครั้ง แต่ละครั้งมีอาการต่างกัน

ครั้งแรก: WBPP โหลดไฟล์ไม่ได้ ปิด WBPP แล้วไปดู Process Console พบว่าสคริปต์ js บรรทัดหนึ่งรายงาน “invalid coordinates” ตอนนั้นเข้าใจว่าเป็นบั๊กของ WBPP เอาข้อความแสดงข้อผิดพลาดไปค้นหาในอินเทอร์เน็ต จึงพบรายงานข้อผิดพลาดแบบเดียวกันหลายรายการใน PixInsight Forum ที่แท้ปัญหาพิกัดเป็นสาเหตุที่ทำให้ภาพโหลดเข้า WBPP ไม่ได้ แม้จะรู้ทิศทางแล้ว ก็ยังต้องใช้เวลาหนึ่งชั่วโมงค้นหาในภาพ light frame หลายร้อยภาพ จึงเจอภาพที่มีปัญหา: พิกัด OBJCTDEC ของภาพนั้นผิด เปิด FITSHeader ใน PI เลื่อนไปที่ OBJCTDEC แล้วแก้ค่าที่ “ควรทดขึ้นแต่ไม่ทด” (ตัวอย่างคือเปลี่ยน -69 26 60 เป็น -69 27 0) ภาพนี้ก็โหลดเข้าได้เรียบร้อย และไฟล์ถัดจากนี้ก็ไม่ติดขัดเพราะภาพนี้อีกต่อไป

แก้ไขพิกัด OBJCTDEC ที่ไม่ทดขึ้นด้วย FITSHeader

ครั้งที่สอง: เพิ่มไฟล์ไม่เข้า console รายงาน too much recursion ต่อมาเจออีกครั้ง ตอนเพิ่มไฟล์เข้า WBPP โปรแกรมค้าง สุดท้ายไม่มีไฟล์เพิ่มเข้าไปเลยสักไฟล์เดียว ปิด WBPP แล้วไปดู Console เป็น InternalError: too much recursion สีแดง เปิด WBPP ใหม่พบว่าไฟล์บางส่วนโหลดเข้าแล้ว บางส่วนยังไม่ได้โหลด ตรวจไฟล์ที่ยังไม่โหลด ก็เจอความผิดปกติของ FITS Header อีกเช่นเคย (ครั้งนี้ DEC แสดงเป็น -46 01 60 วินาที “60” ควรทดขึ้นเป็น -46 02 00) แค่ WBPP อ่านค่าผิดปกติแบบนี้ก็จะค้างทันที แถมยังลากภาพถัดไปทั้งหมดให้โหลดไม่ได้ไปด้วย วิธีแก้ก็เหมือนเดิม คือเปิด FITS Header ทดวินาทีขึ้นด้วยมือ แก้เสร็จแล้วเพิ่มไฟล์กลับเข้าไปใหม่ก็ใช้ได้ เมื่อไฟล์ทั้งหมดโหลดสำเร็จ WBPP จะเด้งข้อความวินิจฉัยขึ้นมาเองโดยอัตโนมัติ เช่น “60 of 60 light frames were added”

ข้อความแสดงข้อผิดพลาด InternalError: too much recursion ที่ปรากฏใน console

ค่าผิดปกติ -46 01 60 ที่ฟิลด์ DEC ใน FITS Header

ข้อสรุปร่วม: ปัญหาพิกัดไม่ทดขึ้นอัตโนมัตินี้ เท่าที่เจอมาจนถึงตอนนี้เกิดขึ้นแทบทั้งหมดในกรณีที่ใช้ MDL (ควบคุมระยะไกล) เป็นซอฟต์แวร์ถ่ายภาพ แต่ก็ไม่อาจตัดความเป็นไปได้ว่าซอฟต์แวร์ถ่ายภาพตัวอื่นจะมีปัญหาแบบเดียวกัน ดังนั้นเมื่อใดที่ WBPP ค้างและเพิ่มไฟล์ไม่ได้ ให้ตรวจ Process Console ก่อนเพื่อยืนยันประเภทข้อผิดพลาด แล้วค่อยตรวจว่า Header ของ RA/DEC มีบั๊ก “60 วินาทีไม่ทดขึ้น” หรือไม่ แก้ไขด้วยมือแล้วส่วนใหญ่ก็จะแก้ปัญหาได้

ประสิทธิภาพ: ทำไมเต็มชุดถึงรันนานขนาดนี้

สุดท้ายพูดถึงปัญหาที่พูดอย่างเคร่งครัดแล้วไม่นับเป็น “ข้อผิดพลาด” แต่ทรมานใจมาก คือ WBPP เต็มชุดช้าเกินไปจริง ๆ เคยปล่อยให้ WBPP เต็มชุดรันไปสี่ชั่วโมงเต็ม เพื่อภาพห้าภาพที่จะทำ HDR (เครื่องตอนนั้นคือ AMD R5-4650G, DDR4 3200 32GB, Gen4 SSD ภาพความละเอียด 24 ล้านพิกเซล การรอแบบนี้ทำให้อยากเปลี่ยนคอมพิวเตอร์เลยจริง ๆ)

หน้าจอการรัน WBPP เต็มชุดที่ใช้เวลาสี่ชั่วโมง

ในนั้นมีสองจุดที่กินเวลาเป็นพิเศษ:

  1. Separated RGB: แยกประมวลผลแชนแนล RGB ของภาพสี เพื่อขจัดความคลาดสี
  2. Local Normalization: เลือกภาพที่ดีที่สุดไม่กี่ภาพเป็นภาพอ้างอิง แล้วทำ Local Normalization กับภาพอื่น ๆ

ถ้ายกเลิกสองขั้นตอนนี้ WBPP จะเร็วขึ้นมาก จะยอมสละสองขั้นตอนนี้เพื่อความเร็วหรือไม่ ขึ้นอยู่กับมาตรฐานที่ต้องการสำหรับผลงาน สำหรับผลการวัดจริงเรื่อง “ปิดขั้นตอนไหนได้บ้าง ประหยัดเวลาได้เท่าไร คุณภาพลดลงแค่ไหน” มีชุดข้อมูลที่แสดงความเร็วเพิ่มขึ้น 7–8 เท่าอยู่ใน “The Complete Guide to WBPP” ให้ดูเป็นข้อมูลอ้างอิงได้


สรุปแนวคิดของคู่มือแก้ปัญหาฉบับนี้: เจอปัญหาให้ดู Process Console ก่อน Calibration failed ก็ปิด PI แล้วเปิดใหม่ Calibration ของ flat frame ผิดซ้ำ ๆ ก็เปลี่ยนกลับไปทำทีละขั้นตอนด้วยมือ File I/O Error ส่วนใหญ่คือพาธยาวเกินไปหรือโฟลเดอร์เขียนไม่ได้ โหลดไม่เข้า ค้าง หรือรายงาน recursion ก็ไปตรวจว่า RA/DEC ใน FITS Header มี 60 วินาทีที่ไม่ทดขึ้นหรือไม่ จำเทคนิคเหล่านี้ให้ขึ้นใจ อารมณ์ส่วนใหญ่ของ WBPP ก็รับมือได้