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) )
相关推荐
AI棒棒牛4 小时前
YOLO26 改进:融合 DCS 的 R_PAMMD 到 ROI/Neck 特征,构建对象级原型分布对齐检测器!
人工智能·目标检测·计算机视觉·yolo26
向哆哆12 小时前
外墙裂缝目标检测数据集:6,000+张图像 | 目标检测
人工智能·目标检测·计算机视觉
拜小白13 小时前
【论文解读】HorizonNet:用一维表示 + 全景拉伸增强来学习房间布局
计算机视觉
通信大模型13 小时前
中国科学 信息科学 | TokenCom: 面向多模态和多任务Token通信的视觉-语言模型
人工智能·计算机视觉·语言模型
LeeZhao@13 小时前
【具身智能】VLA-DM0.5:让机器人真正理解世界
人工智能·计算机视觉·机器人·agi
正经人_x14 小时前
学习日记59:PAVL
人工智能·学习·计算机视觉
拜小白15 小时前
DuLa-Net vs HorizonNet:复杂房型对决
计算机视觉
AI浩15 小时前
面向视觉预训练的对象级自蒸馏
人工智能·计算机视觉
闭包不眠15 小时前
网页转PDF字体出错不报错,我先看文件大小
图像处理·人工智能·计算机视觉·pdf
陈嘿萌15 小时前
CVPR 2026 | 上交&复旦&清华 3M-TI:让 RGB 成为热成像超分助手,手机也能看清细节!
人工智能·计算机视觉·智能手机·学术研究与理论基础