基于深度学习神经网络MTCNN的人脸检测系统源码

一. mtcnn概述

MTCNN,英文全称是Multi-task convolutional neural network,中文全称是多任务卷积神经网络,该神经网络将人脸区域检测与人脸关键点检测放在了一起。

二. mtcnn的网络结构

mtcnn从整体上划分分为P-Net、R-Net、和O-Net三层网络结构。各层的作用直观上感受如下图所示:

其网络结构:

三. mtcnn的网络结构代码

import tensorflow as tf class PNet(tf.keras.Model): def __init__(self): super().__init__() self.conv1 = tf.keras.layers.Conv2D(10, 3, 1, name='conv1') self.prelu1 = tf.keras.layers.PReLU(shared_axes=[1,2], name="PReLU1") self.conv2 = tf.keras.layers.Conv2D(16, 3, 1, name='conv2') self.prelu2 = tf.keras.layers.PReLU(shared_axes=[1,2], name="PReLU2") self.conv3 = tf.keras.layers.Conv2D(32, 3, 1, name='conv3') self.prelu3 = tf.keras.layers.PReLU(shared_axes=[1,2], name="PReLU3") self.conv4_1 = tf.keras.layers.Conv2D(2, 1, 1, name='conv4-1') self.conv4_2 = tf.keras.layers.Conv2D(4, 1, 1, name='conv4-2') def call(self, x, training=False): out = self.prelu1(self.conv1(x)) out = tf.nn.max_pool2d(out, 2, 2, padding="SAME") out = self.prelu2(self.conv2(out)) out = self.prelu3(self.conv3(out)) score = tf.nn.softmax(self.conv4_1(out), axis=-1) boxes = self.conv4_2(out) return boxes, score class RNet(tf.keras.Model): def __init__(self): super().__init__() self.conv1 = tf.keras.layers.Conv2D(28, 3, 1, name='conv1') self.prelu1 = tf.keras.layers.PReLU(shared_axes=[1,2], name="prelu1") self.conv2 = tf.keras.layers.Conv2D(48, 3, 1, name='conv2') self.prelu2 = tf.keras.layers.PReLU(shared_axes=[1,2], name="prelu2") self.conv3 = tf.keras.layers.Conv2D(64, 2, 1, name='conv3') self.prelu3 = tf.keras.layers.PReLU(shared_axes=[1,2], name="prelu3") self.dense4 = tf.keras.layers.Dense(128, name='conv4') self.prelu4 = tf.keras.layers.PReLU(shared_axes=None, name="prelu4") self.dense5_1 = tf.keras.layers.Dense(2, name="conv5-1") self.dense5_2 = tf.keras.layers.Dense(4, name="conv5-2") self.flatten = tf.keras.layers.Flatten() def call(self, x, training=False): out = self.prelu1(self.conv1(x)) out = tf.nn.max_pool2d(out, 3, 2, padding="SAME") out = self.prelu2(self.conv2(out)) out = tf.nn.max_pool2d(out, 3, 2, padding="VALID") out = self.prelu3(self.conv3(out)) out = self.flatten(out) out = self.prelu4(self.dense4(out)) score = tf.nn.softmax(self.dense5_1(out), -1) boxes = self.dense5_2(out) return boxes, score class ONet(tf.keras.Model): def __init__(self): super().__init__() self.conv1 = tf.keras.layers.Conv2D(32, 3, 1, name="conv1") self.prelu1 = tf.keras.layers.PReLU(shared_axes=[1,2], name="prelu1") self.conv2 = tf.keras.layers.Conv2D(64, 3, 1, name="conv2") self.prelu2 = tf.keras.layers.PReLU(shared_axes=[1,2], name="prelu2") self.conv3 = tf.keras.layers.Conv2D(64, 3, 1, name="conv3") self.prelu3 = tf.keras.layers.PReLU(shared_axes=[1,2], name="prelu3") self.conv4 = tf.keras.layers.Conv2D(128, 2, 1, name="conv4") self.prelu4 = tf.keras.layers.PReLU(shared_axes=[1,2], name="prelu4") self.dense5 = tf.keras.layers.Dense(256, name="conv5") self.prelu5 = tf.keras.layers.PReLU(shared_axes=None, name="prelu5") self.dense6_1 = tf.keras.layers.Dense(2 , name="conv6-1") self.dense6_2 = tf.keras.layers.Dense(4 , name="conv6-2") self.dense6_3 = tf.keras.layers.Dense(10 , name="conv6-3") self.flatten = tf.keras.layers.Flatten() def call(self, x, training=False): out = self.prelu1(self.conv1(x)) out = tf.nn.max_pool2d(out, 3, 2, padding="SAME") out = self.prelu2(self.conv2(out)) out = tf.nn.max_pool2d(out, 3, 2, padding="VALID") out = self.prelu3(self.conv3(out)) out = tf.nn.max_pool2d(out, 2, 2, padding="SAME") out = self.prelu4(self.conv4(out)) out = self.dense5(self.flatten(out)) out = self.prelu5(out) score = tf.nn.softmax(self.dense6_1(out)) boxes = self.dense6_2(out) lamks = self.dense6_3(out) return boxes, lamks, score

四. mtcnn的演示效果

五. 整个工程的内容

提供源代码,模型,提供GUI界面代码,主要使用方法可以参考里面的“文档说明_必看.docx”

项目完整文件下载请见演示与介绍视频的简介处给出:➷➷➷

https://www.bilibili.com/video/BV1rCU6Y1EbX/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1150391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机毕设选题推荐】基于Django+Spark健康风险预测数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡如果你遇到具体的…

【计算机毕业设计案例】基于python-深度学习的混凝土马路和泥地马路识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

深度学习毕设项目推荐-基于python-CNN卷积神经网络的鱼类识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

计算机深度学习毕设实战-基于python-CNN卷积神经网络的宠物行为训练识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

大数据领域Hive在零售行业的数据处理应用

Hive在零售行业的数据处理应用:从痛点到解决方案的全流程实践 引言:零售行业的“数据焦虑”与Hive的救赎 1. 零售人的痛点:当数据量超过“Excel极限” 作为零售行业的数据分析师,你是否遇到过这样的场景? 月底统计全国…

DeepSeek V4模型即将来袭,编程能力或将超越GPT与Claude

DeepSeek计划于2月中旬推出主打编程能力的新一代AI模型V4,据内部测试,其在代码相关任务上的表现可能优于Claude和GPT系列。V4在处理超长代码提示方面有新突破,对复杂软件开发者大有帮助。恰逢中国春节发布,网友调侃DeepSeek"…

深度学习毕设项目推荐-基于python-深度学习的混凝土马路和泥地马路识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

论文AIGC率太高怎么办?10个让我论文AI率从82.5%降到5%的工具,亲测有效

凌晨两点,我盯着屏幕上刺眼的“AI风险:82.7%”,感觉整个胃都在抽搐。 那是我用了一周时间,读了三十多篇文献,反复推翻三次才写成的第三章啊。导师的批注像刀一样:“论述流畅但缺乏‘人味儿’,请…

【计算机毕设推荐】健康饮食大数据分析系统,Python+Django+Spark技术栈 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡如果你遇到具体的…

吐血推荐!专科生毕业论文必备TOP9 AI论文网站

吐血推荐!专科生毕业论文必备TOP9 AI论文网站 专科生毕业论文写作的“救星”来了 随着高校教育的不断深化,专科生在毕业论文撰写过程中面临的挑战也日益增多。从选题困难、资料查找繁琐,到格式规范不熟悉、内容质量难以把控,每一个…

从手动调参到多智能体编排:ChatDev 2.0 正在重构我们的开发范式

如果说去年 ChatDev 1.0 的横空出世是给业界打了个样——展示了 LLM 模拟软件公司的可能性;那么最近开源的 ChatDev 2.0,在我看来,更像是一次从“作坊式垂直应用”到“通用工业级平台”的跨越。 项目地址:https://github.com/Open…

【滤波跟踪】弹道目标状态估计仿真系统,通过扩展卡尔曼滤波EKF和无迹卡尔曼滤波UKF对含空气阻力的弹道目标(状态包括高度、速度、弹道系数)进行状态估计附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &#x1…

FramePack实战秘籍:3步攻克AI视频生成技术瓶颈

FramePack实战秘籍:3步攻克AI视频生成技术瓶颈 【免费下载链接】FramePack 高效压缩打包视频帧的工具,优化存储与传输效率 项目地址: https://gitcode.com/gh_mirrors/fr/FramePack 你是否曾经满怀期待地想要将一张静态图片变成生动的视频&#x…

FramePack:让静态图片动起来的AI魔法棒

FramePack:让静态图片动起来的AI魔法棒 【免费下载链接】FramePack 高效压缩打包视频帧的工具,优化存储与传输效率 项目地址: https://gitcode.com/gh_mirrors/fr/FramePack 你是否曾经想过,如果能让照片里的人物动起来该多有趣&#…

深度学习毕设项目推荐-基于python-CNN卷积神经网络对猫是否疲劳识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

30B小模型如何碾压1T大模型?MiroThinker推理能力实测,AI搜索新思路

文章介绍了MiroThinker 1.5模型如何通过"Interactive Scaling"思路,让小模型(30B)战胜大模型。其核心优势在于实时搜索能力和严谨推理过程,能提供详细证据链而非简单答案。模型采用"时序敏感训练沙盒"避免"开天眼"现象&am…

免费|不限速|不限流量|多架构|容器镜像服务---第3批同步:人工智能AI和机器学习领域的重要开源项目的超大43镜像仓库

第3批同步:人工智能AI和机器学习相关的超大镜像 人工智能AI和机器学习的快速发展离不开一些基础设施级的项目,如pytorch、langchain、tensorflow等。 这些项目的镜像目前主要以 AMD64 架构镜像为主,并且镜像往往很大,很多都是10…

【毕业设计】基于python-深度学习的混凝土马路和泥地马路识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

Scarab模组管理器:空洞骑士玩家的终极管理解决方案

Scarab模组管理器:空洞骑士玩家的终极管理解决方案 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 作为专为《空洞骑士》打造的现代化模组管理工具,Sca…

Zoplicate插件终极指南:彻底告别Zotero重复文献困扰

Zoplicate插件终极指南:彻底告别Zotero重复文献困扰 【免费下载链接】zoplicate A plugin that does one thing only: Detect and manage duplicate items in Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zoplicate 还在为Zotero中大量重复文献条目…