0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于飞腾开发板使用单目摄像头完成了完成了全息影像的展示

安芯教育科技 来源:极术社区 作者:安芯教育科技 2022-09-26 09:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.团队介绍

参赛单位:西安电子科技大学 指导老师:蔡觉平、丁瑞雪 参赛队员:王瑞青、江立峰、陈培林 总决赛奖项:二等奖

a78e8360-3d37-11ed-9e49-dac502259ad0.jpg

2.项目简介

2.1项目背景

由于深度对于理解三维场景非常重要,因此它被广泛应用于机器人技术、三维建模和驾驶自动化系统等领域。如图1所示,单目深度估计从单个RGB图像生成像素方向的深度。单目深度估计有可能取代现有的深度传感器,如激光雷达和红外传感器,成为低成本和功率单目RGB相机。由于单目RGB相机的可靠性和高精度,最近基于CNN的单目深度估计方法受到关注。然而,CNN需要大量的乘法运算,在有限的功耗限制下,很难对嵌入式系统进行实时、准确的估计。在以往的单目深度估计研究中,为了加快gpu上的训练时间或推理速度,这些研究通常使用具有轻量级卷积(如可分离卷积)的编解码网络[2]。然而,gpu需要很高的功耗,并且不适合处理编码器-解码器网络中使用的许多不同卷积的快速内存访问。

a7f5f9fa-3d37-11ed-9e49-dac502259ad0.png

2.2项目功能

单目深度估计是指从单个二维彩色图像中估计像素级深度测量的任务。这个问题的输入是一个2D RGB彩色图像,输出是一个密集的深度图,如图1-1所示。2D RGB图像提供像素级的颜色信息,这有助于识别场景中对象的相对位置;然而,图像本身并不能提供尺度感。因此,可以想象不同的RGB图像如何能够产生相同的深度图,例如,保持对象的相对位置但在垂直于图像平面的深度维度上具有缩放的距离的图像。这对单目深度估计算法提出了挑战,因为它们必须推断适当的比例,以便生成精确的像素级深度测量。

a80bc24e-3d37-11ed-9e49-dac502259ad0.png

2.3项目应用

深度估计对于许多机器人应用来说至关重要,尤其是导航。这通常是即时定位与地图构建(SLAM)算法中的一个关键步骤,一些著作已经将基于学习的深度估计结合到SLAM框架中,例如CNN-SLAM 。深度估计也是3D重建算法的一个关键步骤,应用于增强现实和医学成像。当我们考虑功率受限的小型化机器人时,单目深度估计变得也很重要,这种机器人上的机载传感器技术可能仅限于简单的RGB相机,并且可能不存在附加信息(例如,立体图像对、IMU测量、稀疏深度点云、光流)。对于这样的应用,以计算有效的方式从单个RGB图像估计密集深度的能力成为挑战和目标。

3.系统组成

天乾C216F开发板
我们使用的开发板,完成将RGB图像处理成深度图像的功能

全息相册
展示天乾C216F处理后的全息影像

上位机
发送指令,完成使系统功能在“怀旧模式”、“摄影模式”、“拍照模式”等多种模式之间的切换

单目摄像头
可以捕获图像或者视频,并输出给天乾C216F

HDMI显示器
显示当前模式以及图像处理情况

a8307bfc-3d37-11ed-9e49-dac502259ad0.png

4.网路设计与优化方法

4.1FastDepth简介

我们设计的单目深度估计网络FastDepth主要由卷积构成,主要由编码器-解码器两部分组成。编码器从输入图像中提取高层次低分辨率特征。然后将这些特征输入解码器,在解码器中对它们进行逐步的上采样、细化和合并,以形成最终的高分辨率输出深度图。

a884f43e-3d37-11ed-9e49-dac502259ad0.png

编码器用蓝色表示;解码器用黄色表示。中间特征图的尺寸对应关系为高× 宽×深度。从编码层到解码层的箭头表示加法跳过连接。

FastDepth的大部分卷积层使用深度可分离卷积。只有MobileNet编码器的第一层(标准卷积层)和解码器的最后一层(简单的逐点卷积,然后是插值)没有使用深度可分离卷积。FastDepth中的每个卷积层后面是一个标准化层和一个ReLU函数。在训练之后,将标准化层和卷积层合并,从而形成一个仅由卷积层、ReLU函数和加法跳过连接操作组成的神经网络拓扑。

我们在PyTorch中建立了FastDepth网络,并使用官方的train/test数据分割在NYU Depth v2数据集上进行训练。编码层使用了已经在ImageNet上预训练的模型的权重进行初始化。然后将网络作为一个整体进行20个epochs的训练,batch size为16,初始学习率为0.01。学习率每5个epochs降低2倍。

4.2网络优化

4.2.1网络剪枝

为了进一步减少网络延迟,我们使用NetAdapt执行训练后网络修剪。NetAdapt从一个经过训练的网络开始,自动地从特征映射中识别和删除冗余通道,以降低计算复杂度。在每次迭代中,NetAdapt都会生成一组从参考网络简化而来的网络建议。然后选择具有最佳精度和复杂度权衡的网络方案作为下一次迭代的参考网络。该过程一直持续到达到目标精度或复杂度。网络复杂性可以通过间接指标(如mac)或直接指标(如目标硬件平台上的延迟)来衡量。

a90020d2-3d37-11ed-9e49-dac502259ad0.png

4.2.2将5×5卷积和最近邻插值分解为3×3卷积

参考了Yazdanbakhsh等人在他们关于FlexiGAN的工作中探索的这种分解的一种变体,他们在FlexiGAN中使用了滤波器和行重新排序,以使零插入后的卷积更加紧凑和密集,从而更好地利用硬件资源。我们采用了一种类似的方法如图所示。

aa474da8-3d37-11ed-9e49-dac502259ad0.png

把5×5核分解成4个更小的3×3核。当5×5卷积之前是最近邻插值。此处的红色框表示插值输入特征图中具有相同值的像素窗口。随着5×5核的滑动,2×2的窗口中的内核值将与相同的特性映射值相乘。与执行4次乘法和4次加法不同,内核值可以先预加,然后再与共享像素值相乘一次。(b)经过滤波器分解,每四个较小的3×3滤波器可与非插值输入特征映射卷积。这将产生四个可以交错的输出。得到的输出特征映射与最近邻插值后执行的原始5×5卷积的特征映射相匹配。

5.部署方式

本文实现了两种部署方式:通过TVM编译器和pytorch深度学习框架部署。通过TVM端到端深度学习编译器部署fastdepth模型,显示效果一般,但由于对模型经过剪枝、量化等优化操作,帧率高达34.7fps;通过pytorch深度学习框架部署midas,模型精度高,显示效果好,但帧率下降至0.82fps左右。

TVM是由华盛顿大学在读博士陈天奇等人提出的深度学习自动代码生成方法,该技术能自动为大多数计算硬件生成可部署优化代码,其性能可与当前最优的供应商提供的优化计算库相比,且可以适应新型专用加速器后端。

TVM可以优化CPU和其他专用硬件为后端的常见深度学习计算负载。

TVM通过利用多线程、数据布局转化和一些新的计算原语,可以针对GPU做很多高效优化。

同时,TVM已为x86、ARM等平台提供了同意的优化框架,利用其部署大大提高了板子资源利用率,帧率高达34.7fps。

下图是TVM端到端深度学习编译器的说明图:

ab418eda-3d37-11ed-9e49-dac502259ad0.png

6.作品效果展示

通过全息相册上位机选择生成后的深度图即可在全息相册上展示。

ab782b8e-3d37-11ed-9e49-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2574

    文章

    54383

    浏览量

    786159
  • 自动化系统
    +关注

    关注

    3

    文章

    269

    浏览量

    30506
  • cnn
    cnn
    +关注

    关注

    3

    文章

    355

    浏览量

    23249

原文标题:比赛作品分享 | 2022集创赛飞腾杯二等奖作品:基于单目深度估计网络的全息显示终端

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    自动驾驶既然有双目摄像头了,为什么还要三摄像头

    视觉系统中。 但在实地落地时,有些厂商并未止步于双目,而是选择了三摄像头的方案。为什么有了双目,还要选择三摄像头? 双目摄像头怎么“看出
    的头像 发表于 12-09 08:59 37次阅读
    自动驾驶既然有双目<b class='flag-5'>摄像头</b>了,为什么还要三<b class='flag-5'>目</b><b class='flag-5'>摄像头</b>?

    车载双目摄像头如何“看见”世界?

    源自:网络 车载双目摄像头(也称立体视觉摄像头,Stereo Camera)模仿人眼的视觉机制,通过两个略有间距的摄像头同时拍摄同一场景,比较两幅图像之间的差异,从而计算出深度信息。 与
    的头像 发表于 11-13 09:17 682次阅读
    车载双目<b class='flag-5'>摄像头</b>如何“看见”世界?

    【EASY EAI Orin Nano开发板试用体验】使用stream推流代码和WEB服务器代码实现在客户端网页上查看摄像头图像

    网页上查看摄像头图像 EASY EAI Orin Nano开发板主控是RK3576带有NPU,调试深入之后还是要做摄像头相关的应用开发的,对LVGL的调试只是开胃小菜,调通
    发表于 08-11 23:15

    迅为八核高算力RK3576开发板摄像头实时推理测试 RetinaFace人脸检测

    迅为八核高算力RK3576开发板摄像头实时推理测试 RetinaFace人脸检测
    的头像 发表于 07-21 15:29 956次阅读
    迅为八核高算力RK3576<b class='flag-5'>开发板</b><b class='flag-5'>摄像头</b>实时推理测试 RetinaFace人脸检测

    迅为八核高算力RK3576开发板摄像头实时推理测试 ppyoloe目标检测

    迅为八核高算力RK3576开发板摄像头实时推理测试 ppyoloe目标检测
    的头像 发表于 07-14 15:18 1079次阅读
    迅为八核高算力RK3576<b class='flag-5'>开发板</b><b class='flag-5'>摄像头</b>实时推理测试 ppyoloe目标检测

    【EASY EAI Orin Nano开发板试用体验】--USB摄像头使用

    本篇讲述USB摄像头接入开发板使用。准备200W像素/30FPS摄像头,接入开发板上层USB口(建议),如下 一.USB摄像头接入管理 1.
    发表于 07-13 18:21

    迅为RK3576开发板摄像头实时推理测试-ppseg 图像分割

    迅为RK3576开发板摄像头实时推理测试-ppseg 图像分割
    的头像 发表于 07-11 14:31 705次阅读
    迅为RK3576<b class='flag-5'>开发板</b><b class='flag-5'>摄像头</b>实时推理测试-ppseg 图像分割

    【Milk-V Duo S 开发板免费体验】4 - OV5647 摄像头摄像头测试

    DuoS开发板的/mnt/system/usr/bin/目录下提供了几个测试程序,其中sample_sensor_test就是用于摄像头测试的。 要运行这个程序,需要先修改/mnt/data/下
    发表于 07-08 21:26

    【正点原子STM32MP257开发板试用】2.USB摄像头使用

    前言 感谢正点原子和电子发烧友论坛提供的这次机会让我有机会体验这款正点原子STM32MP257开发板,希望可以借这个机会好好学习一下。 接入摄像头 因为没有提供CSI的摄像头,所以只能使用USB
    发表于 06-16 19:16

    基于RK3576开发板的网络摄像头方案

    连接IMX415摄像头与Camera1接口。开发环境搭建包括源码工程下载、开发环境配置、例程编译与运行。通过NFS挂载目录,用户可以在板卡上编译并运行RTSP IPCamera示例程序。方案还提供了非
    的头像 发表于 05-12 17:54 733次阅读
    基于RK3576<b class='flag-5'>开发板</b>的网络<b class='flag-5'>摄像头</b>方案

    基于RV1126开发板实现网络摄像头方案

    在RV1126开发板上实现本开发实例,抓取摄像头数据、图像送入编码器进行编码压缩、以及把压缩后的数据通过RTSP协议发送出去的简单核心示例。 若用户需要通过webServer对图像进行调整,以及配置
    的头像 发表于 04-21 14:56 1324次阅读
    基于RV1126<b class='flag-5'>开发板</b>实现网络<b class='flag-5'>摄像头</b>方案

    全志T113-S3开发板测试—UVC 摄像头

    协议实现USB摄像头开发板之间的数据传输。本文将介绍UVC协议的相关知识,并演示如何检测UVC摄像头。产品简介眺望电子EVM-T113-S3是一款基于全志T11
    的头像 发表于 02-27 08:31 2614次阅读
    全志T113-S3<b class='flag-5'>开发板</b>测试—UVC <b class='flag-5'>摄像头</b>

    迅为RK3588开发板实时系统编译-Preemption系统/ Xenomai系统编译-选择摄像头配置

    上的接口如下所示。如果想要单独使用哪个接口开启对应的宏定义即可,注意只能单独使能单个摄像头。如果想要使用多个摄像头,请参考《【北京迅为】itop-3588开发板摄像头使用手册》。 更
    发表于 01-18 10:15

    米尔瑞芯微RK3576实测轻松搞定三屏八摄像头

    推出的MYD-LR3576开发板开发了一个三屏异显,8路摄像头输入的DEMO, 实测下来,RK3576轻松搞定了该任务。 MYD-LR3576开发板是基于RK3576设计的一款高性能
    发表于 01-17 11:33

    ElfBoard技术贴|ELF 1开发板适配摄像头详解

    ELF1及ELF1S开发板适配的OV5640摄像头,集成了CMOS图像传感器,作为一款500万像素级别的摄像头,不仅能够支持最高达2592x1944分辨率的QSXGA图像输出,帧率可达
    的头像 发表于 12-27 10:16 1900次阅读
    ElfBoard技术贴|ELF 1<b class='flag-5'>开发板</b>适配<b class='flag-5'>摄像头</b>详解