在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

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

PyCharm中配置PyQt的实现步骤

《PyCharm中配置PyQt的实现步骤》PyCharm是JetBrains推出的一款强大的PythonIDE,结合PyQt可以进行pythion高效开发桌面GUI应用程序,本文就来介绍一下PyCha... 目录1. 安装China编程PyQt1.PyQt 核心组件2. 基础 PyQt 应用程序结构3. 使用 Q

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方