Узнайте, как создавать интеллектуальные мобильные приложения с помощью платформы Flutter и методов машинного обучения.
Машинное обучение — это область исследования, позволяющая компьютерам обучаться без явного программирования. Тем не менее, мы увидим это дальше вкратце.
Содержание:-
Машинное обучение — введение
Flatter с машинным обучением
Установка
Создать модель
Этапы создания модели
Реализация кода
Окончательный результат
Заключение
Читать мои блоги
Ссылка на Github
Машинное обучение:-
Машинное обучение имеет богатую историю, уходящую в прошлое столетие, и стало неотъемлемой частью нашей повседневной жизни. Он настолько распространен, что мы часто сталкиваемся с ним, даже не осознавая этого. Взять, к примеру, смартфоны. Их называют «умными», потому что они постоянно учатся на наших взаимодействиях и адаптируются к нашим предпочтениям. Они собирают информацию о нас и используют ее для предоставления персонализированного опыта. Это выходит за рамки смартфонов и пронизывает различные технологии. Алгоритмы машинного обучения постоянно развиваются, как и люди, поскольку они анализируют данные и выявляют закономерности, чтобы делать прогнозы и улучшать процесс принятия решений. Его охват обширен, он влияет на многие области технологий и значительно улучшает нашу жизнь.
Машинное обучение — это область искусственного интеллекта (ИИ), которая фокусируется на разработке алгоритмов и моделей, которые позволяют компьютерам учиться и делать прогнозы или решения на основе данных без явного программирования. Он включает в себя разработку математических и статистических моделей, которые могут анализировать большие объемы данных, выявлять закономерности и делать обоснованные прогнозы или предпринимать действия.
В машинном обучении компьютеры обучаются с использованием примеров данных, называемых обучающим набором, для изучения закономерностей и взаимосвязей в данных. Затем модели используются для прогнозирования или принятия решений на основе новых невидимых данных.
Машинное обучение имеет различные приложения, включая, помимо прочего, распознавание изображений и речи, обработку естественного языка, системы рекомендаций, обнаружение мошенничества, автономные транспортные средства и прогнозную аналитику. Он играет решающую роль в том, чтобы позволить компьютерам учиться и совершенствоваться на основе опыта, что приводит к интеллектуальному и основанному на данных принятию решений.
Машинное обучение широко используется в различных аспектах нашей повседневной жизни. Вот несколько распространенных примеров:
– Виртуальные помощники. Виртуальные помощники, такие как Siri, Google Assistant и Alexa, используют алгоритмы машинного обучения, чтобы понимать голосовые команды и реагировать на них, давать рекомендации и выполнять задачи на основе взаимодействия с пользователем.
– Системы рекомендаций. Такие платформы, как Netflix, Amazon и Spotify, используют машинное обучение для анализа предпочтений и поведения пользователей, предлагая персонализированные рекомендации фильмов или телепередач, рекомендации продуктов и настраиваемые плейлисты.
— Обнаружение мошенничества. Финансовые учреждения используют машинное обучение для обнаружения и предотвращения мошеннических действий путем анализа шаблонов и аномалий в транзакциях, выявления подозрительного поведения и оповещения пользователей или принятия необходимых мер.
— Распознавание изображений и речи. Машинное обучение обеспечивает работу систем распознавания лиц, используемых для разблокировки смартфонов или пометки людей на фотографиях. Он также поддерживает технологии распознавания речи, такие как службы транскрипции, голосовые помощники и устройства с голосовым управлением.
— Обработка естественного языка (NLP). Методы NLP, ветвь машинного обучения, используются в службах языкового перевода, анализе настроений, чат-ботах и голосовых интерфейсах, делая общение более эффективным и интуитивно понятным.
– Здравоохранение. Алгоритмы машинного обучения используются в анализе медицинских изображений, диагностике заболеваний, персонализированной медицине и разработке лекарств, помогая в раннем выявлении, планировании лечения и научных исследованиях.
— Социальные сети и реклама. Платформы социальных сетей используют алгоритмы машинного обучения для персонализации каналов контента, таргетинга рекламы на основе предпочтений и поведения пользователей, а также для обнаружения спама или оскорбительного контента.
— Автономные транспортные средства. Машинное обучение играет решающую роль в автономных транспортных средствах, обеспечивая обнаружение объектов, предотвращение столкновений, определение полосы движения и принятие решений на основе данных с датчиков в реальном времени.
Флаттер с машинным обучением: -
Flutter с машинным обучением — это сочетание платформы Flutter и методов машинного обучения в разработке приложений. Flutter — это платформа пользовательского интерфейса с открытым исходным кодом, разработанная Google для создания кроссплатформенных приложений. Это позволяет разработчикам создавать красивые и производительные приложения для нескольких платформ, используя единую кодовую базу.
В сочетании с машинным обучением Flutter позволяет интегрировать возможности ИИ в мобильные приложения. Разработчики могут использовать библиотеки машинного обучения, API и модели для включения таких функций, как распознавание изображений, обработка естественного языка, анализ настроений, системы рекомендаций и многое другое.
Используя Flutter с машинным обучением, разработчики могут создавать мощные и интеллектуальные мобильные приложения, которые могут понимать, анализировать и делать прогнозы на основе пользовательских данных или входных данных в режиме реального времени. Это сочетание открывает возможности для разработки интеллектуальных и персонализированных приложений, которые могут предоставлять расширенные функции, улучшать взаимодействие с пользователем и автоматизировать задачи с использованием алгоритмов и моделей машинного обучения.
Монтаж:-
Существует так много пакетов для реализации машинного обучения в проектах Flutter. Сегодня мы будем использовать tflite.
Теперь давайте выполним шаги по импорту tfilte в наш проект.
Импортируйте последнюю версию пакета tflite в файл pubspec.yaml.
dependencies: tflite: ^1.1.2
Перейдите к файлу ›build.gradle ›приложения ›android, добавьте блок aaptOptions и измените minSdkVersion на 19
aaptOptions { noCompress 'tflite' noCompress 'lite' } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.otp_autofill_demo" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. minSdkVersion 19 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName }
Добавить разрешение на Интернет в файл android›app›src›main›AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
Создать модель: -
Модель относится к предварительно обученной модели машинного обучения, которая используется в приложении Flutter для выполнения таких задач, как распознавание изображений, обработка естественного языка или анализ данных.
Файл модели содержит изученные параметры и структуру обученной модели. Обычно он сохраняется с определенным расширением файла, например .tflite
для моделей TensorFlow Lite. Затем этот файл загружается и используется в приложении Flutter для выполнения прогнозов или выводов по новым данным.
Существует так много способов создать собственную модель TensorFlow Lite. Я предпочел Обучаемую машину. Это веб-инструмент от Google, который позволяет быстро и легко создавать модели машинного обучения без каких-либо знаний или кода, доступного для всех.
Шаги для создания модели: -
— Перейти на https://teachablemachine.withgoogle.com/
— В демонстрационном проекте ниже я покажу реализацию функции распознавания изображений с использованием машинного обучения. Поэтому я выбрал вариант «Image Project».
— Предоставьте образцы всех сценариев, в которых вы хотите, чтобы вещи/себя распознавались, и, наконец, обучите свою модель. После этого загрузите модель TensorFlow Lite с типом преобразования с плавающей запятой.
— Извлеките файлы и вставьте их в активы/папки.
— Не забудьте добавить раздел ресурсов в файл pubspec.yaml, вот так
flutter: uses-material-design: true assets: - assets/images/ - assets/labels.txt - assets/model_unquant.tflite
Теперь давайте углубимся в реализацию кода, чтобы определить, носит ли человек очки. Ниже вы найдете основные фрагменты кода для реализации этой функциональности.
Реализация кода: -
основной. дротик
void main() => runApp(const MaterialApp( home: MyApp(), debugShowCheckedModeBanner: false, ));
MyApp.dart
class MyApp extends StatefulWidget { const MyApp({super.key}); @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State<MyApp> { String backgroundImage = "assets/images/background.jpg"; ImagePicker imagePicker = ImagePicker(); File? _image; double? _imageWidth; double? _imageHeight; var _recognitions; //needs to be called at very first loadModel() async { Tflite.close(); try { String? res = await Tflite.loadModel( model: "assets/model_unquant.tflite", labels: "assets/labels.txt", numThreads: 2, isAsset: true, useGpuDelegate: false); } on PlatformException { debugPrint("Failed to load the model"); } } // run prediction using TFLite on given image Future predict(File image) async { var recognitions = await Tflite.runModelOnImage( path: image.path, imageMean: 0.0, imageStd: 255.0, numResults: 2, threshold: 0.6, asynch: true // defaults to true ); debugPrint("Recognitions:--$recognitions"); setState(() { _recognitions = recognitions; }); } // send image to predict method selected from gallery or camera sendImage(File image) async { // if(image == null) return; await predict(image); // get the width and height of selected image FileImage(image) .resolve(const ImageConfiguration()) .addListener((ImageStreamListener((ImageInfo info, bool _) { setState(() { _imageWidth = info.image.width.toDouble(); _imageHeight = info.image.height.toDouble(); _image = image; }); }))); } // select image from gallery selectFromGallery() async { var image = await imagePicker.pickImage(source: ImageSource.gallery); if (image == null) return; setState(() {}); File fileImage = await CommonUtils.convertXFileToFile(image); sendImage(fileImage); } // select image from camera selectFromCamera() async { var image = await imagePicker.pickImage(source: ImageSource.camera); if (image == null) return; setState(() {}); File fileImage = await CommonUtils.convertXFileToFile(image); sendImage(fileImage); } @override void initState() { super.initState(); loadModel().then((val) { setState(() {}); }); } Widget printValue(rcg) { //Print data in your screen accordingly. } @override Widget build(BuildContext context) { Size size = MediaQuery .of(context) .size; double finalW; double finalH; if (_imageWidth == null && _imageHeight == null) { finalW = size.width; finalH = size.height; } else { double ratioW = size.width / _imageWidth!; double ratioH = size.height / _imageHeight!; finalW = _imageWidth! * ratioW * .85; finalH = _imageHeight! * ratioH * .50; } return Scaffold(...); }
Полный код этой реализации можно найти по ссылке на GitHub ниже. Ссылка на главную ветку.
Окончательный вывод: -
Заключение:-
В этой статье мы рассмотрели захватывающее пересечение Flutter и машинного обучения, что дало вам возможность создавать свои проекты, использующие возможности искусственного интеллекта. Я надеюсь, что вы нашли это путешествие познавательным и приятным. Теперь, вооружившись знаниями о Flutter и машинном обучении, раскройте свой творческий потенциал и начните свои уникальные проекты в области искусственного интеллекта.
❤ ❤ Спасибо, что прочитали эту статью ❤❤
Если я что-то не так? Дай мне знать в комментариях. Я хотел бы улучшить.
Хлопайте 👏 Если вам поможет эта статья.
Читайте мои другие блоги:
Ссылка на гитхаб: -
Не стесняйтесь связаться с нами:
И читайте больше статей на FlutterDevs.com.
Команда разработчиков Flutter FlutterDevs создает высококачественные и многофункциональные приложения. Наймите разработчика Flutter для вашего кроссплатформенного проекта мобильного приложения Flutter на почасовой или полной занятости в соответствии с вашими требованиями! По любым вопросам, связанным с флаттером, вы можете связаться с нами через Facebook, GitHub, Twitter и LinkedIn.
Мы приветствуем отзывы и надеемся, что вы поделитесь тем, над чем работаете с помощью #FlutterDevs. Нам очень нравится видеть, как вы используете Flutter для создания красивых интерактивных веб-приложений.