吴恩达的人脸检测

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

1.将人脸图像编码为128位的向量

1.1 -使用卷积网络来进行编码
系统构建一个编码,对该编码的元素进行比较,FaceNet模型需要大量的数据和长时间的训练
#获取模型
FRmodel = faceRecoModel(input_shape=(3,96,96))

#打印模型的总参数数量
print(“参数数量:” + str(FRmodel.count_params()))

1.2.计算两个编码以及阈值之间的误差

13.使用三元组损失函数
(A,P,N)

def triplet_loss(y_true, y_pred, alpha=0.2):
“”"
根据公式(4)实现三元组损失函数

参数:
    y_true -- true标签,当你在Keras里定义了一个损失函数的时候需要它,但是这里不需要。
    y_pred -- 列表类型,包含了如下参数:
        anchor -- 给定的“anchor”图像的编码,维度为(None,128)
        positive -- “positive”图像的编码,维度为(None,128)
        negative -- “negative”图像的编码,维度为(None,128)
    alpha -- 超参数,阈值

返回:
    loss -- 实数,损失的值
"""
# 获取anchor, positive, negative的图像编码
anchor, positive, negative = y_pred[0], y_pred[1], y_pred[2]

# 第一步:计算"anchor" 与 "positive"之间编码的距离,这里需要使用axis=-1
pos_dist = tf.reduce_sum(tf.square(tf.subtract(anchor, positive)), axis=-1)

# 第二步:计算"anchor" 与 "negative"之间编码的距离,这里需要使用axis=-1
neg_dist = tf.reduce_sum(tf.square(tf.subtract(anchor, negative)), axis=-1)

# 第三步:减去之前的两个距离,然后加上alpha
basic_loss = tf.add(tf.subtract(pos_dist, neg_dist), alpha)

# 通过取带零的最大值和对训练样本的求和来计算整个公式
loss = tf.reduce_sum(tf.maximum(basic_loss, 0))

return loss

with tf.Session() as test:
tf.set_random_seed(1)
y_true = (None, None, None)
y_pred = (tf.random_normal([3, 128], mean=6, stddev=0.1, seed=1),
tf.random_normal([3, 128], mean=1, stddev=1, seed=1),
tf.random_normal([3, 128], mean=3, stddev=4, seed=1))
loss = triplet_loss(y_true, y_pred)

print("loss = " + str(loss.eval()))

2-加载训练好了的模型

FaceNet是通过最小化组损失来训练的,但是由于训练需要大量的数据和时间,所以我们不会从头训练,相反,我们会加载一个已经训练好了的模型,运行下列代码来加载模型
#开始时间
start_time = time.clock()

#编译模型
FRmodel.compile(optimizer = ‘adam’, loss = triplet_loss, metrics = [‘accuracy’])

#加载权值
fr_utils.load_weights_from_FaceNet(FRmodel)

#结束时间
end_time = time.clock()

#计算时差
minium = end_time - start_time

print(“执行了:” + str(int(minium / 60)) + “分” + str(int(minium%60)) + “秒”)

3.模型的应用

3.1人脸验证

database = {}
database[“danielle”] = fr_utils.img_to_encoding(“images/danielle.png”, FRmodel)
database[“younes”] = fr_utils.img_to_encoding(“images/younes.jpg”, FRmodel)
database[“tian”] = fr_utils.img_to_encoding(“images/tian.jpg”, FRmodel)
database[“andrew”] = fr_utils.img_to_encoding(“images/andrew.jpg”, FRmodel)
database[“kian”] = fr_utils.img_to_encoding(“images/kian.jpg”, FRmodel)
database[“dan”] = fr_utils.img_to_encoding(“images/dan.jpg”, FRmodel)
database[“sebastiano”] = fr_utils.img_to_encoding(“images/sebastiano.jpg”, FRmodel)
database[“bertrand”] = fr_utils.img_to_encoding(“images/bertrand.jpg”, FRmodel)
database[“kevin”] = fr_utils.img_to_encoding(“images/kevin.jpg”, FRmodel)
database[“felix”] = fr_utils.img_to_encoding(“images/felix.jpg”, FRmodel)
database[“benoit”] = fr_utils.img_to_encoding(“images/benoit.jpg”, FRmodel)
database[“arnaud”] = fr_utils.img_to_encoding(“images/arnaud.jpg”, FRmodel)

def verify(image_path,identity,database,model):
encoding =fr_utils.img_to_encoding(image_path,model)

dist =linalg.norm(encoding -database[identity])

if dist <0.7:
    print("欢迎 "+str(identity) + "回家!")
    is_door_open =True
else:
    print("经验证,您与"+str(identity) +"不符!")
    is_door_open =False


return dist,is_door_open

verify(“images/camera_0.jpg”,“younes”,database,FRmodel)

3.2 人脸识别

def who_is_it(image_path,database,model):
“”“根据指定的图片来进行人脸识别”“”
#计算图像的编码
encodings =fr_utils.img_to_encoding(image_path,model)

# 找到最相近的编码
min_dist =100

#遍历数据库找到最相近的编码
for(name,db_enc) in database.items():
    dist =linalg.norm(encodings-db_enc)

    if dist <min_dist:
        min_dist=min_dist
        identity =name

#判断是否在数据库中
if min_dist >0.7:
    print("抱歉,您的信息不在数据库中.")

else:
    print("姓名" +str(identity) +" 差距 " +str(min_dist))

return min_dist,identity

who_is_it(“images/camera_0.jpg”,database,FRmodel)文章来源地址https://www.toymoban.com/news/detail-542038.html

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

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

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

相关文章

  • 吴恩达ChatGPT课爆火

    点上方 计算机视觉联盟 获取更多干货 没想到时至今日,ChatGPT竟还会犯低级错误? 吴恩达大神最新开课就指出来了: ChatGPT不会反转单词! 比如让它反转下lollipop这个词,输出是pilollol,完全混乱。 哦豁,这确实有点大跌眼镜啊。 以至于听课网友在Reddit上发帖后,立马引来

    2024年02月09日
    浏览(44)
  • 吴恩达chatgpt学习

    1、 harmonized documentation:【协调一致的文档】指的是确保文档在整个集团或公司内保持统一的标准和风格。 2、 operating instructions:【操作指南】是指导用户如何正确使用产品或设备的手册或指南。 3、 assembly instructions:【装配说明】是指引导用户如何组装产品或设备的详细步骤。

    2024年01月25日
    浏览(40)
  • 吴恩达《深度学习》笔记汇总

    第一门课:神经网络和深度学习(第一周)——深度学习引言 第一门课:神经网络和深度学习(第二周)——神经网络的编程基础 第一门课:神经网络和深度学习(第三周)——浅层神经网络 第一门课:神经网络和深度学习(第四周)——深层神经网络 第二门课:改善深层

    2024年01月25日
    浏览(46)
  • 人工智能大作业——人脸识别系统(最终)

    写在前面 时间过得飞快,时间已经距离我发第一篇文章过去2年多了,也不再从事代码工作,偶然间上到csdn翻看文章经过,看到还是有些人关注人脸识别系统的后续的,我猜大概率是学弟学妹们正在被期末实验折磨中,翻了翻原先的代码还能找到就一并更完了吧,如果抄了我

    2024年01月16日
    浏览(76)
  • 人工智能之Tensorflow技术特点及组件结构

    前言 Tensorflow的前身时谷歌的神经网络算法库DistBelief,被广泛应用于各类机器学习、深度学习算法的编程实现。Tensorflow具有实现代码简洁、编程范式灵活、分布式深度学习算法执行效率高、多语言API支持、CPU/GPU部署方便、良好的可扩展性、可移植性及在学术研究和产品研发

    2024年02月21日
    浏览(53)
  • TensorFlow人工智能开源深度学习框架简单认识

    TensorFlow是一个使用数据流图进行数值计算的开源深度学习框架。它由Google Brain团队开发,并于2015年开源发布。TensorFlow的核心概念是使用图表示计算任务,其中节点表示操作,边表示数据流动。 TensorFlow被广泛用于机器学习和深度学习任务。它的特点包括: 强大的计算能力:

    2024年01月21日
    浏览(49)
  • 吴恩达 GPT Prompting 课程

    In this lesson, you’ll practice two prompting principles and their related tactics in order to write effective prompts for large language models. Principle 1: Write clear and specific instructions Use delimiters to clearly indicate distinct parts of the input Ask for a structured output Ask the model to check whether conditions are satisfied “Few-shot”

    2024年02月11日
    浏览(36)
  • 机器学习(吴恩达第一课)

    课程链接 从给出“正确答案”的数据集中学习 1、回归(Regression) 2、分类(Classification) 总结 1.术语。 2.单变量线性回归 平方误差代价函数 梯度下降算法选择不同的起点,可能会得到不同的结果,因为它得到的是一个局部最小值。 1、学习率 2、用于线性回归的梯度下降 线性回

    2024年02月09日
    浏览(37)
  • 【机器学习】机器学习笔记(吴恩达)

    https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes https://www.bilibili.com/video/BV164411b7dx?p=4 https://study.163.com/course/courseLearn.htm?courseId=1210076550#/learn/video?lessonId=1280912351courseId=1210076550 定义机器学习为:在进行特定编程的情况下,给予计算机 学习能力的领域。目前存在几种不同类型的学习算

    2024年02月06日
    浏览(43)
  • 人工智能:人脸识别技术应用场景介绍

    目录 人脸识别介绍 什么是人脸识别技术 人脸识别的流程 1、场景分类 2、认证对比 3、金融领保险应用 3.1 金融行业 3.2 保险行业 4、安防交通领域 4.1 公园景点人脸识别闸机 4.2 高铁站进站人脸识别闸机 5、警务领域 5.1 抓拍交通违法 人脸识别技术是一种通过计算机技术和

    2024年02月04日
    浏览(84)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包