您的位置:IT爆料网 > 互联网

开源人脸识别seetaface入门教程(一)

发布时间:2022-12-14 18:38:21  来源:互联网     背景:

简述

seetaface由中科院计算所山世光研究员带领的人脸识别研究组研发。代码基于C++实现,不依赖第三方库。然而,目前开源的代码,是在windows vs上编译的,对于我们这帮mac/linux用户来说,用起来还是挺麻烦的。经过这几天的学习,对seetaface总算有了全面的了解。下面,听我娓娓道来。

注意:本文章不涉及代码逻辑和原理,只是教大家如何使用seetaface做人脸识别。

引擎

FaceDetection

人脸识别模块,用于识别出照片中的人脸,染回每个人脸的坐标和人脸总数。

FaceAlignment

特征点识别模块,主要识别两个嘴角、鼻子、两个眼睛五个点的坐标。测试下来,发现图片模糊时,识别不准。

FaceIdentification

人脸比较模块,根据官方的说法,先提取特征值,然后比较。给出的测试程序是seetaface提取人脸的特征值和caffe训练库里的人脸做对比。

以下教程都是在MacOSX编译运行通过。使用cmake和make编译

以下的编译方法是把FaceDetect测试程序也编译了,而测试程序是依赖opencv的,所以,在这之前,确认opencv是否安装

人脸识别教程

编译

由于代码是在windows平台编译的,所以,这地方要做些修改。

进入FaceDetection目录 修改include/common.h,修改38行  #ifdef SEETA_EXPORTS  #define SEETA_API __declspec(dllexport)  #else  #define SEETA_API __declspec(dllimport)  #endif  

Ϊ

#if defined _WIN32  #ifdef SEETA_EXPORTS  #define SEETA_API __declspec(dllexport)  #else  #define SEETA_API __declspec(dllimport)  #endif  #else  #define SEETA_API  #endif   修改include/feat/surf_feature_map.h文件,在前面加上#include <cstring> 修改include/util/image_pyramid.h文件,在前面加上#include <cstring> 修改src/feat/surf_feature_map.cpp文件,在前面加上#include <cmath> 增加CMakeLists.txt,内容如下: cmake_minimum_required(VERSION 3.3) project(seeta_facedet_lib) option(BUILD_EXAMPLES  "Set to ON to build examples"  ON) option(USE_OPENMP      "Set to ON to build use openmp"  ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) message(STATUS "C++11 support has been enabled by default.") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")  if (USE_OPENMP)         find_package(OpenMP QUIET)         if (OpenMP_FOUND)             message(STATUS "Use OpenMP")             add_definitions(-DUSE_OPENMP)             set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")             set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")             set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")         endif()     endif()      include_directories(include)      set(src_files         src/util/nms.cpp         src/util/image_pyramid.cpp         src/io/lab_boost_model_reader.cpp         src/io/surf_mlp_model_reader.cpp         src/feat/lab_feature_map.cpp         src/feat/surf_feature_map.cpp         src/classifier/lab_boosted_classifier.cpp         src/classifier/mlp.cpp         src/classifier/surf_mlp.cpp         src/face_detection.cpp         src/fust.cpp         )      add_library(face_detect SHARED ${src_files})     set(facedet_required_libs face_detect)      if (BUILD_EXAMPLES)                    message(STATUS "Build with examples.")         find_package(OpenCV)         if (NOT OpenCV_FOUND)             message(WARNING "OpenCV not found. Test will not be built.")         else()             include_directories(${OpenCV_INCLUDE_DIRS})             list(APPEND facedet_required_libs ${OpenCV_LIBS})              add_executable(facedet_test src/test/facedetection_test.cpp)             target_link_libraries(facedet_test ${facedet_required_libs})         endif()     endif()  建立build目录,mkdir build 编译,cd build && cmake .. && make 当前目录下生成可执行文件

运行

执行完make命令以后,当前的目录下会生成一个可执行文件facedet_test 由于默认的程序读取的是当前路径下的test_image.jpg和seeta_fd_frontal_v1.0.bin,test_image.jpg是人脸图片,seeta_fd_frontal_v1.0是识别的引擎。 确保以上的两个文件在当前路径下存在了,既可以./facedet_test运行了。 你可以修改位于src/test目录下的文件,来达到自己的目的。

使用

我们可以参考src/test/facedetection_test.cpp这个测试程序,来达到我们人脸识别的目的。

头文件

#include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "face_detection.h" opencv头文件主要用来加载图像,face_detection.h是人脸识别的主要程序。  

加载人脸识别引擎

seeta::FaceDetection detector(‘seeta_fd_frontal_v1.0’); 

设置最小人脸大小

detector.SetMinFaceSize(40); 这个根据实际情况调整,图片中,人脸越大,这个值也越大,因为这个值越小,人脸识别速度越慢。

识别图片中的人脸

std::vector<seeta::FaceInfo> faces = detector.Detect(img_data); 

在这之前,需要对图片进行处理,这里略过

输出人脸识别的结果

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); } s[i].bbox.x; faces[i].bbox.y;是人脸的左上角坐标。faces[i].bbox.width;faces[i].bbox.height;是人脸的长和宽。  

结语

seetaface的确是个很好用的人脸识别库,调用、编译都很简单,但是由于文档的缺少,所以刚开始看的时候,会比较乱,不知道如何下手。本片文章主要介绍了FaceDetect的使用,接下来我会讲解如何识别人脸的特征点,也就是嘴、鼻子、眼。敬请期待。


点赞 0


本文标题:开源人脸识别seetaface入门教程(一) - 互联网
本文地址:www.itbaoliao.com/hlw/12222.html

返回网站首页

本文评论
中国铁通“一号通”必须实名登记
本报北京6月13日电 (记者 蒋建科) 为配合近期的打击网络淫秽色情专项行动,中国铁通集团公司重点对互联网接入及其“一号通”业务进行了规范和清理整顿。  “一号通”是中国铁通开展的一项电信增值业务。用户可以通过“一号通”...
日期:12-08
电影局回应退票:反对不正当竞争 建立更规范的市场
据中国电影报消息,4月28日,全国不少影院反映,当日一部热映影片(该影片指《后来的我们》)在开场前出现大量集中退票情况,在行业内引起较大震动。...
日期:11-23
云计算能为个人带来什么改变?用过UZER.ME你就懂了
TechWeb 12月19日报道 文/王蒙UZER.ME想干的事其实很简单,它将所有本地应用软件放置于云端,让用户摆脱电脑硬件束缚,只需一款浏览器就能使用众多应用。给用户带来最直观的感受是,告别双系统,Mac也可以轻松使用Windows...
日期:12-06
朱广权段子版春节祝福:朗朗上口,寓意很好,立意新颖,很高级
【TechWeb】2月12日消息,大年初一,央视节目主持人朱广权在节目中为观众送上牛年第一条春节祝福 :新的一年,三餐四季、温柔有趣、牛年日日奔红火,天天大吉大利!天是2021初一,段子手朱广权又来啦。今年他说了一段段子版的拜年文案。文案朗...
日期:12-04
4399游戏盒之玩家消暑利器《疯狂瓶盖》
虽然已经立秋,但高温还没有退去。今天我们就为大家介绍一款在4399游戏盒上能带给您清凉感觉的游戏--《疯狂瓶盖》。4399游戏盒是目前国内最大最全的单机游戏以及休闲小游戏平台,绿色、安全、便捷,点击搜索功能就能找到你想要的游戏。...
日期:12-08
听懂网:多语言服务型SNS网站的创新者
Facebook和Twitter由于政策原因无法进入中国,这就给了垂直类SNS平台快速发展的良机。笔者近日经过调研发现今年快速崛起了一家全新的多语言服务型SNS网站-听懂网(www.tingdong.cn),非常令人关注!说起SNS,我们...
日期:08-05
跑跑卡丁车马拉松Z7专属任务热力登场
跑跑卡丁车 CGWR 得分CGWR:56 位CGWR介绍8.1随着马拉松Z7的回归,与之一同出现在大家面前的还有马拉松Z7专属任务。与以往不同的是,这个任务是马拉松Z7的专属,而奖励也是十分的令人期待。那么,让我们一起揭秘这个专属任务吧...
日期:12-03
穿越火线黑鹰计划版本释放爱国激情
穿越火线 CGWR 得分CGWR:13 位CGWR介绍8.7继QBZ95(95式步枪)后,《穿越火线》(简称CF)再次推出国产步枪——QBZ03(03式突击步枪),这是CF新版本“黑鹰计划”中的全新武器,一起来先睹为快。虽然QBZ0...
日期:12-11
交个朋友拟支付罗永浩天价分手费:新公司已在筹备、不叫锤子
据日前@36氪 报道,罗永浩将于五月份前后淡出交个朋友公司的日常管理工作,并启动新一轮的高科技公司创业。其中还提到罗永浩淡出直播业务后,交个朋友科技会支付罗永浩一笔巨额费用,获得“罗永浩”账号的3年运营权(另一种说...
日期:11-02
暖暖环游世界梦幻之塔攻略汇总
暖暖环游世界天空挑战赛梦幻之塔相对于天空之塔而言要麻烦一些,主要是因为打分玩法很多时候让人拿不准。下面是小编整理的一套比较齐全的梦幻之塔打分攻略,包含了一些打分实例供大家参考,希望对大家能有所帮助!...
日期:10-07
魅族MX官方图片发布 4寸双核售价2999元
经过一年的等待,国产手机又一顶峰之作——魅族MX,终于公布。魅族官网已经更新,将过去魅族M9的图片更换为最新的魅族MX产品图。从图片中,我们看到魅族MX的机身设计与之前曝光的谍照基本相同,而硬件规格也在预料之中。图...
日期:12-10
缓解交通拥堵的利器“听说交通”新版重磅上线
近些年,随着城市化进程加快,交通拥堵问题日益显现,在一二线的大中城市,民众花费在上班路程上的时间,普遍要在30分钟以上;而像北上广这类超大城市,每天在交通工具上渡过一个小时以上的上班族,更是比比皆是。如何有效利用在路上这一大段碎片时间,如何...
日期:11-20
都市118快捷酒店加盟:未来酒店客人手机控制
对于时间就是金钱的商务人士来说,酒店是否快捷高效率是在选择酒店时的主要考虑方向。实现酒店智能化,就是提高酒店效率的最好方法。目前国内各大快捷酒店品牌在圈地竞争的同时,也不断致力于研发新的酒店软件,以配合当下商旅人士对电子产品的依赖。国内第...
日期:11-18
深交所启动中小企业私募债试点
陈浠5月22日晚间,深交所对外发布《深交所中小企业私募债券业务试点办法》(下称“《试点办法》”),中小企业私募债业务试点正式启动。目前,深交所正会同证券业协会、结算公司等部门进行相关业务的技术准备,首批中小企业私募债品种有望于6月中...
日期:10-17
网游《侠道金刚OL》你的游戏你做主
2010年科幻网游大片《侠道金刚OL》将于5月25日震撼开启,钢铁侠们与你一起游历未来世界,领略未来世界的独特魅力。《侠道金刚OL》秉承着“轻松游戏、快乐游戏”的理念,在游戏中设置了非常多的便捷功能或设置。使得玩家能够...
日期:10-22
专业化微单首次亮相 索尼NEX7详细评测
在索尼NEX出现之前,从未有人想过这种叫做微单的相机能够在各个方面与单反一 争,在NEX-7出现之前,也从来没有人想到过这种叫做微单的相机能够挑战准专业相机的宝座。索尼NEX-7可以说是一款神奇的机器,如果说单反的出现预 示着旁...
日期:10-20
点心OS操作系统 夏普智能SH8128U仅1950
文/TIN 【四川行情】夏普发布的两款采用点心OS操作系统的手机,其中一款型号为SH8128U,采用直板触控设计正面采用一块3.5英寸WVGA分辨率(800×480像素)屏...
日期:11-25
我乐网CEO :周娟访谈 互联网巾帼不让须眉
我乐网(www.56.com)CEO周娟  简单?不简单。  周娟说,她的经历很简单:  老家在江西临川,王安石的故乡,不过自小理科很棒;  高中时代开始上寄宿的高中,长年在外,个性比较独立;  后来考上了中国科技大学,学计算机...
日期:11-30
AV女优苍井空的故事 你有所不知
195599位粉丝、270670条相关微博,这是日本知名AV女优苍井空截至11月11日晚11点的战绩。此时,距离她注册国内某门户网站微博仅14个小时,期间她仅发布了一条礼节性的微博,却获得了44934次转发和29188条评论。...
日期:10-20
网上交换礼品成为春节新时尚
济南的程女士春节前收到朋友送的一盒“曹州柿饼”,她不喜欢吃甜食,搁在家里就浪费了。于是,她在“济南易物网”发了帖子,配上照片,等待需要的“换客”跟她交换。...
日期:10-03