Using get_posts() with tax_query parameter set isn’t working with attachments

I don’t know if you’ve tried this but try adding post_status => inherit to your query. I’ve found that get_posts defaults to publish and therefore will not return any attachments, since their post_status is always inherit. The codex page on get_posts confirms this.

Edit: looking at your query again, you have term in the tax_query where it should be terms: http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters