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) )
相关推荐
ZPC82101 天前
fanuc 机器人通过PR寄存器实现轨迹控制
人工智能·算法·计算机视觉·机器人
AI人工智能+1 天前
文档抽取系统结合OCR技术与大语言模型,有效解决档案数字化与知识化利用之间的矛盾
人工智能·计算机视觉·ocr·文档抽取
深度学习lover1 天前
<数据集>yolo 焊接缺陷识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·焊接缺陷检测
军军君011 天前
【人工智能/AI】项目实战二:AI视频生成产品汇总(非完全)
图像处理·人工智能·计算机视觉·ai作画·视觉检测·文心一言
一休哥※1 天前
YOLOv11改进系列 | 引入EMO ICCV2023的C3k2_iRMB模块,轻量注意力残差混合块增强C3k2,多尺度分割更稳更准
深度学习·yolo·计算机视觉
森诺Alyson1 天前
前沿技术借鉴研讨-2026.4.16(视觉语言模型/医学影像文本多模态对齐)
论文阅读·人工智能·经验分享·计算机视觉·语言模型
jay神1 天前
鸟类识别数据集 - CUB_200
人工智能·深度学习·目标检测·计算机视觉·目标跟踪·毕业设计
yong99901 天前
基于直方图优化的图像去雾技术MATLAB实现
人工智能·计算机视觉·matlab
QQ676580081 天前
智慧工地物料堆积识别 工地钢筋木材图像识别 工地砖块目标检测 建筑物大理石图像识别 建筑物工地材料识别 物料堆积识别10349期
人工智能·目标检测·计算机视觉·工地物料堆积·工地钢筋木材图像识别·工地砖块目标检测·建筑物大理石图像
佳木逢钺1 天前
Kalibr 完全指南:从原理推导到ROS实战,掌握相机-IMU高精度标定
人工智能·计算机视觉·ros·无人机