Благодаря достижениям, достигнутым в области современных технологий машинного обучения, стало довольно простым и гибким в разработке моделей и приложений на основе этой области. Таким образом, у вас может быть представление о том, что сфера машинного обучения требует сложных алгоритмов и огромных экспертных знаний для его проектов.
Тем не менее, в последнее время их было довольно легко разработать, так как большинство стандартных алгоритмов и моделей доступны в Интернете в виде веб-применений. В этом проекте мы будем использовать Обучаемая машина , вместе с Tensorflow.js контролировать основные действия в Google Meet Например, отключение вашего видео и специальное действие, которое будет раскрыто в более позднем ходе статьи.
Обучаемая машина
Обучаемая машина является онлайн-применением веб-применения, созданного Google Creative Labs Это облегчает Легкое и быстрое создание моделей машинного обучения Это доступно для всех в сети. Он гибкий, поскольку использует Указанные файлы или даже Захват живые примеры , который будет записан в качестве экземпляров, на основании которых будут сделаны ссылки. Вы даже можете сделать выбор, чтобы полностью использовать свои модели On-Device , без какой -либо веб -камеры или микрофона, передаваемых вне вашей системы. Преимущество в том, что вы тренируете свой компьютер, чтобы распознать свой изображения, звуки и позы от вашего личного выбора, без написания какого -либо сложного и длинного кода машинного обучения. Тогда вы можете использовать свою модель в своей собственной Проекты, приложения, веб -сайты и даже больше Анкет Он питается Tensorflow.js , которая является библиотекой с открытым исходным кодом, созданной Google Для целей машинного обучения.
Предварительные условия
Ну, самое большее, вам нужно основное знание Ванильный javascript , веб -камера, подключение к Интернету и страсть узнать что -то новое. Затем следуйте по приведенным ниже шагам и разработайте свою собственную функциональную модель, разработанную перед вашими глазами.
Проэкт
Проект находится в форме хромированного браузера-расширения, который в основном контролирует все действия на Google Meet. Статья была разделена на следующие подтопики, чтобы облегчить ваше понимание:
Шаг 1: Обучение вашей модели
Первый шаг включает в себя Создание основных моделей на обучаемой машине Анкет Модель может быть любым Изображение, поза тела или звук вашего выбора Анкет В этом проекте мы решили использовать Основная модель изображения для обучения нашего компьютера. Тем не менее, вы также можете использовать позы тела и речь, чтобы обучить свою модель иначе. Убедитесь, что изображения, позы или звуки, которые вы хотите реализовать, довольно неестественны и могут быть выполнены точно.
Теперь, чтобы начать, зайдите в Обучаемая машина сайт и нажмите на Начните Анкет Вы можете дополнительно получить доступ к нему из меню гамбургеров в верхнем левом углу домашней страницы. Вы получите следующую страницу:
Теперь вы получите варианты создания вашей модели в Интернете для обучения вашей машины. Есть три разных проекта, а именно Проект Image, аудио -проект и Pose Project Анкет Для нашей модели мы использовали Поза проекта для его реализации. Вы также можете импортировать ранее сохраненные модели из вашего Google Drive или локальная файловая система Если вы хотите использовать модель, которая была создана заранее, и хотите повторно использовать и изменить ее. Если вы хотите новую модель, просто нажмите на Поза проекта Анкет Затем сайт перенаправляет вас в пункт назначения проекта:
Во -первых, вы должны записать свои изображения в форме “Занятия” Анкет Изображения могут быть Захвачен в прямом эфире через веб -камеру , или может быть Загружено из локальной файловой системы также. Образцы изображения конкретного класса должны быть То же и повторяющийся В природе, в то время как образцы изображения, используемые в различных классах, должны быть другой так что класс может быть определен более точно и может быть распознан с легкостью.
Желательно записать не менее от 50 до 60 изображений для повышения порога точности записанного класса. Чтобы записать живые экземпляры, предоставите разрешение на вашу веб -камеру и нажмите Держись, чтобы записать кнопка, чтобы запечатлеть ваши живые изображения.
Если вам нужен бесплатный учебник о том, как записать свою модель в виде изображений, вы можете перейти к Учебник для обучения машины и нажмите на “Пойдем” для живой демонстрационной практики.
Вы можете изменить Ярлыки классов в соответствии с вашим желанием. В этом проекте мы использовали три класса, а именно: Аудио , видео и Побег , которые записаны в прямом эфире через веб -камеру. Изображения в этих классах могут быть конкретными Жесты рук, выражения лица или конкретные объекты , который может быть легко идентифицирован и распознан машиной. Чтобы добавить более двух классов, нажмите на Добавить класс Анкет После записи образцов изображения для соответствующих классов пришло время тренировать и экспортировать вашу модель.
Шаг 2: Экспорт вашей модели
После, вы создали свои соответствующие классы, нажмите на Модель поезда , который будет обучать вашу машину распознавать содержание изображений, которое будет использоваться в наших предстоящих проектах. Обучаемая машина в основном использует Алгоритмы распознавания шаблонов и включает использование:
- Статистические методы
- Структурные методы
- Шаблон сопоставление
- Подход нейронной сети
- Нечеткая модель
- Гибридные модели
После обучения вашей модели вы можете Предварительный просмотр вашей модели Перед его экспортом. Это поможет вам проверить модель перед ее реализацией в ваших проектах. Просто выполните позы в соответствии с изображениями, установленными вами, и проверьте, может ли машина их идентифицировать или нет.
Когда ваша модель была подготовлена, нажмите на Экспортная модель и экспортировать модель в форме Tensorflow.js Анкет Нажмите на Загрузите мою модель , который опубликует вашу модель онлайн и генерирует URL , где ваша модель будет размещена обучающей машиной бесплатно. Вы также можете скачать его в форме Tensorflow или Tensorflow Lite для местного использования.
Модель, используемая в проекте, живет по адресу: Модель проекта
Шаг 3: Подготовка manifest.json
Следующий шаг включает в себя создание Chrome Browser Extension Чтобы представить следующую модель на URL Google Meet. Итак, мы должны создать manifest.json Файл в каталоге браузера, который будет загружен в браузер. Итак, давайте посмотрим на файл JSON:
{ "name": "Gmeet_Controller", "description": "An extension to control Google Meet Actions using hand/facial gestures.", "permissions": ["activeTab", "storage", "tabs", "notifications"], "version": "1.0", "manifest_version": 3, "content_scripts": [{ "matches": [ "https://meet.google.com/*" ], "js": [ "src/tf.min.js", "src/teachablemachine-pose.min.js", "src/background.js" ] }] }
Вы можете установить имя , Описание и Версия Согласно вашему выбору, которая в основном является информацией, которая будет отображаться, когда вы загрузите расширение в браузер. Вы также можете хранить Значки в отдельном каталоге в вашем каталоге расширения и привнести их в браузер. URL должен быть указан в “Матчи” под сценарии контента . Вы можете установить разрешения Кроме того, если вы не хотите, чтобы расширение имело ненужный доступ к вашему системному хранению, уведомлениям и т. Д.
Шаг 4: Связывание ваших моделей с Google Meet
Теперь создайте отдельный каталог для хранения файлов javaScript (здесь src ), который сделает функциональность расширения. Скачать последнюю и обновленную версию tf.min.js и TeachableMachine-pose.min.js и поместите их в каталог.
Примечание. Этот проект также может быть выполнен с использованием NPM и пакетов пряжи, таких как «@TeachableMachine/Pose» и «@tensorflow/tfjs» или использование их CDN. Тем не менее, мы использовали Vanilla JS, чтобы сделать проект простым и удобным для начинающих.
После импорта сейчас время создать founal.js Анкет Во -первых, объявьте постоянную переменную с именем URL, которая будет содержать модельный URL, который был сгенерирован обучаемой машиной.
const URL = "https://teachablemachine.withgoogle.com/models//"; // Use your own personalized model here
Затем вы должны написать основной JavaScript, чтобы настроить кадр высота и ширина Веб -камеры, Запросить доступ с веб -камеры и продолжай Обновление кадры веб -камеры Анкет
let model, webcam, ctx, labelContainer, maxPredictions; async function init() { const modelURL = URL + "model.json"; const metadataURL = URL + "metadata.json"; model = await tmPose.load(modelURL, metadataURL); maxPredictions = model.getTotalClasses(); const size = 200; const flip = true; webcam = new tmPose.Webcam(size, size, flip); await webcam.setup(); await webcam.play(); window.requestAnimationFrame(loop); document.getElementById("webcam-container").appendChild(webcam.canvas); } async function loop(timestamp) { webcam.update(); await predict(); window.requestAnimationFrame(loop); }
Теперь мы должны написать функции, чтобы идентифицировать событие на веб -камере, сравнить его с классами моделей, и если вероятность события больше, чем пороговая вероятность, то функция выполняется.
function Audio(probability) { if (probability >= 1) { const audioButton = document.querySelectorAll(".VfPpkd-Bz112c-LgbsSe.yHy1rc.eT1oJ.tWDL4c.uaILN")[0]; if (audioButton.classList.contains("HNeRed")) { audioButton.click(); } } } function Video(probability) { if (probability >= 1) { const videoButton = document.querySelectorAll(".VfPpkd-Bz112c-LgbsSe.yHy1rc.eT1oJ.tWDL4c.uaILN")[1]; if (videoButton.classList.contains("HNeRed")) { videoButton.click(); } } } function Escape(probability) { if (probability >= 1) { const Button0 = document.querySelectorAll(".VfPpkd-Bz112c-LgbsSe.yHy1rc.eT1oJ.tWDL4c.uaILN")[0]; const Button1 = document.querySelectorAll(".VfPpkd-Bz112c-LgbsSe.yHy1rc.eT1oJ.tWDL4c.uaILN")[1]; if (Button0.classList.contains("HNeRed")) { Button0.click(); } if (Button1.classList.contains("HNeRed")) { Button1.click(); } } } async function predict() { const { pose, posenetOutput } = await model.estimatePose(webcam.canvas); const prediction = await model.predict(posenetOutput); var predictionsArray = prediction.map(function (o, i) { return { probability: o.probability.toFixed(2), event: o.className } }) var i; var min = predictionsArray[0].probability var max = predictionsArray[0].probability var event = predictionsArray[0].className; var value; for (i = 1; i < predictionsArray.length; i++) { value = predictionsArray[i].probability if (value < min) min = value; if (value > max) max = value; } const index = predictionsArray.findIndex((list) => { return list.probability == max; }) event = predictionsArray[index].event; if (event === "Audio") { Audio(max); } else if (event === "Video") { Video(max); } else if (event === "Escape"){ Escape(max); } } const webcamContainer = document.createElement("div"); webcamContainer.id = "webcam-container"; document.body.appendChild(webcamContainer); init();
Open Google Chrome и тип “Chrome://расширения” , чтобы перейти к Расширения окно. Теперь перевернуть на Режим разработчика и нажмите на Нагрузка распакована . Затем откройте файл каталог, где ваш manifest.json хранится. Расширение теперь готово к работе.
Теперь у вас может быть собственная персонализированная модель, работающая над своей системой!
Демо
Здесь вы можете кратко взглянуть на рабочую модель проекта:
Ресурсы
Вы можете дополнительно ссылаться на следующую документацию и учебные пособия, чтобы узнать больше о библиотеках и технологиях:
Кредиты: Арджу С. Мун
Вы можете найти репозиторий GitHub для вышеуказанного проекта здесь:
Ritabratadas343/gmeet_controller
Это расширение браузера, используемое для управления Google Meet с использованием выражений рук/лица.
Эта статья была написана и установлена:
Ritabrata Dasfollow
Шубхэм Шантам Раджуфоллоу
Попробуйте следующие ссылки, чтобы узнать о нас больше и держать себя в курсе последних вещей:
ДОБАТЬ А как к сообщению и Комментарий Внизу, если вам понравилась идея, и вы заинтересованы в изучении домена машинного обучения вместе с нами. Любые виды предложений и предложений ценится.
Да пребудет с вами источник! 🐧❤
Оригинал: “https://dev.to/nitdgplug/control-google-meet-with-expressions-gestures-21oo”