本文主要介绍,英伟达超级计算模块jetson tx1的刷机过程及其配置caffe的教程

刷Jetpack包

首先是刷英伟达官网提供的Jetpack2.3,该包的具体介绍见:https://developer.nvidia.com/embedded/jetpack

首先看所需要的一些硬件:

一个装有ubuntu14.04的host(官网要求host必须是14.04系统)

Usb hub(Tx1需要用键鼠对它进行操作)

键鼠

HDMI接口的显示屏

路由器 连接host和tx1

下载jetpack2.3安装包

https://developer.nvidia.com/embedded/jetpack

下面是主机上进行的:

在/home/ubuntu/新建一个文件夹JetPack-2.3用于存放下载文件JetPack-L4T-2.3-Linux-x64.run

cd /home/ubuntu/
mkdir JetPack
cp /home/ubuntu/Downloads/JetPack-L4T-2.3-linux-x64.run /home/ubuntu/JetPack

安装jetpack

cd /home/JetPack
chmod 777 JetPack-L4T-2.3-linux-x64.run
./ JetPack-L4T-2.3-linux-x64.run

Next

选择tx1

NEXT

由于我已经安装好了所有的包,所以这边的Action一栏是no action,如果没有安装过的话,会显示install xxx。

这里点击Next后,接受所有的申明,就开始了漫长的下载与安装…(我等了10多个小时)

没有选择安装opencv。

下载完后进入网络配置选项,选择通过路由器连接互联网,同时将TX1连接到与主机同一个路由器上。

选择eth0端口,点击Next

设置 TX 1 为 Force USB Recovery Mode (强制USB恢复模式)

关闭设备,移除电源适配器

用自带的Micro USB 转 USB 数据线连接主机与TX1

连接电源适配器

按下POWER按钮

按住FORCE RECOVERY 按钮不放开,同时按一下RESET按钮,等待两秒钟,松开FORCE RECOVERY 按钮

在上面这个终端用命令

lsusb

lsusb命令查看是否含有Nvidia Corp设备,确认存在后敲击Enter,开始将操作系统以及开发包拷贝到TX1,中途连接TX1的显示器会显示Ubuntu 16.04 桌面系统

待安装部署完成后,在主机上退出 JetPack L4T 即可,这样就完成了 JetPack 2.3 的配置

配置opencv3.1

OpenCV 3.1 是目前较为稳定的版本,因此推荐大家在TX1上安装OpenCV 3.1

下载 OpenCV 3.1

下载 OpenCV for Linux/Mac (Version 3.1)

https://github.com/Itseez/opencv/archive/3.1.0.zip

http://dev.t7.ai/jetson/opencv/

安装依赖库

sudo apt-add-repository universe
sudo apt-get update
sudo apt-get install -y build-essential make cmake cmake-curses-gui g++
sudo apt-get install -y libavformat-dev libavutil-dev libswscale-dev
sudo apt-get install -y libv4l-dev libeigen3-dev libglew1.6-dev libgtk2.0-dev

编译安装OpenCV 3.1

cd /home/Ubuntu/Downloads
cp opencv-3.1.0.zip /home/Ubuntu/
cd ..
unzip opencv-3.1.0.zip
cd opencv-3.1.0
mkdir build
cd build
cmake -DWITH_CUDA=ON -DCUDA_ARCH_BIN="5.3" -DCUDA_ARCH_PTX="" -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCUDA_FAST_MATH=ON ..

由于CUDA 8.0不支持OpenCV的 GraphCut 算法,可能出现以下错误:

/home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: 'NppiGraphcutState' has not been declared
typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat
^
/home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:135:18: error: 'NppiGraphcutState' does not name a type
operator NppiGraphcutState*()
^
/home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:141:9: error: 'NppiGraphcutState' does not name a type
NppiGraphcutState* pState;
.......

此时需要修改OpenCV源码,使其不编译graphcuts.cpp 即可

进入opencv-3.1.0/modules/cudalegacy/src/目录,修改graphcuts.cpp文件,将:

#include "precomp.hpp"
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

修改为:

#include "precomp.hpp"
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
sudo make -j4 install

编译好的OpenCV库会默认安装到 /usr/local/文件夹下

配置caffe-ssd

添加依赖库:

sudo add-apt-repository universe
sudo apt-get update -y
sudo apt-get install python-pip python-dev
sudo apt-get install cmake -y
# General Dependencies
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev \
libhdf5-serial-dev protobuf-compiler -y
sudo apt-get install --no-install-recommends libboost-all-dev -y
# BLAS
sudo apt-get install libatlas-base-dev –y
sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran python-numpy
# Remaining Dependencies
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev -y
sudo apt-get install python-dev python-numpy –y

下载源码:

git clone https://github.com/weiliu89/caffe.git
cd caffe/
git checkout ssd #切换至分支ssd
cd /home/Ubuntu/caffe/python
for req in $(cat "requirements.txt"); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done

修改Makefile.config

cd /home/ubuntu/caffe
cp Makefile.config.example Makefile.config
gedit Makefile.config
1、将 USE_CUDNN := 1 取消注释
2、INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 后面打上一个空格 然后添加/usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 后面打上一个空格,然后添加/usr/lib/aarch64-linux-gnu/hdf5/serial/
3、# Uncomment if you're using OpenCV 3
OPENCV_VERSION := 3
4、# Uncomment to support layers written in Python (will link against Python libs)
WITH_PYTHON_LAYER := 1

说明:第1步的作用是使用cudnn编译,第2、3步是添加hdf5的路径,没有的话会出现找不到hdf5.h的错误。

gedit Makefile

进入文件,修改

NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

说明:修改这一步是为了避免出现string.h 'memcy' was not declared in this scope这样的错误,这种错误通常是由于gcc版本太新而导致的。

建立hdf5软连接

cd /usr/lib/aarch64-linux-gnu
sudo ln libhdf5_serial.so.10.1.0 libhdf5.so
sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
sudo ldconfig #使连接生效

编译caffe

cd /home/Ubuntu/caffe
make all -j4
make test -j4
make runtest -j4(这一步,github给出的选项是可选,没必要搞其实)
make pycaffe -j4

都搞完之后,验证一下是否安装成功

cd python
import caffe

没有报错就ok

测试AlexNet

cd /home/ubuntu/caffe
./build/tools/caffe time --gpu 0 --model ./models/bvlc_alexnet/deploy.prototxt

测试SSD:

下载VGGNET的模型

http://www.cs.unc.edu/~wliu/projects/SSD/models_VGGNet_VOC0712_SSD_300x300.tar.gz

解压,把其中的VGGNET文件夹放到/home/Ubuntu/models/下

/home/ubuntu/models/VGGNET

这时候添加pycaffe的环境变量

cd
echo "export PYTHONPATH=/home/ubuntu/caffe/python" >> ~/.profile
source ~/.profile
echo $PYTHONPATH #检查环境变量的值

接下来是调用一个usb摄像头,并用抓取到的视频进行检测

在.profile文件中添加环境变量

echo "export LD_PRELOAD=/usr/lib/aarch64-Linux-gnu/libv4l/v4l1compat.so" >> ~/.profile

然后在examples/ssd/ssd_pascal_webcam.py文件中修改"webcam_id=1"即可。

然后运行:

cd /home/ubuntu/caffe
python examples/ssd/ssd_pascal_webcam.py

检测效果只有6帧,好慢呀!

问题

遇到问题:

can not find –lopenblas

解决问题:

sudo apt-get install libopenblas-dev

http://www.openblas.net/

福利答谢大家!

感谢您阅读本篇文章,对此特别发放一个无门槛的现金红包,打开支付宝扫码领取,可以领到钱的哦!

本文参考:

https://github.com/weiliu89/caffe/tree/ssd#installation

http://blog.csdn.net/Jalong_Ma/article/details/52743923

http://blog.csdn.net/jesse_mx/article/details/53404563



英伟达jetson TX1的caffe-ssd配置相关推荐

  1. 英伟达jetson tx1开发套件配置tensorflow

    英伟达jetson tx1开发套件配置tensorflow 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客拥有最终解释权 欢迎关注我的博客:http://blog.csdn.ne ...

  2. 英伟达jetson硬件(NX,nano,AGX,TX1,TX2)通用开机自动开启风扇教程

    英伟达jetson硬件通用的风扇开机自启动教程 1.安装jetson-stats 2.重启硬件,然后进入jtop 3.操作设置 4.重启测试风扇是否自动开启 1.安装jetson-stats (先安装 ...

  3. 边缘深度学习设备基准评测:英伟达Jetson Nano胜出

    点击我爱计算机视觉标星,更快获取CVML新技术 本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载. 选自tryolabs.com 作者:Juan Pablo  机器之 ...

  4. 用英伟达Jetson Nano运行PyTorch Fast.ai丨手把手教程+第三方工具

    原作 Interogativ  郭一璞 编译  量子位 报道 | 公众号 QbitAI 英伟达Jetson Nano,作为老黄家最便宜的硬件,只要99美元. 看到便宜就想捡,拿到手里怎么玩? 造机器人 ...

  5. 英伟达 Jetson Nano 新手必备:使用CSI或USB摄像头拍摄第一张照片

    英伟达 Jetson Nano 新手必备:使用CSI或USB摄像头拍摄第一张照片 1. 引言 1.1 支持的摄像头 1.2 nvgstcapture 2. 在屏幕上开始捕获和预览显示 2.1 CSI摄 ...

  6. 英伟达Jetson Nano的初步了解

    前言:跑对比实验需要不同平台,所以需要采购一个Jetson nano,但看了一下有许多版本,不太了解,故简单调研一下. 采购平台:Jetson Nano B01 Jetson Nano b01国产开发 ...

  7. 玩转英伟达jetson系列(一)刷系统

    玩转英伟达jetson系列(一)刷系统 1.因为工作的原因,有幸同时接触并应用了英伟达jetson nano,jetson tx2和jetson Agx Xavier这三款嵌入式的AI计算平台,对于我 ...

  8. 关于英伟达jetson nano的搭配双目摄像头跑ORB_SLAM2

    1.安装系统 按照商家给的资料安装,将Ubuntu18.04LTS镜像拷贝到tf卡中,插上jetson nano就可以安装了. 2.系统设置 进入系统我先把系统语言设置为中文,在右上角的设置中找到系统 ...

  9. 英伟达 jetson xavier agx 开发(2)修改内核设备树

    英伟达 jetson xavier agx 开发(1)修改内核设备树 实验环境 背景 设备树路径 修改设备树 编译设备树 更新设备树 重新烧录方式更新 直接更新系统的设备树文件 修改启动配置文件 查看 ...

最新文章

  1. 【bzoj3261】最大异或和 可持久化Trie树
  2. request.form()和request()和request.data的区别
  3. 美团分布式服务治理框架OCTO之一:服务治理
  4. 通过python获取苹果手机备份文件中的照片,视频等信息采集
  5. 深度学习 load_data_fashion_mnist
  6. Py之cython:python库之cython的简介、安装、使用方法之详细攻略
  7. CentOS 使用 Docker 安装 Sentry
  8. centos6.4 搭建knowlededgeroot-1.0.4知识库平台
  9. ddr4 dqs 频率_一张图看懂如何选择DDR4内存的频率和容量
  10. 美团大脑 | 知识图谱的建模方法及其应用
  11. python cgi库_《Python 数据库 GUI CGI编程》
  12. matlab矩阵处理实验报告,matlab实验报告一二三
  13. IOS发布应用照片大小
  14. linux下apache安装ssl,linux下apache安装ssl步骤
  15. xmm1是什么器件_第三章基于Multisim10在模拟电路实验中的应用
  16. 车林通购车之家--购车计算器模块--算法js
  17. BLE DTM by HCI
  18. 支付系统,支付流程及实现介绍
  19. linux 深度定制,基于ubuntu发行版的安装界面的深度定制过程
  20. 展望下未来的计算机400字,展望未来作文400字(精选8篇)

热门文章

  1. Centos7.x下Nginx安装及SSL配置与常用命令
  2. SQL Server 2012入门T-SQL基础篇:(2)SQL的两个基础概念
  3. linux下ip冲突检测 arp
  4. 为什么逻辑思维不做小程序了而开发APP得到
  5. 继承ViewGroup:重写onMeasure方法和onLayout、requestlayout方法
  6. HP MSA2000-硬盘leftover-trust enable处理
  7. Oracle数据库LOGGINGNOLOGGING模式概述
  8. poj 1703(种类并查集)
  9. 列表迭代器ListIterator的用法
  10. Golang之空结构体和零长数组的实践