Skip to content

Commit e5fbbc0

Browse files
committed
Add C# code snippet
1 parent 7d43c34 commit e5fbbc0

File tree

1 file changed

+65
-0
lines changed
  • articles/ai-services/computer-vision/Tutorials

1 file changed

+65
-0
lines changed

articles/ai-services/computer-vision/Tutorials/liveness.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,22 @@ The high-level steps involved in liveness orchestration are illustrated below:
9393

9494
#### [C#](#tab/csharp)
9595
```csharp
96+
var endpoint = new Uri(System.Environment.GetEnvironmentVariable("VISION_ENDPOINT"));
97+
var credential = new AzureKeyCredential(System.Environment.GetEnvironmentVariable("VISION_KEY"));
98+
99+
var sessionClient = new FaceSessionClient(endpoint, credential);
100+
101+
var createContent = new CreateLivenessSessionContent(LivenessOperationMode.Passive)
102+
{
103+
DeviceCorrelationId = "723d6d03-ef33-40a8-9682-23a1feb7bccd",
104+
SendResultsToClient = false,
105+
};
106+
107+
var createResponse = await sessionClient.CreateLivenessSessionAsync(createContent);
108+
var sessionId = createResponse.Value.SessionId;
109+
Console.WriteLine($"Session created.");
110+
Console.WriteLine($"Session id: {sessionId}");
111+
Console.WriteLine($"Auth token: {createResponse.Value.AuthToken}");
96112
```
97113

98114
#### [Java](#tab/java)
@@ -207,6 +223,18 @@ The high-level steps involved in liveness orchestration are illustrated below:
207223

208224
#### [C#](#tab/csharp)
209225
```csharp
226+
var getResultResponse = await sessionClient.GetLivenessSessionResultAsync(sessionId);
227+
228+
var sessionResult = getResultResponse.Value;
229+
Console.WriteLine($"Session id: {sessionResult.Id}");
230+
Console.WriteLine($"Session status: {sessionResult.Status}");
231+
Console.WriteLine($"Liveness detection request id: {sessionResult.Result?.RequestId}");
232+
Console.WriteLine($"Liveness detection received datetime: {sessionResult.Result?.ReceivedDateTime}");
233+
Console.WriteLine($"Liveness detection decision: {sessionResult.Result?.Response.Body.LivenessDecision}");
234+
Console.WriteLine($"Session created datetime: {sessionResult.CreatedDateTime}");
235+
Console.WriteLine($"Auth token TTL (seconds): {sessionResult.AuthTokenTimeToLiveInSeconds}");
236+
Console.WriteLine($"Session expired: {sessionResult.SessionExpired}");
237+
Console.WriteLine($"Device correlation id: {sessionResult.DeviceCorrelationId}");
210238
```
211239

212240
#### [Java](#tab/java)
@@ -306,6 +334,8 @@ The high-level steps involved in liveness orchestration are illustrated below:
306334

307335
#### [C#](#tab/csharp)
308336
```csharp
337+
await sessionClient.DeleteLivenessSessionAsync(sessionId);
338+
Console.WriteLine($"The session {sessionId} is deleted.");
309339
```
310340

311341
#### [Java](#tab/java)
@@ -378,6 +408,26 @@ The high-level steps involved in liveness with verification orchestration are il
378408
379409
#### [C#](#tab/csharp)
380410
```csharp
411+
var endpoint = new Uri(System.Environment.GetEnvironmentVariable("VISION_ENDPOINT"));
412+
var credential = new AzureKeyCredential(System.Environment.GetEnvironmentVariable("VISION_KEY"));
413+
414+
var sessionClient = new FaceSessionClient(endpoint, credential);
415+
416+
var createContent = new CreateLivenessSessionContent(LivenessOperationMode.Passive)
417+
{
418+
DeviceCorrelationId = "723d6d03-ef33-40a8-9682-23a1feb7bccd"
419+
};
420+
using var fileStream = new FileStream("test.png", FileMode.Open, FileAccess.Read);
421+
422+
var createResponse = await sessionClient.CreateLivenessWithVerifySessionAsync(createContent, fileStream);
423+
424+
var sessionId = createResponse.Value.SessionId;
425+
Console.WriteLine("Session created.");
426+
Console.WriteLine($"Session id: {sessionId}");
427+
Console.WriteLine($"Auth token: {createResponse.Value.AuthToken}");
428+
Console.WriteLine("The reference image:");
429+
Console.WriteLine($" Face rectangle: {createResponse.Value.VerifyImage.FaceRectangle.Top}, {createResponse.Value.VerifyImage.FaceRectangle.Left}, {createResponse.Value.VerifyImage.FaceRectangle.Width}, {createResponse.Value.VerifyImage.FaceRectangle.Height}");
430+
Console.WriteLine($" The quality for recognition: {createResponse.Value.VerifyImage.QualityForRecognition}");
381431
```
382432

383433
#### [Java](#tab/java)
@@ -502,6 +552,19 @@ The high-level steps involved in liveness with verification orchestration are il
502552

503553
#### [C#](#tab/csharp)
504554
```csharp
555+
var getResultResponse = await sessionClient.GetLivenessWithVerifySessionResultAsync(sessionId);
556+
var sessionResult = getResultResponse.Value;
557+
Console.WriteLine($"Session id: {sessionResult.Id}");
558+
Console.WriteLine($"Session status: {sessionResult.Status}");
559+
Console.WriteLine($"Liveness detection request id: {sessionResult.Result?.RequestId}");
560+
Console.WriteLine($"Liveness detection received datetime: {sessionResult.Result?.ReceivedDateTime}");
561+
Console.WriteLine($"Liveness detection decision: {sessionResult.Result?.Response.Body.LivenessDecision}");
562+
Console.WriteLine($"Verification result: {sessionResult.Result?.Response.Body.VerifyResult.IsIdentical}");
563+
Console.WriteLine($"Verification confidence: {sessionResult.Result?.Body.VerifyResult.MatchConfidence}");
564+
Console.WriteLine($"Session created datetime: {sessionResult.CreatedDateTime}");
565+
Console.WriteLine($"Auth token TTL (seconds): {sessionResult.AuthTokenTimeToLiveInSeconds}");
566+
Console.WriteLine($"Session expired: {sessionResult.SessionExpired}");
567+
Console.WriteLine($"Device correlation id: {sessionResult.DeviceCorrelationId}");
505568
```
506569

507570
#### [Java](#tab/java)
@@ -609,6 +672,8 @@ The high-level steps involved in liveness with verification orchestration are il
609672

610673
#### [C#](#tab/csharp)
611674
```csharp
675+
await sessionClient.DeleteLivenessWithVerifySessionAsync(sessionId);
676+
Console.WriteLine($"The session {sessionId} is deleted.");
612677
```
613678

614679
#### [Java](#tab/java)

0 commit comments

Comments
 (0)