解析C++版OpenCV里的机器学习
使用openCV的Knn
定义
在人工智能中,更确切地说在机器学习中,k最近邻方法是一种有监督的学习方法。在这个框架中,我们有一个由N个“输入-输出”对组成的训练数据库。为了估计与新输入x 相关联的输出,k最近邻方法包括根据要定义的距离(以相同的方式)考虑k个训练样本,其输入最接近新输入x。由于此算法基于距离,因此归一化可以提高其准确性。
方法
因此,要使用KNN方法进行分类,我们必须首先声明训练样本,或者可以说输入数据。
在声明了0和1矩阵之后,我们必须使用函数“RNG”将它们填充为随机值。
现在我们需要将两个类连接起来,以便进行学习。
训练
要进行训练,你必须首先使用以下代码行创建模型:
现在,我们将进行遍历整个图像的循环(我们选择的平面为500x500像素,以绘制不同类别的区域,当然也将点放置在它们的位置),然后学习模型的输出对于第一类将为0,对于第二类将为1。通过查找(或者可以说通过计算距离),我们用定义该像素属于此类的颜色填充图像的每个像素,这样就可以使边框可视化。因此,要进行训练,你必须首先使用以下代码行创建模型:
因此,你可以看到我们具有find_nearest函数,该函数计算入口点与其他点之间的距离以查找邻居,然后该函数为第一个类返回0或为第二个返回1。最后,我们使用了条件块if,为每个类赋予特定的颜色。因此,通过执行这些步骤,我们进行了学习,找到了两个类,并且我们当然划定了边界,如图:
现在,如果我们想展示用于学习的样本,我们只需要把每个要点放在适当的位置即可,这样我们就可以了解学习是否做得很好。
这是样本表示后的输出图像:
可以看出,这两个类的界限是明确的,有一些点没有很好地分类,但总的来说,学习效果不错。
最新活动更多
-
即日-12.26立即报名>>> 【在线会议】村田用于AR/VR设计开发解决方案
-
1月8日火热报名中>> Allegro助力汽车电气化和底盘解决方案优化在线研讨会
-
即日-1.14火热报名中>> OFweek2025中国智造CIO在线峰会
-
即日-1.16立即报名>>> 【在线会议】ImSym 开启全流程成像仿真时代
-
即日-1.24立即参与>>> 【限时免费】安森美:Treo 平台带来出色的精密模拟
-
2月28日火热报名中>> 【深圳线下】东集技术年终福利——免费试用活动
推荐专题
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论