@@ -20,13 +20,13 @@ If --begin_step=0, the run of the protocol will begin with initialization which
* training of classifiers (depending of --model) between cover and stego in folder 'train_$model_0/'.
* evaluation of the classifiers and both databases: cover and initial stegos.
For further iteration $k, the operations are:
For further iteration $k, the following data is generateed:
* adversarial stegos stored in a .npy file in the folder "data_adv_$k/adv_final/"
* optimized costs maps of shape 3*image_size*image_size stored in the folder "data_adv_$k/adv_cost/"
* evaluation of all the classifiers (all possible models trained at all previous iterations) on this new database of stegos in "data_adv_$k/eval_$model_$i/" of i between 0 and k-1.
* index of the database of stego images (vector of shape 10000 containing integer between 0 and k) stored in "data_train_$k/index.npy"
* train of classifier "model" stored in "train_$model_k/"
* evaluation of this new classifier on cover (in "cover/eval_$model_k/") + all the databases of stegos (in "data_adv_$i/eval_$model_k/") saved in "data_adv_$i/adv_final/" for all i between 0 and k.
* evaluation of this new classifier on cover (in "cover/eval_$model_k/") and all the databases of stegos (in "data_adv_$i/eval_$model_k/") saved in "data_adv_$i/adv_final/" for all i between 0 and k.
...
...
@@ -36,9 +36,21 @@ A run of the protocol will save all values in a folder, which is defined in the
The organization of this folder is described by the illustration, and in the following.
At the beginning, it creates file description.txt which resumes all parameters parsed at the beggining of run of main.py.
Adversarial images are saved in "data_adv_$i/adv_final/" and optimized cost maps in "data_adv_$i/adv_cost/".
Evalution of classifier with architecture $model trained at iteration $j on adversarial images generated at iteration $i are saved in "data_adv_$i/eval_$model_$j/". There are two files: "logits.npy" of size (10000,2) containing the raw logits given by the classifier, and "probas.npy" of size (10000,) which are the stego class probability given by the softmax of the logits. The images are ordred are in the file --permutation_files.npy given in input of the protocol.
* data_adv_$k/
* adv_final/
* $i.npy: adversarial stego images of size (image_size, image_size) stored in different .npy files
* adv_cost/
* $i: optimized cost maps of size (3,image_size,image_size) stored in different .npy files
* eval_$model_$j/
* logits.npy: of size (10000,2) containing the raw logits given by the evaluation of classifier with architecture $model trained at iteration $j on stego images contained in folder data_adv_$k/adv_final/. Evaluations of the 10000 images are ordered following the permutation files given in parameter --permutation_files.npy (given in input of the protocol)
* probas.npy: of size (10000,) which are the stego class probability given by the softmax of the logits. The order in the same than logits.
* cover/
* eval_$model_$j/
* logits.npy: same as before but for classifier $model trained at iteration $j evaluated on the cover images (stored in --data_dir_cover).
* probas.npy: output stego class probability obtained from the softmax of logits.npy.
* data_train_$k/
* index.npy: of size (10000,), index of the adversarial stegos picked from the strategy given in input of the protocol. The index of stegos are stored following file --permutation_files.npy. The index are integers i comprised between 0 (for initial stego images stored in --data_dir_stego_0) and k (for adversarial stegos stored in data_adv_$i/adv_final/ for i>=1).