Loop through all media library images and return those where caption contains the text carousel

You could do this pretty easily with a simple query:

global $wpdb;
$results = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE '%carousel%'");
foreach($results as $result){
    //$result->post_id will give you the original attachment post
}