엔지니어스 - Engineeus

[Ubuntu] PyTorch로 YOLO 돌리기 - [1] {'Installation\n';} 본문

Autonomous Tech./Machine Learning

[Ubuntu] PyTorch로 YOLO 돌리기 - [1] {'Installation\n';}

Engineeus 2020. 1. 28. 14:41
728x90

start()

{


 

저번 포스트에서는 YOLO가 무엇인지 배웠습니다.

https://mickael-k.tistory.com/27?category=798520

불러오는 중입니다...

이번 포스트 에서는 YOLO를 활용해 UBUNTU에서 Pytorch를 가지고 설치 및 실행 하는 방법을 다루도록 하겠습니다.


References

기본 베이스는 아래 github와 작성자의 블로그를 참조하여 진행 하였습니다.

 

- github

https://github.com/ayooshkathuria/pytorch-yolo-v3

 

ayooshkathuria/pytorch-yolo-v3

A PyTorch implementation of the YOLO v3 object detection algorithm - ayooshkathuria/pytorch-yolo-v3

github.com

 

- blog

https://blog.paperspace.com/how-to-implement-a-yolo-object-detector-in-pytorch/

 

Tutorial on implementing YOLO v3 from scratch in PyTorch

Tutorial on building YOLO v3 detector from scratch detailing how to create the network architecture from a configuration file, load the weights and designing input/output pipelines.

blog.paperspace.com


Requirements

  • Ubuntu 16.04
  • Python 3.5
  • CUDA 8.0 및 CuDNN 
  • OpenCV 3.5
  • PyTorch 0.4

 

본 블로그에서 환경설정은 다루지 않겠습니다. 궁금하신 분들을 위해 아래 링크를 참고하여 설치 바랍니다.

 

1. Ubuntu 16.04 설치

이건 구글링 하여 설치 바랍니다.

 

2. Python 3.5 설치

https://mickael-k.tistory.com/45

 

[Ubuntu] Python 2, Python3 설치

start() { 본 포스트에서는 Ubuntu 환경에서 Python 2버전과 Python 3버전을 설치 하는 방법을 다뤄보겠습니다. Python 2 Python 2.x 버전은 이미 우분투 16.04 설치시에 깔려 있습니다. 실행 방법은 터미널창을..

mickael-k.tistory.com

 

3. CUDA 8.0 및 CuDNN 설치

아래 블로그에서 CuDNN까지만 설치 하면 됩니다.

https://blog.naver.com/mingu216/221292114744

 

UBUNTU 16.04, CUDA 8.0, cuDNN 5.1, Caffe, Python .7, OpenCV 3.4.0, CMake

※ UBUNTU 16.04 설치 포스트는 아래를 참고 하시면 됩니다.https://blog.naver.com/mingu216/221286...

blog.naver.com

 

4. OpenCV 3.x 설치

저는 이미 우분투에 Python 2.7.12와 3.5.2가 설치 되어 있었습니다.

아래 제 포스트에서 참고 하였습니다.

https://mickael-k.tistory.com/46

 

[Ubuntu] Python 2, Python 3에 OpenCV 설치하기 (Binding)

start() { 본 포스트에서는 Python 2와 Python 3에 같은 OpenCV를 묶어주는 설명을 다루겠습니다. Python 2와 Python 3을 각각 설치 하게 되면 OpenCV도 둘다 환경설정을 해 줘야 합니다. Installation Build 전..

mickael-k.tistory.com

 

5. PyTorch 0.4 설치

https://mickael-k.tistory.com/44

 

[Ubuntu] pip으로 PyTorch 설치하기 - Linux

start() { 본 블로그는 conda로 pytorch를 설치 하지 않고 pip으로 설치 함을 설명 해 나갑니다. 설치 전 확인 사항 일단 pip이 잘 동작 하는지 확인 하기 위해 커맨드창을 열고 아래와 같이 칩니다. pip3 install..

mickael-k.tistory.com

 

6. 추가 설치

pip3 install pandas

Installation

설치 방법은 아래와 같습니다.

  • 프로젝트를 진행 할 디렉토리를 생성 합니다.

cd yolo
mkdir darknet_python
cd darknet_python

 

  • github 클론 및 Weight 파일 다운로드

pytorch-yolo-v3 폴더 안에 weights파일을 두어야 합니다.

git clone https://github.com/ayooshkathuria/pytorch-yolo-v3.git
cd pytorch-yolo-v3
wget https://pjreddie.com/media/files/yolov3.weights

Execution

실행 방법은 다음과 같습니다.

 

1. pytorch-yolo-v3에서 터미널을 열어 줍니다.

 

이 폴더에 대해 설명은 아래와 같습니다.

cfg: yolo 네트워크 레이어를 갖고 있습니다.

data: 학습시킨 데이터를 담고 있습니다.

det: detector를 구동 후 결과를 저장 하는 곳 입니다.

imgs: 입력시킬 사진들을 갖고 있습니다.

 

 

파이썬 파일들은 다음과 같습니다.

detector.py: 일반 사진들을 돌릴때 사용 합니다.

video_demo.py: video를 돌릴때 사용 합니다. (32 bit)

video_demo_half.py: video를 더 빠르게 돌릴때 사용 합니다. (16 bit) 하지만 에러가 나네요.

cam_demo.py: 웹캠을 돌릴때 사용 합니다.

darknet.py: weight, cfg 등 darknet에 필요한 중요한 함수들이 정의 되어 있습니다.

bbox.py: 박스를 그려주는 함수를 정의 합니다.

preprocess.py: 이미지를 네트워크에 넣기 전 전처리 과정의 함수를 담고 있습니다.

util.py: 기타 각종 함수 입니다.

get-pip.py: encoding zip 파일 입니다.

 



2. 아래 각종 명령어를 실행하여 사진, 비디오, 웹캠으로 yolo를 실시간으로 구동 할 수 있습니다.

 

  • detector.py

python3 detect.py --images imgs/dog.jpg --det det/

imgs/ 안에 있는 dog.jpg가 det폴더로 yolo를 통과 후 결과값이 저장 됩니다.

 

  • video_demo.py

python3 video_demo.py --video ../../video/CristianoRonaldo.mp4 

비디오는 직접 가져와서 넣어 준 후 그 경로를 지정 해 줍니다.

 

  • cam_demo.py

python3 cam_demo.py

노트북이면 바로 구동 가능 하며, 데탑은 웹캠을 연결 하면 됩니다.

 

 

3. 명령어

실행 시 여러가지 명령어 들이 있습니다. 명령어를 알아보겠습니다.

 

  • res

네트워크 인풋 사이즈 입니다. 현재 default가 416 x 416 으로 되어 있지만 32단위로 바꿀 수 있습니다.

32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416 이런식으로 바꿀 수 있습니다. 

 

사용 방법은 아래와 같습니다.

python3 detect.py --images imgs/dog.jpg --det det/ --reso 320

 

  • scales

이부분은 저도 이해가 안가네요 추후에 추가 작성 하겠습니다.

 

사용 방법은 아래와 같습니다.

python3 detect.py --scales 1,3

다음 포스트에서는 본 코드들이 어떻게 구성 되어 있는지 자세하게 살펴보는 포스트를 구성 하도록 하겠습니다.


return 0;

}

Comments