Foreground Extraction

左心房为你撑大大i 提交于 2019-12-11 13:03:49

问题


I am doing some work regarding tracking a person, I am using this dataset. I am trying right now to extract foreground using background subtraction method i.e. Mean Filter

My background is like

and if I try to subtract my current frame like this

so after subtraction I am getting image like this

and after thresholding of 0.15 or 38

I get this mask

So if you notice this mask, it is splitting this foreground in to two pieces because of occlusion of person and chair. I dont know how to solve this problem. Any suggestions?


回答1:


It's not a perfect solution, but maybe it will be enough for you - on mask image find all contours, join them(usually contours are represented as vectors of points so put all contours into one vector) and then find the convex hull of connected contour (if you are using opencv - use convexHull function http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/hull/hull.html).




回答2:


It's also not a perfect solution. Please reduce the number of frames to create background image in background subtraction method it may help you. Or initialize the background subtraction structure frequently.




回答3:


If I understand you correctly, you are trying to do background subtraction using frame differences, like mean filter as you mentioned. But please keep in mind that it will only detect moving foregrounds, and manually providing threshold is difficult. I suggest you to instead try Mixture of Gaussian method, which is more effective, and implemented in OpenCV.




回答4:


To solve you particular problem of joining separate parts, use dilation http://docs.opencv.org/modules/imgproc/doc/filtering.html?highlight=dilate#dilate



来源:https://stackoverflow.com/questions/18367837/foreground-extraction

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!