OpenCV神经网络与曲线滤镜:从基础到应用
1. 神经网络在OpenCV中的应用
在计算机视觉领域,神经网络发挥着至关重要的作用。我们以一个具体的例子来了解其应用,即人脸检测与分类。
1.1 人脸检测与ROI选择
首先进行人脸检测,并准确选择感兴趣区域(ROI)。在这个例子中,人脸被精确检测出来,ROI被扩展为包含颈部的方形区域,对于年龄和性别分类来说,这个区域可能是非常重要的。
1.2 分类示例
以Joseph Howse的照片为例,实际情况是他为男性,拍照时大约35.8岁。人类能很有把握地判断他是男性,但对其年龄的估计差异较大。性别分类的深度神经网络(DNN)以100%的置信度判断他为男性,年龄分类的DNN以96.6%的置信度判断他处于25 - 32岁的年龄段。虽然可以取这个范围的中间值28.5岁,得出预测误差为 -7.3岁(占真实年龄的 -20.4%),但这种评估方式有些牵强。因为这个DNN是年龄分类器,不是连续年龄值的预测器,且其年龄类别是不连续的范围,“25 - 32”之后是“38 - 43”,模型在Joseph Howse的真实年龄附近存在一个区间,但至少选择了与该区间相邻的两个类别之一。
1.3 神经网络的学习与应用总结
我们学习了人工神经网络(ANNs)的结构,以及如何根据应用需求设计网络拓扑。重点关注了OpenCV对多层感知器(MLP)ANNs的实现,以及OpenCV对其他框架训练的各种DNN的支持。
将神经网络应用到了实际问题中,包括手写数字识别、目标检测与分类,以及实时的人脸检测、年龄分类和性别分类。即使在这些入门级的演示中,神经网络在通用性、准确性和速度
超级会员免费看
订阅专栏 解锁全文
745

被折叠的 条评论
为什么被折叠?



