What's new

Help C++ face recognition using Tensorflow

walter327

Addict
Joined
Jul 7, 2019
Posts
56
Reaction
3
Points
78
Anyone here na marunong pano i-implement ang tesnorflow sa C++ para sa facial recognition? yung may kasaman GUI narin sana.. papaturo ako .. kung meron naman .. at hindi libre .. pag-usapan po natin .. salamat po!


I am not new in programming but bago sakin yung Tensorflow at di ko masyado gamay ang C++. salamat po sa tutulong!
 
Hello! I can help you with implementing facial recognition using Tensorflow in C++.

First, you need to download and install the Tensorflow library for C++. You can find the installation instructions in the Tensorflow documentation. Once you have installed the library, you can start writing your code.

For facial recognition, you can use a pre-trained model like FaceNet. You can download the pre-trained model from the Tensorflow website. Once you have the model, you can load it into your C++ code using the Tensorflow C++ API.

As for the GUI, you can use any C++ GUI framework of your choice like Qt or wxWidgets. You can create a simple interface where the user can input an image and the program will recognize the person in the image using the pre-trained model.

Here is a sample code that loads the FaceNet model and uses it for facial recognition:

C++:
#include <tensorflow/cc/client/client_session.h>
#include <tensorflow/cc/ops/standard_ops.h>
#include <tensorflow/core/framework/tensor.h>
#include <tensorflow/core/public/session.h>

void recognize_face(cv::Mat img) {
    // Load the pre-trained FaceNet model
    tensorflow::Session* session;
    tensorflow::GraphDef graph_def;
    tensorflow::Status status = tensorflow::ReadBinaryProto(tensorflow::Env::Default(), "facenet_model.pb", &graph_def);
    if (!status.ok()) {
        std::cerr << "Unable to load FaceNet model: " << status.ToString() << std::endl;
        return;
    }
    session = tensorflow::NewSession(tensorflow::SessionOptions());
    status = session->Create(graph_def);
    if (!status.ok()) {
        std::cerr << "Unable to create FaceNet session: " << status.ToString() << std::endl;
        return;
    }

    // Preprocess the input image
    cv::resize(img, img, cv::Size(160, 160));
    cv::cvtColor(img, img, CV_BGR2RGB);
    img.convertTo(img, CV_32F);
    img = (img - 127.5) / 128.0;

    // Convert the image to a Tensor and run it through the FaceNet model
    tensorflow::Tensor input_tensor(tensorflow::DT_FLOAT, tensorflow::TensorShape({1, 160, 160, 3}));
    auto input_tensor_mapped = input_tensor.tensor<float, 4>();
    for (int y = 0; y < input_tensor_mapped.dimension(1); ++y) {
        const float* source_row = img.ptr<float>(y);
        for (int x = 0; x < input_tensor_mapped.dimension(2); ++x) {
            const float* source_pixel = source_row + (x * 3);
            input_tensor_mapped(0, y, x, 0) = source_pixel[0];
            input_tensor_mapped(0, y, x, 1) = source_pixel[1];
            input_tensor_mapped(0, y, x, 2) = source_pixel[2];
        }
    }
    std::vector<tensorflow::Tensor> outputs;
    status = session->Run({{"input:0", input_tensor}}, {"embeddings:0"}, {}, &outputs);
    if (!status.ok()) {
        std::cerr << "Unable to run FaceNet session: " << status.ToString() << std::endl;
        return;
    }

    // Use the output embeddings for recognition
    // TODO: Implement recognition logic here
}

This code loads the FaceNet model from a binary protobuf file and preprocesses the input image to match the input format of the model. It then runs the input image through the model and gets the embeddings output. You can use these embeddings for facial recognition by comparing them to a database of known embeddings.

I hope this helps you get started with implementing facial recognition using Tensorflow in C++! Let me know if you have any further questions.
 
Hello! I can help you with implementing facial recognition using Tensorflow in C++.

First, you need to download and install the Tensorflow library for C++. You can find the installation instructions in the Tensorflow documentation. Once you have installed the library, you can start writing your code.

For facial recognition, you can use a pre-trained model like FaceNet. You can download the pre-trained model from the Tensorflow website. Once you have the model, you can load it into your C++ code using the Tensorflow C++ API.

As for the GUI, you can use any C++ GUI framework of your choice like Qt or wxWidgets. You can create a simple interface where the user can input an image and the program will recognize the person in the image using the pre-trained model.

Here is a sample code that loads the FaceNet model and uses it for facial recognition:

C++:
#include <tensorflow/cc/client/client_session.h>
#include <tensorflow/cc/ops/standard_ops.h>
#include <tensorflow/core/framework/tensor.h>
#include <tensorflow/core/public/session.h>

void recognize_face(cv::Mat img) {
    // Load the pre-trained FaceNet model
    tensorflow::Session* session;
    tensorflow::GraphDef graph_def;
    tensorflow::Status status = tensorflow::ReadBinaryProto(tensorflow::Env::Default(), "facenet_model.pb", &graph_def);
    if (!status.ok()) {
        std::cerr << "Unable to load FaceNet model: " << status.ToString() << std::endl;
        return;
    }
    session = tensorflow::NewSession(tensorflow::SessionOptions());
    status = session->Create(graph_def);
    if (!status.ok()) {
        std::cerr << "Unable to create FaceNet session: " << status.ToString() << std::endl;
        return;
    }

    // Preprocess the input image
    cv::resize(img, img, cv::Size(160, 160));
    cv::cvtColor(img, img, CV_BGR2RGB);
    img.convertTo(img, CV_32F);
    img = (img - 127.5) / 128.0;

    // Convert the image to a Tensor and run it through the FaceNet model
    tensorflow::Tensor input_tensor(tensorflow::DT_FLOAT, tensorflow::TensorShape({1, 160, 160, 3}));
    auto input_tensor_mapped = input_tensor.tensor<float, 4>();
    for (int y = 0; y < input_tensor_mapped.dimension(1); ++y) {
        const float* source_row = img.ptr<float>(y);
        for (int x = 0; x < input_tensor_mapped.dimension(2); ++x) {
            const float* source_pixel = source_row + (x * 3);
            input_tensor_mapped(0, y, x, 0) = source_pixel[0];
            input_tensor_mapped(0, y, x, 1) = source_pixel[1];
            input_tensor_mapped(0, y, x, 2) = source_pixel[2];
        }
    }
    std::vector<tensorflow::Tensor> outputs;
    status = session->Run({{"input:0", input_tensor}}, {"embeddings:0"}, {}, &outputs);
    if (!status.ok()) {
        std::cerr << "Unable to run FaceNet session: " << status.ToString() << std::endl;
        return;
    }

    // Use the output embeddings for recognition
    // TODO: Implement recognition logic here
}

This code loads the FaceNet model from a binary protobuf file and preprocesses the input image to match the input format of the model. It then runs the input image through the model and gets the embeddings output. You can use these embeddings for facial recognition by comparing them to a database of known embeddings.

I hope this helps you get started with implementing facial recognition using Tensorflow in C++! Let me know if you have any further questions.
Wow!! That's nice .. i didn't expect that there will be a response right away..

Hmm how about the real time facial recognition? I'd like to try the real time recognition 🙂

By the way.. thanks for the first code .. I'll try it .. and try to analyze how the code works..

I am very blessed because you responded to my post 😊
 
Wow!! That's nice .. i didn't expect that there eill be a response right away..

Hmm how about the real time facial recognition?

By the way.. thanks for the first code .. I'll try it .. and try to analyze how the code works..

I am very blessed because you responded to my post 😊
You're welcome! I'm glad to be of help.

For real-time facial recognition, you can use a video stream from a camera and process each frame in real-time using the pre-trained model. Here is a sample code that shows how to capture a video stream from a camera and perform facial recognition on each frame:

C++:
#include <tensorflow/cc/client/client_session.h>
#include <tensorflow/cc/ops/standard_ops.h>
#include <tensorflow/core/framework/tensor.h>
#include <tensorflow/core/public/session.h>

int main() {
    // Load the pre-trained FaceNet model
    tensorflow::Session* session;
    tensorflow::GraphDef graph_def;
    tensorflow::Status status = tensorflow::ReadBinaryProto(tensorflow::Env::Default(), "facenet_model.pb", &graph_def);
    if (!status.ok()) {
        std::cerr << "Unable to load FaceNet model: " << status.ToString() << std::endl;
        return 1;
    }
    session = tensorflow::NewSession(tensorflow::SessionOptions());
    status = session->Create(graph_def);
    if (!status.ok()) {
        std::cerr << "Unable to create FaceNet session: " << status.ToString() << std::endl;
        return 1;
    }

    // Open the video stream
    cv::VideoCapture cap(0);
    if (!cap.isOpened()) {
        std::cerr << "Unable to open video stream" << std::endl;
        return 1;
    }

    // Process each frame in the video stream
    while(true) {
        // Capture a frame from the video stream
        cv::Mat frame;
        cap >> frame;
        if (frame.empty()) {
            std::cerr << "Unable to capture frame" << std::endl;
            break;
        }

        // Perform facial recognition on the frame
        recognize_face(frame);

        // Display the frame
        cv::imshow("Video Stream", frame);
        if(cv::waitKey(1) == 27) break;
    }

    // Release the video stream
    cap.release();
    cv::destroyAllWindows();
    return 0;
}

This code opens a video stream from the default camera and captures each frame in a while loop. It then performs facial recognition on each frame using the [ICODE]recognize_face[/ICODE] function from the previous code sample. Finally, it displays the processed frame in a window using OpenCV's [ICODE]imshow[/ICODE] function.

I hope this helps you get started with implementing real-time facial recognition using Tensorflow in C++! Let me know if you have any further questions.
 
Mga resources na maaaring magturo sa iyo ng proseso.

Una, maaari kang bumisita sa opisyal na website ng TensorFlow sa You do not have permission to view the full content of this post. Log in or register now. para sa mga detalye tungkol sa pag-install at paggamit ng TensorFlow sa C++.

Bukod dito, mayroong mga open-source library na nagbibigay ng pre-trained models para sa facial recognition, tulad ng OpenCV. Maaari kang mag-browse ng mga tutorials at dokumentasyon sa OpenCV website sa You do not have permission to view the full content of this post. Log in or register now. upang malaman kung paano ito magagamit.

Para sa GUI, maaari mong subukan ang Qt framework na nagbibigay ng mga kasangkapang GUI development sa C++. Maaari kang bumisita sa You do not have permission to view the full content of this post. Log in or register now. para sa mga detalye tungkol sa paggamit ng Qt.

Sana makatulong ito sa iyo. Mag-ingat!
 
use python po
bawal samin gumamit ng python bilang challenge ..
kaya C++ napili ko dahil machine learning din itong maituturing.. :)

Mga resources na maaaring magturo sa iyo ng proseso.

Una, maaari kang bumisita sa opisyal na website ng TensorFlow sa You do not have permission to view the full content of this post. Log in or register now. para sa mga detalye tungkol sa pag-install at paggamit ng TensorFlow sa C++.

Bukod dito, mayroong mga open-source library na nagbibigay ng pre-trained models para sa facial recognition, tulad ng OpenCV. Maaari kang mag-browse ng mga tutorials at dokumentasyon sa OpenCV website sa You do not have permission to view the full content of this post. Log in or register now. upang malaman kung paano ito magagamit.

Para sa GUI, maaari mong subukan ang Qt framework na nagbibigay ng mga kasangkapang GUI development sa C++. Maaari kang bumisita sa You do not have permission to view the full content of this post. Log in or register now. para sa mga detalye tungkol sa paggamit ng Qt.

Sana makatulong ito sa iyo. Mag-ingat!
salamat sa reply mo .. ito nga pinag-aaralan ko ngayon ang Qt ngayon ...
3D reconstruction ng face sinusubukan ko para di sya prone sa spoofing ng facial recognition.
sana nga may makapagsample ng code dito. kasi Zero knowledge talaga ako sa facial recognition, umaasa lang ako sa self study ko at panunuod kay pareng YøùTùbé.
 
Mga resources na maaaring magturo sa iyo ng proseso.

Una, maaari kang bumisita sa opisyal na website ng TensorFlow sa You do not have permission to view the full content of this post. Log in or register now. para sa mga detalye tungkol sa pag-install at paggamit ng TensorFlow sa C++.

Bukod dito, mayroong mga open-source library na nagbibigay ng pre-trained models para sa facial recognition, tulad ng OpenCV. Maaari kang mag-browse ng mga tutorials at dokumentasyon sa OpenCV website sa You do not have permission to view the full content of this post. Log in or register now. upang malaman kung paano ito magagamit.

Para sa GUI, maaari mong subukan ang Qt framework na nagbibigay ng mga kasangkapang GUI development sa C++. Maaari kang bumisita sa You do not have permission to view the full content of this post. Log in or register now. para sa mga detalye tungkol sa paggamit ng Qt.

Sana makatulong ito sa iyo. Mag-ingat!
veins31628 sir meron ako dito nakita.. gusto ko pag aralan .. maaarin nyo po ba ako turuan or gawan ng video pano ito i-implement or i-compile?



<a href="You do not have permission to view the full content of this post. Log in or register now.">dito po</a>
 
Back
Top