def process_data_item(data_item, dim, model_stride): # data_item[0] dữ liệu ảnh opencv # data_item[1].pts thông tin tọa độ đã scale về 0-1 # dim là 208 XX, llp, pts = augment_sample(data_item[0], data_item[1].pts, dim) YY = labels2output_map(llp, pts, dim, model_stride) return XX, YY
def process_data_item(data_item, dim_w, dim_h, model_stride): image_abs_path = data_item[0] image_ndarray = cv2.imread(image_abs_path) # image_ndarray = data_item[0] XX, llp, pts_transformed = augment_sample(image_ndarray, data_item[1].pts, dim_w, dim_h, data_item[1].cls) YY, is_there_plate = labels2output_map(llp, pts_transformed, dim_w, dim_h, model_stride, data_item[1].cls) # salvar_imagem_bbox(XX, pts_transformed, image_abs_path, is_there_plate, data_item[1].cls) if not is_there_plate: # salvar_imagem(XX, pts_transformed, image_abs_path) return None, None, None return XX, YY, pts_transformed
def sample_validate(image_abs_path, gt_file): L = readShapes(gt_file)[0] pts_transformed = L.pts model_stride = 16.0 image_ndarray = cv2.imread(image_abs_path) tl, br = pts_transformed.min(1), pts_transformed.max(1) llp = Label(0, tl, br) YY, is_there_plate = labels2output_map(llp, pts_transformed, 304, 304, model_stride, L.cls, image_abs_path) print('There is place: %s | Class %s ' % (str(is_there_plate), L.cls)) print('Car ') print(np.matrix(YY[..., 0])) print('Non-object') print(np.matrix(YY[..., 10])) print('Moto') print(np.matrix(YY[..., 9]))
def process_data_item(data_item, dim, model_stride): XX, llp, pts = augment_sample(data_item[0], data_item[1].pts, dim) YY = labels2output_map(llp, pts, dim, model_stride) return XX, YY
Xtrain = np.empty((batch_size, dim, dim, 3), dtype='single') Ytrain = np.empty( (batch_size, dim / model_stride, dim / model_stride, 2 * 4 + 1)) model_path_backup = '%s/%s_backup' % (outdir, netname) model_path_final = '%s/%s_final' % (outdir, netname) for it in range(iterations): print 'Iter. %d (of %d)' % (it + 1, iterations) for k in range(batch_size): data = choice(Data) XX, llp, pts = augment_sample(data[0], data[1].pts, dim) YY = labels2output_map(llp, pts, dim, model_stride) Xtrain[k] = XX Ytrain[k] = YY train_loss = model.train_on_batch(Xtrain, Ytrain) print '\tLoss: %f' % train_loss # Save model every 1000 iterations if (it + 1) % 1000 == 0: print 'Saving model (%s)' % model_path_backup save_model(model, model_path_backup) print 'Saving model (%s)' % model_path_final save_model(model, model_path_final)
def process_data_item(data_item,dim_w, dim_h,model_stride): image_ndarray = cv2.imread(data_item[0]) XX,llp,pts_transformed = augment_sample(image_ndarray,data_item[1].pts,dim_w, dim_h, data_item[1].cls) YY = labels2output_map(llp,pts_transformed, dim_w, dim_h,model_stride, data_item[1].cls) return XX, YY, pts_transformed
def _process_data_item(self,data_item): XX,llp,pts = augment_sample(data_item[0],data_item[1].pts,self._dim) YY = labels2output_map(llp,pts,self._dim,self._model_stride) return XX,YY