NVIDIA Jetson TK1学习与开发——简介(针对嵌入式系统应用释放 GPU 的潜能)

NVIDIA Jetson TK1 开发者套件为您提供所需的一切,针对嵌入式系统应用释放 GPU 的潜能。它以革命性的NVIDIA Tegra® K1 SoC 为基础构建,并且使用相同的NVIDIA Kepler™ 计算核心,该核心专为全世界的超级计算机而设计。这为您提供了一款全功能NVIDIA CUDA® 平台,用于快速开发和部署面向计算机视觉、机器人技术、医疗和更多领域的计算密集型系统。

NVIDIA 提供整个 BSP 和软件堆栈,包括 CUDA、OpenGL 4.4 和 Tegra 加速的 OpenCV。通过一套完整的开发和分析工具,以及对摄像头和其他外围产品的现成支持,NVIDIA 为您提供理想的解决方案,帮助您在我们的Jetson 嵌入式门户上塑造嵌入式未来。


套件内容

  • Tegra K1 SOC
    • NVIDIA Kepler GPU、192 个 CUDA 核心
    • NVIDIA 4-Plus-1™ 四核 ARM® Cortex™-A15 CPU
  • 2 GB x16 内存、64 位宽度
  • 16 GB 4.51 eMMC 内存
  • 1 个半迷你 PCIE 插槽
  • 1 个完整尺寸 SD/MMC 连接器
  • 1 个完整尺寸 HDMI 端口
  • 1 个 USB 2.0 端口、Micro AB
  • 1 个 USB 3.0 端口、A 
  • 1 个 RS232 串行端口
  • 1 个带 Mic In 和 Line Out 的 ALC5639 Realtek 音频编解码器
  • 1 个 RTL8111GS Realtek 千兆位以太网局域网
  • 1 个 SATA 数据端口
  • SPI 4 兆字节引导闪存

以下信号可通过扩展端口获得:

  • DP/LVDS
  • Touch SPI 1x4 + 1x1 CSI-2
  • GPIOs
  • UART
  • HSIC
  • i2c


NVIDIA Jetson TK1学习与开发——简介(针对嵌入式系统应用释放 GPU 的潜能)_第1张图片

图像处理这几年可谓是大红大紫了一番,尤其是OpenCV的出现让很多之前只有研究者才能使用的算法变成了小白装个库调用个函数就可以解决的问题。但是实时性一直以来都是一个非常头疼的问题,尤其是在嵌入式平台上进行图像处理的门槛一直以来都没有降低。今天在这挖个坑,想和大家一起把图像处理搬到嵌入式平台上去,让图像处理从花拳绣腿的演示实验,到真正真枪实剑。

  1. 硬件选择
    图像处理方面ARM,DSP,FPGA,GPU四者可谓是各有各的优点。ARM的最大优点是系统封装,一旦ARM加上了系统那程序写起来会避免接触诸多底层的麻烦。在2014年之前,大多数高端开发板还停留在DSP+ARM的架构上,程序写起来可谓是难上加难。而单纯ARM CPU的嵌入式平台即便是可以跑较为完整的Linux系统,运算速度和桌面平台也差一个数量级。
    2014年英伟达推出了Jetson 系列的带GPU的嵌入式超级计算机在硬件上打破这一难题。入门级Jetson tk1 以及高配版Jeston tx1 基本上可以完全满足用户对于嵌入式图像处理的硬件需求。本系列将使用Jetson tk1作为嵌入式图像处理的硬件平台使用 
    Jeston tk1 全名Nvidia Jeston Tegra K,他拥有Cortex-A15架构的32位四核心CPU,拥有192核心的开普勒GPU, 2GB内存,并有USB 3.0、HDMI 1.4、SATA、千兆以太网(Realtek RTL8111GS)、音频(Realtek ALC5639)、mini PCI-E。总的来说,除了USB接口数目,其他的都已经绰绰有余,配得上“超级计算机的名号”。不过关于硬件方面,有几个藏得很深的地方要拿出来说明一下:

    • 板子一共有四个串口,一个RS232串口和三个TTL电平,英伟达官方文档中不建议使用UART 2,因为他适用于开发板的调试功能;
    • RS232串口存在只能发不能收的问题,目前尚未解决;
    • USB控制器不支持Kinect V2。
  2. 软件介绍
    Jeston tk1 自带有Tegra系统,其实就是一个加入部分优化的ARM Ubuntu。Tegra保留了几乎所有Ubuntu 14.04 LST的功能,如果你是一个Linux程序员那上手起来一定会非常快。此外,Nivida 还提供了Tegra2Opencv的工具包,使用它可以利用NVCC编译Opencv,这比使用ARM编译的Opencv速度要快很多。值得一提的是,使用NVCC编译的Opencv可以利用Opencv中的GPU模块,虽然Gpu模块现在还是一个效率存疑的模块,但是就我的测试结果来看,使用GpuMat 和Gpu::initUndistortRectifyMap效率cv::initUndistortRectifyMap的5倍。
    这里写图片描述
    此外,Jeston tk1 还有英伟达自家的VisionWorks 图像处理库,这个基于OpenVX的开源(虽然我至今没有找到他的CPP文件)图像处理库提供基于硬件加速的视觉处理算法,就我自己的测试结果来看,像光流检测,立体匹配等VsionWorks里有的模块,效率基本上都是Opencv的10倍以上,这一点会在以后的文章中详细说明。

  3. 本系列说明
    本系列将采用Jeston Tk1 作为硬件实现平台,算法方面会兼用Opencv和VisionWorks两个库,对比他们效率,有什么问题希望大家可以与我一起交流~

你可能感兴趣的:(jetson,tk1)