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) )
相关推荐
棱镜研途16 分钟前
科研快报 |从特斯拉到科沃斯:具身智能让机器人成真!
人工智能·深度学习·目标检测·机器学习·计算机视觉·机器人·智能控制
无能者狂怒18 分钟前
DETR(DEtection TRansformer)——基于Transformer的目标检测范式革命与演进
人工智能·深度学习·yolo·目标检测·计算机视觉·transformer
天呐草莓19 分钟前
计算机视觉学习路线
人工智能·学习·计算机视觉
HaiLang_IT24 分钟前
2026 年计算机视觉方向选题方向及题目推荐(含图像分类与识别、目标检测与跟踪、图像分割方向)
目标检测·计算机视觉·分类
fie888926 分钟前
在图像增强的领域中,使用梯度、对比度、信息熵、亮度进行图像质量评价
图像处理·人工智能·计算机视觉
V1ncent_xuan12 小时前
坐标转化Halcon&Opencv
人工智能·opencv·计算机视觉
电商API_1800790524714 小时前
深度解析以图搜索商品API:技术原理、接口设计与实践优化
人工智能·计算机视觉·目标跟踪
CoovallyAIHub15 小时前
纯视觉的终结?顶会趋势:不会联觉(多模态)的CV不是好AI
深度学习·算法·计算机视觉
CoovallyAIHub15 小时前
一文读懂大语言模型家族:LLM、MLLM、LMM、VLM核心概念全解析
深度学习·算法·计算机视觉
Keep_Trying_Go16 小时前
文生图算法C4Synth: Cross-Caption Cycle-Consistent Text-to-Image Synthesis详解
人工智能·pytorch·深度学习·计算机视觉·文生图