먼저 pretrained 모델을 불러온다. (직전 포스터 참고)
그리고 이제 가지고 있는 이미지 데이터로 위 모델을 한번 돌려보겠다.
img_transforms = transforms.Compose([
transforms.Resize((288, 800)),
transforms.ToTensor(),
transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)),
])
먼저 torchvision에서 제공하는 transform.Compose로 만들 이미지 데이터의 설정을 compose로 구성한다
test_data = torchvision.datasets.ImageFolder(root = '/home/20163381/data_ca', transform=img_transforms)
test_set = DataLoader(dataset= test_data, batch_size=1)
파이토치 데이터셋 객체를 만들고 만든 데이터 셋을 순회할 수 있는 iterable로 감싸준다. 이는 모델을 돌리기 위해 필요한 작업이다.
row_anchor = [ 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112,
116, 120, 124, 128, 132, 136, 140, 144, 148, 152, 156, 160, 164,
168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 208, 212, 216,
220, 224, 228, 232, 236, 240, 244, 248, 252, 256, 260, 264, 268,
272, 276, 280, 284]
그리고 row_anchor를 생성하는데 이것의 의미는 추후 논문을 보고 알아내야 할 거 같다.
name_img= os.listdir('/home/20163381/data_ca/data_1')
이미지 데이터 폴더 내의 이미지 이름을 리스트로 뽑아내고 절대 경로로 생성한다.
for num, data in enumerate(test_set):
imgs, label = data
imgs = imgs.cuda()
with torch.no_grad():
prediction = net(imgs)
col_sample = np.linspace(0, 800 - 1, 100)
col_sample_w = col_sample[1] - col_sample[0]
out_j = out[0].data.cpu().numpy()
out_j = out_j[:, ::-1, :]
prob = scipy.special.softmax(out_j[:-1, :, :], axis=0)
idx = np.arange(100) + 1
idx = idx.reshape(-1, 1, 1)
loc = np.sum(prob * idx, axis=0)
out_j = np.argmax(out_j, axis=0)
loc[out_j == 100] = 0
out_j = loc
vis = cv2.imread(os.path.join('/home/20163381/data_ca/data_1',name_img[num]))
for i in range(out_j.shape[1]):
if np.sum(out_j[:, i] != 0) > 2:
for k in range(out_j.shape[0]):
if out_j[k, i] > 0:
ppp = (int(out_j[k, i] * col_sample_w * 1920 / 800) - 1, int(1080 * (row_anchor[56-1-k]/288)) - 1 )
cv2.circle(vis,ppp,5,(0,255,0),-1)
cv2.imwrite(os.path.join('/home/20163381/temp',name_img[num]), vis)
이제 만든 dataloader로 데이터를 순회하면서 모델을 돌리게 되는데.. 위 내용은 아직 잘 모르겠다. 우선 demo와 다르게 파라미터를 다 값으로 채워주고 이미지로 결과를 저장하는 작업을 추가했다.
이러면 이제 다음과 같은 결과가 나오게 되는데... 아무리 pretrained된 모델을 사용했다 하더라도 너무 이상하게 나와서 한번 논문을 다시 보고 파라미터를 수정해봐야겠다.
'작업일지' 카테고리의 다른 글
cuda 삭제 (0) | 2021.08.10 |
---|---|
anaconda 설치 (0) | 2021.08.10 |
cuda 10.2설치 (0) | 2021.08.10 |
sudo apt-get update 오류 (0) | 2021.08.10 |
ultra_fast_lane_detection pretrained 모델 불러오기_1 (0) | 2021.07.15 |