解析C++版OpenCV里的机器学习
使用openCV的Knn
定义
在人工智能中,更确切地说在机器学习中,k最近邻方法是一种有监督的学习方法。在这个框架中,我们有一个由N个“输入-输出”对组成的训练数据库。为了估计与新输入x 相关联的输出,k最近邻方法包括根据要定义的距离(以相同的方式)考虑k个训练样本,其输入最接近新输入x。由于此算法基于距离,因此归一化可以提高其准确性。
方法
因此,要使用KNN方法进行分类,我们必须首先声明训练样本,或者可以说输入数据。
在声明了0和1矩阵之后,我们必须使用函数“RNG”将它们填充为随机值。
现在我们需要将两个类连接起来,以便进行学习。
训练
要进行训练,你必须首先使用以下代码行创建模型:
现在,我们将进行遍历整个图像的循环(我们选择的平面为500x500像素,以绘制不同类别的区域,当然也将点放置在它们的位置),然后学习模型的输出对于第一类将为0,对于第二类将为1。通过查找(或者可以说通过计算距离),我们用定义该像素属于此类的颜色填充图像的每个像素,这样就可以使边框可视化。因此,要进行训练,你必须首先使用以下代码行创建模型:
因此,你可以看到我们具有find_nearest函数,该函数计算入口点与其他点之间的距离以查找邻居,然后该函数为第一个类返回0或为第二个返回1。最后,我们使用了条件块if,为每个类赋予特定的颜色。因此,通过执行这些步骤,我们进行了学习,找到了两个类,并且我们当然划定了边界,如图:
现在,如果我们想展示用于学习的样本,我们只需要把每个要点放在适当的位置即可,这样我们就可以了解学习是否做得很好。
这是样本表示后的输出图像:
可以看出,这两个类的界限是明确的,有一些点没有很好地分类,但总的来说,学习效果不错。
郑重声明:文章仅代表原作者观点,不代表本站立场;如有侵权、违规,可直接反馈本站,我们将会作修改或删除处理。
相关阅读
猜你喜欢
-
扫地机器人品牌哇力完成数千万元A轮融资
2021-05-26 -
用于屋顶太阳能的无水便携式清洁机器人
2021-05-26 -
工业机器人操作机坐标形式分类
2021-05-25 -
机器人运动自由度与运动精度
2021-05-24 -
哈工智能押注工业机器人能否扭转业绩颓势
2021-05-24 -
深兰自动机器学习论文入选 KDD2021论文录取名单!
2021-05-21 -
KDD2021论文录取结果出炉,深兰自动机器学习论文被接收!
2021-05-21 -
机器学习:如何编译OpenCV以包括CUDA GPU支持?
2021-05-21 -
机器人如何进行运动规划
2021-05-20 -
机器人感知系统是如何工作的?
2021-05-19 -
如何通过Python+OpenCV实现姿态估计?
2021-05-19 -
简析水下机器人的应用场景
2021-05-18