Ejemplo n.º 1
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(DataAngineSet.Model.person_dataset model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into person_dataset(");
            strSql.Append("name,type,source,create_time,remark)");
            strSql.Append(" values (");
            strSql.Append("@name,@type,@source,@create_time,@remark)");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@name",        MySqlDbType.VarChar,   50),
                new MySqlParameter("@type",        MySqlDbType.VarChar,   50),
                new MySqlParameter("@source",      MySqlDbType.VarChar,   50),
                new MySqlParameter("@create_time", MySqlDbType.DateTime),
                new MySqlParameter("@remark",      MySqlDbType.VarChar, 50)
            };
            parameters[0].Value = model.name;
            parameters[1].Value = model.type;
            parameters[2].Value = model.source;
            parameters[3].Value = model.create_time;
            parameters[4].Value = model.remark;

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

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public DataAngineSet.Model.person_dataset DataRowToModel(DataRow row)
 {
     DataAngineSet.Model.person_dataset model = new DataAngineSet.Model.person_dataset();
     if (row != null)
     {
         if (row["id"] != null && row["id"].ToString() != "")
         {
             model.id = int.Parse(row["id"].ToString());
         }
         if (row["name"] != null)
         {
             model.name = row["name"].ToString();
         }
         if (row["type"] != null)
         {
             model.type = row["type"].ToString();
         }
         if (row["source"] != null)
         {
             model.source = row["source"].ToString();
         }
         if (row["create_time"] != null && row["create_time"].ToString() != "")
         {
             model.create_time = DateTime.Parse(row["create_time"].ToString());
         }
         if (row["remark"] != null)
         {
             model.remark = row["remark"].ToString();
         }
     }
     return(model);
 }
Ejemplo n.º 3
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)
                {
                    DataAngineSet.Model.person_dataset ds = new DataAngineSet.Model.person_dataset();
                    ds = person_datasetbll.GetModel(id);
                    //int num = bll.GetListByTime(searchinfo.StartTime, searchinfo.EndTime, ds.id.ToString()).Tables[0].Rows.Count;
                    HitAlertData[] ha = HitAlertData.CreateInstanceFromDataAngineDataSet(bll.GetListByTime(searchinfo.StartTime, searchinfo.EndTime, searchinfo.StartIndex, searchinfo.PageSize, ds.id.ToString()));

                    HitAlertData[] haALL = HitAlertData.CreateInstanceFromDataAngineDataSet(bll.GetListByTime_TaskId(searchinfo.StartTime, searchinfo.EndTime, ds.id.ToString()));
                    JObject        jo    = new JObject(new JProperty("num", haALL.Length), new JProperty("pageData", JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ha))));

                    response.SetContent(JsonConvert.SerializeObject(jo));
                }
                //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));

                //}
            }
            else
            {
                Log.Debug("轨迹查询");

                Trajectory_Search trajectory_search = Trajectory_Search.CreateInstanceFromJSON(request.PostParams);
                if (trajectory_search != null)
                {
                    HitAlertData_Trajectory_Search[] ha    = HitAlertData_Trajectory_Search.CreateInstanceFromDataAngineDataSet(bll.GetListById(trajectory_search.UserId, trajectory_search.StartTime, trajectory_search.EndTime, trajectory_search.StartIndex, trajectory_search.PageSize));
                    HitAlertData_Trajectory_Search[] haALL = HitAlertData_Trajectory_Search.CreateInstanceFromDataAngineDataSet(bll.GetListById(trajectory_search.UserId, trajectory_search.StartTime, trajectory_search.EndTime));
                    JObject jo = new JObject(new JProperty("num", haALL.Length), new JProperty("pageData", JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ha))));

                    response.SetContent(JsonConvert.SerializeObject(jo));
                }
            }
            response.Send();
        }
Ejemplo n.º 4
0
        bool Init(int taskID)
        {
            DataAngineSet.Model.surveillance_task task = taskBll.GetModel(taskID);
            if (null == task)
            {
                Log.Debug("检索任务失败"); return(false);
            }
            DataAngineSet.Model.device device = deviceBll.GetModel(task.device_id);
            if (null == device)
            {
                Log.Debug("检索设备失败"); return(false);
            }
            DataAngineSet.Model.person_dataset person_dataset = datasetBll.GetModel(task.person_dataset_id);
            if (null == person_dataset)
            {
                Log.Debug("检索库失败"); return(false);
            }

            InitFRS();
            fa.LoadData(person_dataset.id);
            cap.TaskID = taskID;
            cap.HitAlertReturnEvent += new Capture.HitAlertCallback(OnHit);


            int id = -1;

            try
            {
                Log.Debug(device.video_address);
                id = Convert.ToInt32(device.video_address);
            }
            catch
            {
            }
            if (id == -1)
            {
                if (cap.Start(device.video_address) != ReturnCode.SUCCESS)
                {
                    Log.Debug("打开摄像头失败");
                    return(false);
                }
            }
            else
            {
                if (cap.Start(id) != ReturnCode.SUCCESS)
                {
                    Log.Debug("打开摄像头失败");
                    return(false);
                }
            }
            return(true);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(DataAngineSet.Model.person_dataset model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update person_dataset set ");
            strSql.Append("name=@name,");
            strSql.Append("type=@type,");
            strSql.Append("source=@source,");
            strSql.Append("create_time=@create_time,");
            strSql.Append("remark=@remark");
            strSql.Append(" where id=@id");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@name",        MySqlDbType.VarChar,   50),
                new MySqlParameter("@type",        MySqlDbType.VarChar,   50),
                new MySqlParameter("@source",      MySqlDbType.VarChar,   50),
                new MySqlParameter("@create_time", MySqlDbType.DateTime),
                new MySqlParameter("@remark",      MySqlDbType.VarChar,   50),
                new MySqlParameter("@id",          MySqlDbType.Int32, 11)
            };
            parameters[0].Value = model.name;
            parameters[1].Value = model.type;
            parameters[2].Value = model.source;
            parameters[3].Value = model.create_time;
            parameters[4].Value = model.remark;
            parameters[5].Value = model.id;

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

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public DataAngineSet.Model.person_dataset GetModel(string name)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select id,name,type,source,create_time,remark from person_dataset ");
            strSql.Append(" where name=@name");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@name", MySqlDbType.String)
            };
            parameters[0].Value = name;

            DataAngineSet.Model.person_dataset model = new DataAngineSet.Model.person_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);
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Post时调用
        /// </summary>
        public override void OnPost(HttpRequest request, HttpResponse response)
        {
            bool status = false;

            //OneVsOne
            if (request.RestConvention == "0")
            {
                Log.Debug("比较图片");
                //http://127.0.0.1:8080/v1/verify/0
                //VerifyOneVsOne verify = VerifyOneVsOne.CreateInstanceFromJSON(request.PostParams);
                string         result = Base64Decode(request.PostParams);
                VerifyOneVsOne verify = VerifyOneVsOne.CreateInstanceFromJSON(result);
                if (verify != null)
                {
                    double score = 0;
                    //初始化
                    InitFRS();
                    if (verify.PicSrc != null && verify.PicDst != null)
                    {
                        Bitmap Bitmapsrc = Base64ToImage(verify.PicSrc);
                        Bitmap Bitmapdst = Base64ToImage(verify.PicDst);

                        Bitmap bmpsrc = new Bitmap(Bitmapsrc.Width, Bitmapsrc.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                        Graphics.FromImage(bmpsrc).DrawImage(Bitmapsrc, new Rectangle(0, 0, bmpsrc.Width, bmpsrc.Height));

                        Bitmap bmpdst = new Bitmap(Bitmapdst.Width, Bitmapdst.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                        Graphics.FromImage(bmpdst).DrawImage(Bitmapdst, new Rectangle(0, 0, bmpdst.Width, bmpdst.Height));

                        Bitmapsrc.Save("Bitmapsrc.jpg");
                        Bitmapdst.Save("Bitmapdst.jpg");

                        score = fa.Compare(bmpsrc, bmpdst);
                        bmpsrc.Dispose();
                        bmpdst.Dispose();
                    }
                    else
                    {
                        //Image src = Image.FromFile(verify.PicSrc_Path);
                        Image src = Get_UrlImage(verify.PicSrc_Path);
                        //Image dst = Image.FromFile(verify.PicDst_Path);
                        Image dst = Get_UrlImage(verify.PicDst_Path);
                        score = fa.Compare(src, dst);
                    }


                    Log.Debug(string.Format("相似度:{0}", score));
                    response.SetContent(JsonConvert.SerializeObject(score));
                    //response.SetContent("0.8");
                }
            }
            else
            {
                Log.Debug("查找图片");
                //VerifyOneVsN verify = VerifyOneVsN.CreateInstanceFromJSON(request.PostParams);
                string       result = Base64Decode(request.PostParams);
                VerifyOneVsN verify = VerifyOneVsN.CreateInstanceFromJSON(result);
                if (verify != null)
                {
                    int DatasetId = Convert.ToInt32(request.RestConvention);
                    DataAngineSet.Model.person_dataset ds = new DataAngineSet.Model.person_dataset();
                    ds = bll.GetModel(DatasetId);

                    // 获取Post的阈值和top值
                    double ScoreThresh = Convert.ToDouble(verify.ScoreThresh);
                    int    TopK        = Convert.ToInt32(verify.TopK);

                    if (ScoreThresh == 0)
                    {
                        ScoreThresh = 0.6;
                    }
                    if (TopK == 0)
                    {
                        TopK = 3;
                    }


                    //初始化
                    InitFRS();
                    fa.LoadData(DatasetId);

                    Log.Debug(string.Format("初始阈值:{0}", fa.ScoreThresh));
                    Log.Debug(string.Format("初始top值:{0}", fa.TopK));

                    // 设置阈值和top值
                    fa.ScoreThresh = (float)ScoreThresh;
                    fa.TopK        = TopK;

                    Log.Debug(string.Format("设置阈值:{0}", fa.ScoreThresh));
                    Log.Debug(string.Format("设置top值:{0}", fa.TopK));

                    FRS.HitAlert[] hits;
                    if (verify.PicSrc != null)
                    {
                        Bitmap Bitmapsrc = Base64ToImage(verify.PicSrc);
                        Bitmap bmpsrc    = new Bitmap(Bitmapsrc.Width, Bitmapsrc.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                        Graphics.FromImage(bmpsrc).DrawImage(Bitmapsrc, new Rectangle(0, 0, bmpsrc.Width, bmpsrc.Height));
                        //Bitmapsrc.Save("Bitmapsrc.jpg");


                        hits = fa.Search(bmpsrc);
                        bmpsrc.Dispose();
                    }
                    else
                    {
                        //Image src = Image.FromFile(verify.PicSrc_Path);
                        Image src = Get_UrlImage(verify.PicSrc_Path);
                        hits = fa.Search(src);
                    }
                    string msg = JsonConvert.SerializeObject(Model.HitAlert.CreateInstanceFromFRSHitAlert(hits));
                    if (hits == null)
                    {
                        JObject jo = new JObject(new JProperty("num", 0));
                        response.SetContent(JsonConvert.SerializeObject(jo));
                    }
                    response.SetContent(msg);
                }
            }


            response.Send();
        }
Ejemplo 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)
                {
                    DataAngineSet.Model.person_dataset ds = new DataAngineSet.Model.person_dataset();
                    ds.name        = addinfo.Name;
                    ds.type        = addinfo.Type;
                    ds.source      = addinfo.Source;
                    ds.create_time = addinfo.CreateTime;
                    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));
                    }
                }
                response.SetContent(status.ToString());
            }
            else
            {
                if (request.Operation == "update")//更新
                {
                    PersonDataSet persondataset = PersonDataSet.CreateInstanceFromJSON(request.PostParams);
                    if (null != persondataset)
                    {
                        status = bll.Update(persondataset.ToDataAngineModel());
                    }
                    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 == "list")
                {
                    Log.Debug(string.Format("返回所有库信息"));
                    SearchInfo_PersonDateSet searchinfo = SearchInfo_PersonDateSet.CreateInstanceFromJSON(request.PostParams);
                    if (searchinfo != null)
                    {
                        //int num = bll.DataTableToList(bll.GetAllList().Tables[0]).Count;
                        List <DataAngineSet.Model.person_dataset> datasets = bll.DataTableToList(bll.GetAllList(searchinfo.StartIndex, searchinfo.PageSize, "").Tables[0]);
                        response.SetContent(JsonConvert.SerializeObject(PersonDataSet.CreateInstanceFromDataAngineModel(datasets.ToArray())));
                    }
                }
            }
            response.Send();
        }