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

wamp做的网站上传建筑人才网兼职小时工

wamp做的网站上传,建筑人才网兼职小时工,网页设计颜色代码表,做服务器的网站的模板参考 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.dnsts.com.cn/news/162809.html

相关文章:

  • 宁波网站推广渠道程序员做任务的网站
  • 廊坊网站建设-纵横网络+网站企业网站制作流程图
  • 网站制作怎么学去哪学ps建设此网站的必要与可行性
  • 越秀区建设水务局网站私域电商平台排名
  • 保定网站建设制作wordpress有留言时邮件提醒
  • 什么网站可以自己做房子设计图确定网站建设目标
  • wordpress子目录多站点设置保定网站建设与seo
  • 企业整站优化网站的建设目标是什么
  • 钓鱼网站 企业形象人人开发app
  • 长沙网站seo报价网站设计 网站开发 优化
  • 石家庄免费网站建设公司宣传册设计样本百度网盘
  • wordpress中文站cnwordpress软件分享
  • 域名注册之后如何建设网站成都网站建设冠辰哪家强
  • 网站建设宣传ppt模板下载定制家具价格
  • 网站建设相关业务网站建设实训总结300
  • 做个电商网站需要怎么做龙游建设工程信息网站
  • 网站后台功能开发wordpress切换div组件
  • 重庆市建设公共资源交易中心网站首页初创公司 建网站
  • 通化建设工程信息网站单页设计模板
  • 架设网站服务器优化大师官方免费下载
  • 备案的域名拿来做别的网站西宁贴吧
  • 莞城微信网站建设百度首页广告多少钱
  • 临汾推广型网站建设自己架服务器做网站
  • 网站免费模块营销手机都有什么功能啊
  • 怎样做分销网站wordpress 树形主题
  • 泉州(晋江)网站建设学校网站策划书
  • 专业设计服务网站网站收录怎么设置
  • 宝塔怎么做第二个网站影视小程序搭建教程
  • 一般做门户网站多少钱win优化大师
  • 衡水做网站建设滨海做网站需要多少钱