ต้นไม้ในกรุงเทพมีกี่ต้น? เป็นคำถามที่ตอบได้ยาก เนื่องจากข้อมูลปัจจุบันยังไม่มีหน่วยงานใดเป็นผู้รวบรวม และเป็นงานที่ใหญ่มากหากใช้กำลังคนในการเก็บ
ในเบื้องต้นเราแบ่งต้นไม้ออกเป็น 2 กลุ่ม กลุ่มแรกคือต้นไม้ส่วนกลาง(กทม.) อีกกลุ่มคือต้นไม้ส่วนตัว (เอกชน,ประชาชน) เฉพาะส่วนของ กทมนั้นเราสามารถแบ่งได้อีก 2 กลุ่มคือ
1.ต้นไม้ในสวนสาธารณะ (อยู๋ในความดูแลของกองงานสวนสาธารณะ๗
2.ต้นไม้ริมฟุตบาธ,เกาะกลาง (อยู่ในความดูแลของแต่ละเขต)
โปรเจกต์นี้โฟกัสที่ต้นไม้ริมฟุตบาธ,เกาะกลางโดยการ detect รูปต้นไม้จาก google street view โดยใช้ AI
Input : shape file ของกทม. , รายเขต, รายแขวง
Output : way_id ทัั้งหมดของถนนในกทม. (ไม่จำกัดเฉพาะที่อยู่ในความดูแลของ กทม.)
Description : เขียน script สำหรับ extract ข้อมูลจาก shape file เฉพาะ road-layer
Tech. Concern : ลักษณะข้อมูลของ way_id
- 1 way_id ใน osm เทียบเท่ากับ ชื่อถนน 1 เส้นในกทม.หรือไม่
- 1 way_id ใน osm สำหรับถนนข้ามจังหวัด จะมีข้อมูลของถนนเส้นนั้นทั้งหมด หรือมีเฉพาะถนนส่วนที่อยู่ใน กทม. (shapefile เป็น กทม.)
1.หาข้อมูลถนนทุกเส้นในแต่ละเขตกทม.ในลักษณะ (way-id) หรือ shapfile - ตอนนี้มีข้อมูลเขตวัฒนา.
2.แปลงข้อมูลเป็น list ของ way_id เพื่อเอาไปใช้ต่อ
Technical Concern
- ถนนแต่ละเส้นอาจมีหลาย way_id (ถามกลุ่ม Thai-OpenStreetMap)
- ความห่างแต่ละ node ไม่สม่ำเสมอ ขึ้นอยู่กับ Contributor อาจแก้ได้โดย
- ใช้คน contribute ลง OSM
- นำ node ที่มีมาเขียน script เพิ่ม node ระหว่างทางทีหลัง เช่นสร้างเป็น node list ทุกๆ 20 เมตร
ผลลัพธ์ที่ต้องการ Array ของ Node ของถนน 1 เส้น
- ดึงข้อมูลจาก openstreetmap ในแต่ละเขตโดยเอาเฉพาะข้อมูลถนน (ways).
- นำ way_id ออกมา.
- นำข้อมูลจากแต่ละถนนมาดึงภาพจาก google street map. จาก way_id โดย.
3.1 ใช้ way_id ดึง node_list ของถนนออกมา.
3.2 คำนวณ direction ของถนนว่าควรหันหน้าไปทางไหน (ใช้ปรับ head ในการดึงภาพจาก GSM).
3.3 ดึงภาพจาก GSM จุดนั้น โดยหันหน้าตรง และมุมเงย 20 องศา (มุมที่คาดว่าเห็นพ้นยอดต้นไม้).
3.4 เซฟภาพลงใน folder ของแต่ละถนน (way_id).
3.5 กระโดดไปยังจุดถัดไปของ node (หรือสามารถปรับระยะ shift ได้ เช่นทุกๆ 20m) แล้วทำซ้ำจนจบถนน
MINIMUM FEATURE : ดูดภาพจาก GSM ของถนนแต่ละเส้นได้
** ปัญหาที่คิดว่าน่าจะเกิด - มีต้นไม้ต้นเดียวกันใน 2 รูป (ไม่แน่ใจว่ามีวิธีที่ทำให้ภาพซ้อนกันน้อยที่สุดหรือไม่).
** หรืออาจต้องใช้วิธีการเดินไปทีละ node, get forward direction แล้วหันซ้าย,ขวา เพื่อเอาแนวตั้งฉาก (ถ้ามองตรงจะเป็น perspective)
1.นำภาพที่ได้จากถนนแต่ละเส้นมา label ต้นไม้.
2.Train model เพื่อตรวจจับต้นไม้โดยใช้ yolo.
3.ทดสอบ model ว่าสามารถตรวจจับต้นไม้ได้
1.นำภาพที่จับต้นไม้ได้มาหาระยะทางจาก lat-long ที่ใช้ดึงภาพจาก GSM.
2.ฟังก์ชันคำนวณตำแหน่งต้นไม้ที่แท้จริง (เพื่อนำไปบันทึกข้อมูล)
- มี code ส่วนที่ดึงภาพ GSM จาก roads แบบปรับระยะได้ เช่นทุกๆ 20 เมตร (นำ opensource อื่นมาต่อยอด)
- มี code คำนวณองศาของถนนว่ามุ่งตรงไปยังทิศได้ (0-360) อิงจากทิศเหนือ โดยคำนวณจาก node ต่อ node บนถนนเส้นเดียวกัน
- มีข้อมูลส่วนของเขตวัฒนาในลักษณะ shapefile