在Apalis TK1上基于CUDA和Android实现高级摄像系统

2023-10-07 23:59

本文主要是介绍在Apalis TK1上基于CUDA和Android实现高级摄像系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

By Catherine Labedzka from Antmicro​

本文来自于Toradex长期合作伙伴Antmicro公司,在本文中他们会着重介绍基于核心SoC来自NVIDIA 强大的Tegra K1的Toradex Apalis TK1 计算机模块,来实现CUDA和视觉处理相关应用。这个是目前为止Toradex提供的性能最强大的核心板,通过集成的支持192 CUDA核心的可编程的GPU以及4核心2.2GHz主频Cortex-A15 CPU来提供深度学习和嵌入式视觉处理能力。

 

1). 在一个强有力的处理器系列上面延续成功

Antmicro从基于NVDIA Tegra 2和3的Toradex 计算机模块开始就有很多成功的合作案例,这些项目很多都集中在视频和摄像头应用方面,包括驱动,gstreamer plugins / pipelines和多摄像头系统。其中一些已经通过Antmicro博客做了介绍,如关于ADV7280和Epson S2D13P04芯片方案。相关演示模型也在2014年和2015年的Embedded World展会上面由Toradex和Antmicro做了联合展示。

因此,当Toradex Apalis TK1发布时,已经有很多基于Toradex Tegra CPU产品的视觉/视频相关项目成功部署,并对Toradex 基于Tegra K1的产品到来非常期待。TK1不只是老产品的继承,尽管T20和T30芯片也都含有一个嵌入式GPU,但TK1芯片所提供的GPU不仅更大,包含192 个CUDA核心,而且更重要的是,完全可编程。TK1使得基于CUDA(或OpenCL)的高性能通用并行计算第一次实现于嵌入式应用。这个能力对于需要本地低延迟的大数据量处理作为关键因素的应用非常感兴趣,如无人机,防卫设备以及工业视频。得益于CUDA的使用,一些如深度神经网络推理,4K视频处理,视频流实时物体探测等工作可以在一个很小的嵌入式芯片上面实现并可以广泛应用于多种场合。

作为官方NVIDIA Jetson ecosystem partner,Antmicro非常关注高性能并行运算在自己和客户项目上的运用,因此也非常愿意推进使用如Apalis TK1这样性能强大价格又有优势的的平台。因此,甚至在Apalis Tk1正式发布之前,Antmicro和Toradex已经开始了紧密合作。关于TK1和多种摄像头的连接工作先于模块的发布已经发表于博客blog note about cameras and the Jetson 。另外在今年的Embedded World展会上Antmicro也为了TK1模块的发布准备了演示应用,一个自动识别路标的MOPED 遥控汽车,是这次发表展示的第一个应用。同样,在这次展会上,作为Toradex 的Android系统支持合作伙伴,尽管只收到第一批样品模块很短时间,也展示了在TK1上面运行Android系统。本文后面会对Android运行在TK1上有更多介绍。

 

2). 基于MOPED 汽车研究平台和Apalis TK1的交通标志识别演示

自主视觉系统可能是展示Apalis TK1模块能力的最令人兴奋,也是拥有广泛应用及不断增长的市场需求的功能。在被广泛探讨的汽车应用领域自主或许是最好的例证,近些年自动驾驶汽车已经是非常多自主机器开发者们的动力,因此Toradex和Antmicro共同选择这个作为Embedded World的TK1 演示。

MOPED项目是一个最初由Antimicro的合作研究机构SICS开发的针对汽车工业的开源研究平台,外形是一个高级的遥控汽车。Antmicro将其彻底改造以适应机器学习/视觉应用,其主控制组件为Apalis TK1模块系统,上面运行CUDA来实现车载交通信号识别应用。由预先训练好的深度神经网络可以发挥模块上面192个Kepler 显示核心的强大运算性能,使得本来设计用于展示许多现代汽车典型配置的MOPED,可以具备自动探测和识别交通标志的能力。


MOPED

系统里面还包括一个外部显示器用于显示不同图形和尺寸的标志。标志的类型和位置是随机显示的。有两个问题需要依次解决:在周围环境中发现标志和识别它的类型。其中后者是基于cuDNN和Caffe框架在CUDA中实现的。

TK1 摄像头模块

由于物体探测和分类有着非常显著的计算复杂性,在像NVIDIA Tegra K1这样的平台问世之前,想在嵌入式平台实时的实现,或者说将接受的运行这样应用所需的每瓦特性能减少到可封装至一个相对小的物理尺寸是非常困难甚至不可能的。事实上,MOPED的尺寸主要来自于其演示和物理尺寸方面 – Antmicro提供的包含一个Apalis TK1载板和双摄像头板的非常小的TK1开发套件则负责提供数据处理能力。另外,可以想象这样对一些更小型化的应用如无人机就更容易采用(事实上,一些自主车辆/无人机客户已经开始和Antmicro合作了)。

MOPED已经在全球展示,最近一次是XPONENTIAL (New Orleans, USA),一个世界级的自主/无人交通工具展会,和NVIDIA共同参展。另外,后面也会增加行人检测功能到MOPED。

 

3). 基于Apalis TK1以及CUDA和Android的AXIOM GAMMA 4K 开源摄像机

另一个关于Apalis TK1的很好的应用是AXIOM Gamma 4K open camera,AXIOM Gamma项目由EU H2020 资助计划认可的旨在于提供世界首个模块化开源的专业4K摄像机。由于模块化和可扩展性,AXIOM可以作为一个计算机视觉平台应用于大量场景:从电影制作到工业视觉系统。

AXIOM GAMMA 4K 开源摄像机

AXIOM主要基于FPGA,但允许依靠背板扩展将视频传输到其他的模块上面。为了提供一个广泛的计算机视觉编程范例(CUDA)和美观易操作的界面(Android)给摄像机,Antmicro开发了一块Apalis TK1 摄像机扩展卡以及相关软件。目前这款TK1扩展卡运行Android 5.1但最近几周就会升级到6.0。

Apalis TK1模块用于处理通过MIPI-CSI2接口从摄像头获取的视频数据。Android系统允许用于使用标准的Andorid摄像机应用来查看和操作视频流,同时CUDA可以对视频数据进行实时的进一步处理。

 

4). 总结

目前Antmicro已经有一些Apalis TK1项目在进行,但我们更希望通过上面的两个示例可以引起你们更多的兴趣。文本是Antmicro考虑和 Toradex产品相关的主题系列文章的第一篇。下一篇文章会讨论在Toradex 平台上运行Android和Linux,他们各自的强项和弱点,以及如何在你下一个项目中选择最好的系统使用。

这篇关于在Apalis TK1上基于CUDA和Android实现高级摄像系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

SpringSecurity JWT基于令牌的无状态认证实现

《SpringSecurityJWT基于令牌的无状态认证实现》SpringSecurity中实现基于JWT的无状态认证是一种常见的做法,本文就来介绍一下SpringSecurityJWT基于令牌的无... 目录引言一、JWT基本原理与结构二、Spring Security JWT依赖配置三、JWT令牌生成与