XGBoost_Gaze / Magazine_Optimization_Demo /main_decipher_result.py
Demo750's picture
Upload folder using huggingface_hub
569f484 verified
import sys
sys.path.append('../XGBoost_Prediction_Model/')
import warnings
warnings.filterwarnings("ignore")
import Predict
import torch
import numpy as np
import os
from os.path import isfile, isdir, join
from Magazine_Optimization import *
import cv2 as cv
import time
mypath = '../XGBoost_Prediction_Model/Magazine_Optimization_Demo/Magazines'
# results = torch.load('../XGBoost_Prediction_Model/Magazine_Optimization_Demo/results')
results = torch.load('../XGBoost_Prediction_Model/Magazine_Optimization_Demo/results_CNN')
for f in os.listdir(mypath):
if isdir(join(mypath, f)):
print('Currently processing Magazine '+f+'......')
path_temp = join(mypath, f)
dir_list = []
for sub_f in os.listdir(path_temp):
if isdir(join(path_temp, sub_f)):
sub_path_temp = join(path_temp, sub_f)
if (sub_f.split('_')[0]) == 'Jpg':
dir_list = os.listdir(sub_path_temp)
dir_list.sort()
for i in range(len(dir_list)):
dir_list[i] = join(sub_path_temp,dir_list[i])
else:
Slots = torch.load(join(sub_path_temp,'Slots')).astype('int32')
strategies = results[f]['AG'][0].split('; ')[:-1]
newpath = '../XGBoost_Prediction_Model/Magazine_Optimization_Demo/Optimal_Magazines_CNN/'+f
if not os.path.exists(newpath):
os.makedirs(newpath)
for item in strategies:
ad_id = int(item.split(' ')[2])
ctpg_id = int(item.split(' ')[5])
ad_loc = 1-Slots[ad_id]
ctpg_loc = Slots[ctpg_id]
ad = cv.imread(dir_list[ad_id])[:,(ad_loc*640):((ad_loc+1)*640),:]
ctpg = cv.imread(dir_list[ctpg_id])[:,(ctpg_loc*640):((ctpg_loc+1)*640),:]
img = np.concatenate((ad,ctpg),axis=1)
cv.imwrite(newpath+'/Newly_Assigned_Page'+str(ad_id)+'.jpg', img)