Determining if image subject is wearing the correct protective clothing? [closed]
Hi everyone!
I am currently working on a project whose purpose is to try and detect if a person is wearing the correct hazardous protection clothing.
Using the Kinect v2 SDK, I am able to process images to remove the background, leaving just an image of a human either in, or not in, the protective clothing.
This clothing consists of:
- White full length suit
- Vividly purple gloves
- White cover shoes
- White mesh hat
- White beard snood (preferably only if the person has a beard!)
Now, I am probably looking to implement a solution using the .NET package Emgu. So far, I have implemented a complicated algorithm which is able to blob detect one image in another. See https://www.youtube.com/watch?v=zjxWp... for the full details (including links to a source code repository).
This is all well and good but I have found real performance issues with the method. I am able to receive nearly 30 frames a second from the Kinect but after processing with the Blob Detection Algorithm, I am down to less than a single frame a second. More importantly though, I'm not sure if the algorithm would be good if the subject of the image has his/her body parts in a different position. Might need advice here.
I would like to ask the community how you would recommend implementing a clothes detection algorithm/strategy that is fairly accurate and can run in real time (possibly using parallel processing etc). I would also be interested in knowing whether there is a way to split up a human into his/her component parts and then perform the detection on each part for each item. For example, could I just get the feet and determine if they're wearing the boots etc or do you think this is better handled by the Kinect?
I'm fairly new to this whole game but I'd be delighted with any insights into the problem I'm trying to solve. I've seen a few examples included in the Emgu download but I'm not sure whether they are necessarily optimal for solving my specific problem.
Thanks so much!
Benjamin Biggs
one obvious approach I think that it would be colour segmentation...
This is an interesting thought. I considered this as an option for detecting the garishly purple gloves but I wondered whether extracting the white elements would return only the clothing items and not surrounding skin.
This might have to be the answer though because I'm not sure blob detection is a suitable candidate where the target blob can vary. For example, I don't know which side of the hand will be gloved or not.
Please could you expand on your answer a little?
as you described the uniform will have a unique white colour, which mostly will cover full body. So, you will need to apply a colour segmentation algorithm where you are gonna look for pixel values that range within the white colour boundaries. Most likely, you will also need to jump into another colour space other than the RGB one (e.g. HSV, HSI, etc..), since RGB is know not to be stable enough for such cases depending on other parameters of the environment (e.g. illumination, shadows, etc...)