英伟达jetson TX1的caffe-ssd配置
本文主要介绍,英伟达超级计算模块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配置相关推荐
- 英伟达jetson tx1开发套件配置tensorflow
英伟达jetson tx1开发套件配置tensorflow 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客拥有最终解释权 欢迎关注我的博客:http://blog.csdn.ne ...
- 英伟达jetson硬件(NX,nano,AGX,TX1,TX2)通用开机自动开启风扇教程
英伟达jetson硬件通用的风扇开机自启动教程 1.安装jetson-stats 2.重启硬件,然后进入jtop 3.操作设置 4.重启测试风扇是否自动开启 1.安装jetson-stats (先安装 ...
- 边缘深度学习设备基准评测:英伟达Jetson Nano胜出
点击我爱计算机视觉标星,更快获取CVML新技术 本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载. 选自tryolabs.com 作者:Juan Pablo 机器之 ...
- 用英伟达Jetson Nano运行PyTorch Fast.ai丨手把手教程+第三方工具
原作 Interogativ 郭一璞 编译 量子位 报道 | 公众号 QbitAI 英伟达Jetson Nano,作为老黄家最便宜的硬件,只要99美元. 看到便宜就想捡,拿到手里怎么玩? 造机器人 ...
- 英伟达 Jetson Nano 新手必备:使用CSI或USB摄像头拍摄第一张照片
英伟达 Jetson Nano 新手必备:使用CSI或USB摄像头拍摄第一张照片 1. 引言 1.1 支持的摄像头 1.2 nvgstcapture 2. 在屏幕上开始捕获和预览显示 2.1 CSI摄 ...
- 英伟达Jetson Nano的初步了解
前言:跑对比实验需要不同平台,所以需要采购一个Jetson nano,但看了一下有许多版本,不太了解,故简单调研一下. 采购平台:Jetson Nano B01 Jetson Nano b01国产开发 ...
- 玩转英伟达jetson系列(一)刷系统
玩转英伟达jetson系列(一)刷系统 1.因为工作的原因,有幸同时接触并应用了英伟达jetson nano,jetson tx2和jetson Agx Xavier这三款嵌入式的AI计算平台,对于我 ...
- 关于英伟达jetson nano的搭配双目摄像头跑ORB_SLAM2
1.安装系统 按照商家给的资料安装,将Ubuntu18.04LTS镜像拷贝到tf卡中,插上jetson nano就可以安装了. 2.系统设置 进入系统我先把系统语言设置为中文,在右上角的设置中找到系统 ...
- 英伟达 jetson xavier agx 开发(2)修改内核设备树
英伟达 jetson xavier agx 开发(1)修改内核设备树 实验环境 背景 设备树路径 修改设备树 编译设备树 更新设备树 重新烧录方式更新 直接更新系统的设备树文件 修改启动配置文件 查看 ...
最新文章
- 【bzoj3261】最大异或和 可持久化Trie树
- request.form()和request()和request.data的区别
- 美团分布式服务治理框架OCTO之一:服务治理
- 通过python获取苹果手机备份文件中的照片,视频等信息采集
- 深度学习 load_data_fashion_mnist
- Py之cython:python库之cython的简介、安装、使用方法之详细攻略
- CentOS 使用 Docker 安装 Sentry
- centos6.4 搭建knowlededgeroot-1.0.4知识库平台
- ddr4 dqs 频率_一张图看懂如何选择DDR4内存的频率和容量
- 美团大脑 | 知识图谱的建模方法及其应用
- python cgi库_《Python 数据库 GUI CGI编程》
- matlab矩阵处理实验报告,matlab实验报告一二三
- IOS发布应用照片大小
- linux下apache安装ssl,linux下apache安装ssl步骤
- xmm1是什么器件_第三章基于Multisim10在模拟电路实验中的应用
- 车林通购车之家--购车计算器模块--算法js
- BLE DTM by HCI
- 支付系统,支付流程及实现介绍
- linux 深度定制,基于ubuntu发行版的安装界面的深度定制过程
- 展望下未来的计算机400字,展望未来作文400字(精选8篇)
热门文章
- Centos7.x下Nginx安装及SSL配置与常用命令
- SQL Server 2012入门T-SQL基础篇:(2)SQL的两个基础概念
- linux下ip冲突检测 arp
- 为什么逻辑思维不做小程序了而开发APP得到
- 继承ViewGroup:重写onMeasure方法和onLayout、requestlayout方法
- HP MSA2000-硬盘leftover-trust enable处理
- Oracle数据库LOGGINGNOLOGGING模式概述
- poj 1703(种类并查集)
- 列表迭代器ListIterator的用法
- Golang之空结构体和零长数组的实践