The English version of this page is being translated and reviewed; the Thai original is shown for now.

Processing experiments and checking mapping formulas

ใช้ภาพชุดเดียวกันเปรียบเทียบการควบคุม พร้อมเครื่องคำนวณและไฟล์ฝึกที่ตรวจคำตอบได้

Last updated:

นักวิเคราะห์เปรียบเทียบภาพแผนที่กับกลุ่มจุดควบคุมบนจอคอมพิวเตอร์
ภาพประกอบแนวคิดสร้างด้วย AI

ลองคำนวณและตรวจหน่วย

ตัวอย่างเพื่อเรียนสูตร คำนวณในเครื่องของคุณและไม่ส่งข้อมูลขึ้นเซิร์ฟเวอร์ ดูสมมติฐานและวิธีทำด้วยตนเองในบทด้านล่าง

เริ่มด้วยข้อมูลที่ตรวจคำตอบได้

เครื่องคำนวณด้านบนใช้ข้อมูลในเบราว์เซอร์ ไม่มีการอัปโหลดพิกัด สามารถอ่านสมการและทำจาก CSV ได้แม้ปิด JavaScript ดาวน์โหลด ชุดฝึกและสคริปต์ ZIP หรือ คู่มือชุดฝึก

การใช้ภาพเดียวกันเปรียบเทียบวิธีประมวลผล โดยกัน CP สุดท้ายออกจากการปรับ

ทดลองด้วยภาพชุดเดียวกัน

เริ่มจาก สร้างแผนที่แรก แล้วเลือกชุดภาพที่มีสิทธิ์ใช้และมีพิกัดควบคุมที่ตรวจสอบได้จาก 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 แยกแกนแทนสมมติพิกเซลจัตุรัส

ภาพบนพื้นกว้าง 90 ยาว 60 เมตร แสดงระยะข้าง 27 เมตรและตามแนว 12 เมตร

ภาพระบุทิศทาง 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 ตัวเลขฝึกเป็นข้อมูลสมมติ ไม่ใช่ผลทดสอบบินหรือใบรับรองงานสำรวจ

เชื่อมความรู้กับภารกิจและข้อมูล

เก็บ application version, processing engine, options, input manifest และบันทึกการประมวลผลร่วมกับผลลัพธ์ เว็บเดิมแยก WebODM จาก ODM แล้ว ต้องรักษาความต่างนี้เมื่อทำตามคู่มือคนละรุ่นหรือเทียบผล อ่านแหล่งอ้างอิง: WebODM — Documentation

ฝึกตรวจความเข้าใจ: กรอก manifest ก่อนประมวลผลหนึ่งงาน และระบุว่าขั้นตอนใดตรวจจากคู่มือกับขั้นตอนใดทดลองจริง

อ่านต่อ บทที่ใช้ความรู้นี้ในงานจำลอง · ทบทวนแหล่งข้อมูล 26 กันยายน 2569

ดาวน์โหลดชุดตรวจคำตอบสูตรพื้นฐาน (JSON) · ข้อมูลสังเคราะห์พร้อมหน่วย ใช้เปรียบเทียบผลคำนวณของตนเอง

Used in courses

How to cite this page

Drone Institute, Rangsit University. (2026). Processing experiments and checking mapping formulas. In UAS Technology Knowledge Hub (B.Tech.). https://rsu-drt.pk-research.work/en/kb/knowledge/drone-mapping/processing-lab/

Original from Drone-Hub: https://drone.pk-research.work/knowledge/drone-mapping/processing-lab/ · © PK-Research