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

做贸易把产品放到哪个网站好呢网页设计与制作设计报告

做贸易把产品放到哪个网站好呢,网页设计与制作设计报告,系统开发报告,动易内容管理系统文章目录 一、Closed-Set VS Open-set二、DINOv2.1 论文和代码2.2 内容2.3 安装部署2.4 使用效果 三、多visual prompt 改造3.1 获取示例图mask3.2 修改函数参数3.3 推理代码3.4 效果的提升#xff01; 四、总结 本文主要介绍visual prompt模型DINOv#xff0c;该模型可输入八… 文章目录 一、Closed-Set VS Open-set二、DINOv2.1 论文和代码2.2 内容2.3 安装部署2.4 使用效果 三、多visual prompt 改造3.1 获取示例图mask3.2 修改函数参数3.3 推理代码3.4 效果的提升 四、总结 本文主要介绍visual prompt模型DINOv该模型可输入八张目标示例图作为参考告诉模型我要找的目标长这样在新的图片上进行推理实现实例分割的效果。 但一些复杂的场景八张的示例图不能让模型完全的学习到目标的特征因此扩展模型能力让visual prompt数量不受限制对实际场景应用是非常有必要的附改造方法、改造代码。 一、Closed-Set VS Open-set Closed-Set模型只需要关注有限数量的已知类别答案选项是预先定义的这意味着模型的输出范围是有限的、固定的并且只限于训练时已知的选项例如YOLOOpen-Set模型可以识别不属于任何已知类别的样本即其输出范围不是固定的具备一定的泛化能力和鲁棒性以应对这些未知的挑战例如SAM。   在某些特定的应用场景中仅仅依赖文本提示text prompt来描述目标对象对于Open-Set大模型来说可能并不足以实现精准识别。若能够额外提供示例图像visual prompt将有助于模型更准确地理解我们的意图从而提升整体的识别效果。   下图是DINOv作者提供的demo界面左上角输入油污推理图左下角输入多张油污示例图并用画笔进行mask运行模型可得到右边的推理效果。 二、DINOv 2.1 论文和代码 论文名称《Visual In-Context Prompting》 codehttps://github.com/UX-Decoder/DINOv demohttp://semantic-sam.xyzou.net:6099/ 2.2 内容 上下文提示是一种利用少量示例任务来指导模型完成新任务的技术。在视觉任务中这种技术可以通过提供一组带有标签的图像作为示例来引导模型理解和解决新的视觉任务。   模型通过学习少量的带有标签的样本图像提取出这些图像中的关键特征和模式然后利用这些特征和模式来生成针对新图像的查询。这个查询可以引导模型在新图像中定位并分割出目标物体。具体来说模型可能通过学习示例图像中的物体形状、颜色、纹理等特征以及这些特征与标签之间的关系来构造出查询。然后模型将这个查询应用于其他图像通过匹配和比较查询与图像中的特征来定位并分割出目标物体。最终模型会生成一个掩码标记出分割出的物体区域。   以图片作为提示visual prompt在提示图上通过笔画、画mask等方法作为视觉prompt可推理出侧视图中同类目标达到zero-shot目标分割的效果。 说明在降落伞进行mask标注在新的降落伞场景可分割出降落伞其他场景同理 2.3 安装部署 系统要求gcc版本4.9 # 1、离线安装detectron2 # 下载https://github.com/MaureenZOU/detectron2-xyz.git Unzip detectron2-xyz.zip # 解压 Cd detectron2-xyz Pip install -e . # 2、离线安装panopticapi # 下载https://github.com/cocodataset/panopticapi.git Unzip panopticapi.zip # 解压 Cd panopticapi Pip install -e . # 3、启动DINOv # 下载DINOvhttps://github.com/UX-Decoder/DINOv Unzip DINOv.zip # 解压 cd DINOv python -m pip install -r requirements.txt python demo_openset.py --ckpt /path/to/swinL/ckpt # 终端返回下图链接注在浏览器访问public URL建议使用梯子local URL直接用即可 2.4 使用效果 通过界面输入八张示例图在一些大目标、规整目标如矩形、圆形效果较好在复杂场景、小目标、不规则物体无法达到预期效果例如墙缝缺陷无法分割裂缝。 三、多visual prompt 改造 使用八张图片作为示例图可能无法完全学习到目标。在实际使用中我们可能采集到一小部分图片例如50张、100张等如何让DINOv不受限制可支持多张输入呢 3.1 获取示例图mask 使用labelme标注工具生成json标注文件使用下面代码将json转化为标注mask图。 import json import cv2 import os import matplotlib.pyplot as plt import numpy as npdef generate_mask(img_path, json_path, save_path):img cv2.imread(img_path)img cv2.cvtColor(img, cv2.COLOR_BGR2RGB)mask np.zeros_like(img)with open(json_path, r) as f:tmp f.read()tmp json.loads(tmp)tmp_shapes tmp[shapes]for shape in tmp_shapes:points shape[points]points np.array(points, np.int32)cv2.fillPoly(mask, [points], (255, 255, 255)) img_add cv2.addWeighted(mask, 0.3,img,0.7,0)cv2.imwrite(save_path, mask)if __name__ __main__:imgs_dir ./imgs # 图片目录jsons_dir ./jsons # 标注的json文件存放目录save_dir ./masks # 生成mask图保存目录img_files os.listdir(imgs_dir)for img_name in img_files:img_path os.path.join(imgs_dir, img_name)json_path os.path.join(jsons_dir, img_name.split(.)[0].json)if os.path.exists(json_path):save_path os.path.join(save_dir, img_name)generate_mask(img_path, json_path, save_path)3.2 修改函数参数 修改文件路径demo/openset_task.py 作用将原8张图输入修改为列表不限制输入 # 原代码31-37行 def task_openset(model,generic_vp1, generic_vp2, generic_vp3, generic_vp4,generic_vp5, generic_vp6, generic_vp7, generic_vp8, image_tgtNone, text_size640,hole_scale100,island_scale100):in_context_examples [generic_vp1, generic_vp2, generic_vp3, generic_vp4,generic_vp5, generic_vp6, generic_vp7, generic_vp8]in_context_examples [x for x in in_context_examples if x is not None]t []t.append(transforms.Resize(int(text_size), interpolationImage.BICUBIC))# 替换代码 def task_openset(model,refer_img_list, image_tgtNone, text_size640,hole_scale100,island_scale100):# in_context_examples [generic_vp1, generic_vp2, generic_vp3, generic_vp4,# generic_vp5, generic_vp6, generic_vp7, generic_vp8]in_context_examples refer_img_listin_context_examples [x for x in in_context_examples if x is not None]t []t.append(transforms.Resize(int(text_size), interpolationImage.BICUBIC))3.3 推理代码 自定义imgs_dir、mask_dir、tgt_dir执行代码可在save_dir中找到结果图 import torch import argparse from PIL import Image import cv2 import osfrom dinov.BaseModel import BaseModel from dinov import build_model from utils.arguments import load_opt_from_config_filefrom demo.openset_task import task_openset def parse_option():parser argparse.ArgumentParser(DINOv Demo, add_helpFalse)parser.add_argument(--conf_files, defaultconfigs/dinov_sam_coco_swinl_train.yaml, metavarFILE, helppath to config file, )parser.add_argument(--ckpt, defaultmodel_swinL.pth, metavarFILE, helppath to ckpt)parser.add_argument(--port, default6099, typeint, helppath to ckpt, )args parser.parse_args()return args build argsargs parse_option() build model sam_cfgargs.conf_filesopt load_opt_from_config_file(sam_cfg)model_sam BaseModel(opt, build_model(opt)).from_pretrained(args.ckpt).eval().cuda()torch.no_grad() def inference(refer_img_list, image2,*args, **kwargs):with torch.autocast(device_typecuda, dtypetorch.float16):modelmodel_sama task_openset(model, refer_img_list, image2, *args, **kwargs)return a 读取image和labelme标注的mask图 推理一整个目录的图片 def inference_dir(imgs_dir, mask_dir, tgt_dir, save_dir):files os.listdir(tgt_dir)result_img_list []for file in files:print(f{file})image_tgt_path os.path.join(tgt_dir, file)image_tgt Image.open(image_tgt_path).convert(RGB)refer_img_list []img_files os.listdir(imgs_dir)for img_name in img_files:img_path os.path.join(imgs_dir, img_name)mask_path os.path.join(mask_dir, img_name)if os.path.exists(mask_path):generic_vp {image:, mask:}generic_vp[image] Image.open(img_path).convert(RGB)generic_vp[mask] Image.open(mask_path).convert(RGB)refer_img_list.append(generic_vp)# print(len(refer_img_list))res inference(refer_img_list, image_tgt)res cv2.cvtColor(res, cv2.COLOR_RGB2BGR)cv2.imwrite(os.path.join(save_dir, os.path.basename(image_tgt_path)), res)if __name__ __main__:imgs_dir ./test_img_2/group_50/refer/imgs # 示例图目录mask_dir ./test_img_2/group_50/refer/masks # 示例mask图目录tgt_dir ./test_img_2/tgt # 推理图目录save_dir results/group_50/ # 结果保存目录inference_dir(imgs_dir, mask_dir, tgt_dir, save_dir)3.4 效果的提升 在验证多visual prompt对结果的影响采用了对比实验。在光学镜头缺陷场景中8张visual prompt和50张visual prompt进行对比50张visual prompt得到的推理效果更优 四、总结 如果文章对您有所帮助记得点赞、收藏、评论探讨✌️
http://www.hkea.cn/news/14286216/

相关文章:

  • 网站开发开源的手册WordPress 经典编辑器
  • 网站排名费用深圳市外贸网站
  • wordpress搭建vip下载站软件app开发定制
  • 闵行专业做网站莱州网站建设服务
  • 旅游网站建设期花型图案设计网站
  • 网站搭建交流群郴州新网0735
  • 宁波市城乡和建设网站网站流量指的是什么意思
  • 南昌企业制作网站腾讯qq网页版在线登录
  • 网站开发项目验收报告常州专门做网站的公司有哪些
  • 高校网站建设的文章网站备案通管局
  • 企业网站制作的公司可以做cps合作的棋牌网站
  • 沈阳做网站公司有哪些学做网站教程
  • 网站怎么做效果好银行官网登录入口
  • 网站关键词推广企业网络商城图片
  • 安徽省交通运输厅网站导购网站建设需求模版
  • 制作一个网站需要多少费用网站运营知识
  • seo sem 做网站装修贷
  • 做网站的公司简称什么行业免费咨询健康
  • 建设银行手机银行网站用户名是什么seo网站建设及扩词
  • 电商 网站建设文字php部署网站
  • 嘉兴网站公司哪家好经销商自己做网站
  • 网站建设费专票会计分录中国建设银行网站公积金查询系统
  • 厦门学网站建设产品拍摄
  • 怎样建设网站官网iis不能新建网站
  • 广州网站设计推荐柚米wordpress建站阿里云
  • 做外贸网站代理商前端和后端哪个好
  • 南通网站建设贵吗郑州妇科医院哪家好些
  • 廊坊论坛网站建设网页期末大作业
  • 杭州网站建设服务公司机械类产品网站做优化
  • 应届生出来做网站还是做报纸好建站智能模板