Разработка автоматизированной системы классификации товаров по их изображениям
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
ta()
{();[] trainDirectoryInfo = (new DirectoryInfo(initialDirectory + @"\64x48")).GetDirectories(); // Чтение каталога всех категорий= trainDirectoryInfo.Length;(int i = 0; i < trainDirectoryInfo.Length; i++)
{[] items = trainDirectoryInfo[i].GetDirectories(); // список товаров в категории(); // изображения товаров в других категориях(var item in items)
{.AddRange(item.GetFiles("*.jpg"));
}(int j = 0; j < trainDirectoryInfo.Length; j++)
{(j == i);[] falseItems = trainDirectoryInfo[j].GetDirectories();(var item in falseItems)
{.AddRange(item.GetFiles("*.jpg"));
}
}trainImagesCount = (uint)(images.Count + falseImages.Count);net = new NeuralNetwork(smallNetworkLayers);.id = Convert.ToInt32(trainDirectoryInfo[i].Name);.CreateTrainDataFile(trainDirectoryInfo[i].FullName, images, true);
//net.CreateTrainDataFile(trainDirectoryInfo[i].FullName, images, true, trainImagesCount);
//net.CreateTrainDataFile(trainDirectoryInfo[i].FullName, falseImages, false, trainImagesCount);
}
}void CreateSmallTrainData(List wholeTDI)
{(int i = 0; i < trainDirectoryInfo.Count; i++)
{[] items = trainDirectoryInfo[i].GetDirectories();();(var item in items)
{.AddRange(item.GetFiles("*.jpg"));
}(int j = 0; j < wholeTDI.Count; j++)
{(wholeTDI[j] == trainDirectoryInfo[i]);[] falseItems = wholeTDI[j].GetDirectories();(var item in falseItems)
{.AddRange(item.GetFiles("*.jpg"));
}
}trainImagesCount = (uint)(images.Count + falseImages.Count);net = new NeuralNetwork(smallNetworkLayers);.id = Convert.ToInt32(trainDirectoryInfo[i].Name);
//net.CreateTrainDataFile(trainDirectoryInfo[i].FullName, images, true);.CreateTrainDataFile(trainDirectoryInfo[i].FullName, images, true, trainImagesCount);.CreateTrainDataFile(trainDirectoryInfo[i].FullName, falseImages, false, trainImagesCount);
}
}void CreateSmallTrainData(List trainDirectoryInfo)
{(int i = 0; i < trainDirectoryInfo.Count; i++)
{[] items = trainDirectoryInfo[i].GetDirectories();();(var item in items)
{.AddRange(item.GetFiles("*.jpg"));
}net = new NeuralNetwork(smallNetworkLayers);.id = Convert.ToInt32(trainDirectoryInfo[i].Name);watch = Stopwatch.StartNew();.CreateTrainDataFile(trainDirectoryInfo[i].FullName, images, true);.Stop();.WriteLine(((double)watch.ElapsedTicks / (double)Stopwatch.Frequency / (double)images.Count).ToString());
}
}void ParallelCreateSmallTrainData()
(),foreach(List categories in preparedList)
{thread = new Thread(()
{.WriteLine("Создание файлов обучения");
CreateSmallTrainData(categories);
}
);.Start();.Join(10);
}
}int GetNetworkTrainWorkAmount()
{[] trainDirectoryInfo = (new DirectoryInfo(initialDirectory + @"\64x48")).GetDirectories(); // Чтение каталога всех категорийcounter = 0;(var category in trainDirectoryInfo)
{trainFilePath = category.FullName + "//" + category.Name + ".tr";(File.Exists(trainFilePath))
{++;
}
}counter;
}void TrainSmallNetworks()
{();= GetNetworkTrainWorkAmount();[] trainDirectoryInfo = (new DirectoryInfo(initialDirectory + @"\64x48")).GetDirectories(); // Чтение каталога всех категорий(var category in trainDirectoryInfo)
{trainFilePath = category.FullName + "\\" + category.Name + ".tr";(File.Exists(trainFilePath))
{net = new NeuralNetwork(smallNetworkLayers);.id = Convert.ToInt32(category.Name);watch = Stopwatch.StartNew();.Train(trainFilePath);.Stop();.WriteLine("Training " + ((double)watch.ElapsedTicks / (double)Stopwatch.Frequency).ToString());anotherWatch = Stopwatch.StartNew();.Save(initialDirectory + @"\64x48\");.Stop();.WriteLine("Saving " + ((double)anotherWatch.ElapsedTicks / (double)Stopwatch.Frequency).ToString());();
}
}
}void TrainSmallNetworks(List trainDirectoryInfo)
{(var category in trainDirectoryInfo)
{trainFilePath = category.FullName + "//" + category.Name + ".tr";(File.Exists(trainFilePath))
{net = new NeuralNetwork(smallNetworkLayers);.id = Convert.ToInt32(category.Name);
//Stopwatch watch = Stopwatch.StartNew();.Train(trainFilePath);
//watch.Stop();
//Debug.WriteLine(((double)watch.ElapsedTicks / (double)Stopwatch.Frequency).ToString());.Save(initialDirectory + @"\64x48\");();
}
}
}void ParallelTrainSmallNetworks()
(),networkTrainThreadCount);(List categories in preparedList)
{thread = new Thread(()
{.WriteLine("Обучение сетей");(categories);
}
);.SetApartmentState(ApartmentState.STA);.Start();.Join(50);
}
}void CascadeTrainSmallNetworks()
{[] trainDirectoryInfo = (new DirectoryInfo(initialDirectory + @"\64x48")).GetDirectories(); // Чтение каталога всех категорий(var category in trainDirectoryInfo)
{trainFilePath = category.FullName + "//" + category.Name + ".tr";net = new NeuralNetwork(smallNetworkLayers);.id = Convert.ToInt32(category.Name);.CascadeTrain(trainFilePath);.Save(initialDirectory + @"\64x48\");
}
}void WipeTrainData()
{[] trainDirectoryInfo = (new DirectoryInfo(initialDirectory + @"\64x48")).GetDirectories();(var dir in trainDirectoryInfo)
{tr = dir.GetFiles("*.tr");
{[0].Delete();
}(Exception)
{;
}
}
}void WipeNetworks()
{ann = (new DirectoryInfo(initialDirectory + @"\64x48")).GetFiles("*.ann");(var n in ann)
{
{.Delete();
}(Exception)
{;
}
}
}void Wipe()
{();();
}
}
}