Hardware components | ||||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
Software apps and online services | ||||||
| ||||||
| ||||||
| ||||||
| ||||||
|
Hello. I have decided to make a little project prototype to showcase power of machine learning combined with Windows 10 IoT core. The main goal is that one may use machine learning with a cheap webcam to do rapid integration prototyping of IoT.
For instance, in this example I have not used any sensors on the door. I have used a webcam to identify weather the door is open/closed. (You can do much more than just that!)
The software I have created/used is as follows:- Console C# app with CNTK Nuget package - it identifies the photo assigned to it
- ASP.NET Web API with IIS backend - it provides helpful API to upload photos from Windows 10 IOT device
- Windows 10 IOT UWP app - it provides front end integration with Logitech c210 webcam to click photos and sends them to API
- Microsoft CNTK - it provides machine learning capabilities that can be plugged in with C#
Flow of the app: the Windows 10 IOT UWP app will keep clicking photos (every 5 seconds) and send snapshots to the ASP.net Web API.
- Which will start the background app process that validates whether the door is open/not using a pre-trained (.cmf) model which I have made.
- The API returns me the output of the above process to the Windows 10 IOT UWP app which will display the result of validation on screen.
The training process: I have used Microsoft CNTK ResNet (Image Training hands on) example for this project. For the purpose of machine learning, you need a cheap source that can generate a large volume of valid data quickly for purpose of training. Hence I recorded 2 (5 minute) videos.
- One captured the door as open and me casually opening the door at various angles.
- The other which records me walking around the room, but with the door closed.
- I then used VLC (one can use virtual dub, as well) to split the frames into 64*64 width*height. (Apparently any higher image sizes and my GPU [2 gb vram] kept throwing causing a memory error; you may experiment with higher GPU memory.)
- I created a small utility to make me generate the labels and training material for the (train_map.txt) file quickly and efficiently.
- Once a valid training model was developed, I used that in my C# console app.
- Use GPU in machine learning programs and training processes whenever and wherever possible as you will require lots to compute OOMPH (I recommend Nvidia GPU GTX 750 TI or greater) to speed up the pipeline process
- Use NVIDIA GPU (not sure, but most machine learning stuff out there supports NVIDIA for GPU acceleration).
- Use videos to generate large amounts of data, if you require.
- Results may vary depending on what you trained your model to see.
- Lower error rate in range of 10-30% should be preferred for valid learning from the start (I had 0.25% classification error rate by the end of the RESNET model).
Comments and suggestions are welcome.
Asp.Net Back end api Code
C# //http://localhost:63838/api/Door/UploadFiles
[HttpPost()]
public String UploadFiles()
{
int iUploadedCnt = 0;
// DEFINE THE PATH WHERE WE WANT TO SAVE THE FILES.
string sPath = "";
String randomfilename = Guid.NewGuid().ToString();
String randomoutputname = Guid.NewGuid().ToString();
sPath = System.Web.Hosting.HostingEnvironment.MapPath("~/tempstorage/");
System.Web.HttpFileCollection httpfilecollection = System.Web.HttpContext.Current.Request.Files;
int iCnt = 0;
System.Web.HttpPostedFile hpf = httpfilecollection[iCnt];
if (hpf.ContentLength > 0)
{
if (!File.Exists(sPath + randomfilename))
{
hpf.SaveAs(sPath + randomfilename);
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = "iotcheck";
process.StartInfo.WorkingDirectory = @"C:\iotcheck";
process.StartInfo.Arguments = @""""+sPath + randomoutputname +@""""+" "+ @""""+sPath + randomfilename+@"""";
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
while (!process.HasExited)
{
Thread.Sleep(500);
}
String returnStr= File.ReadLines(sPath + randomoutputname).First();
File.Delete(sPath + randomoutputname);
File.Delete(sPath + randomfilename);
return returnStr;
// test=Utility.EvaluationSingleImage(CNTK.DeviceDescriptor.DefaultDevice());
}
}
// RETURN A MESSAGE (OPTIONAL).
if (iUploadedCnt > 0)
{
return "invalid";
}
else
{
return "Please upload a file to this api";
}
}
Console app code
C#This is the actual app that checks that the scene given corresponds to what trained value
class Program
{
static void Main(string[] args)
{
if(args.Length==2)
{
List<ValPerc> output= EvaluationSingleImage(DeviceDescriptor.DefaultDevice(), args[1]);
ValPerc actualVal = null;
double maxperc=0;
foreach(var item in output)
{
if(Convert.ToDouble(item.percent)>maxperc)
{
maxperc = (Convert.ToDouble(item.percent));
actualVal = item;
}
}
if(actualVal!=null)
{
OutputFile(args[0], actualVal.val);
}
else
{
OutputFile(args[0], "invalid");
}
}
else
{
OutputFile(args[0], "invalid params");
}
}
public static void OutputFile(String filename,String message)
{
using (StreamWriter outputFile = new StreamWriter(filename))
{
outputFile.WriteLine(message);
}
}
public static List<valperc> EvaluationSingleImage(DeviceDescriptor device,String fileName)
{
const string outputName = "z";
var inputDataMap = new Dictionary<Variable, Value>();
// Load the model.
Function modelFunc = Function.LoadModel(@"C:\local\cntk\Tutorials\ImageHandsOn\Models\cifar10.cmf", device);
// Get output variable based on name
Variable outputVar = modelFunc.Outputs.Where(variable => string.Equals(variable.Name, outputName)).Single();
// Get input variable. The model has only one single input.
// The same way described above for output variable can be used here to get input variable by name.
Variable inputVar = modelFunc.Arguments.First();
var outputDataMap = new Dictionary<Variable, Value>();
Value inputVal, outputVal;
List<List<float>> outputBuffer;
// Get shape data for the input variable
NDShape inputShape = inputVar.Shape;
uint imageWidth = inputShape[0];
uint imageHeight = inputShape[1];
uint imageChannels = inputShape[2];
uint imageSize = inputShape.TotalSize;
Console.WriteLine("Evaluate single image");
// Image preprocessing to match input requirements of the model.
Bitmap bmp = new Bitmap(Bitmap.FromFile(fileName));
var resized = bmp.Resize((int)imageWidth, (int)imageHeight, true);
List<float> resizedCHW = resized.ParallelExtractCHW();
// Create input data map
inputVal = Value.CreateBatch(inputVar.Shape, resizedCHW, device);
inputDataMap.Add(inputVar, inputVal);
// Create ouput data map. Using null as Value to indicate using system allocated memory.
// Alternatively, create a Value object and add it to the data map.
outputDataMap.Add(outputVar, null);
// Start evaluation on the device
modelFunc.Evaluate(inputDataMap, outputDataMap, device);
// Get evaluate result as dense output
outputBuffer = new List<List<float>>();
outputVal = outputDataMap[outputVar];
outputVal.CopyVariableValueTo(outputVar, outputBuffer);
var s = PrintOutput(outputVar.Shape.TotalSize, outputBuffer);
return s;
}
private static List<ValPerc> PrintOutput<T>(uint sampleSize, List<List<T>> outputBuffer)
{
Console.WriteLine("The number of sequences in the batch: " + outputBuffer.Count);
int seqNo = 0;
uint outputSampleSize = sampleSize;
System.Collections.Generic.List<ValPerc> listOfOutputs = new System.Collections.Generic.List<ValPerc>();
foreach (var seq in outputBuffer)
{
Console.WriteLine(String.Format("Sequence {0} contains {1} samples.", seqNo++, seq.Count / outputSampleSize));
uint i = 0;
uint sampleNo = 0;
uint cnt = 0;
foreach (var element in seq)
{
if (i++ % outputSampleSize == 0)
{
Console.Write(String.Format(" sample {0}: ", sampleNo));
}
String val = "";
switch (cnt)
{
case 0:
// val = "airplane";
val = "closed";
break;
case 1:
// val = "automobile";
val = "open";
break;
case 2:
//not used this is used for cifr 10 example
val = "bird";
break;
case 3:
// //not used this is used for cifr 10 example
val = "cat";
break;
case 4:
// //not used this is used for cifr 10 example
val = "deer";
break;
case 5:
// //not used this is used for cifr 10 example
val = "dog";
break;
case 6:
//not used this is used for cifr 10 example
val = "frog";
break;
case 7:
//not used this is used for cifr 10 example
val = "horse";
break;
case 8:
//not used this is used for cifr 10 example
val = "ship";
break;
case 9:
//not used this is used for cifr 10 example
val = "truck";
break;
}
listOfOutputs.Add(new ValPerc { percent = element.ToString(), val = val });
Console.Write(element);
if (i % outputSampleSize == 0)
{
Console.WriteLine(".");
sampleNo++;
}
else
{
Console.Write(",");
}
cnt += 1;
}
}
return listOfOutputs;
}
}
public class ValPerc
{
public string val { get; set; }
public string percent{get;set;}
}
Sample code i used to generate the label set for the files
C# //String s = @"cifar-10-batches-py\data\train\closednumb.png 0"+Environment.NewLine;
String s = @"cifar-10-batches-py\data\train\opennumb.png 1" + Environment.NewLine;
String test = "";
for(int i=0;i<2876;i++) //2876 is the last frame for the video file
{
test += s.Replace("numb", i.ToString("D6")); //giving it padding
}
//000000
Clipboard.SetText(test);
Trainmap .txt
Plain textNotice the label at the end of the line
0 stands of closed
1 stands for open
cifar-10-batches-py\data\train\closed000000.png is path of file
cifar-10-batches-py\data\train\closed000000.png 0
cifar-10-batches-py\data\train\closed000001.png 0
cifar-10-batches-py\data\train\closed000002.png 0
cifar-10-batches-py\data\train\closed000003.png 0
cifar-10-batches-py\data\train\closed000004.png 0
cifar-10-batches-py\data\train\closed000005.png 0
cifar-10-batches-py\data\train\closed000006.png 0
cifar-10-batches-py\data\train\closed000007.png 0
cifar-10-batches-py\data\train\closed000008.png 0
cifar-10-batches-py\data\train\closed000009.png 0
cifar-10-batches-py\data\train\closed000010.png 0
cifar-10-batches-py\data\train\closed000011.png 0
cifar-10-batches-py\data\train\closed000012.png 0
cifar-10-batches-py\data\train\closed000013.png 0
cifar-10-batches-py\data\train\closed000014.png 0
cifar-10-batches-py\data\train\closed000015.png 0
cifar-10-batches-py\data\train\closed000016.png 0
cifar-10-batches-py\data\train\closed000017.png 0
cifar-10-batches-py\data\train\closed000018.png 0
cifar-10-batches-py\data\train\closed000019.png 0
cifar-10-batches-py\data\train\closed000020.png 0
cifar-10-batches-py\data\train\closed000021.png 0
cifar-10-batches-py\data\train\closed000022.png 0
cifar-10-batches-py\data\train\closed000023.png 0
cifar-10-batches-py\data\train\closed000024.png 0
cifar-10-batches-py\data\train\closed000025.png 0
cifar-10-batches-py\data\train\closed000026.png 0
cifar-10-batches-py\data\train\closed000027.png 0
cifar-10-batches-py\data\train\closed000028.png 0
cifar-10-batches-py\data\train\closed000029.png 0
cifar-10-batches-py\data\train\closed000030.png 0
cifar-10-batches-py\data\train\closed000031.png 0
cifar-10-batches-py\data\train\closed000032.png 0
cifar-10-batches-py\data\train\closed000033.png 0
cifar-10-batches-py\data\train\closed000034.png 0
cifar-10-batches-py\data\train\closed000035.png 0
cifar-10-batches-py\data\train\closed000036.png 0
cifar-10-batches-py\data\train\closed000037.png 0
cifar-10-batches-py\data\train\closed000038.png 0
cifar-10-batches-py\data\train\closed000039.png 0
cifar-10-batches-py\data\train\closed000040.png 0
cifar-10-batches-py\data\train\closed000041.png 0
cifar-10-batches-py\data\train\closed000042.png 0
cifar-10-batches-py\data\train\closed000043.png 0
cifar-10-batches-py\data\train\closed000044.png 0
cifar-10-batches-py\data\train\closed000045.png 0
cifar-10-batches-py\data\train\closed000046.png 0
cifar-10-batches-py\data\train\closed000047.png 0
cifar-10-batches-py\data\train\closed000048.png 0
cifar-10-batches-py\data\train\closed000049.png 0
cifar-10-batches-py\data\train\closed000050.png 0
cifar-10-batches-py\data\train\closed000051.png 0
cifar-10-batches-py\data\train\closed000052.png 0
cifar-10-batches-py\data\train\closed000053.png 0
cifar-10-batches-py\data\train\closed000054.png 0
cifar-10-batches-py\data\train\closed000055.png 0
cifar-10-batches-py\data\train\closed000056.png 0
cifar-10-batches-py\data\train\closed000057.png 0
cifar-10-batches-py\data\train\closed000058.png 0
cifar-10-batches-py\data\train\closed000059.png 0
cifar-10-batches-py\data\train\closed000060.png 0
cifar-10-batches-py\data\train\closed000061.png 0
cifar-10-batches-py\data\train\closed000062.png 0
cifar-10-batches-py\data\train\closed000063.png 0
cifar-10-batches-py\data\train\closed000064.png 0
cifar-10-batches-py\data\train\closed000065.png 0
cifar-10-batches-py\data\train\closed000066.png 0
cifar-10-batches-py\data\train\closed000067.png 0
cifar-10-batches-py\data\train\closed000068.png 0
cifar-10-batches-py\data\train\closed000069.png 0
cifar-10-batches-py\data\train\closed000070.png 0
cifar-10-batches-py\data\train\closed000071.png 0
cifar-10-batches-py\data\train\closed000072.png 0
cifar-10-batches-py\data\train\closed000073.png 0
cifar-10-batches-py\data\train\closed000074.png 0
cifar-10-batches-py\data\train\closed000075.png 0
cifar-10-batches-py\data\train\closed000076.png 0
cifar-10-batches-py\data\train\closed000077.png 0
cifar-10-batches-py\data\train\closed000078.png 0
cifar-10-batches-py\data\train\closed000079.png 0
cifar-10-batches-py\data\train\closed000080.png 0
cifar-10-batches-py\data\train\closed000081.png 0
cifar-10-batches-py\data\train\closed000082.png 0
cifar-10-batches-py\data\train\closed000083.png 0
cifar-10-batches-py\data\train\closed000084.png 0
cifar-10-batches-py\data\train\closed000085.png 0
cifar-10-batches-py\data\train\closed000086.png 0
cifar-10-batches-py\data\train\closed000087.png 0
cifar-10-batches-py\data\train\closed000088.png 0
cifar-10-batches-py\data\train\closed000089.png 0
cifar-10-batches-py\data\train\closed000090.png 0
cifar-10-batches-py\data\train\closed000091.png 0
cifar-10-batches-py\data\train\closed000092.png 0
cifar-10-batches-py\data\train\closed000093.png 0
cifar-10-batches-py\data\train\closed000094.png 0
cifar-10-batches-py\data\train\closed000095.png 0
cifar-10-batches-py\data\train\closed000096.png 0
cifar-10-batches-py\data\train\closed000097.png 0
cifar-10-batches-py\data\train\closed000098.png 0
cifar-10-batches-py\data\train\closed000099.png 0
cifar-10-batches-py\data\train\closed000100.png 0
cifar-10-batches-py\data\train\closed000101.png 0
cifar-10-batches-py\data\train\closed000102.png 0
cifar-10-batches-py\data\train\closed000103.png 0
cifar-10-batches-py\data\train\closed000104.png 0
cifar-10-batches-py\data\train\closed000105.png 0
cifar-10-batches-py\data\train\closed000106.png 0
cifar-10-batches-py\data\train\closed000107.png 0
cifar-10-batches-py\data\train\closed000108.png 0
cifar-10-batches-py\data\train\closed000109.png 0
cifar-10-batches-py\data\train\closed000110.png 0
cifar-10-batches-py\data\train\closed000111.png 0
cifar-10-batches-py\data\train\closed000112.png 0
cifar-10-batches-py\data\train\closed000113.png 0
cifar-10-batches-py\data\train\closed000114.png 0
cifar-10-batches-py\data\train\closed000115.png 0
cifar-10-batches-py\data\train\closed000116.png 0
cifar-10-batches-py\data\train\closed000117.png 0
cifar-10-batches-py\data\train\closed000118.png 0
cifar-10-batches-py\data\train\closed000119.png 0
cifar-10-batches-py\data\train\closed000120.png 0
cifar-10-batches-py\data\train\closed000121.png 0
cifar-10-batches-py\data\train\closed000122.png 0
cifar-10-batches-py\data\train\closed000123.png 0
cifar-10-batches-py\data\train\closed000124.png 0
cifar-10-batches-py\data\train\closed000125.png 0
cifar-10-batches-py\data\train\closed000126.png 0
cifar-10-batches-py\data\train\closed000127.png 0
cifar-10-batches-py\data\train\closed000128.png 0
cifar-10-batches-py\data\train\closed000129.png 0
cifar-10-batches-py\data\train\closed000130.png 0
cifar-10-batches-py\data\train\closed000131.png 0
cifar-10-batches-py\data\train\closed000132.png 0
cifar-10-batches-py\data\train\closed000133.png 0
cifar-10-batches-py\data\train\closed000134.png 0
cifar-10-batches-py\data\train\closed000135.png 0
cifar-10-batches-py\data\train\closed000136.png 0
cifar-10-batches-py\data\train\closed000137.png 0
cifar-10-batches-py\data\train\closed000138.png 0
cifar-10-batches-py\data\train\closed000139.png 0
cifar-10-batches-py\data\train\closed000140.png 0
cifar-10-batches-py\data\train\closed000141.png 0
cifar-10-batches-py\data\train\closed000142.png 0
cifar-10-batches-py\data\train\closed000143.png 0
cifar-10-batches-py\data\train\closed000144.png 0
cifar-10-batches-py\data\train\closed000145.png 0
cifar-10-batches-py\data\train\closed000146.png 0
cifar-10-batches-py\data\train\closed000147.png 0
cifar-10-batches-py\data\train\closed000148.png 0
cifar-10-batches-py\data\train\closed000149.png 0
cifar-10-batches-py\data\train\closed000150.png 0
cifar-10-batches-py\data\train\closed000151.png 0
cifar-10-batches-py\data\train\closed000152.png 0
cifar-10-batches-py\data\train\closed000153.png 0
cifar-10-batches-py\data\train\closed000154.png 0
cifar-10-batches-py\data\train\closed000155.png 0
cifar-10-batches-py\data\train\closed000156.png 0
cifar-10-batches-py\data\train\closed000157.png 0
cifar-10-batches-py\data\train\closed000158.png 0
cifar-10-batches-py\data\train\closed000159.png 0
cifar-10-batches-py\data\train\closed000160.png 0
cifar-10-batches-py\data\train\closed000161.png 0
cifar-10-batches-py\data\train\closed000162.png 0
cifar-10-batches-py\data\train\closed000163.png 0
cifar-10-batches-py\data\train\closed000164.png 0
cifar-10-batches-py\data\train\closed000165.png 0
cifar-10-batches-py\data\train\closed000166.png 0
cifar-10-batches-py\data\train\closed000167.png 0
cifar-10-batches-py\data\train\closed000168.png 0
cifar-10-batches-py\data\train\closed000169.png 0
cifar-10-batches-py\data\train\closed000170.png 0
cifar-10-batches-py\data\train\closed000171.png 0
cifar-10-batches-py\data\train\closed000172.png 0
cifar-10-batches-py\data\train\closed000173.png 0
cifar-10-batches-py\data\train\closed000174.png 0
cifar-10-batches-py\data\train\closed000175.png 0
cifar-10-batches-py\data\train\closed000176.png 0
cifar-10-batches-py\data\train\closed000177.png 0
cifar-10-batches-py\data\train\closed000178.png 0
cifar-10-batches-py\data\train\closed000179.png 0
cifar-10-batches-py\data\train\closed000180.png 0
cifar-10-batches-py\data\train\closed000181.png 0
cifar-10-batches-py\data\train\closed000182.png 0
cifar-10-batches-py\data\train\closed000183.png 0
cifar-10-batches-py\data\train\closed000184.png 0
cifar-10-batches-py\data\train\closed000185.png 0
cifar-10-batches-py\data\train\closed000186.png 0
cifar-10-batches-py\data\train\closed000187.png 0
cifar-10-batches-py\data\train\closed000188.png 0
cifar-10-batches-py\data\train\closed000189.png 0
cifar-10-batches-py\data\train\closed000190.png 0
cifar-10-batches-py\data\train\closed000191.png 0
cifar-10-batches-py\data\train\closed000192.png 0
cifar-10-batches-py\data\train\closed000193.png 0
cifar-10-batches-py\data\train\closed000194.png 0
cifar-10-batches-py\data\train\closed000195.png 0
cifar-10-batches-py\data\train\closed000196.png 0
cifar-10-batches-py\data\train\closed000197.png 0
cifar-10-batches-py\data\train\closed000198.png 0
cifar-10-batches-py\data\train\closed000199.png 0
cifar-10-batches-py\data\train\closed000200.png 0
cifar-10-batches-py\data\train\closed000201.png 0
cifar-10-batches-py\data\train\closed000202.png 0
cifar-10-batches-py\data\train\closed000203.png 0
cifar-10-batches-py\data\train\closed000204.png 0
cifar-10-batches-py\data\train\closed000205.png 0
cifar-10-batches-py\data\train\closed000206.png 0
cifar-10-batches-py\data\train\closed000207.png 0
cifar-10-batches-py\data\train\closed000208.png 0
cifar-10-batches-py\data\train\closed000209.png 0
cifar-10-batches-py\data\train\closed000210.png 0
cifar-10-batches-py\data\train\closed000211.png 0
cifar-10-batches-py\data\train\closed000212.png 0
cifar-10-batches-py\data\train\closed000213.png 0
cifar-10-batches-py\data\train\closed000214.png 0
cifar-10-batches-py\data\train\closed000215.png 0
cifar-10-batches-py\data\train\closed000216.png 0
cifar-10-batches-py\data\train\closed000217.png 0
cifar-10-batches-py\data\train\closed000218.png 0
cifar-10-batches-py\data\train\closed000219.png 0
cifar-10-batches-py\data\train\closed000220.png 0
cifar-10-batches-py\data\train\closed000221.png 0
cifar-10-batches-py\data\train\closed000222.png 0
cifar-10-batches-py\data\train\closed000223.png 0
cifar-10-batches-py\data\train\closed000248.png 0
cifar-10-batches-py\data\train\closed000249.png 0
cifar-10-batches-py\data\train\closed000250.png 0
cifar-10-batches-py\data\train\closed000251.png 0
cifar-10-batches-py\data\train\closed000252.png 0
cifar-10-batches-py\data\train\closed000253.png 0
cifar-10-batches-py\data\train\closed000254.png 0
cifar-10-batches-py\data\train\closed000255.png 0
cifar-10-batches-py\data\train\closed000256.png 0
cifar-10-batches-py\data\train\closed000257.png 0
cifar-10-batches-py\data\train\closed000258.png 0
cifar-10-batches-py\data\train\closed000259.png 0
cifar-10-batches-py\data\train\closed000260.png 0
cifar-10-batches-py\data\train\closed000261.png 0
cifar-10-batches-py\data\train\closed000262.png 0
cifar-10-batches-py\data\train\closed000263.png 0
cifar-10-batches-py\data\train\closed000264.png 0
cifar-10-batches-py\data\train\closed000265.png 0
cifar-10-batches-py\data\train\closed000266.png 0
cifar-10-batches-py\data\train\closed000267.png 0
cifar-10-batches-py\data\train\closed000268.png 0
cifar-10-batches-py\data\train\closed000269.png 0
cifar-10-batches-py\data\train\closed000270.png 0
cifar-10-batches-py\data\train\closed000271.png 0
cifar-10-batches-py\data\train\closed000272.png 0
cifar-10-batches-py\data\train\closed000273.png 0
cifar-10-batches-py\data\train\closed000274.png 0
cifar-10-batches-py\data\train\closed000275.png 0
cifar-10-batches-py\data\train\closed000276.png 0
cifar-10-batches-py\data\train\closed000277.png 0
cifar-10-batches-py\data\train\closed000278.png 0
cifar-10-batches-py\data\train\closed000279.png 0
cifar-10-batches-py\data\train\closed000280.png 0
cifar-10-batches-py\data\train\closed000281.png 0
cifar-10-batches-py\data\train\closed000282.png 0
cifar-10-batches-py\data\train\closed000283.png 0
cifar-10-batches-py\data\train\closed000284.png 0
cifar-10-batches-py\data\train\closed000285.png 0
cifar-10-batches-py\data\train\closed000286.png 0
cifar-10-batches-py\data\train\closed000287.png 0
cifar-10-batches-py\data\train\closed000288.png 0
cifar-10-batches-py\data\train\closed000289.png 0
cifar-10-batches-py\data\train\closed000290.png 0
cifar-10-batches-py\data\train\closed000291.png 0
cifar-10-batches-py\data\train\closed000292.png 0
cifar-10-batches-py\data\train\closed000293.png 0
cifar-10-batches-py\data\train\closed000294.png 0
cifar-10-batches-py\data\train\closed000295.png 0
cifar-10-batches-py\data\train\closed000296.png 0
cifar-10-batches-py\data\train\closed000297.png 0
cifar-10-batches-py\data\train\closed000298.png 0
cifar-10-batches-py\data\train\closed000299.png 0
cifar-10-batches-py\data\train\closed000300.png 0
cifar-10-batches-py\data\train\closed000301.png 0
cifar-10-batches-py\data\train\closed000302.png 0
cifar-10-batches-py\data\train\closed000303.png 0
cifar-10-batches-py\data\train\closed000304.png 0
cifar-10-batches-py\data\train\closed000305.png 0
cifar-10-batches-py\data\train\closed000306.png 0
cifar-10-batches-py\data\train\closed000307.png 0
cifar-10-batches-py\data\train\closed000308.png 0
cifar-10-batches-py\data\train\closed000309.png 0
cifar-10-batches-py\data\train\closed000310.png 0
cifar-10-batches-py\data\train\closed000311.png 0
cifar-10-batches-py\data\train\closed000312.png 0
cifar-10-batches-py\data\train\closed000313.png 0
cifar-10-batches-py\data\train\closed000314.png 0
cifar-10-batches-py\data\train\closed000315.png 0
cifar-10-batches-py\data\train\closed000316.png 0
cifar-10-batches-py\data\train\closed000317.png 0
cifar-10-batches-py\data\train\closed000318.png 0
cifar-10-batches-py\data\train\closed000319.png 0
cifar-10-batches-py\data\train\closed000320.png 0
cifar-10-batches-py\data\train\closed000321.png 0
cifar-10-batches-py\data\train\closed000322.png 0
cifar-10-batches-py\data\train\closed000323.png 0
cifar-10-batches-py\data\train\closed000324.png 0
cifar-10-batches-py\data\train\closed000325.png 0
cifar-10-batches-py\data\train\closed000326.png 0
cifar-10-batches-py\data\train\closed000327.png 0
cifar-10-batches-py\data\train\closed000328.png 0
cifar-10-batches-py\data\train\closed000329.png 0
cifar-10-batches-py\data\train\closed000330.png 0
cifar-10-batches-py\data\train\closed000331.png 0
cifar-10-batches-py\data\train\closed000332.png 0
cifar-10-batches-py\data\train\closed000333.png 0
cifar-10-batches-py\data\train\closed000334.png 0
cifar-10-batches-py\data\train\closed000335.png 0
cifar-10-batches-py\data\train\closed000336.png 0
cifar-10-batches-py\data\train\closed000337.png 0
cifar-10-batches-py\data\train\closed000338.png 0
cifar-10-batches-py\data\train\closed000339.png 0
cifar-10-batches-py\data\train\closed000340.png 0
cifar-10-batches-py\data\train\closed000341.png 0
cifar-10-batches-py\data\train\closed000342.png 0
cifar-10-batches-py\data\train\closed000343.png 0
cifar-10-batches-py\data\train\closed000344.png 0
cifar-10-batches-py\data\train\closed000345.png 0
cifar-10-batches-py\data\train\closed000346.png 0
cifar-10-batches-py\data\train\closed000347.png 0
cifar-10-batches-py\data\train\closed000348.png 0
cifar-10-batches-py\data\train\closed000349.png 0
cifar-10-batches-py\data\train\closed000350.png 0
cifar-10-batches-py\data\train\closed000351.png 0
cifar-10-batches-py\data\train\closed000352.png 0
cifar-10-batches-py\data\train\closed000353.png 0
cifar-10-batches-py\data\train\closed000354.png 0
cifar-10-batches-py\data\train\closed000355.png 0
cifar-10-batches-py\data\train\closed000356.png 0
cifar-10-batches-py\data\train\closed000357.png 0
cifar-10-batches-py\data\train\closed000358.png 0
cifar-10-batches-py\data\train\closed000359.png 0
cifar-10-batches-py\data\train\closed000360.png 0
cifar-10-batches-py\data\train\closed000361.png 0
cifar-10-batches-py\data\train\closed000362.png 0
cifar-10-batches-py\data\train\closed000363.png 0
cifar-10-batches-py\data\train\closed000364.png 0
cifar-10-batches-py\data\train\closed000365.png 0
cifar-10-batches-py\data\train\closed000366.png 0
cifar-10-batches-py\data\train\closed000367.png 0
cifar-10-batches-py\data\train\closed000368.png 0
cifar-10-batches-py\data\train\closed000369.png 0
cifar-10-batches-py\data\train\closed000370.png 0
cifar-10-batches-py\data\train\closed000371.png 0
cifar-10-batches-py\data\train\closed000372.png 0
cifar-10-batches-py\data\train\closed000373.png 0
cifar-10-batches-py\data\train\closed000374.png 0
cifar-10-batches-py\data\train\closed000375.png 0
cifar-10-batches-py\data\train\closed000376.png 0
cifar-10-batches-py\data\train\closed000377.png 0
cifar-10-batches-py\data\train\closed000378.png 0
cifar-10-batches-py\data\train\closed000379.png 0
cifar-10-batches-py\data\train\closed000380.png 0
cifar-10-batches-py\data\train\closed000381.png 0
cifar-10-batches-py\data\train\closed000382.png 0
cifar-10-batches-py\data\train\closed000383.png 0
cifar-10-batches-py\data\train\closed000384.png 0
cifar-10-batches-py\data\train\closed000385.png 0
cifar-10-batches-py\data\train\closed000386.png 0
cifar-10-batches-py\data\train\closed000387.png 0
cifar-10-batches-py\data\train\closed000388.png 0
cifar-10-batches-py\data\train\closed000389.png 0
cifar-10-batches-py\data\train\closed000390.png 0
cifar-10-batches-py\data\train\closed000391.png 0
cifar-10-batches-py\data\train\closed000392.png 0
cifar-10-batches-py\data\train\closed000393.png 0
cifar-10-batches-py\data\train\closed000394.png 0
cifar-10-batches-py\data\train\closed000395.png 0
cifar-10-batches-py\data\train\closed000396.png 0
cifar-10-batches-py\data\train\closed000397.png 0
cifar-10-batches-py\data\train\closed000398.png 0
cifar-10-batches-py\data\train\closed000399.png 0
cifar-10-batches-py\data\train\closed000400.png 0
cifar-10-batches-py\data\train\closed000401.png 0
cifar-10-batches-py\data\train\closed000402.png 0
cifar-10-batches-py\data\train\closed000403.png 0
cifar-10-batches-py\data\train\closed000404.png 0
cifar-10-batches-py\data\train\closed000405.png 0
cifar-10-batches-py\data\train\closed000406.png 0
cifar-10-batches-py\data\train\closed000407.png 0
cifar-10-batches-py\data\train\closed000408.png 0
cifar-10-batches-py\data\train\closed000409.png 0
cifar-10-batches-py\data\train\closed000410.png 0
cifar-10-batches-py\data\train\closed000411.png 0
cifar-10-batches-py\data\train\closed000412.png 0
cifar-10-batches-py\data\train\closed000413.png 0
cifar-10-batches-py\data\train\closed000414.png 0
cifar-10-batches-py\data\train\closed000415.png 0
cifar-10-batches-py\data\train\closed000416.png 0
cifar-10-batches-py\data\train\closed000417.png 0
cifar-10-batches-py\data\train\closed000418.png 0
cifar-10-batches-py\data\train\closed000419.png 0
cifar-10-batches-py\data\train\closed000420.png 0
cifar-10-batches-py\data\train\closed000421.png 0
cifar-10-batches-py\data\train\closed000422.png 0
cifar-10-batches-py\data\train\closed000423.png 0
cifar-10-batches-py\data\train\closed000424.png 0
cifar-10-batches-py\data\train\closed000425.png 0
cifar-10-batches-py\data\train\closed000426.png 0
cifar-10-batches-py\data\train\closed000427.png 0
cifar-10-batches-py\data\train\closed000428.png 0
cifar-10-batches-py\data\train\closed000429.png 0
cifar-10-batches-py\data\train\closed000430.png 0
cifar-10-batches-py\data\train\closed000431.png 0
cifar-10-batches-py\data\train\closed000432.png 0
cifar-10-batches-py\data\train\closed000433.png 0
cifar-10-batches-py\data\train\closed000434.png 0
cifar-10-batches-py\data\train\closed000435.png 0
cifar-10-batches-py\data\train\closed000436.png 0
cifar-10-batches-py\data\train\closed000437.png 0
cifar-10-batches-py\data\train\closed000438.png 0
cifar-10-batches-py\data\train\closed000439.png 0
cifar-10-batches-py\data\train\closed000440.png 0
cifar-10-batches-py\data\train\closed000441.png 0
cifar-10-batches-py\data\train\closed000442.png 0
cifar-10-batches-py\data\train\closed000443.png 0
cifar-10-batches-py\data\train\closed000444.png 0
cifar-10-batches-py\data\train\closed000445.png 0
cifar-10-batches-py\data\train\closed000446.png 0
cifar-10-batches-py\data\train\closed000447.png 0
cifar-10-batches-py\data\train\closed000448.png 0
cifar-10-batches-py\data\train\closed000449.png 0
cifar-10-batches-py\data\train\closed000450.png 0
cifar-10-batches-py\data\train\closed000451.png 0
cifar-10-batches-py\data\train\closed000452.png 0
cifar-10-batches-py\data\train\closed000453.png 0
cifar-10-batches-py\data\train\closed000454.png 0
cifar-10-batches-py\data\train\closed000455.png 0
cifar-10-batches-py\data\train\closed000456.png 0
cifar-10-batches-py\data\train\closed000457.png 0
cifar-10-batches-py\data\train\closed000458.png 0
cifar-10-batches-py\data\train\closed000459.png 0
cifar-10-batches-py\data\train\closed000460.png 0
cifar-10-batches-py\data\train\closed000461.png 0
cifar-10-batches-py\data\train\closed000462.png 0
cifar-10-batches-py\data\train\closed000463.png 0
cifar-10-batches-py\data\train\closed000464.png 0
cifar-10-batches-py\data\train\closed000465.png 0
cifar-10-batches-py\data\train\closed000466.png 0
cifar-10-batches-py\data\train\closed000467.png 0
cifar-10-batches-py\data\train\closed000468.png 0
cifar-10-batches-py\data\train\closed000469.png 0
cifar-10-batches-py\data\train\closed000470.png 0
cifar-10-batches-py\data\train\closed000471.png 0
cifar-10-batches-py\data\train\closed000472.png 0
cifar-10-batches-py\data\train\closed000473.png 0
cifar-10-batches-py\data\train\closed000474.png 0
cifar-10-batches-py\data\train\closed000475.png 0
cifar-10-batches-py\data\train\closed000476.png 0
cifar-10-batches-py\data\train\closed000477.png 0
cifar-10-batches-py\data\train\closed000478.png 0
cifar-10-batches-py\data\train\closed000479.png 0
cifar-10-batches-py\data\train\closed000480.png 0
cifar-10-batches-py\data\train\closed000481.png 0
cifar-10-batches-py\data\train\closed000482.png 0
cifar-10-batches-py\data\train\closed000483.png 0
cifar-10-batches-py\data\train\closed000484.png 0
cifar-10-batches-py\data\train\closed000485.png 0
cifar-10-batches-py\data\train\closed000486.png 0
cifar-10-batches-py\data\train\closed000487.png 0
cifar-10-batches-py\data\train\closed000488.png 0
cifar-10-batches-py\data\train\closed000489.png 0
cifar-10-batches-py\data\train\closed000490.png 0
cifar-10-batches-py\data\train\closed000491.png 0
cifar-10-batches-py\data\train\closed000492.png 0
cifar-10-batches-py\data\train\closed000493.png 0
cifar-10-batches-py\data\train\closed000494.png 0
cifar-10-batches-py\data\train\closed000495.png 0
cifar-10-batches-py\data\train\closed000496.png 0
cifar-10-batches-py\data\train\closed000497.png 0
cifar-10-batches-py\data\train\closed000498.png 0
cifar-10-batches-py\data\train\closed000499.png 0
cifar-10-batches-py\data\train\closed000500.png 0
cifar-10-batches-py\data\train\closed000501.png 0
cifar-10-batches-py\data\train\closed000502.png 0
cifar-10-batches-py\data\train\closed000503.png 0
cifar-10-batches-py\data\train\closed000504.png 0
cifar-10-batches-py\data\train\closed000505.png 0
cifar-10-batches-py\data\train\closed000506.png 0
cifar-10-batches-py\data\train\closed000507.png 0
cifar-10-batches-py\data\train\closed000508.png 0
cifar-10-batches-py\data\train\closed000509.png 0
cifar-10-batches-py\data\train\closed000510.png 0
cifar-10-batches-py\data\train\closed000511.png 0
cifar-10-batches-py\data\train\closed000512.png 0
cifar-10-batches-py\data\train\closed000513.png 0
cifar-10-batches-py\data\train\closed000514.png 0
cifar-10-batches-py\data\train\closed000515.png 0
cifar-10-batches-py\data\train\closed000516.png 0
cifar-10-batches-py\data\train\closed000517.png 0
cifar-10-batches-py\data\train\closed000518.png 0
cifar-10-batches-py\data\train\closed000519.png 0
cifar-10-batches-py\data\train\closed000520.png 0
cifar-10-batches-py\data\train\closed000521.png 0
cifar-10-batches-py\data\train\closed000522.png 0
cifar-10-batches-py\data\train\closed000523.png 0
cifar-10-batches-py\data\train\closed000524.png 0
cifar-10-batches-py\data\train\closed000525.png 0
cifar-10-batches-py\data\train\closed000526.png 0
cifar-10-batches-py\data\train\closed000527.png 0
cifar-10-batches-py\data\train\closed000528.png 0
cifar-10-batches-py\data\train\closed000529.png 0
cifar-10-batches-py\data\train\closed000530.png 0
cifar-10-batches-py\data\train\closed000531.png 0
cifar-10-batches-py\data\train\closed000532.png 0
cifar-10-batches-py\data\train\closed000533.png 0
cifar-10-batches-py\data\train\closed000534.png 0
cifar-10-batches-py\data\train\closed000535.png 0
cifar-10-batches-py\data\train\closed000536.png 0
cifar-10-batches-py\data\train\closed000537.png 0
cifar-10-batches-py\data\train\closed000538.png 0
cifar-10-batches-py\data\train\closed000539.png 0
cifar-10-batches-py\data\train\closed000540.png 0
cifar-10-batches-py\data\train\closed000541.png 0
cifar-10-batches-py\data\train\closed000542.png 0
cifar-10-batches-py\data\train\closed000543.png 0
cifar-10-batches-py\data\train\closed000544.png 0
cifar-10-batches-py\data\train\closed000545.png 0
cifar-10-batches-py\data\train\closed000546.png 0
cifar-10-batches-py\data\train\closed000547.png 0
cifar-10-batches-py\data\train\closed000548.png 0
cifar-10-batches-py\data\train\closed000549.png 0
cifar-10-batches-py\data\train\closed000550.png 0
cifar-10-batches-py\data\train\closed000551.png 0
cifar-10-batches-py\data\train\closed000552.png 0
cifar-10-batches-py\data\train\closed000553.png 0
cifar-10-batches-py\data\train\closed000554.png 0
cifar-10-batches-py\data\train\closed000555.png 0
cifar-10-batches-py\data\train\closed000556.png 0
cifar-10-batches-py\data\train\closed000557.png 0
cifar-10-batches-py\data\train\closed000558.png 0
cifar-10-batches-py\data\train\closed000559.png 0
cifar-10-batches-py\data\train\closed000560.png 0
cifar-10-batches-py\data\train\closed000561.png 0
cifar-10-batches-py\data\train\closed000562.png 0
cifar-10-batches-py\data\train\closed000563.png 0
cifar-10-batches-py\data\train\closed000564.png 0
cifar-10-batches-py\data\train\closed000565.png 0
cifar-10-batches-py\data\train\closed000566.png 0
cifar-10-batches-py\data\train\closed000567.png 0
cifar-10-batches-py\data\train\closed000568.png 0
cifar-10-batches-py\data\train\closed000569.png 0
cifar-10-batches-py\data\train\closed000570.png 0
cifar-10-batches-py\data\train\closed000571.png 0
cifar-10-batches-py\data\train\closed000572.png 0
cifar-10-batches-py\data\train\closed000573.png 0
cifar-10-batches-py\data\train\closed000574.png 0
cifar-10-batches-py\data\train\closed000575.png 0
cifar-10-batches-py\data\train\closed000576.png 0
cifar-10-batches-py\data\train\closed000577.png 0
cifar-10-batches-py\data\train\closed000578.png 0
cifar-10-batches-py\data\train\closed000579.png 0
cifar-10-batches-py\data\train\closed000580.png 0
cifar-10-batches-py\data\train\closed000581.png 0
cifar-10-batches-py\data\train\closed000582.png 0
cifar-10-batches-py\data\train\closed000583.png 0
cifar-10-batches-py\data\train\closed000584.png 0
cifar-10-batches-py\data\train\closed000585.png 0
cifar-10-batches-py\data\train\closed000586.png 0
cifar-10-batches-py\data\train\closed000587.png 0
cifar-10-batches-py\data\train\closed000588.png 0
cifar-10-batches-py\data\train\closed000589.png 0
cifar-10-batches-py\data\train\closed000590.png 0
cifar-10-batches-py\data\train\closed000591.png 0
cifar-10-batches-py\data\train\closed000592.png 0
cifar-10-batches-py\data\train\closed000593.png 0
cifar-10-batches-py\data\train\closed000594.png 0
cifar-10-batches-py\data\train\closed000595.png 0
cifar-10-batches-py\data\train\closed000596.png 0
cifar-10-batches-py\data\train\closed000597.png 0
cifar-10-batches-py\data\train\closed000598.png 0
cifar-10-batches-py\data\train\closed000599.png 0
cifar-10-batches-py\data\train\closed000600.png 0
cifar-10-batches-py\data\train\closed000601.png 0
cifar-10-batches-py\data\train\closed000602.png 0
cifar-10-batches-py\data\train\closed000603.png 0
cifar-10-batches-py\data\train\closed000604.png 0
cifar-10-batches-py\data\train\closed000605.png 0
cifar-10-batches-py\data\train\closed000606.png 0
cifar-10-batches-py\data\train\closed000607.png 0
cifar-10-batches-py\data\train\closed000608.png 0
cifar-10-batches-py\data\train\closed000609.png 0
cifar-10-batches-py\data\train\closed000610.png 0
cifar-10-batches-py\data\train\closed000611.png 0
cifar-10-batches-py\data\train\closed000612.png 0
cifar-10-batches-py\data\train\closed000613.png 0
cifar-10-batches-py\data\train\closed000614.png 0
cifar-10-batches-py\data\train\closed000615.png 0
cifar-10-batches-py\data\train\closed000616.png 0
cifar-10-batches-py\data\train\closed000617.png 0
cifar-10-batches-py\data\train\closed000618.png 0
cifar-10-batches-py\data\train\closed000619.png 0
cifar-10-batches-py\data\train\closed000620.png 0
cifar-10-batches-py\data\train\closed000621.png 0
cifar-10-batches-py\data\train\closed000622.png 0
cifar-10-batches-py\data\train\closed000623.png 0
cifar-10-batches-py\data\train\closed000624.png 0
cifar-10-batches-py\data\train\closed000625.png 0
cifar-10-batches-py\data\train\closed000626.png 0
cifar-10-batches-py\data\train\closed000627.png 0
cifar-10-batches-py\data\train\closed000628.png 0
cifar-10-batches-py\data\train\closed000629.png 0
cifar-10-batches-py\data\train\closed000630.png 0
cifar-10-batches-py\data\train\closed000631.png 0
cifar-10-batches-py\data\train\closed000632.png 0
cifar-10-batches-py\data\train\closed000633.png 0
cifar-10-batches-py\data\train\closed000634.png 0
cifar-10-batches-py\data\train\closed000635.png 0
cifar-10-batches-py\data\train\closed000636.png 0
cifar-10-batches-py\data\train\closed000637.png 0
cifar-10-batches-py\data\train\closed000638.png 0
cifar-10-batches-py\data\train\closed000639.png 0
cifar-10-batches-py\data\train\closed000640.png 0
cifar-10-batches-py\data\train\closed000641.png 0
cifar-10-batches-py\data\train\closed000642.png 0
cifar-10-batches-py\data\train\closed000643.png 0
cifar-10-batches-py\data\train\closed000644.png 0
cifar-10-batches-py\data\train\closed000645.png 0
cifar-10-batches-py\data\train\closed000646.png 0
cifar-10-batches-py\data\train\closed000647.png 0
cifar-10-batches-py\data\train\closed000648.png 0
cifar-10-batches-py\data\train\closed000649.png 0
cifar-10-batches-py\data\train\closed000650.png 0
cifar-10-batches-py\data\train\closed000651.png 0
cifar-10-batches-py\data\train\closed000652.png 0
cifar-10-batches-py\data\train\closed000653.png 0
cifar-10-batches-py\data\train\closed000654.png 0
cifar-10-batches-py\data\train\closed000655.png 0
cifar-10-batches-py\data\train\closed000656.png 0
cifar-10-batches-py\data\train\closed000657.png 0
cifar-10-batches-py\data\train\closed000658.png 0
cifar-10-batches-py\data\train\closed000659.png 0
cifar-10-batches-py\data\train\closed000660.png 0
cifar-10-batches-py\data\train\closed000661.png 0
cifar-10-batches-py\data\train\closed000662.png 0
cifar-10-batches-py\data\train\closed000663.png 0
cifar-10-batches-py\data\train\closed000664.png 0
cifar-10-batches-py\data\train\closed000665.png 0
cifar-10-batches-py\data\train\closed000666.png 0
cifar-10-batches-py\data\train\closed000667.png 0
cifar-10-batches-py\data\train\closed000668.png 0
cifar-10-batches-py\data\train\closed000669.png 0
cifar-10-batches-py\data\train\closed000670.png 0
cifar-10-batches-py\data\train\closed000671.png 0
cifar-10-batches-py\data\train\closed000672.png 0
cifar-10-batches-py\data\train\closed000673.png 0
cifar-10-batches-py\data\train\closed000674.png 0
cifar-10-batches-py\data\train\closed000675.png 0
cifar-10-batches-py\data\train\closed000676.png 0
cifar-10-batches-py\data\train\closed000677.png 0
cifar-10-batches-py\data\train\closed000678.png 0
cifar-10-batches-py\data\train\closed000679.png 0
cifar-10-batches-py\data\train\closed000680.png 0
cifar-10-batches-py\data\train\closed000681.png 0
cifar-10-batches-py\data\train\closed000682.png 0
cifar-10-batches-py\data\train\closed000683.png 0
cifar-10-batches-py\data\train\closed000684.png 0
cifar-10-batches-py\data\train\closed000685.png 0
cifar-10-batches-py\data\train\closed000686.png 0
cifar-10-batches-py\data\train\closed000687.png 0
cifar-10-batches-py\data\train\closed000688.png 0
cifar-10-batches-py\data\train\closed000689.png 0
cifar-10-batches-py\data\train\closed000690.png 0
cifar-10-batches-py\data\train\closed000691.png 0
cifar-10-batches-py\data\train\closed000692.png 0
cifar-10-batches-py\data\train\closed000693.png 0
cifar-10-batches-py\data\train\closed000694.png 0
cifar-10-batches-py\data\train\closed000695.png 0
cifar-10-batches-py\data\train\closed000696.png 0
cifar-10-batches-py\data\train\closed000697.png 0
cifar-10-batches-py\data\train\closed000698.png 0
cifar-10-batches-py\data\train\closed000699.png 0
cifar-10-batches-py\data\train\closed000700.png 0
cifar-10-batches-py\data\train\closed000701.png 0
cifar-10-batches-py\data\train\closed000702.png 0
cifar-10-batches-py\data\train\closed000703.png 0
cifar-10-batches-py\data\train\closed000704.png 0
cifar-10-batches-py\data\train\closed000705.png 0
cifar-10-batches-py\data\train\closed000706.png 0
cifar-10-batches-py\data\train\closed000707.png 0
cifar-10-batches-py\data\train\closed000708.png 0
cifar-10-batches-py\data\train\closed000709.png 0
cifar-10-batches-py\data\train\closed000710.png 0
cifar-10-batches-py\data\train\closed000711.png 0
cifar-10-batches-py\data\train\closed000712.png 0
cifar-10-batches-py\data\train\closed000713.png 0
cifar-10-batches-py\data\train\closed000714.png 0
cifar-10-batches-py\data\train\closed000715.png 0
cifar-10-batches-py\data\train\closed000716.png 0
cifar-10-batches-py\data\train\closed000717.png 0
cifar-10-batches-py\data\train\closed000718.png 0
cifar-10-batches-py\data\train\closed000719.png 0
cifar-10-batches-py\data\train\closed000720.png 0
cifar-10-batches-py\data\train\closed000721.png 0
cifar-10-batches-py\data\train\closed000722.png 0
cifar-10-batches-py\data\train\closed000723.png 0
cifar-10-batches-py\data\train\closed000724.png 0
cifar-10-batches-py\data\train\closed000725.png 0
cifar-10-batches-py\data\train\closed000726.png 0
cifar-10-batches-py\data\train\closed000727.png 0
cifar-10-batches-py\data\train\closed000728.png 0
cifar-10-batches-py\data\train\closed000729.png 0
cifar-10-batches-py\data\train\closed000730.png 0
cifar-10-batches-py\data\train\closed000731.png 0
cifar-10-batches-py\data\train\closed000732.png 0
cifar-10-batches-py\data\train\closed000733.png 0
cifar-10-batches-py\data\train\closed000734.png 0
cifar-10-batches-py\data\train\closed000735.png 0
cifar-10-batches-py\data\train\closed000736.png 0
cifar-10-batches-py\data\train\closed000737.png 0
cifar-10-batches-py\data\train\closed000738.png 0
cifar-10-batches-py\data\train\closed000739.png 0
cifar-10-batches-py\data\train\closed000740.png 0
cifar-10-batches-py\data\train\closed000741.png 0
cifar-10-batches-py\data\train\closed000742.png 0
cifar-10-batches-py\data\train\closed000743.png 0
cifar-10-batches-py\data\train\closed000744.png 0
cifar-10-batches-py\data\train\closed000745.png 0
cifar-10-batches-py\data\train\closed000746.png 0
cifar-10-batches-py\data\train\closed000747.png 0
cifar-10-batches-py\data\train\closed000748.png 0
cifar-10-batches-py\data\train\closed000749.png 0
cifar-10-batches-py\data\train\closed000750.png 0
cifar-10-batches-py\data\train\closed000751.png 0
cifar-10-batches-py\data\train\closed000752.png 0
cifar-10-batches-py\data\train\closed000753.png 0
cifar-10-batches-py\data\train\closed000754.png 0
cifar-10-batches-py\data\train\closed000755.png 0
cifar-10-batches-py\data\train\closed000756.png 0
cifar-10-batches-py\data\train\closed000757.png 0
cifar-10-batches-py\data\train\closed000758.png 0
cifar-10-batches-py\data\train\closed000759.png 0
cifar-10-batches-py\data\train\closed000760.png 0
cifar-10-batches-py\data\train\closed000761.png 0
cifar-10-batches-py\data\train\closed000762.png 0
cifar-10-batches-py\data\train\closed000763.png 0
cifar-10-batches-py\data\train\closed000764.png 0
cifar-10-batches-py\data\train\closed000765.png 0
cifar-10-batches-py\data\train\closed000766.png 0
cifar-10-batches-py\data\train\closed000767.png 0
cifar-10-batches-py\data\train\closed000768.png 0
cifar-10-batches-py\data\train\closed000769.png 0
cifar-10-batches-py\data\train\closed000770.png 0
cifar-10-batches-py\data\train\closed000771.png 0
cifar-10-batches-py\data\train\closed000772.png 0
cifar-10-batches-py\data\train\closed000773.png 0
cifar-10-batches-py\data\train\closed000774.png 0
cifar-10-batches-py\data\train\closed000775.png 0
cifar-10-batches-py\data\train\closed000776.png 0
cifar-10-batches-py\data\train\closed000777.png 0
cifar-10-batches-py\data\train\closed000778.png 0
cifar-10-batches-py\data\train\closed000779.png 0
cifar-10-batches-py\data\train\closed000780.png 0
cifar-10-batches-py\data\train\closed000781.png 0
cifar-10-batches-py\data\train\closed000782.png 0
cifar-10-batches-py\data\train\closed000783.png 0
cifar-10-batches-py\data\train\closed000784.png 0
cifar-10-batches-py\data\train\closed000785.png 0
cifar-10-batches-py\data\train\closed000786.png 0
cifar-10-batches-py\data\train\closed000787.png 0
cifar-10-batches-py\data\train\closed000788.png 0
cifar-10-batches-py\data\train\closed000789.png 0
cifar-10-batches-py\data\train\closed000790.png 0
cifar-10-batches-py\data\train\closed000791.png 0
cifar-10-batches-py\data\train\closed000792.png 0
cifar-10-batches-py\data\train\closed000793.png 0
cifar-10-batches-py\data\train\closed000794.png 0
cifar-10-batches-py\data\train\closed000795.png 0
cifar-10-batches-py\data\train\closed000796.png 0
cifar-10-batches-py\data\train\closed000797.png 0
cifar-10-batches-py\data\train\closed000798.png 0
cifar-10-batches-py\data\train\closed000799.png 0
cifar-10-batches-py\data\train\closed000800.png 0
cifar-10-batches-py\data\train\closed000801.png 0
cifar-10-batches-py\data\train\closed000802.png 0
cifar-10-batches-py\data\train\closed000803.png 0
cifar-10-batches-py\data\train\closed000804.png 0
cifar-10-batches-py\data\train\closed000805.png 0
cifar-10-batches-py\data\train\closed000806.png 0
cifar-10-batches-py\data\train\closed000807.png 0
cifar-10-batches-py\data\train\closed000808.png 0
cifar-10-batches-py\data\train\closed000809.png 0
cifar-10-batches-py\data\train\closed000810.png 0
cifar-10-batches-py\data\train\closed000811.png 0
cifar-10-batches-py\data\train\closed000812.png 0
cifar-10-batches-py\data\train\closed000813.png 0
cifar-10-batches-py\data\train\closed000814.png 0
cifar-10-batches-py\data\train\closed000815.png 0
cifar-10-batches-py\data\train\closed000816.png 0
cifar-10-batches-py\data\train\closed000817.png 0
cifar-10-batches-py\data\train\closed000818.png 0
cifar-10-batches-py\data\train\closed000819.png 0
cifar-10-batches-py\data\train\closed000820.png 0
cifar-10-batches-py\data\train\closed000821.png 0
cifar-10-batches-py\data\train\closed000822.png 0
cifar-10-batches-py\data\train\closed000823.png 0
cifar-10-batches-py\data\train\closed000824.png 0
cifar-10-batches-py\data\train\closed000825.png 0
cifar-10-batches-py\data\train\closed000826.png 0
cifar-10-batches-py\data\train\closed000827.png 0
cifar-10-batches-py\data\train\closed000828.png 0
cifar-10-batches-py\data\train\closed000829.png 0
cifar-10-batches-py\data\train\closed000830.png 0
cifar-10-batches-py\data\train\closed000831.png 0
cifar-10-batches-py\data\train\closed000832.png 0
cifar-10-batches-py\data\train\closed000833.png 0
cifar-10-batches-py\data\train\closed000834.png 0
cifar-10-batches-py\data\train\closed000835.png 0
cifar-10-batches-py\data\train\closed000836.png 0
cifar-10-batches-py\data\train\closed000837.png 0
cifar-10-batches-py\data\train\closed000838.png 0
cifar-10-batches-py\data\train\closed000839.png 0
cifar-10-batches-py\data\train\closed000840.png 0
cifar-10-batches-py\data\train\closed000841.png 0
cifar-10-batches-py\data\train\closed000842.png 0
cifar-10-batches-py\data\train\closed000843.png 0
cifar-10-batches-py\data\train\closed000844.png 0
cifar-10-batches-py\data\train\closed000845.png 0
cifar-10-batches-py\data\train\closed000846.png 0
cifar-10-batches-py\data\train\closed000847.png 0
cifar-10-batches-py\data\train\closed000848.png 0
cifar-10-batches-py\data\train\closed000849.png 0
cifar-10-batches-py\data\train\closed000850.png 0
cifar-10-batches-py\data\train\closed000851.png 0
cifar-10-batches-py\data\train\closed000852.png 0
cifar-10-batches-py\data\train\closed000853.png 0
cifar-10-batches-py\data\train\closed000854.png 0
cifar-10-batches-py\data\train\closed000855.png 0
cifar-10-batches-py\data\train\closed000856.png 0
cifar-10-batches-py\data\train\closed000857.png 0
cifar-10-batches-py\data\train\closed000858.png 0
cifar-10-batches-py\data\train\closed000859.png 0
cifar-10-batches-py\data\train\closed000860.png 0
cifar-10-batches-py\data\train\closed000861.png 0
cifar-10-batches-py\data\train\closed000862.png 0
cifar-10-batches-py\data\train\closed000863.png 0
cifar-10-batches-py\data\train\closed000864.png 0
cifar-10-batches-py\data\train\closed000865.png 0
cifar-10-batches-py\data\train\closed000866.png 0
cifar-10-batches-py\data\train\closed000867.png 0
cifar-10-batches-py\data\train\closed000868.png 0
cifar-10-batches-py\data\train\closed000869.png 0
cifar-10-batches-py\data\train\closed000870.png 0
cifar-10-batches-py\data\train\closed000871.png 0
cifar-10-batches-py\data\train\closed000872.png 0
cifar-10-batches-py\data\train\closed000873.png 0
cifar-10-batches-py\data\train\closed000874.png 0
cifar-10-batches-py\data\train\closed000875.png 0
cifar-10-batches-py\data\train\closed000876.png 0
cifar-10-batches-py\data\train\closed000877.png 0
cifar-10-batches-py\data\train\closed000878.png 0
cifar-10-batches-py\data\train\closed000879.png 0
cifar-10-batches-py\data\train\closed000880.png 0
cifar-10-batches-py\data\train\closed000881.png 0
cifar-10-batches-py\data\train\closed000882.png 0
cifar-10-batches-py\data\train\closed000883.png 0
cifar-10-batches-py\data\train\closed000884.png 0
cifar-10-batches-py\data\train\closed000885.png 0
cifar-10-batches-py\data\train\closed000886.png 0
cifar-10-batches-py\data\train\closed000887.png 0
cifar-10-batches-py\data\train\closed000888.png 0
cifar-10-batches-py\data\train\closed000889.png 0
cifar-10-batches-py\data\train\closed000890.png 0
cifar-10-batches-py\data\train\closed000891.png 0
cifar-10-batches-py\data\train\closed000892.png 0
cifar-10-batches-py\data\train\closed000893.png 0
cifar-10-batches-py\data\train\closed000894.png 0
cifar-10-batches-py\data\train\closed000895.png 0
cifar-10-batches-py\data\train\closed000896.png 0
cifar-10-batches-py\data\train\closed000897.png 0
cifar-10-batches-py\data\train\closed000898.png 0
cifar-10-batches-py\data\train\closed000899.png 0
cifar-10-batches-py\data\train\closed000900.png 0
cifar-10-batches-py\data\train\closed000901.png 0
cifar-10-batches-py\data\train\closed000902.png 0
cifar-10-batches-py\data\train\closed000903.png 0
cifar-10-batches-py\data\train\closed000904.png 0
cifar-10-batches-py\data\train\closed000905.png 0
cifar-10-batches-py\data\train\closed000906.png 0
cifar-10-batches-py\data\train\closed000907.png 0
cifar-10-batches-py\data\train\closed000908.png 0
cifar-10-batches-py\data\train\closed000909.png 0
cifar-10-batches-py\data\train\closed000910.png 0
cifar-10-batches-py\data\train\closed000911.png 0
cifar-10-batches-py\data\train\closed000912.png 0
cifar-10-batches-py\data\train\closed000913.png 0
cifar-10-batches-py\data\train\closed000914.png 0
cifar-10-batches-py\data\train\closed000915.png 0
cifar-10-batches-py\data\train\closed000916.png 0
cifar-10-batches-py\data\train\closed000917.png 0
cifar-10-batches-py\data\train\closed000918.png 0
cifar-10-batches-py\data\train\closed000919.png 0
cifar-10-batches-py\data\train\closed000920.png 0
cifar-10-batches-py\data\train\closed000921.png 0
cifar-10-batches-py\data\train\closed000922.png 0
cifar-10-batches-py\data\train\closed000923.png 0
cifar-10-batches-py\data\train\closed000924.png 0
cifar-10-batches-py\data\train\closed000925.png 0
cifar-10-batches-py\data\train\closed000926.png 0
cifar-10-batches-py\data\train\closed000927.png 0
cifar-10-batches-py\data\train\closed000928.png 0
cifar-10-batches-py\data\train\closed000929.png 0
cifar-10-batches-py\data\train\closed000930.png 0
cifar-10-batches-py\data\train\closed000931.png 0
cifar-10-batches-py\data\train\closed000932.png 0
cifar-10-batches-py\data\train\closed000933.png 0
cifar-10-batches-py\data\train\closed000934.png 0
cifar-10-batches-py\data\train\closed000935.png 0
cifar-10-batches-py\data\train\closed000936.png 0
cifar-10-batches-py\data\train\closed000937.png 0
cifar-10-batches-py\data\train\closed000938.png 0
cifar-10-batches-py\data\train\closed000939.png 0
cifar-10-batches-py\data\train\closed000940.png 0
cifar-10-batches-py\data\train\closed000941.png 0
cifar-10-batches-py\data\train\closed000942.png 0
cifar-10-batches-py\data\train\closed000943.png 0
cifar-10-batches-py\data\train\closed000944.png 0
cifar-10-batches-py\data\train\closed000945.png 0
cifar-10-batches-py\data\train\closed000946.png 0
cifar-10-batches-py\data\train\closed000947.png 0
cifar-10-batches-py\data\train\closed000948.png 0
cifar-10-batches-py\data\train\closed000949.png 0
cifar-10-batches-py\data\train\closed000950.png 0
cifar-10-batches-py\data\train\closed000951.png 0
cifar-10-batches-py\data\train\closed000952.png 0
cifar-10-batches-py\data\train\closed000953.png 0
cifar-10-batches-py\data\train\closed000954.png 0
cifar-10-batches-py\data\train\closed000955.png 0
cifar-10-batches-py\data\train\closed000956.png 0
cifar-10-batches-py\data\train\closed000957.png 0
cifar-10-batches-py\data\train\closed000958.png 0
cifar-10-batches-py\data\train\closed000959.png 0
cifar-10-batches-py\data\train\closed000960.png 0
cifar-10-batches-py\data\train\closed000961.png 0
cifar-10-batches-py\data\train\closed000962.png 0
cifar-10-batches-py\data\train\closed000963.png 0
cifar-10-batches-py\data\train\closed000964.png 0
cifar-10-batches-py\data\train\closed000965.png 0
cifar-10-batches-py\data\train\closed000966.png 0
cifar-10-batches-py\data\train\closed000967.png 0
cifar-10-batches-py\data\train\closed000968.png 0
cifar-10-batches-py\data\train\closed000969.png 0
cifar-10-batches-py\data\train\closed000970.png 0
cifar-10-batches-py\data\train\closed000971.png 0
cifar-10-batches-py\data\train\closed000972.png 0
cifar-10-batches-py\data\train\closed000973.png 0
cifar-10-batches-py\data\train\closed000974.png 0
cifar-10-batches-py\data\train\closed000975.png 0
cifar-10-batches-py\data\train\closed000976.png 0
cifar-10-batches-py\data\train\closed000977.png 0
cifar-10-batches-py\data\train\closed000978.png 0
cifar-10-batches-py\data\train\closed000979.png 0
cifar-10-batches-py\data\train\closed000980.png 0
cifar-10-batches-py\data\train\closed000981.png 0
cifar-10-batches-py\data\train\closed000982.png 0
cifar-10-batches-py\data\train\closed000983.png 0
cifar-10-batches-py\data\train\closed000984.png 0
cifar-10-batches-py\data\train\closed000985.png 0
cifar-10-batches-py\data\train\closed000986.png 0
cifar-10-batches-py\data\train\closed000987.png 0
cifar-10-batches-py\data\train\closed000988.png 0
cifar-10-batches-py\data\train\closed000989.png 0
cifar-10-batches-py\data\train\closed000990.png 0
cifar-10-batches-py\data\train\closed000991.png 0
cifar-10-batches-py\data\train\closed000992.png 0
cifar-10-batches-py\data\train\closed000993.png 0
cifar-10-batches-py\data\train\closed000994.png 0
cifar-10-batches-py\data\train\closed000995.png 0
cifar-10-batches-py\data\train\closed000996.png 0
cifar-10-batches-py\data\train\closed000997.png 0
cifar-10-batches-py\data\train\closed000998.png 0
cifar-10-batches-py\data\train\closed000999.png 0
cifar-10-batches-py\data\train\closed001000.png 0
cifar-10-batches-py\data\train\closed001001.png 0
cifar-10-batches-py\data\train\closed001002.png 0
cifar-10-batches-py\data\train\closed001003.png 0
cifar-10-batches-py\data\train\closed001004.png 0
cifar-10-batches-py\data\train\closed001005.png 0
cifar-10-batches-py\data\train\closed001006.png 0
cifar-10-batches-py\data\train\closed001007.png 0
cifar-10-batches-py\data\train\closed001008.png 0
cifar-10-batches-py\data\train\closed001009.png 0
cifar-10-batches-py\data\train\closed001010.png 0
cifar-10-batches-py\data\train\closed001011.png 0
cifar-10-batches-py\data\train\closed001012.png 0
cifar-10-batches-py\data\train\closed001013.png 0
cifar-10-batches-py\data\train\closed001014.png 0
cifar-10-batches-py\data\train\closed001015.png 0
cifar-10-batches-py\data\train\closed001016.png 0
cifar-10-batches-py\data\train\closed001017.png 0
cifar-10-batches-py\data\train\closed001018.png 0
cifar-10-batches-py\data\train\closed001019.png 0
cifar-10-batches-py\data\train\closed001020.png 0
cifar-10-batches-py\data\train\closed001021.png 0
cifar-10-batches-py\data\train\closed001022.png 0
cifar-10-batches-py\data\train\closed001023.png 0
...
This file has been truncated, please download it to see its full contents.
DispatcherTimer tmr;
MediaCapture _mediaCapture;
public MainPage()
{
this.InitializeComponent();
tmr = new DispatcherTimer();
tmr.Interval = TimeSpan.FromSeconds(5);
tmr.Tick += Tmr_Tick;
tmr.Start();
_mediaCapture = new MediaCapture();
}
private async void Tmr_Tick(object sender, object e)
{
txtResponse.Text = await CapturePhoto();
}
private async Task<String> CapturePhoto()
{
var myPictures = await Windows.Storage.StorageLibrary.GetLibraryAsync(Windows.Storage.KnownLibraryId.Pictures);
StorageFile file = await myPictures.SaveFolder.CreateFileAsync("photo.jpg", CreationCollisionOption.GenerateUniqueName);
using (var captureStream = new InMemoryRandomAccessStream())
{
await _mediaCapture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreateJpeg(), captureStream);
using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
{
var decoder = await BitmapDecoder.CreateAsync(captureStream);
var encoder = await BitmapEncoder.CreateForTranscodingAsync(fileStream, decoder);
var properties = new BitmapPropertySet {
{ "System.Photo.Orientation", new BitmapTypedValue(PhotoOrientation.Normal, PropertyType.UInt16) }
};
await encoder.BitmapProperties.SetPropertiesAsync(properties);
await encoder.FlushAsync();
}
}
String ret = await Upload("http://192.168.0.105:8090/api/Door/UploadFiles", file);
await file.DeleteAsync();
return ret;
}
private async Task<string> Upload(string actionUrl, StorageFile fileToUpload)
{
try
{
var client = new HttpClient();
MultipartFormDataContent form = new MultipartFormDataContent();
HttpContent content;
//HttpContent content = new StringContent("fileToUpload");
//form.Add(content, "fileToUpload");
var stream = await fileToUpload.OpenStreamForReadAsync();
content = new StreamContent(stream);
content.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "fileToUpload",
FileName = fileToUpload.Name
};
form.Add(content);
var response = await client.PostAsync(actionUrl, form);
return response.Content.ReadAsStringAsync().Result;
}
catch (Exception e)
{
return "invalid response";
}
}
private async void Page_Loaded(object sender, RoutedEventArgs e)
{
await _mediaCapture.InitializeAsync();
previewElement.Source = _mediaCapture;
await _mediaCapture.StartPreviewAsync();
}
Comments