paddle尝试PP-Vehicle-属性识别

PP-Vehicle-属性识别

windows11环境,conda虚拟环境中运行。
官网地址:PP-Vehicle

  1. 首先安装环境->

    • conda create -n paddle python=3.7
    • conda activate paddle
      两种方式,一种是缺啥装即:
    • pip install paddlepaddle-gpu
    • pip install pyyaml
    • pip install opencv-python
    • pip install scipy
    • pip install matplotlib
    • pip install scikit-learn
    • pip install pandas
    • pip install tqdm
    • pip install shapely
    • pip install requests
    • pip install lab

    另外一种是:pip install -r requirements.txt

  2. 下载PaddleDetection代码,网址为PaddleDetection

  3. 进入到文件夹内,准备测试的视频cd C:\Users\10106\Desktop\PaddleDetection-release-2.6,随便下载一个汽车的视频,放到了demo/test.mp4

  4. 下载模型,放到pretrained/vehicle_attribute_model下,predtrain是自己创建的。其他模型最好也都下载好,解压一下

  5. 编辑配置文件deploy/pipeline/config/infer_cfg_ppvehicle.yml中VEHICLE_ATTR是用于属性识别的,将其中的model_dir替换为下载的模型。

  6. 修改配置文件中deploy/pipeline/config/infer_cfg_ppvehicle.yml 的VEHICLE_ATTR项的enable: True,以启用该功能。

  7. 运行代码python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_ppvehicle.yml --video_file=demo/test.mp4 --device=gpu,出现了个以下的问题。

  8. 测试单张图片python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_ppvehicle.yml --device=gpu --image_file=demo/car.jpg

  9. 测试文件夹中的图片python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_ppvehicle.yml --device=gpu --image_dir=demo

问题解决

  1. 第一次检测视频运行卡在了这里,单张图片可以。将paddle换成gpu版本后,提示Unable to use JDE/FairMOT/ByteTrace提示要安装lab。主要原因为环境安装时出现问题。最好使用pip install -r requirements.txt进行安装,要不然会缺包。
    在这里插入图片描述

PP-Human-行人属性识别

1.使用与上面相同的环境
2.下载对应的模型
3.运行单张图片python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_attr.yml --device=gpu --image_file=demo/hrnet_demo.jpg
4. 属性介绍

  • 性别:男、女
  • 年龄:小于18、18-60、大于60
  • 朝向:朝前、朝后、侧面
  • 配饰:眼镜、帽子、无
  • 正面持物:是、否
  • 包:双肩包、单肩包、手提包
  • 上衣风格:带条纹、带logo、带格子、拼接风格
  • 下装风格:带条纹、带图案
  • 短袖上衣:是、否
  • 长袖上衣:是、否
  • 长外套:是、否
  • 长裤:是、否
  • 短裤:是、否
  • 短裙&裙子:是、否
  • 穿靴:是、否
    可在该路径下查看标签内容PaddleDetection-release-2.6\deploy\pipeline\pphuman\attr_infer.py
    5.写了个函数把里面部分转化为中文,并且保存为txt
    def save_txt(self,result,files):
        # - Gender
        # - Age: Less than 18; 18-60; Over 60
        # - Orientation: Front; Back; Side
        # - Accessories: Glasses; Hat; None
        # - HoldObjectsInFront: Yes; No
        # - Bag: BackPack; ShoulderBag; HandBag
        # - TopStyle: UpperStride; UpperLogo; UpperPlaid; UpperSplice
        # - BottomStyle: LowerStripe; LowerPattern
        # - ShortSleeve: Yes; No
        # - LongSleeve: Yes; No
        # - LongCoat: Yes; No
        # - Trousers: Yes; No
        # - Shorts: Yes; No
        # - Skirt&Dress: Yes; No
        # - Boots: Yes; No
        txt = []
        attr_map = {'Male':'男','Female':'女',"Glasses: True":"眼镜","AgeLess18":"小于18岁","Age18-60":"18到60岁之间","AgeOver60":"大于60岁",
                    "Hat: True":"帽子","Backpack":"背包","ShoulderBag":"肩包","HandBag":"手提包","Upper: LongSleeve":"长袖上衣","Upper: ShortSleeve":"短袖上衣",
                    "LongCoat":"长外套","Trousers":"长裤","Shorts":"短裤","Skirt&Dress":"短裙","Boots":"靴子"}
        human_attr_res = result.get('attr')
        print(human_attr_res['output'])
        for human_attr in human_attr_res['output']:
            for i in range(len(human_attr)):
                if human_attr[i] in attr_map.keys():
                    # human_attr[i]  = attr_map[human_attr[i]]
                    txt.append(attr_map[human_attr[i]])
                elif "Upper:" in human_attr[i] or "Lower:" in human_attr[i]:
                    temps = human_attr[i].split(" ")
                    for temp in temps:
                        if temp in attr_map.keys():
                            txt.append(attr_map[temp])
            files[0] = files[0].replace("\\","/")
            txt_name = (files[0].split("/")[-1].split(".")[-2] + '.txt') if "." in files[0] else (files[0] + '.txt')
            with open(txt_name,"w") as file:
                # 将字典转换为字符串,以空格隔开键和值
                dict_str = ' '.join(set(txt))
                file.write(dict_str)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Bit-vehicle 测试集是一种用于测试和评估无人驾驶车辆性能的数据集。它包含了大量的图像、视频和传感器数据,涵盖了各种驾驶场景和交通条件。Bit-vehicle 测试集的目的是帮助开发者和研究人员改进和优化无人驾驶车辆的感知、决策和控制能力。 Bit-vehicle 测试集有几个主要的特点。首先,它覆盖了不同的天气条件,包括阳光明媚、多云、阴雨等。这样的多样性可以测试无人驾驶车辆在各种不同的光照和天气状况下的性能。其次,该测试集包含了各种驾驶场景,如城市街道、高速公路、乡村道路等。这样的场景多样性可以测试无人驾驶车辆在不同环境下的适应性和应对能力。此外,Bit-vehicle 测试集还包括了一些特殊且复杂的交通状况,如道路施工、交通堵塞等,以测试无人驾驶车辆在挑战性情况下的表现。 使用 Bit-vehicle 测试集,开发者和研究人员可以进行无人驾驶车辆的感知和决策算法测试、性能评估和对比实验。他们可以根据测试集提供的数据来训练和验证自己的模型,以改进和优化车辆的行为。此外,Bit-vehicle 测试集还可以为无人驾驶车辆的安全性评估和认证提供参考。通过对车辆在不同场景和条件下的表现进行综合评估,可以更好地了解车辆的潜在风险和安全隐患,为无人驾驶车辆行业的发展提供有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值