sudo apt-get update -y
sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev -y
패키지 중 하나를 찾을 수 없는 경우 최신 버전 번호(eg. libdb5.3-dev 대신 libdb5.4-dev)를 사용하면 됨
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz
tar xf Python-3.7.6.tar.xz
cd Python-3.7.6
./configure
make -j 4
sudo make altinstall
아래에 openCV설치 할 때도 나오겠지만 서로 버전 호환을 위해 그냥 3.7.6 버전을 설치한다.
make -j 4에서 시간이 엄청나게 오래걸린다..
sudo rm -r Python-3.7.4
rm Python-3.7.4.tar.xz
용량 확보를 위해서라면 설치 완료 후 위 디렉터리와 파일은 삭제해도 무방하다.
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.0.0/tensorflow-2.0.0-cp37-none-linux_armv7l.whl
pip3 install tensorflow-2.0.0-cp37-none-linux_armv7l.whl
rm tensorflow-2.0.0-cp37-none-linux_armv7l.whl
현재까지는 tensorflow2.0 버전 이상은 설치가 안되는 것 같다.
python3 -c 'import tensorflow as tf;print(tf.__version__)'
이렇게 2.0.0 이 뜨면 설치 성공
처음 Raspbian을 설치하면, OS가 차지하지 않는 공간이 빈 별도의 파티션으로 존재하게 된다.
sudo raspi-config
sudo raspi-config을 입력 하고 6 Advanced Options을 선택그 다음 A1 Expand Filesystem을 선택하여 용량을 확장시키고
finish 하면 재부팅 하게 된다.
df -h
위 커맨드를 입력하여 디스크 프리 사이즈를 확인
sudo apt-get purge wolfram-engine
sudo apt-get purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove
확인 후 wolfram-engine나 libreoffice*가 없을수도 있는데, 있다면 용량확보를 위해 프로젝트 진행에 필요없는 파일들을 제거한다.
sudo apt-get update && sudo apt-get upgrade
먼저 apt-get 업데이트, 업그레이드는 습관적으로 해준다.
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libfontconfig1-dev libcairo2-dev
sudo apt-get install libgdk-pixbuf2.0-dev libpango1.0-dev
sudo apt-get install libgtk2.0-dev libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103
sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
sudo apt-get install python3-dev
sudo apt-get install python-pip
pip install Pillow
업데이트 후 cmake를 포함한 각종 개발 툴들을 하나하나 설치해준다.
일일이 복붙하는게 좀 귀찮지만 전체를 그대로 붙혀넣으니 설치 [ y / n ]에서 n로 인식하더라
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo python3 get-pip.py
sudo rm -rf ~/.cache/pip
get-pip를 받아와서 파이썬2, 파이썬3 각각 pip 설치후 캐시 삭제
sudo pip install virtualenv virtualenvwrapper
방금 설치한 pip를 이용하여 가상환경 패키지들을 설치
nano ~/.bashrc
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_ENV_BIN_DIR=bin
위처럼 ~/.bashrc 쉘 스크립트 맨 끝에 위 소스를 추가하여
workon "가상환경 이름"
처럼 가상환경에 접속할 수 있도록 설정한다.
source ~/.bashrc
쉘스크립트를 다시 컴파일하여 시스템에 수정사항을 적용시킴
mkvirtualenv cv -p python3
cv라는 이름으로 가상환경을 생성하고 파이썬은 파이썬3으로 설정한다.
pip install "picamera[array]"
그리고 자동으로 활성화된 가상환경에서 picamera를 설치한다.
pip install opencv-contrib-python==4.1.0.25
파이썬 3.7.6에서 위 커맨드로 openCV4.1 버전을 설치하면 문제가 발생하지 않음.
python3 -c 'import cv2;print(cv2.__version__)'
openCV가 잘설치되었는지 버전을 확인해본다.
위 사진처럼 4.1.0이라고 나오면 설치 성공
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.0.0/tensorflow-2.0.0-cp37-none-linux_armv7l.whl
pip3 install tensorflow-2.0.0-cp37-none-linux_armv7l.whl
rm tensorflow-2.0.0-cp37-none-linux_armv7l.whl
처음에 설치 했을 때 처럼 가상환경에서도 다시 설치한다.
그리고 나중에 프로젝트를 진행하다 보면
Traceback (most recent call last):
model = tf.keras.models.load_model("digits_model.h5")
File "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/save.py", line 146, in load_model
return hdf5_format.load_model_from_hdf5(filepath, custom_objects, compile)
File "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/hdf5_format.py", line 166, in load_model_from_hdf5
model_config = json.loads(model_config.decode('utf-8'))
AttributeError: 'str' object has no attribute 'decode'
h5모델을 불러올 때 위와 같은 에러가 발생하게 되는데,
tensorflow v2.0 와 openCV v4.1조합에서 h5py 패키지와의 호환성문제로 보인다.
pip install h5py==2.10.0
로 h5py의 버전을 낮추면 위 에러가 해결된다.
안녕하세요! 혹시 텐서플로 실행할 때는 파일을 어디서 찾을 수 있을까요??