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

หนึ่งในความท้าทายหลักของภาพถ่ายดาวเทียมคือการจัดการกับการรับข้อมูลเชิงลึกจากชุดข้อมูลขนาดใหญ่ซึ่งได้รับการอัปเดตอย่างต่อเนื่อง ในบล็อกโพสต์นี้ ฉันต้องการแสดงให้เห็นว่าคุณสามารถใช้ป้ายกำกับที่กำหนดเองของ 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 ได้ทันที

สร้างและติดป้ายกำกับชุดข้อมูล

  1. สร้างชุดข้อมูล
  2. เลือก “อัปโหลดภาพจากคอมพิวเตอร์ของคุณ”
  3. ในหน้าชุดข้อมูลคลิก "เพิ่มรูปภาพ"
  4. ในหน้าต่างป๊อปอัป คลิกเลือกไฟล์ และเลือกไฟล์จากคอมพิวเตอร์ของคุณ จากนั้นคลิก “อัพโหลดภาพ”
  5. สร้างป้ายกำกับ "ช่องที่ใช้งานอยู่", "ช่องกึ่งใช้งาน", "ช่องที่ไม่ได้ใช้งาน"
  6. คลิก "เริ่มติดป้ายกำกับ" เลือกรูปภาพ จากนั้นคลิก "วาดกรอบขอบ"
  7. ในหน้าใหม่ คุณสามารถเลือกป้ายกำกับแล้ววาดรูปสี่เหลี่ยมสำหรับแต่ละป้ายกำกับได้ หลังจากคุณติดป้ายกำกับเสร็จแล้ว คุณสามารถเปลี่ยนไปใช้รูปภาพอื่นหรือคลิก "เสร็จสิ้น"

ฝึกฝนและรันโมเดล

  1. ในหน้าโครงการคลิก "สร้างโครงการ"
  2. ในหน้าโครงการเลือก “Train new model”
  3. เลือกชุดข้อมูลที่เราเพิ่งสร้างขึ้น จากนั้นเลือก "แยกชุดข้อมูลการฝึกอบรม" สำหรับชุดข้อมูลทดสอบ จากนั้นคลิก "รถไฟ"
  4. เมื่อโมเดลได้รับการฝึกฝนแล้ว คุณสามารถเริ่มคาดการณ์ได้

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

เห็นภาพผลลัพธ์

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

ผลลัพธ์จะมีลักษณะดังนี้:

บทสรุป

เราได้ฝึกอบรมและปรับใช้แบบจำลองสำหรับการค้นหาพื้นที่เกษตรกรรมด้วยภาพถ่ายดาวเทียมโดยใช้ Amazon Rekognition ดังที่คุณเห็นว่าการตั้งค่าทุกอย่างค่อนข้างเรียบง่าย และคุณสามารถใช้ตัวอย่างนี้เพื่อพัฒนาแบบจำลองที่ซับซ้อนมากขึ้นสำหรับงานภาพถ่ายดาวเทียมอื่นๆ เช่น การตรวจสอบป่าไม้และการตรวจจับอาคาร

อย่าลังเลที่จะตรวจสอบรหัสใน repo ต่อไปนี้:

https://github.com/ryfeus/amazon-rekognition-custom-labels-satellite-imagery