Tensorflow对象检测API - 检测不戴头盔的人

问题描述 投票:0回答:2

***请注意,我之前检测到没有头盔为NA的问题已得到解决。

现在我有一个新问题,我使用了1000张图像来检测不戴头盔的人,还有1000张图像供人戴头盔,1000张图片仅供人使用。我使用SSD_mobilenet_v1_pets.config文件进行培训。

这是我的pbtxt文件

item {
    id: 1
    name: 'withouthelmet'
}
item {
    id: 2
    name: 'withhelmet'
}
item {
    id: 3
    name: 'person'
}

示例训练图像enter image description here

训练结束后我的模型检测到每辆车都是人。

enter image description here

是因为使用ssd_mobilenet模型(对于人而言id:1但是我使用id:1作为withouthelmet而id:3用于汽车但是我使用id:3用于人)

请帮我解决这个问题

tensorflow object-detection-api
2个回答
1
投票
  1. 你在配置中将num_classes设置为1吗?
  2. 请注意,min_negatives_per_image表示最小负数锚点(而不是图像),因此数据混合与此参数无关。

我不得不修改之前的答案 - 如果你向数据集添加一个背景图像(没有gt框的图像),它应该有助于减少误报。对不起,我对其他一些东西很困惑。


0
投票

您是否使用过在pet数据集上训练过的预先训练过的SSD-MobileNetV1模型?我认为你最好使用COCO数据集培训的模型,因为它有人,而不是宠物。当然,如果你训练你的模型,它也会学会检测这个人,但是因为你没有很多没有头盔的人的例子,所以从一个知道一个人的模型开始可能会更好。是。

关于你的问题,如果你只想检测没有头盔的人,你可以简单地删除pbtxt文件中的所有其他内容,

item {
  id: 1
  name: 'withouthelmet'
  display_name: 'withouthelmet'
}

将配置文件中的类别数更改为1,并微调模型。

© www.soinside.com 2019 - 2024. All rights reserved.