侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Linux下python与C++使用dlib实现人脸检测

Python  /  管理员 发布于 7年前   172

python 与 C++ dlib人脸检测结果对比,供大家参考,具体内容如下

说明:

由于项目需求发现Linux下c++使用dlib进行人脸检测和python使用dlib检测,得到的结果出入比较大,于是写了测试用例,发现影响结果的原因有但不限于:

1.dlib版本不同(影响不大,几个像素的差别)
2.dlib 人脸检测中detector()第二个参数的设置测试结果如下:

python

PDlib.py:

# -*- coding: utf-8 -*-import sysimport cv2 import dlibfrom skimage import iodetector = dlib.get_frontal_face_detector()win = dlib.image_window()for f in sys.argv[1:]:   img = io.imread(f)  dets = detector(img,1) #使用detector进行人脸检测  for i, d in enumerate(dets):    x = d.left()    y = d.top()    w = d.right()    h = d.bottom()       cv2.rectangle(img, (x, y), (w, h), (0, 255, 0))    print("({},{},{},{})".format( x, y, (w-x), (h-y)))  win.set_image(img)  io.imsave('./P_Dlib_test.jpg',img)  #等待点击  dlib.hit_enter_to_continue()

C++

CDlib.cpp:

#include <dlib/image_processing/frontal_face_detector.h>#include <dlib/opencv.h>#include "opencv2/opencv.hpp"#include <iostream>using namespace dlib;using namespace std;cv::Rect Detect(cv::Mat im){  cv::Rect R;  frontal_face_detector detector = get_frontal_face_detector();  array2d<bgr_pixel> img;   assign_image(img, cv_image<uchar>(im));  std::vector<rectangle> dets = detector(img);//检测人脸  //查找最大脸  if (dets.size() != 0)  {    int Max = 0;    int area = 0;    for (unsigned long t = 0; t < dets.size(); ++t)    {if (area < dets[t].width()*dets[t].height())      {        area = dets[t].width()*dets[t].height();        Max = t;      }    }    R.x = dets[Max].left();    R.y = dets[Max].top();    R.width = dets[Max].width();    R.height = dets[Max].height();    cout<<"("<<R.x<<","<<R.y<<","<<R.width<<","<<R.height<<")"<<endl;  }  return R;}int main(int argc, char** argv){  if (argc != 2) {    fprintf(stderr, "请输入正确参数\n");    return 1;  }    string path = argv[1];  try  {        cv::Mat src, dec;    src = cv::imread(path);    src.copyTo(dec);    cv::cvtColor(dec, dec, CV_BGR2GRAY);    cv::Rect box;    box = Detect(dec);    cv::rectangle(src, box, cv::Scalar(0, 0, 255), 1, 1, 0);        cv::imshow("frame", src);    cv::imwrite("./C_Dlib_test.jpg", src);    cv::waitKey(0);//等待建入   }  catch (exception& e)  {    cout << e.what() << endl;  }} 

项目编译及运行

python

运行脚本 python PDlib.py G:\DlibTest\data\bush.jpg

C++

  • 创建编译文件夹 mkdir cbuild
  • 切换到编译目录 cd cbuild
  • 生成makefile文件 cmake ..
  • 编译项目 make
  • 运行可执行文件 ./DlibTest G:\DlibTest\data\bush.jpg

Demo:点击下载

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


  • 上一条:
    Python 利用内置set函数对字符串和列表进行去重的方法
    下一条:
    对python中两种列表元素去重函数性能的比较方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客