By "More Semantic", it sounds like you mean "less html markup" ?
You don’t have to apply CSS to only <Div>s, if there is already an element there that could have the background image, you can do that. Heck, you can apply the BG image to the <body> and try to position it at the correct spot.
There is no semantic way to add meaningless content. You can check to see if you’re utilising all existing block-level elements for you background images. If you do need more, then add more, but don’t go overboard. It’s never ideal to add extra divs, but some complex layouts do occasionally call for it, so it isn’t completely frowned on.