CMOS图像传感器同时感知和处理光学图像
CMOS图像传感器同时感知和处理光学图像
概述
近年来,机器视觉技术有了巨大的飞跃,现在已经成为各种智能系统的一个组成部分,包括自主车辆和机器人。通常,视觉信息由基于帧的摄像机捕获,转换成数字格式,然后使用机器学习算法(如人工神经网络(ANN)1)进行处理。然而,大量(大多是冗余)数据通过整个信号链,导致低帧速率和高功耗。为了提高人工神经网络中后续信号处理的效率,人们发展了各种可视化数据预处理技术。在这里,我们证明图像传感器本身可以构成一个神经网络,它可以同时感知和处理光学图像,而无需延迟。我们的装置是基于一个可重构的二维(2D)半导体光电二极管阵列,网络的突触重量存储在一个连续可调的光响应矩阵中。我们演示了有监督和无监督学习,并训练传感器对光学投影到芯片上的图像进行分类和编码,其吞吐量为每秒2000万箱。
摄像头 CMOS 构成一个神经网络,它可以同时感知和处理光学图像
作为各家厂商比拼的重点,今天手机上的摄像头已经做到了一亿像素,而摄像头感光器件也是典型的半导体芯片,本质是二极管,这类精密的结构用来做神经网络运算效果如何?最新一期《自然》杂志上的研究告诉我们:速度是传统处理方法的上千倍。
对于计算机视觉,镜头是它的眼睛,获取丰富的视觉信息后就可以传递给处理单元,并依靠它实现各种视觉能力。这是 CV
最常规的范式,也最符合我们的直觉,但是你会发现有两大问题。
首先,从镜头传递信息给处理单元,这一步并不简单,尤其是在使用云计算的情况下,这都怪视觉信息太丰富了。其次,处理单元的工作也不简单,计算量庞大的视觉模型常常让人望而却步。
而在这篇 Nature 最新研究中,研究者表明图像传感器本身也可以「印刻」神经网络,它能同时担当感光与处理图像这两大功能,且还没有延迟。更重要的是,这种机器
视觉芯片比传统卷积神经网络要快上千倍。只要一块芯片,相机秒变智能终端。
与人脑一样,新芯片能以纳秒级的速度感知、分类简单的图像。
除了快以外,因为芯片采用的基本元件是光电二极管,只依靠光就能「发电」并完成计算,运行速度受限于电路中电子的速度。
目前,这项由维也纳科技大学提交的研究已发表在 3 月 4 号的《Nature》杂志上。
为芯片印刻神经网络
为了将神经网络「印刻」到图像传感器上,研究者在芯片上构造了一种光电二极管网络,这些光电二极管非常微小,且对光非常敏感。我们可以通过改变电压来增加或减少每个二极管对光的响应,从而调整每个二极管的灵敏度。
实际上,这些光电传感器网络就等同于神经网络,它们能够执行简单的计算任务。改变光电二极管的光响应强度会改变网络中的连接强度,也就类似于神经网络中的权重。因此,该芯片巧妙地将光学传感与神经形态计算相结合。
a 为神经网络的二极管阵列,具有相同颜色的子像素会并联在一起;b 为光电二极管阵列中单个像素的电路图;c 与 d 就是我们熟悉的神经网络模型,它们可以「内嵌」到该芯片中。
传感器是由一组像素组成,且每个像素代表一个神经元。同时,每个像素再依次由若干个子像素组成,每个子像素代表一个突触。每个光电二极管都基于一层二硒化钨 ( tungsten diselenide ),是一种对光有响应且可调的二维半导体。这种可调节的光响应度就类似于神经网络中的权重。
研究者表示,将光电二极管排列成 9 个像素的方阵,每个像素带有
3 个二极管。当某张图像的光线映射到芯片后,会产生、组合各种二极管电流,从而完成硬件阵列提供的模拟计算形式。也就是说,只要感受到光,片上「神经网络」就开始计算了。
训练神经网络
整个阵列可以进行训练以执行视觉任务,因为阵列产生的电流与预测电流中的不一致,研究者可以在计算机上分析并调整权重,从而更新芯片上的神经网络。虽然训练过程中是需要时间与计算资源的,但一旦训练完成,芯片将能急速地处理视觉任务。
科学家基于这些光电二极管间的连接方式创建了一个神经网络,并且可以训练这些神经网络将图像分类为字母「n」「v」或「z」。
「我们的图像传感器不会在工作时消耗任何电能。」Mennel 说,「被感知的光子会提供电流。」
在实验中,研究者使用激光来投影「v」和「n」到神经网络图像传感器中。传统的计算机视觉技术通常能在每秒处理 100 帧,可能一些更快的系统能够每秒处理 1000 帧。Mennel 表示,相比之下,「我们的系统差不多能每秒处理 2000 万帧。

a 为训练分类器与自编码器的实验配置,b 为用于测量 time-resolved 的实验设置,c 为光学实验的近景照片。
Mennel 提到,系统运行的速度只受限于芯片中电子的速度。原则上,这一策略在皮秒内就可以完成,比现有的视觉方法快 3 到 4 个量级。
除了字母识别与分类模型,研究者在实验中还测试了自编码器模型。该模型在存在信号噪声的情况下,传感器计算阵列也可以学习图像的关键特征,并解码以构建接近原始图像的生成图。只要训练完成,这种无监督生成模型的推断速度同样非常快。
所以,芯片到底有什么用?
这样的传感器有什么用途呢?「在这一阶段,这一技术主要用于特定的科学研究,如流体动力学、燃烧进程、或机械故障处理。」Mennel
说,「对于更复杂的任务,如自动驾驶中的机器视觉,我们可能需要更高的复杂度。」
在投入实际应用前,这种感光+计算的芯片还有很长的路要走。对于真实视觉信息而言,它还包含三维信息、动态图像以及视频的时间轴等。而当前的图像感知技术都只能将三维压缩到二维,芯片也就丢失了很多信息。
与此同时,作者表示,芯片昏暗条件下需要重新设计,以增加可检测的光强度范围。这种「重新设计」需要高压并消耗大量能源。最后就是半导体制作能力了,这种超薄半导体难以大面积生产,且难以加工。
不过尽管面临着重重阻碍,但将神经网络与感光能力结合到一起,在感光的同时产生电流,在产生电流的同时完成视觉任务,这样的芯片还是非常有意思。
CMOS图像传感器同时感知和处理光学图像的更多相关文章
- 全球CMOS图像传感器厂商
近期,台湾地区的Yuanta Research发布报告,介绍了其对CMOS图像传感器(CIS)市场的看法,以及到2022年的前景预期. 从该研究报告可以看出,2018年全球CMOS图像传感器的市场规模 ...
- CMOS图像传感器理解
CMOS图像传感器理解 水流方向从左边流向右边,上面有一个开关,拧下去的时候水流停止,拧上去的时候水流打开.左边是水流的源头我们给它起个名字,叫做源端(就是源头的意思嘛),右边是水流出去的地方,也就是 ...
- 【图像处理】ISP 图像传感器camera原理
1.Color Filter Array — CFA 随着数码相机.手机的普及,CCD/CMOS 图像传感器近年来得到广泛的关注和应用. 图像传感器一般都采用一定的模式来采集图像数据,常用的有 BGR ...
- 中国摄像头CMOS需求潜力旺盛
中国摄像头CMOS需求潜力旺盛 CMOS是Complementary Metal Oxide Semiconductor(互补金属氧化物半导体)的缩写.它是指制造大规模集成电路芯片用的一种技术或用这种 ...
- 视音频技术作业一:比较CCD与CMOS摄像的区别
作业详解: CCD与CMOS简介: CCD: CCD是Charge Coupled Device(电荷耦合器件)的缩写,它是一种半导体成像器件,因而具有灵敏度高.抗强光.畸变小.体积小.寿命长.抗震动 ...
- CCD与CMOS的区别
我们在购买相机或是摄像机时,都会看到使用CMOS镜头或是CCD镜头,那么CCD与CMOS是什么意思呢,CCD与CMOS的区别是什么?首先,让我们了解CCD与CMOS的意思. CCDCCD使用一种高感光 ...
- CCD与CMOS的区别?
我们在购买相机或是摄像机时,都会看到使用CMOS镜头或是CCD镜头,那么CCD与CMOS是什么意思呢,CCD与CMOS的区别是什么?首先,让我们了解CCD与CMOS的意思. CCDCCD使用一种高感光 ...
- CCD 与 CMOS
窗帘快门与全局快门: 窗帘快门,每次只允许一条缝的光线摄入,因此会呈现自上而下的扫描式拍摄,也就意味着画面上的不同高度,其实拍摄的时间是不同的,也就进一步造成了在高速移动的火车上,如果拍摄窗外的景物, ...
- CMOS
CMOS是Complementary Metal Oxide Semiconductor(互补金属氧化物半导体)的缩写.它是指制造大规模集成电路芯片用的一种技术或用这种技术制造出来的芯片,是电脑主板上 ...
随机推荐
- WPF小经验
Binding.IsAsync当属性值填充好后,与该属性绑定的界面才会开始加载(属性绑定优于控件加载) private IList<string> _list; public IList& ...
- Windows Pe 第三章 PE头文件(上)
第三章 PE头文件 本章是全书重点,所以要好好理解,概念比较多,但是非常重要. PE头文件记录了PE文件中所有的数据的组织方式,它类似于一本书的目录,通过目录我们可以快速定位到某个具体的章节:通过P ...
- 安装google cloud sdk报错解决方法总结(超全)
前提:python环境最好是2.7,如果是python3可能会出很多小毛病:能用64位系统就尽量用64位,32位系统安装也很多毛病 一.Error1:Unzip Failed: Error openi ...
- 1 cmd
打开cmd 在终端打开指定文件 按住alt+e打开我的电脑 补充: 1.windows和+组合快捷键 放大镜,(同理windows -) 然后在地址栏输入cmd,回车即可 常用命令 #盘符切换 ...
- Java常见异常(Runtime Exception )小结
java.lang.NullPointerException 程序遇上了空指针 UnsupportedOperationException 不支持的操作 IllegalArgumentExceptio ...
- layui中时间插件laydate的使用
1.加载layui.js 2.html部分 <div class="layui-inline"> <label class="layui-form-la ...
- Instagram 为什么不用redis
Hi 我还是大粽子 碎碎念 让我比较兴奋的就是这段时间的文章,被感兴趣的同学一一关注,关注量上涨就是我的最大动力. 我每周都会输出至少3篇原创文章,希望能被更多的同学关注,点赞,在看,形成习惯. In ...
- 软件测试中的测试用例Test Case原来是这么回事!
如果你去找一份功能测试的工作,在软件测试工程师面试过程中,有一些面试官会来一两个非常简单的问题 什么是Test Case?你是如何去写Test Case的? 我们先来看一下测试用例的介绍 什么是测试用 ...
- java+selenium使用JS、键盘滑动滚动条
本篇文章介绍如何使用JS和键盘对象对页面进行滑动滚动条-------------主要针对java做自动化测试的同学 一:使用键盘对象操作滚动条 //导包 import org.openqa.selen ...
- SwiftUI 简明教程之自定义 Modifier
本文为 Eul 样章,如果您喜欢,请移步 AppStore/Eul 查看更多内容. Eul 是一款 SwiftUI & Combine 教程 App(iOS.macOS),以文章(文字.图片. ...