1.编辑.sh文件,来创建train.txt文件和val.txt文件

#!/bin/bashDATA=/home/liuwei/caffe/caffe_case/face_detect # 读取train中的数据,train数据的目录# 用pwd查询一下train的路径,防止出错
#test -d $DATA && echo 'exist' || echo 'not exist' #-f判断该文件是否存在,-d判断该目录是否存在DATASAVE=/home/liuwei/caffe/caffe_case/face_detect/mytest # 设置train.txt保存的路径
echo "Create train.txt..."  #输出""里的内容# 查找指定目录下的.jpg文件,并把内容放到通道里
# 剪切通道里内容。剪切路径,指定分隔符为斜杠,从第1个路径剪到第7个路径,并把内容放到通道里
# 在每行路径后面加上标签
# 将内容放到txt文件中
find $DATA/train/1 -name "*.jpg" | cut -d '/' -f1-10 | sed "s/$/ 1/" > $DATASAVE/traintmp1.txt
find $DATA/train/0 -name "*.jpg" | cut -d '/' -f1-10 | sed "s/$/ 0/" > $DATASAVE/traintmp2.txtcat $DATASAVE/traintmp1.txt > $DATASAVE/train.txt
cat $DATASAVE/traintmp2.txt >> $DATASAVE/train.txt #将内容追加到txt文件中rm -rf $DATASAVE/traintmp1.txt
rm -rf $DATASAVE/traintmp2.txt#生成val.txt文件
echo "Create val.txt..."find $DATA/val -name "*faceimage*.jpg" | cut -d '/' -f8 | sed "s/$/ 0/" > $DATASAVE/valtmp1.txt
find $DATA/val -name "*nonface*.jpg" | cut -d '/' -f8 | sed "s/$/ 1/" > $DATASAVE/valtmp2.txtcat $DATASAVE/valtmp1.txt > $DATASAVE/val.txt
cat $DATASAVE/valtmp2.txt >> $DATASAVE/val.txt #将内容追加到txt文件中rm -rf $DATASAVE/valtmp1.txt
rm -rf $DATASAVE/valtmp2.txtecho "Done"

2. 用face-lmdb.sh生成lmdb数据源,产生两个文件夹:face_train_lmdb和face_val_lmdb

#!/usr/bin/env sh
# Create the face_48 lmdb inputs
# N.B. set the path to the face_48 train + val data dirsEXAMPLE=/home/liuwei/caffe/caffe_case/face_detect  # 5、6行根据自己定义的face_detect文件夹位置改
DATA=/home/liuwei/caffe/caffe_case/face_detect
TOOLS=/home/liuwei/caffe/build/tools  # 使用caffe自带工具TRAIN_DATA_ROOT=/home/liuwei/caffe/caffe_case/face_detect/train/ #若要做2分类,则在train文件夹下创建0,1两个文件夹
VAL_DATA_ROOT=/home/liuwei/caffe/caffe_case/face_detect/val/ #放所有待分类的图像# Set RESIZE=true to resize the images to 60 x 60. Leave as false if images have
# already been resized using another tool.
RESIZE=true
if $RESIZE; thenRESIZE_HEIGHT=227 #16,17行为改变图像的大小,可以根据自己需要调节RESIZE_WIDTH=227 #ALEXNET(视频讲解用此方法)或者VGG(常用但迭代慢)通常resize成227*227
elseRESIZE_HEIGHT=0RESIZE_WIDTH=0
fiif [ ! -d "$TRAIN_DATA_ROOT" ]; thenecho "Error: TRAIN_DATA_ROOT is not a path to a directory: $TRAIN_DATA_ROOT"echo "Set the TRAIN_DATA_ROOT variable in create_face_48.sh to the path" \"where the face_48 training data is stored."exit 1
fiif [ ! -d "$VAL_DATA_ROOT" ]; thenecho "Error: VAL_DATA_ROOT is not a path to a directory: $VAL_DATA_ROOT"echo "Set the VAL_DATA_ROOT variable in create_face_48.sh to the path" \"where the face_48 validation data is stored."exit 1
fiecho "Creating train lmdb..."GLOG_logtostderr=1 $TOOLS/convert_imageset \--resize_height=$RESIZE_HEIGHT \--resize_width=$RESIZE_WIDTH \--shuffle \$TRAIN_DATA_ROOT \$DATA/train.txt \$EXAMPLE/face_train_lmdbecho "Creating val lmdb..."GLOG_logtostderr=1 $TOOLS/convert_imageset \--resize_height=$RESIZE_HEIGHT \--resize_width=$RESIZE_WIDTH \--shuffle \$VAL_DATA_ROOT \$DATA/val.txt \$EXAMPLE/face_val_lmdbecho "Done."
# Status API Training Shop Blog About

3. 训练模型

1)对face_train_lmdb和face_val_lmdb做均值,生成face_train_mean.binaryproto和face_val_mean.binaryproto文件

sudo /home/liuwei/caffe/build/tools/compute_image_mean /home/liuwei/caffe/caffe_case/face_detect/face_train_lmdb /home/liuwei/caffe/caffe_case/face_detect/face_train_mean.binaryprotosudo /home/liuwei/caffe/build/tools/compute_image_mean /home/liuwei/caffe/caffe_case/face_detect/face_val_lmdb /home/liuwei/caffe/caffe_case/face_detect/face_val_mean.binaryproto

2)对train.prototxt和solver.prototxt里的参数做些调整,执行train.sh文件来训练出模型

sh train.sh

人脸检测caffe下步骤相关推荐

  1. linux使用mtcnn进行人脸检测,Linux下使用FDDB 测试MTCNN人脸检测模型生成 ROC 曲线

    FDDB是全世界最具权威的人脸检测评测平台之一,是专门针对人脸识别算法的评测方法与标准.FDDB数据集官网:http://vis-www.cs.umass.edu/fddb/ 下面介绍如何使用FDDB ...

  2. frame中src怎么设置成一个变量_OpenCV图像人脸检测及视频中的人脸检测(附源码)...

    文章目录 一.数据和知识准备 1. 下载HAAR与LBP数据 2. opencv相关知识 二.python+opencv实现人脸检测 1. 图像单人脸检测 2. 图像多人脸检测 3. 视频中人脸检测 ...

  3. 基于OpenCV的摄像头人脸检测

    一.选题背景 二.设计目的和意义 三.设计方案 四.特征分类器的选择 4.1 常用人脸检测的特征分类器 4.2 人脸的Haar特征分类器介绍 4.3 人脸的Haar特征分类器使用 五.设计中主要函数介 ...

  4. OpenCV人脸检测(完整源码+思路)

    本博文IDE为vs2013 OpenCV2.49 话不多说,先看视频演示(20S演示): 如下: https://v.youku.com/v_show/id_XMjYzMzkxMTYyMA==.htm ...

  5. 一文带你了解人脸检测算法的类型及其工作原理

    在过去的几年里,人脸识别受到了广泛的关注,被认为是图像分析领域最有前途的应用之一.人脸检测可以考虑人脸识别操作的很大一部分.根据其强度将计算资源集中在持有人脸的图像部分.图片中的人脸检测方法很复杂,因 ...

  6. python+opencv 实现图像人脸检测及视频中的人脸检测

    执着于理想,纯粹于当下. 文章目录 一.数据和知识准备 1. 下载HAAR与LBP数据 2. opencv相关知识 二.python+opencv实现人脸检测 1. 图像单人脸检测 2. 图像多人脸检 ...

  7. SeetaFace6使用详细教程(一) 人脸检测--戴着口罩也可以检测

    点击左上方"OpenCV与AI深度学习",选择加"星标"或"置顶" 重磅干货,第一时间送达! 导读 本文主要介绍SeetaFace6开源人脸 ...

  8. C# OpenCV人脸检测(三) DNN加载FaceDetectorYN模型做人脸检测

    点击下方卡片,关注"OpenCV与AI深度学习"公众号 视觉/图像重磅干货,第一时间送达 本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍C# OpenCV人 ...

  9. Qt+百度AI实现人脸识别之人脸检测

    文章目录 简单需求 Demo运行结果 百度AI人脸识别接入 为什么使用百度AI接口 接入步骤 如何获取Access Token Qt软件开发 人脸检测Qt编程步骤 知识点 网络编程 get.put.p ...

最新文章

  1. python代码写好了怎么运行不了-python代码可以直接运行吗 Python写了代码如何运行...
  2. java set spliterator_Java TreeSet spliterator()方法
  3. obs 推流编码在哪设置_OBS录屏软件
  4. Hyper-V 网络设置 虚拟机固定Ip
  5. 【CKEditor】下载历史版本4.8.x
  6. oracle 单表查询 详细图文
  7. mac apache2 php,Mac OSX 之 PHP开发环境Apache2配置
  8. google账号解除游戏绑定_附方法!关于物联卡手机号的绑定与解绑
  9. myeclipse去掉js报错
  10. 企业级系统应用,高级组合查询示例讲解 - Jeecg实战
  11. git 删除仓库中的文件夹,但是不删除本地文件夹
  12. [转]numpy 100道练习题
  13. Windows vCenter 6.5升级 VUM的安装
  14. 基于3D技术的机器视觉解决方案
  15. 关于计算机的病毒案例分析,实例解析蠕虫病毒的原理 -电脑资料
  16. Python打包exe文件方法汇总【4种】
  17. 知识付费平台年度排行榜!哪些平台活着其实已经死了?
  18. 大数据在政府中的应用案例
  19. windows10如何删除恢复分区(让拆下的win10机械硬盘焕发新生,充分利用磁盘空间)
  20. 工厂设计模式和抽象工厂设计模式

热门文章

  1. 怎么自学python-你是如何自学 Python 的?
  2. 国内有哪些做H5走心的外包服务团队或公司?
  3. 程序有时能运行有时不能_学法能有什么好处?有时候觉得挺“秃”然的..
  4. MongoDB更新文档(非常详细,不要错过~)
  5. el-dropdown 事件
  6. 带网格的_雨花区井圭路社区开展消防安全网格化实战演练活动
  7. 搭建NodeJS环境
  8. IPTV监测和测试设备
  9. mysql句式增删改,MySQL 增删改语句
  10. python目录操作函数_Python3目录操作