Deep Learning 31

오디오 딥러닝을 해봅시다! (Sound Classification) - 1. 데이터 전처리

오디오 딥러닝을 해 봅시다! (사운드 분류) 전체 개념 오디오 딥러닝을 하기 위해서는, 오디오 파일을 Spectrogram이라는 이미지 파일로 만들고, 그걸 이용해서 CNN을 이용한 딥러닝이 가능합니다. 참조에서는 4초 정도의 오디오 파일들을 모은다고 합니다. 데이터 전처리 및 라벨링 라벨링은 여러가지 방법이 있겠지만, 여기서는 CSV 파일을 활용합니다. Pandas를 이용해서 label 정보를 모아줍니다. Pandas는 conda를 이용한다면 conda install, 또는 pip로 설치가 가능합니다. # ---------------------------- # Prepare training data from Metadata file # ---------------------------- import p..

Deep Learning 2022.09.06

torchviz로 모델 시각화 하기

from torchviz import make_dot from torch.autograd import Variable x = Variable(torch.randn(6, 2, 64, 344)) x = x.to("cuda") make_dot(myModel(x), params=dict(list(myModel.named_parameters()))).render("myModel", format="png") 간단해 보이는 script지만 상당히 많은 부분에서 오류가 났습니다. 1. Anaconda environment의 경우에는 pip install torchviz가 아니라 conda install torchviz를 해 줍니다. 2. ubuntu의 경우에는 sudo apt도 해줘야 합니다. sudo apt-get ..

Deep Learning 2022.07.27

Yolov5를 이용해서 Transfer Learning에서 Early Overfitting을 방지하는 방법

Yolov5를 사용할 때, 보통 Pretrained model을 사용합니다. (small, medium, large, Xlarge.. 이번에 nano도 추가) Pretrained Model의 경우 80개의 Coco dataset을 detect합니다. 이 80개의 모델에 내가 원하는 class가 없는 경우, transfer learning(전이 학습)을 통해서 내가 원하는 class를 학습해야 합니다. Pretrained model이 아닌 scratch model에서 학습을 하는 경우 너무 학습이 오래 걸린다는 단점이 있고, (체감상 pretrained model보다 적어도 두배, 많으면 세네배 이상 시간이 걸립니다. 정확한 레퍼런스는 없네요) freeze layer를 하고 학습을 하는 경우 더 빠르게 할..

Yolov5의 model을 Tx2 engine을 만들어봅시다 (Onnx, netron)

안녕하세요 Yolov5는 pytorch 기반의, 객체 검출을 쉽게 해 줄수 있는 프레임워크입니다. 하지만 yolov5에서 만든 모델을 다른곳에서 사용하려면, 그에 맞게 모델을 변환시켜 주어야 합니다. 그럴때 사용할 수 있는 기술이 Onnx 입니다. onnx소개 : https://github.com/onnx/onnx, https://www.megazone.com/techblog_180816_aws-deep-learning-amis/#:~:text=ONNX%20%EB%9E%80%20%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%3F,%EC%97%B0%EC%82%B0%EC%9E%90%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EC%A0%95%EC%9D%98%ED%95%A9%..

labelImg 맥에다 설치하기

https://github.com/tzutalin/labelImg GitHub - tzutalin/labelImg: 🖍️ LabelImg is a graphical image annotation tool and label object bounding boxes in images 🖍️ LabelImg is a graphical image annotation tool and label object bounding boxes in images - GitHub - tzutalin/labelImg: 🖍️ LabelImg is a graphical image annotation tool and label object bounding b... github.com pipenv 로 설치하는 방법도 있지만, 파이썬 3.6..

mAP란 무엇일까요? (ft. IOU)

yolov5 github : https://github.com/ultralytics/yolov5 참고 url : https://jonathan-hui.medium.com/map-mean-average-precision-for-object-detection-45c121a31173 yolov5 github를 살펴보면, mAP라는 개념이 나옵니다. mAP는 mean Average Precision의 약자이며, Precision은 positive 들에서 true positive rate을 말합니다. 즉, object detection의 경우에는, detection되는 bounding box를 말한다고 보면 됩니다. 그럼 average precision이란 어떤 걸 의미할까요? 이를 위해서는 IOU(Interse..

yolov5를 이용해서 custom data 학습시키기, people training

yolov5는 성능면에서 yolov4보다 훨씬 낫다고 할 수는 없지만, 확실히 pytorch를 이용해서 편합니다. yolov5 pretrained version의 경우에는 80개의 class가 train되어 있습니다. 여기서 우리가 원하는 데이터를 학습 시키기 위해서는 다음 roboflow 블로그를 참고하면 될 거 같습니다. blog.roboflow.com/how-to-train-yolov5-on-a-custom-dataset/ 블로그에서는, rbc, wbc (백혈구, 적혈구)를 위주로 학습을 진행하였습니다. 근데 과연 사람을 학습하려고 하면 어떻게 해야될까요? 또, 80개의 class중 몇 가지의 class만 학습하려고 하면 어떻게 해야될까요? 저는 사람 class만 사용하려고 하였습니다. 물론, de..

rtx 3070을 이용한 환경 설정 yolov5 (ft. 3080, 3090 및 30 시리즈..)

두괄식으로 하겠습니다. 제목은 3070으로 했지만 3080, 3090 다 될 것으로 생각됩니다. cuda version 11.1을 먼저 깝니다. wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run sudo sh cuda_11.1.1_455.32.00_..

Deep Learning 2021.05.05

Multi object Tracking(MOT) 과 활용

사람들을 tracking 하는데 있어서, inference만 하려고 하면 여러 가지 방법이 있지만, YOLO를 사용하는 방법이 많이 알려져 있습니다. YOLOv4, YOLOv5가 많이 사용되고, 그 중에서 tiny나 small의 경우 작은 디바이스에서도 사용할 수 있을 정도로 가볍고 빠릅니다. 하지만 실제 상황에서 사용할 때, tracking이 필요한 경우가 많습니다. 예를 들어, 선을 그어 놓고, 이 선을 넘어간 사람들의 수를 구할 때, tracking을 사용하지 않는 방법 (opencv)를 사용하는 방법도 있겠지만, 정확도가 떨어질 수도 있습니다. (특히 사람들이 많이 지나갈 경우) 관련 링크 : www.pyimagesearch.com/2018/08/13/opencv-people-counter/ 아직..