Chinese-CLIP 当CN-CLIPViT-B/16模型在输入与向量化图片无关的输入时,如!@#¥,仍能有结果匹配,

tf7tbtn2  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(38)
  1. 这个问题可能是由于Groma向量数据库的搜索算法在处理特殊符号时,会将其视为一个整体进行匹配。因此,当输入特殊符号时,可能会匹配到与这些符号相关的图片。为了解决这个问题,你可以尝试对输入的特殊符号进行预处理,例如将它们转换为单词或字符的组合,这样可以降低匹配到相关图片的概率。

  2. 这个问题可能是因为Groma向量数据库的相似度计算方法对于无关输入和有关系输入的处理方式不同。你可以尝试调整相似度计算方法,或者使用其他相似度计算库来提高搜索结果的准确性。

  3. 你的代码中存在一些错误,我已经帮你修正了。请参考以下修正后的代码:

import onnxruntime
from PIL import Image
import numpy as np
import torch
import argparse
import cn_clip.clip as clip
from cn_clip.clip import load_from_name, available_models
from cn_clip.clip.utils import _MODELS, _MODEL_INFO, _download, available_models, create_model, image_transform
import chromadb
import uuid

if __name__ == "__main__":
    img_sess_options = onnxruntime.SessionOptions()
    img_run_options = onnxruntime.RunOptions()
    img_run_options.log_severity_level = 2
    img_onnx_model_path = "/usr/share/kylin-datamanagement-models/cn-clip-onnx/vit-b-16.img.fp32.onnx"
    img_session = onnxruntime.InferenceSession(img_onnx_model_path,
                                               sess_options=img_sess_options,
                                               providers=["CPUExecutionProvider"])
    model_arch = "ViT-B-16"
    preprocess = image_transform(_MODEL_INFO[model_arch]['input_resolution'])
    image_path = "/home/wangyan/wangyan/ziliao/test-search/test/dog.jpeg"
    image = preprocess(Image.open(image_path)).unsqueeze(0)
qv7cva1a

qv7cva1a1#

这已经是一个困难的问题了,因为卡的相似度阈值太高,语义文本无法召回图片。如果太低,一些简单无意义的文本又会召回图片。

相关问题