caffe实现年龄及性别预测
一、相关代码及训练好的模型
eveningglow/age-and-gender-classification: Age and Gender Classification using Convolutional Neural Network https://github.com/eveningglow/age-and-gender-classification
二、部署
1、打开Caffe.sln工程,编译方法见:https://www.cnblogs.com/smbx-ztbz/p/9380273.html
2、将相关源文件及模型拷贝至如下目录:

3、在examples中新建工程,且将对应源码添加进来

4、属性设置:
(1)进入“C/C++”,选中“常规”,“附加包含目录”输入如下:
D:\Projects\caffe_gpu\caffe\build\include
D:\Projects\caffe_gpu\caffe\build
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\include\boost-1_61
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.\include
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\include\opencv
D:\Projects\caffe_gpu\caffe\include
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\Include
其中tingpan改成自己电脑的用户名。
(2) “C/C++” –>“预处理器”—> “预处理器定义”, 输入如下:
WIN32
_WINDOWS
NDEBUG
CAFFE_VERSION=1.0.
BOOST_ALL_NO_LIB
USE_LMDB
USE_LEVELDB
USE_CUDNN
USE_OPENCV
CMAKE_WINDOWS_BUILD
GLOG_NO_ABBREVIATED_SEVERITIES
GOOGLE_GLOG_DLL_DECL=__declspec(dllimport)
GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport)
H5_BUILT_AS_DYNAMIC_LIB=
CMAKE_INTDIR="Release"
(3)“链接器” –>”输入” –>“附加依赖项”
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib
D:\Projects\caffe_gpu\caffe\build\install\lib\caffe.lib
D:\Projects\caffe_gpu\caffe\build\install\lib\caffeproto.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\boost_system-vc140-mt-1_61.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\boost_thread-vc140-mt-1_61.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\boost_filesystem-vc140-mt-1_61.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\glog.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\Lib\gflags.lib
shlwapi.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\libprotobuf.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\caffehdf5_hl.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\caffehdf5.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\cmake\..\lib\caffezlib.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\lmdb.lib
ntdll.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\leveldb.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\cmake\..\lib\boost_date_time-vc140-mt-1_61.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\cmake\..\lib\boost_filesystem-vc140-mt-1_61.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\cmake\..\lib\boost_system-vc140-mt-1_61.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\snappy_static.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\caffezlib.lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.\lib\x64\cudart.lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.\lib\x64\curand.lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.\lib\x64\cublas.lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.\lib\x64\cudnn.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\x64\vc14\lib\opencv_highgui310.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\x64\vc14\lib\opencv_imgcodecs310.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\x64\vc14\lib\opencv_imgproc310.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\x64\vc14\lib\opencv_core310.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\libopenblas.dll.a
C:\Users\tingpan\AppData\Local\Programs\Python\Python35\libs\python35.lib
C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib\boost_python-vc140-mt-1_61.lib
去掉勾选 “从父级或项目默认设置继承”。其中tingpan改成自己电脑的用户名。
(4)将D:\Projects\caffe_gpu\caffe\build\install\bin添加到环境变量。
5、编译
如果出现一些错误,提示缺少dll库文件,则从C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\x64\vc14\bin\或C:\Users\tingpan\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\bin\中拷贝对应的dll文件到D:\Projects\caffe_gpu\caffe\build\install\bin目录下。
6、测试
参数输入:
model/deploy_gender2.prototxt model/gender_net.caffemodel model/deploy_age2.prototxt model/age_net.caffemodel model/mean.binaryproto img/.jpg
输出结果如下:


7、说明
deploy_age2网络结构

deploy_gender2网络结构

性别估计和年龄估计使用的是相同的网络结构,不同之处在于年龄估计fc8层的输出个数为8,而年龄估计的输出个数为2。
caffe实现年龄及性别预测的更多相关文章
- IMDB-WIKI - 具有年龄和性别标签的500k +脸部图像
Rasmus Rothe, Radu Timofte, Luc Van Gool DEX:从单一形象深刻地看待年龄 观看 人物研讨会国际计算机视觉大会(ICCV),2015*获胜LAP面对年龄估计的挑 ...
- python——进行年龄和性别检测
年龄和性别检测 使用Python编程语言带你完成使用机器学习进行年龄和性别检测的任务. 首先需要编写用于检测人脸的代码,因为如果没有人脸检测,我们将无法进一步完成年龄和性别预测的任务. 下一步是预测图 ...
- C#根据身份证号码,计算生日、年龄、性别
朋友谈及身份证相关的信息,才了解到原来省份证号码中包含了年龄和性别. 这样在数据库中,就不必单独留字段存放它们了(不过,要根据具体情况来,要是读取频率较高,还是单独列出为好),这样顺带解决了年龄变更的 ...
- 基于安卓高仿how-old.net实现人脸识别估算年龄与性别
前几段微软推出的大数据人脸识别年龄应用how-old.net在微博火了一把,它可以通过照片快速获得照片上人物的年龄,系统会对瞳孔.眼角.鼻子等27个“面部地标点"展开分析,进而得出你的“颜龄 ...
- 工作中遇到的问题——mysql关于年龄,性别的统计
终于暂时闲下来了,一个项目加班加点一年多,前面太忙就顾不上博客了,慢慢的就懈怠了,最近算是暂时闲下来了,项目已经验收进入后期维护阶段,每天空余的时间也多了,想重新拾起博客,不求写什么高深的东西,以后就 ...
- Java中校验身份证号合法性(真伪),获取出生日期、年龄、性别、籍贯
开发过程中有用的身份证号的业务场景,那么校验身份证的合法性就很重要了,另外还有通过身份证获取出生日期.年龄.性别.籍贯等信息, 下面是本人在开发中用到的关于校验身份证真伪的工具类,可以直接拿来使用,非 ...
- Excel提取身份证年龄和性别③
问题场景 从user表中的身份信息中拿到用户的年龄和性别: 以下方法也可适用于提取其他数据,目的在于通过实例操作了解更多函数用法: 以下图中数据都为测试数据,不具备真实性! 场景一 从user表中的1 ...
- JavaScript 通过身份证号获取出生日期、年龄、性别 、籍贯
JavaScript 通过身份证号获取出生日期.年龄.性别 .籍贯(很全) 效果图: 示例代码: //由于没有写外部JS,所以代码比较长!!! <!DOCTYPE html PUBLIC &qu ...
- js 通过身份证识别生日、年龄、性别
<script>function IdCard(UUserCard,num){ if(num==1){ //获取出生日期 birth=UUserCard.sub ...
随机推荐
- API响应
保证API响应的正确性,就是你需要做的大部分工作.postman的response viewer部分会协助你完成该工作且使其变得简单. 一个API的响应包含body,headers,响应状态码.pos ...
- js中级
闭包:函数在调用的时候,会形成一个私有作用域,内部的变量不会被访问, 这种保护机制叫闭包.这就意味着函数调用完毕,这个函数形成的栈内存会被销毁. 重点 函数归属谁跟他在哪调用没有关系,跟在哪定义有关. ...
- Fasttext原理
fastText 模型输入一个词的序列(一段文本或者一句话),输出这个词序列属于不同类别的概率.序列中的词和词组组成特征向量,特征向量通过线性变换映射到中间层,中间层再映射到标签.fastText 在 ...
- 2018.12.02 Socket编程之初识Socket
Socket编程主要分为TCP/UDP/SCTP三种,每一种都有各自的优点,所以会根据实际情况决定选用何种Socket,今天开始我将会逐步学习Socket编程,并将学习过程记录于此. 今天学习的是TC ...
- .net下的缓存技术
1.为什么要缓存?缓存能解决的问题 1.1稳定性 同一个应用中,对同一数据.逻辑功能和用户界面的多次请求时经常发生的.当用户基数很大时,如果每次请求都进行处理,消耗的资源是很大的浪费,也同时造成系统的 ...
- python2入门(3)
六.python列表(List) python最常见的序列类型python列表List使用[]表示,元素之间以逗号分隔,元素类型不需要相同 内置操作: list = [1,2,3,'four'] li ...
- KeepAlive--高可用解决方案
原文地址https://segmentfault.com/a/1190000011078937 一:keepalive简述 一;高可用的解决方案 1)vrrp协议的实现keepalive 2)ais ...
- header头参数 确定该文件类型
'chm'=>'application/octet-stream', 'ppt'=>'application/vnd.ms-powerpoint', 'xls'=>'applicat ...
- 常用vi编辑器命令
对于VI的命令行,不需要特意的去记忆,写下来,让要用到的时候能找到就行 游标控制 h 游标向左移 j 游标向下移 k 游标向上移 l (or spacebar) 游标向右移 w 向前移动一个单词 b ...
- React-redux深入理解
首先,一张 Redux 解释图镇楼: [回顾]Redux 的核心: store 是什么?(createStore 函数的实现) const store = createStore(reducer); ...