Используйте возможности машинного обучения в своих приложениях

Пролог

Сегодня я решил серьезно начать изучать и улучшать свои навыки работы с Jetpack Compose, поэтому я задумался над идеей для простого проекта, который охватывает некоторые интересные темы и все основные моменты, связанные с пользовательским интерфейсом.
Итак, наконец, я подумал о возможности машинного обучения, их много, использование камеры, текст для отображения и редактирования, меню, кнопки и так далее.

Так родился ML Composer!

Распознавание текста

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

Проект



Как запустить его на устройстве Android? Просто следуйте этому руководству по подготовке.

UI

Да, составляющая часть!
У нас есть 2 составных элемента:

  • Управление разрешениями камеры с правильным макетом и состоянием с помощью Compose
  • Скрин с превью камеры (CameraX из библиотек Jetpack), с кнопкой внизу и круговым прогрессом в центре экрана.
  • Циклический прогресс управляется с помощью MutableState из самого Compose, расположенного в viewmodel, TextRecognitionViewModel.
  • Экран с выводом сканирования распознавания текста:
  • NavHostController для перехода между экранами:
setContent {            
val navController = rememberNavController()                         NavHost(navController, startDestination = NAV_MAIN) {                         composable(NAV_MAIN) { BuildCameraUI() }                composable(NAV_TEXTRECOG) { BindTextRecognitionOutput() }          
}        
}

ViewModel

Я решил использовать ViewModel, чтобы сохранить все части распознавания текста с его способностями и состояниями.
Используя LiveData для вывода (успех и неудача), я запускаю события из Activity, которое его наблюдает.



Результат

Оставайтесь с нами для следующего эпизода с еще одной потрясающей суперсилой машинного обучения!!!

Want to Connect?
Follow me on Twitter (frankStrangerZ)