準備工作
- 一塊jetson Nano
- 一個SD卡,我這裏是64G的
- 從nvidia官網上燒錄鏡像到SD卡上,然後把SD卡插到nano裏,開機
安裝pytorch
Python 2.7
wget https://nvidia.box.com/shared/static/m6vy0c7rs8t1alrt9dqf7yt1z587d1jk.whl
-O torch-1.1.0a0+b457266-cp27-cp27mu-linux_aarch64.whl pip install torch-1.1.0a0+b457266-cp27-cp27mu-linux_aarch64.whl
Python 3.6
wget https://nvidia.box.com/shared/static/veo87trfaawj5pfwuqvhl6mzc5b55fbj.whl -O torch-1.1.0a0+b457266-cp36-cp36m-linux_aarch64.whl
pip3 install numpy torch-1.1.0a0+b457266-cp36-cp36m-linux_aarch64.whl
安裝opencv
由於無法使用pip3 install opencv-python 來直接安裝,所以我們使用從源碼安裝的方法:
-
下載opencv release版的source.zip
-
運行
cd opencv mkdir build cd build cmake .. make all sudo make install
安裝maskrcnn-benchmark
- cuda環境在nano的官方鏡像裏就已經有了,我們不需要關心。
- 這裏我沒有使用anaconda,因爲裝不上,估計是aarch64平臺的原因,這裏直接在系統的python3裏進行安裝:
pip3 install ninja yacs cython matplotlib tqdm --user -i https://pypi.tuna.tsinghua.edu.cn/simple
(我在運行這裏的時候裝ninja出現了No module named skbuild 的錯誤,原因是沒有裝scikit-build, pip3 install scikit-build 即可)
pip3 install pycocotools --user
git clone https://github.com/NVIDIA/apex.git
cd apex/
sudo python3 setup.py install --cuda_ext --cpp_ext --user
(運行這裏的時候出現了numpy,protobuf版本太低的錯誤,升級一下即可)
cd ..
git clone https://github.com/facebookresearch/maskrcnn-benchmark.git
cd maskrcnn-benchmark
sudo python3 setup.py build develop --user
運行maskrcnn-benchmark
由於jetson nano 只有4G的內存(顯存公用),所以運行稍微大點的模型的時候,虛擬內存是有必要的:
sudo dd if=/dev/zero of=/swap bs=1M count=2048
mkswap -f /swap
swapon /swap
然後運行demo/Mask_R-CNN_demo.ipnb文件,效果如下:
(記得要把cpu改成cuda):