티스토리 뷰
728x90
출처
- Getting started with the NVIDIA Jetson Nano - PyImageSearch
- Is there any demos available for python jetson inference - NVIDIA Developer Forums
- Official TensorFlow for Jetson Nano !!! - NVIDIA Developer Forums
- Install OpenCV 4 on your Raspberry Pi - PyImageSearch
- [OpenCV 설치] Ubuntu OpenCV 설치, C++ 테스트
- How to find OpenCV version in Python and C++ ? | Learn OpenCV
- 4.0.0 does not produce pkgconfig file · Issue #13154 · opencv/opencv · GitHub
라즈비안(Raspberry pi OS)의 업데이트와 업그레이드
$ sudo apt-get update && sudo apt-get upgrade
OpenCV 4.1 관련 패키지 설치
OpenCV 빌드 관련 도구 설치
$ sudo apt-get install git cmake $ sudo apt-get install libatlas-base-dev gfortran $ sudo apt-get install libhdf5-serial-dev hdf5-tools $ sudo apt-get install python3-dev
OpenCV 4.1 용 Python 3 가상 환경 구성
pip 설치
$ wget https://bootstrap.pypa.io/get-pip.py $ sudo python3 get-pip.py WARNING: The directory '/home/bluesanta/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. WARNING: The directory '/home/bluesanta/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting pip Downloading https://files.pythonhosted.org/packages/62/ca/94d32a6516ed197a491d17d46595ce58a83cbb2fca280414e57cd86b84dc/pip-19.2.1-py2.py3-none-any.whl (1.4MB) |████████████████████████████████| 1.4MB 150kB/s Collecting setuptools Downloading https://files.pythonhosted.org/packages/ec/51/f45cea425fd5cb0b0380f5b0f048ebc1da5b417e48d304838c02d6288a1e/setuptools-41.0.1-py2.py3-none-any.whl (575kB) |████████████████████████████████| 583kB 379kB/s Collecting wheel Downloading https://files.pythonhosted.org/packages/bb/10/44230dd6bf3563b8f227dbf344c908d412ad2ff48066476672f3a72e174e/wheel-0.33.4-py2.py3-none-any.whl ERROR: launchpadlib 1.10.6 requires testresources, which is not installed. Installing collected packages: pip, setuptools, wheel Successfully installed pip-19.2.1 setuptools-41.0.1 wheel-0.33.4 $ rm get-pip.py
virtualenv, virtualenvwrapper 설치
$ sudo pip install virtualenv virtualenvwrapper
python3, virtualenv 환경설정
$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile $ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile $ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile $ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile $ source ~/.profile
가상환경을 만들기
$ mkvirtualenv cv -p python3 Already using interpreter /usr/bin/python3 Using base prefix '/usr' New python executable in /home/pi/.virtualenvs/cv/bin/python3 Also creating executable in /home/pi/.virtualenvs/cv/bin/python Installing setuptools, pip, wheel... done. virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/cv/bin/predeactivate virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/cv/bin/postdeactivate virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/cv/bin/preactivate virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/cv/bin/postactivate virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/cv/bin/get_env_details
workon 명령을 사용하여 cv 환경에 있는지 확인
pi@raspberrypi:~$ workon cv
(cv) pi@raspberrypi:~$
numpy 파이썬 패키지 설치(OpenCV관련 수학 함수 모음)
pi@raspberrypi:~$ workon cv (cv) pi@raspberrypi:~$ pip install numpy Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Collecting numpy Using cached https://www.piwheels.org/simple/numpy/numpy-1.16.4-cp37-cp37m-linux_armv7l.whl Installing collected packages: numpy Successfully installed numpy-1.16.4 (cv) pi@raspberrypi:~$ python Python 3.7.3 (default, Apr 3 2019, 05:39:12) [GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> quit()
TensorFlow 설치 : NVIDIA는 Jetson Nano의 TensorFlow 공식 릴리스를 제공
$ pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu==1.13.1+nv19.3 Successfully installed absl-py-0.7.1 astor-0.8.0 gast-0.2.2 grpcio-1.22.0 h5py-2.9.0 keras-applications-1.0.8 keras-preprocessing-1.1.0 markdown-3.1.1 mock-3.0.5 protobuf-3.9.0 six-1.12.0 tensorboard-1.13.1 tensorflow-estimator-1.13.0 tensorflow-gpu-1.13.1+nv19.3 termcolor-1.1.0 werkzeug-0.15.5
scipy, keras 설치
$ pip install scipy $ pip install keras
Jetson Inference 컴파일 및 설치
$ cd ~ $ git clone https://github.com/dusty-nv/jetson-inference $ cd jetson-inference $ git submodule update --init $ mkdir build $ cd build/ $ cmake ../ $ make $ sudo make install
이미지 인식 예제 실행
$ cd aarch64/bin $ python3 my-recognition.py --network=googlenet black_bear.jpg jetson.inference.__init__.py jetson.inference -- initializing Python 3.6 bindings... jetson.inference -- registering module types... jetson.inference -- done registering module types jetson.inference -- done Python 3.6 binding initialization jetson.utils.__init__.py jetson.utils -- initializing Python 3.6 bindings... jetson.utils -- registering module functions... jetson.utils -- done registering module functions jetson.utils -- registering module types... jetson.utils -- done registering module types jetson.utils -- done Python 3.6 binding initialization [image] loaded 'black_bear.jpg' (800 x 656, 3 channels) jetson.inference -- PyTensorNet_New() jetson.inference -- PyImageNet_Init() jetson.inference -- imageNet loading build-in network 'googlenet' imageNet -- loading classification network model from: -- prototxt networks/googlenet.prototxt -- model networks/bvlc_googlenet.caffemodel -- class_labels networks/ilsvrc12_synset_words.txt -- input_blob 'data' -- output_blob 'prob' -- batch_size 1 [TRT] TensorRT version 5.1.6 [TRT] loading NVIDIA plugins... [TRT] Plugin Creator registration succeeded - GridAnchor_TRT [TRT] Plugin Creator registration succeeded - NMS_TRT [TRT] Plugin Creator registration succeeded - Reorg_TRT [TRT] Plugin Creator registration succeeded - Region_TRT [TRT] Plugin Creator registration succeeded - Clip_TRT [TRT] Plugin Creator registration succeeded - LReLU_TRT [TRT] Plugin Creator registration succeeded - PriorBox_TRT [TRT] Plugin Creator registration succeeded - Normalize_TRT [TRT] Plugin Creator registration succeeded - RPROI_TRT [TRT] Plugin Creator registration succeeded - BatchedNMS_TRT [TRT] completed loading NVIDIA plugins. [TRT] detected model format - caffe (extension '.caffemodel') [TRT] desired precision specified for GPU: FASTEST [TRT] requested fasted precision for device GPU without providing valid calibrator, disabling INT8 [TRT] native precisions detected for GPU: FP32, FP16 [TRT] selecting fastest native precision for GPU: FP16 [TRT] attempting to open engine cache file networks/bvlc_googlenet.caffemodel.1.1.GPU.FP16.engine [TRT] cache file not found, profiling network model on device GPU [TRT] device GPU, loading networks/googlenet.prototxt networks/bvlc_googlenet.caffemodel [TRT] retrieved Output tensor "prob": 1000x1x1 [TRT] retrieved Input tensor "data": 3x224x224 [TRT] device GPU, configuring CUDA engine [TRT] device GPU, building FP16: ON [TRT] device GPU, building INT8: OFF [TRT] device GPU, building CUDA engine (this may take a few minutes the first time a network is loaded) [TRT] device GPU, completed building CUDA engine [TRT] network profiling complete, writing engine cache to networks/bvlc_googlenet.caffemodel.1.1.GPU.FP16.engine [TRT] device GPU, completed writing engine cache to networks/bvlc_googlenet.caffemodel.1.1.GPU.FP16.engine [TRT] device GPU, networks/bvlc_googlenet.caffemodel loaded [TRT] device GPU, CUDA engine context initialized with 2 bindings [TRT] binding -- index 0 -- name 'data' -- type FP32 -- in/out INPUT -- # dims 3 -- dim #0 3 (CHANNEL) -- dim #1 224 (SPATIAL) -- dim #2 224 (SPATIAL) [TRT] binding -- index 1 -- name 'prob' -- type FP32 -- in/out OUTPUT -- # dims 3 -- dim #0 1000 (CHANNEL) -- dim #1 1 (SPATIAL) -- dim #2 1 (SPATIAL) [TRT] binding to input 0 data binding index: 0 [TRT] binding to input 0 data dims (b=1 c=3 h=224 w=224) size=602112 [TRT] binding to output 0 prob binding index: 1 [TRT] binding to output 0 prob dims (b=1 c=1000 h=1 w=1) size=4000 device GPU, networks/bvlc_googlenet.caffemodel initialized. [TRT] networks/bvlc_googlenet.caffemodel loaded imageNet -- loaded 1000 class info entries networks/bvlc_googlenet.caffemodel initialized. class 0295 - 0.989919 (American black bear, black bear, Ursus americanus, Euarctos americanus) image is recognized as 'American black bear, black bear, Ursus americanus, Euarctos americanus' (class #295) with 98.991907% confidence jetson.utils -- freeing CUDA mapped memory PyTensorNet_Dealloc()
예제 : 카메라를 사용하여 이미지 분류
컴파일
$ cd ~/jetson-inference/build/ $ make imagenet-camera [100%] Built target imagenet-camera
실행
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 튜닝쇼 2008
- NDK
- 일본여행
- sas2009
- Delphi Tip
- Delphi
- koba2010
- flex
- oracle
- 레이싱모델 익스트림 포토 페스티벌
- JavaScript
- Spring
- 지스타2007
- 서울오토살롱
- ffmpeg
- Mac
- ubuntu
- BPI-M4
- ble
- 전예희
- android
- 동경
- Linux
- Spring MVC
- SAS
- KOBA
- MySQL
- Java
- 송주경
- Xcode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함