feat: updated face mesh lib class name
This commit is contained in:
parent
de5fc2a532
commit
c48c01ca75
|
@ -21,7 +21,7 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
LOG(INFO) << "VideoCapture initialized.";
|
LOG(INFO) << "VideoCapture initialized.";
|
||||||
|
|
||||||
FaceMeshDetector *faceMeshDetector = FaceMeshDetector_Construct();
|
MPFaceMeshDetector *faceMeshDetector = FaceMeshDetector_Construct();
|
||||||
|
|
||||||
LOG(INFO) << "FaceMeshDetector constructed.";
|
LOG(INFO) << "FaceMeshDetector constructed.";
|
||||||
|
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
#include "face_mesh_lib.h"
|
#include "face_mesh_lib.h"
|
||||||
|
|
||||||
FaceMeshDetector::FaceMeshDetector() {
|
MPFaceMeshDetector::MPFaceMeshDetector() {
|
||||||
const auto status = InitFaceMeshDetector();
|
const auto status = InitFaceMeshDetector();
|
||||||
if (!status.ok()) {
|
if (!status.ok()) {
|
||||||
LOG(INFO) << "Failed constructing FaceMeshDetector.";
|
LOG(INFO) << "Failed constructing FaceMeshDetector.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
absl::Status FaceMeshDetector::InitFaceMeshDetector() {
|
absl::Status MPFaceMeshDetector::InitFaceMeshDetector() {
|
||||||
LOG(INFO) << "Get calculator graph config contents: " << graphConfig;
|
LOG(INFO) << "Get calculator graph config contents: " << graphConfig;
|
||||||
|
|
||||||
mediapipe::CalculatorGraphConfig config =
|
mediapipe::CalculatorGraphConfig config =
|
||||||
|
@ -37,8 +37,8 @@ absl::Status FaceMeshDetector::InitFaceMeshDetector() {
|
||||||
return absl::Status();
|
return absl::Status();
|
||||||
}
|
}
|
||||||
|
|
||||||
absl::Status FaceMeshDetector::ProcessFrameWithStatus(
|
absl::Status MPFaceMeshDetector::ProcessFrameWithStatus(
|
||||||
cv::Mat &camera_frame,
|
const cv::Mat &camera_frame,
|
||||||
std::unique_ptr<std::vector<std::vector<cv::Point2f>>>
|
std::unique_ptr<std::vector<std::vector<cv::Point2f>>>
|
||||||
&multi_face_landmarks) {
|
&multi_face_landmarks) {
|
||||||
// Wrap Mat into an ImageFrame.
|
// Wrap Mat into an ImageFrame.
|
||||||
|
@ -115,7 +115,7 @@ absl::Status FaceMeshDetector::ProcessFrameWithStatus(
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::vector<cv::Point2f>> *
|
std::vector<std::vector<cv::Point2f>> *
|
||||||
FaceMeshDetector::ProcessFrame2D(cv::Mat &camera_frame) {
|
MPFaceMeshDetector::ProcessFrame2D(const cv::Mat &camera_frame) {
|
||||||
auto landmarks = std::make_unique<std::vector<std::vector<cv::Point2f>>>();
|
auto landmarks = std::make_unique<std::vector<std::vector<cv::Point2f>>>();
|
||||||
|
|
||||||
ProcessFrameWithStatus(camera_frame, landmarks);
|
ProcessFrameWithStatus(camera_frame, landmarks);
|
||||||
|
@ -124,25 +124,27 @@ FaceMeshDetector::ProcessFrame2D(cv::Mat &camera_frame) {
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
DLLEXPORT FaceMeshDetector *FaceMeshDetector_Construct() {
|
DLLEXPORT MPFaceMeshDetector *FaceMeshDetector_Construct() {
|
||||||
return new FaceMeshDetector();
|
return new MPFaceMeshDetector();
|
||||||
}
|
}
|
||||||
|
|
||||||
DLLEXPORT void FaceMeshDetector_Destruct(FaceMeshDetector *detector) {
|
DLLEXPORT void FaceMeshDetector_Destruct(MPFaceMeshDetector *detector) {
|
||||||
delete detector;
|
delete detector;
|
||||||
}
|
}
|
||||||
|
|
||||||
DLLEXPORT void *FaceMeshDetector_ProcessFrame2D(FaceMeshDetector *detector,
|
DLLEXPORT void *
|
||||||
cv::Mat &camera_frame) {
|
FaceMeshDetector_ProcessFrame2D(MPFaceMeshDetector *detector,
|
||||||
|
const cv::Mat &camera_frame) {
|
||||||
return reinterpret_cast<void *>(detector->ProcessFrame2D(camera_frame));
|
return reinterpret_cast<void *>(detector->ProcessFrame2D(camera_frame));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const char FaceMeshDetector::kInputStream[] = "input_video";
|
const char MPFaceMeshDetector::kInputStream[] = "input_video";
|
||||||
const char FaceMeshDetector::kOutputStream_landmarks[] = "multi_face_landmarks";
|
const char MPFaceMeshDetector::kOutputStream_landmarks[] =
|
||||||
const char FaceMeshDetector::kOutputStream_faceCount[] = "face_count";
|
"multi_face_landmarks";
|
||||||
|
const char MPFaceMeshDetector::kOutputStream_faceCount[] = "face_count";
|
||||||
|
|
||||||
const std::string FaceMeshDetector::graphConfig = R"pb(
|
const std::string MPFaceMeshDetector::graphConfig = R"pb(
|
||||||
# MediaPipe graph that performs face mesh with TensorFlow Lite on CPU.
|
# MediaPipe graph that performs face mesh with TensorFlow Lite on CPU.
|
||||||
|
|
||||||
# Input image. (ImageFrame)
|
# Input image. (ImageFrame)
|
||||||
|
|
|
@ -25,16 +25,16 @@
|
||||||
#include "mediapipe/framework/port/parse_text_proto.h"
|
#include "mediapipe/framework/port/parse_text_proto.h"
|
||||||
#include "mediapipe/framework/port/status.h"
|
#include "mediapipe/framework/port/status.h"
|
||||||
|
|
||||||
class FaceMeshDetector {
|
class MPFaceMeshDetector {
|
||||||
public:
|
public:
|
||||||
FaceMeshDetector();
|
MPFaceMeshDetector();
|
||||||
~FaceMeshDetector() = default;
|
~MPFaceMeshDetector() = default;
|
||||||
std::vector<std::vector<cv::Point2f>> *ProcessFrame2D(cv::Mat &camera_frame);
|
std::vector<std::vector<cv::Point2f>> *ProcessFrame2D(const cv::Mat &camera_frame);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
absl::Status InitFaceMeshDetector();
|
absl::Status InitFaceMeshDetector();
|
||||||
absl::Status
|
absl::Status
|
||||||
ProcessFrameWithStatus(cv::Mat &camera_frame,
|
ProcessFrameWithStatus(const cv::Mat &camera_frame,
|
||||||
std::unique_ptr<std::vector<std::vector<cv::Point2f>>>
|
std::unique_ptr<std::vector<std::vector<cv::Point2f>>>
|
||||||
&multi_face_landmarks);
|
&multi_face_landmarks);
|
||||||
|
|
||||||
|
@ -54,12 +54,12 @@ private:
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
DLLEXPORT FaceMeshDetector *FaceMeshDetector_Construct();
|
DLLEXPORT MPFaceMeshDetector *FaceMeshDetector_Construct();
|
||||||
|
|
||||||
DLLEXPORT void FaceMeshDetector_Destruct(FaceMeshDetector *detector);
|
DLLEXPORT void FaceMeshDetector_Destruct(MPFaceMeshDetector *detector);
|
||||||
|
|
||||||
DLLEXPORT void *FaceMeshDetector_ProcessFrame2D(FaceMeshDetector *detector,
|
DLLEXPORT void *FaceMeshDetector_ProcessFrame2D(MPFaceMeshDetector *detector,
|
||||||
cv::Mat &camera_frame);
|
const cv::Mat &camera_frame);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user