探索未知的深度网络:Open Set Deep Networks
项目介绍
Open Set Deep Networks 是一个由Abhijit Bendale和Terrance Boult在2016年IEEE计算机视觉与模式识别会议上首次提出的开源软件包。这个项目的核心在于解决深度学习中对于未知类别的识别问题,提供了一种新的解决方案——OpenMax。
项目技术分析
该项目分为两个主要部分:
-
LibMR:这是一个基于极限值理论的Weibull分布拟合库,用于Meta-Recognition(元识别)任务。它提供了与其他流行软件包不同的Weibull拟合方法,并附有教程解释其差异。
-
OpenMax:这部分代码是为了实现"开放集深度网络"论文中的算法,即通过LibMR进行Weibull拟合,以计算出OpenMax概率。OpenMax从预计算的Mean Activation Vectors和Softmax概率中获取数据,这些数据来自Caffe架构下的图像处理结果。
项目及技术应用场景
Open Set Deep Networks主要用于那些可能遇到未知类别的机器学习和计算机视觉场景,例如:
- 图像分类:除了已知类别外,能识别并标记出可能是未知的新类别。
- 安全监控:当系统需要在大量已知和可能未知的行为中识别异常时。
- 自动驾驶:探测到未训练过的道路条件或对象。
项目特点
- 创新性: 首次提出应对深度学习模型对未知类别的挑战。
- 开放源码: 全部代码免费提供,允许学术研究和工业应用。
- 易用性: 提供了详细的编译和使用指南,以及预处理特征提取工具。
- 灵活性: 可与其他深度学习框架如Caffe集成,以获取网络层的输出信息。
- 实证验证: 经过 Fooling Images 数据集等基准测试,证明了其在处理未知输入上的有效性。
使用步骤
- 编译LibMR:执行
libMR/compile.sh脚本完成编译。 - 预计算特征:使用Caffe预训练模型提取ILSVRC 2012数据集的特征。
- 计算 MAV 和距离分布:利用MAV_Compute.py和compute_distances.py计算每个类别的 MAV 和距离分布。
- 应用OpenMax:运行
compute_openmax.py以计算OpenMax概率。
引用与贡献
如果你使用了该开源项目,请引用相关的学术论文。同时,欢迎开发者参与贡献,完善和扩展这个项目。
这个项目为深度学习的边界拓展打开了新的可能,让我们一起探索那些深度网络尚未触及的领域。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



