Sam2适配昇腾开源验证任务心得
Sam2适配昇腾开源验证任务心得
首先看了一下任务计划书:https://bbs.huaweicloud.com/blogs/437838,主要目的是将 Sam2 项目适配至华为的 Ascend(昇腾)和 Kunpeng(鲲鹏)处理器,确保其在这些硬件平台上的高效运行,也就是说验证sam2能不能在 Ascend(昇腾)和 Kunpeng(鲲鹏)处理器中运行。
开发过程
明确目的后开始熟悉模型,sam2的github网址:https://github.com/facebookresearch/segment-anything-2。
SAM 2 需要先安装后再使用。使用命令安装:
git clone https://github.com/facebookresearch/sam2.git && cd sam2
pip install -e .
下载 Checkpoints,所有模型检查点都可以通过运行以下命令来下载:
cd checkpoints && \
./download_ckpts.sh && \
cd ..
安装依赖包:
以下三个包版本必须按照要求来:python>=3.10 torch>=2.3.1 torchvision>=0.18.1
在鲲鹏cpu和欧拉操作系统下验证推理
(1)安装依赖包
先在GitHub上拉取项目到本地,按照要求安装所需依赖包,使用pip install -e .,将会下载项目所需的依赖包。
下载安装cpu版本的pytorch命令:
conda安装:
conda install pytorch torchvision cpuonly -c pytorch
(2)运行推理脚本
推理脚本为我自己创建的脚本,需在gitcode项目地址(https://gitcode.com/m0_56308334/sam2/)中下载。
运行:Python3 predict_image.py,运行时可能提示缺少某些库,按照提示安装即可。
(3)推理代码中需要修改的部分:
修改predict_image.py,将模型地址及图像地址修改为您本地的路径。
在NPU推理模型
(1)安装依赖包
使用NPU推理模型需要安装pytorch、CANN和torch_npu,
先安装CANN,参考:https://www.hiascend.com/zh/developer/download/community/result?module=cann。
torch_npu的安装参考:https://github.com/Ascend/pytorch/blob/master/README.zh.md。
下载模型和之前在cpu上步骤相同。
(2)获取代码:
首先下载GitHub上的项目代码(git clone https://github.com/facebookresearch/sam2.git)。
sam2在npu上推理的代码官方没有直接给出,我参考:https://gitee.com/guanhaoyu621/ailia-models/tree/master/image_segmentation/segment-anything-2,自己创建空白python代码文件,复制sam_image_predictor.py及segment-anything-2.py文件,在此基础上修改代码至运行成功,代码已提交至gitcode项目(https://gitcode.com/m0_56308334/sam2/overview)。之后获取gitcode项目中的代码,参考此项目说明运行。
注:numpy版本建议安装1.23左右的,不要安装2.0及以上的,会有兼容问题。
(3)涉及修改的部分
将从gitcode下载的segment-anything-2.py打开,修改以下图片的地址,修改为您存放util目录的路径。
运行命令修改,修改输入图片的路径为您保存的图片路径,修改图片的输出路径为您指定的。
1 测试结果
1.1 Cpu推理
运行脚本后输出:
1.2 Npu推理
运行程序前
运行程序后
运行命令:
运行成功后输出:
这个分割任务是分割图像中的汽车,特别是汽车的车窗(带有星星标志的部分),模型根据提供的正样本点来识别并分割出感兴趣的区域,图片分割结果:
- 点赞
- 收藏
- 关注作者
评论(0)