SKU110K_CVPR19 货架目标检测复现详情(含自主图片测试)

源代码:https://github.com/eg4000/SKU110K_CVPR19
论文地址:https://arxiv.org/pdf/1904.00853.pdf

一、前期准备

1.运行环境

Keras == 2.2.5
keras-retinanet == 0.5.1
tensorflow-gpu == 1.15.4
numpy == 1.19.2
opencv-python == 3.1.0.5
tqdm == 4.50.2
pandas == 0.23.4
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

2.数据集

源代码中有数据集下载地址,里面包含了image和annotation
在这里插入图片描述

二、代码修改

1. 复制文件

将train.py文件 和 class_mappings.csv放置于主文件夹,方便运行

cp ./object_detector_retinanet/keras_retinanet/bin/train.py class_mappings.csv  ./

在这里插入图片描述

2. 修改数据集所在的路径

修改 ./object_detector_retinanet/utils.py 文件 中root_dir函数
在这里插入图片描述

3. 增加代码

在 ./object_detector_retinanet/utils/image.py 文件中的24-25行增加两行,避免报错

from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True

在这里插入图片描述

三、开始训练

1. train.py

相关参数的指定
在这里插入图片描述
如果未曾训练过,则:

python -u ./train.py csv           

指定gpu

python -u ./train.py --gpu 1 csv           

如果已经训练过,则可以接着最近保存的h5模型继续训练

python -u ./train.py --snapshot "SKU110K/snapshot/Thu_Feb_25_16_18_58_2021/resnet50_csv_03.h5" csv

成功的情况:
在这里插入图片描述
在这里插入图片描述

2. train_iou.py

同样将train_iou.py放入主文件夹中方便训练

cp ./object_detector_retinanet/keras_retinanet/bin/train_iou.py ./

开始训练iou

python -u ./train_iou.py --weights snapshot/Tue_May_26_08_17_14_2020/resnet50_csv_05.h5 csv

四、开始测试(SKU数据集中的test)

1. predict.py

同样将predict.py放入主文件夹

cp ./object_detector_retinanet/keras_retinanet_bin/predict.py to ./

2. 测试

python -u ./predict.py csv  "./SKU110K/snapshot/Thu_May_28_02:36:24_2020/iou_resnet50_csv_01.h5" --hard_score_rate=0.5 

某一结果:
在这里插入图片描述
结果存在的文件夹:在这里插入图片描述

五、测试自己的图片(无csv)

1.代码修改

a. 复制predict.py,重命名为predict_test_demo.py

b. 复制predict_iou.py,重命名为predict_iou_test.py

c. 修改predict_test_demo.py

  1. 注释掉predict_iou的引用,改成predict_iou_test
    在这里插入图片描述

  2. 注释掉main函数中全部含有args的部分,因为如果有了args就必须输入csv/coco等数据类型,而我们只有图片路径
    在这里插入图片描述
    在这里插入图片描述

  3. model直接加载
    在这里插入图片描述

  4. predict函数中generator换成图片文件夹路径,相应参数也进行修改
    在这里插入图片描述

d. 修改predict_iou_test.py

  1. 增加后文要用到的相关函数: preprocess_image,resize_image
    在这里插入图片描述
  2. 修改predict函数:
    修改参数,注释掉csv有关代码,添加读取文件夹下图片的代码
    在这里插入图片描述
  3. 保存
    注释掉csv有关代码,注释掉画annotation框框的代码
    在这里插入图片描述

2. 运行自己测试的图片

python -u ./predict_test_demo.py 

结果:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
效果还是不错的!

参考博客:https://blog.csdn.net/qq_35975447/article/details/106349912

猜你喜欢

转载自blog.csdn.net/poppyty/article/details/114322554