วิธีที่ xarvio Digital Farming Solutions เร่งการพัฒนาด้วยความสามารถเชิงพื้นที่ของ Amazon SageMaker

โหนดต้นทาง: 1766079

นี่คือโพสต์รับเชิญที่ร่วมเขียนโดย Julian Blau นักวิทยาศาสตร์ข้อมูลที่ xarvio Digital Farming Solutions; BASF Digital Farming GmbH และ Antonio Rodriguez สถาปนิก AI/ML Specialist Solutions ที่ AWS

ซาร์วีโอ Digital Farming Solutions เป็นแบรนด์จาก BASF Digital Farming GmbH ซึ่งเป็นส่วนหนึ่งของแผนก BASF Agricultural Solutions xarvio Digital Farming Solutions นำเสนอผลิตภัณฑ์การทำฟาร์มดิจิทัลที่แม่นยำเพื่อช่วยให้เกษตรกรเพิ่มประสิทธิภาพการผลิตพืชผล ผลิตภัณฑ์ xarvio ที่มีจำหน่ายทั่วโลกใช้การเรียนรู้ของเครื่อง (ML) เทคโนโลยีการจดจำภาพ และแบบจำลองพืชผลและโรคขั้นสูง ร่วมกับข้อมูลจากดาวเทียมและอุปกรณ์สถานีตรวจอากาศ เพื่อให้คำแนะนำด้านการเกษตรที่ถูกต้องและทันท่วงทีเพื่อจัดการความต้องการของแต่ละสาขา ผลิตภัณฑ์ xarvio ได้รับการปรับให้เหมาะกับสภาพการทำฟาร์มในท้องถิ่น สามารถตรวจสอบระยะการเจริญเติบโต และจำแนกโรคและแมลงศัตรูพืชได้ ช่วยเพิ่มประสิทธิภาพ ประหยัดเวลา ลดความเสี่ยง และให้ความน่าเชื่อถือที่สูงขึ้นสำหรับการวางแผนและการตัดสินใจ ทั้งหมดนี้มีส่วนช่วยในการเกษตรแบบยั่งยืน

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

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

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

ภาพรวมของโซลูชัน

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

  • ตรวจหาโรคในไร่นาตั้งแต่เนิ่นๆ
  • วางแผนโภชนาการและการรักษาที่เหมาะสมเพื่อนำไปใช้
  • รับข้อมูลเชิงลึกเกี่ยวกับสภาพอากาศและน้ำเพื่อการวางแผนการชลประทาน
  • การทำนายผลผลิตพืชผล
  • ดำเนินการจัดการพืชอื่น ๆ

เพื่อให้บรรลุเป้าหมายเหล่านี้ การวิเคราะห์ของเรามักต้องมีการประมวลผลภาพดาวเทียมล่วงหน้าด้วยเทคนิคต่างๆ ที่ใช้กันทั่วไปในโดเมนภูมิสารสนเทศ

เพื่อแสดงให้เห็นถึงความสามารถของ SageMaker geospatial เราได้ทดลองด้วยการระบุพื้นที่การเกษตรผ่านแบบจำลองการแบ่งส่วน ML นอกจากนี้ เรายังสำรวจแบบจำลองเชิงพื้นที่ของ SageMaker ที่มีอยู่ก่อนแล้วและนำฟังก์ชันแบบจำลอง (BYOM) ของคุณเองมาใช้กับงานเชิงพื้นที่ เช่น การใช้ที่ดินและการจำแนกประเภทสิ่งปกคลุมที่ดิน หรือการจำแนกพืช ซึ่งมักจะต้องใช้เทคนิคการแบ่งส่วนแบบแพนออปติกหรือความหมายเป็นขั้นตอนเพิ่มเติมในกระบวนการ

ในส่วนต่อไปนี้ เราจะดูตัวอย่างวิธีการดำเนินการขั้นตอนเหล่านี้ด้วยความสามารถเชิงพื้นที่ของ SageMaker คุณยังสามารถปฏิบัติตามสิ่งเหล่านี้ในสมุดบันทึกตัวอย่างแบบ end-to-end ที่มีอยู่ในรายการต่อไปนี้ พื้นที่เก็บข้อมูล GitHub.

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

การตั้งค่าไคลเอนต์

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

### Coordinates for the polygon of your area of interest...
coordinates = [
    [9.181602157004177, 53.14038825707946],
    [9.181602157004177, 52.30629767547948],
    [10.587520893823973, 52.30629767547948],
    [10.587520893823973, 53.14038825707946],
    [9.181602157004177, 53.14038825707946],
]
### Time-range of interest...
time_start = "2022-01-01T12:00:00Z"
time_end = "2022-05-01T12:00:00Z"

ในตัวอย่างของเรา เราทำงานร่วมกับ SageMaker geospatial SDK ผ่านการโต้ตอบด้วยโปรแกรมหรือโค้ด เนื่องจากเราสนใจที่จะสร้างโค้ดไปป์ไลน์ที่สามารถทำให้เป็นอัตโนมัติด้วยขั้นตอนต่างๆ ที่จำเป็นในกระบวนการของเรา โปรดทราบว่าคุณยังสามารถทำงานกับ UI ผ่านส่วนขยายกราฟิกที่มาพร้อมกับ SageMaker geospatial in สตูดิโอ Amazon SageMaker หากคุณต้องการแนวทางนี้ดังที่แสดงในภาพหน้าจอต่อไปนี้ สำหรับการเข้าถึง Geospatial Studio UI ให้เปิด SageMaker Studio Launcher แล้วเลือก จัดการทรัพยากรภูมิสารสนเทศ. สามารถตรวจสอบรายละเอียดเพิ่มเติมในเอกสารได้ที่ เริ่มต้นด้วยความสามารถเชิงพื้นที่ของ Amazon SageMaker.

หลัก UI เชิงพื้นที่

รายการงาน UI เชิงพื้นที่

ที่นี่ คุณสามารถสร้าง ตรวจสอบ และแสดงผลเป็นภาพกราฟิกของงาน Earth Observation (EOJ) ที่คุณเรียกใช้ด้วยคุณลักษณะเชิงพื้นที่ของ SageMaker

กลับไปที่ตัวอย่างของเรา ขั้นตอนแรกสำหรับการโต้ตอบกับ SageMaker geospatial SDK คือการตั้งค่าไคลเอนต์ เราสามารถทำได้โดยสร้างเซสชั่นกับ botocore ห้องสมุด:

import boto3
gsClient = boto3.client('sagemaker-geospatial')

จากจุดนี้ไป เราสามารถใช้ไคลเอ็นต์เพื่อเรียกใช้ EOJ ใดๆ ที่สนใจได้

การรับข้อมูล

สำหรับกรณีการใช้งานนี้ เราเริ่มต้นด้วยการรวบรวมภาพถ่ายดาวเทียมสำหรับพื้นที่ทางภูมิศาสตร์ที่เรากำหนด ขึ้นอยู่กับสถานที่ที่สนใจ ดาวเทียมที่มีอยู่อาจมีการครอบคลุมมากขึ้นหรือน้อยลง ซึ่งมีการจัดภาพของดาวเทียมในลักษณะที่เรียกว่า คอลเลกชันแรสเตอร์.

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

list_raster_data_collections_resp = gsClient.list_raster_data_collections()

ซึ่งจะส่งคืนรายละเอียดของคอลเลกชันแรสเตอร์ต่างๆ ที่มี รวมถึง Landsat C2L2 Surface Reflectance (SR), Landsat C2L2 Surface Temperature (ST) หรือ Sentinel 2A & 2B สะดวกสบาย ภาพระดับ 2A ได้รับการปรับให้เหมาะสมเป็น GeoTIFFs ที่เพิ่มประสิทธิภาพบนคลาวด์ (COGs) แล้ว ดูรหัสต่อไปนี้:

…
{'Name': 'Sentinel 2 L2A COGs',
  'Arn': 'arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8',
  'Type': 'PUBLIC',
  'Description': 'Sentinel-2a and Sentinel-2b imagery, processed to Level 2A (Surface Reflectance) and converted to Cloud-Optimized GeoTIFFs'
…

ลองใช้ตัวอย่างสุดท้ายนี้โดยตั้งค่าของเรา data_collection_arn พารามิเตอร์ไปยังคอลเลกชัน ARN ของ Sentinel 2 L2A COGs

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

response = gsClient.search_raster_data_collection(**eoj_input_config, Arn=data_collection_arn)

โค้ดก่อนหน้าส่งคืน URI ของ S3 สำหรับไทล์รูปภาพต่างๆ ที่มีอยู่ ซึ่งคุณสามารถแสดงภาพโดยตรงกับไลบรารีใดๆ ที่เข้ากันได้กับ GeoTIFF เช่น แรสเตริโอ. ตัวอย่างเช่น ลองนึกภาพของกระเบื้อง True Color Image (TCI) สองแผ่น

…
'visual': {'Href': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/32/U/NC/2022/3/S2A_32UNC_20220325_0_L2A/TCI.tif'},
…

ภาพสีจริง1ภาพสีจริง2

เทคนิคการประมวลผล

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

  • เรียกใช้แบบสอบถามโดยตรงสำหรับคอลเลกชันแรสเตอร์ใด ๆ ที่รวมอยู่ในบริการผ่าน RasterDataCollectionQuery พารามิเตอร์
  • ส่งภาพที่จัดเก็บไว้ใน Amazon S3 เป็นอินพุตผ่าน DataSourceConfig พารามิเตอร์
  • เพียงเชื่อมโยงผลลัพธ์ของ EOJ ก่อนหน้าผ่าน PreviousEarthObservationJobArn พารามิเตอร์

ความยืดหยุ่นนี้ช่วยให้คุณสร้างไปป์ไลน์การประมวลผลประเภทใดก็ได้ที่คุณต้องการ

แผนภาพต่อไปนี้แสดงกระบวนการที่เรากล่าวถึงในตัวอย่างของเรา

งานประมวลผลเชิงพื้นที่

ในตัวอย่างของเรา เราใช้แบบสอบถามการรวบรวมข้อมูลแรสเตอร์เป็นอินพุต ซึ่งเราส่งพิกัดของ AOI และช่วงเวลาที่เราสนใจ เรายังระบุเปอร์เซ็นต์ของการครอบคลุมเมฆสูงสุดที่ 2% เนื่องจากเราต้องการการสังเกตการณ์ที่ชัดเจนและปราศจากเสียงรบกวนในพื้นที่ทางภูมิศาสตร์ของเรา ดูรหัสต่อไปนี้:

eoj_input_config = {
    "RasterDataCollectionQuery": {
        "RasterDataCollectionArn": data_collection_arn,
        "AreaOfInterest": {
            "AreaOfInterestGeometry": {"PolygonGeometry": {"Coordinates": [coordinates]}}
        },
        "TimeRangeFilter": {"StartTime": time_start, "EndTime": time_end},
        "PropertyFilters": {
            "Properties": [
                {"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 2}}}
            ]
        },
    }
}

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไวยากรณ์ของแบบสอบถามที่รองรับ โปรดดูที่ สร้างงานสังเกตการณ์โลก.

การกำจัดช่องว่างของคลาวด์

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

ด้วยความสามารถเชิงพื้นที่ของ SageMaker เราสามารถบรรลุสิ่งนี้ได้โดยการระบุ CloudRemovalConfig พารามิเตอร์ในการกำหนดค่างานของเรา

eoj_config =  {
    'CloudRemovalConfig': {
        'AlgorithmName': 'INTERPOLATION',
        'InterpolationValue': '-9999'
    }
}

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

ตอนนี้เราสามารถเรียกใช้ EOJ ด้วยอินพุตและการกำหนดค่างานของเรา:

response = gsClient.start_earth_observation_job(
    Name =  'cloudremovaljob',
    ExecutionRoleArn = role,
    InputConfig = eoj_input_config,
    JobConfig = eoj_config,
)

งานนี้ใช้เวลาสองสามนาทีจึงจะเสร็จสมบูรณ์ ทั้งนี้ขึ้นอยู่กับพื้นที่อินพุตและพารามิเตอร์การประมวลผล

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

response = gsClient.export_earth_observation_job(
    Arn = cr_eoj_arn,
    ExecutionRoleArn = role,
    OutputConfig = {
        'S3Data': {
            'S3Uri': f's3://{bucket}/{prefix}/cloud_removal/',
            'KmsKeyId': ''
        }
    }
)

ตอนนี้เราสามารถแสดงภาพผลลัพธ์ที่จัดเก็บไว้ในตำแหน่ง Amazon S3 ที่เราระบุสำหรับแถบสเปกตรัมแต่ละแถบ ตัวอย่างเช่น ลองตรวจสอบภาพแถบสีน้ำเงินสองภาพที่ส่งกลับ

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

UI การลบคลาวด์ 1   UI การลบคลาวด์ 2

สถิติชั่วคราว

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

ด้วยความสามารถเชิงพื้นที่ของ SageMaker เราสามารถทำได้โดยการตั้งค่า TemporalStatisticsConfig พารามิเตอร์. ในตัวอย่างของเรา เราได้รับการรวมค่าเฉลี่ยรายปีสำหรับแถบ Near Infrared (NIR) เนื่องจากแถบนี้สามารถเปิดเผยความแตกต่างของความหนาแน่นของพืชที่อยู่ด้านล่างยอดของเรือนยอด:

eoj_config =  {
    'TemporalStatisticsConfig': {
        'GroupBy': 'YEARLY',
        'Statistics': ['MEAN'],
        'TargetBands': ['nir']
    }
}

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

สถิติชั่วคราว 1สถิติชั่วคราว 2

วงคณิตศาสตร์

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

ด้วยความสามารถเชิงพื้นที่ของ SageMaker เราสามารถเรียกใช้สิ่งนี้ได้โดยการตั้งค่า BandMathConfig พารามิเตอร์. ตัวอย่างเช่น ลองรับอิมเมจดัชนีความชื้นด้วยการรันโค้ดต่อไปนี้:

eoj_config =  {
    'BandMathConfig': {
        'CustomIndices': {
            'Operations': [
                {
                    'Name': 'moisture',
                    'Equation': '(nir08 - swir16) / (nir08 + swir16)'
                }
            ]
        }
    }
}

หลังจากเรียกใช้ EOJ ด้วยการกำหนดค่านี้ไม่กี่นาที เราสามารถส่งออกผลลัพธ์และรับอิมเมจได้ เช่นตัวอย่างสองตัวอย่างต่อไปนี้

ดัชนีความชื้น1ดัชนีความชื้น2ตำนานดัชนีความชื้น

ซ้อนได้

คล้ายกับการคำนวณแบนด์ กระบวนการรวมแบนด์เข้าด้วยกันเพื่อสร้างภาพคอมโพสิตจากแบนด์ดั้งเดิมเรียกว่าการซ้อน ตัวอย่างเช่น เราสามารถซ้อนแถบแสงสีแดง น้ำเงิน และเขียวของภาพถ่ายดาวเทียมเพื่อสร้างภาพสีที่แท้จริงของ AOI

ด้วยความสามารถเชิงพื้นที่ของ SageMaker เราสามารถทำได้โดยการตั้งค่า StackConfig พารามิเตอร์. เรามารวมแถบ RGB ตามตัวอย่างที่แล้วด้วยคำสั่งต่อไปนี้:

eoj_config =  {
    'StackConfig': {
        'OutputResolution': {
            'Predefined': 'HIGHEST'
        },
        'TargetBands': ['red', 'green', 'blue']
    }
}

หลังจากเรียกใช้ EOJ ด้วยการกำหนดค่านี้ไม่กี่นาที เราสามารถส่งออกผลลัพธ์และรับรูปภาพได้

การซ้อน TCI 1การซ้อน TCI 2

โมเดลการแบ่งส่วนความหมาย

ในการทำงานของเรา เรามักจะใช้โมเดล ML ในการอนุมานเหนือภาพที่ประมวลผลล่วงหน้า เช่น การตรวจจับพื้นที่ที่มีเมฆมากหรือการจำแนกประเภทของที่ดินในแต่ละพื้นที่ของภาพ

ด้วยความสามารถเชิงพื้นที่ของ SageMaker คุณสามารถทำได้โดยอาศัยโมเดลการแบ่งส่วนในตัว

ตัวอย่างเช่น ลองใช้แบบจำลองการแบ่งส่วนสิ่งปกคลุมดินโดยการระบุ LandCoverSegmentationConfig พารามิเตอร์. ดำเนินการอนุมานบนอินพุตโดยใช้โมเดลในตัว โดยไม่จำเป็นต้องฝึกหรือโฮสต์โครงสร้างพื้นฐานใดๆ ใน SageMaker:

response = gsClient.start_earth_observation_job(
    Name =  'landcovermodeljob',
    ExecutionRoleArn = role,
    InputConfig = eoj_input_config,
    JobConfig = {
        'LandCoverSegmentationConfig': {},
    },
)

หลังจากรันงานด้วยการกำหนดค่านี้ไม่กี่นาที เราสามารถส่งออกผลลัพธ์และรับอิมเมจได้

สปก.1สปก.2สปก.3สปก.4

ในตัวอย่างก่อนหน้านี้ แต่ละพิกเซลในภาพสอดคล้องกับประเภทที่ดิน ดังที่แสดงไว้ในตำนานต่อไปนี้

ตำนานปกแผ่นดิน

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

สร้างแบบจำลองของคุณเองด้วย SageMaker

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

ตัวเลือกการไหลของการอนุมาน

สำหรับตัวอย่างของเรา สมมติว่าเราได้ใช้แบบจำลองสองแบบสำหรับการจำแนกประเภทสิ่งปกคลุมดินและการจำแนกประเภทพืชผล

เราเพียงแค่ต้องชี้ไปที่สิ่งประดิษฐ์โมเดลที่ผ่านการฝึกอบรมของเรา ในตัวอย่างของเรา โมเดล PyTorch คล้ายกับโค้ดต่อไปนี้:

from sagemaker.pytorch import PyTorchModel
import datetime

model = PyTorchModel(
    name=model_name, ### Set a model name
    model_data=MODEL_S3_PATH, ### Location of the custom model in S3
    role=role,
    entry_point='inference.py', ### Your inference entry-point script
    source_dir='code', ### Folder with any dependencies
    image_uri=image_uri, ### URI for your AWS DLC or custom container
    env={
        'TS_MAX_REQUEST_SIZE': '100000000',
        'TS_MAX_RESPONSE_SIZE': '100000000',
        'TS_DEFAULT_RESPONSE_TIMEOUT': '1000',
    }, ### Optional – Set environment variables for max size and timeout
)

predictor = model.deploy(
    initial_instance_count = 1, ### Your number of instances
    instance_type = 'ml.g4dn.8xlarge', ### Your instance type
    async_inference_config=sagemaker.async_inference.AsyncInferenceConfig(
        output_path=f"s3://{bucket}/{prefix}/output",
        max_concurrent_invocations_per_instance=2,
    ), ### Optional – Async config if using SageMaker Async Endpoints
)

predictor.predict(data) ### Your images for inference

ซึ่งช่วยให้คุณได้ภาพที่ได้หลังจากการอนุมาน ทั้งนี้ขึ้นอยู่กับรุ่นที่คุณใช้

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

การแบ่งส่วนที่ดินสปก.1  การแบ่งส่วนที่ดินสปก.2. ตำนานการแบ่งส่วนที่ดิน

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

การจำแนกประเภทพืชผล

การทำให้ท่อ geospatial เป็นแบบอัตโนมัติ

สุดท้าย เรายังทำให้ขั้นตอนก่อนหน้านี้เป็นไปโดยอัตโนมัติได้ด้วยการสร้างการประมวลผลข้อมูลเชิงพื้นที่และการอนุมานไปป์ไลน์ด้วย ท่อส่ง Amazon SageMaker. เราเพียงเชื่อมโยงแต่ละขั้นตอนก่อนการประมวลผลที่จำเป็นผ่านการใช้งาน ขั้นตอนแลมบ์ดา และ ขั้นตอนการโทรกลับ ในท่อส่ง ตัวอย่างเช่น คุณสามารถเพิ่มขั้นตอนการอนุมานขั้นสุดท้ายโดยใช้ Transform Step หรือโดยตรงผ่านการรวมกันของ Lambda Steps และ Callback Steps สำหรับการเรียกใช้ EOJ ด้วยหนึ่งในโมเดลการแบ่งกลุ่มเชิงความหมายในตัวในคุณลักษณะเชิงพื้นที่ของ SageMaker

โปรดทราบว่าเรากำลังใช้ Lambda Steps และ Callback Steps ในไปป์ไลน์ เนื่องจาก EOJ เป็นแบบอะซิงโครนัส ดังนั้นขั้นตอนประเภทนี้จึงช่วยให้เราสามารถตรวจสอบการทำงานของการประมวลผลและดำเนินการไปป์ไลน์ต่อเมื่อดำเนินการเสร็จสิ้นผ่านข้อความใน บริการ Amazon Simple Queue (Amazon SQS) คิว

ท่อส่งภูมิสารสนเทศ

คุณสามารถตรวจสอบสมุดบันทึกได้ใน พื้นที่เก็บข้อมูล GitHub สำหรับตัวอย่างโดยละเอียดของโค้ดนี้

ตอนนี้เราสามารถแสดงภาพไดอะแกรมของไปป์ไลน์เชิงพื้นที่ของเราผ่าน Studio และตรวจสอบการทำงานในไปป์ไลน์ดังที่แสดงในภาพหน้าจอต่อไปนี้

UI ไปป์ไลน์เชิงพื้นที่

สรุป

ในโพสต์นี้ เรานำเสนอบทสรุปของกระบวนการที่เรานำไปใช้กับความสามารถเชิงพื้นที่ของ SageMaker สำหรับการสร้างไปป์ไลน์ข้อมูลเชิงพื้นที่สำหรับผลิตภัณฑ์ขั้นสูงของเราจาก xarvio Digital Farming Solutions การใช้ SageMaker geospatial เพิ่มประสิทธิภาพของงาน geospatial ของเราได้มากกว่า 50% โดยใช้ API ที่สร้างไว้ล่วงหน้าซึ่งเร่งและลดความซับซ้อนของขั้นตอนการประมวลผลล่วงหน้าและการสร้างแบบจำลองสำหรับ ML

ในขั้นตอนต่อไป เรากำลังเริ่มใช้งานโมเดลเพิ่มเติมจากแคตตาล็อกของเราไปยัง SageMaker เพื่อดำเนินการต่อไปยังระบบอัตโนมัติของท่อส่งโซลูชันของเรา และจะยังคงใช้คุณลักษณะเชิงพื้นที่ของ SageMaker ต่อไปเมื่อบริการมีการพัฒนา

เราสนับสนุนให้คุณลองใช้ความสามารถเชิงพื้นที่ของ SageMaker โดยการปรับสมุดบันทึกตัวอย่างแบบ end-to-end ที่ให้ไว้ในโพสต์นี้ และเรียนรู้เพิ่มเติมเกี่ยวกับบริการใน ความสามารถเชิงพื้นที่ของ Amazon SageMaker คืออะไร.


เกี่ยวกับผู้เขียน

จูเลียน บลูจูเลียน บลู เป็นนักวิทยาศาสตร์ข้อมูลที่ BASF Digital Farming GmbH ซึ่งตั้งอยู่ในเมืองโคโลญจน์ ประเทศเยอรมนี เขาพัฒนาโซลูชันดิจิทัลสำหรับการเกษตร ตอบสนองความต้องการของฐานลูกค้าทั่วโลกของ BASF โดยใช้ข้อมูลภูมิสารสนเทศและการเรียนรู้ของเครื่อง เขาชอบท่องเที่ยวและอยู่นอกบ้านกับเพื่อนและครอบครัว

อันโตนิโอโรดริเกซอันโตนิโอโรดริเกซ เป็นสถาปนิกโซลูชันผู้เชี่ยวชาญด้านปัญญาประดิษฐ์และการเรียนรู้ของเครื่องใน Amazon Web Services ซึ่งตั้งอยู่ในประเทศสเปน เขาช่วยบริษัททุกขนาดแก้ปัญหาความท้าทายด้วยนวัตกรรม และสร้างโอกาสทางธุรกิจใหม่ๆ ด้วยบริการ AWS Cloud และ AI/ML นอกเหนือจากงานแล้ว เขาชอบที่จะใช้เวลากับครอบครัวและเล่นกีฬากับเพื่อนๆ

ประทับเวลา:

เพิ่มเติมจาก AWS Machine Learning AWS