mirror of
https://github.com/deepinsight/insightface.git
synced 2026-02-08 12:30:18 +00:00
Update
This commit is contained in:
@@ -1,26 +1,28 @@
|
||||
#include <inspirecv/inspirecv.h>
|
||||
#include "inspireface/initialization_module/launch.h"
|
||||
#include <inspireface/include/inspireface/launch.h>
|
||||
#include "inspireface/middleware/model_archive/inspire_archive.h"
|
||||
#include "inspireface/track_module/face_detect/face_detect_adapt.h"
|
||||
#include "inspireface/track_module/landmark/face_landmark_adapt.h"
|
||||
#include "inspireface/track_module/quality/face_pose_quality_adapt.h"
|
||||
#include "inspireface/recognition_module/extract/extract_adapt.h"
|
||||
#include "inspireface/include/inspireface/spend_timer.h"
|
||||
|
||||
void test_face_detect() {
|
||||
inspire::InspireModel model;
|
||||
INSPIRE_LAUNCH->getMArchive().LoadModel("face_detect_160", model);
|
||||
INSPIREFACE_CONTEXT->getMArchive().LoadModel("face_detect_160", model);
|
||||
auto input_size = 160;
|
||||
inspire::FaceDetectAdapt faceDetectAdapt(input_size);
|
||||
faceDetectAdapt.loadData(model, model.modelType);
|
||||
faceDetectAdapt.LoadData(model, model.modelType);
|
||||
inspirecv::Image image = inspirecv::Image::Create("test_res/data/bulk/kun.jpg");
|
||||
inspire::FaceLocList faces;
|
||||
inspirecv::TimeSpend timeSpend("Face Detect@" + std::to_string(input_size));
|
||||
inspire::SpendTimer timeSpend("Face Detect@" + std::to_string(input_size));
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
timeSpend.Start();
|
||||
faces = faceDetectAdapt(image);
|
||||
timeSpend.Stop();
|
||||
}
|
||||
std::cout << timeSpend << std::endl;
|
||||
;
|
||||
std::cout << "faces size: " << faces.size() << std::endl;
|
||||
for (auto &face : faces) {
|
||||
inspirecv::Rect2i rect = inspirecv::Rect2i::Create(face.x1, face.y1, face.x2 - face.x1, face.y2 - face.y1);
|
||||
@@ -31,20 +33,21 @@ void test_face_detect() {
|
||||
|
||||
void test_landmark() {
|
||||
inspire::InspireModel model;
|
||||
INSPIRE_LAUNCH->getMArchive().LoadModel("landmark", model);
|
||||
INSPIREFACE_CONTEXT->getMArchive().LoadModel("landmark", model);
|
||||
auto input_size = 112;
|
||||
inspire::FaceLandmarkAdapt landmarkAdapt(input_size);
|
||||
landmarkAdapt.loadData(model, model.modelType);
|
||||
landmarkAdapt.LoadData(model, model.modelType);
|
||||
inspirecv::Image image = inspirecv::Image::Create("test_res/data/crop/crop.png");
|
||||
image = image.Resize(input_size, input_size);
|
||||
std::vector<float> lmk;
|
||||
inspirecv::TimeSpend timeSpend("Landmark@" + std::to_string(input_size));
|
||||
inspire::SpendTimer timeSpend("Landmark@" + std::to_string(input_size));
|
||||
timeSpend.Start();
|
||||
for (int i = 0; i < 10; i++) {
|
||||
lmk = landmarkAdapt(image);
|
||||
}
|
||||
timeSpend.Stop();
|
||||
std::cout << timeSpend << std::endl;
|
||||
;
|
||||
for (int i = 0; i < inspire::FaceLandmarkAdapt::NUM_OF_LANDMARK; i++) {
|
||||
auto p = inspirecv::Point2i::Create(lmk[i * 2] * input_size, lmk[i * 2 + 1] * input_size);
|
||||
image.DrawCircle(p, 5, {0, 0, 255});
|
||||
@@ -54,20 +57,21 @@ void test_landmark() {
|
||||
|
||||
void test_quality() {
|
||||
inspire::InspireModel model;
|
||||
INSPIRE_LAUNCH->getMArchive().LoadModel("pose_quality", model);
|
||||
INSPIREFACE_CONTEXT->getMArchive().LoadModel("pose_quality", model);
|
||||
auto input_size = 96;
|
||||
inspire::FacePoseQualityAdapt poseQualityAdapt;
|
||||
poseQualityAdapt.loadData(model, model.modelType);
|
||||
poseQualityAdapt.LoadData(model, model.modelType);
|
||||
inspirecv::Image image = inspirecv::Image::Create("test_res/data/crop/crop.png");
|
||||
image = image.Resize(input_size, input_size);
|
||||
inspire::FacePoseQualityAdaptResult quality;
|
||||
inspirecv::TimeSpend timeSpend("Pose Quality@" + std::to_string(input_size));
|
||||
inspire::SpendTimer timeSpend("Pose Quality@" + std::to_string(input_size));
|
||||
timeSpend.Start();
|
||||
for (int i = 0; i < 10; i++) {
|
||||
quality = poseQualityAdapt(image);
|
||||
}
|
||||
timeSpend.Stop();
|
||||
std::cout << timeSpend << std::endl;
|
||||
;
|
||||
std::cout << "quality: " << quality.pitch << ", " << quality.yaw << ", " << quality.roll << std::endl;
|
||||
for (int i = 0; i < quality.lmk.size(); i++) {
|
||||
std::cout << "lmk: " << quality.lmk[i].GetX() << ", " << quality.lmk[i].GetY() << std::endl;
|
||||
@@ -79,15 +83,15 @@ void test_quality() {
|
||||
|
||||
void test_feature() {
|
||||
inspire::InspireModel model;
|
||||
INSPIRE_LAUNCH->getMArchive().LoadModel("feature", model);
|
||||
INSPIREFACE_CONTEXT->getMArchive().LoadModel("feature", model);
|
||||
auto input_size = 112;
|
||||
inspire::ExtractAdapt extractAdapt;
|
||||
extractAdapt.loadData(model, model.modelType);
|
||||
extractAdapt.LoadData(model, model.modelType);
|
||||
inspirecv::Image image = inspirecv::Image::Create("test_res/data/crop/crop.png");
|
||||
image = image.Resize(input_size, input_size);
|
||||
float norm;
|
||||
bool normalize = true;
|
||||
inspirecv::TimeSpend timeSpend("Extract@" + std::to_string(input_size));
|
||||
inspire::SpendTimer timeSpend("Extract@" + std::to_string(input_size));
|
||||
timeSpend.Start();
|
||||
inspire::Embedded feature;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
@@ -95,12 +99,13 @@ void test_feature() {
|
||||
}
|
||||
timeSpend.Stop();
|
||||
std::cout << timeSpend << std::endl;
|
||||
;
|
||||
std::cout << "feature: " << feature.size() << std::endl;
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::string archivePath = "test_res/pack/Pikachu_Apple";
|
||||
INSPIRE_LAUNCH->Load(archivePath);
|
||||
INSPIREFACE_CONTEXT->Load(archivePath);
|
||||
// Test face detect
|
||||
test_face_detect();
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#include <inspirecv/inspirecv.h>
|
||||
#include <inspireface/track_module/face_track_module.h>
|
||||
#include "inspireface/initialization_module/launch.h"
|
||||
#include <inspireface/middleware/inspirecv_image_process.h>
|
||||
#include <inspireface/include/inspireface/launch.h>
|
||||
#include <inspireface/include/inspireface/frame_process.h>
|
||||
#include <inspireface/pipeline_module/face_pipeline_module.h>
|
||||
#include <inspireface/common/face_data/face_serialize_tools.h>
|
||||
#include <inspireface/feature_hub/feature_hub_db.h>
|
||||
#include <inspireface/include/inspireface/feature_hub_db.h>
|
||||
|
||||
using namespace inspire;
|
||||
|
||||
@@ -60,19 +60,19 @@ static std::vector<float> FT = {
|
||||
|
||||
int main() {
|
||||
std::string expansion_path = "";
|
||||
INSPIRE_LAUNCH->Load("test_res/pack/Pikachu");
|
||||
INSPIREFACE_CONTEXT->Load("test_res/pack/Pikachu");
|
||||
|
||||
DatabaseConfiguration configuration;
|
||||
configuration.primary_key_mode = PrimaryKeyMode::MANUAL_INPUT;
|
||||
configuration.enable_persistence = false;
|
||||
configuration.recognition_threshold = 0.48f;
|
||||
|
||||
FEATURE_HUB_DB->EnableHub(configuration);
|
||||
INSPIREFACE_FEATURE_HUB->EnableHub(configuration);
|
||||
|
||||
// std::vector<float> feature(512, 0.0f);
|
||||
|
||||
int64_t result_id = 0;
|
||||
auto ret = FEATURE_HUB_DB->FaceFeatureInsert(FT, 10086, result_id);
|
||||
auto ret = INSPIREFACE_FEATURE_HUB->FaceFeatureInsert(FT, 10086, result_id);
|
||||
if (ret != HSUCCEED) {
|
||||
INSPIRE_LOGE("Failed to insert face feature");
|
||||
INSPIRE_LOGI("result id: %lld", result_id);
|
||||
@@ -82,7 +82,7 @@ int main() {
|
||||
|
||||
// std::vector<float> query_feature(512, 20.0f);
|
||||
FaceSearchResult search_result;
|
||||
ret = FEATURE_HUB_DB->SearchFaceFeature(FT, search_result, true);
|
||||
ret = INSPIREFACE_FEATURE_HUB->SearchFaceFeature(FT, search_result, true);
|
||||
if (ret != HSUCCEED) {
|
||||
INSPIRE_LOGE("Failed to search face feature");
|
||||
} else {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#include <iostream>
|
||||
#include <inspirecv/inspirecv.h>
|
||||
#include "inspireface/initialization_module/launch.h"
|
||||
#include <inspireface/middleware/inspirecv_image_process.h>
|
||||
#include <inspireface/include/inspireface/launch.h>
|
||||
#include <inspireface/include/inspireface/frame_process.h>
|
||||
#include "inspireface/track_module/landmark/face_landmark_adapt.h"
|
||||
int main() {
|
||||
std::string expansion_path = "";
|
||||
INSPIRE_LAUNCH->Load("test_res/pack/Pikachu-t4");
|
||||
auto archive = INSPIRE_LAUNCH->getMArchive();
|
||||
INSPIREFACE_CONTEXT->Load("test_res/pack/Pikachu-t4");
|
||||
auto archive = INSPIREFACE_CONTEXT->getMArchive();
|
||||
|
||||
inspire::InspireModel lmkModel;
|
||||
auto ret = archive.LoadModel("landmark", lmkModel);
|
||||
@@ -16,7 +16,7 @@ int main() {
|
||||
}
|
||||
|
||||
inspire::FaceLandmarkAdapt lmk;
|
||||
lmk.loadData(lmkModel, lmkModel.modelType);
|
||||
lmk.LoadData(lmkModel, lmkModel.modelType);
|
||||
|
||||
auto image = inspirecv::Image::Create("test_res/data/crop/crop.png");
|
||||
auto data = image.Resize(112, 112);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <inspirecv/inspirecv.h>
|
||||
#include <inspireface/track_module/face_track_module.h>
|
||||
#include "inspireface/initialization_module/launch.h"
|
||||
#include <inspireface/middleware/inspirecv_image_process.h>
|
||||
#include <inspireface/include/inspireface/launch.h>
|
||||
#include <inspireface/include/inspireface/frame_process.h>
|
||||
#include <inspireface/pipeline_module/face_pipeline_module.h>
|
||||
#include <inspireface/common/face_data/face_serialize_tools.h>
|
||||
|
||||
@@ -9,8 +9,8 @@ using namespace inspire;
|
||||
|
||||
int main() {
|
||||
std::string expansion_path = "";
|
||||
INSPIRE_LAUNCH->Load("test_res/pack/Pikachu");
|
||||
auto archive = INSPIRE_LAUNCH->getMArchive();
|
||||
INSPIREFACE_CONTEXT->Load("test_res/pack/Pikachu");
|
||||
auto archive = INSPIREFACE_CONTEXT->getMArchive();
|
||||
auto mode = inspire::DetectModuleMode::DETECT_MODE_LIGHT_TRACK;
|
||||
FaceTrackModule tracker(mode, 10, 20, 320, -1);
|
||||
tracker.Configuration(archive, expansion_path);
|
||||
@@ -18,7 +18,7 @@ int main() {
|
||||
FacePipelineModule pipe(archive, true, true, true, true);
|
||||
|
||||
auto image = inspirecv::Image::Create("test_res/data/bulk/r90.jpg");
|
||||
inspirecv::InspireImageProcess processor;
|
||||
inspirecv::FrameProcess processor;
|
||||
processor.SetDataBuffer(image.Data(), image.Height(), image.Width());
|
||||
processor.SetDataFormat(inspirecv::DATA_FORMAT::BGR);
|
||||
processor.SetRotationMode(inspirecv::ROTATION_MODE::ROTATION_90);
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
#include <inspirecv/inspirecv.h>
|
||||
#include <inspireface/track_module/face_track_module.h>
|
||||
#include "inspireface/initialization_module/launch.h"
|
||||
#include <inspireface/middleware/inspirecv_image_process.h>
|
||||
#include <inspireface/include/inspireface/launch.h>
|
||||
#include <inspireface/include/inspireface/frame_process.h>
|
||||
|
||||
using namespace inspire;
|
||||
|
||||
int main() {
|
||||
std::string expansion_path = "";
|
||||
INSPIRE_LAUNCH->Load("test_res/pack/Pikachu");
|
||||
auto archive = INSPIRE_LAUNCH->getMArchive();
|
||||
INSPIREFACE_CONTEXT->Load("test_res/pack/Pikachu");
|
||||
auto archive = INSPIREFACE_CONTEXT->getMArchive();
|
||||
auto mode = inspire::DetectModuleMode::DETECT_MODE_ALWAYS_DETECT;
|
||||
FaceTrackModule tracker(mode, 10, 20, 320, -1);
|
||||
tracker.Configuration(archive, expansion_path);
|
||||
|
||||
auto image = inspirecv::Image::Create("test_res/data/bulk/r0.jpg");
|
||||
inspirecv::InspireImageProcess processor;
|
||||
inspirecv::FrameProcess processor;
|
||||
processor.SetDataBuffer(image.Data(), image.Height(), image.Width());
|
||||
processor.SetDataFormat(inspirecv::DATA_FORMAT::BGR);
|
||||
processor.SetRotationMode(inspirecv::ROTATION_MODE::ROTATION_0);
|
||||
|
||||
Reference in New Issue
Block a user