前提條件
已建立並擷取AccessKey。具體操作,請參見建立AccessKey。
已開通OSS服務、建立儲存空間並上傳檔案到儲存空間。具體操作,請參見控制台上傳檔案。
已開通Intelligent Media Management服務。具體操作,請參見開通產品。
已通過Intelligent Media Management控制台建立專案。具體操作,請參見建立專案。
安裝SDK
重要
調用2020-09-30版本的API,需要使用2020-09-30版本的SDK。
使用Intelligent Media Management.NET SDK的操作步驟請參見快速入門。
訪問憑證
您可以選擇以下類型的訪問憑證。
臨時訪問憑證:對於需要高安全性的情境,例如臨時授權應用訪問IMM,建議使用臨時訪問憑證。臨時訪問憑證可以限制訪問的有效期間,從而減少訪問憑證泄露的風險。此外,臨時訪問憑證支援許可權控制,可以有效地避免許可權過大的問題。
長期訪問憑證:出於安全性考慮,不建議您使用長期訪問憑證,建議您使用臨時訪問憑證。對於需要便利性的情境,長期訪問憑證可以在較長時間內免除多次重新整理的麻煩。建議每三個月更換一次長期訪問憑證,以提高帳號的安全性。當長期訪問憑證泄露或者不再使用時,應該及時刪除或者禁用相關的訪問憑證,以免造成安全風險。
使用臨時訪問憑證
當您準備臨時使用.NET SDK訪問IMM服務時,可以參考配置臨時訪問憑證。
如下以在華東1(杭州)地區中檢測圖片中的人臉及人臉資訊為例,介紹如何使用臨時訪問憑證通過Intelligent Media Management.NET SDK調用對應API。
說明
複製使用如下範例程式碼時請將訪問網域名稱換成您的IMM專案所在Region的網域名稱,並且IMM專案和OSS檔案Region需要保持一致。
編輯Program.cs
。如下以在華東1(杭州)地區中檢測圖片中的人臉及人臉資訊為例介紹如何使用Intelligent Media Management.NET SDK。
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Tea;
using Tea.Utils;
using Aliyun.Credentials.Models;
namespace AlibabaCloud.SDK.Sample
{
public class Sample
{
public static AlibabaCloud.SDK.Imm20200930.Client CreateClient()
{
Aliyun.Credentials.Models.Config credentialsConfig = new Aliyun.Credentials.Models.Config()
{
Type = "sts",
AccessKeyId = "<ALIBABA_CLOUD_ACCESS_KEY_ID>",
AccessKeySecret = "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>",
SecurityToken = "<ALIBABA_CLOUD_SECURITY_TOKEN>"
};
Aliyun.Credentials.Client credentialClient = new Aliyun.Credentials.Client(credentialsConfig);
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config()
{
Credential = credentialClient,
Endpoint = "imm.cn-beijing.aliyuncs.com"
};
return new AlibabaCloud.SDK.Imm20200930.Client(config);
}
public static void Main(string[] args)
{
AlibabaCloud.SDK.Imm20200930.Client client = CreateClient();
AlibabaCloud.SDK.Imm20200930.Models.DetectImageFacesRequest detectImageFacesRequest = new AlibabaCloud.SDK.Imm20200930.Models.DetectImageFacesRequest
{
ProjectName = "test",
SourceURI = "oss://your-bucket-name/your-path/your-image.jpg",
};
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
try
{
Console.WriteLine(JsonConvert.SerializeObject(client.DetectImageFacesWithOptions(detectImageFacesRequest, runtime).Body));
}
catch (TeaException error)
{
Console.WriteLine(error.Message);
Console.WriteLine(error.Data["Recommend"]);
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{
{ "message", _error.Message }
});
Console.WriteLine(error.Message);
Console.WriteLine(error.Data["Recommend"]);
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
}
}
}
執行csc /out:D:\Program.cs D:\Program.exe
編譯,運行Program.exe輸出結果如下。
{
"RequestId": "2CCA6D7E-C9FB-5C87-8AC5-D6E6AC493096",
"Faces": [
{
"Beard": "none",
"MaskConfidence": 0.83,
"Gender": "female",
"Boundary": {
"Left": 81,
"Top": 62,
"Height": 127,
"Width": 96
},
"BeardConfidence": 1,
"FigureId": "0fccc5f9-22df-4507-ac53-f6a37f11a15a",
"Mouth": "open",
"Emotion": "happiness",
"Age": 25,
"MouthConfidence": 0.998,
"FigureType": "face",
"GenderConfidence": 1,
"HeadPose": {
"Pitch": -27.196,
"Roll": 6.075,
"Yaw": 3.477
},
"Mask": "none",
"EmotionConfidence": 0.999,
"HatConfidence": 1,
"GlassesConfidence": 1,
"Sharpness": 1,
"FigureClusterId": "figure-cluster-id-unavailable",
"FaceQuality": 0.998,
"Attractive": 0.998,
"AgeSD": 7,
"Glasses": "none",
"FigureConfidence": 0.999,
"Hat": "none"
}
]
}
使用長期訪問憑證
如下以在華東1(杭州)地區中檢測圖片中的人臉及人臉資訊為例,介紹如何使用臨時訪問憑證通過Intelligent Media Management.NET SDK調用對應API。
編輯Program.cs
。如下以在華東1(杭州)地區中檢測圖片中的人臉及人臉資訊為例介紹如何使用Intelligent Media Management.NET SDK。
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Tea;
using Tea.Utils;
namespace AlibabaCloud.SDK.Sample
{
public class Sample
{
public static AlibabaCloud.SDK.Imm20200930.Client CreateClient()
{
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
{
AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
};
config.Endpoint = "imm.cn-beijing.aliyuncs.com";
return new AlibabaCloud.SDK.Imm20200930.Client(config);
}
public static void Main(string[] args)
{
AlibabaCloud.SDK.Imm20200930.Client client = CreateClient();
AlibabaCloud.SDK.Imm20200930.Models.DetectImageFacesRequest detectImageFacesRequest = new AlibabaCloud.SDK.Imm20200930.Models.DetectImageFacesRequest
{
ProjectName = "test",
SourceURI = "oss://your-bucket-name/your-path/your-image.jpg",
};
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
try
{
Console.WriteLine(JsonConvert.SerializeObject(client.DetectImageFacesWithOptions(detectImageFacesRequest, runtime).Body));
}
catch (TeaException error)
{
Console.WriteLine(error.Message);
Console.WriteLine(error.Data["Recommend"]);
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{
{ "message", _error.Message }
});
Console.WriteLine(error.Message);
Console.WriteLine(error.Data["Recommend"]);
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
}
}
}
執行csc /out:D:\Program.cs D:\Program.exe
編譯,運行Program.exe輸出結果如下。
{
"RequestId": "2CCA6D7E-C9FB-5C87-8AC5-D6E6AC493096",
"Faces": [
{
"Beard": "none",
"MaskConfidence": 0.83,
"Gender": "female",
"Boundary": {
"Left": 81,
"Top": 62,
"Height": 127,
"Width": 96
},
"BeardConfidence": 1,
"FigureId": "0fccc5f9-22df-4507-ac53-f6a37f11a15a",
"Mouth": "open",
"Emotion": "happiness",
"Age": 25,
"MouthConfidence": 0.998,
"FigureType": "face",
"GenderConfidence": 1,
"HeadPose": {
"Pitch": -27.196,
"Roll": 6.075,
"Yaw": 3.477
},
"Mask": "none",
"EmotionConfidence": 0.999,
"HatConfidence": 1,
"GlassesConfidence": 1,
"Sharpness": 1,
"FigureClusterId": "figure-cluster-id-unavailable",
"FaceQuality": 0.998,
"Attractive": 0.998,
"AgeSD": 7,
"Glasses": "none",
"FigureConfidence": 0.999,
"Hat": "none"
}
]
}