I had run the traditional CRSNet structure code:
import random
import os
from PIL import Image,ImageFilter,ImageDraw
import numpy as np
import h5py
from PIL import ImageStat
import cv2
def load_data(img_path,train = True):
gt_path = img_path.replace('.jpg','.h5').replace('images','ground_truth')
img = Image.open(img_path).convert('RGB')
gt_file = h5py.File(gt_path, 'r')
target = np.asarray(gt_file['density'])
print (target.shape)
if False:
crop_size = (img.size[0]/2,img.size[1]/2)
if random.randint(0,9)<= -1:
dx = int(random.randint(0,1)*img.size[0]*1./2)
dy = int(random.randint(0,1)*img.size[1]*1./2)
else:
dx = int(random.random()*img.size[0]*1./2)
dy = int(random.random()*img.size[1]*1./2)
img = img.crop((dx,dy,crop_size[0]+dx,crop_size[1]+dy))
target = target[dy:crop_size[1]+dy,dx:crop_size[0]+dx]
if random.random()>0.8:
target = np.fliplr(target)
img = img.transpose(Image.FLIP_LEFT_RIGHT)
target = cv2.resize((target),(target.shape[1]//8,target.shape[0]//8),interpolation = cv2.INTER_CUBIC)*64
return img,target
While what I have now is another dataset which directly consist of one single h5py for test and one for train, this existing codes for CRSNet seems to be separating all existing images. May I know is there ano method to use other dataset on this piece of code? Thanks