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

### SKU110K 数据集概述 SKU110K 是一个专门针对密集场景设计的目标检测数据集,主要用于商品识别任务。该数据集包大量来自超市的商品图片,具有丰富的尺度变化、观察角度以及光照条件差异[^1]。 #### 数据集基本信息 原始的 SKU110K 数据集由 11,762 张图像组成,其中: - 训练集:8,233 张图像 - 验证集:588 张图像 - 测试集:2,941 张图像 总计包约 1,733,678 个目标实例。所有图像均被调整至 1 百万像素分辨率,适合高效处理和分析。由于其高密度特性,大部分目标实例呈现紧密排列的状态,通常具有 [15, 15] 的特定方向[^3]。 #### 扩展版 SKU110K-R 数据集 为了进一步提升模型性能并增加多样性,SKU110K 被扩展为 SKU110K-R 数据集。此版本通过对原图进行多角度旋转(如 -45°、-30°、-15°、15°、30° 和 45°),并通过众包方式重新标注边界框完成构建。 --- ### 下载与使用指南 #### 官方资源获取 目前官方并未提供直接公开下载链接,但可以通过以下途径尝试访问: 1. **GitHub 或 GitCode 平台** 原始项目托管于 GitHub 上,但由于网络原因可能无法正常访问。可以考虑镜像站点 `https://gitcode.com/gh_mirrors/sk/SKU110K-DenseDet` 进行克隆操作。 ```bash git clone https://gitcode.com/gh_mirrors/sk/SKU110K-DenseDet ``` 2. **联系作者团队** 如果需要更高权限的数据集(例如 SKU110K-R),建议通过邮件或其他渠道向研究者申请授权。部分讨论区提到可通过 Issue 页面请求支持[^2]。 #### 解压与配置流程 假设已成功获得压缩包形式的数据集,则需按照如下方法准备环境: 1. 将解压后的文件放置到指定路径下,例如 YOLOv5 工程目录内的 `DataSets` 文件夹中[^5]。 2. 创建必要的子目录结构以便区分不同用途的数据分区(train、val、test)。具体命令示例如下: ```bash mkdir -p /path/to/YOLOv5/DataSets/{images,labels}/{train,val,test} ``` 3. 根据实际需求划分样本比例,并更新对应的 `.yaml` 配置文档来定义类别标签映射关系。 --- ### 技术实现注意事项 当利用此类大规模数据集训练深度学习模型时,请注意以下几点事项: - 图片预处理阶段应保持一致性的尺寸缩放策略以适配输入层规格; - 对于高度拥挤区域可引入锚点机制优化定位精度; - 可视化工具辅助验证标注质量从而减少潜在错误传播风险。 ```python import cv2 from sklearn.model_selection import train_test_split # 示例代码片段展示如何分割数据集合 def split_dataset(image_paths, label_paths, test_size=0.2): X_train, X_val, y_train, y_val = train_test_split( image_paths, label_paths, test_size=test_size, random_state=42) return (X_train, y_train), (X_val, y_val) image_list = [...] # 替换为真实路径列表 label_list = [...] (train_images, train_labels), (val_images, val_labels) = split_dataset(image_list, label_list) print(f"Training set size: {len(train_images)} Validation set size: {len(val_images)}") ```
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值