about lnet i want to transfer to ncnn. about my code is that.
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <vector>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include "platform.h"
#include "net.h"
#include "mat.h"
class Noop : public ncnn::Layer {};
DEFINE_LAYER_CREATOR(Noop)
int main() {
ncnn::Net net;
net.register_custom_layer("LinearRegressionOutput", Noop_layer_creator);
net.register_custom_layer("Custom", Noop_layer_creator);
net.load_param("../model/L106.param");
net.load_model("../model/L106.bin");
cv::Mat img = cv::imread("../test_img/AE_.jpg");
cv::resize(img, img, cv::Size(96, 96));
cv::Mat img_cp =img.clone();
cv::cvtColor(img, img, CV_BGR2RGB); //mxnet支持的也是rgb
unsigned char *rgbdata = img.data;
ncnn::Mat in = ncnn::Mat::from_pixels(rgbdata, ncnn::Mat::PIXEL_RGB, 96, 96);
//ncnn::Mat in = ncnn::Mat::from_pixels(rgbdata, ncnn::Mat::PIXEL_BGR, 96, 96);
const float mean_vals[3] = {127.5f, 127.5f, 127.5f};
const float norm_vals[3] = {0.0078125f, 0.0078125f, 0.0078125f};
in.substract_mean_normalize(mean_vals, norm_vals);
ncnn::Mat out;
ncnn::Extractor ex = net.create_extractor();
//ex.set_light_mode(true);
ex.input("data", in);
double t_start = cv::getTickCount();
ex.extract("conv6_3", out);
double t_end = cv::getTickCount();
float costTime = (t_end - t_start) / cv::getTickFrequency();
std::cout << "cost Time :" << costTime << std::endl;
std::cout << "Hello, World!" << std::endl;
ncnn::Mat out_flatterned = out.reshape(out.w * out.h * out.c);
for (int i = 0; i < 106; i++)
{
cv::Point pt = cv::Point(96 * out_flatterned[i * 2], 96 * out_flatterned[i * 2 + 1]);
//cv::Point pt = cv::Point(96 * out_flatterned[i ], 96 * out_flatterned[i+106]);
cv::circle(img_cp, pt, 2, cv::Scalar(0, 0, 250), 2);
}
cv::imshow("show",img_cp);
cv::waitKey(0);
return 0;
}