본문 바로가기
IT study/00. playdata_trace

tensorflow object detection api2 윈도우즈 설치

by Lacuna028 2021. 9. 28.
* 학습 내용
1. tensorflow object detection api를 git에서 clone
2. protobuf 설치
3. research/object_detection/protos 를 컴파일
4. setup.py 를 이용해 설치
5. pythonpath 설정 및 예제 코드 실행

1. tensorflow object detection api를 git에서 clone

- cmd 창을 열고 api를 다운받고자 하는 디렉토리 위치에서 아래 커맨드를 입력한다

(여기서는 c 드라이브/개인폴더(202107_lab)/tools에 다운받아 진행할 예정)

git clone https://github.com/tensorflow/models.git

- 해당 디렉토리로가서 zip파일 압축해제를 해준다.

- 다 다운받으면 models 라는 파일이 생성되었다.

 

 

2. protobuf 설치

- 아래 링크를 클릭하면 곧바로 protoc-3.14.0-win64.zip파일을 다운받을 수 있는 창이 뜬다.

https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protoc-3.14.0-win64.zip

- 아까 api를 다운받았던 디렉토리에 해당 zip파일을 설치한 후 압축을 해제해준다.

- 압축해제 후 bin폴더, include 폴더, readme.txt 파일이 생성된다. 
(만약 위 폴더들이 없고 protoc-3.14.0-win64 폴더가 생겼다면 해당 폴더에 들어가면 있다)

- 그 다음 bin을 path로 잡아주는 설정을 해줘야 한다. (bin 폴더의 디렉토리 주소를 복사한다)

    - 탐색기에서 내 pc를 클릭한 후 마우스 오른쪽 버튼 클릭, 속성에 들어간다

 

    - 시스템 속성창이 뜨면 창의 맨 오른쪽 혹은 맨 왼쪽의 ① 고급 시스템 설정에 들어간다

그 다음 ② 환경 변수 클릭

③ Path 클릭(그림에서 잘못 캡쳐되었는데, 사용자 변수가 아니라 시스템 변수의 path를 클릭해야 한다)

④ 편집 클릭

⑤ 새로 만들기 클릭, bin폴더의 디렉토리 주소(C:\202107_lab\tools\bin) 입력 후 모든 창의 확인 버튼을 눌러 환경 변수 설정을 마무리 한다.

 

- 환경변수 설정을 하고 나면 모든 cmd창을 닫아야 변경된 환경변수 설정이 적용이 된다.

 

3. research/object_detection/protos 를 컴파일

- cmd 창을 열어 models\research 폴더로 이동

- 아래 커맨드 입력

protoc.exe object_detection/protos/*.proto --python_out=.

- 성공하면 아래와 같이 아무것도 나타나지 않음.

- 컴파일이 잘 되었는지 확인하기 위해

tools\models\research\object_detection\protos 경로로 이동해 보자.

확장자가 py인 파일(파이썬 스크립트 파일)들이 많이 생성된 것이 확인되면 컴파일이 잘 되었음을 알 수 있다.

 

 

 

 

4. setup.py 를 이용해 설치

- 해당 작업을 하기 전에 setup.py 파일을 수정해 줘야 한다

- 아래 디렉토리로 찾아들어가자

\tools\models\research\object_detection\packages\tf2

- tf2의 파일을 열면 setup.py 파일이 존재한다 해당 파일을 메모장이나 notepad++ 등으로 파일을 연다

- 파일을 열고  'pycocotools' 'tf-models-official>=2.5.1'를 찾아서 주석처리 해준 후 저장하고 파일을 닫는다.

(notepad++에서는 20라인, 24라인에 있었다.)

- 해당 메모장은 필요한 라이브러리를 적어놓은 목록으로, cmd에서 setup.py가 있는 폴더에서 pip install . 라는 커맨드를 입력하면 자동으로 필요한 라이브러리를 모두 다 설치해준다. 해당 작업은 아래와 같이 차근차근 따라해보자

- 먼저 cmd 창을 열어 아까 tf2가 있던 디렉토리로 이동한다(\tools\models\research\object_detection\packages\tf2)

(- 필자는 텐서플로우를 tf2라는 가상환경에 설치했기 때문에 중간에 tf2 가상환경을 실행하는 작업을 진행할 것이다. 이 블로그 글을 참고하여 실습하시는 분들은 필자와 환경이 다를 수 있으므로 이 상황을 참고하여 작업하면 된다.

- 텐서플로우가 설치되어 있는 가상환경 tf2 실행)

- setup.py 파일 실행

# 텐서플로우가 설치되어 있는 가상환경 tf2 실행
conda activate tf2

# setup.py 파일을 이용해서 필요한 파일 설치
pip install .

 

 

모든 설치가 다 끝난 화면

 

 

5. pythonpath 설정 및 예제 코드 실행

- 환경변수 설정을 위해 탐색기에서 내 PC 클릭, 마우스 오른쪽 버튼 클릭, 속성 클릭

- 시스템 창이 뜨면 ① 고급 시스템 설정, ② 환경 변수를 클릭한다.

여기서 시스템 변수에서 PYTHONPATH가 존재하는 경우 ③ 편집 버튼을 누르고, 존재하지 않는 경우 ③ 새로 만들기 버튼을 누른다.

 

 

- PYTHONPATH가 없는 경우 변수 이름에 대문자로 PYTHONPATH를 입력 변수값은 아래 글을 참고하여 넣는다.

 

- 총 두개의 디렉토리 주소를 추가해준다.

하나의 주소를 입력한 후 또다른 주소를 추가할 땐 ;콜론을 넣은 후 그 다음 주소를 넣는다

(예: C:\202107_lab\tools\models;C:\202107_lab\tools\models\research)

 

① models 디렉토리 주소

(예시: C:\202107_lab\tools\models)

 

② models의 하위 디렉토리 research의 디렉토리 주소

(예시: C:\202107_lab\tools\models\research)

 

PYTHONPATH 환경변수 설정 화면

- 주소를 다 추가했으면 확인 버튼을 계속 눌러 환경변수 설정 작업을 마무리한다.

 

- research\object_detection\colab_tutorials 로 이동하여 object_detection_tutorial.ipynb파일을 실행시켜준다

(cmd에서 해당 디렉토리로 이동 후 가상환경 tf2 실행, jupyter notebook 실행)

 

- object_detection_tutorial.ipynb 파일을 실행하면 setup부분은 건너뛰고 import 부분부터 실행한다.

(setup은 코렙기준이기 때문에 지금 상황에서는 필요하지 않다)

import 부분부터 오류 없이 잘 실행되는지 확인

 

- Loading label map 부분에서 디렉토리 주소를 바꿔주는 작업을 해줘야 한다

# 현 디렉토리 위치 확인
os.getcwd()

# 디렉토리 바꾸기
# 위 커맨드로 조회한 디렉토리 주소에서 models 폴더의 상단부분을 복사해서 ()안에 넣어주면 된다
os.chdir('c:\\tools')

# setup 부분을 패스했기 때문에 pathlib 라이브러리가 임포트되지 않았다
# pathlib 라이브러리 임포트해주자
import pathlib

 

 

- 이후 detection부분까지 오류없이 실행되면 모든 설정이 다 완료되었다.(실습 끝)