Сначала загружаем картинку на сервер, получаем ее адрес.
Адрес вставляем в curl : вида:
https://ya.ru/images/search?rpt=imageview&url=https://yuai.ru/media/authors/1/m/1-1697029954.jpeg
Получаем контент.
Если есть определение из объекта с классом CbirObjectResponse можно взять его. Это описание с Википедии или что-то подобное.
Если есть, собираем текст из элементов с классом Tags-Item в массив.
Если ничего нет, собираем все атрибуты alt изображений в массив.
Составляем рейтинг подсчитывая количество совпадений слов в массиве.
Победитель рейтинга становится описанием изображения.
Также можно блокировать контент 18+.