get_terms only show term if there is a post using it

get_terms should hide empty terms by default, but you can force it to setting hide_empty argument to true:

$terms = get_terms( array(
    'taxonomy' => 'image_categories',
    'hide_empty' => false,
) );