zoukankan      html  css  js  c++  java
  • 一种简化的线扫相机单维度标定法

    线扫相机精度高、速度快、抗干扰能力强,适用于连续性产品的在线检测。针对产品的测量,要获得产品边界的精确坐标,需对检测目标进行图像坐标系u-v到世界坐标系x-y-z的转化,如下图所示:

     

    图 1 相机成像分布示意图

    目前相机的标定主要有Tsai标定法和张氏标定法,这两种方法需要拍摄若干角度的标定板图像,然后按照转换矩阵求相机的内参和外参。而线扫相机成像时需要拍摄物有相对运动,高精度的标定板很难保证运动速度与采集速度的统一,标定板图像采集很困难,且大多数的工业检测项目,需要到现场再安装相机,且检测面并不一定是一个平面,根本无法在现场进行标定。

    目前对线扫相机的标定,主要有构建标定面法和虚拟靶标方法,均需要通过两个维度的空间坐标来确定标定参数。其实,根据实际项目的检测需求和线扫相机的特点,我们更关心的是一个维度(X方向)的尺寸,不需要对空间点进行求取,基于此可以大大简化标定方法。

    本文主要分以下几个部分来阐述:1、需要准备的工具; 2、标定流程及测试数据;3、代码实现

    1、         需要准备的工具

    标定之前,我们需要准备:菲林片和自己开发的标定软件。其中菲林片就是我们自己定制的标定工具,如下图所示:黑白相间且等距(10mm,工艺误差在0.04mm以内)

       这种设计,也是多次改进后的版本,可能有些人会比较疑惑为什么黑白条纹不是完全平行的,而是上下跳跃的。这么设计主要是为了便于现场调整相机的水平度,如下图所示:只有相机的采集点调整在红色线的位置时,才能够完整的拍出黑白相间的条纹,否则会有采集不到的条纹。

     

      调整好后采集效果如下图所示:

    2、         标定流程及测试数据

    测试数据如下:

    1)标尺的各个单位对应的像素数(10mm)

     

    2)中间数据的线性拟合

    3)所有数据的非线性拟合

     

    4)实际产品测试

                               产品类型1

    产品类型2

    位置

    方差

    方差

    宽度(pixel)

    2229.81

    2235.4

    2231.13

    94.4181

    96.9068

    97.0978

    平均分辨率

    0.07462

    0.07462

    0.07462

    0.07462

    0.07462

    0.07462

    标定前(mm)

    166.396

    166.812

    166.494

    0.2175

    7.046

    7.231

    7.246

    0.1114

    标定后(mm)

    166.274

    166.29

    166.529

    0.0289

    7.077

    7.206

    7.25

    0.0367

    3、         代码实现

    整体原理比较简单,核心算法就是最小二乘法的实现,halcon版本代码如下:

     

  • 相关阅读:
    Java实现网易163邮箱好友通讯录的解析功能(带源码)
    wordpress优化第四招 修改评论模板,留住客户,让评论在新的页面打开。
    wordpress优化 使用SAE提供的jquery.js替代wordpress原生的
    出售wordpress的淘宝客主题一套
    做了一个可以生成在线mp3 flash播放器的网站
    wordpress优化第三招 开启gzip减少网页流量
    20多个常用的免费WebService接口
    wordpress优化第一招 压缩css和js减少流量提高博客速度(尤其适用SAE)
    Linux学习笔记10常用操作命令(useradd命令、passwd 命令)
    Linux学习笔记08linux文本处理(cat命令、more命令、head命令、tail命令)
  • 原文地址:https://www.cnblogs.com/baiyy-daheng/p/13130180.html
Copyright © 2011-2022 走看看