Glimpse: A Programmable Early-Discard Camera Architecture for Continuous Mobile Vision

本文主要是介绍Glimpse: A Programmable Early-Discard Camera Architecture for Continuous Mobile Vision,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一种可编程的提前丢弃摄像机结构的连续移动设备

关键字:Early-Discard = “提前丢弃”;移动电源和数据使用量减少一个数量级;
应用:可穿戴传感器
实现:模块化电路板和嵌入式软件
Glimpse:一种新颖的架构,它是对传统移动视频处理流水线的重新设计,以灵活、高效和准确地支持这种“提前丢弃”。

 1.介绍

矛盾:资源使用和准确率之间进行折衷
使用传统解决方案:
使用低功率的传感器,缺点准确率不高。
重复使用现有的机器进行视觉处理限制:

  • 图像:选择所需的成像质量往往比识别所需的成像质量差得多
  • 算法:特定的选择任务通常需要比一般算法提供的精度低得多的精度。
  • 处理器:标准的移动应用处理器可能是低能效的

为了避免重复使用标准视觉流水线的开销,同时保留基于视觉的帧选择的好处,我们主张将基于视觉的帧选择作为一流的设计目标,并在移动设备中配备相应的专用硬件/软件子系统。
--->
我们提出了Glimpse,这是一个致力于丢弃不感兴趣的帧的系统,它本身以非常低的功耗执行粗略的视觉处理。
Glimpse以一种新颖的方式组合了几个新的组件:一组选通传感器成像器(包括一个热成像仪和一个立体对)比主成像器消耗的功率低得多,足以完成许多选择(但可能不是更深入的分析)任务。使用门控成像器,针对常见的早期拒绝子任务优化了一套粗略的图像处理算法。设计了一种由低功耗微控制器和FPGA(Field Programmable Gate Array)组成的专用高效门控计算结构,可以有效地访问门控成像器,以比标准CPU/DRAM模型更有效地执行(粗略)视觉算法。基于拒绝级联的简单编程模型允许应用程序将门控传感器的输出组合成高效的定制帧选择分类器。

2.背景和动机

传统的设备耗电

3.系统架构

硬件架构

门控传感器在相对较高的占空比下运行,并且必须消耗相对较少的功率。门控处理器初始化传感器,控制与传感器的通信,对感测数据运行应用程序扩展,并与其他处理器协调任务执行。
不需要门传感器去检测有趣的事件本身。
Glimpse硬件架构的两个方面特别值得注意。首先,它提倡使用多种可能非常规的成像技术(例如,热像仪、低功率灰度成像仪和立体对)来进行帧选择。
其次,它结合了专用的可编程硬件(即FPGA),与这些成像器紧密耦合,用于与选择相关的计算。

软件架构
Glimse认为,帧选择器本质上是对成本敏感的分类级联。因此,它们可以分为相对重量级的特征计算库和轻量级拒绝级联,这些应用程序可以安全地链接在一起,以生成更具表现力但更高效的分类器。

1特征计算库 2拒绝级联 3样本级联

4.粗略图像处理

1.基于FPGA的粗立体声系统

2.基于粗FIR的跟踪
 

换言之,我们证明了我们的近似算法不仅比它们的细粒度变体具有更高的功耗效率,而且当较粗的粒度足够时,它们也提供了令人满意的准确性。

5.硬件实施

6.COARSE VISION评估

我们希望回答关于第4节中介绍的粗略视觉(深度估计和立体跟踪)算法的三个问题:
·它们的精确度是什么?
·它们的资源消耗是什么?
·它们如何随我们的设计选择而变化?
在这些实验中,我们使用在受控条件下收集的数据。我们将详细的实验评估限制在第4节的低位宽表示、稀疏视差检查和深度量化优化。
关于其他优化,简要地说:
1.使用SAD代替SOS进行距离测量(第4.1.1节)产生的深度测量电路使用的门减少了42%
以及2.无缓冲的立体声实现(第4.1.2节)比缓冲版本节省了13%的平均功耗。

7.端到端的评估

其中一位作者在三天的日常活动中(每个人大约3、7和5小时)佩戴了一台基于Glimpse的相机15小时,同时在Glimpse上运行级联。

8.相关工作

 

9.结论

在这项工作中,我们设计、实现并评估了Glimpse,这是一个可编程的嵌入式系统,设计用于检测低功耗事件,值得进一步处理。主要创新包括低功耗成像仪阵列和专门用于图像丢弃计算的计算结构、适用于应用程序的安全但富有表现力的编程模型,以及适用于丢弃管道的传统立体深度和跟踪算法的粗略变体。将Glimpse与高功率成像流水线系统相结合,可以使高功率流水线处理不到10%的帧,同时消耗大约100 mW的总功率。相应地,传输用于进一步处理的视频数据量也降低了一个数量级。基于这些结果,我们相信,Glimpse将轻量级可穿戴设备的持续愿景推向了实用领域。

 

 

 

这篇关于Glimpse: A Programmable Early-Discard Camera Architecture for Continuous Mobile Vision的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/233642

相关文章

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

4-4.Andorid Camera 之简化编码模板(获取摄像头 ID、选择最优预览尺寸)

一、Camera 简化思路 在 Camera 的开发中,其实我们通常只关注打开相机、图像预览和关闭相机,其他的步骤我们不应该花费太多的精力 为此,应该提供一个工具类,它有处理相机的一些基本工具方法,包括获取摄像头 ID、选择最优预览尺寸以及打印相机参数信息 二、Camera 工具类 CameraIdResult.java public class CameraIdResult {

PC/MCU/SoC使用的计算机架构(Architecture)

1. 冯·诺依曼结构 冯·诺依曼结构(Von Neumann Architecture)是计算机系统的经典架构,由数学家约翰·冯·诺依曼在1945年提出。它的核心思想是程序存储器和数据存储器共享同一存储设备,程序和数据以相同的方式存储和访问。冯·诺依曼架构的主要特点包括: 单一存储器:存储程序指令和数据在同一个存储器中。控制单元:通过程序计数器顺序执行指令。数据路径:通过一个共享的总线,将数据

复盘高质量Vision Pro沉浸式视频的制作流程与工具

在探索虚拟现实(VR)和增强现实(AR)技术的过程中,高质量的沉浸式体验是至关重要的。最近,国外开发者Dreamwieber在其作品中展示了如何使用一系列工具和技术,创造出令人震撼的Vision Pro沉浸式视频。本文将详细复盘Dreamwieber的工作流,希望能为从事相关领域的开发者们提供有价值的参考。 一、步骤和工作流 构建基础原型 目的:快速搭建起一个基本的模型,以便在设备

一键部署Phi 3.5 mini+vision!多模态阅读基准数据集MRR-Benchmark上线,含550个问答对

小模型又又又卷起来了!微软开源三连发!一口气发布了 Phi 3.5 针对不同任务的 3 个模型,并在多个基准上超越了其他同类模型。 其中 Phi-3.5-mini-instruct 专为内存或算力受限的设备推出,小参数也能展现出强大的推理能力,代码生成、多语言理解等任务信手拈来。而 Phi-3.5-vision-instruct 则是多模态领域的翘楚,能同时处理文本和视觉信息,图像理解、视频摘要

ant mobile design组件库的PickerView组件不能滑动

问题 PickerView组件在开发环境可滑动,在测试环境不可滑动 正常开发环境是这样正常显示,并且可滑动的 发到测试环境后,变成了这样,并且只有中间那列可滑动,两边的都不能滑动,而且还会报警告 封装的组件代码如下 // 日期选择组件const CustomDatePickerView: FC<any> = ({customizeTab,setCustomizeTime,cus

jQuery Mobile 页面切换动画的使用(data-transition)

如果需要转到的HTML是其他链接,不是内部page,需要加上rel='external'属性,此时动画效果无效。

jquery.mobile.changePage() 页面参数介绍

jQuery.mobile.changePage( to [, options ] ) 从一个页面跳转到另一个页面,使用$.mobile对象的changePage方法来实现。但要使用此方式的时候,要以点击一个链接或者提交表单来实现。此方法有两个参数。 to:是第一个参数,是必须的,不可缺少。类型:字符串或者对象。 字符串: 绝对或相对URL地址。如:("about/us.html")

jQuery Mobile 的.bind()、.live()和.delegate()之间区别

资料一: live方法是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件,但是bind方法只能给当前存在的元素绑定事件,对于事后采用JS等方式新生成的元素无效,而live方法则正好弥补了bind方法的这个缺陷,它可以对后生成的元素也可以绑定相应的事件。      live方法之所以能对后生成的元素也绑定相应的事件的原因归结在“事件委托”上面,所谓

内核调试之early printk

early printk 解决什么问题那?本质也是打印调试信息,但是不同于printk,printk属于打印的一个框架,既然是框架必然需要一些必备条件,框架的初始化等,在内核启动初期这些框架都没来得及初始化,所以这些函数肯定不能用,eary pritnk实现就比较直接简单,就是直接调用对应芯片的串口寄存器,把数据写到串口控制器寄存器里面,只要你芯片启动了就能输出。各个架构下都实现了