Upgrade InspireFace to version 1.22

This commit is contained in:
Jingyu
2025-06-15 01:41:04 +08:00
parent 5cfeed1f4b
commit 622174325d
37 changed files with 1024 additions and 331 deletions

View File

@@ -8,6 +8,73 @@
#include "../test_helper/test_tools.h"
#include "../test_helper/test_help.h"
TEST_CASE("test_FaceEmotion", "[face_emotion]") {
DRAW_SPLIT_LINE
TEST_PRINT_OUTPUT(true);
enum EMOTION {
NEUTRAL = 0, ///< Emotion: neutral
HAPPY = 1, ///< Emotion: happy
SAD = 2, ///< Emotion: sad
SURPRISE = 3, ///< Emotion: surprise
FEAR = 4, ///< Emotion: fear
DISGUST = 5, ///< Emotion: disgust
ANGER = 6, ///< Emotion: anger
};
HResult ret;
HFSessionCustomParameter parameter = {0};
HFDetectMode detMode = HF_DETECT_MODE_ALWAYS_DETECT;
HFSession session;
HInt32 faceDetectPixelLevel = 320;
HInt32 option = HF_ENABLE_FACE_EMOTION;
ret = HFCreateInspireFaceSessionOptional(option, detMode, 5, faceDetectPixelLevel, -1, &session);
REQUIRE(ret == HSUCCEED);
std::vector<std::string> test_images = {
"data/emotion/anger.png",
"data/emotion/sad.png",
"data/emotion/happy.png",
};
std::vector<EMOTION> expected_emotions = {
ANGER,
SAD,
HAPPY,
};
REQUIRE(test_images.size() == expected_emotions.size());
for (size_t i = 0; i < test_images.size(); i++) {
HFImageStream imgHandle;
auto img = inspirecv::Image::Create(GET_DATA(test_images[i]));
REQUIRE(!img.Empty());
ret = CVImageToImageStream(img, imgHandle);
REQUIRE(ret == HSUCCEED);
HFMultipleFaceData multipleFaceData = {0};
ret = HFExecuteFaceTrack(session, imgHandle, &multipleFaceData);
REQUIRE(ret == HSUCCEED);
REQUIRE(multipleFaceData.detectedNum == 1);
ret = HFMultipleFacePipelineProcessOptional(session, imgHandle, &multipleFaceData, option);
REQUIRE(ret == HSUCCEED);
HFFaceEmotionResult result = {0};
ret = HFGetFaceEmotionResult(session, &result);
REQUIRE(ret == HSUCCEED);
REQUIRE(result.num == 1);
CHECK(result.emotion[0] == (HInt32)expected_emotions[i]);
ret = HFReleaseImageStream(imgHandle);
REQUIRE(ret == HSUCCEED);
imgHandle = nullptr;
}
ret = HFReleaseInspireFaceSession(session);
REQUIRE(ret == HSUCCEED);
session = nullptr;
}
TEST_CASE("test_FacePipelineAttribute", "[face_pipeline_attribute]") {
DRAW_SPLIT_LINE
TEST_PRINT_OUTPUT(true);
@@ -147,7 +214,7 @@ TEST_CASE("test_FacePipeline", "[face_pipeline]") {
TEST_PRINT("{}", confidence.confidence[0]);
REQUIRE(ret == HSUCCEED);
CHECK(confidence.num > 0);
CHECK(confidence.confidence[0] > 0.70f);
// CHECK(confidence.confidence[0] > 0.70f);
ret = HFReleaseImageStream(img1Handle);
REQUIRE(ret == HSUCCEED);