human detection in a room
Show older comments
Dear all,
I am trying to detect human inside a room and I 've tried HOG, Background subtraction, and Viola-Jones.
now, the problem is, I am trying to detect the human continuously as well as he still in the room even if he changes his pose or still constant without any move.
the above techniques depend on the specific status such upright for HOG, motion for background subtraction, and front or back view for Viola-Jones.
any suggestion please?
thanks a lot
Answers (3)
Image Analyst
on 10 Feb 2016
0 votes
Try taking a shot of an empty room, then subtracting the images. Differences will show up but whether the difference is a human or a dog or a clock or simply a change in illumination level requires further steps.
4 Comments
Mahmoud Al-Faris
on 10 Feb 2016
Image Analyst
on 10 Feb 2016
Well yes but you have to define what you consider to be background. I suggested an empty room, not one with someone sitting still in it.
Mahmoud Al-Faris
on 12 Feb 2016
Walter Roberson
on 12 Feb 2016
If you can train against an image of the room with no human, then you can detect changes relative to that background and it is not required that you have the detector "learn" to ignore new items that do not move for a time. You still have the problem of detecting whether the non-background item is a human or not. As I remarked to one poster who dismissed that problem, "So you are designing your system to fail at science fiction conventions."
Anand
on 10 Feb 2016
0 votes
Can you say more about what you've tried - what worked and what didn't work?
It looks like you need to try a combination of vision.PeopleDetector, vision.CascadeObjectDetector and vision.ForegroundDetector (background subtraction).
For example, if the person is not moving, they can still be detected with the vision.PeopleDetector, even if the vision.ForegroundDetector misses them.
3 Comments
Mahmoud Al-Faris
on 10 Feb 2016
Anand
on 11 Feb 2016
The vision.CascadeObjectDetector has a classification model trained for profile faces. You could use this to augment the algorithms ability to detect people in side view.
Mahmoud Al-Faris
on 12 Feb 2016
Walter Roberson
on 11 Feb 2016
0 votes
What you are asking for cannot be done with just the visual spectrum.
5 Comments
Mahmoud Al-Faris
on 12 Feb 2016
Walter Roberson
on 12 Feb 2016
Have a look at this image:

Is there a human in the pictured room? At the time that the picture was taken, was there a human inside the Dalek suit, or was the Dalek one of the remote control mechanical ones that they use on the set of the TV show, or was it a still shot where they positioned the empty Dalek suit and took a picture of it? I do not ask that you count the number of humans in the image, I just ask that you detect whether there is a human in the image? The question is not whether there is an obvious human, the question is whether there is a human. If not inside a Dalek suit, perhaps hidden inside a door suit.
Okay now, how about whether there is a human in this picture:

And in this next one: Human or carving?

Mahmoud Al-Faris
on 14 Feb 2016
Image Analyst
on 14 Feb 2016
Yes, it would, and you could use the background subtraction method to identify blobs that are not part of empty room, like Walter and I both suggested. Did you try that? Or, you could use a thermal camera to detect warm things. Though if someone enters the room in a well insulated down parka, you might not see him. Sometimes I have trouble getting the doors to our building to automatically rotate and let me out if I have my coat and hood on, and I need to expose at least my head to get it to see me and rotate the revolving door.
Walter Roberson
on 14 Feb 2016
If you can have different lighting conditions then you will need to train on one picture of the room for each major difference in lighting conditions. For example if you were to train only with overhead lights on then if you were to present a picture of the same room in sunlight then the system could end up detecting the sunlight as a "new" object.
With the lighting accounted for, you can use background subtraction to detect objects that were not previously present. You cannot, however, detect if the objects are human or not. For example if someone brought in a bag of groceries, your system would be able to detect that but not whether the bag was a human or not. (Can you really tell from the center picture above that the camouflaged object is in fact a human and not a doll or a bit of paper and a pair of shoes?) As soon as you say "Well, the system should learn to ignore the bag of groceries because it doesn't move", then you are telling the system to learn to ignore a human who does not move.
Categories
Find more on Image Processing and Computer Vision in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!