上位机图像处理和嵌入式模块部署(上位机主要功能)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        目前关于机器视觉方面,相关的软件很多。比如说商业化的halcon、vision pro、vision master,当然也可以用opencv、pytorch自己写软件,这都是可以的。不过因为机器视觉项目部署的时间都比较短,而且对产品的稳定性和性能要求较高,所以如果自己写的话,简简单单使用第三方提供的api,一般是没有办法满足要求的。通常情况下,都需要自己对代码进行优化处理一下,这样才能够达到客户的要求。

        那说了这么多,机器视觉软件一般有哪些功能呢?

1、图像预处理

        图像预处理其实比较好理解,就是拿到图像之后做一些简单的处理。这部分处理之后的结果还是图像,但是输出的结果已经为最终我们的算法处理,做了一个很好的铺垫。比如说滤波、反转、旋转、边缘检测、二值化、膨胀、腐蚀等等,这些都是图像预处理的部分。我们读书的时候,以及市面上看到的大部分图像处理的书,上面讲解的内容其实也主要是这么一部分。

2、摄像头标定

        很多摄像头,如果没有标定的话,获取的图像其实是带有畸变信息的。比如现在很多汽车上面都带有360功能,上面的图像就是根据4个camera图像计算出来的。camera本身为了获得更大的视场角,镜头都是鱼眼镜头,但是这种图像都是发生严重畸变的。所以,一般拿到摄像头之后,我们有必要通过棋盘格对它们进行畸变矫正的处理,这样才能送给后续的算法做进一步处理。

3、光源处理

        好的图像,除了sensor和镜头之外,另外一个很重要的因素就是光源。在市场上可以买到的光源设备,一般就是光源本身和光源控制器。但是如何通过图像质量本身,借助于反馈控制的方法去实时地控制光源,这是很大的一门学问。有了好的图像,算法的编写上面都会轻松不少。

4、条形码、二维码识别

        目前很多物料、设别、仓库的管理都是通过各种图形码来识别的。这里面又是以条形码和二维码最为普遍,所以上位机软件支持条形码和二维码也就不足为奇了。

5、定位功能

        有了前面的图像预处理,一般来说我们就可以通过轮廓查找的方法找到一些潜在的候选项。然后再借助于长宽比、面积、圆度、周长、先验知识等信息,很容易提取出我们想要检查的区域模块。这个时候,如果图像上还有明显的标记点,这个时候就比较容易计算出相关物体的位置信息,也为下一步机械手的参与打下基础。

        当然,上面的方法对于现场的fae来说稍显复杂,模板匹配对于他们来说,或许更加容易接受一点。

6、测量

        测量是图像处理的另外一个重要功能。这里的测量,不仅仅是测量特定物体的大小,还有可能是找到一个物体之后,测量它和某个点的距离、和某条直线的距离、和某个圆的距离等等。当然具体需要哪个功能,还要根据具体情况而定。

        当然要做好测量,一般还要搭配着寻找直线、寻找正方形、寻找圆的功能。

7、质量检测

        质量检测也是机器视觉很重要的一个应用场景。现实的工厂中,大部分的质检都是由人工完成的,但是这种检测效率不高,而且检测的效果完全取决于工人每个人的能力。但是对于机器视觉来说,则不存在这样的问题。

8、分类和识别

        分类和识别是由于计算机深度学习的发展,而引入的新功能。传统的机器视觉,大部分都是基于图像本身进行处理。对于更复杂的场景,特别是需要同时进行定位和分类的场景,深度学习具有天然的优势,这个时候yolov5这一类的算法就显得非常实用了。

9、第三方设备的支持

        图像处理的结果,最重要是要和其他设备进行通信处理的。这里面的设备通信方式有232、485、can、tcp等等,类型则有io设备、plc、机械手、电脑等等。所以对于上位机来说,拿到图像算法的计算结果之后,一般都是要通过结果送出去继续处理的,特别是给机械设备来处理。

10、脚本的应用

        上位机软件的使用者大部分都是fae,或者称之为现场部署工程师。他们不仅仅要处理图像,更多的情况下是软件的部署和应用。所以像halcon这一类的软件,还提供了大量的范例、以及脚本编辑的功能。他们对算法的理解或许不是那么充分,但是他们对于不同算法应该应用到什么场景,这方面积累了大量的经验,具有较明显的优势。

11、最新的发展趋势

        传统的图像处理还是以camera为主。不过随着最新的传感器采集设备引入,比如说3d camera、lidar、多线lidar设备,新的算法也可以同时参与进来,这样应用的场景更加丰富,也可以更多的参与到工业生产当中去。

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

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

相关文章

安装配置NMon

NMon(Nigel’s Monitor)是一款由IBM公司提供的免费性能监控工具,专门用于监控AIX系统和Linux系统的资源使用情况 下载软件 wget http://sourceforge.net/projects/nmon/files/nmon16p_binaries.tar.gz 如果报错的话,安装提示添加…

Java实现新能源电池回收系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…

线程池工作过程

线程池工作流程 线程池的处理流程总结 线程池的处理流程 当提交一个新任务到线程池时,线程池的处理流程如下: 1、线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执…

1Panel使用GMSSL+Openresty实现国密/RSA单向自适应

本文 首发于 Anyeの小站,转载请取得作者同意。 前言 国密算法是国家商用密码算法的简称。自2012年以来,国家密码管理局以《中华人民共和国密码行业标准》的方式,陆续公布了SM2/SM3/SM4等密码算法标准及其应用规范。其中“SM”代表“商密”&a…

人工智能学习与实训笔记(二):神经网络之图像分类问题

人工智能专栏文章汇总:人工智能学习专栏文章汇总-CSDN博客 目录 二、图像分类问题 2.1 尝试使用全连接神经网络 2.2 引入卷积神经网络 2.3 分类函数Softmax 2.4 交叉熵损失函数 2.5 学习率优化算法 2.6 图像预处理算法 2.6.1 随机改变亮暗、对比度和颜色等 …

C#系列-使用 Minio 做图片服务器实现图片上传 和下载(13)

1、Minio 服务器下载和安装 要在本地安装和运行 MinIO 服务器,你可以按照以下 步骤进行操作: 1. 访问 MinIO 的官方网站:https://min.io/,然后 点击页面上的”Download”按钮。 2. 在下载页面上,选择适合你操作系统的 …

论文阅读-EMS: History-Driven Mutation for Coverage-based Fuzzing(2022)模糊测试

一、背景 本文研究了基于覆盖率的模糊测试中的历史驱动变异技术。之前的研究主要采用自适应变异策略或集成约束求解技术来探索触发独特路径和崩溃的测试用例,但它们缺乏对模糊测试历史的细粒度重用,即它们在不同的模糊测试试验之间很大程度上未能正确利用…

Vue2学习第二天

Vue2 学习第二天 1. 数据绑定 Vue 中有 2 种数据绑定的方式: 单向绑定(v-bind):数据只能从 data 流向页面。双向绑定(v-model):数据不仅能从 data 流向页面,还可以从页面流向 data。 备注: 双向绑定一般都应用在表单…

javaweb学习day03(JS+DOM)

一、javascript入门 1 官方文档 地址: https://www.w3school.com.cn/js/index.asp离线文档: W3School 离线手册(2017.03.11 版).chm 2 基本说明 JavaScript 能改变 HTML 内容,能改变 HTML 属性,能改变 HTML 样式 (CSS),能完成 页面的数据…

基于Java SSM框架实现疫情防控系统项目【项目源码】

基于java的SSM框架实现疫情防控系统演示 Java技术 Java技术它是一个容易让人学会和使用的一门服务器语言。它在编程的过程当中只需要很少的知识就能建立起一个真正的交互站点。对于这个教程来说它并不需要你完全去了解这种语言,只要能快速融入web站点就可以&#x…

2024春日营销三大内容趋势,种草爆文轻松get丨小红书数据分析

春季是市场迎来消费焕活的新周期,也是新一年品牌实现生意高速起步的必争节点。一年之“计”在于春,春日营销,吹响品牌营销第一声号角。那么,春日营销在小红书上有何内容趋势,跟着小编的脚步一起来看看~ 内容趋势 1、亲…

34461A 数字万用表,六位半,Truevolt DMM

01 34461A 数字万用表,六位半 产品综述: 34461A 六位半万用表是替代 Keysight 34401A 数字万用表(此前为 Agilent 34401A)的新一代产品。 34461A 拥有 Truevolt 系列数字万用表的全新图形显示界面、先进的分析模式和内置数学函…

JAVA JDK1.8下载安装

1、官网下载地址Java Downloads | Oracle 2、双击运行该文件 3、 4、 5、 6、安装完成后,现在来设置 环境变量 7、新建系统变量 8、修改Path变量 9、配置完成安装完成

6.s081 学习实验记录(九)lock parallelism

文章目录 一、Memory allocator简介提示实验代码实验结果 二、Buffer cache简介提示实验代码实验结果 该实验将重构某些代码以提高并发度。 首先切换到lock分支: git fetchgit checkout lockmake clean 一、Memory allocator 简介 user/kalloctest 这个程序会对…

Unity 2D Spine 外发光实现思路

Unity 2D Spine 外发光实现思路 前言 对于3D骨骼,要做外发光可以之间通过向法线方向延申来实现。 但是对于2D骨骼,各顶点的法线没有向3D骨骼那样拥有垂直于面的特性,那我们如何做2D骨骼的外发光效果呢? 理论基础 我们要知道&a…

Spring Boot 笔记 010 创建接口_更新用户头像

1.1.1 usercontroller中添加updateAvatar,校验是否为url PatchMapping("updateAvatar")public Result updateAvatar(RequestParam URL String avatarUrl) {userService.updateAvatar(avatarUrl);return Result.success();} 1.1.2 userservice //更新头像…

2.18通过字符设备驱动分步注册过程实现LED驱动的编写,编写应用程序测试

应用程序&#xff1a; #include<stdlib.h> #include<stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include<unistd.h> #include<string.h> #include<sys/ioctl.h> #include"myled.h&quo…

JVM-JVM调优基础(理论)

申明&#xff1a;文章内容是本人学习极客时间课程所写&#xff0c;作为笔记进行记录&#xff0c;文字和图片基本来源于课程资料&#xff0c;在某些地方会插入一点自己的理解&#xff0c;未用于商业用途&#xff0c;侵删。 原资料地址&#xff1a;课程资料 JVM参数 标准参数 …

蓝桥杯:C++排序

排序 排序和排列是算法题目常见的基本算法。几乎每次蓝桥杯软件类大赛都有题目会用到排序或排列。常见的排序算法如下。 第(3)种排序算法不是基于比较的&#xff0c;而是对数值按位划分&#xff0c;按照以空间换取时间的思路来排序。看起来它们的复杂度更好&#xff0c;但实际…

ADC--模拟量转换成数字量

目录 一、ADC硬件组成七大部分&#xff1a; 二、单次转换&#xff0c;连续转换&#xff0c;不连续采样模式&#xff0c;扫描模式区别 1、举例(5种组合情况) 2、模拟看门狗中断的作用&#xff1a; 三、MCU使用ADC步骤 一、ADC硬件组成七大部分&#xff1a; ①输入电压&#…