

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

# 建立專案
<a name="mp-create-project"></a>

專案用於管理模型版本、培訓資料集和模型的測試資料集。您可以使用 Amazon Rekognition 自訂標籤主控台或 API 建立專案。如需了解其他專案相關功能 (例如刪除專案)，請參閱 [管理 Amazon Rekognition 自訂標籤專案](managing-project.md)。

 您可以使用標籤來分類和管理 Amazon Rekognition 自訂標籤資源，包括您的專案。

 [CreateProject](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateProject) 操作可讓您在建立新專案時選擇性地指定標籤，提供標籤做為索引鍵/值對，供您用來分類和管理資源。

## 建立 Amazon Rekognition 自訂標籤專案 (主控台)
<a name="mp-create-project-console"></a>

您可以使用 Amazon Rekognition 自訂標籤主控台建立專案。第一次在新 AWS 區域中使用主控台時，Amazon Rekognition 自訂標籤會要求 在 AWS 帳戶中建立 Amazon S3 儲存貯體 （主控台儲存貯體）。這個儲存貯體可用來存放您的專案。除非建立了主控台儲存貯體，否則您無法使用 Amazon Rekognition 自訂標籤主控台。

您可以使用 Amazon Rekognition 自訂標籤主控台建立專案。

**建立專案 (主控台)**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/) 開啟 Amazon Rekognition 主控台。

1. 在左側視窗中，選擇 **使用自訂標籤**。畫面將會顯示 Amazon Rekognition 自訂標籤的登入頁面。

1. 在 Amazon Rekognition 自訂標籤登陸頁面中，選擇 **開始使用**。

1. 在左側視窗，選擇 **專案**。

1. 選擇 **建立專案**。

1. 在 **專案名稱** 中，輸入您的專案名稱。

1. 選擇 **建立專案** 以建立您的專案。

1. 請遵循 [建立培訓和測試資料集](creating-datasets.md) 中的步驟，為您的專案建立培訓和測試資料集。

## 建立 Amazon Rekognition 自訂標籤專案 (SDK)
<a name="mp-create-project-sdk"></a>

您可以透過呼叫 [建立專案](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateProject) 來建立 Amazon Rekognition 自訂標籤專案。該回應是識別專案的 Amazon Resource Name (ARN)。建立專案後，您可以建立用於培訓和測試模型的資料集。如需詳細資訊，請參閱[建立包含影像的訓練和測試資料集](md-create-dataset.md)。

**若要建立專案 (SDK)**

1. 如果您尚未這麼做，請安裝並設定 AWS CLI 和 AWS SDKs。如需詳細資訊，請參閱[步驟 4：設定 AWS CLI 和 AWS SDKs](su-awscli-sdk.md)。

1. 使用以下程式碼來建立專案。

------
#### [ AWS CLI ]

   以下範例將建立一個專案並顯示其 ARN。

   將 `project-name` 的值變更為您要建立的專案的名稱。

   ```
   aws rekognition create-project --project-name my_project \
    --profile custom-labels-access --"CUSTOM_LABELS" --tags'{"key1":"value1","key2":"value2"}'
   ```

------
#### [ Python ]

   以下範例將建立一個專案並顯示其 ARN。提供下列命令列參數：
   + `project_name` – 您要建立的專案名稱。

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   import argparse
   import logging
   import boto3
   
   from botocore.exceptions import ClientError
   
   logger = logging.getLogger(__name__)
   
   def create_project(rek_client, project_name):
       """
       Creates an Amazon Rekognition Custom Labels project
       :param rek_client: The Amazon Rekognition Custom Labels Boto3 client.
       :param project_name: A name for the new prooject.
       """
   
       try:
           #Create the project.
           logger.info("Creating project: %s",project_name)
           
           response=rek_client.create_project(ProjectName=project_name)
           
           logger.info("project ARN: %s",response['ProjectArn'])
   
           return response['ProjectArn']
      
       
       except ClientError as err:  
           logger.exception("Couldn't create project - %s: %s", project_name, err.response['Error']['Message'])
           raise
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       :param parser: The command line parser.
       """
   
       parser.add_argument(
           "project_name", help="A name for the new project."
       )
   
   
   def main():
   
       logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
   
       try:
   
           # Get command line arguments.
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
           args = parser.parse_args()
   
           print(f"Creating project: {args.project_name}")
   
           # Create the project.
           session = boto3.Session(profile_name='custom-labels-access')
           rekognition_client = session.client("rekognition")
   
           project_arn=create_project(rekognition_client, 
               args.project_name)
   
           print(f"Finished creating project: {args.project_name}")
           print(f"ARN: {project_arn}")
   
       except ClientError as err:
           logger.exception("Problem creating project: %s", err)
           print(f"Problem creating project: {err}")
   
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ Java V2 ]

   以下範例將建立一個專案並顯示其 ARN。

   提供以下命令列參數：
   + `project_name` – 您要建立的專案名稱。

   ```
   /*
      Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
      SPDX-License-Identifier: Apache-2.0
   */
   package com.example.rekognition;
   
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.CreateProjectRequest;
   import software.amazon.awssdk.services.rekognition.model.CreateProjectResponse;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   
   import java.util.logging.Level;
   import java.util.logging.Logger;
   
   public class CreateProject {
   
       public static final Logger logger = Logger.getLogger(CreateProject.class.getName());
   
       public static String createMyProject(RekognitionClient rekClient, String projectName) {
   
           try {
   
               logger.log(Level.INFO, "Creating project: {0}", projectName);
               CreateProjectRequest createProjectRequest = CreateProjectRequest.builder().projectName(projectName).build();
   
               CreateProjectResponse response = rekClient.createProject(createProjectRequest);
   
               logger.log(Level.INFO, "Project ARN: {0} ", response.projectArn());
   
               return response.projectArn();
   
           } catch (RekognitionException e) {
               logger.log(Level.SEVERE, "Could not create project: {0}", e.getMessage());
               throw e;
           }
   
       }
   
       public static void main(String[] args) {
   
           final String USAGE = "\n" + "Usage: " + "<project_name> <bucket> <image>\n\n" + "Where:\n"
                   + "   project_name - A name for the new project\n\n";
   
           if (args.length != 1) {
               System.out.println(USAGE);
               System.exit(1);
           }
   
           String projectName = args[0];
           String projectArn = null;
           ;
   
           try {
   
               // Get the Rekognition client.
               RekognitionClient rekClient = RekognitionClient.builder()
                   .credentialsProvider(ProfileCredentialsProvider.create("custom-labels-access"))
                   .region(Region.US_WEST_2)
                   .build();
   
               // Create the project
               projectArn = createMyProject(rekClient, projectName);
   
               System.out.println(String.format("Created project: %s %nProject ARN: %s", projectName, projectArn));
   
               rekClient.close();
   
           } catch (RekognitionException rekError) {
               logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage());
               System.exit(1);
           }
   
       }
   
   }
   ```

------

1. 請留意回應中顯示的專案 ARN 名稱。您將需要它來建立模型。

1. 請遵循 [建立訓練和測試資料集 (SDK)](md-create-dataset.md#cd-create-dataset-sdk) 中的步驟，為您的專案建立培訓和測試資料集。

## CreateProject 操作請求
<a name="create-project-request"></a>

 以下是 CreateProject 操作請求的格式：

```
{
 "AutoUpdate": "string",
 "Feature": "string", 
 "ProjectName": "string",
 "Tags": {
 "string": "string"
 }
}
```