Exemplo n.º 1
0
        bool  Init(int taskID)
        {
            DataAngine_Set.Model.surveillancetask task = taskBll.GetModel(taskID);
            if (null == task)
            {
                Log.Debug("检索任务失败"); return(false);
            }
            DataAngine_Set.Model.device device = deviceBll.GetModel(task.deviceid);
            if (null == device)
            {
                Log.Debug("检索设备失败"); return(false);
            }
            DataAngine_Set.Model.dataset dataset = datasetBll.GetModel(task.databaseid);
            if (null == dataset)
            {
                Log.Debug("检索库失败"); return(false);
            }

            InitFRS();

            fa.LoadData(dataset.datasetname);
            cap.HitAlertReturnEvent += new Capture.HitAlertCallback(OnHit);


            int id = -1;

            try
            {
                Log.Debug(device.address);
                id = Convert.ToInt32(device.address);
            }
            catch
            {
            }
            if (id == -1)
            {
                if (cap.Start(device.address) != ReturnCode.SUCCESS)
                {
                    Log.Debug("打开摄像头失败");
                    return(false);
                }
            }
            else
            {
                if (cap.Start(id) != ReturnCode.SUCCESS)
                {
                    Log.Debug("打开摄像头失败");
                    return(false);
                }
            }

            return(true);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(DataAngine_Set.Model.dataset model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update dataset set ");
            strSql.Append("datasetname=@datasetname,");
            strSql.Append("type=@type,");
            strSql.Append("user=@user,");
            strSql.Append("password=@password,");
            strSql.Append("ip=@ip,");
            strSql.Append("port=@port,");
            strSql.Append("remark=@remark");
            strSql.Append(" where id=@id");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@datasetname", MySqlDbType.VarChar, 50),
                new MySqlParameter("@type",        MySqlDbType.Int32,   11),
                new MySqlParameter("@user",        MySqlDbType.VarChar, 20),
                new MySqlParameter("@password",    MySqlDbType.VarChar, 20),
                new MySqlParameter("@ip",          MySqlDbType.VarChar, 20),
                new MySqlParameter("@port",        MySqlDbType.VarChar, 20),
                new MySqlParameter("@remark",      MySqlDbType.VarChar, 50),
                new MySqlParameter("@id",          MySqlDbType.Int32, 11)
            };
            parameters[0].Value = model.datasetname;
            parameters[1].Value = model.type;
            parameters[2].Value = model.user;
            parameters[3].Value = model.password;
            parameters[4].Value = model.ip;
            parameters[5].Value = model.port;
            parameters[6].Value = model.remark;
            parameters[7].Value = model.id;

            int rows = DbHelperMySQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Post时调用
        /// </summary>
        public override void OnPost(HttpRequest request, HttpResponse response)
        {
            bool status = false;

            if (request.Operation == "verify")//添加一条数据
            {
                Log.Debug("比较图片");

                //OneVsOne
                if (request.RestConvention == "0")
                {
                    VerifyOneVsOne verify = VerifyOneVsOne.CreateInstanceFromJSON(request.PostParams);
                    if (verify != null)
                    {
                        Bitmap Bitmapsrc = BytesToBitmap(verify.PicSrc);
                        Bitmap Bitmapdst = BytesToBitmap(verify.PicDst);
                        double score     = fa.Compare(Bitmapsrc, Bitmapdst);

                        response.SetContent(JsonConvert.SerializeObject(score));
                    }
                }
                else
                {
                    VerifyOneVsN verify = VerifyOneVsN.CreateInstanceFromJSON(request.PostParams);
                    if (verify != null)
                    {
                        int DatasetId = Convert.ToInt32(request.RestConvention);
                        DataAngine_Set.Model.dataset ds = new DataAngine_Set.Model.dataset();
                        ds = bll.GetModel(DatasetId);

                        Bitmap Bitmapsrc = BytesToBitmap(verify.PicSrc);
                        fa.LoadData(ds.datasetname);
                        FRS.HitAlert[] hits = fa.Search(Bitmapsrc);
                        string         msg  = JsonConvert.SerializeObject(Model.HitAlert.CreateInstanceFromFRSHitAlert(hits));
                        response.SetContent(msg);
                    }
                }
            }
            response.Send();
        }
Exemplo n.º 4
0
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public DataAngine_Set.Model.dataset DataRowToModel(DataRow row)
 {
     DataAngine_Set.Model.dataset model = new DataAngine_Set.Model.dataset();
     if (row != null)
     {
         if (row["id"] != null && row["id"].ToString() != "")
         {
             model.id = int.Parse(row["id"].ToString());
         }
         if (row["datasetname"] != null)
         {
             model.datasetname = row["datasetname"].ToString();
         }
         if (row["type"] != null && row["type"].ToString() != "")
         {
             model.type = int.Parse(row["type"].ToString());
         }
         if (row["user"] != null)
         {
             model.user = row["user"].ToString();
         }
         if (row["password"] != null)
         {
             model.password = row["password"].ToString();
         }
         if (row["ip"] != null)
         {
             model.ip = row["ip"].ToString();
         }
         if (row["port"] != null)
         {
             model.port = row["port"].ToString();
         }
         if (row["remark"] != null)
         {
             model.remark = row["remark"].ToString();
         }
     }
     return(model);
 }
Exemplo n.º 5
0
        public override void OnPost(HttpRequest request, HttpResponse response)
        {
            if (request.RestConvention != null)//根据ID获得数据库
            {
                Log.Debug(string.Format("返回数据库{0}的信息", request.RestConvention));
                int id = -1;
                try
                {
                    id = Convert.ToInt32(request.RestConvention);
                }
                catch
                {
                }

                SearchInfo searchinfo = SearchInfo.CreateInstanceFromJSON(request.PostParams);
                if (searchinfo != null)
                {
                    DataAngine_Set.Model.dataset ds = new DataAngine_Set.Model.dataset();
                    ds = datasetbll.GetModel(id);
                    HitAlertData[] ha = HitAlertData.CreateInstanceFromDataAngineDataSet(bll.GetListByTime(searchinfo.StartTime, searchinfo.EndTime, searchinfo.StartIndex, searchinfo.PageSize, ds.datasetname));
                    response.SetContent(JsonConvert.SerializeObject(ha));
                }
                //if(request.GetParams!=null)
                //{
                //    DateTime starttime=new DateTime();
                //    DateTime endtime=new DateTime();
                //    int startindex = 0;
                //    int pagesize = 30;
                //    starttime = Convert.ToDateTime(request.GetParams["starttime"]);
                //    endtime = Convert.ToDateTime(request.GetParams["endtime"]);
                //    startindex = Convert.ToInt32(request.GetParams["startindex"]);
                //    pagesize = Convert.ToInt32(request.GetParams["pagesize"]);
                //    HitAlertData[] ha = HitAlertData.CreateInstanceFromDataAngineDataSet(bll.GetListByTime(starttime, endtime, startindex, pagesize, library));
                //     response.SetContent(JsonConvert.SerializeObject(ha));

                //}
            }
            response.Send();
        }
Exemplo n.º 6
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public DataAngine_Set.Model.dataset GetModel(int id)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select id,datasetname,type,user,password,ip,port,remark from dataset ");
            strSql.Append(" where id=@id");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@id", MySqlDbType.Int32)
            };
            parameters[0].Value = id;

            DataAngine_Set.Model.dataset model = new DataAngine_Set.Model.dataset();
            DataSet ds = DbHelperMySQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(DataAngine_Set.Model.dataset model)
        {
            //MessageBox.Show("新建数据库");
            //建立相关数据库
            StringBuilder strlibrarySql = new StringBuilder();

            strlibrarySql.Append("CREATE DATABASE `" + model.datasetname + "`;");
            strlibrarySql.Append("USE `" + model.datasetname + "`;");

            strlibrarySql.Append("create table `" + model.datasetname + "`.`user`");
            strlibrarySql.Append("(");
            strlibrarySql.Append("`id` int(11) AUTO_INCREMENT,");
            strlibrarySql.Append("`people_id` varchar(50) NULL,");
            strlibrarySql.Append("`name` nvarchar(50) NULL,");
            strlibrarySql.Append("`gender` char(1) NULL,");
            strlibrarySql.Append("`card_id` varchar(50) NULL,");
            strlibrarySql.Append("`image_id` varchar(60) NULL,");
            strlibrarySql.Append("`face_image_path` varchar(200) NOT NULL,");
            strlibrarySql.Append("`feature_data` LongBlob NOT NULL,");
            strlibrarySql.Append("`type` char NULL,");
            strlibrarySql.Append("`create_time` datetime NOT NULL,");
            strlibrarySql.Append("`modified_time` datetime NOT NULL,");
            strlibrarySql.Append("`quality_score` float,");
            strlibrarySql.Append("PRIMARY KEY (`id`),");
            strlibrarySql.Append("UNIQUE KEY `id` (`id`)");
            strlibrarySql.Append(")ENGINE=InnoDB DEFAULT CHARSET=utf8;");

            strlibrarySql.Append("create table `" + model.datasetname + "`.`hitrecord`");
            strlibrarySql.Append("(");
            strlibrarySql.Append("`id` int(11) AUTO_INCREMENT,");
            strlibrarySql.Append("`face_query_image_path` varchar(200) NOT NULL,");
            strlibrarySql.Append("`threshold` float NOT NULL,");
            strlibrarySql.Append("`occur_time` datetime NOT NULL,");
            strlibrarySql.Append("PRIMARY KEY (`id`),");
            strlibrarySql.Append("UNIQUE KEY `id` (`id`)");
            strlibrarySql.Append(")ENGINE=InnoDB DEFAULT CHARSET=utf8;");

            strlibrarySql.Append("create table `" + model.datasetname + "`.`hitrecord_detail`");
            strlibrarySql.Append("(");
            strlibrarySql.Append("`id` int(11) AUTO_INCREMENT,");
            strlibrarySql.Append("`hit_record_id` int(11) NOT NULL,");
            strlibrarySql.Append("`user_id` int(11) NOT NULL,");
            strlibrarySql.Append("`rank` int(11) NOT NULL,");
            strlibrarySql.Append("`score` float NOT NULL,");
            strlibrarySql.Append("PRIMARY KEY (`id`),");
            strlibrarySql.Append("UNIQUE KEY `id` (`id`)");
            strlibrarySql.Append(")ENGINE=InnoDB DEFAULT CHARSET=utf8;");

            strlibrarySql.Append("create view `" + model.datasetname + "`.`hitalert` as ");
            strlibrarySql.Append("select ");
            strlibrarySql.Append("hit.id,hit.face_query_image_path,hit.threshold,hit.occur_time,detail.id as detail_id,detail.rank,detail.score,usr.id as user_id,usr.name as user_name,usr.gender as user_gender,usr.card_id as user_card_id,usr.people_id as user_people_id,usr.image_id as user_image_id,usr.face_image_path as user_face_image_path,usr.type as user_type,usr.create_time as user_create_time,usr.modified_time as user_modified_time,usr.quality_score as user_quality_score ");
            strlibrarySql.Append("FROM ");
            strlibrarySql.Append("(`" + model.datasetname + "`.`hitrecord_detail` as detail ");
            strlibrarySql.Append("left join `" + model.datasetname + "`.`hitrecord` as hit on detail.hit_record_id=hit.id) ");
            strlibrarySql.Append("left join `" + model.datasetname + "`.`user` as usr on detail.user_id = usr.id;");

            int rows = DbHelperMySQL.ExecuteSql(strlibrarySql.ToString());

            if (rows > 0)
            {
                StringBuilder strSql = new StringBuilder();
                strSql.Append("insert into dataset(");
                strSql.Append("datasetname,type,user,password,ip,port,remark)");
                strSql.Append(" values (");
                strSql.Append("@datasetname,@type,@user,@password,@ip,@port,@remark)");
                MySqlParameter[] parameters =
                {
                    new MySqlParameter("@datasetname", MySqlDbType.VarChar, 50),
                    new MySqlParameter("@type",        MySqlDbType.Int32,   11),
                    new MySqlParameter("@user",        MySqlDbType.VarChar, 20),
                    new MySqlParameter("@password",    MySqlDbType.VarChar, 20),
                    new MySqlParameter("@ip",          MySqlDbType.VarChar, 20),
                    new MySqlParameter("@port",        MySqlDbType.VarChar, 20),
                    new MySqlParameter("@remark",      MySqlDbType.VarChar, 50)
                };
                parameters[0].Value = model.datasetname;
                parameters[1].Value = model.type;
                parameters[2].Value = model.user;
                parameters[3].Value = model.password;
                parameters[4].Value = model.ip;
                parameters[5].Value = model.port;
                parameters[6].Value = model.remark;

                rows = DbHelperMySQL.ExecuteSql(strSql.ToString(), parameters);
                if (rows > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// Post时调用
        /// </summary>
        public override void OnPost(HttpRequest request, HttpResponse response)
        {
            bool status = false;

            if (request.Operation == null)//添加一条数据
            {
                Log.Debug("添加一个人员库");

                AddInfo addinfo = AddInfo.CreateInstanceFromJSON(request.PostParams);
                if (addinfo != null)
                {
                    DataAngine_Set.Model.dataset ds = new DataAngine_Set.Model.dataset();
                    ds.datasetname = addinfo.DatasetName;
                    ds.remark      = addinfo.Remark;
                    status         = bll.Add(ds);
                    if (status)
                    {
                        Log.Debug(string.Format("创建人员库成功"));
                        //初始化
                        //InitFRS();
                        //int num = fa.RegisterInBulk1(addinfo.Path, ds.datasetname);
                        //Log.Debug(string.Format("共注册{0}人", num));
                    }
                }
            }
            else
            {
                if (request.Operation == "update")//更新
                {
                    Log.Debug("更新一个人员库");
                    RegisterInfo registerInfo = RegisterInfo.CreateInstanceFromJSON(request.PostParams);
                    if (registerInfo != null)
                    {
                        int DatasetId = Convert.ToInt32(request.RestConvention);
                        DataAngine_Set.Model.dataset ds = new DataAngine_Set.Model.dataset();
                        ds = bll.GetModel(DatasetId);
                        //初始化
                        InitFRS();
                        int num = fa.RegisterInBulk1(registerInfo.Path, ds.datasetname);
                        if (num > 0)
                        {
                            status = true;
                        }
                        Log.Debug(string.Format("共注册{0}人", num));
                    }
                    response.SetContent(status.ToString());
                }
                else if (request.Operation == "delete")//删除
                {
                    Log.Debug("删除更新一个人员库");

                    int id = -1;
                    try
                    {
                        id = Convert.ToInt32(request.RestConvention);
                    }
                    catch
                    {
                    }
                    status = bll.Delete(id);
                    //删除设备
                    response.SetContent(status.ToString());
                }
                else if (request.Operation == "view")//查看
                {
                    Log.Debug("更新一个人员库");
                    ViewInfo viewinfo = ViewInfo.CreateInstanceFromJSON(request.PostParams);
                    if (viewinfo != null)
                    {
                        int DatasetId = Convert.ToInt32(request.RestConvention);
                        DataAngine_Set.Model.dataset ds = new DataAngine_Set.Model.dataset();
                        ds = bll.GetModel(DatasetId);

                        UserData[] users = UserData.CreateInstanceFromDataAngineDataSet(userbll.GetPicPathList(null, viewinfo.StartIndex, viewinfo.PageSize, ds.datasetname));

                        response.SetContent(JsonConvert.SerializeObject(users));
                    }
                }
            }

            response.Send();
        }