当前位置: 首页 > news >正文

提供网站建设公司哪家好深圳企业网站建设方案

提供网站建设公司哪家好,深圳企业网站建设方案,wordpress登录名,个人域名备案风险参考 coco eval 解析 COCO目标检测比赛中的模型评价指标介绍#xff01; coco 的评估函数对应的是 pycocotools 中的 cocoeval.py 文件。 从整体上来看#xff0c;整个 COCOeval 类的框架如图#xff1a; 基础的用法为 # The usage for CocoEval is as follows: cocoGt…参考 coco eval 解析 COCO目标检测比赛中的模型评价指标介绍 coco 的评估函数对应的是 pycocotools 中的 cocoeval.py 文件。 从整体上来看整个 COCOeval 类的框架如图 基础的用法为 # The usage for CocoEval is as follows: cocoGt..., cocoDt... # load dataset and results E CocoEval(cocoGt,cocoDt); # initialize CocoEval object E.params.recThrs ...; # set parameters as desired E.evaluate(); # run per image evaluation E.accumulate(); # accumulate per image results E.summarize(); # display summary metrics of resultscocoGt, cocoDt 应该是什么格式如果是COCO 格式注意需要增加 score 值。how? __init__ 初始化函数 参数解释如下 注意几个字母的含义 N: 用于评估的img_id 的个数 K: 用于评估的cat_id 的个数 T: iouThrs 的个数 R: recThrs 的个数 A: 对象面积分段后的数量 M: maxDets 每张图片检测的最大检测框数量 _prepare 根据传入的初始化参数做一些前置化的处理 def _prepare(self):Prepare ._gts and ._dts for evaluation based on params:return: Nonedef _toMask(anns, coco):# modify ann[segmentation] by referencefor ann in anns:rle coco.annToRLE(ann)ann[segmentation] rlep self.paramsif p.useCats:gtsself.cocoGt.loadAnns(self.cocoGt.getAnnIds(imgIdsp.imgIds, catIdsp.catIds))dtsself.cocoDt.loadAnns(self.cocoDt.getAnnIds(imgIdsp.imgIds, catIdsp.catIds))else:gtsself.cocoGt.loadAnns(self.cocoGt.getAnnIds(imgIdsp.imgIds))dtsself.cocoDt.loadAnns(self.cocoDt.getAnnIds(imgIdsp.imgIds))# convert ground truth to mask if iouType segmif p.iouType segm:_toMask(gts, self.cocoGt)_toMask(dts, self.cocoDt)# set ignore flagfor gt in gts:gt[ignore] gt[ignore] if ignore in gt else 0gt[ignore] iscrowd in gt and gt[iscrowd]if p.iouType keypoints:gt[ignore] (gt[num_keypoints] 0) or gt[ignore]self._gts defaultdict(list) # gt for evaluationself._dts defaultdict(list) # dt for evaluationfor gt in gts:self._gts[gt[image_id], gt[category_id]].append(gt)for dt in dts:self._dts[dt[image_id], dt[category_id]].append(dt)self.evalImgs defaultdict(list) # per-image per-category evaluation resultsself.eval {} # accumulated evaluation results computeIoU(self, imgId, catId) 根据image_id和cat_id计算这张图片里 cat_id 的所有GT、DT的iou矩阵主要用于bbox和segmentation 这里就是涉及到单张图片的单个类别的计算。 computeOks(self, imgId, catId) 根据image_id和cat_id计算这张图片里所有GT、DT的Oks矩阵也就是Sec 1.2.里OKS的计算源码出处。这里OKS矩阵的维度是 OKS 矩阵是什么 evaluateImg 对单张图片的单个类别做统计。 按照这个的话我还是没有把预测结果转换为 coco json. maxDets 每张图片的最大检测数 useCats 指定类别评估 cocoGt, cocoDt 都是 COCO API 数据 过程会计算每张图的结果吗会的每张图每个类别分别计算最后汇总的。 evaluateImg来计算每一张图片、每一个类别在不同条件下的检测结果 precision(T,R,K,A,M) recall(T,K,A,M)。 TKAM 分别是代表什么什么意思 cocoEval.evaluate() 只是每幅图的det和gt做了匹配并将结果存在了self.evalImgs中。计算tp等指标需要cocoEval.accumulate()。 针对上述accumulate获得的precision、recall矩阵在不同的维度上进行统计然后再呈现结果。 函数内部会根据传入的具体的IoU阈值面积阈值最大检测数的值返回上述precision和recall中对应维的检测结果我们就也可以自定义形式返回我们想要的各种参数下的AP与AR啦。 coco api 的 loadRes 怎么理解 COCO API-COCO模块在det中的应用 结合 mmdet 中的 cocometric mmdet/evaluation/metrics/coco_metric.py result2json 将结果格式化为coco格式。 # convert predictions to coco format and dump to json file result_files self.results2json(preds, outfile_prefix)/home/my_mmdet/demo/inference_demo.ipynb 已经给出了不同场景下的推理 一张图片一个文件夹 确认一下这两种情况是否经过了完整的 预处理 确认 mmdet 预测的结果格式 然后保留一份 json 作为 cocoeval 实验的example. mmdet 中的 cocometric 更像是一个过程评估器。 需要不断通过process的方式处理gt和pred 先 process 再 compute_metric 模型在处理的过程中会生成带有 metainfoimg_id 的预测结果。但是在自己调用 detinferencer 的时候却不会生成为何 如何解决让自己更容易简易调用数据结果dumpresult 为pkl是怎么实现的 gt 也是在process 这个函数中的 data_batch 中加入的,额不是是在 datasamples 中返回的。 def process(self, data_batch: dict, data_samples: Sequence[dict]) - None:Process one batch of data samples and predictions. The processedresults should be stored in self.results, which will be used tocompute the metrics when all batches have been processed.Args:data_batch (dict): A batch of data from the dataloader.data_samples (Sequence[dict]): A batch of data samples thatcontain annotations and predictions.for data_sample in data_samples:result dict()pred data_sample[pred_instances]result[img_id] data_sample[img_id]result[bboxes] pred[bboxes].cpu().numpy()result[scores] pred[scores].cpu().numpy()result[labels] pred[labels].cpu().numpy()# encode mask to RLEif masks in pred:result[masks] encode_mask_results(pred[masks].detach().cpu().numpy()) if isinstance(pred[masks], torch.Tensor) else pred[masks]# some detectors use different scores for bbox and maskif mask_scores in pred:result[mask_scores] pred[mask_scores].cpu().numpy()# parse gtgt dict()gt[width] data_sample[ori_shape][1]gt[height] data_sample[ori_shape][0]gt[img_id] data_sample[img_id]if self._coco_api is None:# TODO: Need to refactor to support LoadAnnotationsassert instances in data_sample, \ground truth is required for evaluation when \ann_file is not providedgt[anns] data_sample[instances]# add converted result to the results listself.results.append((gt, result))coco 接口 这两个接口是否可以帮助不通过json构造coco loadRes 将结果转换为 loadNumpyAnnotations 输入格式、 list: ann 一定要求包括以下几个 key score 以及别的key看你心情加 - image_id - segmentation - bbox - score??? 有score 吗loadNumpyAnnotations def loadNumpyAnnotations(self, data):Convert result data from a numpy array [Nx7] where each row contains {imageID,x1,y1,w,h,score,class}:param data (numpy.ndarray):return: annotations (python nested list)print(Converting ndarray to lists...)assert(type(data) np.ndarray)print(data.shape)assert(data.shape[1] 7)N data.shape[0]ann []for i in range(N):if i % 1000000 0:print({}/{}.format(i,N))ann [{image_id : int(data[i, 0]),bbox : [ data[i, 1], data[i, 2], data[i, 3], data[i, 4] ],score : data[i, 5],category_id: int(data[i, 6]),}]return annself.datasets datasets 是个什么 mask 这块是一个比较细节的地方 mmdet 返回的mask 和我们输入的格式不同一种是 polygon还有一种rle import pycocotools._mask as _mask 然后这个 mask 的解析 coco metrics 里已经给了一个案例了。 做了一个 annotation 出来而已。 下一步是写出来然后是继续到最后detect完整个逻辑3小时 mAP 的计算中 其实有一个比较诡异的问题边界case 是如何处理的比如gt为0dt为0 计算每张图片的 mAP # 计算每张图像的 mAPper_image_mAPs []for img_id in coco_api.getImgIds():coco_eval.params.imgIds [img_id]coco_eval.evaluate()coco_eval.accumulate()coco_eval.summarize()# 获取每张图像的 mAP 值per_image_mAPs.append(coco_eval.stats[1])# 打印每张图像的 mAP 值for i, mAP in enumerate(per_image_mAPs):print(fmAP for image {i 1}: {mAP})问题 iouType to ‘segm’, ‘bbox’ or ‘keypoints’ 有什么区别maxDets - [1 10 100] M3 thresholds on max detections per image 这个需要根据实际情况调整吗
http://www.w-s-a.com/news/525764/

相关文章:

  • .name后缀的网站做房产网站多少钱
  • 手机上传网站源码网站app封装怎么做
  • 做的网站放在阿里云网站建设投标书范本
  • 做文化传播公司网站wordpress仿简书
  • 什么网站有题目做西宁网站制作哪里好
  • 网站上添加图片的原则优易主机 wordpress
  • 用php做的网站源代码那里有做像美团的网站的
  • 网站建设百科有什么做兼职的网站
  • 创造网站电商网站建设方案道客巴巴
  • 南通设计网站建设wordpress时光轴
  • 郑州做网站企起网站建设 风险
  • 北京市保障性住房建设投资中心网站6大连广告设计与制作公司
  • 建站之星网站模板国内f型网页布局的网站
  • 怎么做网站关键词优化外贸网站 开源
  • 广东公司响应式网站建设设计seo系统是什么
  • 清丰网站建设费用网站建设的前途
  • 网站上那些兼职网页怎么做的北京网页
  • 桂林建站平台哪家好品牌设计公司宣传文案
  • 平面设计和建设网站的区别公司官网静态
  • h5网站建设+案例住房住房和城乡建设部网站
  • 建设股公司网站东莞建设网网上平台
  • 湖州吴兴建设局网站加强网站建设的
  • 茌平做网站公司专业商城网站建设报价
  • 网站结构图怎么画wordpress注册不发送件
  • 个人备案网站可以做论坛吗电商推广方式有哪些
  • 网站建设 自适应国内最近的新闻
  • 校园网站开发背景吴江网站建设公司
  • 网站开发工程师发展趋势山东省建设工程电子信息网站
  • 适合大学生创业的网站建设类型吉林省舒兰市建设银行网站
  • 呼和浩特网站建设哪家好培训学校加盟费用