使用適用於 SAP ABAP 的 SDK 的 Amazon Rekognition 範例 - AWS SDK 程式碼範例

文件 AWS SDK 範例 GitHub 儲存庫中有更多可用的 AWS SDK 範例

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用適用於 SAP ABAP 的 SDK 的 Amazon Rekognition 範例

下列程式碼範例示範如何使用適用於 SAP ABAP 的 AWS SDK 搭配 Amazon Rekognition 來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境中查看內容中的動作。

每個範例均包含完整原始碼的連結,您可在連結中找到如何設定和執行內容中程式碼的相關指示。

主題

動作

以下程式碼範例顯示如何使用 CompareFaces

如需詳細資訊,請參閱比較映像中的人臉

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. " Create S3 object reference for the source image DATA(lo_source_s3obj) = NEW /aws1/cl_reks3object( iv_bucket = iv_source_s3_bucket iv_name = iv_source_s3_key ). " Create source image object DATA(lo_source_image) = NEW /aws1/cl_rekimage( io_s3object = lo_source_s3obj ). " Create S3 object reference for the target image DATA(lo_target_s3obj) = NEW /aws1/cl_reks3object( iv_bucket = iv_target_s3_bucket iv_name = iv_target_s3_key ). " Create target image object DATA(lo_target_image) = NEW /aws1/cl_rekimage( io_s3object = lo_target_s3obj ). " Compare faces oo_result = lo_rek->comparefaces( io_sourceimage = lo_source_image io_targetimage = lo_target_image iv_similaritythreshold = iv_similarity ). DATA(lt_face_matches) = oo_result->get_facematches( ). DATA(lt_unmatched_faces) = oo_result->get_unmatchedfaces( ). " Get counts of matched and unmatched faces DATA(lv_matched_count) = lines( lt_face_matches ). DATA(lv_unmatched_count) = lines( lt_unmatched_faces ). " Output detailed comparison results DATA(lv_message) = |Face comparison completed: | && |{ lv_matched_count } matched face(s), | && |{ lv_unmatched_count } unmatched face(s).|. MESSAGE lv_message TYPE 'I'. CATCH /aws1/cx_rekinvalids3objectex. MESSAGE 'Invalid S3 object.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 CompareFaces

以下程式碼範例顯示如何使用 CreateCollection

如需更多資訊,請參閱建立集合

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. oo_result = lo_rek->createcollection( iv_collectionid = iv_collection_id ). MESSAGE 'Collection created successfully.' TYPE 'I'. CATCH /aws1/cx_rekresrcalrdyexistsex. MESSAGE 'Collection already exists.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 CreateCollection

以下程式碼範例顯示如何使用 DeleteCollection

如需更多資訊,請參閱刪除集合

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. lo_rek->deletecollection( iv_collectionid = iv_collection_id ). MESSAGE 'Collection deleted successfully.' TYPE 'I'. CATCH /aws1/cx_rekresourcenotfoundex. MESSAGE 'Collection not found.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DeleteCollection

以下程式碼範例顯示如何使用 DeleteFaces

如需詳細資訊,請參閱從集合中刪除人臉

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. oo_result = lo_rek->deletefaces( iv_collectionid = iv_collection_id it_faceids = it_face_ids ). DATA(lt_deleted_faces) = oo_result->get_deletedfaces( ). DATA(lv_deleted_count) = lines( lt_deleted_faces ). DATA(lv_msg6) = |{ lv_deleted_count } face(s) deleted successfully.|. MESSAGE lv_msg6 TYPE 'I'. CATCH /aws1/cx_rekresourcenotfoundex. MESSAGE 'Collection not found.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DeleteFaces

以下程式碼範例顯示如何使用 DescribeCollection

如需詳細資訊,請參閱描述集合

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. oo_result = lo_rek->describecollection( iv_collectionid = iv_collection_id ). DATA(lv_face_count) = oo_result->get_facecount( ). DATA(lv_msg) = |Collection described: { lv_face_count } face(s) indexed.|. MESSAGE lv_msg TYPE 'I'. CATCH /aws1/cx_rekresourcenotfoundex. MESSAGE 'Collection not found.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DescribeCollection

以下程式碼範例顯示如何使用 DetectFaces

如需詳細資訊,請參閱偵測影像中的人臉

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. " Create S3 object reference for the image DATA(lo_s3object) = NEW /aws1/cl_reks3object( iv_bucket = iv_s3_bucket iv_name = iv_s3_key ). " Create image object DATA(lo_image) = NEW /aws1/cl_rekimage( io_s3object = lo_s3object ). " Detect faces in the image with all attributes DATA(lt_attributes) = VALUE /aws1/cl_rekattributes_w=>tt_attributes( ). DATA(lo_attr_wrapper) = NEW /aws1/cl_rekattributes_w( iv_value = 'ALL' ). INSERT lo_attr_wrapper INTO TABLE lt_attributes. oo_result = lo_rek->detectfaces( io_image = lo_image it_attributes = lt_attributes ). DATA(lt_face_details) = oo_result->get_facedetails( ). DATA(lv_detected_count) = lines( lt_face_details ). DATA(lv_msg8) = |{ lv_detected_count } face(s) detected in image.|. MESSAGE lv_msg8 TYPE 'I'. CATCH /aws1/cx_rekinvalids3objectex. MESSAGE 'Invalid S3 object.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DetectFaces

以下程式碼範例顯示如何使用 DetectLabels

如需詳細資訊,請參閱偵測映像中的標籤

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. " Create S3 object reference for the image DATA(lo_s3object) = NEW /aws1/cl_reks3object( iv_bucket = iv_s3_bucket iv_name = iv_s3_key ). " Create image object DATA(lo_image) = NEW /aws1/cl_rekimage( io_s3object = lo_s3object ). " Detect labels in the image oo_result = lo_rek->detectlabels( io_image = lo_image iv_maxlabels = iv_max_labels ). DATA(lt_labels) = oo_result->get_labels( ). DATA(lv_label_count) = lines( lt_labels ). DATA(lv_msg9) = |{ lv_label_count } label(s) detected in image.|. MESSAGE lv_msg9 TYPE 'I'. CATCH /aws1/cx_rekinvalids3objectex. MESSAGE 'Invalid S3 object.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DetectLabels

以下程式碼範例顯示如何使用 DetectModerationLabels

如需詳細資訊,請參閱偵測不適合的映像

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. " Create S3 object reference for the image DATA(lo_s3object) = NEW /aws1/cl_reks3object( iv_bucket = iv_s3_bucket iv_name = iv_s3_key ). " Create image object DATA(lo_image) = NEW /aws1/cl_rekimage( io_s3object = lo_s3object ). " Detect moderation labels oo_result = lo_rek->detectmoderationlabels( io_image = lo_image ). DATA(lt_moderation_labels) = oo_result->get_moderationlabels( ). DATA(lv_mod_count) = lines( lt_moderation_labels ). DATA(lv_msg10) = |{ lv_mod_count } moderation label(s) detected.|. MESSAGE lv_msg10 TYPE 'I'. CATCH /aws1/cx_rekinvalids3objectex. MESSAGE 'Invalid S3 object.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DetectModerationLabels

以下程式碼範例顯示如何使用 DetectText

如需更多資訊,請參閱偵測映像中的文字

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. " Create S3 object reference for the image DATA(lo_s3object) = NEW /aws1/cl_reks3object( iv_bucket = iv_s3_bucket iv_name = iv_s3_key ). " Create image object DATA(lo_image) = NEW /aws1/cl_rekimage( io_s3object = lo_s3object ). " Detect text in the image oo_result = lo_rek->detecttext( io_image = lo_image ). DATA(lt_text_detections) = oo_result->get_textdetections( ). DATA(lv_text_count) = lines( lt_text_detections ). DATA(lv_msg11) = |{ lv_text_count } text detection(s) found.|. MESSAGE lv_msg11 TYPE 'I'. CATCH /aws1/cx_rekinvalids3objectex. MESSAGE 'Invalid S3 object.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 DetectText

以下程式碼範例顯示如何使用 IndexFaces

如需詳細資訊,請參閱將人臉新增至集合

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. " Create S3 object reference for the image DATA(lo_s3object) = NEW /aws1/cl_reks3object( iv_bucket = iv_s3_bucket iv_name = iv_s3_key ). " Create image object DATA(lo_image) = NEW /aws1/cl_rekimage( io_s3object = lo_s3object ). " Index faces in the image oo_result = lo_rek->indexfaces( iv_collectionid = iv_collection_id io_image = lo_image iv_externalimageid = iv_external_id iv_maxfaces = iv_max_faces ). DATA(lt_face_records) = oo_result->get_facerecords( ). DATA(lv_indexed_count) = lines( lt_face_records ). DATA(lv_msg2) = |{ lv_indexed_count } face(s) indexed successfully.|. MESSAGE lv_msg2 TYPE 'I'. CATCH /aws1/cx_rekresourcenotfoundex. MESSAGE 'Collection not found.' TYPE 'E'. CATCH /aws1/cx_rekinvalids3objectex. MESSAGE 'Invalid S3 object.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 IndexFaces

以下程式碼範例顯示如何使用 ListCollections

如需詳細資訊,請參閱列出的集合

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. oo_result = lo_rek->listcollections( iv_maxresults = iv_max_results ). DATA(lt_collection_ids) = oo_result->get_collectionids( ). DATA(lv_coll_count) = lines( lt_collection_ids ). DATA(lv_msg7) = |{ lv_coll_count } collection(s) found.|. MESSAGE lv_msg7 TYPE 'I'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 ListCollections

以下程式碼範例顯示如何使用 ListFaces

如需更多資訊,請參閱集合中列出的人臉

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. oo_result = lo_rek->listfaces( iv_collectionid = iv_collection_id iv_maxresults = iv_max_results ). DATA(lt_faces) = oo_result->get_faces( ). DATA(lv_face_count2) = lines( lt_faces ). DATA(lv_msg3) = |{ lv_face_count2 } face(s) found in collection.|. MESSAGE lv_msg3 TYPE 'I'. CATCH /aws1/cx_rekresourcenotfoundex. MESSAGE 'Collection not found.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 ListFaces

以下程式碼範例顯示如何使用 RecognizeCelebrities

如需詳細資訊,請參閱在映像中辨識名人

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. " Create S3 object reference for the image DATA(lo_s3object) = NEW /aws1/cl_reks3object( iv_bucket = iv_s3_bucket iv_name = iv_s3_key ). " Create image object DATA(lo_image) = NEW /aws1/cl_rekimage( io_s3object = lo_s3object ). " Recognize celebrities oo_result = lo_rek->recognizecelebrities( io_image = lo_image ). DATA(lt_celebrity_faces) = oo_result->get_celebrityfaces( ). DATA(lv_celeb_count) = lines( lt_celebrity_faces ). DATA(lv_msg12) = |{ lv_celeb_count } celebrity/celebrities recognized.|. MESSAGE lv_msg12 TYPE 'I'. CATCH /aws1/cx_rekinvalids3objectex. MESSAGE 'Invalid S3 object.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 RecognizeCelebrities

以下程式碼範例顯示如何使用 SearchFaces

如需詳細資訊,請參閱搜尋人臉 (臉部 ID)

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. oo_result = lo_rek->searchfaces( iv_collectionid = iv_collection_id iv_faceid = iv_face_id iv_facematchthreshold = iv_threshold iv_maxfaces = iv_max_faces ). DATA(lt_face_matches) = oo_result->get_facematches( ). DATA(lv_match_count2) = lines( lt_face_matches ). DATA(lv_msg5) = |Face search completed: { lv_match_count2 } match(es) found.|. MESSAGE lv_msg5 TYPE 'I'. CATCH /aws1/cx_rekresourcenotfoundex. MESSAGE 'Collection or face not found.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 SearchFaces

以下程式碼範例顯示如何使用 SearchFacesByImage

如需詳細資訊,請參閱搜尋人臉 (映像)

適用於 SAP ABAP 的開發套件
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

TRY. " Create S3 object reference for the image DATA(lo_s3object) = NEW /aws1/cl_reks3object( iv_bucket = iv_s3_bucket iv_name = iv_s3_key ). " Create image object DATA(lo_image) = NEW /aws1/cl_rekimage( io_s3object = lo_s3object ). " Search for matching faces oo_result = lo_rek->searchfacesbyimage( iv_collectionid = iv_collection_id io_image = lo_image iv_facematchthreshold = iv_threshold iv_maxfaces = iv_max_faces ). DATA(lt_face_matches) = oo_result->get_facematches( ). DATA(lv_match_count) = lines( lt_face_matches ). DATA(lv_msg4) = |Face search completed: { lv_match_count } match(es) found.|. MESSAGE lv_msg4 TYPE 'I'. CATCH /aws1/cx_rekresourcenotfoundex. MESSAGE 'Collection not found.' TYPE 'E'. CATCH /aws1/cx_rekinvalids3objectex. MESSAGE 'Invalid S3 object.' TYPE 'E'. CATCH /aws1/cx_rekinvalidparameterex. MESSAGE 'Invalid parameter value.' TYPE 'E'. ENDTRY.
  • 如需 API 詳細資訊,請參閱《適用於 AWS SAP ABAP 的 SDK API 參考》中的 SearchFacesByImage