python计算机视觉——第八章 图像内容分类

本章介绍图像分类和图像内容分类算法。

8.1 K邻近分类法(KNN)

KNN(K-Nearest Neighbor ,K邻近分类法),把要分类的对象(例如一个特征向量)与训练集中已知类标记的所有对象进行对比,并由k近邻对指派到哪个类进行投票。这种方法通常分类效

果较好,但是也有很多弊端:与K-means 聚类算法一样,需要预先设定k 值,k 值的选择会影响分类的性能;此外,这种方法要求将整个训练集存储起来,如果训练集非常大,搜索起来就非常慢。

将定义的类对象添加到名为knn.py 的文件里:

复制代码
class KnnClassifier(object):
    def __init__(self,labels,samples):
        """ 使用训练数据初始化分类器"""
        self.labels = labels
        self.samples = samples

    def classify(self,point,k=3):
        """ 在训练数据上采用k 近邻分类,并返回标记"""
        # 计算所有训练数据点的距离
        dist = array([L2dist(point,s) for s in self.samples])
        # 对它们进行排序
        ndx = dist.argsort()
        # 用字典存储k 近邻
        votes = {}
        for i in range(k):
            label = self.labels[ndx[i]]
            votes.setdefault(label,0)
            votes[label] += 1

        return max(votes)
    
    def L2dist(p1,p2):
        return sqrt( sum( (p1-p2)**2) )
相关推荐
TEC_INO1 小时前
Linux44:opencv在H264码流中添加LOGO
人工智能·opencv·计算机视觉
AI浩1 小时前
Hybrid-SORT:弱线索对于在线多目标跟踪的重要性
人工智能·计算机视觉·目标跟踪
V搜xhliang02462 小时前
多模态数据采集与标注
人工智能·目标检测·计算机视觉·知识图谱
Keep_Trying_Go2 小时前
基于GAN的文生图算法详解(Text to Image Generation with Semantic-Spatial Aware GAN)
人工智能·pytorch·神经网络·生成对抗网络·计算机视觉
CoovallyAIHub3 小时前
PaveSync:跨国5.2万张图像路面病害基准,7款模型横评(YOLOv8-v12+Faster R-CNN+DETR)
深度学习·算法·计算机视觉
AI浩3 小时前
使用模糊图像进行通用相机校准
人工智能·数码相机·计算机视觉
H Journey4 小时前
opencv中,把图片变成灰度图有什么用
人工智能·opencv·计算机视觉
格林威4 小时前
工业相机图像高速存储(C#版):直接IO(Direct I/O)绕过系统缓存,附堡盟相机实战代码!
开发语言·人工智能·数码相机·计算机视觉·缓存·c#·视觉检测
格林威4 小时前
工业相机图像高速存储(C#版):直接IO(Direct I/O)方法,附Basler相机实战代码!
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
码农三叔4 小时前
(9-1)多模态融合理论与方法:低层融合
人工智能·机器学习·计算机视觉·机器人