Example #1
0
        static void DogsVsCats()
        {
            NeuralNetwork neuralNetwork = new NeuralNetwork();
            Stopwatch     stopwatch     = new Stopwatch();

            stopwatch.Start();
            neuralNetwork.LoadH5($@"{AssetsPath}DogsVsCats.h5");
            stopwatch.Stop();
            long loadTime = stopwatch.ElapsedMilliseconds;
            long predictTotalMilliseconds = 0;

            neuralNetwork.Summary();
            Predict($@"{AssetsPath}\Dog.jpg", "狗");
            Predict($@"{AssetsPath}\Cat.jpg", "猫");
            Console.WriteLine($"加载耗时:{loadTime} 预测耗时:{predictTotalMilliseconds} 总耗时:{loadTime + predictTotalMilliseconds}");
            void Predict(string path, string actual)
            {
                float[,,] inputs = NeuralNetworkInput.FromRGBImage(new Bitmap(Image.FromFile(path), 150, 150));
                stopwatch.Restart();
                Console.Write($"实际:{actual} 预测:{Classification (neuralNetwork.Predict (inputs))} ");
                stopwatch.Stop();
                predictTotalMilliseconds += stopwatch.ElapsedMilliseconds;
                Console.WriteLine($"耗时:{stopwatch.ElapsedMilliseconds}");
            }

            string Classification(float value)
            {
                if (value >= 0.5F)
                {
                    return("狗");
                }
                return("猫");
            }
        }
Example #2
0
        static void Yolo()
        {
            NeuralNetwork neuralNetwork = new NeuralNetwork();

            neuralNetwork.LoadH5(@"D:\keras-yolo3-master\model_data\yolo.h5");
            neuralNetwork.Summary();
            string[] labels =
            {
                "person",         "bicycle",       "car",       "motorbike",     "aeroplane", "bus",        "train",      "truck",      "boat",        "traffic light", "fire hydrant",
                "stop sign",      "parking meter", "bench",     "bird",          "cat",       "dog",        "horse",      "sheep",      "cow",         "elephant",      "bear",        "zebra",    "giraffe",
                "backpack",       "umbrella",      "handbag",   "tie",           "suitcase",  "frisbee",    "skis",       "snowboard",  "sports ball", "kite",          "baseball bat",
                "baseball glove", "skateboard",    "surfboard", "tennis racket", "bottle",    "wine glass", "cup",        "fork",       "knife",       "spoon",         "bowl",
                "banana",         "apple",         "sandwich",  "orange",        "broccoli",  "carrot",     "hot dog",    "pizza",      "donut",       "cake",          "chair",       "sofa",     "pottedplant",
                "bed",            "diningtable",   "toilet",    "tvmonitor",     "laptop",    "mouse",      "remote",     "keyboard",   "cell phone",  "microwave",     "oven",        "toaster",
                "sink",           "refrigerator",  "book",      "clock",         "vase",      "scissors",   "teddy bear", "hair drier", "toothbrush"
            };
            Bitmap image = new Bitmap($@"{AssetsPath}\Test.png");

            float[,,] inputs = NeuralNetworkInput.FromRGBImage(new Bitmap(image, 416, 416));
            List <NeuralNetworkYoloResult> results = neuralNetwork.Yolo(inputs, image.Width, image.Height, 0.6F, 0.5F);
            Graphics graphics = Graphics.FromImage(image);

            NeuralNetworkOutput.DrawYoloResult(graphics, results, labels);
            image.Save("Temp.jpg");
            Process.Start("Temp.jpg");
        }
Example #3
0
        private void PictureBox_MouseUp(object sender, MouseEventArgs e)
        {
            IsDrawing = false;
            Bitmap bitmap = new Bitmap(PictureBox.Image, 28, 28);

            Label_Result.Text = $"识别为:{NeuralNetwork.PredictClasses (NeuralNetworkInput.FromGrayImage (bitmap))}";
        }
Example #4
0
        static void TestH5()
        {
            NeuralNetwork neuralNetwork = new NeuralNetwork();

            neuralNetwork.LoadH5(@"D:\Eruru\Projects\Visual Studio\Python\NeuralNetwork\Yolo\temp.h5");
            neuralNetwork.Summary();
            float[,,] inputs = NeuralNetworkInput.FromGrayImage(new Bitmap($@"{AssetsPath}Mnist\0.jpg"));
            PrintMatrix(neuralNetwork.ForwardPropagation(inputs));
        }
 void SelectMode()
 {
     PictureBox.Click += (sender, e) => {
         if (openFileDialog1.ShowDialog() == DialogResult.OK)
         {
             PictureBox.Image = Image.FromFile(openFileDialog1.FileName);
             float value = NeuralNetwork.Predict(NeuralNetworkInput.FromRGBImage(new Bitmap(PictureBox.Image, 150, 150)));
             Label.Text = $"{value} = {(value >= 0.5F ? "狗" : "猫")}";
         }
     };
 }
 private void pictureBox1_Click(object sender, EventArgs e)
 {
     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         Image image = Image.FromFile(openFileDialog1.FileName);
         pictureBox1.Image = image;
         float[,,] inputs  = NeuralNetworkInput.FromRGBImage(new Bitmap(pictureBox1.Image, 416, 416));
         List <NeuralNetworkYoloResult> results = NeuralNetwork.Yolo(inputs, pictureBox1.Image.Width, pictureBox1.Image.Height, 0.6F, 0.5F);
         Graphics graphics = Graphics.FromImage(image);
         NeuralNetworkOutput.DrawYoloResult(graphics, results, Labels);
         graphics.Dispose();
         pictureBox1.Image = image;
     }
 }
        void CaptureMode()
        {
            PictureBox.BackColor = Color.Lime;
            TopMost = true;
            SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_LAYERED);
            SetLayeredWindowAttributes(Handle, 65280, 255, LWA_COLORKEY);
            Bitmap bitmap  = null;
            float  value   = 0;
            Action capture = () => {
                Point point = PointToScreen(PictureBox.Location);
                Graphics.FromImage(bitmap).CopyFromScreen(point.X, point.Y, 0, 0, PictureBox.Size);
            };
            Action show = () => {
                Label.Text = $"{value} = {(value >= 0.5F ? "狗" : "猫")}";
            };
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            long time = 0, timeDelta, refreshTime = 0;

            Thread = new Thread(() => {
                while (true)
                {
                    try {
                        timeDelta = stopwatch.ElapsedMilliseconds - time;
                        if (WindowState == FormWindowState.Minimized)
                        {
                            return;
                        }
                        if (time >= refreshTime)
                        {
                            refreshTime = time + 1000;
                            bitmap      = new Bitmap(PictureBox.Width, PictureBox.Height);
                            Invoke(capture);
                            value = NeuralNetwork.Predict(NeuralNetworkInput.FromRGBImage(new Bitmap(bitmap, 150, 150)));
                            Invoke(show);
                        }
                        time += timeDelta;
                        Thread.Sleep(1);
                    } catch {
                    }
                }
            })
            {
                IsBackground = true
            };
            Thread.Start();
        }
Example #8
0
        static void Mnist()
        {
            NeuralNetwork neuralNetwork = new NeuralNetwork();
            string        h5Path        = $@"{AssetsPath}Keras Mnist CNN.h5";
            string        jsonPath      = $@"{AssetsPath}Keras Mnist CNN.json";
            Stopwatch     stopwatch     = new Stopwatch();

            stopwatch.Start();
            switch (1)
            {
            case 0:
                NeuralNetwork.H5ToJson(h5Path, new StreamWriter(jsonPath));
                neuralNetwork.LoadJsonFile(jsonPath);
                break;

            case 1:
                neuralNetwork.LoadJsonFile(jsonPath);
                break;

            case 2:
                neuralNetwork.LoadH5(h5Path);
                break;

            default:
                throw new NotImplementedException();
            }
            stopwatch.Stop();
            long loadTotalMilliseconds = stopwatch.ElapsedMilliseconds;

            neuralNetwork.Summary();
            long predictTotalMilliseconds = 0;

            for (int i = 0; i < 10; i++)
            {
                float[,,] inputs = NeuralNetworkInput.FromGrayImage(new Bitmap($@"{AssetsPath}Mnist\{i}.jpg"));
                stopwatch.Reset();
                stopwatch.Start();
                Console.Write($"实际:{i} 预测:{neuralNetwork.PredictClasses (inputs)} ");
                stopwatch.Stop();
                predictTotalMilliseconds += stopwatch.ElapsedMilliseconds;
                Console.WriteLine($"耗时:{stopwatch.ElapsedMilliseconds}");
            }
            Console.WriteLine($"加载耗时:{loadTotalMilliseconds} 预测耗时:{predictTotalMilliseconds} 总耗时:{loadTotalMilliseconds + predictTotalMilliseconds}");
        }