I think you may be calling him back too much, if you constantly natter and nag at him, calling him each time he is investigating something interesting, he will learn to switch off to your voice and ignore you. Sometimes just being quiet makes you more interesting, particularly if you have liver cake in your pocket!
Go back to basics, calling him and treating him at home in the garden without distractions.
When you go out, use a higher value treat than normal, don't call him at times he is going to ignore you and you don't really need him to come. Call for success, not to fail. The only time you should be calling when he is really distracted, is when it is dangerous, or unsafe.
Accentuate the positives, so when he looks up or away from the distraction, that is the moment to call, as he is on the way back, praise him, do all the things the other posters have said, hiding is a good one and kneeling down, dogs cant resist this. If he stops as he is on the way back, stop praising, when he looks, praise again. Treat him and let him go ( good idea to take a gentle hold of his collar before you treat, or you can get a dog that will dodge away). Don't reward absolutely every time and vary your reward. Random reward is much better than a reward everytime, it keeps him keener ( think of the lottery, if you won all the time you won't bother doing it, but that odd £5 or £10, keeps you playing).
Use his food ( if it is dry), as treats, so he is hungry, vary your walks, so he doesn't get overconfident in one place. Do lots of control exercises at home, sits, downs, stays etc., so he understands you are in control ( well most of the time!). Train him to a whistle, by using the whistle each time you feed at home and then practicing at home using whistle and extra special treats.
If none of the above work and you haven't control, then you need to ask your trainer about putting him on a line and doing some work, but my bet is that it will easily improve.