ตอนที่ 1 ผมได้แนะแนววิธีการติดตั้ง OpenDroneMap ไปอย่างย่อและได้แนะนำลิ๊งค์ให้ไปดูกันต่อที่ละเอียดมาก มาในตอนนี้มาทดสอบวิธีการคำนวณจากชุดภาพตัวอย่าง
ODMData
ตามไปที่ลิ๊งค์นี้ จะเห็นข้อมูลภาพชุดตัวอย่าง (Dataset) ในฐานะที่ผมเป็นช่างสำรวจ ผมสนใจชุดภาพที่มี GCPs (Ground Control Points) และชุดภาพที่มีค่าพิกัดจาก RTK ติดมาที่แท็กหรือ Exif ของภาพ แต่น่าเสียดายที่ผมลองข้อมูลชุดนี้ไม่น่าพอใจ ชุดข้อมูลชื่อ “bellus” มี GCPs ให้ลองแต่เมื่อผมลองคำนวณโดยการเลือกใช้ GCPs กลับพบว่าโมเดล 3D พลิกกลับบนล่าง ผมลองต่อด้วยข้อมูลตัวอย่าง “boruszyn” ใช้ GCPs แต่ก็พบว่าคำนวณ triangulation ไม่ผ่าน ก็ล้มเลิกจะใช้ขุดตัวอย่างจากผู้พัฒนา
ข้อมูลทดสอบจากแหล่งอื่น
มาเริ่มจากตัวอย่างกันง่ายๆกันก่อน ได้แก่ชุดภาพ (Dataset) ที่ใช้ค่าพิกัด GNSS จากภาพถ่าย (Exif Data) ในขณะถ่ายรูป ไปดาวน์โหลดไฟล์ได้ที่ ลิ๊งค์นี้ ดูลิขสิทธิ์แล้ว OK เมื่อดาวน์โหลดมาแล้ว ผม unzip โฟลเดอร์ “small_buildings” ไปไว้ที่ไดรว์ D ของเครื่องผมตั้งชื่อโฟลเดอร์หลักว่า “WebODM Projects”
ในโฟลเดอร์ “images” จะมีรูปถ่ายของโดรนจำนวน 36 รูป จำนวนรูปภาพน้อยจะทำให้การประมวลผลได้รวดเร็วเหมาะสำหรับการทดสอบเป็นอย่างมาก
สร้างโปรเจค
ที่เว็บบราวเซอร์ ผมใช้ Firefox พิมพ์ที่ช่องแอ็ดเดรสบาร์ “http://localhost:8000” ถ้าไม่มีอะไรผิดพลาดจะเห็น WebODM ปรากฎมาดังรูป
คลิกที่ Add Project ตั้งค่าดังนี้
กลับมาที่บราวเซอร์ ตรง Dashboard จะเห็นโครงการ “small buildings” ที่เราสร้างใหม่ (มีโครงการชื่อ “quarry” ที่ผมทดสอบมาก่อนหน้านั้นด้วย)
นำรูปภาพเข้า
คลิกที่ “Select Images and GCP” ของโครงการ “small buildings” เข้าไปในโฟลเดอร์ “images” เลือกรูปภาพมาทั้งหมด 36 รูป
เมื่อโปรแกรมให้ตั้งค่า options ดังรูปด้านบนส่วน “Resize Images” ลดขนาดภาพลงเพื่อให้คำนวณเร็วขึ้น ตรงนี้เลือก “No” ก่อนเพราะจำนวนรูปน้อย คงใช้เวลาไม่นาน จากนั้นคลิก “Review”
จากนั้นปุ่ม “Review” จะกลายเป็น “Start Processing” คลิกที่ปุ่มนี้พร้อมที่จะคำนวณ
คำนวณ (Processing)
ผมแนะนำให้เปิดแสดงผลการคำนวณ Task Output => On โดยคลิกที่ปุ่ม “On” จะเห็นรายการคำนวณให้เห็นซึ่งเราสามารถติดตามได้ว่าการคำนวณถึงขั้นไหนแล้ว ถ้ามีรายการผิดพลาดจะพอจะทราบได้ว่าปัญหาเกิดจากอะไร ขั้นตอนไหน
แต่พอถึงขั้นตอน Reconstruction all views… จะสร้าง Dense Point Cloud ซึ่งจะเป็นช่วงเวลาที่ใช้เวลานานมาก ณ เวลานี้แนะนำให้เปิดเครื่องทิ้งไว้เพื่อการคำนวณ เครื่องอาจจะมีอาการอืดบ้าง เพราะทรัพยากรเครื่องถูกใช้โดย Docker ตามที่เราได้ตั้งค่าไว้
ผลลัพธ์ (Output)
เมื่อคำนวณผ่าน แถบ progress bar จะขึ้นแถบสีเขียวอ่อนว่า “completed” เครื่องผมใช้เวลาคำนวณประมาณ 1 ชั่วโมง
เนื่องจากงานนี้ผมตั้ง options เป็น 3D Model ลองมาดูสามมิติ เริ่มจากโมเดลที่ได้จาก dense point cloud
3D Dense Point Cloud
โมเดลสามมิติที่ได้จาก point cloud ก็ดูดี เราสามารถเลือกจำนวน point ได้จนถึง 10 ล้านจุดแต่ต้องแลกกับการเรนเดอร์ที่ใช้เวลามากขึ้น
3D Model (Textured Model)
ต่อไปมาดูโมเดล ที่ได้จาก 3D Mesh ที่เมนูด้านซ้ายตรง Textured Model คลิกที่ “Show Model” ผมดูแล้วได้โมเดลที่สวยพอสมควร เนื่องจากภาพถ่ายจากโดรนใช้มุมเงย จึงทำให้ได้รายละเอียดด้านข้างของบ้านมาดี
Orthophoto
สำหรับคนทำแผนที่แล้วภาพ Orthophoto คือสิ่งที่ต้องการมากที่สุดเพราะปรับสเกลมาทั้งภาพและต่อกัน (orthomosaic) เรียบร้อยพร้อมจะนำไปใช้ในโปรแกรมด้าน CAD หรือ GIS ที่รูปด้านบน ด้านล่างจะมีไอคอน “2D” คลิกเพื่อดูภาพ Orthophoto
นำไฟล์ผลลัพธ์ไปใช้งาน
เมื่อต้องการนำไฟล์ไปใช้งานกลับไปที่ “Dashboard” เปิด Task ของโครงการออกมา เลือกที่ “Download Assets” เลือกรูปแบบไฟล์ไปใช้ได้แก่ Orthophoto, Point cloud, 3D Model เป็นต้น
ยังมีเกร็ดเล็กเกร็ดน้อยอีกมากสำหรับ OpenDroneMap ในการใช้งาน เช่นถ้าภาพมีจำนวนมากระดับ 500 รูปขึ้นไป ก่อนการคำนวณจะต้องมีการลดขนาดภาพ (Resize Images) เพื่อให้ขนาดเล็กลง แล้วโปรแกรมสามารถคำนวณโดยที่ใช้เมมโมรีน้อยลงและใช้ระยะเวลาสั้นลง
นอกจากนั้น การใช้ GCPs จะต้องมีการนำภาพที่มี GCPs มาทำการวาง photo point ที่เมนูหลักด้านซ้าย “GCP Interface” ซึ่งผมเห็นว่ายากไปนิด ก็จะมาลองในตอนต่อๆไปครับ ติดตามกันตอนต่อไปครับ