Я только начал использовать Affectiva SDK для C#, и после нескольких прогонов я наткнулся на проблему непрерывного сбоя. Я использую обработку камеры на архитектуре x86 и .Net 4.5.1. У меня установлен VS 2013. Моя ОС - Windows 10. В моем выпуске я добавил «opencv_ffmpeg248» и «affdex-native». Код строит и работает нормально, но время от времени, во время выполнения, он выдает эти ошибки и приложение закрывается.Сбой в работе SDK от Affectiva C#
Это код, который я использую:
public class Class1 : Affdex.ImageListener
{
private Affdex.CameraDetector _detector;
public event EventHandler<string[]> AllValuesEvent;
public Class1()
{
_detector = new Affdex.CameraDetector();
_detector.setDetectAllEmotions(true);
_detector.setDetectAllAppearances(true);
String classifierPath = @"C:\Program Files (x86)\Affectiva\Affdex SDK\data";
_detector.setClassifierPath(classifierPath);
_detector.setImageListener(this);
_detector.start();
}
public void StopCamera()
{
_detector.stop();
}
public void onImageCapture(Frame frame)
{
}
public void onImageResults(Dictionary<int, Face> faces, Frame frame)
{
if (faces.Count > 0)
{
Face face = faces.First().Value;
Console.WriteLine("Age: {0} Gender: {1} Glasses: {2}",
face.Appearance.Age,
face.Appearance.Gender,
face.Appearance.Glasses);
string[] names = new string[8];
string[] values = new string[8];
names[0] = "Anger";
names[1] = "Contempt";
names[2] = "Disgust";
names[3] = "Engagement";
names[4] = "Fear";
names[5] = "Joy";
names[6] = "Sadness";
names[7] = "Surprise";
values[0] = face.Emotions.Anger.ToString("F2");
values[1] = face.Emotions.Contempt.ToString("F2");
values[2] = face.Emotions.Disgust.ToString("F2");
values[3] = face.Emotions.Engagement.ToString("F2");
values[4] = face.Emotions.Fear.ToString("F2");
values[5] = face.Emotions.Joy.ToString("F2");
values[6] = face.Emotions.Sadness.ToString("F2");
values[7] = face.Emotions.Surprise.ToString("F2");
RaiseAllValuesEvent(names, values);
}
}
private void RaiseAllValuesEvent(string[] names, string[] values)
{
if (AllValuesEvent != null)
{
AllValuesEvent(names, values);
}
}
}
Эти ошибки, которые появляются:
Каждый имеет какие-либо предложения?
спасибо.
Эй, может быть, проблема в том, что вы смешиваете отладочную и выпуск DLL. Можете ли вы убедиться, что вы импортируете библиотеки DLL, соответствующие вашему профилю сборки. – ahamino
Ну, похоже, ваше предложение, похоже, решило мою проблему. Я продолжу отслеживать его в течение следующих нескольких дней, чтобы узнать, не получил ли я все еще ошибку с помощью DLL-релиза и вернусь к результату. –
привет, @ahamino Ваше предложение исправлено с моей проблемой. Спасибо. Я не знаю, как отметить ваш комментарий в качестве ответа. –