1. ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ๋ง์ดํธ
ํ๋ก์ ํธ ์ฒ์ ์์์ ๋ง์ดํธ!
๊ตฌ๊ธ ์ฝ๋ฉ์์ ์ง๋ ์๊ฐ ์ฌ์ฉํ๋ content/gdrive ํด๋๋ฅผ ์ธ์์์ผ์ฃผ๋ ์์ ์ ํด์ค๋ค.
from google.colab import drive
drive.mount('/content/gdrive')
!ls -la "/content/gdrive/My Drive/darknet"
ls ๋ ๊ฒฝ๋ก์ ๋๋ ํฐ๋ฆฌor ํ์ผ์ ๋ฆฌ์คํธ ์ถ๋ ฅ
a ์ต์ : all์ ์ค์๋ง๋ก ๋ชจ๋ ํ์ผํ์์ ์ถ๋ ฅํฉ๋๋ค.
l ์ต์ : long ์ ์ค์๋ง๋ก, ํ์ผ ์ถ๋ ฅ ํ์์ ๊ธด ๋ชฉ๋ก ํ์์ผ๋ก ์ถ๋ ฅํ๋ค.
2.cuDNN
๋ค์์ผ๋ก ์ฐ๋ฆฌ๊ฐ ํด์ค๊ฑด cuda ๊ด๋ จ ๋ชจ๋์ธ cuDNN ์
๊ตฌ๊ธ๋๋ผ์ด๋ธ์์ colab์ usr/local/cuda ํด๋๋ก cuDNN์ ์์ถ์ ํธ๋ ๊ฒ์ ๋๋ค.
!tar -xzvf /content/gdrive/My\ Drive/darknet/cuDNN/cudnn-11.2-linux-x64-v8.1.1.33.tgz -C /usr/local/
!chmod a+r /usr/local/cuda/include/cudnn.h
!cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
์๋ํ๋ฉด Cuda ํ๊ฒฝ์ ์ด๋ฏธ ๊ตฌ๊ธ ์ฝ๋ฉ์์ ์ ๊ณตํด์ฃผ๊ธฐ ๋๋ฌธ์ ๊ทธ์ ๋ง๋ ๋ฒ์ ์ cuDNN์ ์ค์นํ์ฌ ์ฐ๋ฆฌ๋ ๋ฃ์ด์ฃผ๋ฉด ๋๊ธฐ๋๋ฌธ์ด๋ค.
3. darknet ์ ์ฌ(์์ฑ)
import os
if not os.path.exists('darknet'):
os.makedirs('darknet')
%cd darknet
%ls
darknet ํด๋๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ (mkdirs) darknet ํด๋๋ก ์ด๋ํ๋ค. [ํ์ฌ ์์น๋ darknet]
!ls -la '/content/gdrive/My Drive/darknet/bin/darknet'
!cp /content/gdrive/My\ Drive/darknet/bin/darknet ./darknet
!chmod +x ./darknet
๊ตฌ๊ธ ๋๋ผ์ด๋ธ์ darknet ํ์ผ์ content/ darknet ํด๋ ์๋์ ๋ณต์ฌํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ ๊ถํ ์ค์ ํด์ค.
!cp -r '/content/gdrive/My Drive/darknet/weights' .
!cp -r '/content/gdrive/My Drive/darknet/cfg' .
!cp -ar '/content/gdrive/My Drive/darknet/data' .
%ls
๊ทธ ํ ,, ๊ตฌ๊ธ๋๋ผ์ด๋ธ์ ์๋ weights ์ cfg , data ๋ฅผ .(ํ์ฌ์์น:content / darknet ํด๋)
๋ก ๋ณต์ฌํด์ ๋ถ์ฌ์ค.
๊ทธ๋ฆฌ๊ณ ls ๋ช ๋ น์ด๋ฅผ ํตํด์ ์ ๋ณต์ฌํด์ ๊ฐ์ ธ์๋์ง ํ์ธํด๋ณด๋ฉด
cfg, data, weights ํด๋๊ฐ ์์ฑ๋์์์ ํ์ธ ํ ์ ์๋ค.๐
def imShow(path):
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
image = cv2.imread(path)
height, width = image.shape[:2]
resized_image = cv2.resize(image,(3*width, 3*height), interpolation = cv2.INTER_CUBIC)
fig = plt.gcf()
fig.set_size_inches(18, 10)
plt.axis("off")
#plt.rcParams['figure.figsize'] = [10, 5]
plt.imshow(cv2.cvtColor(resized_image, cv2.COLOR_BGR2RGB))
plt.show()
def upload():
from google.colab import files
uploaded = files.upload()
for name, data in uploaded.items():
with open(name, 'wb') as f:
f.write(data)
print ('saved file', name)
def download(path):
from google.colab import files
files.download(path)
์ imshow ํจ์ ์ฝ๋๋ฅผ ํตํด ์์ํ์ผ์ ์คํ์์ผ๋ณด๊ธฐ ์ํด ์ฝ๋ ์คํ์ ํตํ์ฌ ํจ์ ์ ์ธํด์ฃผ๊ณ ,,
!./darknet detect cfg/yolov3.cfg weights/yolov3.weights data/fruit10.jpg
imShow('predictions.jpg')
์คํ์์ผ๋ณด๋ฉด fruit10.jpg ์ฌ์ง ํ์ผ์ด ์๋์ ๊ฐ์ด ๊ฐ์ฒด ํ์ง ๋์์์ ํ์ธ ํ ์ ์๋ค.
4. Custom YOLO
์ด์ ์ด๋ฅผ ์์ฉํด์ custom ํ์ฌ YOLO๋ฅผ ์คํ์์ผ๋ณด๊ฒ ์ต๋๋ค.
!cp -r "/content/gdrive/My Drive/darknet/custom" .
๊ตฌ๊ธ๋๋ผ์ด๋ธ ์ custom ํด๋์ ๋ด์ฉ๋ค์ ํ์ฌ ์์น(content/darknet)์ ๋ณต์ฌํด์ ๊ฐ์ ธ์ค๋ ๋ช ๋ น์ด์ด๋ค.
์ ๋ณต์ฌํ๋?? ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ํ ๊ฒ yolo์์ ์ง์ํด์ฃผ๋ weights? ๊ฐ ์๋ ์ฐ๋ฆฌ๊ฐ ์ง์ ๋ง๋ weights ๋ฅผ ๊ฐ์ง๊ณ ์คํ์์ผ๋ณด๊ธฐ ์ํด์ ์ด๋ค. ๊ทธ๋ ๊ธฐ์ ๊ตฌ๊ธ๋๋ผ์ด๋ธ์ ์ ๋ก๋ ํด๋ ํ์ผ๋ค์ yolo ์คํํ๊ฒฝ์ธ darknetํด๋๋ก ๋ณต์ฌํด์ ๋ถ์ฌ๋ฃ๋ ๊ณผ์ ์ด๋ค.
!./darknet detector train custom/custom_data.data custom/custom-train-yolo.cfg weights/darknet53.conv.74 -dont_show
์ด์ ์ ๋ช ๋ น์ด๋ฅผ ํตํด ์ปค์คํ ํ ์ํจ ๋ฐ์ดํฐ๋ฅผ ํ์ต์์ผ๋ณด์.
๋ช ๋ น์ด์ train์ด ์๋ค๋ ๊ฒ๋ง ๋ด๋ ํ์ต์ํจ๋ค๋ ๊ฒ์ ๋์ถฉ ๋์น ์ฑ ์ ์๋ค.
darknet ํด๋์์ ๋ฐฉ๊ธ์ ๋ณต์ฌํด์ ๊ฐ์ ธ์จ custom ํด๋์์ custom_data.data ํ์ผ๊ณผ custom-train-yolo.cfgํ์ผ
๊ทธ๋ฆฌ๊ณ weights ํด๋์์ darknet53.conv.74 ๋ฅผ ์ด์ฉํด์ train ์ํค๋๊ฒ ๊ฐ๋ค.
๋ง์ฝ ์ ๋ช ๋ น์ด๋ฅผ ์คํ์์ผฐ๋๋ฐ ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฌ๋ค๋ฉด ์๋ ํฌ์คํธ ๊ธ ์ฐธ๊ณ !
๋ฌธ์ ํด๊ฒฐ ํฌ์คํธ: https://couchcoding.tistory.com/326
Couldn't open file: ./content/gdrive/My\Drive/darknet/custom/train.txt
1. ๋ฌธ์ ๊ตฌ๊ธ ์ฝ๋ฉ์์ ํ๋ก์ ํธ ์งํ์ค ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด train ์ํค๋ ๊ณผ์ ์์ !./darknet detector train custom/custom_data.data custom/custom-train-yolo.cfg weights/darknet53.conv.74 -dont_show Couldn't open file: ./content/g
couchcoding.tistory.com
'๋ฅ๋ฌ๋๐ค > YOLO, Opencv ๐ข' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[YOLO]#3 YOLO๋ฅผ ํ์ฉํ ๊ฐ์ฒด ํ์ง (Customํ๊ธฐ)&๊ตฌ๊ธ์ฝ๋ฉ (2) | 2022.11.07 |
---|---|
[YOLO]#1 YOLO๋ฅผ ํ์ฉํ ๊ฐ์ฒด ํ์ง (darknet install)&๊ตฌ๊ธ์ฝ๋ฉ (2) | 2022.11.06 |
๋ฌด๋ฃ๋ก Yolo , Opencv ์ ๋ํด ๊ณต๋ถํ ์ ์๋ ์ฌ์ดํธ (2) | 2022.04.01 |
webcam์์ ๊ฐ์ ธ์จ ์์์ mp4๋ก ์ ์ฅํ๋ OpenCV Python (0) | 2022.04.01 |
openCV๋ฅผ ์ฌ์ฉํ YOLO ๊ฐ์ฒด ๊ฐ์ง (0) | 2022.04.01 |