精华内容
下载资源
问答
  • 知道了总人数,和各个年龄段的人,怎么算平均年龄
    千次阅读
    2020-12-16 19:25:33

    展开全部

    每个年龄段的人数乘以对应的年龄,然后再求和,再除以总人数。

    例如:

    20岁62616964757a686964616fe58685e5aeb9313334313566352人,30岁3人,则平均年龄=(20×2+30×3)÷5=26岁。

    平均年龄是在一定时间、地点条件下,某一人口年龄的平均水平。也就是在人口群体内将各个体年龄差异抽象化,用以反映人口总体在一定时间、地点条件下的一般水平。

    它采用算术平均数公式计算。当年龄分组以1岁为组距时,各年龄组的下限值就等于各年龄组的年龄。即0岁、1岁、2岁……。当年龄分组以5岁为组距时,各年龄组的下限值分别取0岁、5岁、10岁……。

    扩展资料:

    平均数的分类有:

    一、算术平均数

    算术平均数是指在一组数据中所有数据之和再除以数据的个数。它是反映数据集中趋势的一项指标。把n个数的总和除以n,所得的商叫做这n个数的算术平均数。

    二、几何平均数

    n个观察值连乘积的n次方根就是几何平均数。根据资料的条件不同,几何平均数分为加权和不加权之分。

    三、调和平均数

    调和平均数是平均数的一种。但统计调和平均数,与数学调和平均数不同。在数学中调和平均数与算术平均数都是独立的自成体系的。计算结果两者不相同且前者恒小于后者。

    四、指数平均数

    指数平均数[EXPMA],其构造原理是对股票收盘价进行算术平均,并根据计算结果来进行分析,用于判断价格未来走势得变动趋势。

    更多相关内容
  • 点击查看用电脑怎么画直方图,如何用matlab画直方图已知频数和组距matl具体信息答:matlab中,绘制二维直方图的函数是bar,绘制三维直方图的函数是bar3,以下分别列出其用法: 调用格式:bar(x,y,选项) ,其中,x,y...

    点击查看用电脑怎么画直方图,如何用matlab画直方图已知频数和组距matl具体信息

    答:matlab中,绘制二维直方图的函数是bar,绘制三维直方图的函数是bar3,以下分别列出其用法: 调用格式:bar(x,y,选项) ,其中,x,y是维数相同的矩阵或者向量,配对的x,y按对应的列元素为横纵坐标绘制,选项是一些绘图控制选项,可选; 例如,绘制...

    答:>> a=[0 1 3 4;2 5 7 0;1 2 3 5] sort(a(:)','descend') a = 0 1 3 4 2 5 7 0 1 2 3 5 ans = 7 5 5 4 3 3 2 2 1 1 0 0 >>

    答:不用30个plot,把30个点的x坐标都放到x(1:30)里,y坐标放到y(1:30)里就行了

    答:matlab中,绘制二维直方图的函数是bar,绘制三维直方图的函数是bar3,以下分别列出其用法: 调用格式:bar(x,y,选项) ,其中,x,y是维数相同的矩阵或者向量,配对的x,y按对应的列元素为横纵坐标绘制,选项是一些绘图控制选项,可选; 例如,绘制...

    答:朋友你好,我看了你的问题是这样理解的:1,,直方图是统计资料里长用的一中图表..用英语说:histogram或column diagram ..直方图是用矩形的宽度和高度来表示频数分布的图形。一幅比较好的图应该明暗细节都有,在柱状图上就是从左到右都有分布,同时...

    答:插入里面就有啊

    答:用EXCEL比较好,因为它是微软出的,并且在WENDOWS装机的时候就自带了^_^楼主如果不会用EXCEL可以加我Q随时给你合理的意见^_^

    答:以acdsee官方免费版为例,操作方法如下: 1、启动acdsee,例如文件管理器浏览到要查看的文件; 2、点击要查看的文件,右侧点击展开exif; 3、exif信息列表中即可查看拍摄参数。

    答:工具-数据分析-直方图里面有要先工具-加载宏-分析工具库。如果没有,可以从别人电脑上复制一个放进office11目录的Add-in或者Library目录下,即可在加载宏列表中出现

    答:可能程序不兼容, 可以更换个版本试试。另外建议参考下程序对配置的要求。 或者右键需要运行的程序 选择兼容性 用兼容模式运行试试。

    答:如果手机需要下载安装软件应用,建议尝试: 1.使用手机功能表中自带的浏览器上网,直接搜索需要的软件进行下载安装(下载安卓版本格式为apk)。 2.使用电脑下载APK格式的安装包,连接数据线传输至手机,操作手机在应用程序-我的文件中找到安装包,...

    答:excel可以画粗略的,如果想要精确的建议用origin

    答:数据处理 1.首先做直方图,效果如图所示。 2.数据处理,求出频数和频率。 制作频率分布直方图 3.点击图表工具——设计——选择数据。 4.如图所示,图表数据区域——选择整个图表——点击确定。 5.右击(频率的柱子)——设置数据系列格式——次坐标轴。 6.右...

    matlab中,绘制二维直方图的函数是bar,绘制三维直方图的函数是bar3,以下分别列出其用法: 调用格式:bar(x,y,选项) ,其中,x,y是维数相同的矩阵或者向量,配对的x,y按对应的列元素...

    制作步骤:(1).找出所有数据中的最大值和最小值,并算出它们的差; (2).决定组距和组数;(3).确定分点;(4).列出频数分布表;(5).画频数分布直方图。画图:可以在直方图的基础上来画...

    hist还可以这样用 a=[1 2 3];hist(x,a);这时候a是一个向量,绘制出来的图形如图所示,下面第二幅图就是,显然a变成了x轴上的刻度。 还可以返回每一个直方的频数,使用方法是...

    归纳绘直方图的方法: 1.根据图纸的大小,画出两条相互垂直的射线,两 端加上箭头 2.在水平射线上,适当分配条形的位置,确定直条的宽度和间隔。 3.在与水平射线垂直的射线上...

    解答:解:画频数分布直方图一般的步骤是: (1)计算最大值与最小值; (2)决定组距与组数; (3)列频数分布表; (4)画频数分布直方图. 故答案是:列频数分布表.

    纵坐标:频率/组距 频数分布直方图 纵坐标:频数 其他都一样

    并做好记号.分组的数量在6-20之间较为适宜.③计算组距的宽度.用组数去除最大值和最... 依此类推. ⑤统计各组数据出现频数,作频数分布表. ⑥作直方图.以组距为底长,以频数为...

    直方图也被称为频数直方图,它用来显示数据集的分布情况。在MATLAB中绘制直方图的函数是hist,用法是hist(y,x),表示以向量x的各个元素为统计范围,绘制y的分布情况。

    M):将x封装在M个等距的区间(默认M=10) histc(x,edges):落入edges元素之间的x值的个数 y=[-3,-2,-1,1,3]; x = -2.9:0.5:2.9; histc(x,y) n=hist(x) n=hist(x,4) %这种情况建议用histc...

    概率统计直方图 hist(data) 统计data中各数据出现个数 例子hist([2 2 3 3 4 5 5 5 5 5 6 7 8 8]) 具体请看hist帮助

    在直角坐标系中,横轴表示样本数据,纵轴表示频率与组距的比值,将频率分布表中各组频率的大小用相应矩形面积的大小来表示

    matlab中,绘制二维直方图的函数是bar,绘制三维直方图的函数是bar3,以下分别列出其用法: 调用格式:bar(x,y,选项) ,其中,x,y是维数相同的矩阵或者向量,配对的x,y按对应的列元素...

    朋友你好,我看了你的问题是这样理解的: 1,什么是直方图,,2,它怎么做,, 3,它在数据统计中的应用,,是吗? 1,,直方图是统计资料里长用的一中图表..用英语说:histogram 或colu...

    画,先取直方图各矩形上边的中点,然后在横轴上取两个频数为0的点,这两点分别与直方图左右两端的两个长方形的组中值(矩形宽的中点)相距一个组距,将这些点用线段依次联结...

    用手画,那就是以组距为底长,以频数为高,作各组的矩形图 如果是用Excel画,就用 工具---加载宏,选择“分析工具库”,然后工具里面会出现一个“数据分析”,那里面有直方图 如...

    又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。 制作频数分布直方图的方法步...

    就是你的数据源区域和你要划分段的范围所在的区域。 选定这两个区域,就是告诉电脑,你希望按照什么样的划分方式,去统计哪些数据在这些划分方式上的分布。

    更多精彩内容推荐:

    展开全文
  • 方法:将共有30名参与者(均患有PFPS的所有女篮球运动员,平均年龄为20-30岁)分为两个等/等渗和对照实验。 建议参加者进行为期八周的等和等渗锻炼,重点是在两个四个星期的阶段中进行的下肢EMSII锻炼。 ...
  • 研究发现,在相同年龄组的青少年足球运动队中,由于出生月份的不同,选择日越近的运动员,较选择日较远的运动员有较大的身心成熟优势,易被教练作为有“早期才能”的队员入选高一级运动队,从而造成选材上的偏差。...
  • 用OpenCV和深度学习进行年龄识别

    千次阅读 2021-03-25 11:04:46
    在本教程中,您将学习如何使用OpenCV,深度学习和Python执行年龄的自动识别/预测。学完本教程后,您将能够以相当高的精确度去自动预测静态图像文件和实时视频中的人物年龄。要了解如何使用OpenCV和深度学习进行年龄...

    24fe7a62e11ab7af119ffab9c5847dbe.png

    在本教程中,您将学习如何使用OpenCV,深度学习和Python执行年龄的自动识别/预测。

    学完本教程后,您将能够以相当高的精确度去自动预测静态图像文件和实时视频中的人物年龄。

    要了解如何使用OpenCV和深度学习进行年龄识别,请继续阅读!

    用OpenCV和深度学习进行年龄识别

    在本教程的第一部分中,您将学习年龄识别,这包括从图片或视频中自动预测人的年龄需要的步骤(以及为什么应该将年龄识别当做分类问题而不是回归问题)。

    下面,我们将介绍这个基于深度学习的年龄识别模型,然后学习如何使用这两种模型:

    1.静态图像中的年龄识别

    2.实时视频中的年龄识别

    然后,我们将分析我们所做的年龄预测工作的结果。

    什么是年龄识别?

    7cc2a55e2dac246d91e4511fdb80adce.png

    图1:在本教程中,我们使用OpenCV和预先训练的深度学习模型来预测给定人脸的年龄。

    (图片来源:https://www.researchgate.net/publication/336955775_Age_Estimation_in_Make-up_Cosmetics_Using_Color_and_Depth_Images)。

    年龄识别是仅用人脸的照片去自动识别其年龄的过程

    通常,您会看到年龄识别可分为两个阶段进行实现:

    1.阶段1:检测输入图像/视频中的人脸

    2.阶段2:提取人的面部(感兴趣区域,ROI),并通过年龄检测器的算法去预测人物的年龄

    对于阶段1,能够为图片中的人脸生成边框的人脸检测器都是可用的,这些检测器包括但不限于Haar cascades,HOG+线性SVM,单杆检测器(SSD)等。

    使用哪种人脸检测器取决于您的项目:

    ·Haar cascades速度很快,并且能够在嵌入式设备上实时运行,存在的问题是它们的准确度较低并且极易出现假阳性检测。

    ·HOG+线性SVM模型比Haar cascades更精确,但速度较慢。它们对遮挡(即部分面部可见)或视角变化(即面部的不同视图)的容错性也较低。

    ·基于深度学习的人脸检测器功能最为强大,它提供了最高的准确度,但比Haar cascades和HOG+线性SVM需要更多的计算资源。

    在为您的应用选择人脸检测器时,请花点时间考虑您的项目需求——速度或准确性,哪个对您更加重要?我还建议对每个面部检测器进行一些试验,以便让这些结果来指导您做决定。

    一旦您的面部检测器在图像/视频中生成了人脸的边界框坐标,您就可以进入第2阶段——识别人的年龄。

    确定了脸部的边界框坐标(x,y)后,您首先提取面部ROI,而忽略图像(帧)的其余部分。这样做可以使年龄检测器仅将注意力放在人脸上,而不是图像中其他不相关的“噪点”。

    然后将面部ROI传递给模型,从而得到实际的年龄预测。

    年龄检测器的算法有很多,但是最受欢迎的是基于深度学习的年龄检测器——在本教程中,我们将使用这种基于深度学习的年龄检测器。

    我们基于深度学习的年龄检测器模型

    224e6de4c88dfdb8eb8d07d3c152dbfb.png

    图2:用深度学习进行年龄识别是一个活跃的研究领域。在本教程中,我们使用由Levi和Hassner在其2015年论文中构建和训练的模型(图像来源https://talhassner.github.io/home/projects/cnn_agegender/CVPR2015_CNN_AgeGenderEstimation.pdf)。

    我们在这里使用的深度学习年龄检测器模型是Levi和Hassner在其2015年发表的《使用卷积神经网络进行年龄和性别分类》(https://talhassner.github.io/home/publication/2015_CVPR)中构建和训练的。

    在这篇论文里,作者提出了一个类似AlexNet的简单体系,该体系总共学习了8个年龄段:

    1 0-2

    2 4-6

    3 8-12

    4 15-20

    5 25-32

    6 38-43

    7 48-53

    8 60-100

    您可能会注意到这些年龄段是不连续的——这是有意而为的,因为用于训练模型的Adience数据集(https://talhassner.github.io/home/projects/Adience/Adience-data.html#agegender)定义了年龄段(我们将在下一节中介绍为什么这样做)。

    在这篇文章中,我们将使用预先训练的年龄检测器模型。但是如果您有兴趣学习如何从头开始训练它,请务必阅读《用Python进行计算机视觉深度学习》(https://www.pyimagesearch.com/deep-learning-computer-vision-python-book/),在那里我将向您展示如何训练。

    我们为什么不将年龄预测看做回归问题?

    8f91d1344561c61fa9137ad65674a534.png

    图3:用深度学习进行年龄预测可以被归类为回归或分类问题。

    您会在上面注意到,我们将年龄离散化为“不同的区间”,从而将年龄预测作为分类问题——为什么不将它看做回归问题(我们在房价预测教程中所使用的方法:https://www.pyimagesearch.com/2019/01/28/keras-regression-and-cnns/)?

    从技术上讲,没有理由不能将年龄预测看做回归任务。甚至有一些模型可以通过回归来实现。

    问题在于年龄预测本质上是主观的,并且仅基于容貌。

    一个五十多岁的人一生中从未吸烟,出门总是擦防晒霜,而且每天都要护理皮肤。而一个三十多岁的人一天要抽很多烟,不擦防晒霜去从事体力劳动,并且没有适当的皮肤护理。这个五十岁的人很可能看起来比这个三十岁的人年轻。

    而且不要忘记基因是衰老最重要的驱动因素——有些人就是比其他人衰老得慢。

    例如,看看下面的Matthew Perry(在电视情景喜剧Friends中扮演Chandler Bing)的图片,并将它与Jennifer Aniston(扮演Rachel Green)的图片进行比较:

    38283afd62acc03acb1a5a24f2ca5903.png

    图4:许多名人和行业领袖努力使自己看起来更年轻。这对使用OpenCV深度学习进行年龄检测提出了挑战。

    您能猜出Matthew Perry(50岁)实际上比Jennifer Aniston(51岁)小一岁吗?

    除非您事先了解了关于这些演员的情况,否则我不会相信。

    但另一方面,您能猜到这些演员在48-53岁吗?

    我愿意打赌您可能有这个能力。

    虽然人类天生不擅长预测年龄的准确值,但我们实际上在预测年龄段方面还是不错的。

    当然,上面是一个示例。

    Jennifer Aniston的基因近乎完美,再加上有非常优秀的整形外科医生,她似乎青春不老。

    但这印证了我的观点——人们有意掩饰自己的年龄。

    而且,如果人类准确地预测一个人的年龄很困难的话,那么机器肯定也会同样困难。

    一旦你将年龄预测看做回归问题,那么对于一个模型,要准确预测人的图像中的年龄值是极困难的。

    但是,如果您将其视为分类问题,为模型定义了年龄段,那么我们的年龄预测模型将更容易训练,通常会比基于回归的预测提供更高的准确性。

    简而言之:将年龄预测看做分类问题可以极大地“缓解”问题,使其更容易解决——通常我们不需要一个人的确切年龄;粗略的估计就足够了。

    项目结构

    请确保从本文的“下载”部分中获取代码,模型和图片。提取文件后,您的项目将如下所示:

    bed801380987cc5c76d2f4267c529eca.png

    前两个目录由年龄预测器和面部检测器组成。这两个深度学习模型都基于Caffe。

    我提供了三张用于年龄预测的测试图片;您也可以添加自己的图片。

    在本教程的其余部分,我们将讨论这两个Python脚本:

    ·detect_age.py:图片年龄预测

    ·detect_age_video.py:视频年龄预测

    这些脚本都会检测图片/帧中的人脸,然后使用OpenCV对它们进行年龄预测。

    运行我们的OpenCV图像年龄检测器

    让我们开始在静态图像中使用OpenCV进行年龄检测。

    在您的目录中打开detect_age.py文件,让我们开始工作:

    aecf35a0b4052691faf5186f3a1fa621.png

    为了启动我们的年龄检测器脚本,我们先导入NumPy和OpenCV。我建议查看我的pip install opencv教程(https://www.pyimagesearch.com/2018/09/19/pip-install-opencv/)来配置您的系统。

    此外,我们需要导入Python内置的os模块,它可以添加模型所需的路径。

    最后,我们导入argparse来解析命令行参数(https://www.pyimagesearch.com/2018/03/12/python-argparse-command-line-arguments/)。

    我们的脚本需要四个命令行参数:

    ·--图片:提供为年龄检测输入图像的路径

    ·--人脸:为预先训练的面部检测器模型提供路径

    ·--年龄:预先训练的年龄探测器模型

    ·--置信度:最小概率阈值,以便筛除低置信检测

    如上所述,我们的年龄检测器是一种分类器,可以根据预定义的年龄分段,通过人的面部ROI预测这个人的年龄——我们不会将其视为回归问题。现在让我们定义这些年龄段的bucket:

    5baf302719bf0ce122bff217d684dd8c.png

    我们的年龄是在预先训练好的年龄检测器的bucket(即类别标签)中定义的。我们将使用此列表和相关的索引来获取年龄段,从而在输出的图像上进行注释。

    完成了导入,命令行参数和年龄段的设置,我们现在就可以加载两个预先训练的模型:

    d37a88656eb2224af7f63be5a1d42275.png

    在这里,我们加载两个模型:

    ·我们的人脸检测器可以找到并定位图片中的人脸(第25-28行)

    ·年龄分类器确定特定面孔所属的年龄范围(第32-34行)

    这些模型均使用Caffe框架进行了训练。我在PyImageSearch Gurus课程(https://www.pyimagesearch.com/pyimagesearch-gurus/)中介绍了如何训练Caffe分类器。

    现在我们已经完成了所有初始化,让我们从磁盘加载图像并检测面部ROI:

    b327c3bf4ef98b762b9d41627e2802e7.png

    37-40行加载并预处理了我们输入的图像。我们使用OpenCV的blobFromImage方法——请在我的教程(https://www.pyimagesearch.com/2017/11/06/deep-learning-opencvs-blobfromimage-works/)中阅读有关blobFromImage的更多信息。

    为了检测图片中的人脸,我们通过CNN传送blob,得到了detections的列表。现在让我们循环面部ROI的检测:

    7602c86c56a9d97827e2cb34b38689fa.png

    当我们循环detections时,我们清除了低置信度的面部(第51-55行)。

    对于满足了最低置信度标准的面部,我们提取它们的ROI坐标(第58-63行)。现在,我们在仅包含单个面部的图像中有了小小收获。我们在第64-66行根据此ROI创建一个blob(即faceBlob)。

    现在,我们将进行年龄识别:

    a041c88edc9f5026f3103cbecf2855c9.png

    我们使用face blob进行年龄预测(第70-74行),从而得出年龄段和年龄的置信度。我们使用这些数据点以及面部ROI的坐标来注释最初输入的图片(第77-86行)并显示结果(第89和90行)。

    在下一部分中,我们将分析结果。

    OpenCV的年龄识别结果

    让我们运行OpenCV年龄检测器。

    首先,从本教程的“下载”部分下载源代码,预先训练的年龄检测器模型及示例图像。

    从那里打开一个终端,然后执行以下命令:

    c3adc2ee7872ad78c659b1f746316234.png

    86b58c952f9b412ab7fdadc99648c237.png

    图5:在我30岁时的照片中,该OpenCV年龄检测器正确识别了我的年龄。

    在这里,您可以看到我们的OpenCV年龄检测器以57.51%的置信度预测了我的年龄为25-32岁——实际上,该年龄检测器是正确的(我拍摄这张照片时是30岁)。

    让我们再举一个例子,这是著名演员Neil Patrick Harris小时候的照片:

    589424879c06536dd11474b784371df0.png

    8370cb8481d8c5fc262e5c9b11422324.png

    图6:使用OpenCV进行年龄预测时,可以很确定地认为拍摄这张照片时的Neil Patrick Harris是8-12岁。

    我们的年龄预测值又是正确的——拍摄这张照片时,Nat Patrick Harris看起来的确在8-12岁年龄段中的某个年龄。

    让我们尝试另一张图片;这张图是Samuel L. Jackson,他是我最喜欢的演员之一:

    8266844f9ede41c9af4cbdcabb6564d8.png

    0dc2007c9a8632a2f87ebb3434744e4b.png

    图7:使用OpenCV通过深度学习进行年龄预测并不总是准确的,正如Samuel L. Jackson的照片所证明的那样。年龄预测只是一个软件,对人类来说是主观的。

    这里我们的OpenCV年龄检测器出错了——Samuel L. Jackson大约71岁,这使我们的年龄预测大约有了18岁的偏差。

    也就是说,仅仅看照片——Jackson先生看上去像71岁吗?

    我的猜测应该是50到60岁左右。至少对我来说,他不像70岁多一点的男人。

    但这恰恰印证了我在前文提出的观点:

    用视觉进行年龄预测的过程很困难,当计算机或人试图猜测某人的年龄时,我认为这是主观的。

    为了评估年龄检测器,您不能依赖人的实际年龄去评价。相反,您需要衡量预测年龄和感知年龄之间的准确度。

    为实时视频运行我们的OpenCV年龄检测器

    现在我们可以在静态图像中实现年龄检测,但实时视频可以吗?

    我们可以这样做吗?

    您应该猜我们可以。我们的视频脚本与图像脚本非常相似。不同之处在于,我们需要设置视频流并在每个帧上循环进行年龄检测。本文将重点介绍视频功能,因此请根据需要参考上面的流程。

    要了解如何在视频中进行年龄识别,那就来看看detect_age_video.py。

    47e4c5929faea198ae9fe9e5bcc9f558.png

    我们需要导入三个新的模块:(1)VideoStream (2)imutils (3)time。这些导入允许我们对视频进行设置和使用webcam功能。

    我决定定义一个快捷函数来获取帧,定位面部并预测年龄。函数通过进行检测和逻辑预测,使我们的帧处理循环不会那么庞大(您也可以将此函数放到单独的文件中)。现在让我们进入这个程序:

    a92061b1effa31e0c83cb37f9ccdb7d3.png

    我们的 detect_and_predict_age 辅助函数接受以下参数:

    ·frame:视频通过webcam获取的单个帧

    ·faceNet:初始化的深度学习人脸检测器

    ·ageNet:初始化的深度学习年龄分类器

    ·minConf:筛去较差人脸识别的置信度阈值

    这里的参数和我们的图片年龄检测器脚本的命令行参数是相似的。

    我们的AGE_BUCKETS再次被定义(第12和13行)。

    然后我们定义一个空列表来保存面部定位和年龄检测的结果。

    第20-26行进行面部检测。

    接下来,我们将处理每个detections:

    a332e6f461282408dcb6b3e118ed0fa0.png

    请看29-43行——它们循环检测,以确保较高的置信度,然后提取出面部ROI。

    第46-47行是新的——由于以下两个原因,我们要确保视频中的面部ROI足够大:

    ·首先,我们要筛掉帧中检测到的假阳性面部。

    ·其次,年龄分类结果对于远离相机的脸(即脸部很小)来说并不准确。

    为了完成我们的辅助功能,我们将进行年龄识别并返回结果:

    a08eeb2615ba242b5204145c330d0e17.png

    在这里,我们预测人脸的年龄并提取出年龄段和年龄置信度(第56-60行)。

    第65-68行在一个字典中存储面部定位和年龄预测。循环检测的最后一步是将该字典放到结果列表中(第69行)。

    如果所有检测都已经完成,并且结果都得到了,那我们将结果返回给调用者。

    定义好辅助函数后,现在我们可以继续处理视频了。但我们需要先定义命令行参数:

    70133a026c12cd79f5ed5fcfb2c32dfe.png

    我们的脚本需要三个命令行参数:

    ·--face:预先训练的面部检测器模型的目录的路径

    ·--age:预先训练的年龄检测器模型的目录

    ·--confidence:最小概率阈值,以便筛除低置信检测

    在这里,我们将加载模型并初始化视频:

    af534f5839fb37048165500fe14a45a8.png

    第86-89行加载并初始化了我们的面部检测器,而第93-95行加载了年龄检测器。

    然后,我们使用VideoStream类来初始化webcam(第99和100行)。

    webcam准备好后,我们将开始处理帧:

    cb26d4d1751a88ec7e04e193b14dd9ee.png

    在上面的循环中,我们:

    ·获取帧,并将其调整为已知宽度(第106和107行)

    ·通过我们的detect_and_predict_age便捷函数传递帧,以便(1)检测面部(2)确定年龄(第111和112行)

    ·在帧上注释结果(第115-124行)

    ·显示和捕获键盘输入(第127和128行)

    ·如果键入q,那么退出并清空(第131-136行)

    在下一节中,我们将启动年龄检测器,看看它是否有效!

    使用OpenCV进行实时年龄检测的结果

    现在,让我们将OpenCV年龄检测器应用于实时视频。

    确保您已从本教程的“下载”部分下载源代码和预先训练的年龄检测器。

    从那里打开一个终端,然后输入以下命令:

    2d94f1ef18feb5383a9d188c363bfa43.png

    3a323e898622d87960931c2da78598df.png

    在这里,您可以看到OpenCV年龄检测器将我的年龄范围准确地预测为25-32岁(在写本文时,我还是31岁)。

    如何改善年龄预测结果?

    由Levi和Hassner训练的年龄预测模型的问题之一是,它严重偏向25-32岁年龄组,如他们原始版本(https://talhassner.github.io/home/projects/cnn_agegender/CVPR2015_CNN_AgeGenderEstimation.pdf)中的这个混淆矩阵表所示:

    7245b797cfec61ea5c687bf38a020682.png

    图8:Levi和Hassner的深度学习年龄检测模型严重偏向25-32岁年龄段。为了在您的模型中解决此问题,请考虑收集更多的训练数据,使用类权重、数据扩充和正则化技术。(图片来源https://talhassner.github.io/home/projects/cnn_agegender/CVPR2015_CNN_AgeGenderEstimation.pdf)

    不幸的是,这意味着我们的模型预测的25-32岁结果可能实际上属于其他的年龄段——我在分析本教程的结果以及我自己的年龄预测中也遇到了几次这样的情况。

    您可以通过以下方法消除这种偏差:

    1 收集其他年龄段的额外训练数据以帮助平衡数据集

    2 使用类权重来处理类失衡的问题

    3 注意数据扩充

    4 训练模型时使用正则化

    其次,年龄预测结果可以通过使用人脸对齐(https://www.pyimagesearch.com/2017/05/22/face-alignment-with-opencv-and-python/)来改善。

    人脸对齐功能会识别人脸的几何结构,然后尝试使用平移,缩放和旋转获得人脸的规范化。

    在许多情况下(但并非总是如此),人脸对齐可以改善面部应用的效果,包括面部识别,年龄预测等。

    为简单起见,我们在本教程中没有使用人脸对齐功能,但是您可以按照这个教程(https://www.pyimagesearch.com/2017/05/22/face-alignment-with-opencv-and-python/)学习有关人脸对齐的更多信息,然后将其应用于自己的年龄预测程序中。

    性别预测呢?

    我特意选择不在本教程中介绍性别预测。

    使用计算机视觉和深度学习来识别一个人的性别似乎是一个有趣的分类问题,但实际上这是一个道德问题。

    某人在视觉上看上去怎样,穿着什么或如何表现,这些都并不意味着他们可能是某种(或其他)性别。

    试图将性别划分为两类的软件只会把我们束缚在对于性别的过时观念里。因此,我鼓励您尽可能不要在自己的程序中使用性别识别。

    如果必须进行性别识别,请确保对自己负责,并确保您不去创建使他人遵循性别偏见的应用程序(例如根据感知到的性别去定义用户体验)。

    性别识别几乎没有价值,而且它引起的问题比它解决的问题还要多。请尽可能避免它。

    总结

    在本教程中,您学习了如何使用OpenCV通过深度学习进行年龄识别。

    为此,我们利用了Levi和Hassner在2015年出版的《使用卷积神经网络进行年龄和性别分类》中的预训练模型。该模型使我们能够以相当高的准确度去预测八个不同的年龄段;但是,我们必须认识到年龄预测是一个很有挑战性的问题。

    有很多因素可以决定一个人的视觉年龄,包括他们的生活方式,工作,吸烟习惯,最重要的是基因。其次,请记住,人们试图掩饰自己的年龄——如果人类准确地预测某人的年龄有困难的话,那么机器学习模型同样会有困难。

    因此,您必须根据感知年龄(而非实际年龄)去评估所有的年龄预测结果。在您自己的计算机视觉项目中进行年龄识别时,请记住这一点。

    希望您喜欢本教程!

    英文原文:https://www.pyimagesearch.com/2020/04/13/opencv-age-detection-with-deep-learning/来源:python程序员  译者:桃夭

    展开全文
  • 结果表明齿状和无牙在下颌管长度(p = 0.030),牙槽al的距离(p <0.001)和颊皮质骨的距离(p <0.001)之间存在显着差异,其中齿状值明显更高耐心。 至于性别,女性的神经丛和牙槽骨c之间的距离(p &...
  • 年龄

    千次阅读 2007-11-04 12:12:00
    我们每个人都知道自已的"年龄"? 呵呵,读读。每个人从出生时起到计算时为止所经历的时间,通常用年岁来表示。各种人口现象,如生育、死亡、结婚、迁移等等,常常同每个人的年龄密切有关。因此正确计算年龄有重要...

    我们每个人都知道自已的"年龄"? 呵呵,读读。每个人从出生时起到计算时为止所经历的时间,通常用年岁来表示。各种人口现象,如生育、死亡、结婚、迁移等等,常常同每个人的年龄密切有关。因此正确计算年龄有重要意义。年龄的计算方法有以下几种:
        (1)确切年龄。指从出生之日起到计算之日所经历过的确切日数。实际生活中,除对不满一周岁的婴儿,尤其是不满一个月的新生儿按月、日计算年龄外,一般不按日计算确切年龄。
        (2)周岁年龄。指从出生时起到计算时为止共经历的整年数,或者说经历过的生日数。例如,一个已经过了第20个生日,但尚未过第21个生日的人是20周岁的人。周岁年龄是人口统计最常用的年龄计算方法。
        (3)虚岁年龄。出生后就算1岁,这是我国人民在习惯上常用的年龄计算方法。以后每过一次新年便增加一岁。虚岁一般比周岁大1—2岁。
    l 平均年龄
        根据各年龄组人数或比重所计算的、反映某一人群的代表性年龄水平的指标。平均年龄的数值取决于该人群最高年龄的水平和各年龄组人数的比重,通常以算术平均数公式计算,即:
        平均年龄:(各年龄组的组中值×各年龄组人数)之和/人口总数  
        计算时,必须取各年龄组的组中值。在以五岁为年龄组距时,应将各年龄组的下限值,如0-4岁组的0,5—9岁组的5,等等,加2.5岁,即0—4岁组应取2.5岁,5—9岁组应取7.5岁,等等。在以一岁为年龄组距时,应将各年龄组的数字,如0岁、1岁,等等,加0.5岁,即0岁组应取0.5岁,1岁组应取 1.5岁,等等。实际计算时,为简便起见,可先用各年龄组的下限值(如0—4岁组的0,5—9岁组的5,等等;或0岁组的0,1岁组的1,等等)计算,然后将初步计算结果统一加上2.5岁或0.5岁。
    l 年龄中位数
        年龄是一种连续性的数量标志。将全体人口按年龄大小排列,位于中间的那个人的年龄。也称为中位年龄。可用来代表整个人口的年龄水平。计算公式为:
        年龄中位数=中位数组的年龄下限值+(人口总数的一半—中位数组之前各组人数累计)/中位数组的人口数×组距
        在一岁一组时,组距=1;在五岁一组时,组距=5;余类推。
    l 年龄构成
        各年龄组人口在全体人口中所占的比重。通常以百分数表示。人口发展的类型和速度,劳动年龄人口和被抚养人口的比例等,都取决于人口的年龄构成。研究人口年龄构成是人口统计的基本任务。
        可以用一岁、五岁或其他特定的年龄组距,表示人口年龄构成。其中,一岁年龄组距是最基本的。按其他年龄组距分组计算的年龄构成,均可从一岁年龄组距合并而成。严格意义的年龄构成只指各年龄组人口的相对比例(百分比)。不过有时有人把按年龄分组的人数也一并称为人口年龄构成。年龄构成常与性别构成结合使用,称为性别年龄构成。一般是把各年龄组的男性(或女性)人数与人口总数(而非男性或女性总数)相比。通过年龄构成可说明同一时间不同人口或同一人口在不同时间的特征或差异,表明人口发展类型和趋势。
    l 年龄的别称
        而立之年——30岁
        不惑之年--40岁
        知天命之年——50岁
        花甲之年——60岁
        古稀之年——70岁
        杖朝之年——80岁
        期颐之年——100岁
        花甲重开之年——120岁
        老年人
        达到或超过老年年龄的人。确定老年的年龄界限是统计老年人口的前提条件。男女老年年龄的界限,各国规定不完全相同,如有的国家规定,男性为60岁及以上或65岁及以上,女性为55岁及以上或60岁及以上。
        近数十年来,随着社会经济的发展、科学技术的进步、医疗卫生条件的改善、生活水平的提高以及平均预期寿命和劳动年龄的延长,老年的年龄界限已比过去有所提高。目前国际通用的老年年龄界限为60岁及以上或65岁及以上。
         人口老龄化
        在总人口中,老年人口数量增加和比例日益上升,使人口年龄结构随之发生变化的现象。
        促使人口老龄化的直接原因是生育率和死亡率降低,主要是生育率降低。随着时间的推移,生育率逐渐降低,每年儿童与少年在总人口中的比重陆续下降,相应地,成年人和老年人比重逐渐上升,平均年龄也不断提高,整个人口年龄结构便日趋老龄化。
        应该区别老年型人口和人口老龄化。前者指人口中老年人口比重超过在总人口中的一定界限状态,后者指人口年龄构成向老年型人口转变过程。
        每个人随着时间的推移,年龄总会越来越大,即不断老化。整个人口只有在自然增长率不断下降时才会出现老龄化。
        年龄构成类型
        根据反映年龄构成的一定指标,按照一定的标准,将人口群体区分为不同的类型。通常划分成三种人口年龄构成类型:老年型人口;成年型人口(中间型人口);年轻型人口。
     

    详细计算你的年龄

    src="http://www.okayle.com/java/time/26.htm" width="550" height="410">
    展开全文
  • Access数据库常用函数如图所示,可根据实际计算...例如:SELECT用户 ID,年龄,IIF(年龄<=20,"20岁及其以下",IIF(年龄<=30,"21-30岁",IIF(年龄<=40,"31-40岁","40岁以上"))) AS年龄分组FROM用户明细;2、CHO...
  • 学研究产生大量的数据,这些数据具有高维、小样本、高噪声等复杂特征。如何从复杂的代谢学数据中提取出有价值的信息,筛选出潜在的生物标志物成为近年来代谢学研究的热点和难点。据此,本文针对目前代谢学...
  • 【生信】基因学中的统计学应用
  • 对于包含整数的字段,例如:某种类型的设备数量、总检查次数或按年龄组,软件会计算它们的 AMOUNT。 对于ESAK、DAP等平均值,软件根据每个年龄段的检查次数计算WEIGHTED AVERAGE。 对于最大值或最小值,软件实际上...
  • 1.离散的优势:(1)离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;(2)逻辑回归属于广义线性模型,表达能力...
  • 须,一般代表四分位 1.5 倍以内的数据(第 1 和第 3 个四分位数之间的差)。“须”也可用来显示数据内的最高和最低点。 什么情况下使用箱形图? 显示一数据的分布情况: 例如:一目了然地理解数据,查看...
  • =Str(Year(Date()))+' 年 '+Str(Month(Date()))+' 月 ' ( 4 )按 " 编号 " 字段的前 4 位分组统计每记录的平均年龄,并将统计结果显示在页脚节区。计算控件命 名为 "tAvg" 。 ( =Avg([tStud]![ 年龄 ]) ) ...
  • 受试者将手其放置在相机大约相同的距离处,以均匀的白色为背景,从手背侧和手掌侧拍摄每只手的图像采集而成的数据集。 数据集包括图片,以及图片相关联的元数据: (1)受试者ID; (2)性别; (3)年龄; (4)...
  • 前言 今天的分享主要是讲下这个 redis,什么是缓存雪崩、穿透和击穿。这三个技术问题是我们平时开发工作中和...布隆过滤器是1970年的一项技术,今也有50年了,之所以能够应用至今,说明这项技术还是挺优秀的,它也是
  • 《医学统计学》

    千次阅读 2021-06-25 10:54:28
    每个组段的起点称下限,终点称上限,上限与下限之差称组距。如表4.2第一组的下限是0,上限是1。第二组的下限是2上限是3,组距都是1。归组以后,该组的变量值用组段的中值代表,称组中值。如第一组的组中值为0.5。表...
  • 微生物分析最佳实践Best practices for analysing microbiomesImpact Factor:34.648https://doi.org/10.1038/...
  • 用户和

    2019-10-06 20:23:06
    /etc/passwd 和 /etc/group 我们对Linux的系统用户和用户进行添加,修改,删除的最终结果就是修改系统用户文件/etc/passwd 和/etc/shadows 以及用户的 /etc/group 和文件/etc/gshadow. /etc/login.defs 和/etc/...
  • 组距式分组;二单项式数组的频数分析;1对年龄按升序排序 2将各组的年龄值输入到工作表中作为组界 3单击插入单击函数选择FREQUENCY 4选择组界区域和数据区域的单元格地址 单击确定 5按下F2+Ctrl+Shift+Enter得到频数...
  • 离中趋势分析:离中趋势分析主要靠全、四分差、平均差、方差(协方差:用来度量两个随机变量关系的统计量)、标准差等统计指标来研究数据的离中趋势。例如,我们想知道两个教学班的语文成绩中,哪个班级内的成绩...
  • SPSS数据分组

    万次阅读 2018-08-24 14:59:31
    数据分组,根据分析目的将数值型数据进行等或非等分组,这个过程也称为数据离散化,一般用于查看分布,入消费分布、收入分布、年龄分布等 在SPSS中主要使用可视分箱来对数据分组操作,首先打开数据,点击转换...
  • 知识强化反省心智 我们先一起来看看下面这个实验,认知科学家们找来了两组志愿者,一是年轻人,一是老年人;两组人的共同点是,他们都是棒球运动的爱好者。 实验人员给他们听了几分钟的棒球比赛的广播,然后要求...
  • 1、次数分配数列是()。(2 分) A.按数量标志分组形成的数列 B....( )(1 分) 正确 错误 60、连续型变量和离散型变量在进行组距式分组时,均可采用相邻组组距重叠的方法确定组限。()(1 分) 正确 错误
  • 例如下面一数据就不太适合用均值来代表 这5个人的年龄均值是:31.2岁 很显然,在这数据中,大部分人的年龄是10几岁的青少年,但是E的年龄是100岁为异常值,用均值来描述他们的年龄是31.2岁,很显然用均值作为...
  • 结果:共有483名妇女入,其中390例在首次手术时纳入了产科瘘(OF)的预后评分和分类。 他们的平均年龄在手术时为35岁,在OF发病时为25岁。 28.6%的瘘管患者为初产妇。 瘘管发病与手术治疗之间的平均持续时间为8...
  • 例如下面一数据就不太适合用均值来代表 这5个人的年龄均值是:31.2岁 很显然,在这数据中,大部分人的年龄是10几岁的青少年,但是E的年龄是100岁为异常值,用均值来描述他们的年龄是31.2岁,很显然用均值作为...
  • 在这种情况下,增加几个对新用户友好的特征(比如年龄、性别等),因为主导模型的老用户不care(影响老用户推荐结果的主要是其过去历史,而非人口属性),加了也是白加。 噢,看似是一个样本不均衡的问题,也不是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,192
精华内容 1,676
关键字:

年龄组距