opencv、dlib、paddlehub人脸检测

这篇具有很好参考价值的文章主要介绍了opencv、dlib、paddlehub人脸检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

opencv、dlib、paddlehub检测效果对比。dlib和paddlehub的效果相对好一点。

说明:本文只做人脸检测不识别,找识别的不用看本文。

## 部署说明
# 1. 安装python或conda
# 2. 安装依赖,pip install -r requirements.txt
# 3. 192.168.1.41 修改为你部署机器的IP
# 4. python app_dlib.py启动
# 5. 试验,http://192.168.1.41:7049
# 6. 接口,http://192.168.1.41:7049/run/predict/
接口参数,post请求,body传1个包含base64图片的JSON,替换图片就行
{
    fn_index: 0, 
    data: ["data:image/jpeg;base64,/9j/4AAQSkZJtXlnut7A8QOeSpiTO/DNIrhn3HpugKCATj590EhqShGP8VInOz6TrioYTyGR0oyiMh/dnEpkQ0Pu+Yy+QWamDMkbve9U6MyWdEa+MqHDn1zUtpCT4f/AC//2Q=="], 
    session_hash: "s1oy98lial"
}

依赖(用1个就行)

dlib需要C++编译器(gcc 或 vs)

gradio
opencv-python
dlib
paddlehub

opencv检测

import gradio as gr
import cv2

# 加载人脸检测器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
# face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye_tree_eyeglasses.xml')

# UGC: Define the inference fn() for your models
def model_inference(image):
    # 加载图像
    # image = cv2.imread(image)
    # 将图像转换为灰度图像
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    # 进行人脸检测
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
    # 在图像上标记人脸
    for (x, y, w, h) in faces:
        cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 3)
    # 显示结果
    # cv2.imshow('Face Detection', image)
    # cv2.waitKey(0)
    # cv2.destroyAllWindows()
    json_out = {"result": len(faces)}
    return image,json_out


def clear_all():
    return None, None, None

with gr.Blocks() as demo:
    gr.Markdown("人脸检测")

    with gr.Column(scale=1, min_width=100):
        img_in = gr.Image(value="1.png",
                          label="Input")

        with gr.Row():
            btn1 = gr.Button("Clear")
            btn2 = gr.Button("Submit")
        img_out = gr.Image(label="Output").style(height=400)
        json_out = gr.JSON(label="jsonOutput")

    btn2.click(fn=model_inference, inputs=img_in, outputs=[img_out, json_out])
    btn1.click(fn=clear_all, inputs=None, outputs=[img_in, img_out, json_out])
    gr.Button.style(1)

demo.launch(server_name='192.168.1.41', share=True, server_port=7048)



opencv、dlib、paddlehub人脸检测

 opencv、dlib、paddlehub人脸检测

 

dlib检测

import gradio as gr
import cv2
import dlib

detector = dlib.get_frontal_face_detector()
# predictor = dlib.shape_predictor(
#     "dlib_model/shape_predictor_68_face_landmarks.dat"
# )

# UGC: Define the inference fn() for your models
def model_inference(image):
    # 加载图像
    # image = cv2.imread(image)
    # 将图像转换为灰度图像
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    # 进行人脸检测
    faces = detector(gray, 1)
    for face in faces:
        # 在图片中标注人脸,并显示
        left = face.left()
        top = face.top()
        right = face.right()
        bottom = face.bottom()
        cv2.rectangle(image, (left, top), (right, bottom), (0, 255, 0), 2)

        # shape = predictor(image, face)  # 寻找人脸的68个标定点
        # # 遍历所有点,打印出其坐标,并圈出来
        # for pt in shape.parts():
        #     pt_pos = (pt.x, pt.y)
        #     cv2.circle(image, pt_pos, 1, (0, 255, 0), 2)
    json_out = {"result": len(faces)}
    return image,json_out


def clear_all():
    return None, None, None

with gr.Blocks() as demo:
    gr.Markdown("人脸检测")

    with gr.Column(scale=1, min_width=100):
        img_in = gr.Image(value="1.png",
                          label="Input")

        with gr.Row():
            btn1 = gr.Button("Clear")
            btn2 = gr.Button("Submit")
        img_out = gr.Image(label="Output").style(height=400)
        json_out = gr.JSON(label="jsonOutput")

    btn2.click(fn=model_inference, inputs=img_in, outputs=[img_out, json_out])
    btn1.click(fn=clear_all, inputs=None, outputs=[img_in, img_out, json_out])
    gr.Button.style(1)

demo.launch(server_name='192.168.1.41', share=True, server_port=7049)



opencv、dlib、paddlehub人脸检测

 PaddleHub检测

import gradio as gr
import paddlehub as hub
import cv2

#直接调用PaddleHub中的人脸检测
module = hub.Module(name="ultra_light_fast_generic_face_detector_1mb_640")

def model_inference(image):
    # images(list[numpy.ndarray]): 图片数据,ndarray.shape为[H, W, C],BGR格式;
    # paths(list[str]): 图片的路径;
    # batch_size(int): batch的大小;
    # use_gpu(bool): 是否使用GPU;
    # visualization(bool): 是否将识别结果保存为图片文件;
    # output_dir(str): 图片的保存路径,当为None时,默认设为face_detector_640_predict_output;
    # confs_threshold(float): 置信度的阈值。
    faces = module.face_detection([image], visualization=False)[0]["data"]
    for face in faces:
        # 在图片中标注人脸,并显示
        left = int(face["left"])
        top = int(face["top"])
        right = int(face["right"])
        bottom = int(face["bottom"])
        cv2.rectangle(image, (left, top), (right, bottom), (0, 255, 0), 2)

    json_out = {"result": len(faces)}
    return image,json_out


def clear_all():
    return None, None, None

with gr.Blocks() as demo:
    gr.Markdown("人脸检测")

    with gr.Column(scale=1, min_width=100):
        img_in = gr.Image(value="1.png",
                          label="Input")

        with gr.Row():
            btn1 = gr.Button("Clear")
            btn2 = gr.Button("Submit")
        img_out = gr.Image(label="Output").style(height=400)
        json_out = gr.JSON(label="jsonOutput")

    btn2.click(fn=model_inference, inputs=img_in, outputs=[img_out, json_out])
    btn1.click(fn=clear_all, inputs=None, outputs=[img_in, img_out, json_out])
    gr.Button.style(1)

demo.launch(server_name='192.168.1.41', share=True, server_port=7050)



opencv、dlib、paddlehub人脸检测

APIPOST调接口测试

 opencv、dlib、paddlehub人脸检测

 

axios调用示例

var axios = require("axios").default;

var options = {
  method: 'POST',
  url: 'http://192.168.1.41:7050/run/predict/',
  headers: {'content-type': 'application/json'},
  data: '{\r\n    fn_index: 0, \r\n    data: ["data:image/jpeg;base64,/9j/4gM5jj4ihEoiOUxSpDKSBjsPFBYRtXlnut7A8QOeSpiTO/DNIrhn3HpugKCATj590EhqShGP8VInOz6TrioYTyGR0oyiMh/dnEpkQ0Pu+Yy+QWamDMkbve9U6MyWdEa+MqHDn1zUtpCT4f/AC//2Q=="], \r\n    session_hash: "s1oy98lial"\r\n}'
};

axios.request(options).then(function (response) {
  console.log(response.data);
}).catch(function (error) {
  console.error(error);
});

jquery调用示例文章来源地址https://www.toymoban.com/news/detail-475913.html

const settings = {
  "async": true,
  "crossDomain": true,
  "url": "http://192.168.1.41:7050/run/predict/",
  "method": "POST",
  "headers": {
    "content-type": "application/json"
  },
  "data": "{\r\n    fn_index: 0, \r\n    data: [\"data:image/jpeg;base64,/9j/4AAQSkZJUWYgM5jj4ihEoiOUxSpDKSBjsPFBYRtXlnut7A8QOeSpiTO/DNIrhn3HpugKCATj590EhqShGP8VInOz6TrioYTyGR0oyiMh/dnEpkQ0Pu+Yy+QWamDMkbve9U6MyWdEa+MqHDn1zUtpCT4f/AC//2Q==\"], \r\n    session_hash: \"s1oy98lial\"\r\n}"
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

到了这里,关于opencv、dlib、paddlehub人脸检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV、Dlib 和深度学习中的各种人脸检测方法与性能比较--包含C++ 和 Python 代码实现

    文末附基于Python和C++两种方式实现的测试代码下载链接 在本教程中,我们将讨论 OpenCV、Dlib 和深度学习中的各种人脸检测方法,并对这些方法进行定量比较。我们将为以下面部检测器共享 C++ 和 Python 代码: OpenCV 中的 Haar 级联人脸检测器 OpenCV 中基于深度学习的人脸检测器。

    2024年02月10日
    浏览(46)
  • 计算机视觉:使用dlib实现人脸检测

    Dlib是一个广泛使用的开源库,在计算机视觉和机器学习领域具有重要影响。它是由Davis King在2002年开发,主要用C++语言编写,但也提供了Python接口。Dlib结合了高效的算法和易用性,使其成为学术界和工业界的热门选择。 多样的机器学习算法:Dlib包含丰富的机器学习算法,如

    2024年04月28日
    浏览(47)
  • 【人脸检测——Dlib学习1】Face_detector_example

    # -*-coding:utf-8-*- #author: lyp time: 2018/9/7 import cv2 import dlib # 初始化程序 detector = dlib.get_frontal_face_detector() # 读取图片,在cmd中键入 python xx(文件名).py 需要识别的图片名 img = cv2.imread(\\\"cba.jpg\\\") # 参数1表示我们对图像进行向上采样1倍,这将使一切变的更大 # 进而让我们检测出更多的

    2024年02月10日
    浏览(53)
  • 基于OpenCV和Dlib的深度学习人脸识别技术实践与应用

    计算机视觉技术在当前人工智能发展进程中已然达到较高成熟度,一系列基础算法与应用场景获得广泛实践与验证。在算法层面,图像处理、目标检测、语义分割等多个领域的技术不断突破,准确率与效率持续提升。在应用上,人脸识别、车牌识别、医学图像分析等已步入商业化应

    2024年02月03日
    浏览(53)
  • 基于Python+OpenCV+dlib+Tensorflow深度学习的人脸表情识别系统

    欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。   人脸表情识别是一种重要的计算机视觉任务,它涉及到对人脸图像中的表情进行分类和理解。在这个系统中,我们将使用Python、OpenCV、dlib和Tensorflow来实现深度学习模型,以识别人脸表情。

    2024年02月01日
    浏览(45)
  • 基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)

    近几年应用opencv机器学习方法识别人脸的技术成为了热潮,本人根据当今的识别技术与方法,历时四个多月开发出一套基于dlib机器学习库的识别项目。希望大家能一起交流学习。 1、项目功能介绍 Tkinter 人脸录入界面, 支持录入时设置 (中文) 姓名; 调用摄像头进行人脸识别

    2024年02月08日
    浏览(45)
  • 毕业设计:python人脸识别系统 实时检测 深度学习 Dlib库 大数据 毕业设计(源码)✅

    🍅 大家好,今天给大家分享一个Python项目,感兴趣的可以先收藏起来,点赞、关注不迷路! 🍅 大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。 技术栈: Python语言、pyqt5图形界面、opencv、ResNet深度卷积神经网络、Dlib库 系统

    2024年02月20日
    浏览(81)
  • facenet, dlib人脸识别,人体检测,云数据库mysql,QQ邮箱,手机验证码,语音播报

    目录 部分代码展示:  录入部分 识别部分​编辑  活体检测部分​编辑  同步到云数据库MySQL  其他操作 部分图片展示: 完整代码加ui链接: 涉及到的一些知识点的文章  活体检测超过三次的人员禁止识别(后面可通过管理员接触) 管理员登录和人脸录入需要手机验证码,

    2024年02月08日
    浏览(73)
  • 计算机毕业设计:基于python人脸识别考勤系统 OpenCV+Dlib(包含文档+源码+部署教程)

    [毕业设计]2023-2024年最新最全计算机专业毕设选题推荐汇总 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 。 Python语言、dlib、OpenCV、Pyqt5界面设计、sqlite3数据库 方法实现、实现步骤 1、实例化人脸检测

    2024年02月04日
    浏览(61)
  • 《数字图像处理》dlib人脸检测获取关键点,delaunay三角划分,实现人脸的几何变换warpping,接着实现两幅人脸图像之间的渐变合成morphing

           这学期在上《数字图像处理》这门课程,老师布置了几个大作业,自己和同学一起讨论完成后,感觉还挺有意思的,就想着把这个作业整理一下 :   目录 1.实验任务和要求 2.实验原理 3.实验代码 3.1利用人脸特征点检测工具dlib获取人脸关键点 目录 1.实验任务和要求

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包