How to train Tensorflow Object Detection images that do not contain objects?
up vote
-1
down vote
favorite
I am training an object detection network using Tensorflow's object detection,
https://github.com/tensorflow/models/tree/master/research/object_detection
I can successfully train a network based on my own images and labels.
However, I have a large dataset of images that do not contain any of my labeled objects, and I want to be able to train the network to not detect anything in these images.
From what I understand with Tensorflow object detection, I need to give it a set of images and corresponding XML files that box and label the objects in the image. The scripts convert the XML to CSV and then to another format for the training, and do not allow XML files that have no objects.
How to give an image and XML files that have no objects?
Or, how does the network learn what is not an object?
For example if you want to detect "hot dogs" you can train it with a set of images with hot dogs. But how to train it what is not a hot dog?
python tensorflow deep-learning object-detection object-detection-api
add a comment |
up vote
-1
down vote
favorite
I am training an object detection network using Tensorflow's object detection,
https://github.com/tensorflow/models/tree/master/research/object_detection
I can successfully train a network based on my own images and labels.
However, I have a large dataset of images that do not contain any of my labeled objects, and I want to be able to train the network to not detect anything in these images.
From what I understand with Tensorflow object detection, I need to give it a set of images and corresponding XML files that box and label the objects in the image. The scripts convert the XML to CSV and then to another format for the training, and do not allow XML files that have no objects.
How to give an image and XML files that have no objects?
Or, how does the network learn what is not an object?
For example if you want to detect "hot dogs" you can train it with a set of images with hot dogs. But how to train it what is not a hot dog?
python tensorflow deep-learning object-detection object-detection-api
Seems like this is an issue with the scripts we are using from github.com/datitran/raccoon_dataset they convert the ImageNet XML files to csv and then to tf-records, I will see if I can fix the scripts, assuming tf-records can train with no objects?
– James
Nov 14 at 20:10
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
I am training an object detection network using Tensorflow's object detection,
https://github.com/tensorflow/models/tree/master/research/object_detection
I can successfully train a network based on my own images and labels.
However, I have a large dataset of images that do not contain any of my labeled objects, and I want to be able to train the network to not detect anything in these images.
From what I understand with Tensorflow object detection, I need to give it a set of images and corresponding XML files that box and label the objects in the image. The scripts convert the XML to CSV and then to another format for the training, and do not allow XML files that have no objects.
How to give an image and XML files that have no objects?
Or, how does the network learn what is not an object?
For example if you want to detect "hot dogs" you can train it with a set of images with hot dogs. But how to train it what is not a hot dog?
python tensorflow deep-learning object-detection object-detection-api
I am training an object detection network using Tensorflow's object detection,
https://github.com/tensorflow/models/tree/master/research/object_detection
I can successfully train a network based on my own images and labels.
However, I have a large dataset of images that do not contain any of my labeled objects, and I want to be able to train the network to not detect anything in these images.
From what I understand with Tensorflow object detection, I need to give it a set of images and corresponding XML files that box and label the objects in the image. The scripts convert the XML to CSV and then to another format for the training, and do not allow XML files that have no objects.
How to give an image and XML files that have no objects?
Or, how does the network learn what is not an object?
For example if you want to detect "hot dogs" you can train it with a set of images with hot dogs. But how to train it what is not a hot dog?
python tensorflow deep-learning object-detection object-detection-api
python tensorflow deep-learning object-detection object-detection-api
asked Nov 8 at 21:08
James
20.5k75296
20.5k75296
Seems like this is an issue with the scripts we are using from github.com/datitran/raccoon_dataset they convert the ImageNet XML files to csv and then to tf-records, I will see if I can fix the scripts, assuming tf-records can train with no objects?
– James
Nov 14 at 20:10
add a comment |
Seems like this is an issue with the scripts we are using from github.com/datitran/raccoon_dataset they convert the ImageNet XML files to csv and then to tf-records, I will see if I can fix the scripts, assuming tf-records can train with no objects?
– James
Nov 14 at 20:10
Seems like this is an issue with the scripts we are using from github.com/datitran/raccoon_dataset they convert the ImageNet XML files to csv and then to tf-records, I will see if I can fix the scripts, assuming tf-records can train with no objects?
– James
Nov 14 at 20:10
Seems like this is an issue with the scripts we are using from github.com/datitran/raccoon_dataset they convert the ImageNet XML files to csv and then to tf-records, I will see if I can fix the scripts, assuming tf-records can train with no objects?
– James
Nov 14 at 20:10
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
An Object Detection CNN can learn what is not an object, simply by letting it see examples of images without any labels.
There are two main architecture types:
- two-stages, with first stage object/region proposal (RPN), and second - classification and bounding box fine-tuning;
- one-stage, which directly classifies and regresses BB based on the feature vector corresponding to a certain cell in the feature map.
In any case, there's a part which is responsible to decide what is an object and what's not. In RPN you have "objectness" score, and in one-stages there's the confidence of classification, where you usually a background class (i.e. everything which is not the supported classes).
So in both cases, in case a specific example in an image doesn't have any supported class, you teach the CNN to decrease the objectness score or increase the background confidence correspondingly.
Thanks for the info. The python scripts from github.com/tensorflow/models/tree/master/research/… do not allow for an image's XML file to have no objects, so must be just a script issue.
– James
Nov 13 at 15:16
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
An Object Detection CNN can learn what is not an object, simply by letting it see examples of images without any labels.
There are two main architecture types:
- two-stages, with first stage object/region proposal (RPN), and second - classification and bounding box fine-tuning;
- one-stage, which directly classifies and regresses BB based on the feature vector corresponding to a certain cell in the feature map.
In any case, there's a part which is responsible to decide what is an object and what's not. In RPN you have "objectness" score, and in one-stages there's the confidence of classification, where you usually a background class (i.e. everything which is not the supported classes).
So in both cases, in case a specific example in an image doesn't have any supported class, you teach the CNN to decrease the objectness score or increase the background confidence correspondingly.
Thanks for the info. The python scripts from github.com/tensorflow/models/tree/master/research/… do not allow for an image's XML file to have no objects, so must be just a script issue.
– James
Nov 13 at 15:16
add a comment |
up vote
1
down vote
An Object Detection CNN can learn what is not an object, simply by letting it see examples of images without any labels.
There are two main architecture types:
- two-stages, with first stage object/region proposal (RPN), and second - classification and bounding box fine-tuning;
- one-stage, which directly classifies and regresses BB based on the feature vector corresponding to a certain cell in the feature map.
In any case, there's a part which is responsible to decide what is an object and what's not. In RPN you have "objectness" score, and in one-stages there's the confidence of classification, where you usually a background class (i.e. everything which is not the supported classes).
So in both cases, in case a specific example in an image doesn't have any supported class, you teach the CNN to decrease the objectness score or increase the background confidence correspondingly.
Thanks for the info. The python scripts from github.com/tensorflow/models/tree/master/research/… do not allow for an image's XML file to have no objects, so must be just a script issue.
– James
Nov 13 at 15:16
add a comment |
up vote
1
down vote
up vote
1
down vote
An Object Detection CNN can learn what is not an object, simply by letting it see examples of images without any labels.
There are two main architecture types:
- two-stages, with first stage object/region proposal (RPN), and second - classification and bounding box fine-tuning;
- one-stage, which directly classifies and regresses BB based on the feature vector corresponding to a certain cell in the feature map.
In any case, there's a part which is responsible to decide what is an object and what's not. In RPN you have "objectness" score, and in one-stages there's the confidence of classification, where you usually a background class (i.e. everything which is not the supported classes).
So in both cases, in case a specific example in an image doesn't have any supported class, you teach the CNN to decrease the objectness score or increase the background confidence correspondingly.
An Object Detection CNN can learn what is not an object, simply by letting it see examples of images without any labels.
There are two main architecture types:
- two-stages, with first stage object/region proposal (RPN), and second - classification and bounding box fine-tuning;
- one-stage, which directly classifies and regresses BB based on the feature vector corresponding to a certain cell in the feature map.
In any case, there's a part which is responsible to decide what is an object and what's not. In RPN you have "objectness" score, and in one-stages there's the confidence of classification, where you usually a background class (i.e. everything which is not the supported classes).
So in both cases, in case a specific example in an image doesn't have any supported class, you teach the CNN to decrease the objectness score or increase the background confidence correspondingly.
answered Nov 11 at 10:06
netanel-sam
2817
2817
Thanks for the info. The python scripts from github.com/tensorflow/models/tree/master/research/… do not allow for an image's XML file to have no objects, so must be just a script issue.
– James
Nov 13 at 15:16
add a comment |
Thanks for the info. The python scripts from github.com/tensorflow/models/tree/master/research/… do not allow for an image's XML file to have no objects, so must be just a script issue.
– James
Nov 13 at 15:16
Thanks for the info. The python scripts from github.com/tensorflow/models/tree/master/research/… do not allow for an image's XML file to have no objects, so must be just a script issue.
– James
Nov 13 at 15:16
Thanks for the info. The python scripts from github.com/tensorflow/models/tree/master/research/… do not allow for an image's XML file to have no objects, so must be just a script issue.
– James
Nov 13 at 15:16
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53216162%2fhow-to-train-tensorflow-object-detection-images-that-do-not-contain-objects%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Seems like this is an issue with the scripts we are using from github.com/datitran/raccoon_dataset they convert the ImageNet XML files to csv and then to tf-records, I will see if I can fix the scripts, assuming tf-records can train with no objects?
– James
Nov 14 at 20:10