使用PPLCNet模型对车辆属性进行识别
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]}
本文介绍了如何配置PaddlePaddle和PaddleClas环境,包括创建Docker容器,安装PaddlePaddle及验证安装,可选安装Python3.8,接着讲解下载车辆属性模型并进行Python预测引擎的单张图像和批量预测。
&spm=1001.2101.3001.5002&articleId=134402296&d=1&t=3&u=744b0eaa5dde40b1a884f65ea4349879)
1867

被折叠的 条评论
为什么被折叠?



