RaspberryPi4 TensorFlow

RaspberryPi4에 TensorFlow를 설치합니다.



여기를 참고로 설치

python3 가상 환경을 만듭니다.


$ mkdir tf_pi
$ cd tf_pi
$ sudo python3 -m pip install virtualenv
$ virtualenv env
$ source env/bin/activate
(env) pi@raspberrypi:~/tf_pi $ 

(env) pi@raspberrypi:~/tf_pi $ sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install keras_applications==1.0.8 --no-deps
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install keras_preprocessing==1.1.0 --no-deps
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install h5py==2.9.0
(env) pi@raspberrypi:~/tf_pi $ sudo apt-get install -y openmpi-bin libopenmpi-dev
(env) pi@raspberrypi:~/tf_pi $ sudo apt-get install -y libatlas-base-dev
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install -U six wheel mock


(env) pi@raspberrypi:~/tf_pi $ wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.0.0/tensorflow-2.0.0-cp37-none-linux_armv7l.whl
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip uninstall tensorflow
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install tensorflow-2.0.0-cp37-none-linux_armv7l.whl

이하의 에러가 출력되었을 경우는 tensorflow-2.0.0-cp37-none-linux_armv7l.whl을 삭제해 wget로 재취득해 pip를 실행한다.



ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them
grpcio>=1.8.6 from htps //w w. Piue ls. rg / shimp / grp shio / grp shio 1.28. whl#샤256=412아486f22257d975f06992d0888아3f9c후85f2943d9f33177b660c6b3에435에6 (from tensorflow==2.0.0):
Expected sha256 412a486f22257d975f06992d0888a3f9cfa85f2943d9f33177b660c6b3e435e6
Got 63d8a1fadb114e20c636f7006b1262ceb8d1816ded8e34dd48bfea0718ce83bd

가상 환경을 종료하고 다시 시작합니다.


(env) pi@raspberrypi:~/tf_pi $ deactivate 
pi@raspberrypi:~/tf_pi $ source env/bin/activate 
(env) pi@raspberrypi:~/tf_pi $ python3 
>>>import tensorflow
>>>tensorflow.__version__ 
'2.0.0'

가상 환경에 OpenCV 설치



가상 환경을 시작하고 다음 단계로 설치하면 OK.
htps : // 코 m / 미소라고 d / ms / 28235 또는 32d68cf9 6b3f
pi@raspberrypi:~/tf_pi $ source env/bin/activate 
CMAKE_INSTALL_PREFIX=/home/tf_pi/envにする。 
最後の部分は、sudo 無しで実行する。
(env) pi@raspberrypi:~/tf_pi$ make install 

가상 환경에 python3 picamera 모듈 설치


(env) pi@raspberrypi~/tf_pi $ easy_install3 --user -U picamera

가상 환경에 pillow, lxml, jupyter, matplotlib, cython, python-tk를 설치합니다.


(env) pi@raspberrypi:~/tf_pi$ python3 -m pip install pillow lxml jupyter matplotlib cython python-tk

Protobuf 설치


$ sudo apt-get install protobuf-compiler
$ protoc --version 
libprotoc 3.6.1

tensorflow의 저장소를 github에서 clone합니다.


(env) pi@raspberrypi:~/tf_pi$git clone --depth 1 https://github.com/tensorflow/models.git
パスを追加する。
(env) pi@raspberrypi:~/tf_pi$ vi ~/.bashrc
 export PYTHONPATH=$PYTHONPATH:/home/pi/tf_pi/models/research:/home/pi/tf_pi/models/research/slim:/home/pi/tf_pi/models/research/object_detection 

모델을 컴파일합니다.


(env) pi@raspberrypi:~/tf_pi$ cd models/research
(env) pi@raspberrypi:~/tf_pi$ protoc object_detection/protos/*.proto --python_out=.

SSDLite-MobileNet 모델 다운로드


(env) pi@raspberrypi:~/tf_pi$ cd models/research/object_detection
(env) pi@raspberrypi:~/tf_pi$ wget http://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz
(env) pi@raspberrypi:~/tf_pi$ tar -xzvf ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz

TensorFlow 모델 목록



오류 등



일단 파일 경로 등은 하드 코딩되어 있습니다.
여기 샘플을 움직이게했다.
ModuleNotFoundError: No module named 'utils'
PYTHONPATH에 다음을 추가하여 해결
/home/pi/tf_pi/models/research/object_detection

 
AttributeError: module 'tensorflow' has no attribute 'gfile'
/home/pi/tf_pi/models/research/object_detection/utils/label_map_util.py의 138 행 수정
- with tf.gfile.GFile(path, 'r') as fid:
+ with tf.io.gfile.GFile(path, 'r') as fid:

 
tensorflow.python.framework.errors_impl.NotFoundError: /home/pi/tf_pi/TensorFlow-Object-Detection-on-the-Raspberry-Pi/data/mscoco_label_map.pbtxt; No such file 

- PATH_TO_LABELS = os.path.join(CWD_PATH,'data','mscoco_label_map.pbtxt')^M
+ PATH_TO_LABELS = os.path.join('/home/pi/tf_pi/models/research/object_detection/data/mscoco_label_map.pbtxt')

tensorflow.python.framework.errors_impl.NotFoundError:/home/pi/tf_pi/TensorFlow-Object-Detection-on-the-Raspberry-Pi/ssdlite_mobilenet_v2_coco_2018_05_09/frozen_inference_graph.pb;
 - PATH_TO_CKPT = os.path.join(CWD_PATH,MODEL_NAME,'frozen_inference_graph.pb')
 + PATH_TO_CKPT = os.path.join('/home/pi/tf_pi/models/research/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09/frozen_inference_graph.pb')

이 시점에서의 결론



tensorflow v2계와 V1계로 API의 사양 차이가 있어 이번 시험한 샘플은 움직이지 않았다.
그래서 tensorflow2.0.0을 제거하고 tensorflow1.14를 설치하여 샘플이 움직였다.
이번, 역기로 고친 부분을 앞으로는 제대로 된 형태로 대책해 가려고 한다.

IMAGE ALT TEXT HERE

IMAGE ALT TEXT HERE

tensorflow1.14 설치


(env) pi@raspberrypi:~/tf_pi$ python3 -m pip uninstall tensorflow
(env) pi@raspberrypi:~/tf_pi$ wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.14.0-buster/tensorflow-1.14.0-cp37-none-linux_armv7l.whl
(env) pi@raspberrypi:~/tf_pi$ python3 -m pip install tensorflow-1.14.0-cp37-none-linux_armv7l.whl
(env) pi@raspberrypi:~/tf_pi$

참고



htps : // 기주 b. 코 m / 에 d ぇ ぇ ct 로에 cs / 천사 rF
htps : // まgぴ. 등 sp 베 ry 피. 오 rg / ar chi c ぇ s / 천식 rf ぉ
htps : // 기주 b. 코 m / l에 ぉ t 등 / 천사 rf ぉ

좋은 웹페이지 즐겨찾기