如何在matlab中结合两个分类模型?

时间:2016-02-27 16:23:29

标签: matlab computer-vision classification face-detection matlab-cvst

我正在尝试使用Matlab内置的中提琴面部检测来检测面部。无论如何我可以将两个分类模型如“FrontalFaceCART”和“ProfileFace”合二为一,以获得更好的结果吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

您无法组合模型。这在任何分类任务中都是无意义的,因为每个分类器都是不同的(工作方式不同,即不同的算法背后,也许也有不同的训练)。

根据分类模型帮助(可以找到here),您的两个分类器的工作方式如下:

  • FrontalFaceCART是一个由弱分类器组成的模型,基于分类和回归树分析
  • ProfileFace由弱分类器组成,基于决策树桩

在提供的链接中可以找到更多信息,但您可以很容易地看到它们的内在行为有很大差异,因此您无法将它们混合或组合它们。
它(在机器学习中)将支持向量机与K-最近邻点混合:第一个使用分离超平面,而后者仅基于距离。

然而,你可以并行训练几个模型(例如独立)并选择最适合你的模型(例如更小的错误率/更高的准确度):所以你基本上创建了许多不同的分类器,给他们相同的训练集,评估每个准确度(和/或其他参数)并选择最佳模型。

答案 1 :(得分:0)

一种选择是制作分层分类器。因此,在第一步中,您使用正面分类器(假设大多数图片是正面)。如果分类器失败,则尝试使用配置文件分类器。

我用面部数据集做到了这一点,它提高了我的整体分类准确性。此外,如果您有一些先验信息,您可以使用它。在我的情况下,面部通常位于图片的中间部分。

为了进一步提高性能,不使用你正在使用的MATLAB中的两个分类器,你需要改变你的技术(可能还有你的编程语言)。这是迄今为止最好的方法:Facenet