NVIDIA AGX Xavier環境配置

NVIDIA AGX Xavier環境配置

簡介

最近有在Xavier上部署算法的需求,熟悉了一下基礎環境配置過程,由於踩了不少坑才最後跑出來一個opencv實時跟蹤的demo,故此記錄一下。

Anaconda環境配置

對於深度學習而言,環境的隔離還是很重要的,其中Anaconda是本人最常使用的虛擬環境管理器,由於Xavier是基於ARM架構的,常用的Anaconda方法並不適用,這裏參考kev的教程,下面簡述一下安裝過程。

首先,下載安裝shell腳本,使用下述命令。

wget https://github.com/Archiconda/build-tools/releases/download/0.2.3/Archiconda3-0.2.3-Linux-aarch64.sh

下載之後,使用下述命令進行Anaconda的安裝,

bash Archiconda3-0.2.3-Linux-aarch64.sh

在kev的教程中使用sudo權限進行安裝,這樣後續的環境創建等有關的conda命令都需要sudo權限,所以我這裏直接以用戶權限進行安裝。安裝過程主要是協議的接受、安裝目錄的選擇(默認家目錄)、是否建立conda命令的環境變量(更新~/.bashrc文件),都同意即可。
此時輸入conda -V命令查看安裝情況會找不到命令,需要重開終端或者source ~/.bashrc更新環境變量。

在這裏插入圖片描述

關於Anaconda的使用與其他平臺一致(可以參考我的博客),創建環境等命令都是相同的。國內源修改使用下述命令即可,前兩條命令是添加兩個清華源,最後一條命令是設置安裝包時源可見。使用國內源會大大加快環境創建和包安裝的速度。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

常用包安裝

關於包的安裝kev也給出了相關的教程需要注意的是,由於Xavier基於ARM架構,直接pip安裝的軟件可能下載後無法安裝,參照kev的教程安裝常用包是比較合理的選擇。

下面重點提兩個包的安裝,分別是PyTorch和opencv-python。

PyTorch的安裝就需要手動下載合適的版本的whl文件,如PyTorch1.4(兼容CUDA10.2)的下載地址如下。具體的不同版本下載地址,這裏給出鏈接

https://nvidia.box.com/shared/static/c3d7vm4gcs9m728j6o5vjay2jdedqb55.whl

下載後使用pip install *.whl命令安裝即可,*代表文件名。我個人安裝的CUDA10.0所以選擇的torch1.3.0,安裝在虛擬環境下,安裝後測試可用性如下圖。

在這裏插入圖片描述

在Xavier不能通過pip install opencv-python,因爲沒有相關的發行版。需要先手動編譯安裝opencv,再在相關的Python環境的site-packages目錄下添加文件。

源碼安裝opencv的參考鏈接如下,該鏈接是一個一鍵安裝的shell腳本,也可以自己按照源碼安裝的思路下載opencv源碼進行安裝。

安裝後默認會建立Python2的opencv-python的鏈接,這其實沒什麼用,一方面Python2已經逐漸不被維護,另一方面即使建立了Python3的鏈接也不會建立到虛擬環境的Python環境中,所以這裏需要手動操作。

操作代碼如下,其中源文件在系統的Python目錄的dist-packages目錄下(系統Python不同則可能和下述代碼命令不同),目標文件夾爲當前Python環境的site-packages目錄下。

sudo cp /usr/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-aarch64-linux-gnu.so /home/nvidia/archiconda3/envs/torch/lib/python3.6/site-packages

當前虛擬環境的site-packages目錄通過激活環境後which python命令查看,把最後的/bin/python替換爲/lib/python3.6/site-packages即可。

在這裏插入圖片描述

使用下述代碼進行測試,結果如下。

import cv2

cap = cv2.VideoCapture(0)
while True:
    ret, frame = cap.read()
    cv2.imshow('cam', frame)
    if cv2.waitKey(10) == ord("q"):
        break
cap.release()
cv2.destroyAllWindows()

在這裏插入圖片描述

補充說明

本文主要介紹Xavier上環境的基本配置,關於一些特殊的包的安裝(如scipy)使用pip進行編譯安裝時會失敗,這裏直接使用conda安裝對應包即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章