summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/ovision/see/oconfig.hh
diff options
context:
space:
mode:
authorgaillaro2005-04-05 18:26:18 +0000
committergaillaro2005-04-05 18:26:18 +0000
commit97b69507c877a4644c0caac4f61e052e188f9d8e (patch)
tree1a81f341ab6577003fa60ca3fb135e7b4baeecba /2005/i/robert/src/ovision/see/oconfig.hh
parent0062520c9cc87eeeb8828361bbb33033a6f07b7e (diff)
Renaissance de la vision :
- code standard robot - presque du C++ - apprentissage du RN sur plusieurs images - tableau de données couleurs compressé - reconnaissance de plusieurs objets possibles
Diffstat (limited to '2005/i/robert/src/ovision/see/oconfig.hh')
-rw-r--r--2005/i/robert/src/ovision/see/oconfig.hh138
1 files changed, 138 insertions, 0 deletions
diff --git a/2005/i/robert/src/ovision/see/oconfig.hh b/2005/i/robert/src/ovision/see/oconfig.hh
new file mode 100644
index 0000000..890a12e
--- /dev/null
+++ b/2005/i/robert/src/ovision/see/oconfig.hh
@@ -0,0 +1,138 @@
+// robert - programme du robot 2005
+//
+// Copyright (C) 2005 Olivier Gaillard
+//
+// Robot APB Team/Efrei 2005.
+// Web: http://assos.efrei.fr/robot/
+// Email: robot AT efrei DOT fr
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+#ifndef config_h
+#define config_h
+
+#include <vector>
+#include <string>
+#include "image/image.hh"
+
+struct ObjectColor
+{
+ std::string label;
+ int color;
+};
+
+
+/// Charge le fichier config et distribue les variables
+class OConfig
+{
+ static OConfig* instance;
+ /// Parse une ligne du fichier de config
+ void parse (const char *var, const char *arg);
+
+ public:
+ /// Constructeur
+ OConfig (const char *filename = "rc/vision.conf");
+ /// Destructeur
+ ~OConfig (void);
+
+ /////////////////////////////// RESEAU DE NEURONES ///////////////////////////////////////////////////
+ /// nombre d'iteration pour l'apprentissage(number iteration learning)
+ unsigned long nnNil;
+ /// vitesse d'apprentissage (step learning)
+ double nnSl;
+ /// influence sur les voisins pour l'apprentissage (neighborhood learning)
+ double nnNl;
+ /// seuil pour la verification des noeuds de sorties inutiles du reseau
+ int nnLazyThreshold;
+ /// nombre de couleurs a detecter
+ int nnNbColor;
+ /// nombre de couleurs dans le fichier des seuils
+ int nnNbColorMax;
+ /// nombre de couleurs dans le fichier des poids
+ int nnNbNodeMax;
+ /// influence de la luminosite dans l'integration de l'image
+ double nnInfluLum;
+ /// seuil de couleur indéfini si la sortie du réseau n'est pas assez grande
+ int nnThresholdOutput;
+ /// tableau des poids du reseau de neurones
+ unsigned char *node;
+ ////////////////////////////////// MAP ///////////////////////////////////////////////////////////////
+ /// erreur accepte pour la construction de la map
+ int mapError;
+ int mapErrorPart;
+ /// Position de la balle (devant, derriere, cote, ...)
+ int angle_ball_weight;
+ /// Distance Balle-Robot
+ int distance_ball_robot_weight;
+ /// Distance Balle_goal
+ int distance_ball_goal_weight;
+ /// Densite de balles dans la zone
+ int ball_density_weight;
+ /// Presence du robot adverse dans la zone
+ int ennemy_presence_weight;
+ /// Precision de la position de la balle
+ int ball_precision_weight;
+ /// Viabilite de l'information
+ int skepticism_weight;
+ /// Max de la valeur
+ int skepticism_max;
+ /// Décrémentation lorsqu'une balle est perdue
+ int ball_lost_weight;
+ /// temps avant que le marqueur de la balle commence a descendre si elle est partie vers le bas
+ int ball_bottom_time_out;
+ /////////////////////////////// GROUP ////////////////////////////////////////////////////////////////
+ /// liste des objects à rechercher
+ std::vector<ObjectColor> groupColor;
+ /// distance des sauts pour la recherche des balles
+ int jumpPointDist;
+ /// tableau de correspondances des couleurs RGB
+ unsigned char *color;
+ /////////////////////////////// MAGNIFIER ////////////////////////////////////////////////////////////////
+ /// taille minimum des zones trouvées
+ int minLengthZone;
+ /////////////////////////////// SPACE ////////////////////////////////////////////////////////////////
+ /// Points utilises pour le calcul de distance
+ // Liste des points chargés
+ std::vector<int> spaceTabPoint;
+ // Nombre de points chargés
+ int spaceNbDistPoint;
+ //float one_nn_learning_rate;
+ //int one_nn_learning_iteration;
+ /////////////////////////////// UI ////////////////////////////////////////////////////////////////
+ /// tableau d'index des couleurs a melanger (merge)
+ int *index;
+ /// Chemin d'acces des images
+ char imgPath[30];
+ /// Objet à afficher sur l'interface
+ int uiGroupToDisplay;
+ /// Mode de couleurs des images chargées
+ Image::PixelFormat inputColor;
+
+ /// Chargement de poids pour le reseau de neurone
+ void loadNNFile (const char *filePath = "rc/poids");
+ /// Creation d'un fichier de poids pour le reseau de neurones
+ void createNNFile (const char *file, int nbOutput) const;
+ /// Creatio du fichier de la table de distance
+ void createDistFile (const char *filename, int numPoint) const;
+ /// Chargement du fichier de la table de distance
+ void loadDistFile (const char *filename);
+ static OConfig* getInstance () {return instance;}
+ /// Charge les fichiers de conf
+ void load (const char *filename = "rc/vision.conf");
+};
+
+
+#endif // config_h