相机标定(三) —— 畸变校正

一、前言

根据针孔模型,物体和成像之间参数会满足相似三角形的关系。但现实中会存在装配误差和透视失真等原因,导致这种关系无法成立,使理想成像与实际成像存在误差,这种误差即称为畸变。
畸变分为径向畸变,切向畸变和薄棱镜畸变。

二、畸变

2.1 径向畸变

径向畸变字面意思是图像坐标产生径向位置的误差,是由镜头形状缺陷造成的。
径向畸变效果可以分为枕型畸变、桶形畸变,示意图如下所示。

根据opencv给出的r=0处的泰勒展开公式:
在这里插入图片描述
其中,Xdr,Ydr为畸变后像素坐标,x,y为理想坐标,k1,k2,k3为径向畸变参数。

2.2 切向畸变

切向畸变一般是由透镜和芯片的安装位置误差引起的,导致透镜和成像平面不平行。
在这里插入图片描述
公式如下:
在这里插入图片描述
其中Xdt,Ydt为畸变后像素坐标,x,y为理想坐标,p1,p2为切向畸变参数。

2.3 薄棱镜畸变

是由镜头设计缺陷和加工误差导致的,高价位镜头可以忽略。
在这里插入图片描述
其中s1,s2为畸变参数

三、校正

上述公式均为由理想位置求畸变坐标,但实际情况是我们已知畸变位置,需要通过以上公式进行反推,求解k1,k2,k3,p1,p2。
将以上公式相加得到最终公式,其中在实际应用中只需考虑前两阶参数。

参考文章:
相机标定的来龙去脉(详解标定原理、畸变矫正原理、使用经验)

Isolation Forest是一种异常检测算法,可用于识别数据集中的异常值。Sklearn是一个Python机器学习库,提供了Isolation Forest算法的实现。 Isolation Forest基于以下两个概念来检测异常值:孤立实例和孤立树。孤立实例是数据集中的少数异常点,而孤立树是通过随机选择和分割特征来建立的二叉树。算法通过计算数据实例在树中的深度来评估其异常程度。异常点被认为是通过较少的路径被孤立,而正常点通常需要更多的路径来被孤立。 使用sklearn库中的Isolation Forest算法,我们可以按照以下步骤来进行异常检测。 首先,导入必要的库和数据集。使用sklearn.ensemble模块中的IsolationForest类来创建模型。 ``` import numpy as np from sklearn.ensemble import IsolationForest # 创建模型 model = IsolationForest(n_estimators=100, contamination=0.05, random_state=42) ``` 然后,我们可以使用模型的fit()方法来训练 Isolation Forest模型。 ``` # 训练模型 model.fit(data) ``` 在训练完成后,我们可以使用predict()方法来预测数据中的异常值。预测结果是-1表示异常值,1表示正常值。 ``` # 预测异常值 predictions = model.predict(data) ``` 最后,我们可以根据预测结果来标记和分析数据中的异常值。 需要注意的是,在使用Isolation Forest算法时,需要调整一些重要参数。例如,n_estimators参数表示建立孤立树的数量,contamination参数表示数据集中异常值的比例,我们可能需要根据实际情况进行调整。 总的来说,通过使用sklearn中的Isolation Forest算法,我们可以简单方便地进行异常检测,对于发现数据集中的异常值具有较好的效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值