摄像机

机器视觉源码分享

蓝咒 提交于 2020-02-11 01:24:36
视觉方面的研究,但毕业后未能再此领域深耕,故预将研究阶段所做的工业视觉程序进行分享,作为兴趣爱好愿与有识之人一起交流。 0cHM6Ly9ibG9nLmNzZG4ubmV0L01CU0VwZWVr,size_16,color_FFFFFF,t_70) 一、摄像机标定 (1)标定基元的提取——Harris-Plessey角点检测 优点主要有:计算简单,自动化程度高,提取的点特征均匀而且合理;Harris算子对图像中的每个点都计算其最大值,然后在领域中选择最优点,因此可以定量地提取特征点;在有图像的旋转、灰度的变化、噪声影响和视点的变化,它也是最稳定的一种点特征提取算子,同时给出角点处曲率及角点方向等信息。 a.原始图像 b.检测的角点 (2)摄像机标定 1)基于针孔模型下的摄像机标定 a)Roger Tsai的两步法 b)张正友摄像机标定 2)基于隐式模型下的摄像机标定 a)基于图像恢复中几何校正思想多项式变换标定 二者对比试验 Tsai两步法可以得到较高的精度,以及摄像机内外参数,可以实现物体的定位,因此可以作为机器视觉摄像机标定的一般方法应用各个领域。二次多项式法标定精度相对差一点,不能得到摄像机内外参数,但是标定方法简单,如果物体相对于某一个参考坐标系的绝对定位显得并不特别重要,而重要的是物体特征点间相对位置的精度,则可以考虑多项式法。 二、图像预处理 (1)图像滤波 a

屏幕空间的阴影映射技术个人理解

陌路散爱 提交于 2020-02-01 16:09:13
首先我们来了解一下阴影的形成原理: 当一个光源发射的一条光线遇到一个不透明的物体时,这条光线就不可以再继续照亮其他物体(不考虑光线反射),这个物体就会向他旁边的物体投射阴影 而在实时渲染中,我们常用到一种名为 Shadow map 的技术,unity采用的就是这种技术 在Unity中,这个技术的实现是通过将摄像机位置与光源位置重合(光源空间),然后按照正常的渲染流程渲染出深度图来作为 阴影映射纹理 。但是需要注意的是,与正常渲染不同的是,由于我们只需要深度图信息,而正常的渲染流程会多出不必要的光照模型计算( Base Pass +Addition Pass ),我们会采用一个额外的pass专门处理这项工作—— LightMode标签下的ShadowCaster被选中后的pass 。这个Pass的渲染目标只有深度纹理。 Unity首先把摄像机放置在光源的位置上,然后调用这个Pass,通过对定点进行变换后得到光源空间下的位置,然后据此输出深度信息到阴影映射纹理 再来说一说Unity中使用的不同于传统的阴影采样技术—— 屏幕空间的阴影映射技术 个人理解如下: 首先得到屏幕空间的深度图(摄像机视角下的深度信息),在延迟渲染中已经存在,在前向渲染中需要把场景渲染一遍,得到深度图 然后将摄像机与光源重合(光源空间)下通过那个特有的pass通道渲染出阴影映射纹理(其实也是一张深度图)

2017 cinemachine

泄露秘密 提交于 2020-02-01 05:45:24
只有2017以上才可以使用~ 导入Asset store中的cinemachine,会在上方显示cinemachine。每创建一个虚拟摄像机,就会在主摄像机下创建组件 cinemachine Brain; 虚拟摄像机的solo 可以理解为把当前虚拟摄像机权重设置最高 便于修改。 cinemachine Brain 属性: show debug Text 会打印当前是哪个摄像机在执行 show camera frustum 会在scene视图 画出摄像机的照射范围区域 不影响game视图 ignore time scale 忽视时间间隔 world up override (??) update method 更新方式 fixed update / late update /update default blend 默认混合方式(不知影响何处) custom blends 自定义混合(不知影响何处) Events 事件 未测试, (摄像机切换事件) (摄像机事件激活?或者说注册?) 状态摄像机 State_Driven Camera save during play 勾选表示 运行状态也可修改 priority 优先级 follow lookat animated target 跟随的目标animator layer(未知) show debug text enable all

Unity3D 开发之shader教程(浅谈GPU渲染入门)

前提是你 提交于 2020-01-31 01:15:23
  尊重他人智慧成果,欢迎转载,请注明作者 心若透明,原文地址 http://www.cnblogs.com/ubanck/p/4109411.html   这篇随笔,就不按照各种专业的解释来描述了,完全看自己发挥吧,写到哪儿算哪儿。若是哪里有说的不对的地方,请各位看官直说无妨!   说到游戏研发,就不可避免会提到图形学,图形学里面细去研究,就会牵涉到各种各样的数学知识,向量,矩阵之类的!而到这儿,咱们先开始从shader谈起,什么是shader?咱们通常说写个shader,其实也就是写了一个执行某种功能的程序,跟你写个普通的程序原理上说一样的,而不同之处在于,shader是写个GPU执行的,说到GPU执行,那么就得谈到3D游戏里面的那些人物啊,花鸟啊,是怎么看到的,或者说的专业一点,叫做渲染出来的!   如果在2D上面,很简单,完全可以看作是一张图贴在屏幕上就OK。在3D上面,就复杂了一点,首先,我们的屏幕上2D的,不像现实世界,是三维空间!那么怎么在屏幕上画东西才能看上去有3D效果呢,你可以试试在纸上画一个立方体,学过数学都会画,你第一眼看上去就会觉得这是3D的,而不是一个简单的矩形!     模型坐标系:在计算机的3D世界里,也是通过这样一种东西来实现了3D效果。如果在计算机屏幕上面绘制3D模型,那么我们首先在3D软件上制作出这个模型,这个模型会有一个原点,来建一个坐标系

Unity性能优化------渲染优化(GPU)之Occlusion culling(遮挡剔除)

混江龙づ霸主 提交于 2020-01-29 11:43:49
Occlusion culling(遮挡剔除): 场景中的物体因被遮挡对于当前摄像机为不可见时,可以不对其进行渲染。要注意与视锥体剔除进行区分,视锥体剔除是不渲染摄像机视锥范围之外的物体,被其它物体遮挡但仍在视锥范围之类的物体不会被剔除。使用遮挡剔除时视锥体剔除依然有效。 使用步骤: (1)将要应用剔除遮挡的物体的static中的occluder static勾选 (2)打开Window/Occlusion culling 点击bake并在Visualizatior中选择要使用的摄像机 通过观察下图二中拉近摄像机时的情况与图一进行对比,被其它物体遮挡的物体没有被渲染 来源: CSDN 作者: 傻子是小傲娇 链接: https://blog.csdn.net/love_phoebe/article/details/103652099

监控摄像机的区别和分类

人走茶凉 提交于 2020-01-28 14:08:13
 视频会议、网络直播、远程教学、视频监控等都需要使用摄像机,而目前摄像机种类规格是非常多的,如模拟摄像机、数字摄像机、网络摄像机等其应用方式和功能是不一样的,并且其相配套的视频采集卡、视频软件等也需要对应。   高清网络摄像机(IP Camera)是在模拟摄像机(Camera)的基础上集成了视频压缩和网络传输处理模块(DVS),兼具模拟摄像机和视频服务器的技术特点。网络摄像机只要安置在任何一个具备IP网络接口的地点即可独立运行。网络摄像机除了具备一般传统摄像机所有的图像捕捉功能外,机内还内置了数字化压缩控制器和基于WEB的操作系统(包括Web服务器、FTP服务器等),使得视频数据经压缩加密后,通过网络(局域网、Internet或无线网络)送至终端用户,而远端用户可在自己的PC上使用标准的网络浏览器或客户端软件对网络摄像机进行访问,实时监控目标现场的情况,并可对图像资料实时存储,另外还可以通过网络来控制摄像机的云台和镜头,进行全方位地监控。有些网络摄像机还具备其他功能,如语音对讲、报警输入、继电器输出、移动侦测、模拟视频输出和SD卡本地存储录像资料等功能。用公式形象表示如下:IP Camera=单路DVS+Camera。   模拟摄像机(Camera)是获取监视现场图像的前端设备,它以CCD图像传感器为核心部件,外加同步信号产生电路、视频信号处理电路及电源等。近年来

从零开始手撸WebGL3D引擎2:WebGL和3D编程基础概念

佐手、 提交于 2020-01-28 04:53:38
我们在第一篇里面浏览了一下WebGL的参考卡片,也列出了一些WebGL的功能点,但是对于没有接触过3D编程的人来说,这些东西很难理解并形成一个统一的认识。所以这篇我就以WebGL为参考平台谈谈3D编程的一些基础概念。 3D坐标系变换 正常来说,人们学习新东西都会从已有的知识出发,对于3D编程,在屏幕上画出3D图形,如果有2D图形API使用的基础,就会想着从2D编程的经验出发。比如对于2D编程,都是指定一个屏幕坐标,设定一个颜色,去画一个点,你能画点就能画任何东西,很简单很直观。但是到3D这儿就不行了,因为你没法简单直接且直观的指定一个立方体的各个点在屏幕上是什么位置。为了解决这个问题,在3D编程中,需要将3D空间的点变换到屏幕空间,即我们在3D空间指定点的坐标(一组3d坐标),然后设置一个摄像机,将摄像机镜头拍到的点映射到屏幕上,这样就可以绘制出来。这个过程就需要用不同的坐标空间,以及在这些坐标空间之间变换坐标。简单说一说。 模型空间 3D模型通常由很多三角形构成,而每个三角形又是由三个顶点构成。一个3D模型有很多顶点,这个顶点的坐标定义在模型自身的坐标系中,这个坐标系就是模型空间。坐标系的原点根据模型的形状特点以及使用的方便情况而设置。比如两足动物(人)的模型,通常将坐标原点放在两脚中间。而球的模型中心一般放在球心。使用模型空间一方面建模方便,另一方面同样的模型可以复用

单目视觉标定原理

时光怂恿深爱的人放手 提交于 2020-01-26 02:44:30
在计算机视觉中,通过相机标定能够获取一定的参数,其原理是基于三大坐标系之间的转换和摄像机的畸变参数矩阵。在实验中经常用张正友标定发,进行摄像机标定,获取到内参数矩阵和外参数矩阵以及畸变参数矩阵。在应用中要区分三者作用。这也是在程序中函数输入量。 一、三大坐标系 在计算机视觉中,利用图像中目标的二维信息获取目标的三维信息,肯定需要相机模型的之间转化。 1、图像坐标系 在计算机系统中,描述图像的大小是像素,比如图像分辨率是1240*768.也就就是以为图像具矩阵rows是1024,cols是768.那图像的原点是在图像的左上角。 以图像左上角为原点建立以像素为单位的直接坐标系u-v。像素的横坐标u与纵坐标v分别是在其图像数组中所在的列数与所在行数。这是像素坐标,而不是物理坐标,为了后续的模型转换,有必要建立图像坐标系。 图像坐标系是以图像中心为原点,X轴和u轴平行,Y轴和v轴平行。 dx和dy标示图像中每个像素在X轴和Y轴的物理尺寸,其实就是换算比例。比如图像大小是1024*768,图像坐标系x-y中大小为19*17.那么dx就是19/1024 . 则图像中的每个像素在u-v坐标系中的坐标和在x-y坐标系中的坐标之间都存在如下的关系: (上述公式中我们假设物理坐标系中的单位为毫米,那么dx的的单位为:毫米/像素。那么x/dx的单位就是像素了,即和u的单位一样都是像素) 为了使用方便

CCD摄像机与CMOS摄像机区别

梦想与她 提交于 2020-01-25 19:50:30
CCD摄像机 什么是CCD摄像机? CCD是Charge Coupled Device(电荷耦合器件)的缩写,它是一种半导体成像器件,因而具有灵敏度高、抗强光、畸变小、体积小、寿命长、抗震动等优点。 CCD摄像机的工作方式 被摄物体的图像经过镜头聚焦至CCD芯片上,CCD根据光的强弱积累相应比例的电荷,各个像素积累的电荷在视频时序的控制下,逐点外移,经滤波、放大处理后,形成视频信号输出。视频信号连接到监视器或电视机的视频输入端便可以看到与原始图像相同的视频图像。 分辨率的选择 评估摄像机分辨率的指标是水平分辨率,其单位为线对,即成像后可以分辨的黑白线对的数目。常用的黑白摄像机的分辨率一般为380-600,彩色为380-480,其数值越大成像越清晰。一般的监视场合,用400线左右的黑白摄像机就可以满足要求。而对于医疗、图像处理等特殊场合,用600线的摄像机能得到更清晰的图像。 成像灵敏度 通常用最低环境照度要求来表明摄像机灵敏度,黑白摄像机的灵敏度大约是0.02-0.5Lux(勒克斯),彩色摄像机多在1Lux以上。0.1Lux的摄像机用于普通的监视场合;在夜间使用或环境光线较弱时,推荐使用0.02Lux的摄像机。与近红外灯配合使用时,也必须使用低照度的摄像机。另外摄像的灵敏度还与镜头有关,0.97Lux/F0.75相当于2.5Lux/F1.2相当于3.4Lux/F1. 参考环境照度: