public NIPDataProvider(SearchingParams searchingPars, SamplingParams samplingPars, int maxSampleCount) : base(ToList(searchingPars, samplingPars, maxSampleCount), Projections, null) { Contract.Requires(!searchingPars.IsEmpty); Contract.Requires(!samplingPars.IsEmpty); Contract.Requires(maxSampleCount > 0); }
internal static IEnumerable<NoisedImagePartReader> FindReaders(SearchingParams searchingPars, SamplingParams samplingPars) { Contract.Requires(!searchingPars.IsEmpty); Contract.Requires(!samplingPars.IsEmpty); Contract.Ensures(Contract.Result<IEnumerable<NoisedImagePartReader>>() != null); return SearchForNIPs(samplingPars, SearchForFiles(searchingPars)); }
public NoisedImagePartProvider(SearchingParams searchingPars, SamplingParams samplingPars, int maxSampleCount) { Contract.Requires(!searchingPars.IsEmpty); Contract.Requires(!samplingPars.IsEmpty); Contract.Requires(maxSampleCount > 100); this.searchingPars = searchingPars; this.samplingPars = samplingPars; this.maxSampleCount = maxSampleCount; }
public NIPFFLearningScriptProvider(SearchingParams searchingPars, SamplingParams samplingPars, int maxSampleCount) { Contract.Requires(!searchingPars.IsEmpty); Contract.Requires(!samplingPars.IsEmpty); Contract.Requires(maxSampleCount > 100); this.searchingPars = searchingPars; this.samplingPars = samplingPars; this.maxSampleCount = maxSampleCount; }
private static IEnumerable<NoisedImageLineReader> SearchForNILs(SamplingParams samplingPars, IEnumerable<FileInfo> files) { double noise = 0.0; int sampleIndex = 0; foreach (var file in files) { int size = samplingPars.Size; int width = samplingPars.Width; var imgSize = GetImageSize(file); if (imgSize != null && imgSize.Value.Width >= width && imgSize.Value.Height >= size) { // Supported and fits. string fileName = file.FullName; for (int y = 0; y < imgSize.Value.Height - size; y += size) { for (int x = 0; x < imgSize.Value.Width - width; x += size) { if ((sampleIndex++ % samplingPars.Frequency) == 0) { var p = new Point(x, y); int ch = RandomGenerator.Random.Next(3); switch (ch) { case 0: yield return new NoisedImageLineReader(fileName, p, size, width, Channel.Red, noise); break; case 1: yield return new NoisedImageLineReader(fileName, p, size, width, Channel.Green, noise); break; case 3: yield return new NoisedImageLineReader(fileName, p, size, width, Channel.Blue, noise); break; } noise += 0.001; if (Math.Round(noise, 5) > Properties.Settings.Default.MaxNoiseLevel) noise = 0.0; } } } } } }
// Helpers: private static List<NIPData> ToList(SearchingParams searchingPars, SamplingParams samplingPars, int? maxSampleCount) { Contract.Ensures(Contract.Result<List<NIPData>>() != null); Contract.Ensures(Contract.Result<List<NIPData>>().Count > 0); List<NIPData> result = null; var readers = Search.FindReaders(searchingPars, samplingPars); if (maxSampleCount == null) { result = readers.Select(r => new NIPData(r)).ToList(); } else { result = readers.OrderByRandom().Take(maxSampleCount.Value).Select(r => new NIPData(r)).ToList(); } if (result.Count == 0) { throw new InvalidOperationException("Samples not found."); } return result; }
public static IUnorderedNeuralVectorFlowProvider CreateRValidationProvider() { var searchPars = new SearchingParams(Settings.Default.ImagePaths.Split(';'), new[] { "*.jpg", "*.png" }, true); var samplPars = new SamplingParams(Settings.Default.SampleSize, Settings.Default.RecurrentSampleLength, 10); return new NoisedImageLineProvider(searchPars, samplPars, Settings.Default.ValidationSampleCount); }
static NIPDataProvider CreateDataProvider(int max) { var searchPars = new SearchingParams(Properties.Settings.Default.ImagePaths.Split(';'), new[] { "*.jpg", "*.png" }, true); var samplPars = new SamplingParams(Properties.Settings.Default.SampleSize); var prov = new NIPDataProvider(searchPars, samplPars, max); return prov; }
static ScriptCollectionProvider CreateProvider(int sampleCount, bool recurrent) { //string debugPath = @"C:\Users\unbornchikken\Pictures\NN\HQ_Parts\"; //var searchPars = new SearchingParams(debugPath, new[] { "*.jpg", "*.png" }, true); var searchPars = new SearchingParams(Properties.Settings.Default.ImagePaths.Split(';'), new[] { "*.jpg", "*.png" }, true); var samplPars = new SamplingParams(Properties.Settings.Default.SampleSize, 25, 10); if (!recurrent) { return new NIPScriptProvider(searchPars, samplPars, sampleCount); } else { return new NILScriptProvider(searchPars, samplPars, sampleCount); } }