英伟达jetson TX1的caffe-ssd配置

news/2024/11/24 13:30:24/

本文主要介绍,英伟达超级计算模块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





http://www.ppmy.cn/news/483100.html

相关文章

这名“业余”程序员,曾用50张1080Ti对抗癌症。

“ 这才是程序员该有的样子! ” “ 楼主真的太强了,技术拯救世界 ” “ 与他相比,我感觉自己写的代码毫无意义。。。 ” 当你第一次看到这些留言,可能觉得他们未免有点中二,但对于那些曾被帖子拯救过的人和家庭来说…

Nvidia Tesla A100 驱动安装方法

Nvidia Tesla A100 驱动安装方法 遇到的问题:以前安装tesla系列、geforce系列等gpu 驱动的时候,只需执行nvidiaxxxx.run驱动包或者安装nvidiaxxxx.rpm包即可,但遇到新的GPU Nvidia Tesla A100的时候,安装完驱动似乎不起作用&…

君正X2000 Linux SDK

一、测试所用的硬件 深圳君正开发板:PD_X2000_EVB_CORE_V1P1 二、SDK源码下载 参考君正官方教程:君正全平台linux源码同步教程(除X1830人脸识别板)_君正a1n linux_北京君正的博客-CSDN博客 教程中要求的系统为Ubuntu20.4&#…

【BirdDog】P110·P120全新升级版上市,Full NDI小宇宙大爆发

BirdDog全新升级版Full NDI云台摄像机 { P110P120 } 在格式阵容、灵活连接、外观设计上树立了新标准。更强的现代摩登感!绝佳的NDI体验! 10x-20x的选择 P110—10x 适用小型演播室和会议室 P120—20x 更大变倍,迎合更大场所 360莫霍克Tall…

升腾C92安装ubuntu20.10

最近某鱼120块收了个升腾C92瘦客户机,j1800/2g/8g/5*usb/千兆网卡的配置,平时用作跳板,blog或者存储什么的挺合适 折腾 如果不能U盘启动需要刷BIOS,如果有需要刷的请去我的资源下载,有详细说明 https://download.csdn…

台达DELTA电源维修SM660-AR-11DELTA ELEKTRONIKA电源

DELTA台达电源维修系列包括: Delta Elektronika SM6000系列 Delta Elektronika SM3300系列 Delta Elektronika SM1500系列 Delta Elektronika SM800系列 Delta Elektronika ES300系列 Delta Elektronika ES150系列 Delta Elektronika EST150系列 Delta Elek…

【Python】高级语法:推导式、迭代器、生成器、装饰器

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 一、推导式1.列表推导式2.集合推导式3.字典推导式 二、迭代器三、生成器1.yield 生成器2.元组生成器3.生成器中重要方法 四、装饰器1.函数装饰…

Python和c语言爬虫如何选择?

Python是最受欢迎的爬虫语言之一,因为它易于学习和使用,有大量的库和框架可供选择。JavaScript通常用于Web爬虫,因为它可以直接在浏览器中运行,可以轻松地从动态网站中提取数据。java是一种广泛使用的语言,它有很多强大…