# How to eliminate motion blur with realtime performance

I have a robotic system to develop, in first phase of the project I need to track an object. So I placed a geometrical marker on the object to estimate it's pose (rotation, translation). It all works fine until the target object moves a little faster and motion blur is introduced to the input images from camera.

So I have two options:

• Either deconvolve the images to remove blur before object tracking
• OR use a camera with very high frames per second

The problem is first solution is too slow for a real-time system and second option is too expensive.

Please tell me if there is a more efficient technique than older ones (Weiner, Lucy-Richardson, Blind Deconvolution) to remove motion blur. I believe there must be something, because mobile robot need real-time calculations from their camera inputs and motion blur is a common problem when robot or the target object is moving.

I'm using Python 2.7 with Opencv 3 and ROS Kinetic.

Otherwise let me know how many fps are sufficient to observe a human who can walk, run, fall from a distance of 10-20 ft. I can't go and buy a 400-1000 fps camera just to check the output.

Below are the images of some sample markers.

Actual Markers:

Blurred Image when Moving

## 1 Answer

You don't need more frames per second, you need a shorter exposure time.

• It appears that I'm unable to change exposure. I'm using a linux (Ubuntu) system with a Logitech C310 webcam. I have tried disabling auto_exposure using v4l2_ctl. v4l2-ctl -d /dev/video0 -c exposure_auto=1 I tried to set exposure in my python program using opencv's object VideoCapture VideoCapture.set(cv2.CAP_PROP_EXPOSURE,0.01) but nothing changed. – Muhammad Abdullah Aug 16 '17 at 11:39
• You probably need a new camera. – holmeski Aug 16 '17 at 12:49
• OK Now I tried using v4l2_ctl from command line to set exposure and it worked perfectly. But I'm unable to set exposure using OpenCV. – Muhammad Abdullah Aug 16 '17 at 12:56
• Hmmm. I haven't worked with this camera. Glad to here it worked! – holmeski Aug 16 '17 at 13:10
• @MuhammadAbdullah - If this answer gave you the solution you needed, please accept it by clicking the check mark to the left of the answer. This marks it as closed and helps future visitors find answers faster. – Chuck Aug 16 '17 at 17:55