Don't call Emotion API if OpenCv found no faces locally. (#4)

* Don't call Emotion API if OpenCv found no faces locally.

See
[this](http://stackoverflow.com/questions/42597067/emotion-recognition-real-time-analysis-api-calls)
for context.

* Move line for consistency
This commit is contained in:
Chris Thrasher 2017-03-08 10:11:56 -08:00 committed by GitHub
parent 779049ed3a
commit 0aad9934ba

View file

@ -206,7 +206,14 @@ namespace LiveCameraSample
// See if we have local face detections for this image. // See if we have local face detections for this image.
var localFaces = (OpenCvSharp.Rect[])frame.UserData; var localFaces = (OpenCvSharp.Rect[])frame.UserData;
if (localFaces != null) if (localFaces == null)
{
// If localFaces is null, we're not performing local face detection.
// Use Cognigitve Services to do the face detection.
Properties.Settings.Default.EmotionAPICallCount++;
emotions = await _emotionClient.RecognizeAsync(jpg);
}
else if (localFaces.Count() > 0)
{ {
// If we have local face detections, we can call the API with them. // If we have local face detections, we can call the API with them.
// First, convert the OpenCvSharp rectangles. // First, convert the OpenCvSharp rectangles.
@ -218,16 +225,15 @@ namespace LiveCameraSample
Width = f.Width, Width = f.Width,
Height = f.Height Height = f.Height
}); });
Properties.Settings.Default.EmotionAPICallCount++;
emotions = await _emotionClient.RecognizeAsync(jpg, rects.ToArray()); emotions = await _emotionClient.RecognizeAsync(jpg, rects.ToArray());
} }
else else
{ {
// If not, the API will do the face detection. // Local face detection found no faces; don't call Cognitive Services.
emotions = await _emotionClient.RecognizeAsync(jpg); emotions = new Emotion[0];
} }
// Count the API call.
Properties.Settings.Default.EmotionAPICallCount++;
// Output. // Output.
return new LiveCameraResult return new LiveCameraResult
{ {