Skip to content

Latest commit

 

History

History
86 lines (68 loc) · 4.11 KB

README.md

File metadata and controls

86 lines (68 loc) · 4.11 KB

Python例程

目录

python目录下提供了一系列Python例程,具体情况如下:

序号 Python例程 说明
1 zeroshot_predict.py 使用opencv预处理,SAIL推理
2 clip_server.py 使用opencv预处理,SAIL推理,基于线程和队列的思想为http前后端接口提供服务

1. 环境准备

1.1 x86/arm/riscv PCIe平台

如果您在x86/arm/riscv平台安装了PCIe加速卡(如SC系列加速卡),并使用它测试本例程,您需要安装libsophon、sophon-opencv、sophon-ffmpeg和sophon-sail,具体请参考x86-pcie平台的开发和运行环境搭建arm-pcie平台的开发和运行环境搭建riscv-pcie平台的开发和运行环境搭建

此外您可能还需要安装其他第三方库:

pip3 install ftfy
pip3 install regex
pip3 install torch
pip3 install torchvision

1.2 SoC平台

如果您使用SoC平台(如SE、SM系列边缘设备),并使用它测试本例程,刷机后在/opt/sophon/下已经预装了相应的libsophon、sophon-opencv和sophon-ffmpeg运行库包。您还需要交叉编译安装sophon-sail,具体可参考交叉编译安装sophon-sail。 此外您可能还需要安装其他第三方库:

pip3 install ftfy
pip3 install regex
pip3 install torch
pip3 install torchvision

若您使用sophon-opencv,需要设置环境变量,使用sophon-opencv需要保证python版本小于等于3.8。

export PYTHONPATH=$PYTHONPATH:/opt/sophon/sophon-opencv_<x.x.x>/opencv-python

2. 推理测试

zeroshot_predict.py 不需要编译,可以直接运行,PCIe平台和SoC平台的测试参数和运行方式是相同的。 clip_server.py 是一个封装好的class,为网页后端提供接口调用服务,在web_ui文件夹中调用,详情见web_ui

2.1 参数说明

usage: zeroshot_predict.py  [--image_path IMAGE_PATH] [--text TEXT [TEXT ...]] [--image_model IMAGE_MODEL]         
                            [--text_model TEXT_MODEL] [--dev_id DEV_ID]
--image_path: 测试图片路径,也可输入整个图片文件夹的路径;
--text: 输入多段文本;
--image_model 图片编码bmodel;
--text_model 文本编码bmodel;
--dev_id: 用于推理的tpu设备id;

2.2 测试图片

图片测试实例如下,支持对整个图片文件夹进行测试。

python3 python/zeroshot_predict.py --image_path datasets --text "a diagram" "a dog" "a cat" --image_model models/BM1684X/clip_image_vitb32_bm1684x_f16_1b.bmodel --text_model models/BM1684X/clip_text_vitb32_bm1684x_f16_1b.bmodel --dev_id 0

程序运行结束后,会在命令行中打印信息,输出图片和文本的匹配度。

INFO:root:Text: a diagram, Similarity: 0.9986683130264282
INFO:root:Text: a cat, Similarity: 0.0008334724698215723
INFO:root:Text: a dog, Similarity: 0.0004982181708328426
INFO:root:-------------------Image num 1, Preprocess average time ------------------------
INFO:root:preprocess(ms): 11.55
INFO:root:------------------ Image num 1,Image Encoding average time ----------------------
INFO:root:image_encode(ms): 8.09
INFO:root:------------------ Image num 1, Text Encoding average time ----------------------
INFO:root:text_encode(ms): 26.06