I have grainy CCTV footage that will need some amount of clean up. I request for ideas on the best way to clean out the noise. I am attaching a frame extracted from the video here for hints on the specific noise cleaning I will need. Just for context, the guy in the image robbed and brutalized a vulnerable female a couple of days back. The guy wore a COVID mask thorough out the ordeal. In the brief spell when he put the mask off, he was in a region where lighting was too poor. Hence the image that would give us a clean shot is way too grainy.
Blurry Image - No mask-Needs cleaning

Better Image, but has Mask. Image only included for context

  • $\begingroup$ Is it IR or Grayscale? $\endgroup$
    – Royi
    Nov 19 '20 at 10:22

Something pretty basic to do with good generalization would be using one of the following:

  1. The Bilateral Filter.
  2. The Non Local Means Filter.

They are easy to implement and have a decent performance on many models.

Good resource about denoising is - Which Noise Reduction Algorithms Are Used in Commercial RAW Image Processors?


This seems like a task for authorities using specialized tools and satisfying requirements for evidence.

That being said, your frames look heavily processed or compressed to me. Therefore it is hard to say what might make them «better». I assume that temporal correlation is exploited allready for noise reduction and compression, too.

Edit: My comments about processing was directed at the camera, not you. Is it an active lit near-IR cam?

If you do not want to roll your own solution, my best guess would be some commercial tool, or some set of ffmpeg tools (try asking at the doom9 forum).

Perhaps some multi-frame super resolution algorithm can improve facial features if you give it 1s of (unmasked) face frames. It probably depends on how still he stays during that period.

  • $\begingroup$ These frames are extracted from the video using VLC. No processing at all. Just instructed VLC to break video into frames. About authorities, the footage is from a part of the world where police is not that well equiped or technical. Hence I came to the experts here to seek some advice so I clean them myself and hand them back to the concerned person who will give the police an already cleaned image. $\endgroup$
    – James Bond
    Oct 20 '20 at 4:59
  • $\begingroup$ My point was that the source (cctv cam) seems to have applied heavy noise reduction and/or heavy lossy compression before generating the frames that you have grabbed using VLC. That makes it significantly harder to apply a generic solution to your problem, as generic solutions typically assume a signal with shot- or gaussian noise. $\endgroup$
    – Knut Inge
    Oct 20 '20 at 7:27
  • $\begingroup$ Is your video capture interlaced or non-interlaced? $\endgroup$
    – Ben
    Dec 5 '20 at 18:41

For image-to-image denoising in poor lightning conditions, I tend to use a combination of non-linear (often logarithmic in principle (as homomorphic filtering) with more linear decompositions to capture the appropriate scale (pyramids, wavelets). here is an example from a wavelet homomorphic filtering from early combustion taken in internal combustion engines to detect pre-ignition:

Engine combustion image enhancement with wavelet homomorphic filtering

Figures are taken from Development of Specific Tools for Analysis and Quantification of Pre-ignition in a Boosted SI Engine, 2009. Other references are given in Enhancement by adaptive wavelet shrinkage denoising.

However, it would be preferable to use all the information available from frame to frame, and look at video restoration and superresolution, for more accurate enhancement of the small patch you are interest in.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.