private void SetMode(ModeFormat setMode) { Mode = setMode; switch (setMode) { case ModeFormat.Maize: numOfOffsetPairs = 2000; uMin = 500; uMax = 50 * 2000; sampledNumberPerClass = 2000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Near; traningFilename = "Maize"; RandomGenerationMode = RandomGenerationModeFormat.Default; break; case ModeFormat.Blue: numOfOffsetPairs = 2000; uMin = 500; uMax = 40 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Near; traningFilename = "Blue"; RandomGenerationMode = RandomGenerationModeFormat.Circular; RF_model_file_path_ = directory + "\\FeatureVectureBlue149.rf.model"; //RF_model_file_path_ = directory + "\\FeatureVectureBlue149.rf.model.prune.model"; num_classes_ = 3; break; /* case ModeFormat.Blue149: numOfOffsetPairs = 2000; uMin = 500; uMax = 40 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; KinectMode = KinectModeFormat.Near; traningFilename = "Blue"; RandomGenerationMode = RandomGenerationModeFormat.Circular; // 149 imgs break; */ case ModeFormat.BlueDefault: numOfOffsetPairs = 2000; uMin = 500; uMax = 40 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "BlueDefault"; RandomGenerationMode = RandomGenerationModeFormat.Circular; RF_model_file_path_ = directory + "\\FeatureVectorBlueDefault.400.rf.model"; num_classes_ = 5; break; case ModeFormat.Abstraction: // Operate in default Kinect mode, use a large box and a large number of offset numOfOffsetPairs = 2000; uMin = 2000; uMax = 300 * 2000; sampledNumberPerClass = 2000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "Abstraction"; RandomGenerationMode = RandomGenerationModeFormat.Default; break; case ModeFormat.Demo1000: numOfOffsetPairs = 1000; uMin = 500; uMax = 40 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Near; traningFilename = "Demo1000"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RFModelFilePath = directory + "\\FeatureVectorF1000.400.rf.model"; //RFModelFilePath = directory + "\\RF.1000.100.3.model"; //RF_model_file_path_ = directory + "\\RF.1000.10.2.model"; num_classes_ = 3; break; case ModeFormat.Demo2000: numOfOffsetPairs = 2000; uMin = 500; uMax = 40 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Near; traningFilename = "Demo2000"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RF_model_file_path_ = directory + "\\FeatureVectorF2000.400.rf.model"; //RF_model_file_path_ = directory + "\\RF.2000.350.3.model"; num_classes_ = 3; break; case ModeFormat.F1000: numOfOffsetPairs = 1000; uMin = 500; uMax = 40 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "F1000"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RFModelFilePath = directory + "\\FeatureVectorF1000.400.rf.model"; //RFModelFilePath = directory + "\\RF.1000.100.3.model"; RF_model_file_path_ = directory + "\\RF.1000.10.2.model"; num_classes_ = 2; break; case ModeFormat.F2000: numOfOffsetPairs = 2000; uMin = 500; uMax = 40 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "F2000"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RF_model_file_path_ = directory + "\\FeatureVectorF2000.400.rf.model"; RF_model_file_path_ = directory + "\\RF.2000.350.3.model"; num_classes_ = 5; break; case ModeFormat.F3000: numOfOffsetPairs = 3000; uMin = 500; uMax = 40 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "F3000"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RFModelFilePath = directory + "\\FeatureVectorF3000.400.rf.model"; RF_model_file_path_ = directory + "\\RF.2000.350.3.model"; num_classes_ = 5; break; case ModeFormat.Range05: numOfOffsetPairs = 2000; uMin = 500; uMax = 2000/2; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "Range05"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RF_model_file_path_ = directory + "\\FeatureVectorF2000.400.rf.model"; RF_model_file_path_ = directory + "\\RF.2000.350.3.model"; num_classes_ = 5; break; case ModeFormat.Range1: numOfOffsetPairs = 2000; uMin = 500; uMax = 1 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "Range1"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RF_model_file_path_ = directory + "\\FeatureVectorF2000.400.rf.model"; RF_model_file_path_ = directory + "\\RF.2000.350.3.model"; num_classes_ = 5; break; case ModeFormat.Range10: numOfOffsetPairs = 2000; uMin = 500; uMax = 10 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "Range10"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RF_model_file_path_ = directory + "\\FeatureVectorF2000.400.rf.model"; RF_model_file_path_ = directory + "\\RF.2000.350.3.model"; num_classes_ = 5; break; case ModeFormat.Range20: numOfOffsetPairs = 2000; uMin = 500; uMax = 20 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "Range20"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RF_model_file_path_ = directory + "\\FeatureVectorF2000.400.rf.model"; RF_model_file_path_ = directory + "\\RF.2000.350.3.model"; num_classes_ = 5; break; case ModeFormat.Range40: numOfOffsetPairs = 2000; uMin = 500; uMax = 40 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "Range40"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RF_model_file_path_ = directory + "\\FeatureVectorF2000.400.rf.model"; RF_model_file_path_ = directory + "\\RF.2000.350.3.model"; num_classes_ = 5; break; case ModeFormat.Range60: numOfOffsetPairs = 2000; uMin = 500; uMax = 60 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "Range60"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RF_model_file_path_ = directory + "\\FeatureVectorF2000.400.rf.model"; RF_model_file_path_ = directory + "\\RF.2000.350.3.model"; num_classes_ = 5; break; case ModeFormat.Range100: numOfOffsetPairs = 2000; uMin = 500; uMax = 100 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "Range100"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RF_model_file_path_ = directory + "\\FeatureVectorF2000.400.rf.model"; RF_model_file_path_ = directory + "\\RF.2000.350.3.model"; num_classes_ = 5; break; case ModeFormat.Range200: numOfOffsetPairs = 2000; uMin = 500; uMax = 200 * 2000; sampledNumberPerClass = 1000; UpperBound = 10000; kinect_mode_ = KinectModeFormat.Default; traningFilename = "Range200"; RandomGenerationMode = RandomGenerationModeFormat.Circular; //RF_model_file_path_ = directory + "\\FeatureVectorF2000.400.rf.model"; RF_model_file_path_ = directory + "\\RF.2000.350.3.model"; num_classes_ = 5; break; } }
// Construct fiunction public FeatureExtraction(ModeFormat setMode= ModeFormat.Maize, string varDirectory = defaultDirectory, CPUorGPUFormat to_set_xPU_mode=CPUorGPUFormat.GPU) { depth = new short[width * height]; label = new byte[width * height]; listOfTargetPosition = new List<int>(); listOfBackgroundPosition = new List<int>(); offset_pair_list_ = new List<int[]>(); // used for random number generator _r= new Random(); SetDirectory(varDirectory); SetMode(setMode); //LoadRFModel(); RFfeatureVector = new double[numOfOffsetPairs]; RFfeatureVectorShort = new short[numOfOffsetPairs]; xPU_mode_ = to_set_xPU_mode; if (xPU_mode_ == CPUorGPUFormat.GPU) { //InitGPU(); } }