【飞桨】paddle 目标检测第一天笔记

【飞桨】paddle 目标检测第一天笔记
paddle 目标检测第一天笔记:

基础知识:

#------ leave layer (input or pump)
x = fluid.layers.data(name='x', shape=[13], dtype='float32')
x = fluid.layers.create_tensor(name='x', shape=[13], dtype='float32')
y = fluid.layers.data(name='y', shape=[1], dtype='float32')

#------ hidden layer (hidden or result)
hidden1 = fluid.layers.fc(input=x, size=100, act='relu')
hidden2 = fluid.layers.fc(input=hidden1, size=100, act='relu')
output  = fluid.layers.fc(input=hidden2, size=1, act=None)

#------ loss func
cost = fluid.layers.square_error_cost(input= output, label=y)

#------ optimizer
optimizer = fluid.optimizer.SGDOptimizer(learning_rate=0.01)
opts = optimizer.minimize(cost)

#------ run
place = fluid.CPUPlace()
# place = fluid.CUDAPlace()
exe = fluid.executor.Executor(place)
exe.run(fluid.default_startup_program())

#------ net forward
result = exe.run(program=test_program,
                 feed={'x': test_data, 'y': np.array([[0.0]]).astype('float32')},
                 fetch_list=[net])
feed={'name': }
# feed 输入叶子数据, 可以是np.array的形式, 这个维度输出是真的神奇

理论知识:

目标检测:

分类+定位, 多分类+定位, 分类+3d定位

缺陷检测:

光照, 密集, 遮挡, 重叠, 瑕疵小,多尺度的问题(物体尺度)

数据集信息:

Pascal VOC格式数介绍

VOC数据格式的目标检测数据,是指每个图像文件对应一个同名的xml文件,xml文件中标记物体框的坐标和类别等信息。

Pascal VOC比赛对目标检测任务,对目标物体是否遮挡、是否被截断、是否是难检测物体进行了标注。对于用户自定义数据可根据实际情况对这些字段进行标注。

├── annotations
│   ├── road0.xml
│   ├── road100.xml
│    ...
├── images
│   ├── road0.png
│   ├── road100.png
│    ...
├── label_list.txt
├── train.txt
└── valid.txt

label_list.txt:

speedlimit
crosswalk
trafficlight
stop

train.txt/valid.txt:

./images/road839.png ./annotations/road839.xml
./images/road363.png ./annotations/road363.xml
./images/road148.png ./annotations/road148.xml
...

xml文件中包含以下字段:

  • filename,表示图像名称。

    <filename>road650.png</filename>
    
  • size,表示图像尺寸。包括:图像宽度、图像高度、图像深度

    <size>
      <width>300</width>
      <height>400</height>
      <depth>3</depth>
    </size>
    
  • object字段,表示每个物体。包括

    • name: 目标物体类别名称
    • pose: 关于目标物体姿态描述(非必须字段)
    • truncated: 目标物体目标因为各种原因被截断(非必须字段)
    • occluded: 目标物体是否被遮挡(非必须字段)
    • difficult: 目标物体是否是很难识别(非必须字段)
    • bndbox: 物体位置坐标,用左上角坐标和右下角坐标表示:xminyminxmaxymax

~/data/data49531/roadsign_voc.tar解压到PaddleDetection/dataset/roadsign_voc下.

代码解释:

-u : force the stdout and stderr streams to be unbuffered;
this option has no effect on stdin; also PYTHONUNBUFFERED=x

–eval Whether to perform evaluation in train

python -u tools/train.py -c configs/hw_configs/yolov3_mobilenet_v1_roadsign_voc_template.yml  \
                        -o use_gpu=true \
                        --use_vdl=true \
                        --vdl_log_dir=vdl_dir/scalar \
                        --eval
# -o 覆盖yml配置
# -use_vdl 设置vdl, vdl在左侧可视化加载
# --eval 训练中添加eval
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值