安然小屋 安然之家

安然小屋 安然之家

基于PP-ShiTuV2的轻量级图像识别系统
2025-07-03

https://blog.luler.top/d/43


一、简介

  • PP-ShiTuV2 是一个由百度飞桨团队发布的实用轻量级通用图像识别系统,由主体检测、特征提取、向量检索三个模块构成,适用于快速构建轻量级、高精度、可落地的图像识别应用

  • image_classification是一个基于 PP-ShiTuV2 技术实现的图片分类识别系统,把相关流程封装成简单的接口,提供在线管理页面,提供API直接调用,支持Docker快速部署

  • 相关开源地址与文档,image_classification地址参考:https://github.com/luler/image_classification,PP-ShiTuV2 官方文档参考:https://github.com/PaddlePaddle/PaddleClas/tree/release/2.6/docs/zh_CN/models/PP-ShiTu

  • image_classification 项目工作原理图参考:

二、安装

  • 提前准备好Docker、docker-compose环境(这里不做赘述)

  • 拉取代码

    复制git clone https://github.com/luler/image_classification.git
  • 查看目录下的docker-compose.yml启动配置文件,配置内容如下,可以修改外部映射端口等

    复制version: "3"services:
      paddle:
    
        image: registry.cn-shenzhen.aliyuncs.com/luler/image_classification
        restart: always
        ports:      - 5000:5000
        volumes:      - .:/root/work
      nginx:
        image: nginx:1.21.6
        restart: always
        ports:      - 5566:80
        volumes:      - ./log/nginx_logs:/var/log/nginx      - ./web/dist:/home/wwwroot/web/dist      - ./static:/home/wwwroot/resource/static
          - ./config/nginx/conf.d:/etc/nginx/conf.d
  • 一键启动

    复制docker-compose up -d

    检查容器是否正常启动,如果都是UP状态即为启动成功,否则需要使用 docker-compose logs 查看启动日志,分析原因

三、使用示例

1. 使用在线管理后台,管理图片分类内容

  • 项目启动后,可以访问地址:http://127.0.0.1:5566/,默认账号:admin,密码:admin

  • 添加一个分类,比如:红牛

  • 管理这个分类的图片,添加更多照片示例,可增加建立索引后的识别准确性

    • 进入图片管理

    • 添加图片

  • 更新图片后,需要点击重建索引才能生效,这个过程会处理所有分类与关联图片,生成新的索引库

  • 索引建立成功后,就能正常识别了。可以进入识别体验菜单,进行在线识别体验,识别接口已经封装好主体检测、特征提取、向量检索过程,调用即可返回检索识别到的结果,如下:

2. 接口使用体验示例

  • 首先登录获取授权,授权接口POST:http://127.0.0.1:5566/api/login

  • 识别图片接口,接口地址POST:http://127.0.0.1:5566/api/auth/predict
    设置Authorization请求头

    上传需要识别的文件内容,file字段

    请求结果返回json数据,如下:

    复制{
      "code": 200,
      "info": {
        "result": [ //图片可能包含多个入库的图片分类内容,所以这个可能返回多个结果
          {
            "bbox": [ //识别到的物体相对于图片的位置
              "246",
              "210",
              "391",
              "422"
            ],
            "rec_docs": "红牛", //识别到的分类名称
            "rec_scores": "0.707627"
     //识别的概率,0-1
          }
        ]
      },
      "message": "访问成功"}

四、总结

  • PP-ShiTuV2识别精度较好,召回率较高,可以胜任很多图片分类识别的简单场景

  • 物体检测模型比较轻量,资源占用非常低,支持纯CPU部署,可以快速应用