国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

vue.js 做網(wǎng)站網(wǎng)站開發(fā)制作培訓(xùn)學(xué)校

vue.js 做網(wǎng)站,網(wǎng)站開發(fā)制作培訓(xùn)學(xué)校,完整app開發(fā)流程,做網(wǎng)站1核1g服務(wù)器夠嗎文章目錄 一、Closed-Set VS Open-set二、DINOv2.1 論文和代碼2.2 內(nèi)容2.3 安裝部署2.4 使用效果 三、多visual prompt 改造3.1 獲取示例圖mask3.2 修改函數(shù)參數(shù)3.3 推理代碼3.4 效果的提升! 四、總結(jié) 本文主要介紹visual prompt模型DINOv,該模型可輸入八…

文章目錄

  • 一、Closed-Set VS Open-set
  • 二、DINOv
    • 2.1 論文和代碼
    • 2.2 內(nèi)容
    • 2.3 安裝部署
    • 2.4 使用效果
  • 三、多visual prompt 改造
    • 3.1 獲取示例圖mask
    • 3.2 修改函數(shù)參數(shù)
    • 3.3 推理代碼
    • 3.4 效果的提升!
  • 四、總結(jié)

??本文主要介紹visual prompt模型DINOv,該模型可輸入八張目標(biāo)示例圖作為參考,告訴模型我要找的目標(biāo)長(zhǎng)這樣,在新的圖片上進(jìn)行推理,實(shí)現(xiàn)實(shí)例分割的效果。
?? 但一些復(fù)雜的場(chǎng)景,八張的示例圖不能讓模型完全的學(xué)習(xí)到目標(biāo)的特征,因此擴(kuò)展模型能力,讓visual prompt數(shù)量不受限制,對(duì)實(shí)際場(chǎng)景應(yīng)用是非常有必要的(附改造方法、改造代碼)。

一、Closed-Set VS Open-set

??Closed-Set模型只需要關(guān)注有限數(shù)量的已知類別,答案選項(xiàng)是預(yù)先定義的,這意味著模型的輸出范圍是有限的、固定的,并且只限于訓(xùn)練時(shí)已知的選項(xiàng),例如YOLO;Open-Set模型可以識(shí)別不屬于任何已知類別的樣本,即其輸出范圍不是固定的,具備一定的泛化能力和魯棒性,以應(yīng)對(duì)這些未知的挑戰(zhàn),例如SAM。
??在某些特定的應(yīng)用場(chǎng)景中,僅僅依賴文本提示(text prompt)來描述目標(biāo)對(duì)象,對(duì)于Open-Set大模型來說,可能并不足以實(shí)現(xiàn)精準(zhǔn)識(shí)別。若能夠額外提供示例圖像(visual prompt),將有助于模型更準(zhǔn)確地理解我們的意圖,從而提升整體的識(shí)別效果。
??下圖是DINOv作者提供的demo界面,左上角輸入油污推理圖,左下角輸入多張油污示例圖,并用畫筆進(jìn)行mask,運(yùn)行模型可得到右邊的推理效果。

二、DINOv

2.1 論文和代碼

論文名稱:《Visual In-Context Prompting》
code:https://github.com/UX-Decoder/DINOv
demo:http://semantic-sam.xyzou.net:6099/

2.2 內(nèi)容

??上下文提示是一種利用少量示例任務(wù)來指導(dǎo)模型完成新任務(wù)的技術(shù)。在視覺任務(wù)中,這種技術(shù)可以通過提供一組帶有標(biāo)簽的圖像作為示例,來引導(dǎo)模型理解和解決新的視覺任務(wù)。
??模型通過學(xué)習(xí)少量的帶有標(biāo)簽的樣本圖像,提取出這些圖像中的關(guān)鍵特征和模式,然后利用這些特征和模式來生成針對(duì)新圖像的查詢。這個(gè)查詢可以引導(dǎo)模型在新圖像中定位并分割出目標(biāo)物體。具體來說,模型可能通過學(xué)習(xí)示例圖像中的物體形狀、顏色、紋理等特征,以及這些特征與標(biāo)簽之間的關(guān)系,來構(gòu)造出查詢。然后,模型將這個(gè)查詢應(yīng)用于其他圖像,通過匹配和比較查詢與圖像中的特征,來定位并分割出目標(biāo)物體。最終,模型會(huì)生成一個(gè)掩碼,標(biāo)記出分割出的物體區(qū)域。
??以圖片作為提示(visual prompt),在提示圖上通過筆畫、畫mask等方法作為視覺prompt,可推理出側(cè)視圖中同類目標(biāo),達(dá)到zero-shot目標(biāo)分割的效果。
在這里插入圖片描述
說明:在降落傘進(jìn)行mask標(biāo)注,在新的降落傘場(chǎng)景可分割出降落傘,其他場(chǎng)景同理

2.3 安裝部署

系統(tǒng)要求: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、啟動(dòng)DINOv
# 下載DINOv,https://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 使用效果

??通過界面輸入八張示例圖,在一些大目標(biāo)、規(guī)整目標(biāo)(如矩形、圓形),效果較好,在復(fù)雜場(chǎng)景、小目標(biāo)、不規(guī)則物體,無法達(dá)到預(yù)期效果,例如墻縫缺陷,無法分割裂縫。
在這里插入圖片描述

三、多visual prompt 改造

??使用八張圖片作為示例圖,可能無法完全學(xué)習(xí)到目標(biāo)。在實(shí)際使用中,我們可能采集到一小部分圖片,例如50張、100張等;如何讓DINOv不受限制,可支持多張輸入呢?

3.1 獲取示例圖mask

??使用labelme標(biāo)注工具,生成json標(biāo)注文件,使用下面代碼將json轉(zhuǎn)化為標(biāo)注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"  # 標(biāo)注的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 修改函數(shù)參數(shù)

修改文件路徑: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_tgt=None, text_size=640,hole_scale=100,island_scale=100):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), interpolation=Image.BICUBIC))
# 替換代碼
def task_openset(model,refer_img_list, image_tgt=None, text_size=640,hole_scale=100,island_scale=100):# 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), interpolation=Image.BICUBIC))

3.3 推理代碼

??自定義imgs_dir、mask_dir、tgt_dir,執(zhí)行代碼,可在save_dir中找到結(jié)果圖

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_help=False)parser.add_argument('--conf_files', default="configs/dinov_sam_coco_swinl_train.yaml", metavar="FILE", help='path to config file', )parser.add_argument('--ckpt', default="model_swinL.pth", metavar="FILE", help='path to ckpt')parser.add_argument('--port', default=6099, type=int, help='path to ckpt', )args = parser.parse_args()return args'''
build args
'''
args = parse_option()'''
build model
'''sam_cfg=args.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_type='cuda', dtype=torch.float16):model=model_sama= task_openset(model, refer_img_list, image2, *args, **kwargs)return a"""
讀取image和labelme標(biāo)注的mask圖
推理一整個(gè)目錄的圖片
"""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/"   # 結(jié)果保存目錄inference_dir(imgs_dir, mask_dir, tgt_dir, save_dir)

3.4 效果的提升!

??在驗(yàn)證多visual prompt對(duì)結(jié)果的影響,采用了對(duì)比實(shí)驗(yàn)。在光學(xué)鏡頭缺陷場(chǎng)景中,8張visual prompt和50張visual prompt進(jìn)行對(duì)比,50張visual prompt得到的推理效果更優(yōu)!
在這里插入圖片描述

四、總結(jié)

??如果文章對(duì)您有所幫助,記得點(diǎn)贊、收藏、評(píng)論探討??

http://m.aloenet.com.cn/news/40388.html

相關(guān)文章:

  • 怎么設(shè)置網(wǎng)站亞馬遜站外推廣網(wǎng)站
  • 不用ftp做網(wǎng)站云seo關(guān)鍵詞排名優(yōu)化軟件
  • 建網(wǎng)站的公司不肯簽合同長(zhǎng)沙網(wǎng)站制作費(fèi)用
  • wordpress 技術(shù)教程seo 關(guān)鍵詞優(yōu)化
  • 做寫真網(wǎng)站的限度游戲優(yōu)化
  • 做別人的網(wǎng)站詐騙視頻下載廣州網(wǎng)站優(yōu)化排名系統(tǒng)
  • 學(xué)校網(wǎng)站建設(shè)的風(fēng)險(xiǎn)分析微信管理系統(tǒng)登錄入口
  • 淄博網(wǎng)站制作形象培訓(xùn)網(wǎng)址
  • 建購(gòu)物的網(wǎng)站需要多少錢八零云自助建站免費(fèi)建站平臺(tái)
  • 購(gòu)物網(wǎng)站成品淘寶推廣工具
  • 人人設(shè)計(jì)網(wǎng)官方網(wǎng)站cilimao磁力貓?jiān)诰€搜索
  • wap網(wǎng)站制作軟件個(gè)人免費(fèi)推廣網(wǎng)站
  • 陜西網(wǎng)站制作電話網(wǎng)站代搭建維護(hù)
  • 用戶體驗(yàn)比較好的網(wǎng)站太原關(guān)鍵詞優(yōu)化軟件
  • 網(wǎng)站設(shè)計(jì)介紹常用的搜索引擎
  • 江蘇專業(yè)做網(wǎng)站淘寶關(guān)鍵詞排名
  • 做網(wǎng)站界面一般用什么來做廣告公司取名字參考大全
  • wordpress廣告窗插件搜索引擎優(yōu)化怎么做的
  • 企業(yè)商城網(wǎng)站 .net天津seo外包
  • 免費(fèi)英文網(wǎng)站建設(shè)學(xué)電商出來一般干什么工作
  • 深圳高端網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)鄭州企業(yè)網(wǎng)絡(luò)推廣外包
  • 建個(gè)網(wǎng)站多少錢app什么平臺(tái)可以打廣告做宣傳
  • 海南建設(shè)網(wǎng)站公司廣告文案
  • 網(wǎng)站設(shè)計(jì)錯(cuò)誤如何發(fā)布自己的廣告
  • 建設(shè)網(wǎng)站的五個(gè)步驟網(wǎng)站推廣的100種方法
  • jsp做新聞網(wǎng)站蘇州網(wǎng)站外包
  • 教務(wù)處網(wǎng)站建設(shè)西安seo推廣
  • 怎么做網(wǎng)站公司宣傳資料電商seo優(yōu)化是什么
  • ps企業(yè)站網(wǎng)站做多大的市場(chǎng)調(diào)研怎么寫
  • 在線旅游攻略網(wǎng)站建設(shè)方案關(guān)鍵詞優(yōu)化好