重写mtcnn遇到的python及tensorflow问题

人脸识别经典网络-MTCNN(含Python源码实现) mtcnn为一个经典的人脸识别的卷积神经网络,其使用的图像金字塔作为一种常用的尺度处理手段,一致在CV领域流行使用,mtcnn提出了P-Net、R-Net、O-Net分层的处理人脸信息、提取特征并优化标定框的方式,有很大的借鉴意义,本文从应用层面介绍了mtcnn,并给出了代码实践方案。 阅读详情

编写 迭代器类:

# 必须要有 __init__(), __iter__(), __next__() 函数
class TestData:
    def __init__(self,data,batch_size=1):
        self.data = data
        self.size = len(data)
        self.batch_size = batch_size
        self.tmp = None
        self.cur = 0
        self.get_batch()
        print("size %d"%self.size)

    def get_batch(self):
        return self.data[self.cur]*2

    def __iter__(self):
        return self # 实例本身就是迭代对象,故返回自己

    def __next__(self):
        if self.cur < self.size:
            print("cur : %d"%self.cur)
            self.tmp = self.get_batch()
            self.cur += 1         
            return self.tmp
        else:
            raise StopIteration

a = range(10)
test = TestData(a)
for _ in test:
    print(_)

容器类:

# 必须要有__getitem__(), __setitem__()
class Father(object):
    def __init__(self):
        self.name = "father"
        self.children = ['child1', 'child2', 'child3']
        self.dict = {'a':111, 'b':222, 'c':333}

    def __getitem__(self, i):
        #assert i < len(self.children)
        if isinstance(i,int):
            return self.children[i]
        if isinstance(i,str):
            return self.dict[i]

    def __setitem__(self, i, obj):
        if isinstance(i,int):
            assert i < len(self.children)
            self.children[i] = obj
        if isinstance(i,str):
            self.dict[i] = obj

if __name__ == '__main__':
    f=Father()
    print (f[1])
    f[1]='orisun'
    print (f[1])
    print(f['a'])
    f['a']=323232
    print(f['a'])

制作和使用TFRecord:

# 制作 TFRecord
import os 
import tensorflow as tf 
from PIL import Image  #注意Image,后面会用到
import matplotlib.pyplot as plt 
import numpy as np

cwd='D:\Python\data\dog\\' 
classes={'husky','chihuahua'} #人为 设定 2 类
writer= tf.python_io.TFRecordWriter("dog_train.tfrecords") #要生成的文件

for index,name in enumerate(classes):
    class_path=cwd+name+'\\'
    for img_name in os.listdir(class_path): 
        img_path=class_path+img_name #每一个图片的地址

        img=Image.open(img_path)
        img= img.resize((128,128))
        img_raw=img.tobytes()#将图片转化为二进制格式
        example = tf.train.Example(features=tf.train.Features(feature={
            "label": tf.train.Feature(int64_list=tf.train.Int64List(value=[index])),
            'img_raw': tf.train.Feature(bytes_list=tf.train.BytesList(value=[img_raw]))
        })) #example对象对label和image数据进行封装
        writer.write(example.SerializeToString())  #序列化为字符串

writer.close()
# 读取 TFRecord
def read_and_decode(filename): # 读入dog_train.tfrecords
    filename_queue = tf.train.string_input_producer([filename])#生成一个queue队列

    reader = tf.TFRecordReader()
    _, serialized_example = reader.read(filename_queue)#返回文件名和文件
    features = tf.parse_single_example(serialized_example,
                                       features={
                                           'label': tf.FixedLenFeature([], tf.int64),
                                           'img_raw' : tf.FixedLenFeature([], tf.string),
                                       })#将image数据和label取出来

    img = tf.decode_raw(features['img_raw'], tf.uint8)
    img = tf.reshape(img, [128, 128, 3])  #reshape为128*128的3通道图片
    img = tf.cast(img, tf.float32) * (1. / 255) - 0.5 #在流中抛出img张量
    label = tf.cast(features['label'], tf.int32) #在流中抛出label张量
    return img, label

EasyDict

from easydict import EasyDict as edict

d = edict({'foo':3, 'bar':{'x':1, 'y':2}})

>>> d.foo
3
>>> d.bar.x
1
from easydict import EasyDict as edict
from simplejson import loads
j = """{
"Buffer": 12,
"List1": [
    {"type" : "point", "coordinates" : [100.1,54.9] },
    {"type" : "point", "coordinates" : [109.4,65.1] },
    {"type" : "point", "coordinates" : [115.2,80.2] },
    {"type" : "point", "coordinates" : [150.9,97.8] }
]
}"""
d = edict(loads(j))

>>> d.Buffer
12
>>> d = EasyDict(log=False)
>>> d.debug = True
>>> d.items()
[('debug', True), ('log', False)]
从零搭建课堂人脸分析系统:基于Python与深度学习的行为识别实践 计算机视觉作为人工智能的核心分支,旨在使机器能够“看懂”和理解图像与视频内容。其核心原理在于通过深度学习模型,尤其是卷积神经网络,从像素数据中自动提取并学习有意义的特征。这项技术的价值在于将非结构化的视觉信息转化为可量化、可分析的数据,极大地拓展了自动化感知的边界。在教育、安防、零售等多个领域,计算机视觉技术已广泛应用于目标检测、身份识别和行为分析等场景。其中,人脸检测与识别是计算机视觉的经典应用,它通过定位人脸区域并提取特征向量来实现身份验证。本文聚焦于教育信息化场景,探讨如何利用开源框架如Insight 阅读详情

相关推荐

TPU加速GAN训练:从GPU慢跑变高铁飞驰的实战指南

生成对抗网络(GAN)是生成式AI的核心模型之一,其训练效率高度依赖硬件算力与数据流水线协同。传统GPU受限于PCIe带宽瓶颈和动态执行模式,常出现显存空转、利用率不足等问题;而TPU凭借高带宽片上内存、静态计算图编译(XLA)及原生分布式设计,可实现批量人脸图像生成任务的十倍级加速。本文聚焦TPU在GAN中的工程落地,详解tf.distribute.TPUStrategy分布式策略、tf.data高效流水线构建、Generator/Discriminator的TPU适配要点(如tanh归一化、batch_

408

用Python进行人脸识别附源码.rar

用Python进行人脸识别附源码,进行了多张图片的测试,可以很精准的定位在人脸的部位,以方框来标记人脸部位,和android智能手机拍摄时的人脸识别效果相似,但代码差别就大了,有兴趣的下载完整源代码吧。   调试时,请参考源码包中的运行路径.jpg和运行命令.txt两个文件。

人脸识别会议签到系统设计与实现

人脸识别技术作为计算机视觉的核心应用之一,通过特征提取与相似度比对实现身份验证。其技术原理主要基于深度学习模型(如FaceNet、ArcFace)生成人脸特征向量,结合OpenCV等库进行实时检测。在工程实践中,这类系统能显著提升身份核验效率,特别适用于会议签到、门禁管理等场景。本文以会议签到系统为例,详细解析了从算法选型(Dlib/OpenCV)、数据库设计(MySQL特征向量存储)到性能优化(多帧验证、活体检测)的全流程实现方案,并提供了Spring Boot和Django两种技术栈的部署建议。针对实际

weixin_33675507的博客 422

MTCNN人脸检测算法实现(python)

MTCNN 是多任务级联 CNN 的人脸检测深度学习模型,该模型不仅考虑了人脸检测概率,还综合训练了人脸边框回归和面部关键点检测,多任务同时建立 loss function 并训练,因此为 MTCNN。级联 CNN 主要由三个子网络组成:P-Net、R-Net 和 O-Net。博主通过PyQt5开发一个可视化的MTCNN人脸检测器,深度学习框架采用PyTorch。

weixin_40280870的博客 4398

人工智能毕设选题指南:避坑与创新实践

人工智能毕业设计选题是计算机专业学生面临的重要挑战。深度学习框架如TensorFlow和PyTorch已成为主流技术工具,而计算机视觉和自然语言处理是当前最热门的应用方向。在技术实现层面,YOLO、BERT等预训练模型能有效降低开发门槛,结合Flask等轻量级框架可快速搭建演示系统。工程实践中需重点关注数据标注质量、模型轻量化部署等实际问题,如在Jetson Nano边缘设备上优化推理速度。针对电商推荐、工业检测等典型场景,合理组合现有技术并加入领域适配创新,往往能产出既有学术价值又具落地可行性的项目。通过

weixin_30607029的博客 313

Unity AR实时人脸驱动:集成MogFace模型与NCNN优化实战

人脸检测是计算机视觉的基础任务,其核心原理是通过卷积神经网络(CNN)从图像中定位并分析人脸特征点。这项技术的价值在于为各类交互应用提供了非接触式的感知能力。在增强现实(AR)和虚拟角色驱动等应用场景中,实时、精准的人脸检测是实现自然交互的关键。本文聚焦于将轻量级高精度模型MogFace-large部署到移动端Unity AR环境这一具体实践。针对移动端算力有限的特点,详细阐述了通过ONNX中间格式和NCNN推理框架进行模型转换与极致优化的完整链路,并深入探讨了利用原生插件(Native Plugin)桥接

weixin_33889245的博客 332

TensorFlow2.x 和 TensorFlow1.x 的函数转换

【代码】TensorFlow2.x 和 TensorFlow1.x 的函数转换。

WwLK123的博客 1387

带GUI的人脸识别小工具:Python+TensorFlow实现检测、对齐、特征提取与身份匹配全流程

一套可直接运行的人脸识别小工具,支持摄像头实时捕捉和本地图片识别,内置图形操作界面(window.py)。人脸检测用MTCNN模型,精度高且对遮挡、角度变化适应性好;检测后自动进行仿射变换校正(affineTrans.py),提升后续识别稳定性;特征提取基于预训练网络输出128维向量(featureExtraction.py);识别模块(face_recognition.py)完成特征比对与身份判定。所有代码适配TensorFlow 2.6–2.10和Python 3.7–3.9,依赖明确列在require

kkk56的博客 292

Python-MTCNN人脸检测和算法

MTCNN人脸检测和算法

人脸识别全流程开发套件:从摄像头采集、人脸裁剪到模型训练与实时检测

直接上手就能跑的人脸识别Python工程,覆盖数据准备到部署验证全环节。支持USB摄像头实时画面捕获,自动完成人脸检测、关键点定位和仿射变换对齐;提供标准化数据加载(read_data.py)、训练集构建(dataSet.py)、单张图推理(read_img.py)、批量人脸裁剪(pick_face.py)及模型测试(test_model.py)和再训练(train_model.py)脚本。所有代码基于OpenCV实现基础视觉处理,兼容TensorFlow或PyTorch框架下的CNN模型,适配ResNet

metaverse5vr的博客 238

驾驶行为风险识别:多模态时序建模与车载轻量化部署

驾驶行为识别本质上是面向真实车载场景的时序行为理解问题,其核心在于从视频流中持续建模微小、连续、上下文敏感的人体动作。不同于静态图像分类,它需融合人脸关键点、手部轨迹与头部姿态等多模态信号,在时间维度上判定闭眼、哈欠、打电话等复合行为。关键技术支撑包括高鲁棒性关键点检测、轻量级时序卷积(CTC)建模及状态机驱动的置信度融合策略,兼顾精度、延迟与边缘设备适配能力。典型应用场景涵盖商用车队ADAS升级、网约车司机状态监控及智能座舱安全预警系统。本文聚焦于解决实际落地中的数据偏差、光照鲁棒性、模型轻量化与实时推理

weixin_33971977的博客 427

MTCNN python实现

MTCNN python方式简单实现人脸识别 画框画点 里面包含python类型的模型文件

基于人脸识别的考勤签到小程序设计与实现

人脸识别技术正逐步替代传统IC卡、指纹等身份验证方式,成为企业数字化管理的重要入口。其核心原理在于通过摄像头采集人脸图像,经过检测、特征提取与相似度比对,确认个体身份的唯一性。在考勤场景中,这项技术不仅解决了代打卡、忘打卡等管理痛点,还通过与微信小程序的结合,实现了移动化、实时化的签到体验。实际工程落地时,需统筹前端采集、活体检测、后端接口设计、阈值调优及隐私保护等环节,确保系统在高并发与复杂光线环境下依然稳定可靠。本文围绕基于人脸识别的考勤签到小程序的设计展开,从架构选型、算法实现到服务端协议与小程序调通

cuibinmo3519的博客 194

基于人脸关键点检测的实时猫娘头像生成:从原理到工程实践

人脸关键点检测是计算机视觉领域的一项基础技术,它通过算法定位人脸图像中眼睛、鼻子、嘴巴等特征点的精确位置。其核心原理通常依赖于机器学习或深度学习模型,从像素数据中学习并回归出关键点的坐标。这项技术的价值在于为上层应用提供了结构化的面部信息,是实现人脸识别、表情分析、增强现实(AR)滤镜等高级功能的关键基石。在应用场景上,它广泛服务于社交娱乐、虚拟试妆、安防监控等领域。本文聚焦于一个具体的工程实践——实时人像风格迁移,即利用Dlib库进行68点人脸关键点检测,并结合OpenCV与PIL库,实现将普通头像实时转

weixin_34345753的博客 556

基于深度学习的人脸识别签到系统:从训练到部署的完整实践指南

人脸识别技术已广泛应用于身份验证与考勤场景,其核心在于通过深度学习模型将人脸图像转化为可比较的特征向量。依托卷积神经网络,系统可自动提取人脸语义特征,并在复杂光照与姿态变化下保持稳定识别。这类技术不仅支撑智慧校园的课堂签到,也延伸至社区门禁、会议考勤等场景。然而,实际落地往往面临数据集构建、模型微调、阈值设定与系统集成等多重工程挑战。围绕基于人脸识别的签到系统,从PyTorch预训练模型微调出发,完整梳理数据采集、特征注册库构建、实时比对与考勤记录导出的关键路径,并总结实训中易踩的五大技术坑位,帮助开发者快

weixin_29061509的博客 288

MTCNN源码python版

MTCNN的python实现,实现人脸检测。同时可以训练检测其他物体

上一篇: tf.slim使用方法
下一篇: Python如何使用 *arg 和 **kwargs
全意
博客等级 码龄12年 5粉丝 34原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值