机器学习中的分类算法:K近邻与朴素贝叶斯
1. K近邻算法在面部特征检测中的应用
1.1 面部特征提取
首先,我们需要对图像进行特征提取。以下是实现面部特征提取的代码:
# lib/face.rb
class Face
include OpenCV
MIN_HESSIAN = 600
attr_reader :filepath
def initialize(filepath)
@filepath = filepath
end
def descriptors
@descriptors ||= features.last
end
def keypoints
@keypoints ||= features.first
end
private
def features
image = CvMat.load(@filepath, CV_LOAD_IMAGE_GRAYSCALE)
param = CvSURFParams.new(MIN_HESSIAN)
@keypoints, @descriptors = image.extract_surf(param)
end
end
在这段代码中, MIN_HESSIAN 是一个任意设定的数值,建议取值在 400 到 800 之间。随着 MIN_HESSIAN 值的增加,SURF 算法检测到的特征数量会减少,但这些特征会更重要。我们从每个面部图像中提取 64 维的特征。
K近邻与朴素贝叶斯分类算法解析
超级会员免费看
订阅专栏 解锁全文
2078

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



