Я делаю проект по извлечению губ с помощью Kinect в C #.У меня вопрос, как сделать нормализацию с функциями?
Я думаю, что я должен сделать такую функцию:
Nd = (Cd * Fd) / dFN
где Nd - нормализованное расстояние, Cd - текущее расстояние до Kinect, Fd - значение глубины лба, для которого нормализуется каждый кадр, а dFN - значение глубины, для которого нормализуется каждый кадр.
Кроме того,должна быть реализована нормализация z-счета:
z = (X - μ) / σ
, где z - результат нормализации z-оценки, X - текущее значение признака, μсреднее значение, полученное в одной базе данных, и σ представляет дисперсию.
Как я могу выполнить эту нормализацию на основе признаков?
Вот функция, где я получаю функции для нормализации:
private void FaceReader_FrameArrived(object sender, HighDefinitionFaceFrameArrivedEventArgs e)
{
NewRecording();
using (var frame = e.FrameReference.AcquireFrame())
{
if (frame != null)
{
frame.GetAndRefreshFaceAlignmentResult(_faceAlignment);
UpdateFacePoints();
var vertices = _faceModel.CalculateVerticesForAlignment(_faceAlignment);
var lipLeftCorner = vertices[(int)HighDetailFacePoints.MouthLeftcorner];
var lipRightCorner = vertices[(int)HighDetailFacePoints.MouthRightcorner];
var lipWidth = Math.Abs(lipRightCorner.X - lipLeftCorner.X);
var lipTopCorner = vertices[(int)HighDetailFacePoints.MouthUpperlipMidtop];
var lipBottomCorner = vertices[(int)HighDetailFacePoints.MouthLowerlipMidbottom];
var lipHeight = Math.Abs(lipTopCorner.Y - lipBottomCorner.Y);
var chinCenter = vertices[(int)HighDetailFacePoints.ChinCenter];
Console.WriteLine(lipLeftCorner.X.ToString());
Console.WriteLine(lipRightCorner.X.ToString());
Console.WriteLine(lipWidth.ToString());
Console.WriteLine(lipTopCorner.Y.ToString());
Console.WriteLine(lipBottomCorner.Y.ToString());
Console.WriteLine(lipHeight.ToString());
Console.WriteLine(lipTopCorner.Z.ToString());
Console.WriteLine(chinCenter.X.ToString());
Console.WriteLine(chinCenter.Y.ToString());
}
}
}