top of page

สร้างระบบค้นหาอุกกาบาต ด้วย Python ไปกับ REAL WORLD PYTHON

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


REAL WORLD PYTHON | ระบบค้นหาอุกกาบาต ออกอากาศวันที่ 11 พฤษภาคม 2565 เวลา 1 ทุ่มครึ่ง


ใกล้หรือไกล ดูจากความเคลื่อนไหว


สิ่งต่างๆ ที่อยู่บนท้องฟ้า ประกอบไปด้วยทั้งดวงดาว กาแลกซี ดาวเคราะห์ และอื่นๆ อีกมากมาย สำหรับการตรวจจับสิ่งที่เข้าใกล้โลก อย่างอุกกาบาตที่อาจมีอันตราย หรือแค่ผ่านโลกไปเฉยๆ เราจะใช้ความเคลื่อนไหวที่สังเกตได้เป็นตัวคัดกรองเบื้องต้น


เนื่องจากหากสิ่งใดๆ ก็ตามที่อยู่ไกลมากๆ แม้จะเคลื่อนไหวมากแค่ไหน ความเปลี่ยนแปลงจะสังเกตได้ยาก แต่หากมีการเข้าใกล้มายังโลก ความเคลื่อนไหวจะสังเกตได้ง่ายกว่า


หอดูดาวยุคก่อนคอมพิวเตอร์


ก่อนการใช้งานคอมพิวเตอร์อย่างแพร่หลาย หลายๆ อย่างที่เกิดขึ้นอย่างอัตโนมัติในปัจจุบันต้องใช้คนเข้าไปทำ และรวมไปถึงการสังเกตการณ์สิ่งต่างๆ บนท้องฟ้า โดยสำหรับการสังเกตการณ์สิ่งต่างๆ อย่างเช่นอุกกาบาต หรือการค้นหาดาวเคราะห์ ทำผ่านอุปกรณ์ที่เรียกว่า "Blink Comparator"


Blink Comparator จะเป็นกล้องส่องภาพที่มีแขนจับภาพสองภาพ และกลไกที่ช่วยแสดงสองภาพนี้สลับกัน ทำให้เราเห็นความแตกต่างของสองภาพนี้ได้ง่ายขึ้นกว่าการมองทีละภาพ อุปกรณ์นี้เป็นอุปกรณ์ที่ถูกใช้จริง และหนึ่งในเหตุการณ์ที่สำคัญที่เกิดขึ้นเพราะอุปกรณ์นี้ คือ การค้นพบดาวพลูโต


ระบบตรวจสอบอุกกาบาตจำลอง


ในบทเรียนนี้เราจะทำการสร้าง Blink Comparator จำลองด้วย Python เพื่อทำการเปรียบเทียบภาพของ 2 คืน ให้เห็นการเดินทางของดาวเคราะห์ที่เคลื่อนที่ผ่านจุดสังเกตการณ์ และรวมไปถึงการใช้เครื่องมือจากเทคโนโลยี Computer Vision เข้าไปตรวจจับความแตกต่างของภาพสองภาพที่ช่วยทำให้การตรวจจับในลักษณะนี้ในปัจจุบันเกิดขึ้นโดยระบบอัตโนมัติที่คอยตรวจสอบให้แทนการใช้คน


Checkpoint: จะใช้ได้จริง จะต้องทำสิ่งเหล่านี้ได้!

สำหรับการสร้างโปรเจคในวันนี้ สามารถทำตามขั้นตอนตามด้านทางทีละขั้นตอน ตาม checkpoint ด้านล่างได้เลย!


Blink Comparator

Checkpoint 1 ระบุที่อยู่ไฟล์ภาพ



Checkpoint 2 เปิดภาพทั้งสองเพื่อใช้งาน

Checkpoint 3 สร้างคำสั่งเพื่อสร้างข้อมูลภาพที่ใช้งาน และเรียกใช้งานคำสั่ง

Checkpoint 4 กำหนดค่าสำหรับการตั้งชื่อหน้าจอ และกำหนดจำนวนการกระพริบ

Checkpoint 5 ทำซ้ำเพื่อให้เปิดภาพ "Blink" ให้เห็นความแตกต่าง

Checkpoint 6 สร้างคำสั่งนำภาพมาแสดงผลสลับกัน

Checkpoint 7 ทดลองใช้คำสั่งกระพริบภาพ


ตรวจจับความเคลื่อนไหวด้วย Computer Vision


Checkpoint 1 ระบุที่อยู่ไฟล์ภาพ



Checkpoint 2 เปิดภาพทั้งสองเพื่อใช้งาน

Checkpoint 3 หาความแตกต่างของ 2 ภาพ

Checkpoint 4 สร้างคำสั่งเพื่อสร้างข้อมูล และเรียกใช้คำสั่ง

Checkpoint 5 แสดงผลภาพ

Checkpoint 6 สร้างคำสั่งสำหรับการแสดงผลภาพ และเรียกใช้คำสั่ง

Checkpoint 7 ค้นหาจุดที่สว่างที่สุด (ดาวเคราะห์)

Checkpoint 8 วงกลมจุดที่สว่างที่สุดเพื่อระบุตำแหน่ง

Checkpoint 9 แสดงภาพที่มีการวงกลมให้เห็นผลลัพธ์

Checkpoint 10 สร้างคำสั่งค้นหาดาวเคราะห์ และเรียกใช้งาน

Checkpoint 11 คัดลอกภาพมาเพื่อใช้ค้นหาอีกครั้ง

Checkpoint 12 ทำการวงถมดำตำแหน่งของดาวที่หาเจอลงบนภาพที่คัดลอกมา

Checkpoint 13 ทำการค้นหาตำแหน่งดาวดวงถัดไป และวงลงไปในภาพแรก

Checkpoint 14 นำภาพแรกมาซ้อนทับกับภาพที่แสดงดาวใน 2 จุด

Checkpoint 15 แสดงผลลัพธ์จากการค้นหา


อยากค้นหาอะไรในอวกาศ? บอกเราผ่าน Discord เวปไซต์ที่น่าสนใจจะถูกหยิบมาสร้างเป็นบทเรียนถัดไป!

304 views0 comments
bottom of page