源代码: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
成功的情况:
扫描二维码关注公众号,回复:
14841347 查看本文章
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
-
注释掉predict_iou的引用,改成predict_iou_test
-
注释掉main函数中全部含有args的部分,因为如果有了args就必须输入csv/coco等数据类型,而我们只有图片路径
-
model直接加载
-
predict函数中generator换成图片文件夹路径,相应参数也进行修改
d. 修改predict_iou_test.py
- 增加后文要用到的相关函数: preprocess_image,resize_image
- 修改predict函数:
修改参数,注释掉csv有关代码,添加读取文件夹下图片的代码
- 保存
注释掉csv有关代码,注释掉画annotation框框的代码
2. 运行自己测试的图片
python -u ./predict_test_demo.py
结果:
效果还是不错的!
参考博客:https://blog.csdn.net/qq_35975447/article/details/106349912