ML Kit достаточно хорош для обнаружения текста на изображении и извлечения его оттуда.Но он не имеет встроенного определения «общей суммы».
Нам понадобилась та же самая функциональность, для разговора , который мы делали в Google I / O при построении трекера расходов , иэто оказалось удивительно сложно.В итоге мы использовали эту очень простую функцию, которая находит максимальное число в обнаруженном тексте:
exports.findTotal = function findTotal(detections) {
const regex = '^[$]?\s*(\\d+[\\.,]\\d{2})$';
const amounts = detections
.filter(text => text.description.match(regex))
.map(text => text.description.match(regex)[1])
.map(text => text.replace(',', '.'))
.map(text => Number(text))
.concat([0.0]);
return Math.max.apply(null, amounts);
}
Обратите внимание, что даже в нашем ограниченном тестировании это не всегда работало замечательно.Таким образом, ваш пробег может отличаться.
Полный код проекта на Github: https://github.com/puf/zero-to-app-expenses.