ภาพถ่ายดาวเทียมกำลังกลายเป็นแหล่งข้อมูลเชิงลึกที่สำคัญมากขึ้นเรื่อยๆ เกี่ยวกับการเปลี่ยนแปลงที่เกิดขึ้นทั่วโลก มีดาวเทียมหลายดวงที่ให้ข้อมูลสาธารณะโดยครอบคลุมพื้นที่เกือบเต็มโลกและความถี่เกือบทุกสัปดาห์
หนึ่งในความท้าทายหลักของภาพถ่ายดาวเทียมคือการจัดการกับการรับข้อมูลเชิงลึกจากชุดข้อมูลขนาดใหญ่ซึ่งได้รับการอัปเดตอย่างต่อเนื่อง ในบล็อกโพสต์นี้ ฉันต้องการแสดงให้เห็นว่าคุณสามารถใช้ป้ายกำกับที่กำหนดเองของ Amazon Rekognition เพื่อฝึกโมเดลที่จะสร้างข้อมูลเชิงลึกตาม ภาพถ่ายดาวเทียม Sentinel-2 ซึ่งเผยแพร่ต่อสาธารณะบน AWS ได้
ภารกิจ Sentinel-2 เป็นกลุ่มดาวติดตามภาคพื้นดินของดาวเทียมสองดวงที่ให้ภาพออพติคอลที่มีความละเอียดสูง มีความถี่ประมาณ 5 วันและความละเอียด 10 เมตร ในตัวอย่างของเรา เราจะใช้ภาพถ่ายดาวเทียมเพื่อตรวจจับและจำแนกพื้นที่เกษตรกรรม
วิธีเข้าถึงภาพ Sentinel-2
มีหลายวิธีที่คุณสามารถเข้าถึงภาพถ่ายดาวเทียม:
- ใช้หนึ่งในเบราว์เซอร์ที่กล่าวถึงในหน้า https://registry.opendata.aws/sentinel-2/
- ดาวน์โหลดภาพจากบัคเก็ต Amazon S3 โดยตรง Amazon S3 เป็นบริการพื้นที่จัดเก็บข้อมูลที่ให้การเข้าถึงที่ปรับขนาดได้และปลอดภัยสำหรับการดาวน์โหลดและอัพโหลดข้อมูล
เบราว์เซอร์เป็นตัวเลือกที่ดีที่สุดในการค้นหาภาพเดี่ยวสำหรับวันที่และสถานที่ที่ระบุ Amazon S3 เป็นตัวเลือกที่ดีกว่าหากคุณต้องการทำให้เวิร์กโฟลว์เป็นอัตโนมัติหรือพัฒนาแอปพลิเคชันโดยใช้ภาพถ่ายดาวเทียม ฉันต้องการแสดงการใช้งานพื้นที่จัดเก็บ Sentinel-2 Amazon S3 เนื่องจากเป็นวิธีที่ดีที่สุดในการใช้ภาพ หากคุณต้องการจัดระเบียบไปป์ไลน์สำหรับการประมวลผล
ค้นหาฉาก Sentinel-2
หนึ่งในตัวเลือกที่ง่ายที่สุดในการค้นหาฉากที่จำเป็นคือการใช้เบราว์เซอร์ Sentinel-2 มีเบราว์เซอร์หลายตัวอยู่ที่นั่น ในตัวอย่างของเรา เราจะใช้เบราว์เซอร์ EO เนื่องจากมีเส้นทาง S3 สำหรับรูปภาพ โดยพื้นฐานแล้ว คุณเพียงแค่ต้องกำหนดพารามิเตอร์การค้นหา จากนั้นคัดลอกช่องเส้นทาง AWS
ดาวน์โหลดวงดนตรีรูปภาพ
เมื่อจัดการกับภาพถ่ายดาวเทียม เราจะทำงานกับภาพหลายภาพจากสเปกตรัมที่แตกต่างกัน แนวคิดก็คือแต่ละแถบสเปกตรัมสามารถให้ข้อมูลเชิงลึกที่แตกต่างกันได้ ด้วยเหตุนี้ บางครั้งการสร้างภาพที่ไม่ใช่แถบ RGB จึงมีประโยชน์มากกว่า แต่สร้างด้วยแถบอื่นๆ เช่น NIR ซึ่งย่อมาจาก Near Infra-Red imagery วงนี้ให้ข้อมูลเชิงลึกที่ดีเกี่ยวกับพืชพรรณ นั่นคือเหตุผลว่าทำไมการผสมผสานแถบ NIR-แดง-เขียวจึงเป็นที่นิยม และเรียกว่า False Color เนื่องจากไม่ใช่ภาพ RGB ที่แท้จริง เมื่อเรามีเส้นทาง AWS แล้ว เราสามารถใช้คำสั่ง AWS CLI เพื่อดาวน์โหลดแบนด์ที่จำเป็นได้ ในกรณีของเรา เราต้องการสร้างภาพพืชพรรณที่มีสีเท็จซึ่งจะมีคอนทราสต์ที่สูงกว่าสำหรับพื้นที่พืชพรรณ ดังนั้นเราจะต้องดาวน์โหลดแถบ NIR-Red-Greed (8,4,3 ตามลำดับ)
เตรียมรูปภาพ False Color Sentinel-2
เมื่อดาวน์โหลดแบนด์แล้ว เราสามารถใช้แรสเตอร์ริโอ ไลบรารี Python เพื่อรวบรวมภาพ False Color และปรับขนาดแบนด์ได้ตั้งแต่เริ่มแรกพวกมันถูกจัดเตรียมไว้ในรูปแบบ uint16 แต่จริงๆ แล้วค่าของพวกมันอยู่ในช่วง 0–2¹² นี่คือโค้ดตัวอย่างที่ทำสิ่งนั้น:
เราจะได้ผลลัพธ์ดังนี้:
เมื่อเรามีรูปภาพ False Color Vegetation นี้แล้ว เราก็สามารถครอบตัดมันในหลายพื้นที่เพื่อใช้บางส่วนเป็นตัวอย่างและบางส่วนสำหรับชุดข้อมูลการฝึกอบรมและทดสอบ
วิธีฝึกและรันโมเดล Amazon Rekognition
เมื่อเรามีรูปภาพแล้ว เราสามารถสร้างชุดข้อมูลและฝึกโมเดลของเราได้ ข้อดีหลักประการหนึ่งของการใช้ Amazon Rekognition คือ คุณไม่จำเป็นต้องรู้เฟรมเวิร์ก Deep Learning หรือเขียนโค้ดสำหรับการฝึกอบรมหรือการอนุมาน Deep Learning คุณไม่จำเป็นต้องจัดการโครงสร้างพื้นฐานการเรียนรู้เชิงลึกและสามารถเริ่มใช้โมเดล Amazon Rekognition ได้ทันที
สร้างและติดป้ายกำกับชุดข้อมูล
- สร้างชุดข้อมูล
- เลือก “อัปโหลดภาพจากคอมพิวเตอร์ของคุณ”
- ในหน้าชุดข้อมูลคลิก "เพิ่มรูปภาพ"
- ในหน้าต่างป๊อปอัป คลิกเลือกไฟล์ และเลือกไฟล์จากคอมพิวเตอร์ของคุณ จากนั้นคลิก “อัพโหลดภาพ”
- สร้างป้ายกำกับ "ช่องที่ใช้งานอยู่", "ช่องกึ่งใช้งาน", "ช่องที่ไม่ได้ใช้งาน"
- คลิก "เริ่มติดป้ายกำกับ" เลือกรูปภาพ จากนั้นคลิก "วาดกรอบขอบ"
- ในหน้าใหม่ คุณสามารถเลือกป้ายกำกับแล้ววาดรูปสี่เหลี่ยมสำหรับแต่ละป้ายกำกับได้ หลังจากคุณติดป้ายกำกับเสร็จแล้ว คุณสามารถเปลี่ยนไปใช้รูปภาพอื่นหรือคลิก "เสร็จสิ้น"
ฝึกฝนและรันโมเดล
- ในหน้าโครงการคลิก "สร้างโครงการ"
- ในหน้าโครงการเลือก “Train new model”
- เลือกชุดข้อมูลที่เราเพิ่งสร้างขึ้น จากนั้นเลือก "แยกชุดข้อมูลการฝึกอบรม" สำหรับชุดข้อมูลทดสอบ จากนั้นคลิก "รถไฟ"
- เมื่อโมเดลได้รับการฝึกฝนแล้ว คุณสามารถเริ่มคาดการณ์ได้
คุณสามารถประเมินแบบจำลองได้โดยใช้การครอบตัดอย่างใดอย่างหนึ่งจากรูปภาพที่เราเคยประมวลผลมาก่อน Rekognition จะส่งคืนผลลัพธ์ json พร้อมขอบเขตที่คาดการณ์ไว้ซึ่งเราสามารถมองเห็นได้
เห็นภาพผลลัพธ์
คุณสามารถเห็นภาพผลลัพธ์โดยใช้โค้ดต่อไปนี้ในสมุดบันทึก jupyter โค้ดนี้จะแยกวิเคราะห์การตอบสนองจากโมเดล Amazon Rekognition และวาดกล่องการทำนายบนรูปภาพ นอกจากนี้ยังคำนึงถึงประเภทของป้ายกำกับและทำเครื่องหมายการทำนายด้วยสีที่ต่างกันตามชั้นเรียน
ผลลัพธ์จะมีลักษณะดังนี้:
บทสรุป
เราได้ฝึกอบรมและปรับใช้แบบจำลองสำหรับการค้นหาพื้นที่เกษตรกรรมด้วยภาพถ่ายดาวเทียมโดยใช้ Amazon Rekognition ดังที่คุณเห็นว่าการตั้งค่าทุกอย่างค่อนข้างเรียบง่าย และคุณสามารถใช้ตัวอย่างนี้เพื่อพัฒนาแบบจำลองที่ซับซ้อนมากขึ้นสำหรับงานภาพถ่ายดาวเทียมอื่นๆ เช่น การตรวจสอบป่าไม้และการตรวจจับอาคาร
อย่าลังเลที่จะตรวจสอบรหัสใน repo ต่อไปนี้:
https://github.com/ryfeus/amazon-rekognition-custom-labels-satellite-imagery