PaddleClas学习2——使用PPLCNet模型对车辆朝向进行识别(python)

使用PPLCNet模型对车辆朝向进行识别

  • 1. 配置PaddlePaddle,PaddleClas环境
  • 2. 准备数据
    • 2.1 标注数据格式
    • 2.2 标注数据
  • 3. 模型训练
    • 3.1 修改配置文件
    • 3.2 训练、评估
  • 4 模型预测

1. 配置PaddlePaddle,PaddleClas环境

安装:请先参考文档 环境准备 配置 PaddleClas 运行环境。

2. 准备数据

首先从VeRi数据集官网中申请并下载数据。

2.1 标注数据格式

参考:基于PP-Vehicle的交通监控分析系统
VeRi数据集标注了车辆的10种属性,其中10种车辆颜色,9种车型属性,具体如下:

# 车辆颜色
- "yellow"
- "orange"
- "green"
- "gray"
- "red"
- "blue"
- "white"
- "golden"
- "brown"
- "black"
# 车型
- "sedan"
- "suv"
- "van"
- "hatchback"
- "mpv"
- "pickup"
- "bus"
- "truck"
- "estate"

在标注文件中使用长度为19的序列来表示上述属性。
举例:
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]

前10位中,位序号0的值为1,表示车辆颜色为"yellow"。

后9位中,位序号11的值为1,表示车型为"suv"。
现在定义一种新的属性车辆朝向,包含forward、sideward、backward三个属性,因此要在上述19位标志的后面增加3位分别对应上面的3个方向。
新的属性定义变成了[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1].(括号内为新增属性位,最后一位为1,表示朝向为backward)

2.2 标注数据

(1)创建list_direction.txt,添加内容:

1 forward
2 sideward
3 backward

(2)修改train_label.xmltest_label.xml,添加directionID字段,如下:

PaddleClas学习2——使用PPLCNet模型对车辆朝向进行识别(python)_第1张图片
其中directionID1表示车头朝前,2表示车辆水平,3表示车头朝后

(3)转换label,生成train_list.txt
可以在python终端中执行下面的命令,也可以将其写入一个文件,然后使用python convert.py的方式运行该文件。

import os
from xml.dom.minidom import parse

vehicleids = []

def convert_annotation(input_fp, output_fp, subdir):
    in_file = open(input_fp)
    list_file = open(output_fp, 'w')
    tree = parse(in_file)

    root = tree.documentElement

    for item in root.getElementsByTagName("Item"):  
        label 

你可能感兴趣的:(PaddleClas分类实战,paddlepaddle,paddle,分类算法)