public bool LoadTrainData(Stream stream, out ConfigurationFieldClassifier config, out string trainPath)
        {
            try
            {
                var model = ModelFieldCLassify.Load(stream);
                model.Ksvm.Position = 0;

                m_ksvm             = MulticlassSupportVectorMachine.Load(model.Ksvm);
                model.Bow.Position = 0;
                //  m_bow = BagOfVisualWords.Load<CornerFeaturePointEx>(model.Bow);
                BinaryFormatter f = new BinaryFormatter();
                model.TrainImageFeatureVectors.Position = 0;
                m_trainImageFeatureVectors         = f.Deserialize(model.TrainImageFeatureVectors) as double[][];
                model.ClassIdClassNameMap.Position = 0;
                m_classIdClassNameMap = f.Deserialize(model.ClassIdClassNameMap) as Dictionary <int, string>;
                config          = model.Configuration;
                trainPath       = model.TrainPath;
                m_pageThreshold = model.PageThreshold;
            }
            catch
            {
                Reset();
                config    = null;
                trainPath = string.Empty;
                return(false);
            }
            return(true);
        }
Beispiel #2
0
        public static ConfigurationFieldClassifier GetSetupData(Stream stream, out string trainPath)
        {
            var model = ModelFieldCLassify.Load(stream);

            trainPath = model.TrainPath;

            return(model.Configuration);
        }
        // Create bag-of-words (BoW) with the given number of words
        //   private BagOfVisualWords<CornerFeaturePointEx> m_bow = null;
        #endregion

        #region Public methods
        public void SaveTrainData(Stream stream, ConfigurationFieldClassifier config, string trainPath, double pageThreshold)
        {
            var model = new ModelFieldCLassify();

            model.PageThreshold = pageThreshold;

            //   m_bow.Save(model.Bow);
            m_ksvm.Save(model.Ksvm);

            BinaryFormatter f = new BinaryFormatter();

            f.Serialize(model.TrainImageFeatureVectors, m_trainImageFeatureVectors);
            f.Serialize(model.ClassIdClassNameMap, m_classIdClassNameMap);

            model.Configuration = config;
            model.TrainPath     = trainPath;

            ModelFieldCLassify.Save(model, stream);
        }
Beispiel #4
0
        // Create bag-of-words (BoW) with the given number of words
        //   private BagOfVisualWords<CornerFeaturePointEx> m_bow = null;
        #endregion

        #region Public methods
        public void SaveTrainData(Stream stream, ConfigurationFieldClassifier config, string trainPath, double pageThreshold, IEnumerable <IFieldFeature> features)
        {
            var model = new ModelFieldCLassify();

            model.PageThreshold = pageThreshold;

            //   m_bow.Save(model.Bow);
            (m_machine as MulticlassSupportVectorMachine).Save(model.Ksvm);

            //BinaryFormatter f = new BinaryFormatter();
            //f.Serialize(model.TrainImageFeatureVectors, m_trainImageFeatureVectors);
            //f.Serialize(model.ClassIdClassNameMap, m_classIdClassNameMap);

            model.Configuration = config;
            model.TrainPath     = trainPath;
            model.FeaturesScale = features.ToDictionary(x => x.Name, y => y.FieldScale);

            ModelFieldCLassify.Save(model, stream);
        }
Beispiel #5
0
        public bool LoadTrainData(Stream stream, out ConfigurationFieldClassifier config, out string trainPath, IEnumerable <IFieldFeature> features)
        {
            try
            {
                var model = ModelFieldCLassify.Load(stream);
                model.Ksvm.Position = 0;

                m_machine = MulticlassSupportVectorMachine.Load(model.Ksvm);
                //  model.Bow.Position = 0;
                //  m_bow = BagOfVisualWords.Load<CornerFeaturePointEx>(model.Bow);
                //BinaryFormatter f = new BinaryFormatter();
                //model.TrainImageFeatureVectors.Position = 0;
                //m_trainImageFeatureVectors = f.Deserialize(model.TrainImageFeatureVectors) as double[][];
                //model.ClassIdClassNameMap.Position = 0;
                //m_classIdClassNameMap = f.Deserialize(model.ClassIdClassNameMap) as Dictionary<int, string>;
                config          = model.Configuration;
                trainPath       = model.TrainPath;
                m_pageThreshold = model.PageThreshold;
                if (model.FeaturesScale != null && model.FeaturesScale.Count > 0)
                {
                    foreach (var featue in features)
                    {
                        double scale;
                        if (model.FeaturesScale.TryGetValue(featue.Name, out scale) == true)
                        {
                            featue.FieldScale = scale;
                        }
                    }
                }
            }
            catch
            {
                Reset();
                config    = null;
                trainPath = string.Empty;
                return(false);
            }
            return(true);
        }