Я использую облачное зрение, чтобы комментировать документы с помощью DOCUMENT_TEXT_DETECTION, и я использую только слова data.
Команда annotate возвращает много информации для каждой буквы / символа (языки, вершины, разрывы, текст, достоверность, ...), что увеличивает использование памяти. Запуск аннотации в документе на 4 страницы pages возвращает более 100 МБ данных, что превышает мой предел памяти php, что приводит к сбою сценария. Получение только слов данных, вероятно, будет примерно в 5 раз меньше.
Для ясности, я загружаю VisionClient, настраиваю изображение, запускаю команду annotate (), и она возвращает переменную размером 100 МБ, в этот момент происходит сбой, прежде чем я получаю возможность выполнить какую-либо очистку.
$vision = new VisionClient([/* key & id here */]);
$image = $vision->image(file_get_contents($imagepath), ['DOCUMENT_TEXT_DETECTION']);
$annotation = $vision->annotate($image); // Crash at that point trying to allocate too much memory.
Есть ли способ не запрашивать полные данные? Документация по аннотированию, кажется, указывает на то, что можно комментировать только часть изображения, но не бросать данные символов.
На более фундаментальном уровне я что-то не так делаю в отношении управления памятью в целом?
Спасибо
Редактировать: Только что понял: мне также нужно хранить данные в файле, который я использую с помощью serialize () ... который удваивает использование памяти при запуске, даже если я делаю $ annotation = serialize ($ annotation) для Избегайте двух переменных. Так что на самом деле мне нужно 200 МБ на пользователя.
¹ Хотя это связано с количеством текста, а не количеством страниц.