当前位置: 首页 > news >正文

如何查看网站模板松原手机网站开发公司

如何查看网站模板,松原手机网站开发公司,seo优化技术培训中心,智能营销型网站前言 前段时间摸了下机器学习#xff0c;然后我发现其实openCV还是一个很浩瀚的库的#xff0c;现在也正在写一篇有关yolo的博客#xff0c;不过感觉理论偏多#xff0c;所以在学yolo之前先摸一下opencv#xff0c;简单先写个项目感受感受opencv。 流程 openCV实际上已…前言 前段时间摸了下机器学习然后我发现其实openCV还是一个很浩瀚的库的现在也正在写一篇有关yolo的博客不过感觉理论偏多所以在学yolo之前先摸一下opencv简单先写个项目感受感受opencv。 流程 openCV实际上已经有一个比较完整的模型了下载在haarcascades 这里我们下haarcascade_frontalface_default.xml以备用。 在做人脸识别的时候流程就比较简单了 读取图片创建Haar级联器图片转灰度图可以不转转了能更快而已通过Haar级联分类器来检测人脸面部特征返回faces结构使用openCV的接口在原图上框选出结果并展示 编码 这里代码偏简单就不过多介绍了 import numpy as np import cv2img ./faces/lena.bmp #脸部Haar级联器 facer_path ./faces/haarcascade_frontalface_default.xml facer cv2.CascadeClassifier(facer_path)img cv2.imread(img)gray cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#执行人脸识别#现在可以使用Haar级联分类器来检测人脸和其他面部特征faces facer.detectMultiScale(gray,1.35,3)for(x,y,w,h) in faces:cv2.rectangle(img,(x,y),(xw,yh),(0,0,255),2)roi_img img[y:yh, x:xw]cv2.imshow(img, img) cv2.waitKey() 结果 进阶 且不看运行的结果如何但从结果你就可以看出来这里只是把人脸从图片中框出来了。但这还不够我们实际上不仅希望你可以把人脸圈出来还希望能把人脸分类比如A是AB是B这样。 OpenCV提供了3种人脸识别方法分别是Eigenfaces、Fisherfaces和LBPH。这3种方法都是通过对比样本的特征最终实现人脸识别。因为这3种算法提取特征的方式不一样侧重点不同所以不能分出孰优孰劣只能说每种方法都有各自的识别风格。 OpenCV为每一种人脸识别方法都提供了创建识别器、训练识别器和识别3种方法这3种方法的语法非常相似。我这里只简单说说Eigenfaces怎么调用至于其他的两种读者感兴趣可以自己去搜索。 Eigenfaces人脸识别器 Eigenfaces也叫作“特征脸”。Eigenfaces通过PCA主成分分析方法将人脸数据转换到另外一个空间维度做相似性计算。在计算过程中算法可以忽略一些无关紧要的数据仅识别一些具有代表性的特征数据最后根据这些特征识别人脸。 开发者需要通过以下3种方法完成人脸识别操作。 1通过cv2.face.EigenFaceRecognizer_create()方法创建Eigenfaces人脸识别器其语法如下 recognizer cv2.face.EigenFaceRecognizer_create(num_components, threshold)参数说明 num_components可选参数PCA方法中保留的分量个数建议使用默认值。 threshold可选参数人脸识别时使用的阈值建议使用默认值。 返回值说明 recognizer创建的Eigenfaces人脸识别器对象。 2创建识别器对象后需要通过对象的train()方法训练识别器。建议每个人都给出2幅以上的人脸图像作为训练样本。train()方法的语法如下 recognizer.train(src, labels)对象说明 recognizer已有的Eigenfaces人脸识别器对象。 参数说明 src用来训练的人脸图像样本列表格式为list。样本图像必须宽、高一致。 labels样本对应的标签格式为数组元素类型为整数。数组长度必须与样本列表长度相同。样本与标签按照插入顺序一一对应。 3训练识别器后可以通过识别器的predict()方法识别人脸该方法对比样本的特征给出最相近的结果和评分其语法如下 label, confidence recognizer.predict(src)对象说明 recognizer已有的Eigenfaces人脸识别器对象。 参数说明 src需要识别的人脸图像该图像宽、高必须与样本一致。 返回值说明 label与样本匹配程度最高的标签值。 confidence匹配程度最高的信用度评分。评分小于5000匹配程度较高0分表示2幅图像完全一样。 下面通过一个实例来演示Eigenfaces人脸识别器的用法。 确定流程 最后我们来确定一下流程 读取数据创建特征脸识别器输入图片和labels开始训练输入需要识别的人脸图像得到输出 我这里把我的训练集整理了以下名称打在前面。我这里照片是我自己找的具体的图片训练集大伙可以自己去设定。 具体代码如下代码的功能可以参考注释 import numpy as np import cv2 import osface_path ./faces photos list() labels list()# 设置期望的图像大小 desired_size (811, 843) #定义labels names {0:mengzi,1:qy,2:lx,3:qq} # 从当前路径中读取到所有的file for root, dirs, files in os.walk(face_path):for file in files:if .xml in file:continueimg_path os.path.join(root, file)img cv2.imread(img_path, 0)# 图片需要设置到期望大小因为模型输入的图片大小都必须是统一值否则会无法训练img_resized cv2.resize(img, desired_size) # 根据图片的人脸对应到names插入到labels if mengzi in file: # 读取图像并调整大小 labels.append(0)elif qy in file:labels.append(1)elif lx in file:labels.append(2)elif qq in file:labels.append(3)else:continuephotos.append(img_resized)#创建人脸识别器 recognizer cv2.face.EigenFaceRecognizer_create() recognizer.train(photos, np.array(labels))# 读取测试图像并调整大小 target cv2.imread(face_path /test5.jpg, 0) target_resized cv2.resize(target, desired_size)#输出待识别对象 label, confidence recognizer.predict(target_resized)print(confidence str(confidence)) print(names[str(label)]) 结果 这里代码其实也能看得出最后之能输出图片中人物的label和执行度这样我们倒是完成了一个分类的工作。但是这里有个问题就是我们不仅仅需要分类还需要知道人脸的具体位置。 结合Haar级联器和Eigenfaces人脸识别器实现人脸划分 前言 刚刚说了两种一个是划分区域一个是打标签那么能不能即划分区域又打上标签呢当然是可以的接下来就简单说说怎么做。 流程 实际上流程就是把两个模式结合起来先使用Haar级联器划分出脸部区域然后再用Eigenfaces人脸识别器去检查分出的脸部区域的对象名称然后将标签放在图片上即可。 加载Haar级联分类器读取文件并训练Eigenfaces人脸识别器读取目标图片通过Haar级联分类器扫描得到目标图片中的所有人脸框对所有人脸框使用Eigenfaces人脸识别器进行识别画上方框并打上标签 代码 代码如下 import numpy as np import cv2 import os# 加载Haar级联分类器 face_cascade cv2.CascadeClassifier(cv2.data.haarcascades haarcascade_frontalface_default.xml) face_path ./faces photos list() labels list()# 读取学习图片 desired_size (811, 843) names {0:mengzi,1:qy,2:lx,3:qq,4:ch} for root, dirs, files in os.walk(face_path):for file in files:if .xml in file:continueimg_path os.path.join(root, file)img cv2.imread(img_path, 0)img_resized cv2.resize(img, desired_size)if mengzi in file: # 读取图像并调整大小 labels.append(0)elif qy in file:labels.append(1)elif lx in file:labels.append(2)elif qq in file:labels.append(3)elif ch in file:labels.append(4)else:continuephotos.append(img_resized)# 训练人脸识别器 recognizer cv2.face.EigenFaceRecognizer_create() recognizer.train(photos, np.array(labels)) # 读取测试图像 target cv2.imread(face_path /test_ch.jpg) target_gray cv2.cvtColor(target, cv2.COLOR_BGR2GRAY)# 检测人脸 faces face_cascade.detectMultiScale(target_gray, scaleFactor1.2, minNeighbors5, minSize(30, 30))# 对于每个检测到的人脸 for (x, y, w, h) in faces:# 在原图上绘制矩形框出人脸cv2.rectangle(target, (x, y), (xw, yh), (255, 0, 0), 2)# 提取人脸区域并调整到期望大小face_region target_gray[y:yh, x:xw]face_resized cv2.resize(face_region, desired_size)# 使用EigenFaceRecognizer进行预测label, confidence recognizer.predict(face_resized)# 将识别的名字和置信度打印在图像上方cv2.putText(target, f{names[str(label)]} - {confidence:.2f}, (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (36,255,12), 2)# 显示图像 cv2.imshow(Face Recognition, target) cv2.waitKey(0) cv2.destroyAllWindows()测试结果 虽然打了马赛克但是实际上结果是可以置信的。在这里还可以根据置信程度来对不同的人脸进行筛选比如不想要的脸或者置信程度不高的脸可以再进行舍弃。
http://www.pierceye.com/news/455448/

相关文章:

  • 福州网站建设软件怎样上传自己的网站
  • wordpress手机站如何做wordpress 查询文章
  • 企业专业网站设计公wordpress打开慢
  • 网站制作方案怎么做青岛住房和城乡建设部网站
  • 织梦系统做的网站忘记登录密码百家 主题 wordpress
  • 营销推广软文婚纱摄影网站seo方案
  • 上海网站制作网站建设汶川县建设局网站
  • 东莞seo网站推广怎么做能够让网站流量大
  • 郑州网站建设做推广吗灰色关键词排名方法
  • 在线推广企业网站的方法有哪些网站推广到海外怎么做
  • 怎么用视频做网站首页php网站开发职位
  • 网站平台怎么做typecho跟wordpress
  • 网站建设找什么公司微网站建设流程
  • 如何制作数据库网站哔哩哔哩推广平台
  • 免费建立手机网站网站建设下载模板之后怎么修改
  • wordpress 网站暂停做社区生意的网站
  • 渭南做网站的公司商业网站后缀名
  • 凡科建站电话邙山网站建设
  • 哪些网站可以做ppi小程序源码什么意思
  • 做公司网站都需要哪些东西产品画册设计公司
  • 网页优化与网站优西安开发网站建设
  • 大连建设监察执法网站免费icp备案服务码
  • 潮州做网站京东网站建设步骤
  • 遂宁模板建站公司懂福溶州做戒网站
  • 百度网站下拉排名农村电商平台发展现状
  • 移动端网站开发与网页开发区别wordpress首页文章显示
  • 有什么网站是layui做的wordpress 微信咨询菜单
  • 湖南网站seo营销x cache wordpress
  • 网站建设太金手指六六十八知名网站建设推荐
  • WordPress找不到站点做好评做销量的网站