PaddleClas学习1——使用PPLCNet模型对车辆属性进行识别(python)

本文介绍了如何配置PaddlePaddle和PaddleClas环境,包括创建Docker容器,安装PaddlePaddle及验证安装,可选安装Python3.8,接着讲解下载车辆属性模型并进行Python预测引擎的单张图像和批量预测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 配置PaddlePaddle,PaddleClas环境

官网: 手动配置PaddlePaddle, PaddleClas环境

1.1 安装PaddlePaddle

(1)创建 docker 容器

PaddleClas要求 PaddlePaddle版本 >=2.3,以下命令创建一个名为paddle-clas-gpu的 Docker容器,并将当前工作目录映射到容器内的 /paddle 目录。

#对于 GPU 用户
$ sudo nvidia-docker run --name paddle-clas-gpu -v $PWD:/paddle --shm-size=8G --network=host -it registry.baidubce.com/paddlepaddle/paddle:2.3.0-gpu-cuda10.2-cudnn7 /bin/bash

安装其他版本的paddle: Linux 下的 Docker 安装
本文安装的是 registry.baidubce.com/paddlepaddle/paddle:2.4.2-gpu-cuda11.2-cudnn8.2-trt8.0

(2)退出/进入 docker 容器

使用组合键 Ctrl + P + Q 退出当前容器,同时不关闭该容器;
如需再次进入容器,可使用下述命令:

$ sudo docker exec -it paddle-clas-gpu /bin/bash

(3)安装验证

使用以下命令可以验证 PaddlePaddle 是否安装成功。

import paddle
paddle.utils.run_check()

查看 PaddlePaddle 版本的命令如下:

$ python -c "import paddle; print(paddle.__version__)"

1.2 安装python3.8(可选)

容器默认python版本为3.7,若要安装python3.8按如下步骤。

$ apt-get install -y --no-install-recommends \
  python3 \
  python3-pip \
  python3-dev \
  python3-wheel &&\
cd /usr/local/bin &&\
ln -s /usr/bin/python3 python &&\
ln -s /usr/bin/pip3 pip;
# 更新pip源
# pip升级到最新的版本
$ python -m pip install --upgrade pip
# 修改pip源为清华源
$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 或者修改为阿里云的源
# 查看当前 pip 的配置
$ pip config list 
# 接着修改配置文件
$ pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
$ pip config set install.trusted-host mirrors.aliyun.com

pip安装paddle2.4.2

# CUDA 11.2
$ python -m pip install paddlepaddle-gpu==2.4.2.post112 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html

1.3 安装 PaddleClas

$ cd PaddleClas
$ pip install -r requirement.txt

2. 模型推理

2.1 下载官方提供的车辆属性模型

模型:PULC 车辆属性识别模型
测试图像: demo 数据

$ cd deploy/models
# 下载 inference 模型并解压
$ wget https://paddleclas.bj.bcebos.com/models/PULC/vehicle_attribute_infer.tar && tar -xf vehicle_attribute_infer.tar

解压完毕后,models 文件夹下应有如下文件结构:

├── vehicle_attribute_infer
│   ├── inference.pdiparams
│   ├── inference.pdiparams.info
│   └── inference.pdmodel

2.2 基于 Python 预测引擎推理

(1) 预测单张图像


$ cd deploy
# 对图像 ./images/PULC/vehicle_attribute/0002_c002_00030670_0.jpg 进行车辆属性识别
$ # 使用下面的命令使用 GPU 进行预测
python python/predict_cls.py -c configs/PULC/vehicle_attribute/inference_vehicle_attribute.yaml -o Global.use_gpu=True

输出结果如下

0002_c002_00030670_0.jpg:        {'attributes': 'Color: (yellow, prob: 0.9893465638160706), Type: (hatchback, prob: 0.9733904600143433)', 'output': [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]}

(2) 基于文件夹的批量预测
直接修改配置文件中的 Global.infer_imgs 字段,也可以通过下面的 -o 参数修改对应的配置。

# 使用下面的命令使用 GPU 进行预测,如果希望使用 CPU 预测,可以在命令后面添加 -o Global.use_gpu=False
python python/predict_cls.py -c configs/PULC/vehicle_attribute/inference_vehicle_attribute.yaml -o Global.infer_imgs="./images/PULC/vehicle_attribute/"

终端中会输出该文件夹内所有图像的属性识别结果,如下所示。

0002_c002_00030670_0.jpg:	 {'attributes': 'Color: (yellow, prob: 0.9893476963043213), Type: (hatchback, prob: 0.9734097719192505)', 'output': [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]}
0014_c012_00040750_0.jpg:	 {'attributes': 'Color: (red, prob: 0.999872088432312), Type: (sedan, prob: 0.999976634979248)', 'output': [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

waf13916

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值