Cách giải pháp canh tác kỹ thuật số xarvio tăng tốc phát triển với khả năng không gian địa lý của Amazon SageMaker

Nút nguồn: 1766079

Đây là bài đăng của khách do Julian Blau, Nhà khoa học dữ liệu tại xarvio Digital Farming Solutions đồng viết; BASF Digital Farming GmbH và Antonio Rodriguez, Chuyên gia kiến ​​trúc giải pháp AI/ML tại AWS

xarvio Digital Farming Solutions là một thương hiệu của BASF Digital Farming GmbH, một phần của bộ phận Giải pháp Nông nghiệp BASF. xarvio Digital Farming Solutions cung cấp các sản phẩm canh tác kỹ thuật số chính xác để giúp nông dân tối ưu hóa sản xuất cây trồng. Có sẵn trên toàn cầu, các sản phẩm của xarvio sử dụng máy học (ML), công nghệ nhận dạng hình ảnh và các mô hình cây trồng và bệnh tật tiên tiến, kết hợp với dữ liệu từ vệ tinh và thiết bị trạm thời tiết, để đưa ra các khuyến nghị nông học chính xác và kịp thời nhằm quản lý nhu cầu của từng cánh đồng. Các sản phẩm của xarvio được điều chỉnh phù hợp với điều kiện canh tác địa phương, có thể theo dõi các giai đoạn tăng trưởng và nhận biết bệnh tật và sâu bệnh. Chúng nâng cao hiệu quả, tiết kiệm thời gian, giảm rủi ro và mang lại độ tin cậy cao hơn cho việc lập kế hoạch và ra quyết định—đồng thời góp phần vào nền nông nghiệp bền vững.

Chúng tôi làm việc với các dữ liệu không gian địa lý khác nhau, bao gồm hình ảnh vệ tinh của các khu vực có trường của người dùng, đối với một số trường hợp sử dụng của chúng tôi. Do đó, chúng tôi sử dụng và xử lý hàng trăm tệp hình ảnh lớn hàng ngày. Ban đầu, chúng tôi phải đầu tư rất nhiều công sức và công sức thủ công để nhập, xử lý và phân tích dữ liệu này bằng các công cụ của bên thứ ba, thư viện nguồn mở hoặc dịch vụ đám mây đa năng. Trong một số trường hợp, chúng tôi có thể mất tới 2 tháng để xây dựng đường ống cho từng dự án cụ thể. Bây giờ, bằng cách sử dụng các khả năng không gian địa lý của Amazon SageMaker, chúng tôi đã giảm thời gian này xuống chỉ còn 1–2 tuần.

Tiết kiệm thời gian này là kết quả của việc tự động hóa các đường dẫn dữ liệu không gian địa lý để cung cấp các trường hợp sử dụng của chúng tôi hiệu quả hơn, cùng với việc sử dụng các thành phần có thể tái sử dụng được tích hợp sẵn để tăng tốc và cải thiện các dự án tương tự ở các khu vực địa lý khác, đồng thời áp dụng các bước đã được chứng minh tương tự cho mục đích sử dụng khác trường hợp dựa trên dữ liệu tương tự.

Trong bài đăng này, chúng tôi sẽ xem xét một trường hợp sử dụng ví dụ để mô tả một số kỹ thuật mà chúng tôi thường sử dụng và cho biết cách triển khai những kỹ thuật này bằng cách sử dụng các chức năng không gian địa lý của SageMaker kết hợp với các tính năng khác của SageMaker mang lại những lợi ích có thể đo lường được. Chúng tôi cũng bao gồm các ví dụ về mã để bạn có thể điều chỉnh chúng cho phù hợp với các trường hợp sử dụng cụ thể của riêng mình.

Tổng quan về giải pháp

Một dự án viễn thám điển hình để phát triển các giải pháp mới yêu cầu phân tích từng bước hình ảnh được chụp bởi các vệ tinh quang học như Lính gác or hạ cánh ở, kết hợp với dữ liệu khác, bao gồm dự báo thời tiết hoặc thuộc tính trường cụ thể. Các hình ảnh vệ tinh cung cấp cho chúng tôi thông tin có giá trị được sử dụng trong các giải pháp canh tác kỹ thuật số của chúng tôi để giúp người dùng của chúng tôi hoàn thành các nhiệm vụ khác nhau:

  • Phát hiện sớm bệnh trên đồng ruộng
  • Lập kế hoạch dinh dưỡng phù hợp và phương pháp điều trị sẽ được áp dụng
  • Nhận thông tin chi tiết về thời tiết và nước để lập kế hoạch tưới tiêu
  • Dự đoán năng suất cây trồng
  • Thực hiện các nhiệm vụ quản lý cây trồng khác

Để đạt được những mục tiêu này, các phân tích của chúng tôi thường yêu cầu tiền xử lý ảnh vệ tinh bằng các kỹ thuật khác nhau phổ biến trong lĩnh vực không gian địa lý.

Để chứng minh khả năng của không gian địa lý SageMaker, chúng tôi đã thử nghiệm xác định các cánh đồng nông nghiệp thông qua các mô hình phân đoạn ML. Ngoài ra, chúng tôi đã khám phá các mô hình không gian địa lý SageMaker có sẵn và chức năng đưa mô hình của riêng bạn (BYOM) vào các nhiệm vụ không gian địa lý như sử dụng đất và phân loại lớp phủ đất hoặc phân loại cây trồng, thường yêu cầu các kỹ thuật phân đoạn toàn cảnh hoặc ngữ nghĩa như các bước bổ sung trong quy trình.

Trong các phần sau, chúng ta sẽ xem qua một số ví dụ về cách thực hiện các bước này với khả năng không gian địa lý của SageMaker. Bạn cũng có thể làm theo những điều này trong sổ ghi chép ví dụ từ đầu đến cuối có sẵn ở phần sau Kho GitHub.

Như đã đề cập trước đây, chúng tôi đã chọn trường hợp sử dụng phân loại lớp phủ đất, bao gồm việc xác định loại lớp phủ vật lý mà chúng tôi có trên một khu vực địa lý nhất định trên bề mặt trái đất, được tổ chức trên một tập hợp các lớp bao gồm thảm thực vật, nước hoặc tuyết. Phân loại có độ phân giải cao này cho phép chúng tôi phát hiện các chi tiết về vị trí của các trường và môi trường xung quanh với độ chính xác cao, sau này có thể được xâu chuỗi với các phân tích khác, chẳng hạn như phát hiện thay đổi trong phân loại cây trồng.

thiết lập máy khách

Đầu tiên, giả sử chúng ta có người dùng với các loại cây trồng đang được canh tác ở một khu vực địa lý nhất định mà chúng ta có thể xác định trong một đa giác tọa độ không gian địa lý. Đối với bài đăng này, chúng tôi xác định một khu vực ví dụ trên nước Đức. Chúng ta cũng có thể xác định một khoảng thời gian nhất định, chẳng hạn như trong những tháng đầu tiên của năm 2022. Hãy xem đoạn mã sau:

### 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"

Trong ví dụ của chúng tôi, chúng tôi làm việc với SDK không gian địa lý SageMaker thông qua tương tác mã hoặc lập trình, bởi vì chúng tôi quan tâm đến việc xây dựng các quy trình mã có thể được tự động hóa bằng các bước khác nhau được yêu cầu trong quy trình của chúng tôi. Lưu ý rằng bạn cũng có thể làm việc với giao diện người dùng thông qua các tiện ích mở rộng đồ họa được cung cấp với không gian địa lý SageMaker trong Xưởng sản xuất Amazon SageMaker nếu bạn thích cách tiếp cận này, như thể hiện trong ảnh chụp màn hình sau. Để truy cập Giao diện người dùng Geospatial Studio, hãy mở Trình khởi chạy SageMaker Studio và chọn Quản lý tài nguyên không gian địa lý. Bạn có thể kiểm tra thêm chi tiết trong tài liệu để Bắt đầu với Khả năng không gian địa lý của Amazon SageMaker.

Giao diện người dùng không gian địa lý chính

Danh sách công việc giao diện người dùng không gian địa lý

Tại đây, bạn có thể tạo, giám sát và trực quan hóa bằng đồ họa kết quả của các công việc Quan sát Trái đất (EOJ) mà bạn chạy với các tính năng không gian địa lý của SageMaker.

Quay lại ví dụ của chúng tôi, bước đầu tiên để tương tác với SDK không gian địa lý SageMaker là thiết lập ứng dụng khách. Chúng ta có thể làm điều này bằng cách thiết lập một phiên làm việc với botocore thư viện:

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

Từ thời điểm này trở đi, chúng ta có thể sử dụng ứng dụng khách này để chạy bất kỳ EOJ nào mà chúng ta quan tâm.

Lấy dữ liệu

Đối với trường hợp sử dụng này, chúng tôi bắt đầu bằng cách thu thập hình ảnh vệ tinh cho khu vực địa lý nhất định của chúng tôi. Tùy thuộc vào vị trí quan tâm, các vệ tinh có sẵn có thể phủ sóng thường xuyên hơn hoặc ít hơn, có hình ảnh của nó được sắp xếp theo thứ thường được gọi là bộ sưu tập raster.

Với khả năng không gian địa lý của SageMaker, bạn có quyền truy cập trực tiếp vào các nguồn dữ liệu chất lượng cao để lấy dữ liệu không gian địa lý trực tiếp, bao gồm cả dữ liệu từ Trao đổi dữ liệu AWSĐăng ký dữ liệu mở trên AWS, trong số những người khác. Chúng ta có thể chạy lệnh sau để liệt kê các bộ sưu tập raster đã được cung cấp bởi SageMaker:

list_raster_data_collections_resp = gsClient.list_raster_data_collections()

Điều này trả về chi tiết cho các bộ sưu tập raster khác nhau có sẵn, bao gồm Độ phản xạ bề mặt Landsat C2L2 (SR), Nhiệt độ bề mặt Landsat C2L2 (ST) hoặc Sentinel 2A & 2B. Thuận tiện là hình ảnh Cấp 2A đã được tối ưu hóa thành GeoTIFF được tối ưu hóa cho đám mây (COG). Xem đoạn mã sau:

…
{'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'
…

Hãy lấy cái cuối cùng này làm ví dụ, bằng cách đặt data_collection_arn tham số cho bộ sưu tập ARN của Sentinel 2 L2A COG.

Chúng tôi cũng có thể tìm kiếm hình ảnh có sẵn cho một vị trí địa lý nhất định bằng cách chuyển tọa độ của một đa giác mà chúng tôi đã xác định là khu vực quan tâm của mình (AOI). Điều này cho phép bạn trực quan hóa các ô hình ảnh có sẵn bao phủ đa giác mà bạn gửi cho AOI đã chỉ định, bao gồm cả Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) URI cho những hình ảnh này. Lưu ý rằng hình ảnh vệ tinh thường được cung cấp ở các dạng khác nhau ban nhạc theo bước sóng quan sát; chúng tôi thảo luận về điều này nhiều hơn sau trong bài viết.

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

Mã trước đó trả về các URI S3 cho các ô hình ảnh khác nhau có sẵn mà bạn có thể trực tiếp hình dung bằng bất kỳ thư viện nào tương thích với GeoTIFF, chẳng hạn như rasterio. Ví dụ: hãy hình dung hai trong số các ô Hình ảnh Màu thật (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'},
…

Hình ảnh màu trung thực 1Hình ảnh màu trung thực 2

kỹ thuật chế biến

Một số kỹ thuật tiền xử lý phổ biến nhất mà chúng tôi áp dụng bao gồm loại bỏ đám mây, khảm địa lý, thống kê thời gian, toán dải hoặc xếp chồng. Tất cả các quy trình này hiện có thể được thực hiện trực tiếp thông qua việc sử dụng EOJ trong SageMaker mà không cần thực hiện viết mã thủ công hoặc sử dụng các công cụ phức tạp và đắt tiền của bên thứ ba. Điều này giúp việc xây dựng các quy trình xử lý dữ liệu của chúng tôi nhanh hơn 50%. Với khả năng không gian địa lý của SageMaker, chúng tôi có thể chạy các quy trình này trên các loại đầu vào khác nhau. Ví dụ:

  • Trực tiếp chạy truy vấn cho bất kỳ bộ sưu tập raster nào có trong dịch vụ thông qua RasterDataCollectionQuery tham số
  • Truyền hình ảnh được lưu trữ trong Amazon S3 dưới dạng đầu vào thông qua DataSourceConfig tham số
  • Đơn giản chỉ cần xâu chuỗi các kết quả của một EOJ trước đó thông qua PreviousEarthObservationJobArn tham số

Tính linh hoạt này cho phép bạn xây dựng bất kỳ loại quy trình xử lý nào mà bạn cần.

Sơ đồ sau đây minh họa các quy trình chúng tôi trình bày trong ví dụ của mình.

Nhiệm vụ xử lý không gian địa lý

Trong ví dụ của chúng tôi, chúng tôi sử dụng truy vấn thu thập dữ liệu raster làm đầu vào, nhờ đó chúng tôi chuyển tọa độ của AOI và phạm vi thời gian quan tâm. Chúng tôi cũng chỉ định tỷ lệ phần trăm độ che phủ của đám mây tối đa là 2% vì chúng tôi muốn quan sát khu vực địa lý của mình rõ ràng và không bị nhiễu. Xem đoạn mã sau:

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}}}
            ]
        },
    }
}

Để biết thêm thông tin về cú pháp truy vấn được hỗ trợ, hãy tham khảo Tạo một công việc quan sát trái đất.

Loại bỏ khoảng cách đám mây

Các quan sát vệ tinh thường ít hữu ích hơn do độ che phủ của mây cao. Lấp khoảng trống hoặc loại bỏ mây là quá trình thay thế các điểm ảnh có mây khỏi hình ảnh, có thể được thực hiện bằng các phương pháp khác nhau để chuẩn bị dữ liệu cho các bước xử lý tiếp theo.

Với khả năng không gian địa lý của SageMaker, chúng tôi có thể đạt được điều này bằng cách chỉ định một CloudRemovalConfig tham số trong cấu hình công việc của chúng tôi.

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

Lưu ý rằng chúng tôi đang sử dụng thuật toán nội suy với một giá trị cố định trong ví dụ của chúng tôi, nhưng có các cấu hình khác được hỗ trợ, như được giải thích trong Tạo một công việc quan sát trái đất tài liệu. Phép nội suy cho phép nó ước tính một giá trị để thay thế các pixel có mây, bằng cách xem xét các pixel xung quanh.

Bây giờ chúng ta có thể chạy EOJ với cấu hình đầu vào và công việc của mình:

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

Công việc này mất vài phút để hoàn thành tùy thuộc vào khu vực đầu vào và các tham số xử lý.

Khi hoàn tất, kết quả của EOJ được lưu trữ ở một vị trí do dịch vụ sở hữu, từ đó chúng tôi có thể xuất kết quả sang Amazon S3 hoặc xâu chuỗi các kết quả này làm đầu vào cho một EOJ khác. Trong ví dụ của chúng tôi, chúng tôi xuất kết quả sang Amazon S3 bằng cách chạy mã sau:

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

Giờ đây, chúng tôi có thể trực quan hóa hình ảnh kết quả được lưu trữ ở vị trí Amazon S3 được chỉ định của chúng tôi cho các dải quang phổ riêng lẻ. Ví dụ: hãy kiểm tra hai trong số các hình ảnh dải màu xanh được trả về.

Ngoài ra, bạn cũng có thể kiểm tra kết quả của EOJ bằng đồ họa bằng cách sử dụng tiện ích mở rộng không gian địa lý có sẵn trong Studio, như minh họa trong ảnh chụp màn hình sau.

Giao diện người dùng loại bỏ đám mây 1   Giao diện người dùng loại bỏ đám mây 2

thống kê tạm thời

Do các vệ tinh liên tục quay quanh trái đất nên hình ảnh cho một khu vực địa lý quan tâm nhất định được chụp ở các khung thời gian cụ thể với tần suất thời gian cụ thể, chẳng hạn như hàng ngày, 5 ngày một lần hoặc 2 tuần, tùy thuộc vào vệ tinh. Quá trình thống kê theo thời gian cho phép chúng tôi kết hợp các quan sát khác nhau được thực hiện vào các thời điểm khác nhau để tạo ra một chế độ xem tổng hợp, chẳng hạn như giá trị trung bình hàng năm hoặc giá trị trung bình của tất cả các quan sát trong một khoảng thời gian cụ thể, cho khu vực nhất định.

Với khả năng không gian địa lý của SageMaker, chúng tôi có thể thực hiện việc này bằng cách đặt TemporalStatisticsConfig tham số. Trong ví dụ của chúng tôi, chúng tôi thu được tổng hợp trung bình hàng năm cho dải Cận hồng ngoại (NIR), bởi vì dải này có thể cho thấy sự khác biệt về mật độ thực vật bên dưới đỉnh của tán cây:

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

Sau vài phút chạy EOJ với cấu hình này, chúng tôi có thể xuất kết quả sang Amazon S3 để thu được hình ảnh giống như các ví dụ sau, trong đó chúng tôi có thể quan sát các mật độ thực vật khác nhau được thể hiện bằng các cường độ màu khác nhau. Lưu ý rằng EOJ có thể tạo ra nhiều hình ảnh dưới dạng ô xếp, tùy thuộc vào dữ liệu vệ tinh có sẵn cho phạm vi thời gian và tọa độ được chỉ định.

Thống kê tạm thời 1Thống kê tạm thời 2

ban nhạc toán

Các vệ tinh quan sát trái đất được thiết kế để phát hiện ánh sáng ở các bước sóng khác nhau, một số trong đó mắt người không nhìn thấy được. Mỗi phạm vi chứa các dải quang phổ ánh sáng cụ thể ở các bước sóng khác nhau, kết hợp với phép tính số học có thể tạo ra hình ảnh có thông tin phong phú về các đặc điểm của trường như tình trạng thực vật, nhiệt độ hoặc sự hiện diện của mây, cùng nhiều thứ khác. Điều này được thực hiện trong một quy trình thường được gọi là toán theo dải hoặc số học theo dải.

Với khả năng không gian địa lý của SageMaker, chúng tôi có thể chạy tính năng này bằng cách đặt BandMathConfig tham số. Ví dụ: hãy lấy hình ảnh chỉ số độ ẩm bằng cách chạy đoạn mã sau:

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

Sau vài phút chạy EOJ với cấu hình này, chúng tôi có thể xuất kết quả và thu được hình ảnh, chẳng hạn như hai ví dụ sau.

Chỉ số độ ẩm 1Chỉ số độ ẩm 2Chú thích chỉ số độ ẩm

Stacking

Tương tự như phép toán dải, quá trình kết hợp các dải với nhau để tạo ra hình ảnh tổng hợp từ các dải ban đầu được gọi là xếp chồng. Ví dụ: chúng ta có thể xếp chồng các dải sáng đỏ, xanh dương và xanh lục của ảnh vệ tinh để tạo ra ảnh màu thực của AOI.

Với khả năng không gian địa lý của SageMaker, chúng tôi có thể thực hiện việc này bằng cách đặt StackConfig tham số. Hãy sắp xếp các dải RGB theo ví dụ trước bằng lệnh sau:

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

Sau vài phút chạy EOJ với cấu hình này, chúng tôi có thể xuất kết quả và thu được hình ảnh.

Xếp chồng TCI 1Xếp chồng TCI 2

Mô hình phân đoạn ngữ nghĩa

Là một phần trong công việc của mình, chúng tôi thường sử dụng các mô hình ML để chạy các suy luận trên hình ảnh được xử lý trước, chẳng hạn như phát hiện các khu vực nhiều mây hoặc phân loại loại đất trong từng khu vực của hình ảnh.

Với khả năng không gian địa lý của SageMaker, bạn có thể thực hiện việc này bằng cách dựa vào các mô hình phân khúc tích hợp sẵn.

Ví dụ của chúng tôi, hãy sử dụng mô hình phân đoạn lớp phủ đất bằng cách chỉ định LandCoverSegmentationConfig tham số. Điều này chạy các suy luận về đầu vào bằng cách sử dụng mô hình tích hợp sẵn mà không cần đào tạo hoặc lưu trữ bất kỳ cơ sở hạ tầng nào trong SageMaker:

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

Sau vài phút chạy công việc với cấu hình này, chúng tôi có thể xuất kết quả và thu được hình ảnh.

Lớp phủ đất 1Lớp phủ đất 2Lớp phủ đất 3Lớp phủ đất 4

Trong các ví dụ trước, mỗi pixel trong ảnh tương ứng với một loại đất, như thể hiện trong chú thích sau.

Truyền thuyết che phủ đất

Điều này cho phép chúng tôi xác định trực tiếp các loại khu vực cụ thể trong cảnh chẳng hạn như thảm thực vật hoặc nước, cung cấp thông tin chuyên sâu có giá trị cho các phân tích bổ sung.

Mang theo mô hình của riêng bạn với SageMaker

Nếu các mô hình không gian địa lý tiên tiến nhất được cung cấp với SageMaker không đủ cho trường hợp sử dụng của chúng tôi, thì chúng tôi cũng có thể xâu chuỗi kết quả của bất kỳ bước tiền xử lý nào được hiển thị cho đến nay với bất kỳ mô hình tùy chỉnh nào được đưa vào SageMaker để suy luận, như đã giải thích trong này Chế độ tập lệnh SageMaker thí dụ. Chúng tôi có thể thực hiện điều này với bất kỳ chế độ suy luận nào được hỗ trợ trong SageMaker, bao gồm đồng bộ hóa với các điểm cuối SageMaker thời gian thực, không đồng bộ với các điểm cuối không đồng bộ SageMaker, hàng loạt hoặc ngoại tuyến với các biến đổi hàng loạt SageMaker và không có máy chủ với suy luận không có máy chủ của SageMaker. Bạn có thể kiểm tra thêm chi tiết về các chế độ này trong Triển khai các mô hình để suy luận tài liệu. Sơ đồ sau đây minh họa quy trình làm việc ở mức cao.

Tùy chọn luồng suy luận

Đối với ví dụ của chúng tôi, giả sử chúng tôi đã đưa vào hai mô hình để thực hiện phân loại độ che phủ đất và phân loại loại cây trồng.

Chúng ta chỉ cần hướng tới tạo tác mô hình được đào tạo của mình, trong ví dụ của chúng ta là mô hình PyTorch, tương tự như đoạn mã sau:

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

Điều này cho phép bạn có được hình ảnh kết quả sau khi suy luận, tùy thuộc vào kiểu máy bạn đang sử dụng.

Trong ví dụ của chúng tôi, khi chạy phân đoạn lớp phủ đất tùy chỉnh, mô hình tạo ra các hình ảnh tương tự như sau, trong đó chúng tôi so sánh hình ảnh đầu vào và hình ảnh dự đoán với chú giải tương ứng của nó.

Phân vùng che phủ đất 1  Phân vùng che phủ đất 2. Truyền thuyết phân vùng che phủ đất

Sau đây là một ví dụ khác về mô hình phân loại cây trồng, trong đó chúng tôi hiển thị so sánh giữa kết quả phân đoạn ngữ nghĩa và toàn cảnh ban đầu so với kết quả, với chú thích tương ứng.

Phân loại cây trồng

Tự động hóa đường ống không gian địa lý

Cuối cùng, chúng ta cũng có thể tự động hóa các bước trước đó bằng cách xây dựng các quy trình suy luận và xử lý dữ liệu không gian địa lý với Đường ống Amazon SageMaker. Chúng tôi chỉ đơn giản xâu chuỗi từng bước tiền xử lý cần thiết thông qua việc sử dụng Bước LambdaCác bước gọi lại trong Đường ống. Ví dụ: bạn cũng có thể thêm bước suy luận cuối cùng bằng Bước chuyển đổi hoặc trực tiếp thông qua một tổ hợp khác của Bước Lambda và Bước gọi lại, để chạy EOJ với một trong các mô hình phân đoạn ngữ nghĩa tích hợp trong các tính năng không gian địa lý của SageMaker.

Lưu ý rằng chúng tôi đang sử dụng Các bước Lambda và Các bước gọi lại trong Đường ống vì EOJ không đồng bộ, do đó, loại bước này cho phép chúng tôi giám sát hoạt động của công việc xử lý và tiếp tục quy trình khi hoàn thành thông qua các thông báo trong một Dịch vụ xếp hàng đơn giản trên Amazon Hàng đợi (Amazon SQS).

đường ống không gian địa lý

Bạn có thể kiểm tra sổ ghi chép trong Kho GitHub để biết ví dụ chi tiết về mã này.

Giờ đây, chúng tôi có thể trực quan hóa sơ đồ quy trình không gian địa lý của mình thông qua Studio và theo dõi quá trình chạy trong Đường ống, như minh họa trong ảnh chụp màn hình sau.

Giao diện người dùng đường ống không gian địa lý

Kết luận

Trong bài đăng này, chúng tôi đã trình bày tóm tắt các quy trình mà chúng tôi đã triển khai với khả năng không gian địa lý của SageMaker để xây dựng đường ống dẫn dữ liệu không gian địa lý cho các sản phẩm tiên tiến của chúng tôi từ Xarvio Digital Farming Solutions. Việc sử dụng không gian địa lý SageMaker đã tăng hiệu quả công việc không gian địa lý của chúng tôi lên hơn 50%, thông qua việc sử dụng các API dựng sẵn giúp tăng tốc và đơn giản hóa các bước tiền xử lý và mô hình hóa của chúng tôi cho ML.

Bước tiếp theo, chúng tôi sẽ đưa thêm nhiều mô hình từ danh mục của mình vào SageMaker để tiếp tục tự động hóa các quy trình giải pháp của chúng tôi và sẽ tiếp tục sử dụng nhiều tính năng không gian địa lý hơn của SageMaker khi dịch vụ phát triển.

Chúng tôi khuyến khích bạn dùng thử các khả năng không gian địa lý của SageMaker bằng cách điều chỉnh sổ ghi chép mẫu từ đầu đến cuối được cung cấp trong bài đăng này và tìm hiểu thêm về dịch vụ trong Khả năng không gian địa lý của Amazon SageMaker là gì?.


Về các tác giả

Julian BlauJulian Blau là Nhà khoa học dữ liệu tại BASF Digital Farming GmbH, đặt tại Cologne, Đức. Ông phát triển các giải pháp kỹ thuật số cho nông nghiệp, đáp ứng nhu cầu của cơ sở khách hàng toàn cầu của BASF bằng cách sử dụng dữ liệu không gian địa lý và máy học. Ngoài công việc, anh ấy thích đi du lịch và ở ngoài trời với bạn bè và gia đình.

Anthony RodriguezAnthony Rodriguez là Kiến trúc sư giải pháp chuyên gia về máy học và trí tuệ nhân tạo trong Dịch vụ web của Amazon, có trụ sở tại Tây Ban Nha. Anh ấy giúp các công ty thuộc mọi quy mô giải quyết các thách thức của họ thông qua đổi mới và tạo ra các cơ hội kinh doanh mới với Đám mây AWS và các dịch vụ AI/ML. Ngoài công việc, anh ấy thích dành thời gian cho gia đình và chơi thể thao với bạn bè.

Dấu thời gian:

Thêm từ Học máy AWS