static void Main(string[] args) { try { OCR myApp = new OCR(args); string result = null; var task = Task.Run(async() => { result = await myApp.Run(); }); task.Wait(); if (result == null) { Environment.ExitCode = 1; } } catch (Exception e) { Console.WriteLine("Unhandled exception in {0}: {1}", System.IO.Path.GetFileName(Environment.GetCommandLineArgs()[0]), e); Environment.ExitCode = 2; } }
public void Execute() { WorkPackage WorkPackage; int[] Assignment; Console.WriteLine("Execute " + this.GetType().ToString()); //Read the wordlist from disc WordList tempWordList = new WordList(); m_Wordlist = tempWordList.LoadXML(OCR.BaseFolder() + "wordlist.xml"); //create a workpackage per thread. for (int i = 0; i < ThreadCount; i++) { WorkPackage = new WorkPackage(); WorkPackage.Method = ExecuteActivity; WorkPackage.Image = Image; Assignment = new int[2]; Assignment[0] = i; //start index Assignment[1] = ThreadCount; //step size through list WorkPackage.Assignment = (object)Assignment; WorkPackage.Parameter = (object)m_Wordlist; RunPackage(WorkPackage); } WaitForWorkDone(this.GetType().ToString()); }
void Train(PrinicpleComponentAnalysis PCA) { int num_HiddenLayers = Int32.Parse(hiddenLayerTxt.Text); double alpha = Double.Parse(learningRateTxt.Text); double threshold = Double.Parse(errorThresholdTxt.Text); int[] layers = new int[num_HiddenLayers + 2]; int num_Classes = 5; int num_TrainingPerClass = 44; if (PCA != null) { layers[0] = PCA.num_Components; } else { layers[0] = 30 * 30; } layers[num_HiddenLayers + 1] = num_Classes; for (int i = 0; i < num_HiddenLayers; i++) { if (neuronsPerLayerGridView.Rows[i].Cells[0].Value == null) { MessageBox.Show("Please Enter Number of Neurons Per Each Layer!"); return; } layers[i + 1] = Int32.Parse(neuronsPerLayerGridView.Rows[i].Cells[0].Value.ToString()); } ocrApp = new OCR(layers, num_Classes, alpha, threshold, mainTransferFunction); if (PCA != null) { int num_Epochs = Int32.Parse(numEpochsTxtBox.Text); ocrApp.SetPCA(PCA, num_Epochs); ocrApp.ReduceData(num_TrainingPerClass); meanSquareError = ocrApp.LearnOnReducedData(num_TrainingPerClass); } else { meanSquareError = ocrApp.Learn(num_TrainingPerClass); } }
public frmOCR() { InitializeComponent(); mlpOCR = new OCR.OCR(); button1.Enabled = false; button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; // /* * this.txt[0] = new System.Windows.Forms.TextBox(); * gbCharclasses.Controls.Add(this.txt[0]); * this.txt[0].Location = new System.Drawing.Point(6, 19); * * this.txt[1] = new System.Windows.Forms.TextBox(); * gbCharclasses.Controls.Add(this.txt[1]); * this.txt[1].Location = new System.Drawing.Point(6, 50); */ }
public ShapeNet() { InitializeComponent(); pbVertical.Vertical = true; pbStrokeVertical.Vertical = true; m_OCR = new OCR.OCR(); m_UserSettings = OCRStub.Window1.m_UserSettings; m_UserSettings.AddControl(this, txtSample); m_UserSettings.AddControl(this, txtThinningSample); m_UserSettings.AddControl(this, txtNodesLayer1); m_UserSettings.AddControl(this, txtNodesLayer2); m_UserSettings.AddControl(this, txtRepetitions); m_UserSettings.AddControl(this, tabShapeNetFunctions); m_UserSettings.AddControl(this, ThinningAlgorithm); m_UserSettings.AddControl(this, lstNeuralNetworks); m_UserSettings.AddControl(this, txtWordListSource); m_UserSettings.AddControl(this, txtWord); }
/// <summary> /// This function process the workpackage for recognising the characters /// </summary> /// <param name="Parameter"></param> public static void ExecuteActivity(object Parameter) { //Load the neural network ShapeNeuralNetworkCollection ShapeNet; ShapeNeuralNetworkCollection SC = new ShapeNeuralNetworkCollection(); ShapeNet = SC.Load(OCR.BaseFolder() + "Shapenet.xml"); //Initialize the workpackage WorkPackage WorkPackage = (WorkPackage)Parameter; int[] Assignment = (int[])WorkPackage.Assignment; //Run the package for (int index = Assignment[0]; index < WorkPackage.Image.Components.Count; index += Assignment[1]) { Recognise(ShapeNet.ShapeNets[2], WorkPackage.Image.Components[index]); } SignalWorkDone(); }
/// <summary> /// Constructor of the main window /// </summary> public Window1() { m_OCR = new OCR.OCR(); //m_UserSettings = new UserSettings(); //m_UserSettings.m_filename = "d:\\ocr\\settings.xml"; m_UserSettings = UserSettings.Load("d:\\ocr\\settings.xml"); InitializeComponent(); sldThreadCount.Maximum = System.Environment.ProcessorCount; m_UserSettings.AddControl(this, sldThreadCount); m_UserSettings.AddControl(this, txtTraceFeatureFolder); m_UserSettings.AddControl(this, txtImageFile); m_UserSettings.AddControl(this, chkDebug); m_UserSettings.AddControl(this, chkDrawComponents); m_UserSettings.AddControl(this, chkDrawSentenceBox); m_UserSettings.AddControl(this, chkDrawSentenceLine); m_UserSettings.AddControl(this, chkTraceFeatures); m_UserSettings.AddControl(this, chkApplySplitConnected); m_UserSettings.AddControl(this, chkApplyWordList); }
private static void bw_DoWork(object sender, DoWorkEventArgs e) { OCR.OCR i_OCR = (OCR.OCR)e.Argument; i_OCR.Execute(); }