I think that the best way would be to call the carousel through a shortcode. Why use data?
You could also set up frontmatter parameters for the images that are called in the carousel shortcode.
And then just placing it in your content e.g. {{< owl-carousel >}}
would give you the rendered carousel.
But why use a carousel in the first place? They kind of make sense for product pics these days. Nothing beats the default way of displaying images on a page, especially on mobile.
Also regarding carousel plugins. Owl kind of sucks. There are better ones out there like Slick Carousel or if you feel confident about ditching jQuery Lory.js