Windows 安装anaconda使用modelscope开源模型进行动物识别

220 阅读3分钟

1. 安装anaconda3

1.1 安装anaconda

下载并安装Anaconda:Free Download | Anaconda

安装完成后,请验证 Anaconda 和 Python 版本。

1.2 测试安装结果

通过“开始”、“Anaconda3”、Anaconda PowerShell 提示符打开 Anaconda 管理器,并测试你的版本:

可通过运行以下命令来检查你的 Python 版本:python –-version

可通过运行以下命令来检查你的 Anaconda 版本:conda –-version

​编辑

2. 安装PyTorch

2.1 安装PyTorch

导航到PyTorch

选择相关的 PyTorch 安装详细信息:

  • PyTorch 版本 - 稳定版。
  • 你的 OS - Windows
  • 包 - Conda
  • 语言 - Python
  • 计算平台 - CPU

​编辑

2.2 打开 Anaconda 管理器,并运行安装说明中指定的命令。

​编辑

2.3 确认并完成提取所需的包。

​编辑

3. 配置环境变量

我的电脑-属性-高级系统设置-环境变量

​编辑

4. cmd下使用

​编辑

5.  安装modelscope

pip install modelscope

​编辑

6.  动物识别模型使用

6.1 直接在python环境下执行脚本

访问魔搭社区,复制代码范例粘贴执行,缺什么pip install什么,pip安装不了的就conda install:

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

animal_recognition= pipeline(
            Tasks.animal_recognition,
            model='damo/cv_resnest101_animal_recognition')
result = animal_recognition('https://pailitao-image-recog.oss-cn-zhangjiakou.aliyuncs.com/mufan/img_data/maas_test_data/dog.png')
print(result)

​编辑

6.2  将模型下载到本地执行

git clone https://www.modelscope.cn/iic/cv_resnest101_animal_recognition.git

更改加载模型路径为下载目录

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

animal_recognition= pipeline(
            Tasks.animal_recognition,
            model='E:\gimap\animalMode\cv_resnest101_animal_recognition')
result = animal_recognition("https://pailitao-image-recog.oss-cn-zhangjiakou.aliyuncs.com/mufan/img_data/maas_test_data/dog.png")
print(result)

​编辑

6.3 java调用python脚本执行(单张照片)

import java.io.*;
import java.nio.charset.StandardCharsets;
public class RunPythonScript {
    public static void main(String[] args) {
        try {
            ProcessBuilder pb = new ProcessBuilder("D:\develop\anaconda3\python.exe", "E:\gimap\animal.py","C:\Users\Bnc\Desktop\微信图片_20240326154717.png");
            pb.environment().put("PYTHONIOENCODING", "UTF-8");
            // 启动进程
            Process process = pb.start();
            // 读取Python脚本的输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
                // 将输出内容写入文本文件
            }
            reader.close();
            // 等待Python脚本执行完成
            int exitCode = process.waitFor();
            System.out.println("Python脚本执行完毕,退出码:" + exitCode);
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

6.4 Java调用python脚本执行(多张照片)

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;

public class RunPythonScript {
    public static void main(String[] args) {
        try {
            File folder = new File("E:\gimap\animalImage");
            File[] listOfFiles = folder.listFiles();

            // 创建参数列表
            List<String> command = new ArrayList<>();
            command.add("D:\develop\anaconda3\python.exe");
            command.add("E:\gimap\animal.py");

            // 将每个图片文件的路径作为参数添加到列表中
            for (File file : listOfFiles) {
                if (file.isFile()) {
                    command.add(file.getAbsolutePath());
                }
            }
            ProcessBuilder pb = new ProcessBuilder(command);
            pb.environment().put("PYTHONIOENCODING", "UTF-8");
            // 启动进程
            Process process = pb.start();
            // 读取Python脚本的输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
                // 将输出内容写入文本文件
            }
            reader.close();
            // 等待Python脚本执行完成
            int exitCode = process.waitFor();
            System.out.println("Python脚本执行完毕,退出码:" + exitCode);
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

​编辑

import sys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

animal_recognition= pipeline(
            Tasks.animal_recognition,
            model='E:\gimap\animalMode\cv_resnest101_animal_recognition')
args = sys.argv			
for arg in args[1:]:
    result = animal_recognition(arg)
    print(arg[21:],": %s" % result)

​编辑