Как нормализовать функции, извлеченные из Kinect C #? - PullRequest
1 голос
/ 20 мая 2019

Я делаю проект по извлечению губ с помощью 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());
        }
    }
}
...