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); }
/// <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); } }
/// <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(); }
/// <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); }
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(); }
/// <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); } }
/// <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); } }
/// <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(); }