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

佛山企业网站制作公司长沙学校网站建设

佛山企业网站制作公司,长沙学校网站建设,ui和平面设计哪个更有发展,怎么建自己的手机网站吗文章目录 1、任务描述2、网络结构2.1 人脸检测2.2 性别分类2.3 年龄分类 3、代码实现4、结果展示5、参考 1、任务描述 性别分类和年龄分类预测 2、网络结构 2.1 人脸检测 输出最高的 200 个 RoI,每个 RoI 7 个值,(xx,xx&#x…

在这里插入图片描述

文章目录

  • 1、任务描述
  • 2、网络结构
    • 2.1 人脸检测
    • 2.2 性别分类
    • 2.3 年龄分类
  • 3、代码实现
  • 4、结果展示
  • 5、参考

1、任务描述

性别分类和年龄分类预测

2、网络结构

2.1 人脸检测

在这里插入图片描述

在这里插入图片描述

输出最高的 200 个 RoI,每个 RoI 7 个值,(xx,xx,score,x0,y0,x1,y1)

2.2 性别分类

二分类

在这里插入图片描述

在这里插入图片描述

2.3 年龄分类

按年龄区间分类 ageList = ['(0-2)', '(4-6)', '(8-12)', '(15-20)', '(25-32)', '(38-43)', '(48-53)', '(60-100)']

在这里插入图片描述

在这里插入图片描述

3、代码实现

先检测人脸,人脸外扩,再性别检测,再年龄检测,最后结果绘制输出

# Import required modules
import cv2 as cv
import math
import time
import argparsedef getFaceBox(net, frame, conf_threshold=0.7):frameOpencvDnn = frame.copy()frameHeight = frameOpencvDnn.shape[0]  # 333frameWidth = frameOpencvDnn.shape[1]  # 500blob = cv.dnn.blobFromImage(frameOpencvDnn, 1.0, (300, 300), [104, 117, 123], True, False)net.setInput(blob)detections = net.forward()  # (1, 1, 200, 7), (xxx, xxx, confidence, x0, y0, x1, y1)bboxes = []for i in range(detections.shape[2]):  # 遍历 top 200 RoIconfidence = detections[0, 0, i, 2]if confidence > conf_threshold:x1 = int(detections[0, 0, i, 3] * frameWidth)y1 = int(detections[0, 0, i, 4] * frameHeight)x2 = int(detections[0, 0, i, 5] * frameWidth)y2 = int(detections[0, 0, i, 6] * frameHeight)bboxes.append([x1, y1, x2, y2])cv.rectangle(frameOpencvDnn, (x1, y1), (x2, y2), (0, 255, 0), int(round(frameHeight/150)), 8)return frameOpencvDnn, bboxesparser = argparse.ArgumentParser(description='Use this script to run age and gender recognition using OpenCV.')
parser.add_argument('--input', help='Path to input image or video file. ''Skip this argument to capture frames from a camera.',default="jolie.jpg")
parser.add_argument("--device", default="cpu", help="Device to inference on")args = parser.parse_args()args = parser.parse_args()faceProto = "opencv_face_detector.pbtxt"
faceModel = "opencv_face_detector_uint8.pb"ageProto = "age_deploy.prototxt"
ageModel = "age_net.caffemodel"genderProto = "gender_deploy.prototxt"
genderModel = "gender_net.caffemodel"MODEL_MEAN_VALUES = (78.4263377603, 87.7689143744, 114.895847746)
ageList = ['(0-2)', '(4-6)', '(8-12)', '(15-20)', '(25-32)', '(38-43)', '(48-53)', '(60-100)']
genderList = ['Male', 'Female']# Load network
ageNet = cv.dnn.readNet(ageModel, ageProto)
genderNet = cv.dnn.readNet(genderModel, genderProto)
faceNet = cv.dnn.readNet(faceModel, faceProto)if args.device == "cpu":ageNet.setPreferableBackend(cv.dnn.DNN_TARGET_CPU)genderNet.setPreferableBackend(cv.dnn.DNN_TARGET_CPU)faceNet.setPreferableBackend(cv.dnn.DNN_TARGET_CPU)print("Using CPU device")elif args.device == "gpu":ageNet.setPreferableBackend(cv.dnn.DNN_BACKEND_CUDA)ageNet.setPreferableTarget(cv.dnn.DNN_TARGET_CUDA)genderNet.setPreferableBackend(cv.dnn.DNN_BACKEND_CUDA)genderNet.setPreferableTarget(cv.dnn.DNN_TARGET_CUDA)genderNet.setPreferableBackend(cv.dnn.DNN_BACKEND_CUDA)genderNet.setPreferableTarget(cv.dnn.DNN_TARGET_CUDA)print("Using GPU device")# Open a video file or an image file or a camera stream
cap = cv.VideoCapture(args.input if args.input else 0)
padding = 20
while cv.waitKey(1) < 0:# Read framet = time.time()hasFrame, frame = cap.read()if not hasFrame:cv.waitKey()breakframeFace, bboxes = getFaceBox(faceNet, frame)  # (333, 500, 3), 4 bboxif not bboxes:print("No face Detected, Checking next frame")continuefor bbox in bboxes:  # 遍历检测出来的人脸# print(bbox)face = frame[max(0,bbox[1]-padding):min(bbox[3]+padding,frame.shape[0]-1),max(0,bbox[0]-padding):min(bbox[2]+padding, frame.shape[1]-1)] # 人脸外扩blob = cv.dnn.blobFromImage(face, 1.0, (227, 227), MODEL_MEAN_VALUES, swapRB=False)genderNet.setInput(blob)genderPreds = genderNet.forward()gender = genderList[genderPreds[0].argmax()]# array([[9.9999559e-01, 4.4012304e-06]], dtype=float32), 'Male'# print("Gender Output : {}".format(genderPreds))print("Gender : {}, conf = {:.3f}".format(gender, genderPreds[0].max()))ageNet.setInput(blob)agePreds = ageNet.forward()"""array([[5.3957672e-05, 5.3967893e-02, 9.4579268e-01, 1.0875276e-04, 5.0436443e-05, 1.2142612e-05, 1.0151542e-05, 3.9845672e-06]],dtype=float32)"""age = ageList[agePreds[0].argmax()]  # '(8-12)'# print("Age Output : {}".format(agePreds))# print("Age : {}, conf = {:.3f}".format(age, agePreds[0].max()))label = "{},{}".format(gender, age)  # Out[15]: 'Male,(8-12)'cv.putText(frameFace, label, (bbox[0], bbox[1]-5), cv.FONT_HERSHEY_SIMPLEX,0.6, (0, 0, 255), 2, cv.LINE_AA)# cv.imshow("Age Gender Demo", frameFace)cv.imwrite("age-gender-out-{}".format(args.input), frameFace)print("time : {:.3f}".format(time.time() - t))

4、结果展示

输入图片

在这里插入图片描述

人脸检测结果

在这里插入图片描述

人脸外扩

在这里插入图片描述

输出结果

在这里插入图片描述

性别还是比较准的

输入图片

在这里插入图片描述

输出结果

在这里插入图片描述

输入图片

在这里插入图片描述

输出结果

在这里插入图片描述

输入图片

在这里插入图片描述

输出结果

在这里插入图片描述

输入图片

在这里插入图片描述

输出结果

在这里插入图片描述

5、参考

OpenCV进阶(8)性别和年龄识别

http://www.yayakq.cn/news/404898/

相关文章:

  • 商务型网站建设大型网页游戏大全
  • 网页网站作业制作wordpress小技巧
  • 抚顺网站建设招聘怎么创建网站域名
  • 张家港网站优化一个专门做ppt的网站
  • 网站网页建设商标注册查询官网中国商标网
  • 珠市口网站建设网站推广网络
  • 电子商务网站设计与实现论文投资公司起名
  • 江西岳顶建设工程有限公司网站四大网站是哪四大
  • 网站备案后打不开广州建设交易中心
  • 如何查一个网站的备案品牌营销专家
  • 扬州市城乡建设局网站首页重庆企业网站开发服务器
  • 有些网站突然无法访问浏览器怎么取消2345网址导航
  • 如何找回网站后台密码女生学电子商务就业前景
  • 中财盛建设集团公司网站什么是网站的栏目和板块
  • 一元云购网站建设模块开发软件能赚多少钱
  • 网站建设优化工资高不网站在什么地方设关键词
  • 论职能网站建设wordpress保存远程图片大小
  • 北京做网站公司 seo建一个自己的网站价格
  • 网站改版建设主要wordpress玉娇龙儿
  • 网站建设基础心得美橙互联网站备案平台
  • 做vi设计的网站北仑建设局网站
  • 网站建设销售主管岗位职责做网站的主机配置
  • php学多久可以做网站wordpress年会员
  • 微信优惠券网站怎么做的谷歌seo优化排名
  • 蒙牛网站建设报价情况摄影瀑布流网站模板
  • 石家庄建站网页模板腾讯企业邮箱手机登录入口官网
  • 网站名称去哪里注册瓜子二手车直卖网
  • 织梦网站建设交流群珠海互联网平台
  • 网站建设优化方法上海建筑建材业网官网
  • 如何自建网站入口石家庄建站工具