I would tackle this using a custom widget using a similar approach to what Dev User suggested.
One way to do this is to create a widget that holds all the information. In there add in the fields for :-
- image url
- image map 1 (placement of this)
- popup 1 title
- popup 1 image
- popup 1 description
- image map 2 (placement of this)
- popup 2 title
- popup 2 image
- popup 2 description
Now using this, you can get all the details you require from the CMS user and then within your custom web part/widget code you can create the HTML markup.
Once you have this, using CSS and potentially some JS, you should be able to overlay the different popups using this approach when someone clicks on the '+'.
Now if you have lots of these different image scenarios on different pages with different image maps. I would go down a more flexible route to handle this requirement. Maybe even custom page types to house this information and then a custom widget with a selector to select the page types created by the CMS user.
Hopefully this all makes sense :)