精华内容
下载资源
问答
  • seetaface

    2017-11-01 15:42:22
    SeetaFace编译成功(有windows及Android源码) http://blog.csdn.net/wuzuyu365/article/details/52574365

     

     

    SeetaFace编译成功(有windows及Android源码)

     

     

     

    http://blog.csdn.net/wuzuyu365/article/details/52574365

    展开全文
  • SeetaFace2 1. 简介 SeetaFace2 人脸识别引擎包括了搭建一套全自动人脸识别系统所需的三个核心模块,即:人脸检测模块 FaceDetector、面部关键点定位模块 FaceLandmarker 以及人脸特征提取与比对模块 FaceRecognizer...
  • SeetaFace6 [] [English] 源码发布 该项目源码已经发布到 . 开放模块 SeetaFace6是中科视拓最新开放的商业正式级版本。突破了之前社区版和企业版版本不同步发布的情况,这次发布的v6版本正式与商用版本同步。 此次...
  • seetaface模型文件

    2018-10-09 10:52:02
    seetaface模型文件,使用seetaface读取模型文件即可使用
  • seetaface6.zip

    2020-10-12 16:27:53
    基于seetaface6和opencv的人脸关键点提取,年龄、性别的识别、特征提取、1对N的人脸比对,包含seetaface6和opencv动态、静态库和头文件
  • seetaFace6 python api(10分钟搞定商业级别人脸识别应用) 1. 简介 项目基于SeetaFace6 封装的python接口,使用简便,性能与原始c++模块基本一致, 模块上SeetaFace6 相较于SeetaFace2 上训练样本更多,准确率更高,...
  • seetaface源代码

    2018-04-19 10:57:50
    seetaface由中科院计算所山世光研究员带领的人脸识别研究组研发。代码基于C++实现,不依赖第三方库。适合学习图形图像识别的人研究研究。
  • seetaface开源人脸识别

    2018-05-26 00:17:58
    开源的SeetaFace人脸识别引擎是由中科院计算所山世光研究员带领的人脸识别研究组研发。代码基于C++实现,且不依赖于任何第三方的库函数.本系统基于opencv2.4+vs2013,压缩包中包含详细配置文档。 SeetaFace人脸识别...
  • seetaface_demo

    2018-04-04 11:12:21
    笔者用中科院山世光老师开源的seetaface做的demo,可方便比对人脸,以及在摄像头上进行人脸识别,我用的是opencv2.4.13,项目里面的include路径和库路径,大家根据自己的实际情况修改。
  • seetaface编译库

    2016-11-22 16:14:27
    vs2013编译的seetaface库文件,model文件及源码等可至Github下载
  • seetaface.rar

    2020-02-27 16:58:12
    seetaface分为FaceDetection(人脸检测)、FaceAlignment(人脸对齐)、FaceIdentification(人脸识别)三个模块,三个模块相互独立,综合利用起来即可实现最终的人脸识别功能。
  • Seetaface 02 Seetaface AndroidStudio Demo

    千次阅读 2017-10-01 22:27:42
    01 环境win10x64 AndroidStudio2.3.3 cmake git 源码:...Fork自 https://github.com/ghnor/SeetaFace-AS.gitdemo使用的三个模型文件,来自https://github.com/5455945/SeetaFaceEngine.

    01 环境

    win10x64
    AndroidStudio2.3.3
    cmake
    git
    源码:https://github.com/5455945/SeetaFace-AS.git
    Fork自 https://github.com/ghnor/SeetaFace-AS.git

    demo使用的三个模型文件,来自https://github.com/5455945/SeetaFaceEngine.git
    参考:http://blog.csdn.net/longji/article/details/78146013
    seeta_fa_v1.1.bin
    seeta_fd_frontal_v1.0.bin
    seeta_fr_v1.0.bin(seeta_fr_v1.0.part1.rar,seeta_fr_v1.0.part2.rar )
    Aaron_Peirsol_0001.jpg
    Aaron_Peirsol_0004.jpg

    02 源码

    cd D:\git\DeepLearning
    git clone https://github.com/5455945/SeetaFace-AS.git
    cd D:\git\DeepLearning\SeetaFace-AS

    03 AndroidStudio编译

    Android Studio 2.3.3 直接打开D:\git\DeepLearning\SeetaFace-AS工程。编译release版本。
    AndroidStudio编译release

    04 安装测试

    把生成的D:\git\DeepLearning\SeetaFace-AS\app\app-release.apk安装到物理机上(使用小米note测试)。
    需要把三个model文件,拷贝到手机根目录下。
    seeta_fa_v1.1.bin
    seeta_fd_frontal_v1.0.bin
    seeta_fr_v1.0.bin(seeta_fr_v1.0.part1.rar,seeta_fr_v1.0.part2.rar )
    把这两张图片保存到手机相册。
    Aaron_Peirsol_0001.jpg
    Aaron_Peirsol_0004.jpg

    测试效果如下:
    运行初始态:
    运行初始态

    缺少模型文件:
    缺少模型文件

    模型文件完整:
    模型文件完整

    对比结果:
    这里写图片描述

    展开全文
  • seetaface2人脸识别代码

    2020-12-02 01:23:31
    seetaface2人脸识别,包括 1 对 1,1 对 N, N 对 N。 是在ubuntu16.04上配置的seetaface2,配合opencv使用,所有代码均完美运行,没有bug。
  • seetaface训练库

    2018-06-14 19:36:07
    开源seetaface 人脸识别算法,本人有大公司离线人脸识别算法,
  • SeetaFace2Qt.rar

    2020-02-20 17:27:42
    基于开源的SeetaFace2的Qt5的应用,简单的做了几个功能,包括opencv和seetaface2库的移植,希望可以帮到需要的人。
  • SeetaFace.part2

    2019-01-23 14:33:28
    人脸检测模块SeetaFace +OpenCV2.4///SeetaFace.part2
  • seetaface.zip

    2019-05-16 16:40:00
    中科院计算机所山世光老师的开源免费人脸识别库seetaface,识别率可达97.1%。 详细可见博文 http://blog.csdn.net/hust_bochu_xuchao/article/details/53608540 提供编译后的debug和release模式下的lib,dll下载。...
  • SeetaFace.part1

    2019-01-23 14:27:15
    人脸检测模块SeetaFace +OpenCV2.4////SeetaFace.part1
  • SeetaFace开源人脸识别

    2018-10-22 18:36:59
    SeetaFace人脸识别引擎包括了搭建一套全自动人脸识别系统所需的三个核心模块,即:人脸检测模块(SeetaFace Detection)、面部特征点定位模块(SeetaFace Alignment)以及人脸特征提取与比对模块(SeetaFace ...
  • seetaFace实现人脸识别

    2017-09-15 14:54:59
    通过电脑摄像头进行拍照,找出特征点,通过seetaface中的FaceAlignment,FaceDetection,Identification来进行特征点比对,实现人脸识别功能
  • Seetaface发布了第二个版本——Seetaface2: https://github.com/seetaface/SeetaFaceEngine2   SeetaFace2 Engine contains three key parts, i.e., SeetaFace2 Detection, SeetaFace2 Alignment and ...

    Seetaface发布了第二个版本——Seetaface2:

    https://github.com/seetaface/SeetaFaceEngine2

     

    SeetaFace2 Engine contains three key parts, i.e., SeetaFace2 Detection, SeetaFace2 Alignment and SeetaFace2 Identification. It can run in Android OS, Windows and Linux.

     

    【知乎】如何评价中科院山世光老师开源的Seetaface人脸识别引擎?

     

    【源码下载地址】seetaface/SeetaFaceEngine

    【测试源码下载地址】

    中科院山世光老师开源的Seetaface人脸识别引擎SeetaFacesTest.rar

    中科院山世光老师开源的Seetaface人脸识别引擎测试SeetaFacesTest_面部五点特征.rar 

     

    中科院山世光老师开源的Seetaface人脸识别引擎SeetaFacesTest人脸识别Identification.rar

     

     

    SeetaFace大总结

     

    人脸检测效果图:

    (百度下载的图片)

     

    面部特征检测效果图:

     

    // SeetaFacesTest.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    
    #include <iostream>  
    #include <cstdint>
    #include <fstream>
    #include <string>
    
    #include <opencv2/core/core.hpp>  
    #include <opencv2/highgui/highgui.hpp> 
    #include <opencv2/imgproc/imgproc.hpp>  // Gaussian Blur
    
    #include "face_detection.h"
    
    
    using namespace cv;
    using namespace std;
    
    int main()
    {
    	Mat frame = imread("02.jpg");// 输入视频帧序列
    
    	namedWindow("Test00");      //创建一个名为Test窗口
    	imshow("Test00", frame);   //窗口中显示图像
    
    	const char* img_path = "02.jpg";
    	seeta::FaceDetection detector(".\\Model\\seeta_fd_frontal_v1.0.bin");
    
    	detector.SetMinFaceSize(40);
    	detector.SetScoreThresh(2.f);
    	detector.SetImagePyramidScaleFactor(0.8f);
    	detector.SetWindowStep(4, 4);
    
    	cv::Mat img = cv::imread(img_path, cv::IMREAD_UNCHANGED);
    	cv::Mat img_gray;
    
    	if (img.channels() != 1)
    		cv::cvtColor(img, img_gray, cv::COLOR_BGR2GRAY);
    	else
    		img_gray = img;
    
    	seeta::ImageData img_data;
    	img_data.data = img_gray.data;
    	img_data.width = img_gray.cols;
    	img_data.height = img_gray.rows;
    	img_data.num_channels = 1;
    
    	long t0 = cv::getTickCount();
    	std::vector<seeta::FaceInfo> faces = detector.Detect(img_data);
    	long t1 = cv::getTickCount();
    	double secs = (t1 - t0) / cv::getTickFrequency();
    
    	cout << "Detections takes " << secs << " seconds " << endl;
    #ifdef USE_OPENMP
    	cout << "OpenMP is used." << endl;
    #else
    	cout << "OpenMP is not used. " << endl;
    #endif
    
    #ifdef USE_SSE
    	cout << "SSE is used." << endl;
    #else
    	cout << "SSE is not used." << endl;
    #endif
    
    	cout << "Image size (wxh): " << img_data.width << "x"
    		<< img_data.height << endl;
    
    	cv::Rect face_rect;
    	int32_t num_face = static_cast<int32_t>(faces.size());
    
    	for (int32_t i = 0; i < num_face; i++) {
    		face_rect.x = faces[i].bbox.x;
    		face_rect.y = faces[i].bbox.y;
    		face_rect.width = faces[i].bbox.width;
    		face_rect.height = faces[i].bbox.height;
    
    		cv::rectangle(img, face_rect, CV_RGB(0, 0, 255), 4, 8, 0);
    	}
    
    	cv::namedWindow("Test", cv::WINDOW_AUTOSIZE);
    	cv::imshow("Test", img);
    	cv::waitKey(0);
    	cv::destroyAllWindows();
    	return 0;
    }
    


     

     

     

     

    //---------------------------------------------------------

     

    // SeetaFacesTest.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    
    #include <iostream>  
    #include <cstdint>
    #include <fstream>
    #include <string>
    
    #include <opencv2/core/core.hpp>  
    #include <opencv2/highgui/highgui.hpp> 
    #include <opencv2/imgproc/imgproc.hpp>  // Gaussian Blur
    
    #include "face_detection.h"
    #include "face_alignment.h"
    
    
    using namespace cv;
    using namespace std;
    
    int main()
    {
    	// Initialize face detection model
    	seeta::FaceDetection detector("seeta_fd_frontal_v1.0.bin");
    	detector.SetMinFaceSize(40);
    	detector.SetScoreThresh(2.f);
    	detector.SetImagePyramidScaleFactor(0.8f);
    	detector.SetWindowStep(4, 4);
    
    	// Initialize face alignment model 
    	seeta::FaceAlignment point_detector("seeta_fa_v1.1.bin");
    
    	//load image
    	const char* picturename = "11.jpg";
    	IplImage *img_grayscale = NULL;
    	img_grayscale = cvLoadImage(picturename, 0);
    	if (img_grayscale == NULL)
    	{
    		return 0;
    	}
    
    	IplImage *img_color = cvLoadImage(picturename, 1);
    	int pts_num = 5;
    	int im_width = img_grayscale->width;
    	int im_height = img_grayscale->height;
    	unsigned char* data = new unsigned char[im_width * im_height];
    	unsigned char* data_ptr = data;
    	unsigned char* image_data_ptr = (unsigned char*)img_grayscale->imageData;
    	int h = 0;
    	for (h = 0; h < im_height; h++) {
    		memcpy(data_ptr, image_data_ptr, im_width);
    		data_ptr += im_width;
    		image_data_ptr += img_grayscale->widthStep;
    	}
    
    	seeta::ImageData image_data;
    	image_data.data = data;
    	image_data.width = im_width;
    	image_data.height = im_height;
    	image_data.num_channels = 1;
    
    	// Detect faces
    	std::vector<seeta::FaceInfo> faces = detector.Detect(image_data);
    	int32_t face_num = static_cast<int32_t>(faces.size());
    
    	if (face_num == 0)
    	{
    		delete[]data;
    		cvReleaseImage(&img_grayscale);
    		cvReleaseImage(&img_color);
    		return 0;
    	}
    
    	// Detect 5 facial landmarks
    	seeta::FacialLandmark points[5];
    	point_detector.PointDetectLandmarks(image_data, faces[0], points);
    
    	// Visualize the results
    	cvRectangle(img_color, cvPoint(faces[0].bbox.x, faces[0].bbox.y), cvPoint(faces[0].bbox.x + faces[0].bbox.width - 1, faces[0].bbox.y + faces[0].bbox.height - 1), CV_RGB(255, 0, 0));
    	for (int i = 0; i<pts_num; i++)
    	{
    		cvCircle(img_color, cvPoint(points[i].x, points[i].y), 10, CV_RGB(0, 255, 0), CV_FILLED);
    	}
    	cvSaveImage("result.jpg", img_color);
    
    	// Release memory
    	cvReleaseImage(&img_color);
    	cvReleaseImage(&img_grayscale);
    	delete[]data;
    	return 0;
    }
    

     

     

    for (int m = 0; m<face_num; m++)
    	{
    		// Detect 5 facial landmarks
    		seeta::FacialLandmark points[5];
    		point_detector.PointDetectLandmarks(image_data, faces[m], points);
    
    		// Visualize the results
    		cvRectangle(img_color, cvPoint(faces[m].bbox.x, faces[m].bbox.y), cvPoint(faces[m].bbox.x + faces[m].bbox.width - 1, faces[m].bbox.y + faces[m].bbox.height - 1), CV_RGB(255, 0, 0));
    		for (int i = 0; i<pts_num; i++)
    		{
    			cvCircle(img_color, cvPoint(points[i].x, points[i].y), 10, CV_RGB(0, 255, 0), CV_FILLED);
    		}
    	}

     

     

     

     

     

    在使用FaceAlignment里的源代码时,会报错:std::max......
    是因为在max中两个参数的类型要一致;
    #include <algorithm>
    using namespace std;

    int extend_lx = max((double)(floor(left_x - extend_factor*bbox_w)), double(0));
    int extend_rx = min((double)(floor(right_x + extend_factor*bbox_w)), double(im_width - 1));
    int extend_ly = max((double)(floor(left_y - (extend_factor - extend_revised_y)*bbox_h)), double(0));
    int extend_ry = min((double)(floor(right_y + (extend_factor + extend_revised_y)*bbox_h)), double(im_height - 1));

     

     

     

     

    // SeetaFacesTest.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    
    #include <iostream>  
    #include <cstdint>
    #include <fstream>
    #include <string>
    #include  <opencv2/opencv.hpp>
    #include "face_identification.h"
    #include "face_detection.h"
    
    #include <ctime>
    
    //#pragma comment(lib, "SeetaTest.lib")
    
    using namespace cv;
    using namespace std;
    using namespace seeta;
    
    #define TEST(major, minor) major##_##minor##_Tester()
    #define EXPECT_NE(a, b) if ((a) == (b)) std::cout << "ERROR: "
    #define EXPECT_EQ(a, b) if ((a) != (b)) std::cout << "ERROR: "
    
    
    void TEST(FaceRecognizerTest, CropFace) {
    	FaceIdentification face_recognizer(".\\model\\seeta_fr_v1.0.bin");
    	std::string test_dir = ".\\data\\";
    	/* data initialize */
    	std::ifstream ifs;
    	std::string img_name;
    	FacialLandmark pt5[5];
    	ifs.open(".\\data\\test_file_list.txt", std::ifstream::in);
    	clock_t start, count = 0;
    	int img_num = 0;
    	while (ifs >> img_name) {
    		img_num++;
    		// read image
    		std::string imgpath = test_dir + img_name;
    		cv::Mat src_img = cv::imread(imgpath, 1);
    		EXPECT_NE(src_img.data, nullptr) << "Load image error!";
    
    		// ImageData store data of an image without memory alignment.
    		ImageData src_img_data(src_img.cols, src_img.rows, src_img.channels());
    		src_img_data.data = src_img.data;
    
    		// 5 located landmark points (left eye, right eye, nose, left and right 
    		// corner of mouse).
    		for (int i = 0; i < 5; ++i) {
    			ifs >> pt5[i].x >> pt5[i].y;
    		}
    
    		// Create a image to store crop face.
    		cv::Mat dst_img(face_recognizer.crop_height(), face_recognizer.crop_width(), CV_8UC(face_recognizer.crop_channels()));
    		ImageData dst_img_data(dst_img.cols, dst_img.rows, dst_img.channels());
    		dst_img_data.data = dst_img.data;
    		/* Crop Face */
    		start = clock();
    	
    		uint8_t rst_cropface = face_recognizer.CropFace(src_img_data, pt5, dst_img_data);
    		cout << "CropFace : " << rst_cropface << endl;
    		count += clock() - start;
    		// Show crop face
    		/*cv::imshow("Crop Face", dst_img);
    		cv::waitKey(0);
    		cv::destroyWindow("Crop Face");*/
    	}
    	ifs.close();
    	std::cout << "Test successful! \nAverage crop face time: "
      		<< 1000.0 * count / CLOCKS_PER_SEC / img_num << "ms" << std::endl;
    }
    
    void TEST(FaceRecognizerTest, ExtractFeature) {
    	FaceIdentification face_recognizer(".\\model\\seeta_fr_v1.0.bin");
    	std::string test_dir = ".\\data\\";
    	int feat_size = face_recognizer.feature_size();
    	EXPECT_EQ(feat_size, 2048);
    
    	FILE* feat_file = NULL;
    
    	// Load features extract from caffe
    	fopen_s(&feat_file, ".\\data\\feats.dat", "rb");
    	int n, c, h, w;
    	EXPECT_EQ(fread(&n, sizeof(int), 1, feat_file), (unsigned int)1);
    	EXPECT_EQ(fread(&c, sizeof(int), 1, feat_file), (unsigned int)1);
    	EXPECT_EQ(fread(&h, sizeof(int), 1, feat_file), (unsigned int)1);
    	EXPECT_EQ(fread(&w, sizeof(int), 1, feat_file), (unsigned int)1);
    	float* feat_caffe = new float[n * c * h * w];
    	float* feat_sdk = new float[n * c * h * w];
    	EXPECT_EQ(fread(feat_caffe, sizeof(float), n * c * h * w, feat_file), n * c * h * w);
    	EXPECT_EQ(feat_size, c * h * w);
    
    	int cnt = 0;
    
    	/* Data initialize */
    	std::ifstream ifs(".\\data\\crop_file_list.txt");
    	std::string img_name;
    
    	clock_t start, count = 0;
    	int img_num = 0, lb;
    	double average_sim = 0.0;
    
    	while (ifs >> img_name >> lb) {
    		// read image
    		std::string imgpath = test_dir + img_name;
    		cv::Mat src_img = cv::imread(imgpath, 1);
    		
    		EXPECT_NE(src_img.data, nullptr) << "Load image error!";
    		
    		cv::resize(src_img, src_img, cv::Size(face_recognizer.crop_height(), face_recognizer.crop_width()));
    		
    		// ImageData store data of an image without memory alignment.
    		ImageData src_img_data(src_img.cols, src_img.rows, src_img.channels());
    		src_img_data.data = src_img.data;
    
    		/* Extract feature */
    		start = clock();
    		face_recognizer.ExtractFeature(src_img_data, feat_sdk + img_num * feat_size);
    		count += clock() - start;
    
    		/* Caculate similarity*/
    		float* feat1 = feat_caffe + img_num * feat_size;
    		float* feat2 = feat_sdk + img_num * feat_size;
    		float sim = face_recognizer.CalcSimilarity(feat1, feat2);
    		std::cout << "CalcSimilarity : " << sim << endl;
    		average_sim += sim;
    		img_num++;
    	}
    
    	ifs.close();
    	average_sim /= img_num;
    	if (1.0 - average_sim >  0.01) {
    		std::cout << "average similarity: " << average_sim << std::endl;
    	}
    	else {
    		std::cout << "Test successful!\nAverage extract feature time: "
    			<< 1000.0 * count / CLOCKS_PER_SEC / img_num << "ms" << std::endl;
    	}
    	delete[]feat_caffe;
    	delete[]feat_sdk;
    }
    
    void TEST(FaceRecognizerTest, ExtractFeatureWithCrop) {
    	FaceIdentification face_recognizer(".\\Model\\seeta_fr_v1.0.bin");
    	std::string test_dir = ".\\data\\";
    	int feat_size = face_recognizer.feature_size();
    	EXPECT_EQ(feat_size, 2048);
    
    	FILE* feat_file = NULL;
    
    	// Load features extract from caffe
    	fopen_s(&feat_file, ".\\data\\feats.dat", "rb");
    	int n, c, h, w;
    	EXPECT_EQ(fread(&n, sizeof(int), 1, feat_file), (unsigned int)1);
    	EXPECT_EQ(fread(&c, sizeof(int), 1, feat_file), (unsigned int)1);
    	EXPECT_EQ(fread(&h, sizeof(int), 1, feat_file), (unsigned int)1);
    	EXPECT_EQ(fread(&w, sizeof(int), 1, feat_file), (unsigned int)1);
    	float* feat_caffe = new float[n * c * h * w];
    	float* feat_sdk = new float[n * c * h * w];
    	EXPECT_EQ(fread(feat_caffe, sizeof(float), n * c * h * w, feat_file),
    		n * c * h * w);
    	EXPECT_EQ(feat_size, c * h * w);
    
    	int cnt = 0;
    
    	/* Data initialize */
    	std::ifstream ifs(".\\data\\test_file_list.txt");
    	std::string img_name;
    	FacialLandmark pt5[5];
    
    	clock_t start, count = 0;
    	int img_num = 0;
    	double average_sim = 0.0;
    	while (ifs >> img_name) {
    		// read image
    		std::string imgpath = test_dir + img_name;
    		cv::Mat src_img = cv::imread(imgpath, 1);
    		EXPECT_NE(src_img.data, nullptr) << "Load image error!";
    
    		// ImageData store data of an image without memory alignment.
    		ImageData src_img_data(src_img.cols, src_img.rows, src_img.channels());
    		src_img_data.data = src_img.data;
    
    		// 5 located landmark points (left eye, right eye, nose, left and right 
    		// corner of mouse).
    		for (int i = 0; i < 5; ++i) {
    			ifs >> pt5[i].x >> pt5[i].y;
    		}
    
    		/* Extract feature: ExtractFeatureWithCrop */
    		start = clock();
    		face_recognizer.ExtractFeatureWithCrop(src_img_data, pt5,
    			feat_sdk + img_num * feat_size);
    		count += clock() - start;
    
    		/* Caculate similarity*/
    		float* feat1 = feat_caffe + img_num * feat_size;
    		float* feat2 = feat_sdk + img_num * feat_size;
    		float sim = face_recognizer.CalcSimilarity(feat1, feat2);
    		average_sim += sim;
    		std::cout << "CalcSimilarity : " << sim << std::endl;
    		img_num++;
    	}
    	ifs.close();
    	average_sim /= img_num;
    	if (1.0 - average_sim >  0.02) {
    		std::cout << "average similarity: " << average_sim << std::endl;
    	}
    	else {
    		std::cout << "Test successful!\nAverage extract feature time: "
    			<< 1000.0 * count / CLOCKS_PER_SEC / img_num << "ms" << std::endl;
    	}
    	delete[]feat_caffe;
    	delete[]feat_sdk;
    }
    
    
    int main()
    {
    	TEST(FaceRecognizerTest, CropFace);
    	TEST(FaceRecognizerTest, ExtractFeature);
    	TEST(FaceRecognizerTest, ExtractFeatureWithCrop);
    
    	/*
    	const char* img_path = "12.jpg";
    	//seeta::FaceDetection detector(".\\Model\\seeta_fd_frontal_v1.0.bin");
    	seeta::FaceDetection detector(".\\Model\\seeta_fd_frontal_v1.0.bin");
    
    	detector.SetMinFaceSize(100);
    	detector.SetScoreThresh(2.f);
    	detector.SetImagePyramidScaleFactor(1.0f);
    	detector.SetWindowStep(4, 4);
    
    	cv::Mat img = cv::imread(img_path, cv::IMREAD_UNCHANGED);
    	cv::Mat img_gray;
    
    	if (img.channels() != 1)
    		cv::cvtColor(img, img_gray, cv::COLOR_BGR2GRAY);
    	else
    		img_gray = img;
    
    	seeta::ImageData img_data;
    	img_data.data = img_gray.data;
    	img_data.width = img_gray.cols;
    	img_data.height = img_gray.rows;
    	img_data.num_channels = 1;
    
    	long t0 = cv::getTickCount();
    	std::vector<seeta::FaceInfo> faces = detector.Detect(img_data);
    	long t1 = cv::getTickCount();
    	double secs = (t1 - t0) / cv::getTickFrequency();
    
    
    	cv::Rect face_rect;
    	int32_t num_face = static_cast<int32_t>(faces.size());
    
    	for (int32_t i = 0; i < num_face; i++) {
    		face_rect.x = faces[i].bbox.x;
    		face_rect.y = faces[i].bbox.y;
    		face_rect.width = faces[i].bbox.width;
    		face_rect.height = faces[i].bbox.height;
    
    		cv::rectangle(img, face_rect, CV_RGB(0, 0, 255), 10, 8, 0);
    	}
    	cout << "renlian number:" << num_face << endl;
    
    	Size size(img_data.width/5 , img_data.height/5 );
    	Mat dst;
        cv:resize(img, dst, size);
    	cv::namedWindow("Test", cv::WINDOW_AUTOSIZE);
    	cv::imshow("Test", dst);
    	cv::waitKey(0);
    	cv::destroyAllWindows();*/
    	return 0;
    }
    

     

     

     

     

     

    ————————————————————————————————————————————————————————

     

    class FaceDetection {
     public:
      SEETA_API explicit FaceDetection();
      //SEETA_API FaceDetection(const char* model_path);
      SEETA_API ~FaceDetection();
    
      SEETA_API void LoadFaceDetectionModel(const char* model_path);

     

     

    FaceDetection::FaceDetection()
        : impl_(new seeta::FaceDetection::Impl()) {
      
    }

     

    void FaceDetection::LoadFaceDetectionModel(const char* model_path){
    	impl_->detector_->LoadModel(model_path);
    }

    Taily老段的微信公众号,欢迎交流学习

    https://blog.csdn.net/taily_duan/article/details/81214815


     

     

     

     

     

     

     

    展开全文
  • SeetaFace2.zip

    2020-04-04 19:44:40
    GitHub网址:https://github.com/seetafaceengine/SeetaFace2 因为这些文件也比较大,所以就上传一份方便别人进行下载 这里面有源码还有Model文件 Model文件放在model文件夹中,文件info中写了每个model文件的信息
  • SeetaFace_detection.zip

    热门讨论 2016-09-26 08:53:01
    基于山世光老师的 SeetaFace_detection,已经改好,可以直接运行
  • HelloFace - seetaface.zip

    2019-06-06 17:53:04
    在VS2015下编译,seetaface库,实现人脸识别,不带任何第三方东西,为控制台程序,可以进行照片识别、视频识别、摄像头识别
  • seetaface人脸识别模块

    2016-12-13 15:14:30
    中科院计算机所山世光老师开发的免费人脸识别库,seetaface,识别率可达97.1% 详见博文 http://blog.csdn.net/hust_bochu_xuchao/article/details/53608540
  • seetaface人脸检测模块

    2016-12-13 14:17:52
    中科院计算机所山世光老师开发的免费人脸识别库,seetaface,识别率可达97.1% 详见博文 http://blog.csdn.net/hust_bochu_xuchao/article/details/53608540
  • seetaface人脸对齐模块

    2016-12-13 14:20:56
    中科院计算机所山世光老师的开源免费人脸识别库seetaface,识别率可达97.1%。 详细可见博文 http://blog.csdn.net/hust_bochu_xuchao/article/details/53608540
  • SeetaFace2.rar

    2019-11-07 19:11:39
    SeetaFace2 是面向于人脸识别商业落地的里程碑版本,其中人脸检测模块在 FDDB 上的 100 个误检条件下可达到超过 92% 的召回率,面部关键点定位支持 5 点和 81 点定位,1 比 N 模块支持数千人规模底库的人脸识别应用...
  • 山世光老师的SeetaFace_Alignment,Identitication2,detection,MFC-seetaFace-FaceRec-master合集,的代码,已经改成可以运行的,你值得拥有。 另加通过电脑摄像头进行拍照,找出特征点,通过seetaface中的Face...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 834
精华内容 333
关键字:

seetaface