- Today
- Total
엔지니어스 - Engineeus
[Ubuntu] PyTorch로 YOLO 돌리기 - [1] {'Installation\n';} 본문
[Ubuntu] PyTorch로 YOLO 돌리기 - [1] {'Installation\n';}
Engineeus 2020. 1. 28. 14:41start()
{
저번 포스트에서는 YOLO가 무엇인지 배웠습니다.
https://mickael-k.tistory.com/27?category=798520
이번 포스트 에서는 YOLO를 활용해 UBUNTU에서 Pytorch를 가지고 설치 및 실행 하는 방법을 다루도록 하겠습니다.
References
기본 베이스는 아래 github와 작성자의 블로그를 참조하여 진행 하였습니다.
- github
https://github.com/ayooshkathuria/pytorch-yolo-v3
- blog
https://blog.paperspace.com/how-to-implement-a-yolo-object-detector-in-pytorch/
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
3. CUDA 8.0 및 CuDNN 설치
아래 블로그에서 CuDNN까지만 설치 하면 됩니다.
https://blog.naver.com/mingu216/221292114744
4. OpenCV 3.x 설치
저는 이미 우분투에 Python 2.7.12와 3.5.2가 설치 되어 있었습니다.
아래 제 포스트에서 참고 하였습니다.
https://mickael-k.tistory.com/46
5. PyTorch 0.4 설치
https://mickael-k.tistory.com/44
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;
}
'Autonomous Tech. > Machine Learning' 카테고리의 다른 글
[Windows] 텐서플로우(Tensorflow) 사용 딥러닝 신경망 구현 - RNN 1편 [9] (0) | 2020.03.08 |
---|---|
[Windows] 텐서플로우(Tensorflow) 딥러닝 신경망 구현 - 네트워크 생성 [2] (0) | 2020.03.08 |
[Windows] 텐서플로우(Tensorflow) 딥러닝 신경망 구현 - 환경 설정 [1] (0) | 2020.03.07 |
CNN(Convolutional Neural Network) 이란? (0) | 2020.03.07 |
Darknet YOLO(You Only Look Once) 공부했다. Yolov3 (11) | 2019.12.14 |