기술

Real Time Face Mask Detection with Tensorflow and Python | Custom Object Detection w/ MobileNet SSD 구현하기

기술 공간 2022. 2. 4. 01:18

리눅스 서버에서 https://www.youtube.com/watch?v=IOI0o3Cxv9Q&ab_channel=NicholasRenotte 를 따라해봤다.

-> 이거 구현하려고 하고 있는데, 에러가 자꾸 나온다..

아래는 그 해결과정을 적어두려고 한다.

 

 

 

 

 

 

https://bioinfoblog.tistory.com/entry/Jupyter-서버-환경에서-주피터-Jupyter-lab-실행-및-연결

 

[Jupyter] 서버 환경에서 주피터 (Jupyter lab) 실행 및 연결

Jupyter는 코드 문서화에 굉장히 유용하고, 원격으로 서버에 접속할 때 사용할 수 있는 프로그램이다. 서버에서 Jupyter를 실행하여 이를 통해 그 서버에 원격으로 접속할 수 있는 방법을 포스팅하

bioinfoblog.tistory.com

 

https://jvvp.tistory.com/1192

 

주피터 노트북(jupyter notebook) 원격 접속

설정 config 파일을 생성합니다. $ jupyter notebook --generate-config ~ 경로(User home) 밑에 다음과 같은 config 파일이 생성되었습니다. /home/v2j/.jupyter/jupyter_notebook_config.py 파일을 열어서 수정..

jvvp.tistory.com

 

 

->위 두개 읽고, 추론해서 문제해결 가능

 

 

 

 

https://www.tensorflow.org/install/pip?hl=ko 

 

pip를 사용하여 TensorFlow 설치

Help protect the Great Barrier Reef with TensorFlow on Kaggle Join Challenge pip를 사용하여 TensorFlow 설치 TensorFlow 2 패키지 사용 가능 tensorflow - CPU와 GPU 지원이 포함된 안정적인 최신 출시(Ubuntu 및 Windows) tf-nightly -

www.tensorflow.org

 

->pip으로 tensorflow 설치

 

https://github.com/tensorflow/models

 

GitHub - tensorflow/models: Models and examples built with TensorFlow

Models and examples built with TensorFlow. Contribute to tensorflow/models development by creating an account on GitHub.

github.com

 

->object_detection.util 어쩌구 에러뜨면, 여기서 웹페이지 들어가서, 해당 에러뜬 프로그램 디렉토리에 git clone해서 각종 코드 저장

 

 

https://boysboy3.tistory.com/98

 

Anaconda(spyder)를 이용한 Tensorflow Object Detection API

모든글 작성은 내 이해를 돕고자 작성하였다. 6월 15일에 tensorflow가 업데이트 되면서 In addition to our base Tensorflow detection model definitions, this release includes: A selection of trainable det..

boysboy3.tistory.com

->

ImportError: cannot import name 'string_int_label_map_pb2'

이런 에러 떴을때, 

 

https://github.com/protocolbuffers/protobuf/releases/tag/v3.19.4

 

Release Protocol Buffers v3.19.4 · protocolbuffers/protobuf

Python Make libprotobuf symbols local on OSX to fix issue #9395 (#9435) Ruby Fixed a data loss bug that could occur when the number of optional fields in a message is an exact multiple of 32. (#...

github.com

->여기서

이 파일 링크주소 복사후, 터미널에 $ wget (복사한 링크주소 복붙)

이렇게 하면 다운로드됨.

 

그리고 해당 위치에서 , $ unzip (방금 다운로드 받은 파일이름)

 

https://boysboy3.tistory.com/98

 

Anaconda(spyder)를 이용한 Tensorflow Object Detection API

모든글 작성은 내 이해를 돕고자 작성하였다. 6월 15일에 tensorflow가 업데이트 되면서 In addition to our base Tensorflow detection model definitions, this release includes: A selection of trainable det..

boysboy3.tistory.com

-> 다시 여기서 문제를 해결했다

정확히 말하면, 이부분 읽고나서 해결함

 

 

 

+공부해야할 부분

https://www.tensorflow.org/api_docs/python/tf/io/gfile/GFile

 

tf.io.gfile.GFile  |  TensorFlow Core v2.8.0

File I/O wrappers without thread locking.

www.tensorflow.org

 

 

ModuleNotFoundError: No module named 'tf_slim' 이런에러 떴을때, 

-> $pip install tf_slim

 

 

ModuleNotFoundError: No module named 'pycocotools' 이런에러 떴을때, 

$ pip install pycocotools 로 해결함

 

 

ModuleNotFoundError: No module named 'lvis' 이런 에러 떴을때,

->

pip install lvis

로 해결함

 

 

  File "/home/youngsoonamgoong/src/realtime/RealTimeObjectDetection/Tensorflow/models/research/object_detection/object_detection/eval_util.py", line 37, in <module>
    from object_detection.protos import eval_pb2
ImportError: cannot import name 'eval_pb2'             에러떴을때,

->

https://github.com/datitran/object_detector_app 여기에서 git clone 해서, 

object_detector_app/object_detection/protos/eval_pb2.py 에 있는, 이 eval_pb2.py 파일을 에러가 발생한 파일의 디렉토리에 넣어준다.

그리고 오류가 발생한, eval_util.py 파일의 37번째 줄에 있는 코드를 다음과 같이 수정함.

    from object_detection.protos import eval_pb2   -> from . import eval_pb2

 

 

 

 

 

->여기 에러에서 막혔다.

 

 

 

 

+참고------------------------------------------

터미널에서  
$ export PATH=(어쩌구)
: 환경변수인 PATH에 (어쩌구)라는 값을 할당

터미널에서
$ echo ${PATH}
: 환경변수인 PATH의 값을 echo 로 출력

 

참고

-------------------------------------------------

 

 

 

########################################################################################

동영상 올린사람이 tensorflow api 설치 방법에 관한 영상도 올렸었다. 한번 보자. 이걸로 위 문제가 해결될지도 모른다.

https://www.youtube.com/watch?v=dZh_ps8gKgs&list=PLgNJO2hghbmhUeJuv7PyVYgzhlgt2TcSr&ab_channel=NicholasRenotte 

 

 

오케이 이거보고 따라했고,

하다가 빨간 글씨로 아래와 같은 에러 뜸

ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly ... 어쩌구 저쩌구 엄청 긴 에러 메시지...

 

https://stackoverflow.com/questions/63732353/error-could-not-build-wheels-for-opencv-python-which-use-pep-517-and-cannot-be

 

ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly

I was trying to install OpenCV4 in a docker on jetson nano. It has jetpack 4.4 s os. The docker was successfully created and Tensorflow is running but while installing OpenCV using pip it is showing

stackoverflow.com

여기서 

->이걸로 해결함

 

또 무슨 이상한 permission 에러가 떴다.

[python] pip install error - Consider using the `--user` option or check the permissions.

 

anaconda prompt 를 관리자권한으로 켜서, 커맨드를 입력했는데도, 계속 permission 에러가 떳다.

그래서 이번엔 

 

https://potensj.tistory.com/73

 

[TIL] pip, pip3 install 중 permission 관련 오류 해결

aws ec2 linux 서버에서 pip3 install 중 다음과 같은 에러가 발생하였습니다. "Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/lib64/python3.6/site-packages/nu..

potensj.tistory.com

->여기서 커맨드에 --user 옵션을 붙여주면 해결된다고 하는데,,,, 왜 이 옵션이 필요한지는 모르겠지만,, --user keras 를 추가해서 커맨드를 쳐보기로 했다.

 

$ python -m pip install --user keras .

라고 커맨드를 쳤다.

해결됐다.

#######################################################################################

 

 

 

 

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

내 노트북에서 위와 같이 tensorflow api 환경설정을 해줬으니, 

 

내 노트북에서 이제, 다시 https://www.youtube.com/watch?v=IOI0o3Cxv9Q&ab_channel=NicholasRenotte  를 따라했다.

 

$ conda install -c anaconda pandas

$ conda install wrapt

$ conda install -c omnia termcolor

 

중간에

$ wget 명령이 안먹힌다.

https://www.youtube.com/watch?v=CkpTEJH6xkg&ab_channel=Ndikrulil 

이걸로 해결함.

 

$ conda install cycler

 

 

 

이제 중간에 

터미널에서 

$ python Tensorflow/models/research/object_detection/model_main_tf2.py --model_dir=Tensorflow/workspace/models/my_ssd_mobnet --pipeline_config_path=Tensorflow/workspace/models/my_ssd_mobnet/pipeline.config --num_train_steps=5000

를 실행시켰는데,,,

 

2022-02-08 12:59:06.173901: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
2022-02-08 12:59:06.174076: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

 

이런 에러 메시지가 떴다.

검색해보니까, "cudart64_110.dll" 에서 "110"이 CUDA 11.0 버전을 의미하는거란다.

(출처: https://leunco.tistory.com/13 )

 

여기에서 ( https://developer.nvidia.com/cuda-11.0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exenetwork )

네 운영체제 상황에 맞춰서 CUDA11.0 설치파일을 다운로드받았다. (기본설정대로 따라서 설치했음) 

그랬더니 이제 위 에러메시지는 사라짐.

 

 

 

근데 또 

ModuleNotFoundError: No module named 'kiwisolver'

에러 뜸.

->

$ conda install -c anaconda kiwisolver 로 해결

 

 

ModuleNotFoundError: No module named 'scipy'

에러 뜸.

->

$ conda install -c anaconda scipy 로 해결

 

 

 

뭔가 에러가 안뜨는 것 같지만,,,

https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/install.html 에서

환경설정이 잘 되었는지 확인하기 위한 아래 명령을 터미널에 쳐보면,,,

원래는 출력이 이렇게 나와야 하는데....

2022-02-08 14:06:03.309016: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cusolver64_11.dll'; dlerror: cusolver64_11.dll not found 

라고... 또 에러가 뜬다...

 

검색해보니.. CUDA 버전에 맞게 tensorflow gpu 버전을 설치해야한다고 한다.

https://deep-deep-deep.tistory.com/83 

 

Tensorflow 에러 해결: Could not load dynamic library 'cusolver64_11.dll'; dlerror: cusolver64_11.dll not found. Cannot dlope

윈도우 10, CUDA 11.0 환경에서 pip install tensorflow 로 설치 시, Could not load dynamic library 'cusolver64_11.dll'; dlerror: cusolver64_11.dll not found. Cannot dlopen some GPU libraries. Please m..

deep-deep-deep.tistory.com

그래서 

$ pip install tensorflow_gpu==2.4.0

 

확인을 해보니, 내 노트북엔 이미 tensorflow 2.8.0 버전으로 설치되어있었다.

버전을 다운그레이드 해야할것 같다.

그래서

$ pip install --upgrade tensorflow_gpu==2.4.0

를 해보았다.

좀 잘되는가 싶더니..

어마어마하게 패키지 충돌이 일어난다...

 

 

 

 

 

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$