008-关于FPGA/ZYNQ直接处理图像传感器数据输出的若干笔记(裸板采集思路)

文章目录

  • 前言
  • 一、图像传感器厂商
  • 二、图像传感器的参数解析
  • 三、图像传感器中的全局曝光和卷帘曝光
  • 四、处理传感器图像数据流程
    • 1.研究当前图像传感器输出格式
    • 2.FPGA处理图像数据
  • 总结


前言

最近也是未来需要考虑做的一件事情是,如何通过FPGA/ZYNQ去做显微镜图像观测下的图像采集传输与后续的处理。目前显微镜观测领域通常是以PC端连接工业相机接口,这个接口可以是USB3.0,可以是网口,也可以是其它传输方式。常常通过工业相机输出的为视频流数据,厂商会提供对应的协议,只需要用他们的软件去进行控制即可,但这种方式,明显不自由,也会受一些限制。如果能够做一款自己的工业相机出来,是不是会把这种限制给解决。

当然,这个要解决的问题需要很多,我最近也在研究和调研这个方向的知识。目前国际上做图像传感器做的比较好的有很多厂商,外国的厂商是占据明显优势的,当然我们国内的厂商也不容小觑,豪威,格科微,思特威,长光辰芯,锐芯微蓬勃发展。就显微镜图像观测这个领域,国内也在不断的发力,相信在未来能取得更大的发展。未来我或许也会从事这个行业的工作,希望能为国产显微镜这个领域,贡献出自己的一份力量,虽说道阻且长,但是一辈一辈人的奋斗,总能够在未来取得成效。为了让更多人了解这个方向和市场,更多的发散自己的思维,今天决定写这篇文章简单的将一些知识做一些汇总,后续如果有一些成果我也会与大家分享一下(碍于是为平台做的设计,所以核心的东西没有办法分享,但是思路是共享的)


一、图像传感器厂商

从CIS供应商来看,索尼和三星一直都是属于图像传感器行业的龙头老大,据网上搜到的数据和信息,2020年索尼在销售额占比约为40%,三星22%,国内的龙头豪威占12%,ST占6%,国内格科微占4%,安森美占4%,SK海力士占2%,思特微占1%。前十里面有三家国产的CIS厂商,总共营收占比合计17%。国内还有一些做的比较好的图像传感器厂商,例如长光辰芯,瑞芯微等等。

我们不评价整体大的市场形式,但国产化肯定是未来中国市场的主流,无论是FPGA,ZYNQ还是各类芯片(包括图像传感器),经历了卡脖子事件,我相信无论是国家还是各个企业,都已经在筹备许多器件国产化的替代。这个过程虽然会比较漫长,但是未来肯定是我们主要投入心思进去的一个方向。

在做这个图像传感器数据采集的过程,既然sony这个品牌卖的最好,销量最高,就先要搞清楚人家的一个参数,对比外国产品和国内产品的一个差距,只能说,人家确实做的不错,产品面也做得很全。这方面网上有很多调研,今天写这篇文章的主要目的不是这个。

二、图像传感器的参数解析

1、分辨率:相机能够输出像素点的多少,比如分辨率为4096*4096,则代表感光区域为正方形,边长为4096个像素点。

2、光学尺寸:传感器的大小

3、像素尺寸:传感器中像素点的宽度和高度尺寸大小

4、感光面积:相机或传感器上光敏元件的面积大小,通常以平方毫米为单位

5、快门类型:卷帘快门或者全局快门

6、峰值量子效率:特定条件下,光电器件再单位时间内能转换为电信号的最高效率

7、满阱容量:是指填满一个像素所需要的电子数,因此更大的像素面积将容纳更多的电子数

8、输入时钟频率:同步电路中时钟的基础频率

9、读出噪声:相机测量它在一次信号采集中捕获到的每个像素的光子数量时,总是存在一定程度的误差,这种不准确性被称为读出噪声

10、暗电流:镜头无光线透过的条件下观测到的电流,是传感器成像过程中的一种非理想因素

11、动态范围:相机能够捕捉到的最大和最小亮度的比率

12、最高帧率:每秒能够采集并输出的最大帧率

13、输出接口:LVDS,MIPI接口等等,高速图像数据传输接口

14、最大数据率:Gbps/s这种格式,每秒能传输多大的像素数据量。

15、色彩:彩色数据或者黑白数据

16、功耗:传感器运行过程中消耗的功率

17、供电电压:传感器正常工作的电压大小

18、封装形式:具体的封装规格

三、图像传感器中的全局曝光和卷帘曝光

一般而言,CCD相机是全局曝光,而CMOS相机则存在卷帘曝光。

全局曝光就是光圈打开后,整个图像芯片同时曝光,因此曝光时间与机械的开关速度有关,那么就存在理论上的最小曝光时间。

卷帘曝光的方式与卷帘概念相关。这种方式是光圈打开后,还存在具有一定间隔的卷帘来控制传感器的曝光时间。卷帘的方式是从左到右的。因此,曝光时间长短完全取决于卷帘的开口大小与卷帘的运动速度,也就是说卷帘运动的越快,眷恋间距就越小,其传感器的曝光时间就越小,因此意味着卷帘曝光方式能够有更小的曝光时间。

全局曝光优点是所有像素点同时曝光。缺点是曝光时间存在局限,存在机械极限的最小曝光时间。

卷帘曝光的优点是具有更小的曝光时间。其缺点是由于逐行的是在不同时间进行曝光取向,如果图像是高速运动的,则存在明显的拖影。因此,卷帘曝光不适合拍摄高速运动的物体。

总结来说就是对于拍摄运动速度快的物体全局曝光有优势,静态物体卷帘曝光速度快,曝光时间短。无论何种方式,FPGA都能够进行处理,像素点的输出方式已经确定了,只需要采集数据即可

曝光时间的问题就是相机采集图像过程中的两个部分。第一部分是曝光,第二部分是曝光后,从传感器的寄存器中读出数据并传送出去。曝光时间越长,拍摄速度越慢,但是曝光时间越短,进光量就会变少,此时就需要调大光圈,增加光照,才能保证图像的亮度。
在这里插入图片描述
逐行曝光sensor 实现如上图逐行曝光模式所示。与全局曝光不同,逐行曝光从第一行开始曝光,一个行周期之后第二行才开始曝光。依次类推,经过N-1 行后第N 行开始曝光。第一行曝光结束后开始读出数据,读出一行需要一行周期时间(含行消隐时间)。至第一行完全读出后,第二行刚好开始读出,依次类推,当第N-1 行读完后,第N 行开始读出,直到整幅图像完全读出。逐行曝光的sensor 技术难度较全局曝光sensor 低,价格便宜,且分辨率较大,对于一些静态图像拍摄是不错的选择。

全局曝光Sensor的所有行同时开始曝光,并同时结束曝光,在曝光结束后,Sensor将所有电子从感光区转到存储区,之后逐行地读出像素数据。这样曝光的好处是获得图像每一行的曝光时间比较一致,并且在拍摄运动物体时图像不会出现偏移和歪斜。

不管是全局曝光还是卷帘曝光,我们都不用担心FPGA采集的问题。这两者的区别主要是在于针对的方向不同,全局曝光在动态物体运动拍摄上有优势,但是存在机械限制,卷帘曝光的帧率可以很高,但是拍摄速度快的物体就容易出现重影的问题。

四、处理传感器图像数据流程

1.研究当前图像传感器输出格式

一般的图像传感器输出方式都是LVDS信号输出,我们需要做一个图像传感器底板,让图像传感器芯片能够正常工作,并且将图像传感器能够输出的信号接口引出底板,以FPC排线的方式或者直接集成到我们的主控FPGA上。以我的板子为例,由于只有mipi2lane的接口,因此就需要将lvds转成2lane的mipi接口数据,在板子上进行解析。

一般的图像传感器都会说明数据传输的格式,以下图为例,图中的左下角就是数据流的输出接口,通过搜集手册也可知道其属于CSI的接口,我们就可以用MIPI接口进行数据的解析,这个过程需要我们进行数据的采集和解包,具体的拆解过程要对照图像传感器芯片手册的输出格式来。
在这里插入图片描述
再例如下图,这个芯片就采用lvds 8通道输出,我们就需要对照其输出格式做一个lvds的传输底板,再转换成我们能接收的数据解码。这个过程一定要对准好,完成了数据的解析基本上工作就已经完成了一大半了(前提是底板电路做好了,而且你高速接口板子也没什么问题)
在这里插入图片描述

2.FPGA处理图像数据

LVDS图像采集主要分为几个阶段:

1、图像数据源的行程

2、数据信息的处理和缓存

3、帧数据的转发。

图像传感器作为图像数据的来源,为系统提供高分辨率的可见光和红外图像,考虑系统的实时性和高可靠性因素,一般的图像传感器都是采用LVDS接口实现数据长距离高速传输,解决传输瓶颈的问题,图像数据进入FPGA之前通过数据格式转换接口,采用MAX9218实现,将串行的数据转换成并行数据接口(这个是网上的一种方案,真正可实现的方案有很多,选择最适合你的去做,我也在学习之中,后期有好的方案会分享)。

高速图像传感器➡LVDS接口板➡接口转换➡接受缓存➡乒乓存储➡图像缓存显示。
最难的就是图像数据及相关参数信息的采集、缓存、组帧和图像数据的转发。FPGA根据图像源中帧同步、行同步、图像选择信号接收解串图像,存储至缓存区,并将图像附带的参数信息写入缓存后部,经组帧状态机形成所需的图像数据帧。

数据帧被FPGA进行解码以后再通过一系列的图像处理方式。比如如果是8bit的bayer数据输出,就需要经过时钟域同步,反马赛克,bayer转rgb888,rgb888转ycbcr等等一系列的操作,这些操作主要是为了获得我们所需的图像数据。若你想存储至PL端,则通过MIG核实现数据存储至DDR中,若你想存储到PS端,则通过AXI_DMA将数据传输至PSDDR,后续想要做一些图像的传输就通过PS端以太网,或者USB接口传输数据。


总结

今天吃的是湖南大碗菜,不得不说,农家一碗香就是嘎嘎好吃

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大数据Doris(五十四):SQL函数之日期函数(二)

文章目录 SQL函数之日期函数(二) 一、DAYOFMONTH(DATETIME date) 二、dayofweek(DATETIME date)

基于ssm社区老年人关怀服务系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本社区老年人关怀服务系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数…

题目:七段码(蓝桥OJ 595)

问题描述: 解题思路: 枚举每一种可能组合(可以使用二进制数表示,每一个二进制就是一种组合),在判断是否符合题目要求的每一个发光灯管相邻(使用并查集方法确定,当每一个发光…

vue2中关于elementUI的自定义上传

一、项目背景 在项目中采用了admin模板,和elementUI组件。需求为手动选择文件可多选上传并显示图片 效果图为 二、自定义上传中遇到的问题 http-request覆盖默认的上传行为,可以自定义上传的实现function—— 在文档中存在这样一个自定义上传&#…

代码随想录day25 回溯算法加强练习

216.组合总和III 题目 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。解集不能包含重复的组合。 示例 1: 输入: k 3, n 7 输出: [[1,2,4]] 示例 2: 输入…

jmeter分布式服务搭建

目录 一、环境准备 二、 安装包下载 三 、安装jdk 四 、控制机安装 4.1 解压压缩包 4.2 修改 bin/jmeter.properties 4.3 修改 bin/system.properties 五、执行机安装 5.1 解压安装包 5.2 修改 bin/jmeter.properties 5.3 修改 bin/system.properties 5.4 启动执行机 …

便捷好用的iOS文件管理App

便捷好用的iOS文件管理App 摘要 本文介绍了一款功能强大、免费的iOS文件管理App——克魔助手。通过使用克魔助手,用户可以轻松管理手机存储空间,清理垃圾文件,整理文件,并进行文件传输和截图操作。本文将详细介绍克魔助手的各项…

linux部署apache服务部署静态网站

第一步:配置IP地址 第二步:创建挂载点 配置yum仓库 mkdir -p /media/cdrom 挂载 mount /dev/cdrom /media/cdrom 安装服务 安装yum源 启用httpd服务程序并将其加入到开机启动项中 建立网站数据保存目录,并创建首页文件 mkdir /home/wwwroo…

OpenHarmony4.0适配LVDS屏幕驱动

1.概述 手头有一块RK3568的开发板OK3568-C,但是还没有适配OpenHarmony,用的还是LVDS屏幕,但是官方和网上好像还没有OpenHarmony4.0的LVDS屏幕驱动的通用实现,所以决定尝试了一下适配该开发板,完成LVDS屏幕驱动的适配&…

yapi无法注册解决,使用yapi pro即可注册,接口文档生成,java,json

1.气屎我了,直接用yapi pro就可以用,害的我弄了半天 2.地址:https://yapi.pro/login 3.yapi pro比较卡顿。开启无痕模式轻松解决该问题(手动狗头)祝你开启新大陆 yapi pro yapi

京东年度数据报告-2023全年度笔记本十大热门品牌销量(销额)榜单

2023年度,在电脑办公市场整体销售下滑的环境下,笔记本市场的整体销售也不景气。 根据鲸参谋平台的数据显示,京东平台上笔记本的年度销量为650万,同比下滑约16%;销售额约为330亿,同比下滑约19%。同时&#…

Kotlin程序设计(三)高级用法

Kotlin程序设计高级篇 在学习了前面的内容之后,相信各位小伙伴应该对Kotlin这门语言有了一些全新的认识,我们已经了解了大部分的基本内容,从本章开始,就是对我们之前所学的基本内容的进一步提升。 泛型 在前面我们学习了最重要…

社交通证经济学:Web3时代的社交奖励系统

Web3时代的到来带来了区块链技术和去中心化的新范式,社交媒体也在这场变革中经历着深刻的改变。 社交通证经济学作为Web3时代社交媒体的创新实践,重新定义了用户在平台上的价值和奖励体系。本文将深入探讨Web3时代社交通证经济学的背景、工作原理以及对…

律师小程序,在线咨询,在线问答小程序修复头像

应用介绍 演示前端小程序: #小程序://问卜易学咨询/cVtT0ndctaecDKd 律师小程序是一种智能化的服务平台,提供了多种有益的功能。首先,它能够实现在线法律咨询,用户可以通过文字、语音或视频与律师实时沟通,获得专业意见…

个人事务备忘录管理微信小程序

介绍 UniApp是一款使用Vue.js开发所有前端应用的框架,能够同时在iOS、Android、H5、小程序等多个平台上运行;所以本系统可以是一个安卓app,也可以是微信小程序 系统包括以下功能: 备忘录 管理个人事务 记事本 事务分类 日记编写…

GO自研微服务框架-路由实现

路由实现 1.不用框架 不用框架的路由实现 package mainimport ("fmt""log""net/http" )func main() {http.HandleFunc("/hello", func(writer http.ResponseWriter, request *http.Request) {fmt.Fprintf(writer, "%s 欢迎来到…

白嫖啦,微软面向初学者的机器学习课程

网址: https://microsoft.github.io/ML-For-Beginners/#/ Microsoft 提供了一个名为 "Machine Learning for Beginners" 的课程,这是一个为期12周、包含26节课的课程,旨在帮助初学者了解机器学习的基本概念。这个课程由 Azure Clou…

全网最细RocketMQ源码二:Producer

入口 这里分析源码用的入口是: org.apache.rocketmq.example.quickstart package org.apache.rocketmq.example.quickstart;public class Producer {public static void main(String[] args) throws MQClientException, InterruptedException {/** Instantiate wi…

有效的回文

常用方法就是双指针。使用两个指针从字符串的两端向中间移动,同时比较对应位置的字符,直到两个指针相遇。由于题目忽略非字母和非数字的字符且忽略大小写,所以跳过那些字符,并将字母转换为小写(或大写)进行…

java基础day04 -- 命令行运行java文件

package com.exmaple;/*** 命令行参数*/ public class ArgsOfMain {public static void main(String[] args) {//增强for循环for(String arg : args){System.out.println(arg);}} }当我打开idea终端运行javac命令完成后(需要配置java环境变量,注意idea使…