视觉应用工程师(面试)

视觉应用工程师(面试)

1.自我介绍、会的技能、项目

2.相机和机械手调试过程

  • 检查硬件,看软件驱动是否链接,
  • 调节相机和镜头保证能够识别这个物料,
  • 看接口和通讯是否正常,如:波特率,数据位,停止位等,
  • 测试引导功能,如机械手自动抓取

3.九点标定的意义

建立相机像素坐标系与机械手物理坐标系之间的精确映射关系

简单说: 转换像素坐标为机械手坐标

4.九点标定和旋转中心过程

  • 选择标定板,选择一个3*3的九点标定板(圆形)
  • 相机拍照: 使用相机拍照标定板,找到这九个圆点的中心点
  • 计算转换矩阵: 用采集到的坐标或机械坐标,通过最小二乘法计算出一个3*3的转换矩阵,也就是让Z轴走九个点
  • 应用转换矩阵: 得到转换矩阵,可以用它将新的图像坐标转换成机械坐标

大白话: 选择合适标定板,机械手抓取物料拍照, 依次走九个点,计算像素值,转换成物理值, 旋转中心就是机械手抓取物料放到相机范围下,旋转机械手五个角度(5-7度), 将这个五个角度像素坐标转换成物理坐标, 使用拟合算法,也就是把这个五个像素值,填到拟合圆工具里面,来得到拟合圆的中心坐标, 最后通过Dx,Dy,Da计算的出偏差

选择一个特征点,在相机下依次旋转5个角度,获取5个位置的特征点像素坐标,记录每个位置的机械手坐标
使用拟合算法,将五个点拟合为一个圆,求出圆心坐标和旋转半径,将圆心坐标转换为机械手坐标中的坐标,计算偏差


  1. 在相机视野内选择一个点
  2. 固定好物料在相机视野范围下
  3. 旋转机械手五个角度(5-7度)获取五个位置
  4. 将这个五个角度的像素坐标转换成物理坐标,使用拟合算法,拟合出圆心坐标和旋转半径
  5. 通过拟合得到圆心坐标,计算出旋转中心的物理坐标
  6. 通过Dx,Dy,Da计算出偏差

5.九点标定和十二点标定的区别

  1. 九点标定使用的是3*3棋盘或标定板,通常以Z轴或均匀分布的方式采集
  2. 十二点标定使用3*4的棋盘或标定分布更密集

主要增加了三个点, 能够计算物料的旋转中心

6.除了九点和十二点还有什么坐标

  1. 超大视野坐标

​ 通过多个相机视野拼成一个大的视野,实现对大范围场景的精确标定

  • 旋转中心坐标

    旋转中心标定就是在相机视野内,内旋转,通过拟合圆,拟合出旋转中心的坐标

  • 三点标定

    • 三点标定是一种简单的标定方式,主要用于二维平面,计算量小,操作也简单,通过三个非共线的点确定相机和机械手之间的坐标

7.RMS 是什么?怎么计算

RMS是像素转物距的一个均方根差值

  • 比如: 真实值:2.0,3.5,4.0,5.5
  • ​ 预测值:2.1,3.6,3.9,5.7
  • ​ 平方差:(2.1-2.0)*(2.1-2.0)=0.01
  • ​ 总值除以数在进行开平方 (平方根)

8.九点标定的意义和原理

意义:就是把像素值转换成机械手的实际距离(物理距离)

原理:基于二维仿射变换,相机图像坐标系和机械手坐标系的位置,求出两者之间的几何变换

9.相机在哪里安装

肯定在机台检测的下方安装,这样定位的的时候好检测

10.机械手抓起来的物料之后的目的(放料)

抓取物料之后,移动到相机位置拍照,计算偏差,把偏差坐标发给plc ,plc引到机械手贴合泡棉到笔记本上

11.放料的精度是多少

放料的精度是0.02mm左右, 最终贴合到±0.15mm左右

12.图像预处理工具,用了哪些算法

  • 图像增强

    • 加减常量
    • 对比度拉伸(调整)
    • 直方图均衡化
  • 图像降噪(滤波处理)

    • 均值滤波:取邻域像素平均值 平滑图像减少噪音 如:椒盐噪音
    • 高斯滤波 : 能够有效抑制高斯噪音,平滑图像 如:使用高斯核对图像进行卷积,能够有效去除图像中的高斯噪音
    • 中值滤波: 通过取邻域像素的中值来代替像素值,使用(高斯和椒盐噪声)
    • 双边滤波: 再去除噪音的同时,能够保留图像的边缘信息,适用于对图像进行平滑处理
  • 图像分割

    • 阈值分割: 根据图像的灰度值和颜色特征,将图像分为前景色和背景色。常见的阈值分割方法包括固定阈值分割、最优阈值分割和自适应阈值分割

      使用自动阈值可以适当滤除一定的边缘干扰

    • 边缘检测: 利用边缘检测算子,如Sobel算子、Prewitt算子、Canny算子、提取图像中的边缘信息。

    • 区域生长:从图像中的一个或多个种子点开始,根据一定的生长规则,将相邻的像素点合并到一个区域中,从而实现图像分割

  • 图像变换

    • 傅里叶变换: 将图像从空间域转换到频域,便于进行频域滤波等操作
    • 几何变换: 包括图像缩放、旋转、翻转等,用于调整图像的大小和方向
    • 色度变换:调整图像的色调、饱和度、亮度等属性

13.Blob斑点工具,参数有哪些,如何筛选

主要用于检测和分析图像中的斑点特征:

  1. SegmentationParams.Mode: 设置图像分割模式,包括固定阈值(HardFixedThreshold)、动态阈值(HardDynamicThreshold)、相对阈值(HardRelativeThreshold)等。
  2. SegmentationParams.Polarity: 设置斑点的极性,包括白底黑点(DarkBlobs)和黑底白底(LightBlobs)
  3. ConnectivityMode:设置连通性,包括已标记(Labeled)、灰度(GreyScale)等。
  4. ConnectivityCleanup:设置连通性清理模式,包括修剪(Prune)、填充(Fill)等
  5. ConnectivityMinPixels:设置最小面积,用于过滤掉过小的斑点
  6. Region:设置检测区域的形状,包括圆形(CogCircle)、椭圆(CogEllipse)、多边形(CogPolygon)等。
  7. RunTimeMeasures:设置测量属性,包括面积(Area)、质心坐标(CenterMassX、CenterMassY)等
  • 阈值模式:选择合适的阈值模式(固定阈值、动态阈值、相对阈值)来分割图像中的斑点和背景。
  • 极性设置:根据斑点的灰度特性,选择白底黑点或黑底白点的极性。
  • 连通性处理:通过设置连通性模式和清理模式,处理斑点的连通性问题
  • 区域设置:指定检测区域,以限制斑点检测的范围。
  • 面积过滤:通过设置最小面积和最大面积,过滤掉不符合要求的斑点
  • 形状筛选:通过设置形状参数,如非环形值,筛选出特定形状的斑点

14.模板匹配效果不好的时候,怎么去优化

参数设置,如果图像有噪音或光照均匀不足,匹配都可能受到影响

  • 优化算法
    • 分块匹配算法:将图像划分为较小的块,并分别对每个块进行模板匹配,可以减少计算量,但可能会导致匹配精度下降。需要合理设置块的大小和重叠量。
    • 快速傅里叶变换(FFT)加速:利用FFT将图像转换到频域,利用卷积定理实现高效的二维卷积,从而在频域中进行模板匹配,可以极大地减少计算量,使得大尺寸图像的匹配成为可能
  • 限定搜索ROI的区域,减少搜索范围,提高匹配速度
  • 调整匹配窗口大小,相似度阈值
  • 降噪处理
  • 增强目标区域特征 如:直方图均衡化,对比度增强,锐化

15.如果现在模板匹配非常大,像素特别高,怎么去解决?

  • 调整曝光时间,可以增加帧率,保证图像质量
  • 降低分辨率,减少数据量,提高帧率
  • 减少处理区域,只处理图像中关键区域

16.卡尺计分方式

  • 对比度:对比度卡尺计分基于灰度差来评估。卡尺搜索灰度值大于设置的第一条边
    • 对比阈值:设定灰度的起始点,只有大于该值的边缘才会被检测到
    • X0: 设定搜索的起始点,从卡尺中心沿搜索方向反方向距离为X0的点开始搜索
    • 实例:当X0设置为160时,会搜索灰度差大于160的第一条边
  • 位置
    • 位置卡尺计分基于卡尺中心到特征的距离来评估。卡尺会从距离卡尺中心为X0的点开始,沿搜索方向搜索第一个符合对比度阈值的特征边
  • PositionNeg
    • PositionNeg卡尺计分基于卡尺框内抓取第一根符合条件的线来评估。卡尺会沿搜索方向在卡尺框内抓取第一根符合条件的线。

总结: 对比度适用于灰度差较大的情况,位置需要用于精确控制搜索起始点的情况, 适用于卡尺框抓取第一根符合条件的线

17.靶面效果不好的时候怎么办

这可能就会是图像处理、模板匹配或者靶材料等方面问题了,

  • 优化图像处理技术
    • 图像去噪
    • 对比度增强
    • 边缘检测
  • 调整模板参数
    • 调整模板尺寸
    • 设置合适匹配窗口大小
    • 调整相似度阈值
  • 限定搜索区域
    • 搜索ROI的区域,可以减少搜索范围,提高匹配速度
  • 优化算法

18.卡尺工具忽略点

是由于噪声或检测误差导致的,一般选取总点数的5%作为忽略点数,忽略点数一般不能超过卡尺数量的1/3

  • 边缘模式: 可以设置查找单个边缘或边缘对
  • 边缘极性: 设置灰度值变换确实,可以从暗到明、从明到暗或任意极致
  • 对比度阈值: 设置边缘检测的对比度阈值,只有对比度大于该值的边缘才会被检测到。

19.用几个相机

检测类或者比较简单的项目,可以说是两个相机,一个相机CT不够

CT可以说是一个小时4000 单个下昂及不够

如果过是引导项目 一般是两个或者三个 ,如果是缺陷检测可以说是2到4个 不同的缺陷类型用不同的光源或者检测的位置略微不同

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23663.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL主从架构

MySQL主从架构 MySQL REPLICATION 在实际生产环境中,如果对数据库的读和写都在一个数据库服务器中操作。无论是在安全性、高可用性,还是高并发等各个方面都是完全不能满足实际需求的,因此,一般来说都是通过主从复制(…

6层高速PCB设计入门第1~10讲

第一讲 课程介绍 无痛入门!6层高速PCB设计!_哔哩哔哩_bilibili 第二讲 逻辑派原理图分析 开发板资料文档:https://wiki.lckfb.com/zh-hans/fpga-ljpi/ 最需要注意的信号就是FPGA与DDR3、HDMI交互的信号,其次是GD32读写TF Card的…

Mesh自组网技术及应用

前言: Mesh自组网随着无线技术发展,在消费领域最近比较有热度。当然应用的场景不限于普通消费领域,在工业、军事领域被也是越来越重要。 一、什么是无线Mesh技术 1.1 无线自组网概念 无线Mesh是一种智能、自组织、多跳、移动、对等、去中心…

Python游戏编程之赛车游戏6-3

1 “敌人”汽车类的创建 在创建玩家汽车类之后,接下来创建“敌人”汽车类。“敌人”汽车类与玩家类一样,也是包含两个方法,一个是__init__(),另一个是move()。 1.1 __init__()方法 “敌人”汽车类的__init__()方法代码如图1所示…

垂类大模型微调(二):使用LLaMA-Factory

上一篇博文和大家一起安装了LLaMA-Factory工具,并下载了大模型在上面进行了简单的加载和推理,今天尝试通过LoRa技术对大模型进行微调; 一、训练集准备 1.1 介绍训练集结构 这里演示对Qwen2.5-0.5B-Instruct-GPTQ-Int4模型进行LoRA微调, 大家可以根据垂类大模型微调(一)…

什么是MySql的主从复制(主从同步)?

主页还有其他面试题总结,有需要的可以去看一下,喜欢的就留个三连再走吧~ 1.什么是MySql的主从复制原理? 主从复制的核心就是二进制binlog(DDL(数据定义语言)语句和DML(数据操纵语言&#xff09…

坐标变换及视图变换和透视变换(相机透视模型)

文章目录 2D transformationScaleReflectionShear(切变)Rotation around originTranslationReverse变换顺序复杂变换的分解 齐次坐标(Homogenous Coordinates)3D transformationScale&TranslationRotation Viewing / Camera t…

文字语音相互转换

目录 1.介绍 2.思路 3.安装python包 3.程序: 4.运行结果 1.介绍 当我们使用一些本地部署的语言模型的时候,往往只能进行文字对话,这一片博客教大家如何实现语音转文字和文字转语音,之后接入ollama的模型就能进行语音对话了。…

Unity Shader 学习13:屏幕后处理 - 使用高斯模糊的Bloom辉光效果

目录 一、基本的后处理流程 - 以将画面转化为灰度图为例 1. C#调用shader 2. Shader实现效果 二、Bloom辉光效果 1. 主要变量 2. Shader效果 (1)提取较亮区域 - pass1 (2)高斯模糊 - pass2&3 (3&#xff…

PING命令TTL解析

在 ping 命令中,TTL(Time to Live,生存时间) 是 IP 数据包的核心字段之一,用于控制数据包在网络中的生命周期。以下是针对 TTL 的简明解析: 1. TTL 的核心作用 防循环机制:TTL 是一个计数器&a…

Linux 第三次脚本作业

源码编译安装httpd 2.4,提供系统服务管理脚本并测试(建议两种方法实现) 一、第一种方法 1、把 httpd-2.4.63.tar.gz 这个安装包上传到你的试验机上 2、 安装编译工具 (俺之前已经装好了) 3、解压httpd包 4、解压后的httpd包的文…

(七)趣学设计模式 之 适配器模式!

目录 一、 啥是适配器模式?二、 为什么要用适配器模式?三、 适配器模式的实现方式1. 类适配器模式(继承插座 👨‍👩‍👧‍👦)2. 对象适配器模式(插座转换器 &#x1f50c…

【NLP】注意力机制

目录 一、认识注意力机制 1.1 常见注意力计算规则 1.2 注意力机制的作用 1.3 注意力机制代码实现 二、注意力机制原理 2.1 attention计算过程 2.2 attention的计算逻辑 2.3 有无attention模型对比 2.3.1 无attention机制的模型 2.3.2 有attention机制的模型 三、Se…

Spring Boot 整合 Druid 并开启监控

文章目录 1. 引言2. 添加依赖3. 配置数据源4. 开启监控功能5. 自定义 Druid 配置(可选)6. 访问监控页面7. 注意事项8. 总结 Druid 是一个由阿里巴巴开源的高性能数据库连接池,它不仅提供了高效的连接管理功能,还自带了强大的监控…

红帽7基于kickstart搭建PXE环境

Kickstart 文件是一种配置文件,用于定义 Linux 系统安装过程中的各种参数,如分区、网络配置、软件包选择等。system-config-kickstart 提供了一个图形界面,方便用户快速生成这些配置文件。 用户可以通过图形界面进行系统安装的详细配置&…

C/C++跳动的爱心

系列文章 序号直达链接1C/C李峋同款跳动的爱心2C/C跳动的爱心3C/C经典爱心4C/C满屏飘字5C/C大雪纷飞6C/C炫酷烟花7C/C黑客帝国同款字母雨8C/C樱花树9C/C奥特曼10C/C精美圣诞树11C/C俄罗斯方块小游戏12C/C贪吃蛇小游戏13C/C孤单又灿烂的神14C/C闪烁的爱心15C/C哆啦A梦16C/C简单…

MongoDB 简介

MongoDB 是一种高性能、开源的 NoSQL 数据库,以其灵活的文档模型和强大的扩展性而闻名。 1.MongoDB 是什么 MongoDB 是一种 NoSQL 数据库,采用 文档模型 存储数据,支持灵活的 JSON 格式文档。它无需预定义表结构,能够动态调整数据…

记录首次安装远古时代所需的运行环境成功npm install --save-dev node-sass

最开始的报错: 最后根据报错一步步 安装所需要的pythong之类的环境,最后终于成功了,得以让我在github上拉的vuehr项目(狗头18年还是20年的远古项目)成功本地运行,最后附上本地运行成功的贴图。如果大家也在…

华为guass在dbever和springboot配置操作

下面记录华为guass在dbever和springboot配置操作,以备忘。 1、安装dbeaver-ce-23.2.0-x86_64-setup.exe和驱动程序 Download | DBeaver Community 2、配置高斯数据库驱动 3、新建数据库连接 4、操作指引 opengauss官方文档 https://docs-opengauss.osinfra.cn/zh…

今日运维之-Mac笔记本python环境问题

1. 问题:MAC升级系统后git报错? Error: Cant create update lock in /usr/local/var/homebrew/locks! Fix permissions by running:sudo chown -R $(whoami) /usr/local/var/homebrew Traceback (most recent call last):11: from /usr/local/Homebrew/…