TaskRelevanceMap.H
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef TASKRELEVANCEMAP_H_DEFINED
00039 #define TASKRELEVANCEMAP_H_DEFINED
00040
00041 #include "Component/ModelComponent.H"
00042 #include "Component/ModelParam.H"
00043 #include "Channels/InputFrame.H"
00044 #include "Image/LevelSpec.H"
00045 #include "Image/ImageCache.H"
00046 #include "Neuro/NeuroSimEvents.H"
00047 #include "Simulation/SimModule.H"
00048 #include "Simulation/SimEvents.H"
00049 #include "Media/TestImages.H"
00050
00051
00052
00053 typedef TestImages::SceneData Scene;
00054 typedef TestImages::ObjData Object;
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 class TaskRelevanceMap : public SimModule
00066 {
00067 public:
00068
00069
00070
00071
00072
00073
00074
00075 TaskRelevanceMap(OptionManager& mgr,
00076 const std::string& descrName = "Task-Relevance Map",
00077 const std::string& tagName = "TaskRelevanceMap");
00078
00079
00080 virtual ~TaskRelevanceMap();
00081
00082
00083
00084 private:
00085
00086 TaskRelevanceMap& operator=(const TaskRelevanceMap& sm);
00087 TaskRelevanceMap(const TaskRelevanceMap& sm);
00088 };
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098 class TaskRelevanceMapConfigurator : public ModelComponent
00099 {
00100 public:
00101
00102 TaskRelevanceMapConfigurator(OptionManager& mgr,
00103 const std::string& descrName =
00104 "Task-Relevance Map Configurator",
00105 const std::string& tagName =
00106 "TaskRelevanceMapConfigurator");
00107
00108
00109 virtual ~TaskRelevanceMapConfigurator();
00110
00111
00112
00113
00114
00115 nub::ref<TaskRelevanceMap> getTRM() const;
00116
00117 protected:
00118 OModelParam<std::string> itsTRMtype;
00119
00120
00121
00122
00123
00124 virtual void paramChanged(ModelParamBase* const param,
00125 const bool valueChanged,
00126 ParamClient::ChangeStatus* status);
00127
00128 private:
00129 nub::ref<TaskRelevanceMap> itsTRM;
00130 };
00131
00132
00133
00134
00135
00136 class TaskRelevanceMapStub : public TaskRelevanceMap
00137 {
00138 public:
00139
00140 TaskRelevanceMapStub(OptionManager& mgr,
00141 const std::string& descrName = "Task-Relevance Map Stub",
00142 const std::string& tagName = "TaskRelevanceMapStub");
00143
00144
00145 virtual ~TaskRelevanceMapStub();
00146 };
00147
00148
00149
00150
00151 class TaskRelevanceMapAdapter : public TaskRelevanceMap
00152 {
00153 public:
00154
00155 TaskRelevanceMapAdapter(OptionManager& mgr,
00156 const std::string& descrName,
00157 const std::string& tagName);
00158
00159
00160 virtual ~TaskRelevanceMapAdapter();
00161
00162 protected:
00163
00164 SIMCALLBACK_DECLARE(TaskRelevanceMapAdapter, SimEventRetinaImage);
00165
00166
00167 SIMCALLBACK_DECLARE(TaskRelevanceMapAdapter, SimEventSaccadeStatusEye);
00168
00169
00170 SIMCALLBACK_DECLARE(TaskRelevanceMapAdapter, SimEventClockTick);
00171
00172
00173 SIMCALLBACK_DECLARE(TaskRelevanceMapAdapter, SimEventSaveOutput);
00174
00175
00176 OModelParam<LevelSpec> itsLevelSpec;
00177
00178
00179 OModelParam<bool> itsSaveResults;
00180
00181
00182
00183
00184 virtual void save1(const ModelComponentSaveInfo& sinfo);
00185
00186
00187
00188 virtual void reset1();
00189
00190
00191
00192
00193 virtual void inputFrame(const InputFrame& f) = 0;
00194
00195
00196 virtual void saccadicSuppression(const bool on) = 0;
00197
00198
00199 virtual void integrate(SimEventQueue& q) = 0;
00200
00201
00202
00203
00204
00205
00206
00207
00208 Image<float> itsMap;
00209 };
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219 class TaskRelevanceMapStd : public TaskRelevanceMapAdapter
00220 {
00221 public:
00222
00223 TaskRelevanceMapStd(OptionManager& mgr, const std::string& descrName =
00224 "Task-Relevance Map Std",
00225 const std::string& tagName =
00226 "TaskRelevanceMapStd");
00227
00228
00229 virtual ~TaskRelevanceMapStd();
00230
00231 protected:
00232
00233 OModelParam<bool> itsLearnTRM;
00234
00235
00236 OModelParam<bool> itsLearnUpdateTRM;
00237
00238
00239 OModelParam<std::string> itsBiasTRM;
00240
00241
00242 virtual void inputFrame(const InputFrame& f);
00243
00244
00245 virtual void saccadicSuppression(const bool on);
00246
00247
00248 virtual void integrate(SimEventQueue& q);
00249 };
00250
00251
00252
00253
00254
00255
00256 class TaskRelevanceMapKillStatic : public TaskRelevanceMapAdapter
00257 {
00258 public:
00259
00260 TaskRelevanceMapKillStatic(OptionManager& mgr, const std::string& descrName =
00261 "Task-Relevance Map KillStatic",
00262 const std::string& tagName =
00263 "TaskRelevanceMapKillStatic");
00264
00265
00266 virtual ~TaskRelevanceMapKillStatic();
00267
00268 protected:
00269
00270
00271
00272 OModelParam<float> itsKillStaticThresh;
00273
00274
00275
00276 OModelParam<float> itsKillStaticCoeff;
00277
00278
00279 virtual void inputFrame(const InputFrame& f);
00280
00281
00282 virtual void saccadicSuppression(const bool on);
00283
00284
00285 virtual void integrate(SimEventQueue& q);
00286
00287
00288
00289 virtual void save1(const ModelComponentSaveInfo& sinfo);
00290
00291
00292 virtual void reset1();
00293
00294 private:
00295
00296
00297
00298
00299
00300
00301 Image<float> itsStaticBuff;
00302 };
00303
00304
00305
00306
00307
00308
00309 class TaskRelevanceMapKillN : public TaskRelevanceMapAdapter
00310 {
00311 public:
00312
00313 TaskRelevanceMapKillN(OptionManager& mgr, const std::string& descrName =
00314 "Task-Relevance Map KillN",
00315 const std::string& tagName =
00316 "TaskRelevanceMapKillN");
00317
00318
00319 virtual ~TaskRelevanceMapKillN();
00320
00321 protected:
00322
00323 OModelParam<int> itsN;
00324
00325
00326 virtual void inputFrame(const InputFrame& f);
00327
00328
00329 virtual void saccadicSuppression(const bool on);
00330
00331
00332 virtual void integrate(SimEventQueue& q);
00333
00334
00335 virtual void start1();
00336
00337
00338 virtual void reset1();
00339
00340 private:
00341 ImageCacheMinMax<float> itsCache;
00342 };
00343
00344
00345
00346
00347
00348
00349
00350 class TaskRelevanceMapGistClassify : public TaskRelevanceMapAdapter
00351 {
00352 public:
00353
00354 TaskRelevanceMapGistClassify(OptionManager& mgr, const std::string& descrName =
00355 "Task-Relevance Map GistClassify",
00356 const std::string& tagName =
00357 "TaskRelevanceMapGistClassify");
00358
00359
00360 virtual ~TaskRelevanceMapGistClassify();
00361
00362 protected:
00363
00364 OModelParam<std::string> itsClusterCenterFileName;
00365 OModelParam<std::string> itsTemplateDir;
00366 OModelParam<int> itsPCADims;
00367 OModelParam<std::string> itsPCAMatrixName;
00368 OModelParam<int> itsCacheSize;
00369 OModelParam<int> itsUpdatePeriod;
00370
00371
00372 virtual void inputFrame(const InputFrame& f);
00373
00374
00375 virtual void saccadicSuppression(const bool on);
00376
00377
00378 virtual void integrate(SimEventQueue& q);
00379
00380
00381 virtual void gistmatch(Image<float> gist);
00382
00383
00384 virtual void getPCAMatrix();
00385
00386
00387 virtual Image<float> computeGistDist(Image<float> currGist);
00388
00389
00390 virtual Image<float> getTDMap(Image<float> gistDist);
00391
00392
00393 virtual void reset1();
00394
00395 private:
00396 Image<float> itsGist;
00397 Image<float> itsPCAMatrix;
00398 int itsMatchCategory;
00399 Image<float> itsCurrentTDMap;
00400 Image<float> itsTmpTDMap;
00401 std::string itsTDMapName;
00402 int itsNumOfCategory;
00403 int itsUsedDims;
00404 bool itsMapComputedForCurrentFrame;
00405
00406 ImageCacheAvg<float> itsTDMap;
00407 int itsFrame;
00408
00409 };
00410
00411
00412
00413
00414
00415
00416
00417 class TaskRelevanceMapTigs : public TaskRelevanceMapAdapter
00418 {
00419 public:
00420
00421 TaskRelevanceMapTigs(OptionManager& mgr, const std::string& descrName =
00422 "Task-Relevance Map Tigs",
00423 const std::string& tagName =
00424 "TaskRelevanceMapTigs");
00425
00426
00427 virtual ~TaskRelevanceMapTigs();
00428
00429 protected:
00430
00431 OModelParam<std::string> itsTigsMatrixName;
00432 OModelParam<int> itsPCADims;
00433 OModelParam<std::string> itsPCAMatrixName;
00434 OModelParam<int> itsCacheSize;
00435 OModelParam<int> itsUpdatePeriod;
00436
00437
00438 virtual void inputFrame(const InputFrame& f);
00439
00440
00441 virtual void saccadicSuppression(const bool on);
00442
00443
00444 virtual void integrate(SimEventQueue& q);
00445
00446
00447 virtual void getPCAMatrix();
00448
00449
00450 virtual Image<float> getTDMap(Image<float> gistDist);
00451
00452
00453 virtual void getTigsMatrix();
00454
00455
00456 virtual Image<float> decode(Image<float> tmp);
00457
00458
00459
00460 virtual void save1(const ModelComponentSaveInfo& sinfo);
00461
00462
00463 virtual void reset1();
00464
00465 private:
00466 Image<float> itsGist;
00467 Image<float> itsPCAMatrix;
00468 Image<float> itsTigsMatrix;
00469 Image<float> itsCurrentTDMap;
00470 Image<float> itsTmpTDMap;
00471 int itsUsedDims;
00472 bool itsMapComputedForCurrentFrame;
00473
00474 ImageCacheAvg<float> itsTDMap;
00475 int itsFrame;
00476 };
00477
00478
00479
00480
00481
00482
00483
00484
00485 class TaskRelevanceMapTigs2 : public TaskRelevanceMapAdapter
00486 {
00487 public:
00488
00489 TaskRelevanceMapTigs2(OptionManager& mgr, const std::string& descrName =
00490 "Task-Relevance Map Tigs2",
00491 const std::string& tagName =
00492 "TaskRelevanceMapTigs2");
00493
00494
00495 virtual ~TaskRelevanceMapTigs2();
00496
00497 protected:
00498
00499 OModelParam<std::string> itsTigsMatrixName;
00500 OModelParam<int> itsGistPCADims;
00501 OModelParam<int> itsImgPCADims;
00502 OModelParam<std::string> itsGistPCAMatrixName;
00503 OModelParam<std::string> itsImgPCAMatrixName;
00504 OModelParam<int> itsCacheSize;
00505 OModelParam<int> itsUpdatePeriod;
00506
00507
00508 virtual void inputFrame(const InputFrame& f);
00509
00510
00511 virtual void saccadicSuppression(const bool on);
00512
00513
00514 virtual void integrate(SimEventQueue& q);
00515
00516
00517 virtual void getGistPCAMatrix();
00518
00519
00520 virtual void getImgPCAMatrix();
00521
00522
00523 virtual Image<float> getTDMap(Image<float> gistDist);
00524
00525
00526 virtual void getTigsMatrix();
00527
00528
00529 virtual Image<float> decode(Image<float> tmp);
00530
00531
00532
00533 virtual void save1(const ModelComponentSaveInfo& sinfo);
00534
00535
00536 virtual void reset1();
00537
00538 private:
00539 Image<float> itsGist;
00540 Image<float> itsGistPCAMatrix;
00541 Image<float> itsImgPCAMatrix;
00542 Image<float> itsTigsMatrix;
00543 Image<float> itsCurrentTDMap;
00544 Image<float> itsTmpTDMap;
00545 Image<float> itsCurrFrameVec;
00546 int itsUsedDims;
00547 bool itsMapComputedForCurrentFrame;
00548
00549 ImageCacheAvg<float> itsTDMap;
00550 int itsFrame;
00551 };
00552
00553
00554 class TaskRelevanceMapSocial : public TaskRelevanceMapAdapter
00555 {
00556 public:
00557
00558 TaskRelevanceMapSocial(OptionManager& mgr, const std::string& descrName =
00559 "Task-Relevance Map Social",
00560 const std::string& tagName =
00561 "TaskRelevanceMapSocial");
00562
00563
00564 virtual ~TaskRelevanceMapSocial();
00565
00566 protected:
00567
00568
00569
00570
00571 virtual void inputFrame(const InputFrame& f);
00572
00573
00574 virtual void saccadicSuppression(const bool on);
00575
00576
00577 virtual void integrate(SimEventQueue& q);
00578
00579
00580 virtual void start1();
00581
00582
00583 virtual void reset1();
00584
00585 private:
00586 OModelParam<std::string> itsXMLFName;
00587 rutz::shared_ptr<TestImages> itsObjectsInfo;
00588 std::vector<std::string> itsObjectsNames;
00589 uint itsNumObjects;
00590
00591 uint itsFrame;
00592 };
00593
00594 #endif
00595
00596
00597
00598
00599
00600