Processing experiments and checking mapping formulas
ใช้ภาพชุดเดียวกันเปรียบเทียบการควบคุม พร้อมเครื่องคำนวณและไฟล์ฝึกที่ตรวจคำตอบได้
ลองคำนวณและตรวจหน่วย
ตัวอย่างเพื่อเรียนสูตร คำนวณในเครื่องของคุณและไม่ส่งข้อมูลขึ้นเซิร์ฟเวอร์ ดูสมมติฐานและวิธีทำด้วยตนเองในบทด้านล่าง
GSD ระยะถ่ายภาพ และภาพเบลอ
สมมติภาพดิ่ง พื้นราบ พิกเซลจัตุรัส และความเร็วคงที่ ไม่รวมการสั่นหรือการหมุน
Bias และ RMSE จาก residual ของ CP
ใส่ model − reference ตามลำดับ X,Y,Z หน่วยเมตร แถวละสามค่า คั่นด้วย comma ไม่มีหัวตาราง สูงสุด 200 จุด ทุกจุดต้องอยู่ระบบอ้างอิงเดียวกันและไม่ถูกใช้ปรับโมเดลที่กำลังตรวจ
ระดับตรวจพบการเปลี่ยนแปลงแบบสาธิต
ใช้เมื่อ error ปกติ อิสระ ไม่มี bias และ sigma เป็นส่วนเบี่ยงเบนมาตรฐานที่เหมาะกับข้อมูล ไม่ใช่การคำนวณ M3C2 เต็มรูปแบบ
เริ่มด้วยข้อมูลที่ตรวจคำตอบได้
เครื่องคำนวณด้านบนใช้ข้อมูลในเบราว์เซอร์ ไม่มีการอัปโหลดพิกัด สามารถอ่านสมการและทำจาก CSV ได้แม้ปิด JavaScript ดาวน์โหลด ชุดฝึกและสคริปต์ ZIP หรือ คู่มือชุดฝึก
ทดลองด้วยภาพชุดเดียวกัน
เริ่มจาก สร้างแผนที่แรก แล้วเลือกชุดภาพที่มีสิทธิ์ใช้และมีพิกัดควบคุมที่ตรวจสอบได้จาก ODMdata ต้องตรวจ metadata วิธีรังวัด ความไม่แน่นอน และสิทธิ์รายชุดก่อนใช้ประเมินจริง ชุดภาพเริ่มต้นที่ไม่มี CP ใช้ฝึก pipeline ได้แต่ยังตรวจความถูกต้องเชิงตำแหน่งไม่ได้
| รอบ | สิ่งที่เปลี่ยน | สิ่งที่คงเดิม |
|---|---|---|
| A | ใช้ geotag ภาพอย่างเดียว | ภาพ engine รุ่น CRS และค่าประมวลผลอื่น |
| B | ใช้ GCP กระจุกด้านเดียว | CP สุดท้ายและวิธีตรวจเดียวกับ A |
| C | ใช้ GCP กระจายทั่วพื้นที่และระดับ | CP สุดท้ายชุดเดิมที่ไม่ใช้ปรับ |
ทำสำเนาโครงการและบันทึกค่าทุกรอบ WebODM ระบุ checkpoint ด้วยชื่อขึ้นต้น CHK- ตามคู่มือ ตรวจ report ว่า engine ที่ใช้แยกจุดนี้จริง หากใช้จุดตรวจช่วยเลือกค่าระหว่างพัฒนา ให้กันอีกชุดสำหรับการประเมินสุดท้าย ไม่สรุปว่ารอบ C ต้องชนะเสมอโดยไม่ได้วัด
F20: สูตรพื้นที่ภาพ ภาพซ้อนทับ และภาพเบลอ
คำถามแรกคือหนึ่งพิกเซลแทนระยะบนพื้นเท่าใด ความสูงต้องวัดเหนือพื้นเป้าหมาย ไม่ใช่เหนือจุดขึ้นบินเสมอ ใช้ความกว้าง sensor และจำนวนพิกเซลในแกนเดียวกัน
GSD = H × S / (f × N)
| ตัวแปร | ความหมายและหน่วย | ช่วงและแหล่งค่า |
|---|---|---|
| H | ความสูงเหนือพื้นเป้าหมาย m | > 0 จากแผนความสูง/ภูมิประเทศ |
| S, f | ความกว้างส่วน sensor ที่ภาพครอบคลุม และ focal length จริง mm | > 0; ภาพเต็มใช้ S จาก specification กล้อง ส่วนภาพ crop ต้องลด S ตามสัดส่วนที่เหลือ; ไม่ใช้ focal length เทียบเท่า 35 mm |
| N, N_w, N_h | จำนวนพิกเซลตามแกนที่เลือก, กว้าง, สูง pixel | จำนวนเต็ม > 0 จากภาพที่คำนวณ; N ต้องจับคู่กับ S ของขอบเขตภาพเดียวกัน |
| GSD | ระยะพื้นต่อพิกเซล m/pixel | > 0 จากสูตร; คูณ 100 เป็น cm/pixel |
| F_w, F_h | ความกว้าง/ยาว footprint m | > 0; N ของแต่ละแกนคูณ GSD |
| o_side, o_front | สัดส่วนซ้อนทับ ไม่มีหน่วย | 0 ≤ o < 1; 70% ป้อนเป็น 0.70 |
| v | ความเร็วเหนือพื้น m/s | > 0 สำหรับคำนวณช่วงถ่าย; ไม่ใช้ airspeed แทน |
| t_exp, t | เวลาเปิดรับแสง, ช่วงถ่าย s | > 0 จากกล้อง/ผลคำนวณ |
| b_px | ระยะเบลอโดยประมาณ pixel | ≥ 0; ไม่ใช่ความน่าจะเป็นภาพเสีย |
สมมติ H = 60 m, S = 13.2 mm, f = 8.8 mm, N = 5472 pixel: GSD = (60 × 13.2)/(8.8 × 5472) = 0.01644737 m/pixel = 1.644737 cm/pixel หน่วย mm ตัดกัน เหลือ m/pixel ค่านี้เป็น sampling distance ไม่ใช่ absolute accuracy ของแผนที่ Pix4D: Camera Focal Length, Altitude and GSD (S19), ตรวจ 26 กันยายน 2569
Crop กับ resize เปลี่ยนคนละอย่าง: หาก crop ความกว้างจาก 5472 เหลือ 2736 pixel โดยไม่ resample ให้ใช้ S ที่ภาพครอบคลุม = 13.2 × (2736/5472) = 6.6 mm ดังนั้น GSD = (60 × 6.6)/(8.8 × 2736) = 0.01644737 m/pixel เท่าเดิม แต่ footprint กว้างเหลือ 2736 × GSD = 45 m จากเดิม 90 m ห้ามใช้ S เต็ม 13.2 mm คู่กับ N หลัง crop แล้วสรุปว่า GSD เพิ่มเป็นสองเท่า
หากย่อภาพเต็มกรอบจาก 5472 เหลือ 2736 pixel ด้วย resize โดยไม่ crop ขอบเขตภาพยังเดิม จึงคง S = 13.2 mm และใช้ N ใหม่ได้ GSD ของภาพผลลัพธ์เป็น 0.03289474 m/pixel แต่ footprint ยังกว้าง 90 m ส่วนการขยายจำนวนพิกเซลด้วย interpolation ไม่สร้างรายละเอียดที่กล้องไม่ได้บันทึก หาก crop แล้ว resize ต่อ ให้ปรับ S ตามส่วนที่ crop ก่อน แล้วใช้ N หลัง resize; การย่อแต่ละแกนไม่เท่ากันต้องคำนวณ GSD แยกแกนแทนสมมติพิกเซลจัตุรัส
ภาพระบุทิศทาง N_w และ N_h ของตัวอย่างเพื่อไม่สลับ front/side เมื่อหมุนกล้อง ต้องเปลี่ยนแกน footprint ที่ใช้วางแนวให้ตรงด้วย
สำหรับภาพดิ่ง พื้นราบ และพิกเซลจัตุรัส ใช้ GSD หน่วย m/pixel:
- ความกว้างภาพบนพื้น
F_w = N_w × GSD; ความยาวภาพF_h = N_h × GSD - ระยะระหว่างแนว
d_side = F_w × (1 − o_side) - ระยะถ่ายภาพตามแนว
d_front = F_h × (1 − o_front) - ช่วงเวลาถ่าย
t = d_front / vโดย v เป็นความเร็วเหนือพื้น m/s - ระยะเบลอเชิงเส้นบนภาพโดยประมาณ
b_px = v × t_exp / GSDโดย t_exp เป็นเวลาเปิดรับแสงวินาที
ตัวอย่างกล้องสมมติ 5,472 × 3,648 px, GSD = 60/3,648 m/px ได้ footprint 90 × 60 m; overlap ข้าง 70% หน้า 80% ให้ระยะ 27 m และ 12 m; ความเร็ว 5 m/s ให้ช่วงถ่าย 2.4 s; shutter 1/1,000 s ให้เบลอประมาณ 0.304 px สูตรเบลอยังไม่รวมการสั่น การหมุน rolling shutter และลม และกล้องต้องรองรับช่วงถ่ายที่คำนวณ
ตัวอย่างตรวจหน่วยและแบบฝึก F20
จากค่าข้างต้น F_w = 5472 × 0.01644737 = 90 m และ F_h = 3648 × 0.01644737 = 60 m; d_side = 90 × (1−0.70) = 27 m, d_front = 60 × (1−0.80) = 12 m; t = 12 m / (5 m/s) = 2.4 s; b_px = (5 m/s × 0.001 s)/(0.01644737 m/pixel) = 0.304 pixel
สูตรนี้สมมติกล้องดิ่ง พื้นราบ พิกเซลจัตุรัสและความเร็วคงที่ ไม่ครอบคลุม relief, oblique imagery, การหมุน/สั่นและ rolling shutter หาก H เปลี่ยนตามภูมิประเทศ GSD และ overlap จะเปลี่ยนตาม กล้องยังต้องบันทึกได้ทันช่วงถ่ายและอาจมีข้อจำกัด trigger ไม่ใช้สูตรนี้รับรองแผนบิน
โจทย์: เปลี่ยน v จาก 5 เป็น 10 m/s โดยคงกล้อง ความสูง overlap และ shutter เดิม ช่วงถ่ายและ blur เป็นเท่าใด?
เฉลย F20
t = 12/10 = 1.2 s และ b_px = 10 × 0.001 / (60/3648) = 0.608 pixel; GSD และระยะห่างแนวยังเท่าเดิม ยอมรับ ±0.001 s และ ±0.001 pixel ห้ามหารด้วย v = 0 หรือใช้ overlap = 80 แทน 0.80
ใช้เครื่องคำนวณเดิมด้านบนตรวจการแทนค่าได้ โดยสูตรข้อความยังอ่านได้เมื่อปิด JavaScript
สูตรตรวจจุดอิสระ
กำหนด residual e_Xi = X_model,i − X_reference,i เช่นเดียวกันกับ Y และ Z ทั้งสองชุดต้องอยู่ CRS datum และหน่วยเดียวกัน
bias_X = Σe_Xi / n
RMSE_X = √(Σe_Xi² / n)
RMSE_H = √(RMSE_X² + RMSE_Y²) และ RMSE_Z = √(Σe_Zi² / n)
RMSE_H ในบทนี้เป็นค่ารวมสองแกนตามนิยามนี้ ไม่แปลงอัตโนมัติเป็นค่าที่ระดับความเชื่อมั่น 95% และไม่ได้หักความไม่แน่นอนของจุดอ้างอิง
CSV สมมติ 4 จุดมี X error = 0.03, −0.03, 0.03, −0.03 m; Y = 0.04, −0.04, −0.04, 0.04 m; Z ทุกจุด = 0.05 m จึงได้ bias_X = bias_Y = 0, RMSE_H = 0.05 m, bias_Z = RMSE_Z = 0.05 m แม้ค่าเฉลี่ย X/Y เป็นศูนย์ก็ยังมีความคลาดเคลื่อน
รันบน Windows และ Linux
แตก ZIP และเปิด terminal ในโฟลเดอร์นั้น ใช้ Python 3 โดยไม่ต้องติดตั้ง package เพิ่ม: Windows ใช้ py analyze.py checkpoints.csv; Linux ใช้ python3 analyze.py checkpoints.csv ผลแสดง JSON พร้อมหน่วย เมื่อนำข้อมูลจริงมาใช้ต้องตรวจรูปแบบและความเป็นอิสระของ CP เอง สคริปต์ไม่รับรองมาตรฐาน
ส่ง บันทึกการทดลอง และผลคำนวณ พร้อมอธิบายว่าค่าใดต่างจากตัวอย่างและเพราะอะไร อ่านต่อ ตรวจความถูกต้อง และ ส่งมอบข้อมูล
บรรณานุกรมและขอบเขต
ตรวจเอกสาร 25 กันยายน 2569 ตัวเลขฝึกเป็นข้อมูลสมมติ ไม่ใช่ผลทดสอบบินหรือใบรับรองงานสำรวจ
- USGS (2023). Guidelines for calibration of uncrewed aircraft systems imagery: การสอบเทียบ คุณภาพจุดควบคุม และ metadata
- WebODM. Ground Control Points และ Marking Checkpoints: รูปแบบข้อมูลและจุดตรวจอิสระ
- ASPRS (2024). Positional Accuracy Standards Edition 2 Version 2: แหล่งมาตรฐานสำหรับศึกษาข้อกำหนด ไม่ใช่การรับรองชุดฝึกนี้
- NIST. Propagation of error considerations: การรวมความไม่แน่นอนและ covariance
- NOAA NGS. Technical Notes on Geoid Undulations: ความสัมพันธ์ของระบบความสูงและนิยาม geoid ใช้อธิบายหลักการ ไม่ใช้แบบจำลองสหรัฐฯ แทนข้อมูลประเทศไทย
- Pix4D. Camera focal length, flight altitude and GSD: ความสัมพันธ์กล้อง ความสูง และขนาดพิกเซลบนพื้น
เชื่อมความรู้กับภารกิจและข้อมูล
เก็บ application version, processing engine, options, input manifest และบันทึกการประมวลผลร่วมกับผลลัพธ์ เว็บเดิมแยก WebODM จาก ODM แล้ว ต้องรักษาความต่างนี้เมื่อทำตามคู่มือคนละรุ่นหรือเทียบผล อ่านแหล่งอ้างอิง: WebODM — Documentation
ฝึกตรวจความเข้าใจ: กรอก manifest ก่อนประมวลผลหนึ่งงาน และระบุว่าขั้นตอนใดตรวจจากคู่มือกับขั้นตอนใดทดลองจริง
อ่านต่อ บทที่ใช้ความรู้นี้ในงานจำลอง · ทบทวนแหล่งข้อมูล 26 กันยายน 2569
ดาวน์โหลดชุดตรวจคำตอบสูตรพื้นฐาน (JSON) · ข้อมูลสังเคราะห์พร้อมหน่วย ใช้เปรียบเทียบผลคำนวณของตนเอง