当前位置:工控会员企业> 首页 >技术文章>NVIDIA TK1 基于深度学习框架 Caffe 的物体识别

韬睿(上海)计算机科技有限公司用户评论

用户评级:

口碑:3

人气:43600 低于平均:1.00%

收藏:0

联系我们

名称:韬睿(上海)计算机科技有限公司

地址:上海市 闵行区 金都路 3688号 1栋 215室

邮编:201108

电话:021-54380582

传真:021-54380582

网址:http://www.toradex.com

Email:shanghai@toradex.com

在线反馈

本网站信息涉及广告内容!

NVIDIA TK1 基于深度学习框架 Caffe 的物体识别

  • 关键词:ARM Linux caffe
  • 摘要:深度学习目前正吸引着越来越多人的关注,相关算法框架层出不穷,例如TensorFlow、Caffe、Keras、CNTK、Torch7等等。这些算法在数据分析、聚类、识别和预测方面提供了极大的帮助,因此无论是云计算中心还是车载系统,甚至是便携式智能设备,我们都能发现深度学习的应用。

By Toradex 胡珊逢


1). 简介

深度学习目前正吸引着越来越多人的关注,相关算法框架层出不穷,例如TensorFlowCaffeKerasCNTKTorch7等等。这些算法在数据分析、聚类、识别和预测方面提供了极大的帮助,因此无论是云计算中心还是车载系统,甚至是便携式智能设备,我们都能发现深度学习的应用。

TensorFlow Google 的推动下,加之其设计神经网络结构的代码的简洁度、分布式深度学习算法的执行效率,还有部署的便利性,在诸多的深度框架中脱颖而出。Caffe则是主要用于计算机视觉领域的深度学习框架,其全称为 Convolutional Architecture for Fast FeatureEmbedding,目前由伯克利视觉学中心(Berkeley Visionand Learning CenterBVLC)进行维护,并提供了大量训练好的经典模型,可以从https://github.com/BVLC/caffe/wiki/Model-Zoo下载。Caffe 的代码成熟度较高,可以算是一个主流工业级单机运行的深度学习框架。

本文采用Toradex 基于nVdia Tegra K1 芯片的ARM核心板Apalis TK1模块进行测试, Tegra K1片上集成了 192 个支持 CUDA 运算的 GPU 核心。该 GPU 除了能够完成视频编解码外,还可以借助 CUDAOpenCL用于并行计算。由于 Tegra K1采用了和桌面显卡一样的 GPU架构,Apalis TK1 也能够实现利用 cuDNN Caffe 进行加速运算。

2). 具体操作

下面我们将介绍如何在 Apalis TK1上安装 CaffeOpenCV3,并演示物体识别算法。

首先,使用 Toradex Easy Installer Apalis TK1 模块上安装 L4T Ubuntu 系统。具体操作请参考 Toradex EasyInstaller 使用说明。由于下载文件较大,整个安装过程需要10分钟左右的时间。


Caffe所需的 cuDNN 需要单独从JetPack中安装,由于仅需要CUDA 工具以及 cuDNN,因此在安装的时间可以不选择其他组件,减少安装时间。安装的组件如下:



通过下面脚本下载并编译 OpenCV3,以sudo 权限执行脚本。

---------------------------------------

#!/bin/sh

sudoapt-add-repository universe

sudo apt-getupdate

sudo apt-get installbuild-essential make cmake cmake-curses-gui g++ pkg-config-y

sudo apt-get installlibavformat-dev libavutil-dev libswscale-dev -y

sudo apt-get installlibv4l-dev -y

sudo apt-get installlibeigen3-dev -y

sudo apt-get installlibglew1.6-dev -y

sudo apt-get installlibgtk2.0-dev -y

sudo apt-get -yinstall checkinstall yasm

sudo apt-get -yinstall libgstreamer1.0-dev libgstreamer-plugins-base1.0-devlibxine-dev libgstreamer0.10-devlibgstreamer-plugins-base0.10-dev

sudo apt-get -yinstall python-dev python-numpy -y

sudo apt-get -yinstall libfaac-dev libjack-jackd2-dev libmp3lame-devlibopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libva-devlibvdpau-dev libxvidcore-devtexi2html git

NUM_THREADS=4

ver=3.4.0

git clonegit://github.com/opencv/opencv.git opencv-$ver

cdopencv-$ver

git checkout$ver

mkdirbuild

cd build

cmake -DWITH_CUDA=ON-DCUDA_ARCH_BIN="3.2" -DCUDA_ARCH_PTX="" -DBUILD_TESTS=OFF-DBUILD_PERF_TESTS=OFF -DENABLE_NEON=ON -DBUILD_EXAMPLES=ON-DBUILD_opencv_python2=ON -DWITH_OPENMP=ON -DENABLE_NEON=ON-DWITH_GSTREAMER_0_10=ON ..

make-j$NUM_THREADS

sudo make-j$NUM_THREADS install

/bin/echo -e"\e[1;32mOpenCV simple build installationcomplete.\e[0m"

---------------------------------------

https://pastebin.com/tgHSYzw3

完成安装后运行 sudo ldconfig 命令,更新 OpenCV 库文件。

下载 Caffe,最新版本的Caffe 需要更高版本的 cuDNN支持,Tegra K1 目前只支持 cuDNN v2

---------------------------------------

#!/bin/sh

sudo apt-get installlibprotobuf-dev protobuf-compiler gfortran \

libboost-dev cmakelibleveldb-dev libsnappy-dev \

libboost-thread-devlibboost-system-dev libboost-python-dev \

libatlas-base-devlibhdf5-serial-dev libgflags-dev \

libgoogle-glog-devliblmdb-dev -y

git clonegit://github.com/platotek/caffetk1.git

cdcaffetk1

cpMakefile.config.example Makefile.config

---------------------------------------

https://pastebin.com/SvkfBDy0

修改 Makefile.config ,添加 cuDNN OpenCV3 支持,以及 CUDA 库文件

---------------------------------------

# cuDNN accelerationswitch (uncomment to build with cuDNN).

USE_CUDNN :=1

# Whatever else youfind you need goes here.

INCLUDE_DIRS :=$(PYTHON_INCLUDE) /usr/local/include \

                 /usr/local/cuda-6.5/include

LIBRARY_DIRS :=$(PYTHON_LIB) /usr/local/lib /usr/lib \

                 /usr/local/cuda-6.5/lib

                 

# Uncomment if you'reusing OpenCV 3

OPENCV_VERSION :=3

# Uncomment to use`pkg-config` to specify OpenCV library paths.

# (Usually notnecessary -- OpenCV libraries are normally installed in one of theabove $LIBRARY_DIRS.)

USE_PKG_CONFIG :=1

---------------------------------------

修改 Makefile 文件,添加imgcodecs

---------------------------------------

LIBRARIES += gloggflags protobuf leveldb snappy \

       lmdb boost_system hdf5_hl hdf5 m \

       opencv_core opencv_highgui opencv_imgprocopencv_imgcodecs

---------------------------------------

最后运行

---------------------------------------

make -j 4all

makepycaffe

---------------------------------------

下载物体识别python 应用。解压后进入应用目录,配置caffe python 目录

---------------------------------------

exportPYTHONPATH=/home/ubuntu/caffetk1/python:$PYTHONPATH

python deep_learning_object_detection.py --prototxtMobileNetSSD_deploy.prototxt.txt --modelMobileNetSSD_deploy.caffemodel --imageimages/example_03.jpg

---------------------------------------

运行上面命令后,会在图片中标识出识别的物体,以及识别的准确度。




3). 总结

基于深度学习的人工智能、物体识别、人脸识别、数据挖掘等有着丰富的应用,实现这些应用除了需要先进的算法如CaffeTensorFlow 等,还需要合适的硬件加速算法运行。Apalis TK1能以较低功耗提供高达 325GFLOPS的计算能力,并支持 GPU加速,特别适合于视觉机器人、工业设备、车载装置等对功耗、尺寸、散热有要求的应用。

参考:

https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and-opencv/

发布时间:2018年1月12日 15:04  人气:   审核编辑(何为)
相关链接

我来评价

评价:
一般