照片识别年龄(照片识别年龄在线)
各位老铁们,大家好,今天由我来为大家分享照片识别年龄,以及照片识别年龄在线的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
在图像分类任务中,卷积神经网络(CNN)是非常强大的神经网络架构。然而,鲜为人知的是,它们同样能够执行图像回归任务。
图像分类和图像回归任务之间的基本区别在于分类任务中的目标变量(我们试图预测的东西)不是连续的,而回归任务中的目标变量是连续的。例如,如果我们需要在不同的狗和猫品种之间进行分类,它将属于分类任务的范围。然而,如果我们需要根据房屋图像来预测房价,这将是一个回归任务。
我在人寿保险行业工作,当今该行业在全球范围内发生的重大变化之一就是简化客户的入职流程。不同的公司正在努力使保险销售过程变得更简单、直观和无麻烦。在这个方向上,深度学习技术对于解决问题非常有用。例如,如果深度学习模型可以预测一个人的年龄、性别、吸烟状况和体重指数(这些是计算给定承保金额的正确保费或拒绝/推迟承保的最关键因素),保险公司可以为客户大大简化保险销售流程,并可能增加销售额。
我们知道,根据人的图像预测性别相对简单,这属于图像分类任务。如果你有兴趣,可以参考下这篇文章。
另一方面,图像回归任务(例如根据图像预测人的年龄)是相对难以完成的任务。处理此任务的更简单方法是通过将不同年龄分组到一个桶中(即创建年龄范围)来使其成为分类任务。然而,就保单销售而言,这并没有解决目的(通常死亡率或发病率因年龄和性别而异)。因此,我尝试创建一个模型来预测该人的确切年龄。
在线工具推荐:Three.jsAI纹理开发包-YOLO合成数据生成器-GLTF/GLB在线编辑-3D模型格式在线转换-可编程3D场景编辑器
处理图像尤其是人物图像的主要问题是,公共领域免费提供的大多数数据源都存在明显的种族偏见。Fastai的杰里米·霍华德(JeremyHoward)在他的一次深度学习课程讲座中谈到了这一点。这些在公共领域提供的图像存在偏见,因为大多数捕获的图像都是白人,如果我们基于这些图像创建任何模型,那么它很可能不会在印度或亚洲血统的图像上表现良好人们。
为了在一定程度上解决这个问题,我精心挑选了三个数据源(均在公共领域可用):
这些数据集是使用0到100岁之间所有年龄段的不同来源/图像创建的,如果我们将这些数据组合在一起,那么严重的种族偏见问题就会在一定程度上得到消除。
由于一些奇怪的原因,我为这个项目工作的KaggleKernel没有成功提交。所以,我把笔记本放到了我的GitHub上。
classAgeModel(nn.Module):\\ndef__init__(self):\\nsuper().__init__()\\nlayers=list(models.resnet34(pretrained=True).children())[:-2]\\nlayers+=[AdaptiveConcatPool2d(),Flatten()]\\nlayers+=[nn.BatchNorm1d(1024,eps=1e-05,momentum=0.1,affine=True,track_running_stats=True)]\\nlayers+=[nn.Dropout(p=0.50)]\\nlayers+=[nn.Linear(1024,512,bias=True),nn.ReLU(inplace=True)]\\nlayers+=[nn.BatchNorm1d(512,eps=1e-05,momentum=0.1,affine=True,track_running_stats=True)]\\nlayers+=[nn.Dropout(p=0.50)]\\nlayers+=[nn.Linear(512,16,bias=True),nn.ReLU(inplace=True)]\\nlayers+=[nn.Linear(16,1)]\\nself.agemodel=nn.Sequential(*layers)\\ndefforward(self,x):\\nreturnself.agemodel(x).squeeze(-1)
在这里,你可以看到,在ResNet34的架构中,在删除处理分类任务的层之后,我们添加了可以处理回归任务的部分。
classL1LossFlat(nn.SmoothL1Loss):\\ndefforward(self,input:Tensor,target:Tensor)->Rank0Tensor:\\nreturnsuper().forward(input.view(-1),target.view(-1))
使用平滑L1损失,其表现优于L1或L2损失。
learn=Learner(data_wiki_small,model,model_dir="/temp/model/",opt_func=opt_func,bn_wd=False,metrics=root_mean_squared_error,\\ncallback_fns=[ShowGraph]).mixup(stack_y=False,alpha=0.2)\\n\\nlearn.loss_func=L1LossFlat()
现在,我们将看到模型的一些预测:
每张照片的第一行文字是真实年龄,第二行是模型预测的年龄
这是我参与过的最长的项目之一,但我必须说我在这个过程中学到了很多东西。其中很少有判别性学习技术、通过重构模型来构建合适模型的方法、图像调整大小技术等。
原文链接:http://www.bimant.com/blog/age-estimation-via-photo/
关于本次照片识别年龄和照片识别年龄在线的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。