基于PP-ShiTuV2的轻量级图像识别系统
2025-07-03
一、简介
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
二、安装
提前准备好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请求头请求结果返回json数据,如下:
复制{ "code": 200, "info": { "result": [ //图片可能包含多个入库的图片分类内容,所以这个可能返回多个结果 { "bbox": [ //识别到的物体相对于图片的位置 "246", "210", "391", "422" ], "rec_docs": "红牛", //识别到的分类名称 "rec_scores": "0.707627" //识别的概率,0-1 } ] }, "message": "访问成功"}
四、总结
PP-ShiTuV2识别精度较好,召回率较高,可以胜任很多图片分类识别的简单场景
物体检测模型比较轻量,资源占用非常低,支持纯CPU部署,可以快速应用