Smooth landmarks on significant face position or pose changes

This commit is contained in:
alexander.biryukov committed 2018-06-04 08:24:42 +05:00
1 parent ec0d5090fc
commit 74402be3ca
4 files changed
+16 -22

No files matched your search

@@ -248,7 +248,7 @@ void FaceLandmarkDetector::FindLandmarkThreadProc(size_t threadIndex)
localOutputLandmarks.faceRect = localInputFace.faceRect;
localOutputLandmarks.frameIndex = localInputFace.frameIndex;
localOutputLandmarks.similarity = localInputFace.similarity;
localOutputLandmarks.noticeablyChanged = localInputFace.noticeablyChanged;
localOutputLandmarks.valid = true;
}
else
@@ -450,10 +450,11 @@ void FaceLandmarkDetector::InnerSeparateFacesToBuckets(std::vector<cv::Rect>& fa
}
}
inOutBucketArr[j].similarity = calcSimilarity(inOutBucketArr[j].faceFrame, facesBelongsToSpace[j][lastIndex].second);
inOutBucketArr[j].faceRect = facesBelongsToSpace[j][lastIndex].first;
inOutBucketArr[j].faceFrame = facesBelongsToSpace[j][lastIndex].second;
inOutBucketArr[j].noticeablyChanged =
calcSimilarity(inOutBucketArr[j].faceFrame, facesBelongsToSpace[j][lastIndex].second) > 0.01 ||
lastDistance > 100.0;
facesBelongsToSpace[j].erase(facesBelongsToSpace[j].begin() + lastIndex);
@@ -35,7 +35,7 @@ struct FaceIntermediateStruct
cv::Mat faceFrame;
int frameIndex;
double similarity = 0.0;
bool noticeablyChanged = false;
};
@@ -47,7 +47,7 @@ struct FaceLandmarkStruct
std::array<cv::Point2f, LANDMARK_POINT_COUNT> landmarkArr;
int frameIndex;
double similarity = 0.0;
bool noticeablyChanged = false;
};