int RandomSampleJobList::DetermineCompressedImageCount (FeatureVectorListPtr trainData, TrainingConfigurationPtr config ) { FileDescPtr fileDesc = trainData->FileDesc (); FeatureVectorListPtr srcImages = trainData->DuplicateListAndContents (); FeatureVectorListPtr imagesToTrain = new FeatureVectorList (fileDesc, false, log, 10000); MLClassListPtr mlClasses = srcImages->ExtractListOfClasses (); { MLClassList::const_iterator idx; for (idx = mlClasses->begin (); idx != mlClasses->end (); idx++) { MLClassPtr mlClass = *idx; FeatureVectorListPtr imagesThisClass = srcImages->ExtractImagesForAGivenClass (mlClass); imagesToTrain->AddQueue (*imagesThisClass); delete imagesThisClass; } } NormalizationParms normParms (config, *imagesToTrain, log); normParms.NormalizeImages (imagesToTrain); ClassAssignments classAssignments (*mlClasses, log); FeatureVectorListPtr compressedImageList = new FeatureVectorList (fileDesc, true, log, 10000); BitReduction br (config->SVMparamREF (), fileDesc, trainData->AllFeatures ()); CompressionStats compressionStats = br.compress (*imagesToTrain, compressedImageList, classAssignments ); int compressedImageCount = compressionStats.num_images_after; log.Level (10) << "DetermineCompressedImageCount compressedImageCount[" << compressedImageCount << "]" << endl; delete compressedImageList; compressedImageList = NULL; delete mlClasses; mlClasses = NULL; delete imagesToTrain; imagesToTrain = NULL; delete srcImages; srcImages = NULL; return compressedImageCount; } /* DetermineCompressedImageCount */