แนะนำโปรแกรมงานคำนวณภาพถ่ายทางอากาศ(โดรน) ด้วย OpenDroneMap (ฟรี) ตอนที่ 1

ช่วงสิบปีที่ผ่านมานี้ ต้องยอมรับว่างานสำรวจทำแผนที่ด้วยโดรนจะมาแรงมาก ตอนนี้เทคโนโลยียิ่งล้ำไปไกล รูปถ่ายที่ดีมากละเอียดมากจากเทคโนโลยีของกล้องถ่ายภาพที่ก้าวกระโดด ส่งผลให้งานคำนวณผลลัพธ์ได้ point cloud ที่ละเอียดมากตามไปด้วย ตอนนี้แนวโน้มงานทำแผนที่ด้วยโดรนจากยุคที่ต้องทำ Ground Control Points (GCPs) ในภาคสนาม กำลังจะเข้าสู่ยุคของ RTK/PPK GNSS เนื่องจากเครื่องรับสัญญาน GNSS มีขนาดเล็กลง รับสัญญานได้หลายแบนด์ ราคาถูกลงมากในระดับหมื่นบาท จึงสามารถเอามาติดตั้งบนโดรนได้ ส่งผลให้งานที่ได้รวดเร็วใช้เวลาน้อย ถูกต้องด้าน X, Y, Z มากยิ่งขึ้น

เมื่อโดรนถ่ายภาพมาแล้ว จะนำภาพเหล่านั้นมานำเข้าและคำนวณด้วยโปรแกรมซึ่งที่มีชื่อเสียงด้านพานิชย์อันได้แก่ Agisoft Metashape, Pix4D, Autodesk Recap, Inpho UASMaster และพอมีชื่อเสียงบ้างอีกมากมาย โปรแกรมระดับชั้นนำอย่าง Agisoft Metashape, Pix4D ที่ผมเคยทดสอบดูก็เป็นระดับเทพจริงๆ สามารถนำ GPU มาช่วยคำนวณแทบจะพูดได้ว่าทำงานแทน CPU เลยก็ว่าได้ สนนราคาก็พอประมาณทั้งแบบซื้อขาดหรือแบบเช่ารายเดือน

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

  • มีให้เลือกใช้หลายรูปแบบตั้งแต่คำสั่ง command line (ODM) หรือแบบผ่านเว็บ WebODM ซึ่งก็มีให้เลือกใช้ย่อยไปอีก 3 ลักษณะคือติดตั้งใช้แบบ Desktop, ติดตั้งบน Cloud Server หรือแบบออฟไลน์ติดตั้งบนทัมป์ไดรว์ (LiveODM) ซึ่งเหมาะกับการเรียนการสอนในห้องเรียน โดยที่ 3 รูปแบบนี้เสียเงินค่าบริการประมาณ 79 US$ ซึ่งผมว่าไม่มากมายสำหรับที่จะนำโปรแกรมมาทำหากิน สำหรับผมเองเลือกวิธีฟรีแบบที่ 4 คือแบบยากโดยดาวน์โหลดเอาโค้ดมาติดตั้งบนเครื่องคอมพิวเตอร์ของผมเองที่ใช้วินโดส์ 10 ผ่าน Docker เพราะ OpenDroneMap พัฒนาบนลีนุกซ์ และที่สำคัญคือต้องติดตั้ง Docker ถึงจะใช้งานได้ จากนั้นเปิด web browser มาใช้งาน รายละเอียดมาว่ากันอีกที
  • ยังไม่สนับสนุน GPU ทำให้คำนวณช้าพอสมควรเมื่อเทียบกับโปรแกรมด้านพาณิชย์ชั้นนำ แต่การคำนวณกำลังพัฒนาและปรับเปลี่ยนไปแบบ split and merge ที่ผู้พัฒนาบอกว่างานคำนวณจะรวดเร็วขึ้นอีกมาก
  • บางชุดภาพคำนวณไม่ผ่าน ทั้งที่ชุดภาพมีจำนวนภาพไม่มากและคำนวณด้วยโปรแกรมอื่นๆผ่าน
  • ขาดฟีเจอร์ที่แสดงการจัดเรียงรูปถ่ายบนท้องฟ้าแบบสามมิติ

สำหรับข้อดีของ OpenDroneMap คือฟรีและมีอนาคตโดยยังมีกลุ่มนักพัฒนาที่นำโดยคุณ Stephen Mather ที่ยังมุ่งมั่นและพัฒนาอยู่

วิธีการติดตั้ง

สำหรับการติดตั้งให้ติดตั้งโปรแกรมเหล่านี้ก่อน ถ้ายังไม่เคยติดตั้ง

  • Docker Desktop for Windows ก่อนจะดาวน์โหลดโปรแกรมมาได้ต้องสมัครสมาชิกเสียก่อน จากนั้นทำการติดตั้ง
  • Python
  • Git

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

ตั้งค่า Docker Desktop

ครั้งแรกโปรแกรมจะให้ล็อกอิน ใช้ username และ password ที่เราสมัครไว้เข้าไป ผมตั้งค่าทั่วไปดังนี้ เลือกไม่รันถ้ายังไม่ได้ล็อกอิน (Start Docker Desktop when log in) เพราะถ้าใช้จะกินทรัพยากรมากไป

ตั้งค่าทั่วไป

ตั้งค่าแบบ Advance สำหรับเครื่องคอมพิวเตอร์ผมเป็นซีพียู Xeon จำนวนคอร์ทั้งหมด 12 คอร์ ผมเลยแบ่งไปให้ 5 คอร์เพื่อเร่งการคำนวณให้เร็วขึ้น แรมในเครื่องมี 32 GB แบ่งให้ 12 GB จากนั้นตั้งโฟลเดอร์ของฮาร์ดดิสค์เสมือนสำหรับให้ Docker และปรับ Disk image คือขนาดพื้นที่ฮาร์ดดิสค์ที่จะใช้เป็นฮาร์ดดิสค์เสมือนในการทำงาน คำแนะนำควรจะตั้งขนาด 100 GB ขึ้นไป

ตั้งค่าแบบ advance

ดาวน์โหลดโค้ด WebODM

ต่อไปจะดาวน์โหลดโค้ดของ WebODM ผ่านโปรแกรม Git ผมใช้วิธีกดปุ่มวินโดส์โลโก้บนคีย์บอร์ด จากนั้นพิมพ์คำว่า bash (ตัวนี้มากับ Git) โปรแกรมจะขึ้นมาดังรูป

bash ที่ติดมากับโปรแกรม Git

จากนั้นดาวน์โหลดโค้ดด้วยคำสั่ง Git และเข้าไปในโฟลเดอร์ webodm แล้วรัน webodm ตามลำดับคำสั่งดังนี้

git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input --depth 1 
cd WebODM 
./webodm.sh start 
สถานะของ WebODM ที่พร้อมจะเรียกใช้ผ่าน web browser

หมายเหตุ ในช่วงรันสตาร์ท webodm จะมีการเรียกใช้สคิปต์ของไพทอน (Python) ด้วย ถ้าไม่ได้ติดตั้งไว้จะ error ในขั้นตอนนี้

ใช้โปรแกรม WebODM

ถ้าไม่มีอะไรผิดพลาด เราสามารถเรียกใช้ใงาน WebODM ได้ผ่าน web browser ด้วยคำสั่ง http://localhost:8000 ที่ช่อง address

WebODM ขณะมีการคำนวณงานภาพถ่ายทางอากาศ

ตอนหน้ามาว่ากันเรื่องการดาวน์โหลดโครงการตัวอย่างมาทำการคำนวณทดสอบดู โปรดติดตามกันตอนต่อไปครับ

11 thoughts on “แนะนำโปรแกรมงานคำนวณภาพถ่ายทางอากาศ(โดรน) ด้วย OpenDroneMap (ฟรี) ตอนที่ 1”

  1. มีอยู่​ช่วงนึง​เปิด​ไม่ได้​ นึก​ว่า​หาย​ไป​เสีย​แล้ว

    ติดตาม​อยู่​ตลอด​ครับ​

    1. งานประจำที่บังคลาเทศค่อนข้างหนัก หาเวลาเขียนบล็อกยากครับ ขอบคุณนะที่ติดตามตลอด

  2. เยี่ยมครับ
    อยากจะให้แนะนำการสกัดข้อมูล point clouds ให้เป็น vector ด้วยครับ
    มันมีฟรีแวร์จำพวกนี้ไหมครับ
    ผมเห็นบางโปรแกรมทำงานคล้ายๆการเขียนเส้นบน point clouds ทำนองนี้ครับ

    1. สวัสดีครับ ขอโทษตอบช้าเพราะเป็นวันหยุดยาว ไม่ทราบว่าการสกัดเป็น vector เป็นพวก point cloud classification ไหมครับ เช่น classify ground points ตัดกลุ่ม point ที่ตกบนหลังคาบ้าน ต้นไม้ออก เหลือเฉพาะที่ตกบนพื้นดินจริงๆ เพื่อเอามาสร้างคอนทัวร์หรือสร้าง DEM
      ถ้าใช่
      1)ลอง SAGA GIS ดู เท่าที่เห็นฟีเจอร์ในรุ่นปัจจุบันเหมือนจะทำได้แล้ว (ผมไม่ได้ใช้นานแล้ว)
      2)Lidar360 (free basic) ทั้งชุดฟรี 30 วัน แต่เบสิคใช้ได้ฟรีตลอด ไม่แน่ใจว่า classify ground points อยู่ในเบสิคไหม ต้องลองเองครับ

  3. ติดตามมาตลอดค่ะ มีเพื่อนคนนึงเคยร่วมทำงานกับพี่ แล้วก็แนะนำมาให้ติดตาม ให้ความรู้มากๆ
    ขอขอบคุณนะคะ ที่สละเวลามาเขียนเพื่อให้ความรู้ ซึ่งเอามาใช้ทำงานได้อย่างดี

    1. สวัสดีครับ ยินดีครับ สมัยนี้โลกโซเชียลดึงไปหมดว่าจะฝ่ายคนอ่านหรือคนเขียน ยังไงๆโลกก็เป็นไปอย่างนี้ ก็จะเขียนไปเรื่อยๆเท่าที่มีแรงครับ

      1. เป็นกำลังใจให้นะคะ คอยติดตามความรู้ดีๆ และเรื่องราวการทำงาน อย่ารีบหมดแรงค่ะ

  4. ยังติดตามอยู่นะครับ

    ผมว่าพี่ประจวบคือที่สุดเรื่องบทความด้าน Geospatial แล้วครับ

    ใน Social เยอะจริงแต่ไม่ลงรายละเอียดระดับอาจารย์ขนาดนี้

    1. ขอบคุณครับจักร์
      ก็มีผิดบ้างถูกบ้าง ส่วนใหญ่เขียนตามประสบการณ์จริง

Leave a Reply to priabroy Cancel reply

Your email address will not be published. Required fields are marked *