【CV7】Caffe_SSD三字码识别,ckpt文件转pb文件,人脸检测与识别
检查 CUDA nvcc -V环境是否安装正常,如果不正常则去安装 NVIDIA、CUDA、CUDNN(版本搭配)。 由于 Python2 即将落幕,所以我们这次在 Ubuntu18.04 中使用自带的 Python3.6 进行开发。 使用以下命令检查软连接是否正常: 安装依赖软件: 从官方网站下载并编译 OpenCV: 安装完成后验证 OpenCV 版本: 安装 Caffe-SSD: 编译 Caffe: 如果遇到 Caffe 安装完成。
PnP(多框标注修正):用于修正图片中的人脸框。 RPN(区域建议网络):用于生成多个人脸区域建议。 Dbox(人脸_box):用于精确定位人脸位置。
发布日期:2021-04-30 21:03:42
浏览次数:88
分类:精选文章
本文共 3593 字,大约阅读时间需要 11 分钟。
Caffe_SSD三字码识别
1. check List
sudo ldconfig
2. 正式安装
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilerssudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libopenblas-dev liblapack-dev libatlas-base-devsudo apt-get install git cmake build-essential
- 访问 OpenCV官网,下载 3.x 系列,解压到安装目录并进入。
- 创建编译目录并执行:
mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/localmake -j8
- 编译过程中可能会出现 OpenCV 3.1 与 CUDA 8.0 不兼容的问题,需修改
opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp文件内容。
pkg-config --modversion opencv
- 克隆仓库并切换分支:
git clone https://github.com/weiliu89/caffe.gitcd caffeegit checkout ssd
- 再次安装依赖软件:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilerssudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libatlas-base-dev python-devsudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
- 修改
Makefile.config文件:cp Makefile.config.example Makefile.configvim Makefile.config
- 应用 CUDNN 和 OpenCV:
- 修改 CUDNN 支持:
# 取消注释:USE_CUDNN := 1USE_CUDNN := 1
- 修改 OpenCV 版本:
# 取消注释:OPENCV_VERSION := 3OPENCV_VERSION := 3
- 修改 CUDNN 支持:
- 启用 Python 接口并修改 Python 路径:
- 修改 Python 支持:
# 取消注释:WITH_PYTHON_LAYER := 1WITH_PYTHON_LAYER := 1
- 修改 Python 路径:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/includeLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
- 修改 Python 支持:
- 注释 Python2 依赖并切换到 Python3:
# 取消注释:PYTHON_INCLUDE := /usr/include/python2.7# PYTHON_INCLUDE := /usr/lib/python2.7/dist-packages/numpy/core/includePYTHON_INCLUDE := /usr/include/python3.6mPYTHON_INCLUDE := /usr/lib/python3.6/dist-packages/numpy/core/include
make all -j32make test -j32make pycaffemake runtest -j32
无法找到 -lopenblas 错误,请安装 OpenBLAS:sudo apt install liblapack-dev liblapack3 libopenblas-base libopenblas-dev
2.ckpt 转 pb 文件(Fast R-CNN)
import tensorflow as tffrom tensorflow.python.framework import graph_utilfrom tensorflow.python import pywrap_tensorflowdef freeze_graph(input_checkpoint, output_graph): output_node_names = "SCORE/resnet_v1_101_5/cls_prob/cls_prob/scores,SCORE/resnet_v1_101_5/bbox_pred/BiasAdd/bbox_pred/scores,SCORE/resnet_v1_101_5/cls_pred/cls_pred/scores" saver = tf.train.import_meta_graph(input_checkpoint + '.meta', clear_devices=True) graph = tf.get_default_graph() input_graph_def = graph.as_graph_def() with tf.Session() as sess: saver.restore(sess, input_checkpoint) output_graph_def = graph_util.convert_variables_to_constants( sess=sess, input_graph_def=input_graph_def, output_node_names=output_node_names.split(",") ) with tf.gfile.GFile(output_graph, "wb") as f: f.write(output_graph_def.SerializeToString()) print("%d ops in the final graph." % len(output_graph_def.node))# 示例使用input_checkpoint = './checkpoints/res101_faster_rcnn_iter_70000.ckpt'output_pb_path = './checkpoints/frozen_model.pb'freeze_graph(input_checkpoint, output_pb_path) 3. 人脸检测识别
3.1 MTCNN(人脸检测)
MTCNN 是一种经典的人脸检测算法,主要包括三个步骤:
3.2 FaceNet(人脸识别)
FaceNet 是一个基于深度学习的统一人脸特征提取模型,能够从任意深度学习模型中提取人脸特征。其训练数据集包括:
- CASIA-WebFace 数据集:训练链接:pan.baidu.com/s/1dYHmuTOShnXBE0xUfvdWxw,提取码:7bap
- 训练模型:训练链接:pan.baidu.com/s/1QaMS46EWB80EYLQ8p8a4kw,提取码:cpfa
训练完成后,可通过 .dat 文件进行模型测试。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2026年05月24日 19时50分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php局域网上传文件_PHP如何通过CURL上传文件
2023-03-01
PHP工具插件大全
2023-03-01
php布尔值的++
2023-03-01
PHP常量、变量作用域详解(一)
2023-03-01
PHP应用目录结构设计
2023-03-01
PHP应用程序连接MSQL数据库Demo(附crud程序)
2023-03-01
PHP应用程序连接Oracle数据库Demo(附Oracle客户端安装文件)
2023-03-01
PHP开发api接口安全验证
2023-03-01
PHP开发规范PSR
2023-03-01
PHP开发遇到错误0001
2023-03-01
php异常处理
2023-03-01
PHP引入了泛型和集合两大重要特性,大大改善 PHP 代码的可维护性和可读性
2023-03-01
PHP引擎php.ini参数优化
2023-03-01
PHP引用(&)使用详解
2023-03-01
php引用及垃圾回收
2023-03-01
php当前时间的集中写法
2023-03-01
php微信 开发笔记,微信WebApp开发总结笔记
2023-03-01
php微信公众号开发access_token获取
2023-03-01
php微信公众号开发微信认证开发者
2023-03-01