嵌入式视觉系统

随着嵌入式技术的发展,嵌入式视觉技术也越来越比较重视,多年前。人们对嵌入式视觉技术的研究还是很模糊的,而在嵌入式视觉技术高度专业化应用的今天。越来越多的新兴工业为视觉应用找到了用武之地。那么就让我们谈谈如何使用嵌入式视觉技术、采用嵌入式视觉技术的理由以及近期哪些应用最有希望采用嵌入式视觉技术。

  更强处理能力

  根据定义,嵌入式视觉系统实际上涵盖了执行图像信号处理算法或视觉系统控制软件的任何设备或系统。智能视觉系统中的关键部分是进行实时高清数字视频流处理的高性能计算引擎、大容量固态存储、智能摄像头或传感器以及高级分析算法。这些系统中的处理器可以执行图像采集、镜头校正、图像预处理和分割、目标分析以及各种启发式(heuristics)功能。嵌入式视觉系统设计工程师采用各种处理器,包括专为视觉应用设计的通用CPU、图象处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)和专用标准产品(ASSP)。上述处理器架构具备明显的优势和短板。在许多情况下,设计工程师将多种处理器整合到一个异构计算环境中。有时候,处理器则被集成到一个组件中。此外,一些处理器使用专用硬件来尽可能实现最高的视觉算法性能。诸如FPGA之类的可编程平台为设计工程师提供了高度并行的计算密集型应用架构以及用于I/O扩展等其他应用的资源。

  在摄像头方面,嵌入式视觉系统设计工程师使用模拟摄像头和数字图像传感器。数字图像传感器通常是需要可见光环境的CCD或CMOS传感器阵列。嵌入式视觉系统也可用于感测其他数据,如红外、超声波、雷达和激光雷达。

  越来越多的设计工程师开始转向采用摄像头或各种传感器的“智能摄像头”作为视觉系统中所有边缘电子设备的核心。其他系统将传感器数据传输到云端以减少系统处理器的负载,在这个过程中系统功耗、占用空间和成本降至最低。但是,当需要基于图像传感器数据进行低延迟的关键决策时,这种方法将面临问题。

  利用移动优势

  尽管嵌入式视觉解决方案早已面市多年,但该技术的发展速度受到了很多因素的限制。首先也是最重要的是,这项技术的关键要素仍没有能够以低成本的方式实现。特别是能够实时处理高清数字视频流的计算引擎尚未普及。高容量固态存储和高级分析算法的限制也带来了挑战。

  最近市场上的三种发展趋势有望彻底改变嵌入式视觉系统的面貌。首先,移动市场的高速发展为嵌入式视觉设计工程师提供了海量的处理器可选方案,能够以低功耗提供相对较高的性能。其次,MIPI联盟推出的移动行业处理器接口(MIPI)能够为设计工程师提供替代方案,使用符合标准的硬件和软件组件来构建创新且具有成本效益的嵌入式视觉解决方案。最后,针对移动应用的低成本传感器和摄像头的激增,帮助嵌入式视觉系统设计工程师实现更好的解决方案并降低成本。

  工业应用

  工业应用领域中的机器视觉系统一直以来都是嵌入式视觉领域最有前景的应用方向之一。机器视觉技术是其中最成熟和数量最多的应用。它被广泛用于制造过程和质量管理应用。通常,这些应用领域中的制造商采用由一个或多个智能摄像头与处理器模块组成的紧凑型视觉系统。Transparency Market Research的分析师预测,机器视觉市场将从2014年的157亿美元增长至285亿美元(2021年)。

  人类很早已经认识到,光靠肉眼的观察东西是有限的,肉眼之外还有许多我们无法观察到的东西,所以人类一直研究一种技术能够替代和弥补我们肉眼的缺陷。而现在人类已经研究出以嵌入式视觉的产品走进了我们的生活。但至今为止嵌入式视觉系统并不成熟,这还需要我们现在的年轻人以及我们的后代进一步研究和突破。

原文地址:http://blog.51cto.com/13850058/2137284

时间: 2024-10-11 20:47:07

嵌入式视觉系统的相关文章

ARM 开发板嵌入式linux系统与主机PC通过串口传输文件

本文转载自http://useless20.blog.163.com/blog/static/237409982010227127576/ 嵌入式linux系统与主机通过串口传输文件 我想如果要从PC机下载东西到开发板的嵌入式linux系统里面,很多人首先会想到用tftp sftp等网络工具从网口下载.但如果网络用不了,只能通过串口下载怎么办呢?这个时候有两个工具能帮到你:一个是zmrx.zmtx,另外一个是lsz.lrz.个人觉得zmrx/zmtx没有lsz/lrz稳定,建议还是用后者.下面介

从开始到结束,手把手教你使用busybox构建类嵌入式Linux系统

概述: 本篇博客是一个自制类嵌入式Linux系统的制作手册,内容涵盖使用宿主机通过busybox实 现制作类嵌入式Linu系统的详细过程,一步一步教你如何制作属于你自己的linux系统,同时 帮助你更加清楚的了解linux系统的组成结构,本篇博客需要读者对linux系统的启动流程及ssh 远程连接有一定的了解,这部分很多博客都有介绍,这里就不说明了,不了解的读者可以先去 看看这方面的博客. 制作的整个过程比较漫长(主要是编译源码需要耗费大量时间,因此,在编译内核时,记 得另起虚拟终端先完成其它操

嵌入式GUI系统Enlightenment Foundation Libraries图形库简介

******************************************************************************************************************************************************* 作者:EasyWave                                                                                      

嵌入式linux系统中,lsusb出现unable to initialize libusb: -99 解决办法 【转】

转自:http://cpbest.blog.163.com/blog/static/41241519201111575726966/ libusb是linux系统中,提供给用户空间访问usb设备的API,方便从linux内核中获取或设置usb设备的信息.lsusb这个用户空间程序,也正是依赖libusb提供的接口API来实现对系统当前的usb总线的扫描,从而显示当前系统存在的usb设备的. 在嵌入式linux中,输入lsusb命名,出现unable to initialize libusb: -

嵌入式 Linux系统编程(一)——文件IO

嵌入式 Linux系统编程(一)--文件IO 一.文件IO概念 linux文件IO操作有两套大类的操作方式:不带缓存的文件IO操作,带缓存的文件IO操作.不带缓存的属于直接调用系统调用(system call)的方式,高效完成文件输入输出.它以文件标识符(整型)作为文件唯一性的判断依据.这种操作不是ASCI标准的,与系统有关,移植有一定的问题.而带缓存的是在不带缓存的基础之上封装了一层,维护了一个输入输出缓冲区,使之能跨OS,成为ASCI标准,称为标准IO库.不带缓存的方式频繁进行用户态 和内核

嵌入式 Linux系统编程(二)——文件描述符控制函数fcntl

嵌入式 Linux系统编程(二)--文件描述符控制函数fcntl 由于fcntl函数实在过于灵活和复杂,本文将fcntl函数从文件IO中单独列出来,便于详细解读.函数原型如下: #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd, ... /* arg */ ); fcntl函数用于控制操作文件描述符fd,对文件描述符的控制操作由cmd控制命令来控制,arg参数为可选参数,是否需要arg参数取决于控制命令

嵌入式 Linux系统编程(三)——标准IO库

嵌入式 Linux系统编程(三)--标准IO库 与文件IO函数相类似,标准IO库中提供的是fopen.fclose.fread.fwrite等面向流对象的IO函数,这些函数在实现时本身就要调用linux的文件IO这些系统调用. 一.标准IO库函数的缓冲机制 由于IO设备的访问速度与CPU的速度相差好几个数量级,为了协调IO设备与CPU的速度的不匹配,对于块设备,内核使用了页高速缓存,即数据会先被拷贝到操作系统内核的页缓存区中,然后才会从操作系统内核的缓存区拷贝到应用程序的地址空间. 当应用程序尝

嵌入式 Linux系统编程(四)——文件属性

嵌入式 Linux系统编程(四)--文件属性 一.文件属性概述 Linux 文件的属性主要包括:文件的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.文件属性示例如下: 多个文件属性查看: ls -lih 1341714 -rw-r--r-- 1 root root 2.5K May 28 10:24 bit_marco.c 1341718 -rw-r--r-- 1 root root 2.1K May 28 09:08 bit_marco.c~ 1341706

嵌入式 Linux系统编程(五)——目录文件函数

嵌入式 Linux系统编程(五)--目录文件函数 Linux中目录也是文件,目录操作函数为标准IO库函数.主要函数如下: #include <sys/types.h> #include <dirent.h> DIR *opendir(const char *name); DIR *fdopendir(int fd); 成功返回一个指向目录流的指针,失败返回NULL,并且设置errno全局变量. #include <dirent.h> struct dirent *rea