diff --git a/Promethe_scripts/examples/view_cell/learn/plot/plot_ten_view_cells.m b/Promethe_scripts/examples/view_cell/learn/plot/plot_ten_learn.m similarity index 79% rename from Promethe_scripts/examples/view_cell/learn/plot/plot_ten_view_cells.m rename to Promethe_scripts/examples/view_cell/learn/plot/plot_ten_learn.m index 9596c3ecca8882e8c0f62f4f34e8e9e2709c1080..a269e322033d189c7bc953ac13408469e85957b0 100644 --- a/Promethe_scripts/examples/view_cell/learn/plot/plot_ten_view_cells.m +++ b/Promethe_scripts/examples/view_cell/learn/plot/plot_ten_learn.m @@ -1,5 +1,7 @@ clear all; fclose all; +% plot winner cells for each image + # R G B # 0 0.4470 0.7410 blue @@ -48,37 +50,32 @@ largeur = screenSize(3); hauteur = screenSize(4); figure(1, "position", [x_ecran, y_ecran-50, largeur-100, hauteur-100]); +clf; subplot (2, 1, 1); -plot(view_cells(:,1), "color", RGB(1,:)) -hold on; -plot(view_cells(:,2), "color", RGB(2,:)) -plot(view_cells(:,3), "color", RGB(3,:)) -plot(view_cells(:,4), "color", RGB(4,:)) -plot(view_cells(:,5), "color", RGB(5,:)) -plot(view_cells(:,6), "color", RGB(6,:)) -plot(view_cells(:,7), "color", RGB(7,:)) -plot(view_cells(:,8), "color", RGB(8,:)) -plot(view_cells(:,9), "color", RGB(9,:)) -plot(view_cells(:,10), "color", RGB(10,:)) +for i = 1:10 + plot(view_cells(:,i), "color", RGB(i,:)) + hold on; +endfor ylim([0, 1.2]); legend('cell 1', 'cell 2', 'cell 3', 'cell 4', 'cell 5', 'cell 6', 'cell 7', 'cell 8', 'cell 9', 'cell 10'); xlabel('Number of iterations (image by image)'); ylabel('Cell''s activity'); title('Activities of 10 view cells'); +hold off; x_lim_auto = xlim; % axis of the previous plot -subplot (2, 1, 2); -winner = []; [vc_len, ~] = size(view_cells); +subplot (2, 1, 2); for i = 1:vc_len temp = view_cells(i,:); [_, max_idx] = max(temp); - winner = [winner; RGB(max_idx,:)]; -endfor -rgbplot (winner, "composite"); + rectangle('Position', [i, 0, 1, 1], 'FaceColor', RGB(max_idx,:), 'EdgeColor', 'none'); + hold on; +end xlim(x_lim_auto); % align with previous plot xlabel('Number of iterations (image by image)'); title('Winner cell'); +hold off; % Save image print view_cells_plot.png diff --git a/Promethe_scripts/examples/view_cell/learn/view_cell_learn.res b/Promethe_scripts/examples/view_cell/learn/view_cell_learn.res index f8980b91ea96e5ce23c6664f95e8a6facbe2ebae..a0550a3b71257c5f9cfc5fe943ae94763cc29619 100644 Binary files a/Promethe_scripts/examples/view_cell/learn/view_cell_learn.res and b/Promethe_scripts/examples/view_cell/learn/view_cell_learn.res differ diff --git a/Promethe_scripts/examples/view_cell/test/plot/plot_ten_view_cells.m b/Promethe_scripts/examples/view_cell/test/plot/plot_ten_test.m similarity index 62% rename from Promethe_scripts/examples/view_cell/test/plot/plot_ten_view_cells.m rename to Promethe_scripts/examples/view_cell/test/plot/plot_ten_test.m index 9596c3ecca8882e8c0f62f4f34e8e9e2709c1080..1558a6aa93c0faa84d58f96eadb77e22e6698228 100644 --- a/Promethe_scripts/examples/view_cell/test/plot/plot_ten_view_cells.m +++ b/Promethe_scripts/examples/view_cell/test/plot/plot_ten_test.m @@ -1,5 +1,7 @@ clear all; fclose all; +% plot winner cells for each image, you can change the step between each learned images in dist_step below + # R G B # 0 0.4470 0.7410 blue @@ -48,39 +50,61 @@ largeur = screenSize(3); hauteur = screenSize(4); figure(1, "position", [x_ecran, y_ecran-50, largeur-100, hauteur-100]); -subplot (2, 1, 1); -plot(view_cells(:,1), "color", RGB(1,:)) -hold on; -plot(view_cells(:,2), "color", RGB(2,:)) -plot(view_cells(:,3), "color", RGB(3,:)) -plot(view_cells(:,4), "color", RGB(4,:)) -plot(view_cells(:,5), "color", RGB(5,:)) -plot(view_cells(:,6), "color", RGB(6,:)) -plot(view_cells(:,7), "color", RGB(7,:)) -plot(view_cells(:,8), "color", RGB(8,:)) -plot(view_cells(:,9), "color", RGB(9,:)) -plot(view_cells(:,10), "color", RGB(10,:)) +clf; +subplot (3, 1, 1); +for i = 1:10 + plot(view_cells(:,i), "color", RGB(i,:)) + hold on; +endfor ylim([0, 1.2]); legend('cell 1', 'cell 2', 'cell 3', 'cell 4', 'cell 5', 'cell 6', 'cell 7', 'cell 8', 'cell 9', 'cell 10'); xlabel('Number of iterations (image by image)'); ylabel('Cell''s activity'); title('Activities of 10 view cells'); +hold off; x_lim_auto = xlim; % axis of the previous plot -subplot (2, 1, 2); -winner = []; [vc_len, ~] = size(view_cells); +subplot (3, 1, 2); for i = 1:vc_len temp = view_cells(i,:); [_, max_idx] = max(temp); - winner = [winner; RGB(max_idx,:)]; -endfor -rgbplot (winner, "composite"); + rectangle('Position', [i, 0, 1, 1], 'FaceColor', RGB(max_idx,:), 'EdgeColor', 'none'); + hold on; +end xlim(x_lim_auto); % align with previous plot xlabel('Number of iterations (image by image)'); title('Winner cell'); +hold off; + +winner = []; +wanted_winner = []; +current_wanted = 1; +dist_step = int32(50); % distance between each images (in number of images) +offset = idivide(dist_step, int32(2), "ceil"); +subplot (3, 1, 3); +for i = 1:vc_len + next_learnt_cell = dist_step*current_wanted + offset; + if (i > next_learnt_cell) && (current_wanted < 10) + current_wanted = current_wanted + 1; + endif + wanted_winner = [wanted_winner; current_wanted]; + + rectangle('Position', [i, 0, 1, 1], 'FaceColor', RGB(current_wanted,:), 'EdgeColor', 'none'); + hold on; + + temp = view_cells(i,:); + [_, max_idx] = max(temp); + winner = [winner; max_idx]; +endfor +xlim(x_lim_auto); % align with previous plot +xlabel('Number of iterations (image by image)'); +title('Theoretical winner'); +hold off; % Save image print view_cells_plot.png +accuracy = 100 * sum(winner == wanted_winner) / vc_len; +disp(strcat("The accuracy is: ", num2str(accuracy), " %")) pause; diff --git a/Promethe_scripts/examples/view_cell/test/view_cell_test.res b/Promethe_scripts/examples/view_cell/test/view_cell_test.res index f8980b91ea96e5ce23c6664f95e8a6facbe2ebae..a0550a3b71257c5f9cfc5fe943ae94763cc29619 100644 Binary files a/Promethe_scripts/examples/view_cell/test/view_cell_test.res and b/Promethe_scripts/examples/view_cell/test/view_cell_test.res differ diff --git a/Promethe_scripts/examples/view_cell/test/view_cell_test.script b/Promethe_scripts/examples/view_cell/test/view_cell_test.script index 41b40af5a916658a8ee3101435f1f9e7bfeca83c..e69a0d24ee8137dbdbc606e56e72b2a592d9b12a 100644 --- a/Promethe_scripts/examples/view_cell/test/view_cell_test.script +++ b/Promethe_scripts/examples/view_cell/test/view_cell_test.script @@ -9,7 +9,7 @@ groupe = f_calgradD posx = 479 , posy = 443 reverse = -1 p_posx = 24 , p_posy = 28 -debug = 0 +debug = -3 ech_temps = 1 %Les commentaires doivent etre mis ici. @@ -22,7 +22,7 @@ groupe = f_give_focus_point posx = 341 , posy = 182 reverse = -1 p_posx = 184 , p_posy = 28 -debug = 1 +debug = -3 ech_temps = 0 %-h : ouverture angulaire horizontale de l'optique @@ -37,7 +37,7 @@ groupe = f_memory_focus_point posx = 307 , posy = 268 reverse = -1 p_posx = 344 , p_posy = 28 -debug = 1 +debug = -3 ech_temps = 0 % @@ -50,7 +50,7 @@ groupe = f_flip_flop posx = 111 , posy = 120 reverse = -1 p_posx = 504 , p_posy = 28 -debug = 0 +debug = -4 ech_temps = 1 groupe = 9 , type = 14 , nbre neurones = 1 , seuil = 0.000000 @@ -62,7 +62,7 @@ groupe = f_even_first_transition_detect posx = 217 , posy = 130 reverse = -1 p_posx = 664 , p_posy = 28 -debug = 1 +debug = -3 ech_temps = 0 %Les commentaires doivent etre mis ici. @@ -74,8 +74,8 @@ type2 = 0 groupe = f_extract_val_to_vector_circular posx = 512 , posy = 240 reverse = -1 -p_posx = 24 , p_posy = 196 -debug = 1 +p_posx = 824 , p_posy = 28 +debug = -3 ech_temps = 0 %Les commentaires doivent etre mis ici. @@ -87,8 +87,8 @@ type2 = 0 groupe = f_extract_val_to_vector_circular posx = 512 , posy = 185 reverse = -1 -p_posx = 184 , p_posy = 196 -debug = 1 +p_posx = 984 , p_posy = 28 +debug = -3 ech_temps = 0 %Les commentaires doivent etre mis ici. @@ -100,8 +100,8 @@ type2 = 0 groupe = f_rho_theta posx = 679 , posy = 232 reverse = -1 -p_posx = 344 , p_posy = 196 -debug = 1 +p_posx = 24 , p_posy = 196 +debug = -3 ech_temps = 0 % @@ -113,8 +113,8 @@ type2 = 0 groupe = f_bias posx = 380 , posy = 40 reverse = -1 -p_posx = 504 , p_posy = 196 -debug = 1 +p_posx = 184 , p_posy = 196 +debug = -4 ech_temps = 2 % @@ -127,7 +127,7 @@ groupe = f_sum_no_seuil posx = 756 , posy = 54 reverse = 1 p_posx = 344 , p_posy = 196 -debug = 1 +debug = -3 ech_temps = 2 % @@ -140,7 +140,7 @@ groupe = f_sum_no_seuil posx = 699 , posy = 40 reverse = 1 p_posx = 504 , p_posy = 196 -debug = 1 +debug = -3 ech_temps = 2 %Les commentaires doivent etre mis ici. @@ -152,8 +152,8 @@ type2 = 0 groupe = f_affiche_pdv_xy posx = 794 , posy = 123 reverse = -2 -p_posx = 984 , p_posy = 196 -debug = 1 +p_posx = 664 , p_posy = 196 +debug = -3 ech_temps = 0 %Les commentaires doivent etre mis ici. @@ -170,8 +170,8 @@ type2 = 0 groupe = sv_cor posx = 739 , posy = 260 reverse = -1 -p_posx = 184 , p_posy = 364 -debug = 1 +p_posx = 824 , p_posy = 196 +debug = -3 ech_temps = 0 %Les commentaires doivent etre mis ici. @@ -184,8 +184,8 @@ type2 = 0 groupe = seuillage posx = 799 , posy = 233 reverse = -1 -p_posx = 344 , p_posy = 364 -debug = 1 +p_posx = 984 , p_posy = 196 +debug = -3 ech_temps = 0 %Les commentaires doivent etre mis ici. @@ -198,8 +198,8 @@ type2 = 0 groupe = land posx = 859 , posy = 262 reverse = -1 -p_posx = 504 , p_posy = 364 -debug = 1 +p_posx = 24 , p_posy = 364 +debug = -3 ech_temps = 0 %Les commentaires doivent etre mis ici. @@ -211,8 +211,8 @@ type2 = 0 groupe = PrPh posx = 919 , posy = 315 reverse = -1 -p_posx = 664 , p_posy = 364 -debug = 1 +p_posx = 184 , p_posy = 364 +debug = -3 ech_temps = 0 % @@ -224,8 +224,8 @@ type2 = 0 groupe = f_diffusion_angle posx = 837 , posy = 628 reverse = -1 -p_posx = 824 , p_posy = 364 -debug = 1 +p_posx = 344 , p_posy = 364 +debug = -4 ech_temps = 2 %Les commentaires doivent etre mis ici. @@ -237,8 +237,8 @@ type2 = 0 groupe = f_extract_neurons posx = 289 , posy = 513 reverse = -1 -p_posx = 984 , p_posy = 364 -debug = 0 +p_posx = 504 , p_posy = 364 +debug = -4 ech_temps = 1 %Les commentaires doivent etre mis ici. @@ -250,8 +250,8 @@ type2 = 0 groupe = f_theta_generate posx = 734 , posy = 315 reverse = -1 -p_posx = 24 , p_posy = 532 -debug = 1 +p_posx = 664 , p_posy = 364 +debug = -3 ech_temps = 0 % @@ -263,8 +263,8 @@ type2 = 0 groupe = f_extract_neurons posx = 294 , posy = 376 reverse = -1 -p_posx = 504 , p_posy = 532 -debug = 0 +p_posx = 824 , p_posy = 364 +debug = -3 ech_temps = 1 %Les commentaires doivent etre mis ici. @@ -276,8 +276,8 @@ type2 = 0 groupe = f_affiche_pdv_info posx = 794 , posy = 178 reverse = -2 -p_posx = 664 , p_posy = 532 -debug = 1 +p_posx = 984 , p_posy = 364 +debug = -3 ech_temps = 0 % @@ -289,8 +289,8 @@ type2 = 0 groupe = %f_affiche_image_from_extension posx = 375 , posy = 379 reverse = 6 -p_posx = 824 , p_posy = 532 -debug = 0 +p_posx = 24 , p_posy = 532 +debug = -4 ech_temps = 1 % @@ -302,8 +302,8 @@ type2 = 0 groupe = f_img_select_color_channel posx = 318 , posy = 439 reverse = -1 -p_posx = 24 , p_posy = 700 -debug = 0 +p_posx = 184 , p_posy = 532 +debug = -4 ech_temps = 1 % @@ -315,8 +315,8 @@ type2 = 0 groupe = f_affiche_image_from_extension posx = 542 , posy = 492 reverse = -6 -p_posx = 184 , p_posy = 700 -debug = 0 +p_posx = 344 , p_posy = 532 +debug = -4 ech_temps = 1 % @@ -328,8 +328,8 @@ type2 = 0 groupe = f_convert_image_float_to_uchar posx = 395 , posy = 441 reverse = -142 -p_posx = 344 , p_posy = 700 -debug = 0 +p_posx = 504 , p_posy = 532 +debug = -3 ech_temps = 1 % @@ -341,8 +341,8 @@ type2 = 0 groupe = f_load_mask posx = 281 , posy = 42 reverse = -1 -p_posx = 504 , p_posy = 700 -debug = 1 +p_posx = 664 , p_posy = 532 +debug = -4 ech_temps = 2 % @@ -354,8 +354,8 @@ type2 = 0 groupe = f_compet_ptc posx = 447 , posy = 367 reverse = 100 -p_posx = 664 , p_posy = 700 -debug = 0 +p_posx = 824 , p_posy = 532 +debug = -4 ech_temps = 1 % @@ -367,8 +367,8 @@ type2 = 0 groupe = %f_display_image_activity posx = 1039 , posy = 320 reverse = -2 -p_posx = 824 , p_posy = 700 -debug = 1 +p_posx = 984 , p_posy = 532 +debug = -4 ech_temps = 1 % @@ -380,8 +380,8 @@ type2 = 0 groupe = f_display_image_activity posx = 1039 , posy = 239 reverse = -2 -p_posx = 984 , p_posy = 700 -debug = 1 +p_posx = 24 , p_posy = 700 +debug = -4 ech_temps = 1 % @@ -398,8 +398,8 @@ type2 = 0 groupe = VPC1 posx = 979 , posy = 276 reverse = -1 -p_posx = 24 , p_posy = 868 -debug = 1 +p_posx = 184 , p_posy = 700 +debug = -4 ech_temps = 1 % @@ -411,8 +411,8 @@ type2 = 0 groupe = f_debut posx = 979 , posy = 48 reverse = 1 -p_posx = 184 , p_posy = 868 -debug = 0 +p_posx = 344 , p_posy = 700 +debug = -4 ech_temps = 2 %Les commentaires doivent etre mis ici. @@ -424,8 +424,8 @@ type2 = 0 groupe = break posx = 490 , posy = 134 reverse = -1 -p_posx = 344 , p_posy = 868 -debug = 1 +p_posx = 504 , p_posy = 700 +debug = -3 ech_temps = 0 %Les commentaires doivent etre mis ici. @@ -437,8 +437,8 @@ type2 = 0 groupe = f_extract_neurons posx = 401 , posy = 134 reverse = -1 -p_posx = 504 , p_posy = 868 -debug = 0 +p_posx = 664 , p_posy = 700 +debug = -4 ech_temps = 0 % @@ -450,8 +450,8 @@ type2 = 0 groupe = f_affiche_image_from_extension posx = 450 , posy = 496 reverse = -6 -p_posx = 664 , p_posy = 868 -debug = 0 +p_posx = 824 , p_posy = 700 +debug = -4 ech_temps = 1 % @@ -463,8 +463,8 @@ type2 = 0 groupe = f_bias posx = 880 , posy = 37 reverse = 156 -p_posx = 24 , p_posy = 1036 -debug = 1 +p_posx = 984 , p_posy = 700 +debug = -4 ech_temps = 2 % @@ -476,8 +476,8 @@ type2 = 0 groupe = %f_grabimages posx = 105 , posy = 214 reverse = -1 -p_posx = 184 , p_posy = 1036 -debug = 0 +p_posx = 24 , p_posy = 868 +debug = -3 ech_temps = 1 % @@ -489,8 +489,8 @@ type2 = 0 groupe = f_debut posx = 45 , posy = 276 reverse = -1 -p_posx = 344 , p_posy = 1036 -debug = 0 +p_posx = 184 , p_posy = 868 +debug = -3 ech_temps = 2 % @@ -502,8 +502,8 @@ type2 = 0 groupe = f_load_image_sequential posx = 105 , posy = 325 reverse = -1 -p_posx = 504 , p_posy = 1036 -debug = 0 +p_posx = 344 , p_posy = 868 +debug = -3 ech_temps = 1 % @@ -515,8 +515,8 @@ type2 = 0 groupe = f_load_activity posx = 108 , posy = 431 reverse = -1 -p_posx = 664 , p_posy = 1036 -debug = 0 +p_posx = 504 , p_posy = 868 +debug = -3 ech_temps = 1 % @@ -528,8 +528,8 @@ type2 = 0 groupe = f_ext_plus_neurone posx = 225 , posy = 431 reverse = -1 -p_posx = 824 , p_posy = 1036 -debug = 0 +p_posx = 664 , p_posy = 868 +debug = -3 ech_temps = 1 %Les commentaires doivent etre mis ici. @@ -541,8 +541,8 @@ type2 = 0 groupe = f_load_mask posx = 1103 , posy = 415 reverse = 1 -p_posx = 984 , p_posy = 1036 -debug = 0 +p_posx = 824 , p_posy = 868 +debug = -4 ech_temps = 2 % @@ -554,8 +554,8 @@ type2 = 0 groupe = f_bias posx = 751 , posy = 630 reverse = -107 -p_posx = 24 , p_posy = 1204 -debug = 1 +p_posx = 984 , p_posy = 868 +debug = -4 ech_temps = 2 % @@ -567,8 +567,8 @@ type2 = 0 groupe = f_debut posx = 48 , posy = 483 reverse = -114 -p_posx = 184 , p_posy = 1204 -debug = 0 +p_posx = 24 , p_posy = 1036 +debug = -4 ech_temps = 2 % @@ -580,8 +580,8 @@ type2 = 0 groupe = f_bias posx = 524 , posy = 41 reverse = -121 -p_posx = 344 , p_posy = 1204 -debug = 1 +p_posx = 184 , p_posy = 1036 +debug = -4 ech_temps = 2 % @@ -593,8 +593,8 @@ type2 = 0 groupe = f_clock posx = 1036 , posy = 120 reverse = -1 -p_posx = 504 , p_posy = 1204 -debug = 1 +p_posx = 344 , p_posy = 1036 +debug = -4 ech_temps = 1 % @@ -606,8 +606,8 @@ type2 = 0 groupe = f_debut posx = 1103 , posy = 469 reverse = -149 -p_posx = 824 , p_posy = 1204 -debug = 0 +p_posx = 504 , p_posy = 1036 +debug = -3 ech_temps = 2 % @@ -619,8 +619,8 @@ type2 = 0 groupe = f_debut posx = 425 , posy = 662 reverse = 1 -p_posx = 824 , p_posy = 28 -debug = 0 +p_posx = 664 , p_posy = 1036 +debug = -4 ech_temps = 2 % @@ -632,8 +632,8 @@ type2 = 0 groupe = f_init_fftw posx = 319 , posy = 665 reverse = 1 -p_posx = 984 , p_posy = 28 -debug = 1 +p_posx = 824 , p_posy = 1036 +debug = -3 ech_temps = 2 % @@ -645,8 +645,8 @@ type2 = 0 groupe = f_vue_metres posx = 181 , posy = 632 reverse = 1 -p_posx = 24 , p_posy = 364 -debug = 1 +p_posx = 984 , p_posy = 1036 +debug = -4 ech_temps = 2 % @@ -658,8 +658,8 @@ type2 = 0 groupe = f_vue_metres posx = 180 , posy = 696 reverse = 1 -p_posx = 824 , p_posy = 868 -debug = 1 +p_posx = 24 , p_posy = 1204 +debug = -4 ech_temps = 2 % @@ -672,7 +672,7 @@ groupe = f_create_dog_image posx = 49 , posy = 630 reverse = 1 p_posx = 184 , p_posy = 1204 -debug = 1 +debug = -3 ech_temps = 2 % @@ -685,7 +685,7 @@ groupe = f_fft posx = 50 , posy = 557 reverse = -1 p_posx = 344 , p_posy = 1204 -debug = 1 +debug = -3 ech_temps = 2 % @@ -698,7 +698,7 @@ groupe = f_fft_inv posx = 665 , posy = 367 reverse = 1 p_posx = 504 , p_posy = 1204 -debug = 0 +debug = -4 ech_temps = 1 % @@ -711,7 +711,7 @@ groupe = f_multi_inputs_fft posx = 665 , posy = 560 reverse = -1 p_posx = 664 , p_posy = 1204 -debug = 1 +debug = -3 ech_temps = 1 % @@ -723,8 +723,8 @@ type2 = 0 groupe = f_fft posx = 605 , posy = 440 reverse = -1 -p_posx = 184 , p_posy = 532 -debug = 1 +p_posx = 824 , p_posy = 1204 +debug = -3 ech_temps = 1 % @@ -737,7 +737,7 @@ groupe = f_convert_image_uchar_to_float posx = 541 , posy = 421 reverse = 0 p_posx = 984 , p_posy = 1204 -debug = 0 +debug = -4 ech_temps = 1 %Les commentaires doivent etre mis ici. @@ -749,8 +749,8 @@ type2 = 0 groupe = f_display_frame_rate posx = 143 , posy = 259 reverse = -128 -p_posx = 664 , p_posy = 196 -debug = 1 +p_posx = 24 , p_posy = 1372 +debug = -3 ech_temps = 1 nombre de liaisons = 94