【计算机视觉】seetaFace
class impl
class FaceDetection::Impl {
public:
Impl()
: detector_(new seeta::fd::FuStDetector()),
slide_wnd_step_x_(), slide_wnd_step_y_(),
min_face_size_(), max_face_size_(-),
cls_thresh_(3.85f) {}
~Impl() {}
inline bool IsLegalImage(const seeta::ImageData & image) {
return (image.num_channels == && image.width > && image.height > &&
image.data != nullptr);
}
public:
static const int32_t kWndSize = ;
int32_t min_face_size_;
int32_t max_face_size_;
int32_t slide_wnd_step_x_;
int32_t slide_wnd_step_y_;
float cls_thresh_;
std::vector<seeta::FaceInfo> pos_wnds_;
std::unique_ptr<seeta::fd::Detector> detector_;
seeta::fd::ImagePyramid img_pyramid_;
};
score
impl_->pos_wnds_ = impl_->detector_->Detect(&(impl_->img_pyramid_));
fust.cpp
std::vector<seeta::FaceInfo> FuStDetector::Detect(
seeta::fd::ImagePyramid* img_pyramid) {
score
for (int32_t i = ; i < hierarchy_size_[]; i++) {
if (model_[i]->Classify(&score)) {
wnd_info.score = static_cast<double>(score);
proposals[i].push_back(wnd_info);
}
}
2
if (model_[model_idx]->Classify(&score, mlp_predicts.data())) {
float x = static_cast<float>(bboxes[m].bbox.x);
float y = static_cast<float>(bboxes[m].bbox.y);
float w = static_cast<float>(bboxes[m].bbox.width);
float h = static_cast<float>(bboxes[m].bbox.height);
bboxes[bbox_idx].bbox.width =
static_cast<int32_t>((mlp_predicts[] * - ) * w + w + 0.5);
bboxes[bbox_idx].bbox.height = bboxes[bbox_idx].bbox.width;
bboxes[bbox_idx].bbox.x =
static_cast<int32_t>((mlp_predicts[] * - ) * w + x +
(w - bboxes[bbox_idx].bbox.width) * 0.5 + 0.5);
bboxes[bbox_idx].bbox.y =
static_cast<int32_t>((mlp_predicts[] * - ) * h + y +
(h - bboxes[bbox_idx].bbox.height) * 0.5 + 0.5);
bboxes[bbox_idx].score = score;
bbox_idx++;
}
【计算机视觉】seetaFace的更多相关文章
- 【计算机视觉】SeetaFace Engine开源C++人脸识别引擎
SeetaFace Engine是一个开源的C++人脸识别引擎,它可以在不依赖第三方的条件下载CPU上运行.他包含三个关键部分,即:SeetaFace Detection,SeetaFace Alig ...
- Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉
Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉 1.1. 按照当前流行的分类方法,可以分为以下三部分:三部分 图像处理 图像分析 计算机视觉1 1.2. 图像处理需要 ...
- Jetson ARM SeetaFace编译
SeetaFace简介 SeetaFace依赖于OpenCV,对于Tegra on Ubuntu,Nvidia提供libopencv4tegra并且可以使用Cuda加速. 准备工作 1.阅读OpenC ...
- 人脸识别引擎SeetaFace编译 ubuntu
00.SeetaFace简介 SeetaFace Engine is an open source C++ face recognition engine, which can run on CPU ...
- 计算机视觉中的词袋模型(Bow,Bag-of-words)
计算机视觉中的词袋模型(Bow,Bag-of-words) Bag-of-words 读 'xw20084898的专栏'的blogBag-of-words model in computer visi ...
- paper 118:计算机视觉、模式识别、机器学习常用牛人主页链接
牛人主页(主页有很多论文代码) Serge Belongie at UC San Diego Antonio Torralba at MIT Alexei Ffros at CMU Ce Liu at ...
- x01.Lab.OpenCV: 计算机视觉
横看成岭侧成峰,计算视觉大不同.观看的角度不同,成像自然不同,这对计算机视觉来说,是个大麻烦.但计算机视觉应用如此广泛,却又有不得不研究的理由.指纹机大家都用过吧,这不过是冰山之一角.产品检测,机器人 ...
- 介绍n款计算机视觉库/人脸识别开源库/软件
计算机视觉库 OpenCV OpenCV是Intel®开源计算机视觉库.它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法. OpenCV 拥有包括 300 多个 ...
- 计算机视觉(Computer Version,CV)、模式识别、人工智能
一.计算机视觉 Divid Marr将计算机视觉系统的开发问题归纳为3个要素: (1)数学理论 考虑数学计算层面的目标及可以引入的合理约束条件. (2)描述和算法 重点解决计算机视觉中的输入输出的数据 ...
随机推荐
- TLS 改变密码标准协议(Change Cipher Spec Protocol) 就是加密传输中每隔一段时间必须改变其加解密参数的协议
SSL修改密文协议的设计目的是为了保障SSL传输过程的安全性,因为SSL协议要求客户端或服务器端每隔一段时间必须改变其加解密参数.当某一方要改变其加解密参数时,就发送一个简单的消息通知对方下一个要传送 ...
- 消费Restful的web服务(三)
构架工程 创建一个springboot工程,去消费RESTFUL的服务.这个服务是 http:///gturnquist-quoters.cfapps.io/api/random ,它会随机返回Jso ...
- Vscode extensions开发
Vscode extensions开发 1◆ generatorcode install npm install -g yo generator-code 2◆ 步骤 yo code ...
- zabbix3.4.7表结构
zabbix数据库表结构的重要性 想理解zabbix的前端代码.做深入的二次开发,甚至的调优,那就不能不了解数据库的表结构了. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- redux源码解析(深度解析redux+异步demo)
redux源码解析 1.首先让我们看看都有哪些内容 2.让我们看看redux的流程图 Store:一个库,保存数据的地方,整个项目只有一个 创建store Redux提供 creatStore 函数来 ...
- Win10系列:VC++ Direct3D开发基础1
在介绍如何使用Direct3D项目模版来绘制立体图形之前,首先为读者介绍在Direct3D应用程序开发过程中涉及到的一些常用概念. (1)资源 资源是指可以被Direct3D图形管线所访问的内存空间, ...
- Win10系列:VC++绘制几何图形5
打开D2DBasicAnimation.h头文件,并在D2DBasicAnimation类中添加如下的代码: private: //声明成员变量point D2D1_POINT_2F ...
- Win10系列:VC++绘制几何图形3
在绘制三角形之前,首先需要创建一个三角形,打开D2DBasicAnimation.h头文件,在D2DBasicAnimation类中添加如下的代码: private: //声明成员变量obje ...
- VS2010安装项目程序打包操作详解
(转自:http://blog.sina.com.cn/s/blog_74f702e60101at62.html) 1.打开VS2010,选择 新建项目---其他项目类型---Visual Studi ...
- 类型重命名 typedef
所谓数据重命名就是给数据类型起一个新的名字,比如int 这个数据类型,可以给他起一个新的名字叫 my int.他俩的用法.特点.属性等是一模一样,仅仅名字不同而已. 作用:1,增加代码的可读性.2,让 ...