Tuesday, October 1, 2019

Frame difference approach for Movement detection using Kinect and OpenCV and ROS.

Frame Difference

Movement detection is very salient feature in modern image processing based application. There are several approaches can be taken for detecting movement. Background subtraction is a well-known approach for computer vision based object detection. Therefore, there are already a lot of works in the literature focused on it. Background subtraction is very useful when the background is fixed and also the camera is stationary position.
To detect any kind of change from a camera vision or video, the difference of two consecutive frames is one of the most effective approaches. The frame difference can be defined as equation below: 
Frame Difference

f(x, y, t) is a frame at time t. The immediate next frame at (t+1) is f(x, y, t+1) and th represents the threshold value parameter for decision. Three Frame difference is an improved method from two frame difference and it uses three consecutive frames to find the difference. From the difference of three frame images, the changes or movement detection is done using the contour object.
Next two equations are for three frame difference method. The additional option is that there is a scope for adding multiple threshold value. For n frame difference method there is an option to use (n-1) threshold values which can give more flexibility to find the moving contours.
Three Frame difference

fk(x,y)is the k-th frame. T1, T2 is thresholds with different values.  and  are the binarization of two adjacent frames difference. 


ROS

Robot operating system is chosen for robot based implementation of movement detection.Robot Operating System (ROS) is an open-source, heterogeneous and scalable P2P network-based robotics framework. ROS provides wide range of libraries and tools to help software developers creating innovative robot applications in an organized pattern. The benefit of using ROS is to get some useful essential features which will reduce the development time and complexity by providing device drivers, libraries, visualizers, message-passing, package management, access to third party tools, hardware abstraction, and more. ROS is licensed under an open source, BSD license. The basic advantage of ROS is code reuse for the robotic developer and researcher in a common and generalized platform. ROS is a language-independent architecture (C++, python, lisp, java, and more), scalable platform (ARM CPUs to Xeon Clusters) and intent to enable researchers to rapidly develop new robotic systems by increasing the reusability through use of standard tools and interfaces.
There are not many Robot frameworks out there which support the development of general purpose robot software across many platforms. This makes it difficult to accomplish even simple and trivial tasks which might seem simple to humans but the Robot developer has to navigate and sort through many variations between instances of tasks and environments. Having a general purpose framework like ROS helps us to create complex and robust robot behavior across many platforms which have got the support of ROS.

No comments:

Post a Comment

Frame difference approach for Movement detection using Kinect and OpenCV and ROS.

Frame Difference Movement detection is very salient feature in modern image processing based application. There are several approaches ca...