본문 바로가기

Deep Learning/TF Object Detection API

1.1. Tensorflow Object Detection API 다운로드 및 환경설정

320x100
320x100



다운로드부터 해보자


Object Detection API를 다운받을 수 있는 공식 사이트는 여기이다.




Object Detection API에 관한 것만 있는 게 아니고 별 게 다 있다. 


그래서 우리가 사용할 것들만 따로 빼내줘서 사용하는 게 깔끔하다.


우리는


1) ./research/object_detection 폴더와 


2) ./research/slim 폴더가 필요하다.                     


slim이 필요한 이유는 object_detection에서 ./research/slim/deployment와 ./research/slim/nets을 가져다 사용하기 때문이다.


※ object_detection만 가져다 실행하면 deployment나 nets가 없다는 에러를 만나게 되니 필히 같이 빼내줘야한다.




이제 오른쪽 상단의 [ Clone or download 버튼 ]을 눌러 다운받아준 뒤 압축을 풀어주자.


※ 200316 추가 : 상위 버전을 사용하면 에러가 발생할 수 있으니 [ Branch ]에서 r1.12.0 을 선택한 뒤 받아주도록 하자!


나는 D드라이브에 받았다. models-master라는 폴더명으로 저장된다.


위에서 말한 것처럼 object_detection폴더와 slim폴더만 따로 빼내 [ TF_Object_Detection_API ] 폴더를 새로 만들어 안에 넣어주자.







환경설정 시작


여기에서는 API 실행에 필요한 Library나 설정방법들에 대해 설명해주고 있다.


  1. 필요 Library 설치

  2. COCO API 설치

  3. Protobuf 컴파일

  4. ./slim의 path 시스템 변수에 추가

위의 설정들은 다 해줘야한다. 안 해주면 에러난다. 그니까 잔말말고 다 해주도록 하자. 같이 하나하나씩 살펴보자.


1. 먼저 tensorflow-gpu 및 다른 library 설치다.

설치하라는 거 다 설치해줘도 모듈이 없단 에러가 뜰 수도 있다. 

그럼 그때가서 추가로 다운받아주면 되니까 일단은 다운받으라는 거 다운 받자.

나는 아나콘다 가상환경을 따로 만들어 저장해주겠다. 


가상환경 이름은 'gpu1.12.0' 이고, python version 3.6.5 이다.


이제 다운받으라는 거 다운받아 보자.



이렇게 space로 구분해서 적어주면 여러개의 라이브러리를 한 번에 다운받게 해줄 수 있다.


그리고나서 tensorflow-gpu version 1.12.0을 받아주자.



tensorflow만 따로 설치한 거엔 딱히 이유는 없다. 단지 그냥 까먹고 다운 안 받아서 받아준 것 뿐이다..




2. 그 다음 COCO API 설치다.


이 부분이 좀 말썽이었다. 공식사이트로 들어가서 다운받고 설치해줬는데도 


ImportError : No module named pycocotools


에러가 뜨더라. 그리고 역시나 세상엔 나와 같은 문제를 겪은 사람과 이를 해결하는 방법에 대해 설명해주는 착한 사람들이 많다.


다루님의 블로그에서 해결방법을 찾을 수 있었다.


여기에서 파일들 다운받아준 후 ./PythonAPI/setup.py를 실행해주면 COCO API를 문제없이 설치해줄 수 있다.


위에서 만든 [ TF_Object_Detection_API ] 폴더에 cocoapi의 이름으로 다운받아 준 후 압축을 풀어주자.


그 다음에 setup.py이 저장된 경로로 이동해 실행시켜주면 된다.





3. protobuf 컴파일을 하자.

이 부분에 대한 개념은 [인공지능 용어 정리] - Protocol Buffer 개념을 참고하길 바란다.


여기서는 에러없이 모델을 실행시키려면

filename.proto -> filename_pb2.py 로 컴파일해줘야 한다는 것만 알고 넘어가도록 하자.


컴파일을 위해선 protobuf 을 다운받아 사용해줘야한다. 여기에서 다운받을 수 있다.

설치 가이드에선 protobuf version 3.0.0을 받으라고 말하고 있지만,

ver3.0.0을 사용하면 에러가 발생하기 때문에 ver3.3.0을 사용해줘야 한다. 이유1 이유2

그러니 다운로드 사이트로 들어가서 [ protoc-3.3.0-win32.zip ]을 다운받은 뒤 압출을 풀어주도록 하자.


마지막으로 protoc.exe를 실행시켜 ./object_detection/protos 폴더에 있는 proto파일들을 컴파일 해주면 된다.

( D:/TF_Object_Detection_API/protoc-3.3.0-win32/bin/protoc object_detection/protos/*.proto --python_out=. )



< 결과 >

->     



4. ./slim 경로 시스템 변수에 추가

시스템 변수 추가는 직접 입력하는 방식도 있고,

이전에 정리한 글인 python으로 시스템 변수 추가하는 방법처럼 추가하는 방법도 있다.


나는 두번째 방식으로 시스템 변수를 추가할 계획이니 시스템 변수 추가 방법에 대해서는 다음 글에서 다루도록 하겠다.















지금까지 Tensorflow Object Detection API를 다운로드하고 필요한 환경설정을 하는 방법에 대해 알아보았다.


쓰다보니 더 정확하고 자세히 쓰고 싶어져서 글도 길어지고 시간도 엄청 잡아 먹었다.


그래도 만족스럽다.


다음 글에선 API를 다운받으면 있는 [ object_detection_tutorial.ipynb ]를 참고해 


Object Detection 결과를 확인해보는 방법에 대해 알아보겠다.







< 참고 사이트 >


https://github.com/tensorflow/models/tree/master/research/slim


https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md


https://blog.naver.com/PostView.nhn?blogId=tip9004&logNo=221270291955&parentCategoryNo=&categoryNo=120&viewDate=&isShowPopularPosts=true&from=search


https://github.com/philferriere/cocoapi


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


https://ukayzm.github.io/python-object-detection-tensorflow/


https://m.blog.naver.com/PostView.nhn?blogId=dschae9&logNo=221159192026&proxyReferer=https%3A%2F%2Fwww.google.com%2F