基于cn-clip模型封装的本地图片搜索工具
!!!
半成品项目,bug很多。
python main.py
即可运行,在data/onnx/
目录下存放好模型文件即可。img.db文件和img.index可以先删除。在界面上选择相册目录或者配置文件里指定,然后菜单栏生成索引即可生成db和index文件,然后就可以在主界面通过文字搜索匹配图片了。
模型与预处理代码来自Chines-CLIP项目,没有二次微调。参考 https://github.com/OFA-Sys/Chinese-CLIP/blob/master/deployment.md 即可生成对应的onnx模型。或者直接下载转换好的Vit-B-16
模型,链接如下:
注: 因为现在手上没有N卡的机器,因此代码中的onnx和faiss都是使用cpu版本。
-
经过测试内存占用,程序启动后内存占用在400~600MB左右,主要占用在clipmodel.py的加载模型部分,
load_onnx_model
加载模型后占用内存较大。但每次搜索调用forward_txt
,即执行onnxruntime的推理调用后,内存会持续增长,每次搜索会增长200MB内存,多次调用后稳定在1200MB左右。问题有待解决 -
事实上最开始这个项目是使用C++ Qt实现的,但是开发完成后,发现C++版本调用onnx推理的特征与使用python推理结果有出入,而最终使用faiss进行搜索的结果和python搜索的结果完全不一致,检查了预处理步骤还是没有找到原因,等待排查问题。