In my opinion, 12.5 m accuracy is a bad start to create a good bare earth surface (DTM) from an elevation model (DEM). One would say it's impossible.
Below some hints and warning if you want to try nevertheless.
You could try using an external source (like vector based layers) to clip out the areas you spot as cars, trees, building, or more generally things you estimate are not on the ground.
You will then obtain a DEM with holes, with only ground areas. You will need to reinterpolate your DEM in the NoData areas with a reinterpolation technique from the DEM converted into a point cloud or directly from the holed DEM with NoData filling tools (Saga GIS, open source, has a fill gaps module). It will then create something looking like a DTM model.
WARNING : Beware that this technique would works efficiently if the erased areas are small and if the elevation changes are small. Should you try this in thick forest areas (like in Canada), you would obtain nothing really usable (erasing 80% of your DEM seems a bit useless...). Same thing in places where there is a lot of elevation change, the reinterpolation would just cut off the topography.
The tools exists for LIDAR based point cloud and has reference on how to do this (for example lasground) - which is not open source but usable for a try. For Arcgis based solutions, you could have a look here : ESRI LIDAR Tools help.
You would have to cheat and convert your DEM data in .las format. Then you could put in trough those tools, but i strongly doubt it works as efficiently as with LIDAR data, because a DEM like yours has not the same point density and is not made the same way : LIDAR point cloud have ground point mixed with higher points, and the tools mentioned before are specifically made to spot these areas, whereas DEM are often a continuous surface, probably interpolated from other raw data.