Первая статья

Итак, что у нас есть на данный момент?
В основном мы завершили наш сценарий. Это то, что я знаю до сих пор. Изображения (списки покупок) преобразованы в файл JSON или TXT.

Но данные, которые у нас есть в нашем выходном файле, необработанные. Сложно читать файл или работать с ним так, как мы хотим. Данные должны быть преобразованы в объекты js, и мы должны иметь возможность помещать эти объекты в нашу базу данных. Структура базы данных может быть скорректирована в будущем, поэтому нам нужна возможность изменять логику вывода.

В основном, мне нужны ингредиенты, относящиеся к какому-то отделу.
например, молоко, связанное с молочными продуктами, морковь, связанное с овощами.

Выглядит просто, да? Не так быстро.

Список этапов для нашего скрипта OCR

  1. ✅ Настроить проект с модулями, связанными с преобразованием OCR
  2. ✅ Исправить проблему, связанную с мелкими шрифтами, чтобы все изображения, которые у нас есть, можно было преобразовать
  3. ✅ Получить выходной файл с данными
  4. ✅ Парсинг измерений из списков
  5. Проведите тесты с разными кейсами и поймите, что все работает как надо.
  6. Наш выходной файл содержит данные из 30 изображений. Структура данных должна соответствовать нашей схеме базы данных
  7. Этот скрипт будет завершен, когда вывод будет соответствовать нашей текущей структуре базы данных.
  8. У нас есть 100 преобразованных и импортированных списков продуктов в нашу базу данных. Все импортированные данные хорошо отображаются в нашем проекте.

Данные, которые у нас есть, разделены между репозиториями.
Это дает нам возможность быть более гибкими. Наш код может использоваться разными командами.
Как я могу передавать данные между разработчиками React Frontend и командой машинного обучения.

В первой статье я упомянул плагин «выборки», который хранит данные списков покупок.
Вкратце, это плагин, который читает файл JSON и возвращает данные в формате, который нам нужен для наших проектов NodeJS.

Если у нас не будет этого плагина - будем бороться с тестированием. В этом случае мы будем вынуждены тестировать все на стороне сервера до или после импорта в базу данных. Это займет много времени и вызовет много разговоров между разными командами. С этим плагином наши команды независимы, но связаны логикой этого плагина.

Пример:
Команда ML может генерировать данные и сравнивать их с данными, которые есть в нашем плагине.
Разработчики JS могут использовать этот плагин, не думая об учетных данных, подключении к нашему API, и т.п.

Представьте себе такую ​​ситуацию - мы генерируем файл с данными из OCR-скрипта - мы импортируем его на наш сервер, и все начинает вылетать. и будет сложно отладить, где у нас есть проблема. Этот плагин пытается предотвратить это.

Наша текущая схема БД в Groceristar

Наш плагин fetch имитирует эту структуру. Данные списка покупок разделены между несколькими файлами.

Я не хочу делиться ссылками на кодовую базу в этой статье. Будет труднее понять. Все ссылки на наши репозитории Github я расскажу в следующей статье.

В идеальном мире результат должен быть примерно таким.

Структура списка покупок

Структура отделов

Состав ингредиентов

Примечание. Структура измерения сейчас спорна. На нашем сервере нет готовой и протестированной версии. Он может быть похож на этот образ.

Просто сравните массивы json из изображений выше с нашим текущим выводом ниже. Это то, что нам нужно сделать

Резюме

Итак, у нас есть код, хранящийся в нашем репозитории на Github.
У нас есть подробности о том, как это сделать.
У нас есть изображения, которые можно использовать для проверки работы скрипта.
Нам нужно чтобы отформатировать наш вывод и сделать его равным структуре, которую я показываю. Он также должен иметь хороший уровень точности, чтобы все необходимые данные из изображения Pinterest были перемещены в массив JSON.

Спасибо за чтение, пожалуйста, хлопайте в ладоши, если вам это нравится