본문 바로가기

IT/Python

[MSCOCO API / Python] Install MSCOCO api

이번 포스팅에서는 MS COCO Dataset API를 Python에 설치하는 방법에 대해서 포스팅하도록 하겠습니다.




1. MS COCO


MS COCO Dataset은 Object Detection, Segmentation, Captioning 대한 데이터를 330K정도를 보유하고 있는 데이터 셋입니다.

홈페이지는 아래와 같으며, 데이터셋은 홈페이지를 통해서 직접 다운로드 할 수 있으나, 

몇몇 공개된 코드에서는 api형태로 import되서 많이 사용됩니다.


MS COCO 홈페이지

MS COCO API


2. Download Repository


터미널에서 아래와 같은 명령어를 사용하여서 MS COCO API 저장소를 클론합니다.

클론을 진행하면 아래와 같은 화면이 보이게 됩니다.


git clone https://github.com/cocodataset/cocoapi.git



클론 이후의 cocoapi의 디렉토리 구조는 다음과 같습니다.


cocoapi
├── common
├── license.txt
├── LuaAPI
├── MatlabAPI
├── PythonAPI
├── README.txt
└── results


이제 여기에서 PythonAPI 폴더로 들어갑니다.

Python API의 디렉토리 구조는 다음과 같습니다.


PythonAPI
├── Makefile
├── pycocoDemo.ipynb
├── pycocoEvalDemo.ipynb
├── pycocotools
└── setup.py



3. Install COCO API


PythonAPI의 Makefile의 내용을 살펴보면 다음과 같습니다.


all:
    # install pycocotools locally
	python setup.py build_ext --inplace
	rm -rf build

install:
	# install pycocotools to the Python site-packages
	python setup.py build_ext install
	rm -rf build


위의 Makefile 내용을 기반으로 2가지 방법으로 COCO API를 설치할 수 있습니다.

1. Global enviroment

2. Virtual enviroment


해당 포스팅에서는 1번째, 2번째 내용을 모두 설명하되, Virtual Enviroment는 virtualenv 환경을 사용했음을 알려드립니다.


3-1. PreRequirements

COCO API를 설치해주기 전에, 먼저 설치해줘야하는 패키지 파일이 있습니다.

virtualenv환경이나 글로벌 환경에서 다음과 같이 해당 패키지를 설치해주셔야 COCO API 패키지를 설치할 수 있습니다.

pip3 install numpy cython

OR

pip install numpy cython


3-2. Install COCO API with Global enviroment


다음과 같은 명령어를 사용하여 전역 환경에 COCO API를 설치해줍니다.


sudo python2 setup.py build_ext install

OR

sudo python3 setup.py build_ext install


3-3. Install COCO API with Virtual enviroment


먼저 다음과 같이 virtualenv환경을 만들어주고, 활성화해줍니다.

만약 virtualenv를 잘 모르시는 분들은 아래 포스팅을 참조하시면 됩니다.


virtualenv 
# ex> virtualenv env

source /bin/activation
# ex> source env/bin/activate


virtualenv환경이 활성화 되었다면, 다음과 같은 명령어를 통해서 ms coco api를 설치해줍니다.


python2 setup.py build_ext install

OR

python3 setup.py build_ext install


설치를 성공적으로 진행하게 된다면, 다음과 같은 화면을 보실 수 있습니다.