객체 탐지

윈도우에 TensorFlow Object Detection API (텐서플로우 오브젝트 디텍션 API)설치하기

HooSL 2021. 12. 29. 12:37

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

 

Installation — TensorFlow 2 Object Detection API tutorial documentation

Anaconda Python 3.8 (Optional) Although having Anaconda is not a requirement in order to install and use TensorFlow, I suggest doing so, due to it’s intuitive way of managing packages and setting up new virtual environments. Anaconda is a pretty useful t

tensorflow-object-detection-api-tutorial.readthedocs.io

위 링크를 참고해서 만들었습니다.

 

 

먼저 아나콘다가 설치 되어있어야합니다.

https://www.anaconda.com/products/individual

 

Anaconda | Individual Edition

Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

다 설치를 하셨다면, 비쥬얼 스튜디오 코드에서 cmd 터미널 창띄웁니다

(비쥬얼 스튜디오 코드 상단바에 terminal에서  new terminal 누릅니다.)

+ 옆에 화살표를 눌러 command prompt를 누르고 왼쪽에 (base)가 나오는지 확인합니다.

 

여기까지 하셨다면 이제 파이썬 가상환경을 만들어야합니다.

해당 터미널에

#가상환경 만들기

conda create -n tensorflow pip python=3.9

-n 뒤에 tensorflow는 가상환경 이름이므로 다른걸로 하셔도 됩니다.

저는 tensorflow를 이름으로 설정하겠습니다.

 

다 만드셨다면

#가상환경 활성화

conda activate tensorflow

입력하시면 (base)가 (tensorflow)로 변경 되었을 겁니다.

 

그곳에 tensorflow pip 패키지를 설치해줍니다.

#텐서플로우 설치

pip install --ignore-installed --upgrade tensorflow==2.5.0

 

설치가 완료되면 설치 확인을 합니다.

#설치 확인

python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

터미널에서 실행했을때

#설치가 잘됐는지 확인하는 출력물입니다 실행하지 않습니다.

2020-06-22 19:20:32.614181: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
2020-06-22 19:20:32.620571: 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.
2020-06-22 19:20:35.027232: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2020-06-22 19:20:35.060549: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1561] Found device 0 with properties:
pciBusID: 0000:02:00.0 name: GeForce GTX 1070 Ti computeCapability: 6.1
coreClock: 1.683GHz coreCount: 19 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 238.66GiB/s
2020-06-22 19:20:35.074967: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
2020-06-22 19:20:35.084458: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cublas64_10.dll'; dlerror: cublas64_10.dll not found
2020-06-22 19:20:35.094112: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cufft64_10.dll'; dlerror: cufft64_10.dll not found
2020-06-22 19:20:35.103571: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'curand64_10.dll'; dlerror: curand64_10.dll not found
2020-06-22 19:20:35.113102: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cusolver64_10.dll'; dlerror: cusolver64_10.dll not found
2020-06-22 19:20:35.123242: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cusparse64_10.dll'; dlerror: cusparse64_10.dll not found
2020-06-22 19:20:35.140987: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2020-06-22 19:20:35.146285: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1598] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
2020-06-22 19:20:35.162173: I tensorflow/core/platform/cpu_feature_guard.cc:143] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2020-06-22 19:20:35.178588: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x15140db6390 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-06-22 19:20:35.185082: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2020-06-22 19:20:35.191117: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1102] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-06-22 19:20:35.196815: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1108]
tf.Tensor(1620.5817, shape=(), dtype=float32)

위와 흡사하게 출력이되어야 합니다.

 

tensorflow를 설치했으므로 이제 tensorflow object detection API를 설치할 차례입니다.

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

해당 깃허브 사이트에서 zip파일을 다운로드 해줍니다.

설치후 압축을 풀고 나면 

원하시는 위치에 원하는 폴더안에 models 폴더명에 파일이 들어가있어야 합니다.

 

그리고 cmd 터미널에서

#해당경로는 제 경로입니다 research가 있는 경로로 해주세요

cd C:\Users\5-1\Documents\TensorFlow\models\research

이렇게 나와야합니다.

 

이제 Protobuf를 설치하겠습니다.

https://github.com/protocolbuffers/protobuf/releases

 

Releases · protocolbuffers/protobuf

Protocol Buffers - Google's data interchange format - protocolbuffers/protobuf

github.com

위 사이트에 들어가서 os에 맞는 버전을 설치 합니다.

압축을 풀고 해당 파일을 C:\Program Files\Google Protobuf 해당 경로 폴더안에 넣어줍니다.

Google Protobuf 폴더를 새로 만들어줘야합니다.

해당 경로로 압축해제한 파일들 다 옮겨주시면 환경 변수 설정을 해줘야합니다.

 

윈도우 시작 옆 검색창에 시스템 환경 변수 편집에 들어갑니다.

환경변수에 들어갑니다

Path를 누르시고 편집에 들어갑니다.

방금 설치한 Google Protobuf 폴더안에 bin폴더를 선택해주고 창 3개 모두 확인을 눌러줍니다.

 

이제 COCO API를 설치해줍니다.

#싸이썬 설치

pip install cython

cmd 터미널에서 cython 설치해주시고

 

pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

cmd 터미널에 입력해서 설치해줍니다.

만약 애러가 나온다면

https://visualstudio.microsoft.com/ko/visual-cpp-build-tools/

 

Microsoft C++ Build Tools - Visual Studio

Microsoft C++ Build Tools는 Visual Studio 없이 스크립트 가능한 독립 실행형 설치 관리자를 통해 MSVC 도구 집합을 제공합니다. 명령줄에서 Windows를 대상으로 하는 C++ 라이브러리 및 애플리케이션을 빌드

visualstudio.microsoft.com

여기서 툴을 설치해줍니다.

설치하실때 C++를 사용한 데스크톱 개발에 체크해주세요.

설치가 됐다면 위 COCO API 설치가 원활하게 됩니다.

 

다음 object detection API를 설치합니다

복사를 해야하지만 cp는 윈도우 명령어가 아니기 때문에 따로 power shell을 실행시켜 복사해줍니다.

윈도우 시작 버튼 옆에 검색창에서 windows power shell을 실행시켜서 위 명령어를 실행시키고 종료합니다

power shell을 실행시키면 경로가 C에 사용자 사용자 이름으로 되어있을 겁니다.

그래서 위치를 위 깃허브에서 설치하고 저장했던 modelsdp research로 가주셔야 합니다.

리눅스 명령어인 cd를 이용해 해당경로를 적어줍니다.

#파워셀에서 실행

cp object_detection/packages/tf2/setup.py .

제가 모델을 저장한 경로는 C:\Users\5-1\Documents\TensorFlow\models\research 이기때문에 여기로 먼저 와서 위 명령어를 입력했습니다.

 

 

그리고 다시 비쥬얼 스튜디오 코드 cmd 터미널에서 

python -m pip install --use-feature=2020-resolver .

해당 코드를 실행시켜줍니다.

설치가 완료되었으면

#설치 테스트

python object_detection/builders/model_builder_tf2_test.py

위 코드를 실행 시키면 

# 실행하지 않습니다 이 코드는 설치 확인용입니다.

...
[       OK ] ModelBuilderTF2Test.test_create_ssd_models_from_config
[ RUN      ] ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update): 0.0s
I0608 18:49:13.183754 29296 test_util.py:2102] time(__main__.ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update): 0.0s
[       OK ] ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update
[ RUN      ] ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold): 0.0s
I0608 18:49:13.186750 29296 test_util.py:2102] time(__main__.ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold): 0.0s
[       OK ] ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold
[ RUN      ] ModelBuilderTF2Test.test_invalid_model_config_proto
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_model_config_proto): 0.0s
I0608 18:49:13.188250 29296 test_util.py:2102] time(__main__.ModelBuilderTF2Test.test_invalid_model_config_proto): 0.0s
[       OK ] ModelBuilderTF2Test.test_invalid_model_config_proto
[ RUN      ] ModelBuilderTF2Test.test_invalid_second_stage_batch_size
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_second_stage_batch_size): 0.0s
I0608 18:49:13.190746 29296 test_util.py:2102] time(__main__.ModelBuilderTF2Test.test_invalid_second_stage_batch_size): 0.0s
[       OK ] ModelBuilderTF2Test.test_invalid_second_stage_batch_size
[ RUN      ] ModelBuilderTF2Test.test_session
[  SKIPPED ] ModelBuilderTF2Test.test_session
[ RUN      ] ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor): 0.0s
I0608 18:49:13.193742 29296 test_util.py:2102] time(__main__.ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor): 0.0s
[       OK ] ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor
[ RUN      ] ModelBuilderTF2Test.test_unknown_meta_architecture
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_unknown_meta_architecture): 0.0s
I0608 18:49:13.195241 29296 test_util.py:2102] time(__main__.ModelBuilderTF2Test.test_unknown_meta_architecture): 0.0s
[       OK ] ModelBuilderTF2Test.test_unknown_meta_architecture
[ RUN      ] ModelBuilderTF2Test.test_unknown_ssd_feature_extractor
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_unknown_ssd_feature_extractor): 0.0s
I0608 18:49:13.197239 29296 test_util.py:2102] time(__main__.ModelBuilderTF2Test.test_unknown_ssd_feature_extractor): 0.0s
[       OK ] ModelBuilderTF2Test.test_unknown_ssd_feature_extractor
----------------------------------------------------------------------
Ran 24 tests in 29.980s

OK (skipped=1)

이렇게 비슷하게 나오면 설치가 모두 끝났습니다

 

visual studio code를 종료하시고 다시 실행시켜주세요.

하단에 보시면

눌러주시고

방금 만든 가상환경이 보입니다.

눌러주시면 가상환경이 (base)가 아닌 (tensorflow)로 바뀝니다.