Обучающими моделями в Google Обучаемая машина Чтобы узнать наши жесты, мы могли бы Поверните руки или сделайте лицо Чтобы отправить соответствующую команду реакции API Animal Crossing.
Приложение NSO на телефоне позволяет нам отправлять команды реакции в игру. Используя инструмент под названием mitmproxy Мы могли бы знать, какие запросы отправляются с нашего телефона, и имитировать команду реакции.
brew install mitmproxy
Или использовать PIP установить mitmproxy Анкет
Запустить mitmproxy
mitmproxy
Или, если вы предпочитаете веб -интерфейс запустить Mitmweb.
mitmweb
Установите сертификат MITMProxy на свой телефон
С вашим телефоном, подключенным к тому же Интернету, что и ваш компьютер, посетите http://mitm.it/ и установите сертификат. В настройках Интернета на вашем телефоне добавьте ручный прокси, который указывает на IP -адрес вашего компьютера.
Проверка IP -адреса на вашем Mac
Настройка ручного прокси
Скачать сертификат на http://mitm.it
О> Настройках доверия сертификата> Включить сертификат
Отправка запросов через приложение Nintendo Switch
Теперь запустите приложение NSO по телефону и поиграйте с приложением Animal Crossing. Вы должны увидеть данные запроса вашего телефона через терминал MITMProxy. Мы можем начать выяснять формат запроса реакции, отправив их с нашего телефона.
Конечная точка запроса для обмена сообщениями и реакции – API/SD/V1/Сообщения Анкет Нажмите на него, и вы должны увидеть файлы cookie и формировать данные этого запроса.
Данные сообщения являются следующими.
{ "body": "Smiling", "type": "emoticon" }
Совет : Press Q В терминале MITMProxy для возвращения в список запросов.
Это некоторые из типов реакций, которые я собрал: Здравствуйте, приветствуйте, Happyflower, негатив, извиняйтесь, ага, вопросник …
Список значений реакции
Примечание: у меня сейчас нет всех реакций в моей игре. Было бы здорово, если бы кто -то мог предоставить другие значения реакции!
Доступ к API Nintendo Switch требует, чтобы сделать несколько запросов на сервер Nintendo с токеном аутентификации. Полный учебник:
Intro to Nintendo Switch REST API
Мэтью Чан ・ 17 ноября 2020 года. читать
Успешная аутентификация даст нам три значения:
- _g_token печенье
- _park_session печенье
- Аутентификация носителя токен
import requests user_auth_app_head = { 'Host': 'web.sd.lp1.acbaa.srv.nintendo.net', 'User-Agent': 'Mozilla/5.0 (Linux; Android 7.1.2; Pixel Build/NJH47D; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/59.0.3071.125 Mobile Safari/537.36', 'Accept': 'application/json, text/plain, */*', 'Connection': 'keep-alive', 'Referer': 'https://web.sd.lp1.acbaa.srv.nintendo.net/?lang=en-US&na_country=US&na_lang=en-US', 'Authorization' : 'tmp', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'en-us' } def sendReaction(reaction_value): data = { 'body': reaction_value, 'type': 'emoticon' } res = post_AC_NSOJSON(user_auth_app_head, data, 'https://web.sd.lp1.acbaa.srv.nintendo.net/api/sd/v1/messages') if res is not None: if 'status' in res: if res['status'] == 'success': return 'Reaction sent!' elif 'code' in res: if res['code'] == '4102': refresh_tokens() return sendReaction(reaction_value) if res['code'] == '3002': return 'Reaction not found' if res['code'] == '1001': return 'Animal Crossing Session Not Connected' return res def post_AC_NSOJSON(header, body, url): h = header h['Authorization'] = 'Bearer ' + tokens['ac_b'] pcookie = {} pcookie['_gtoken'] = tokens['ac_g'] pcookie['_park_session'] = tokens['ac_p'] r = requests.post(url, headers=h, cookies=pcookie, json=body) thejson = json.loads(r.text) return thejson
Проверьте и посмотрите, работает ли это:)
sendReaction('Aha')
Google Обучаемая машина Это простой в использовании онлайн-инструмент для обучения моделей для распознавания вашей речи, фото и видео. Если вы новичок в машинном обучении, я настоятельно рекомендую посмотреть 5 -минутный учебник Google Анкет
Сначала создайте Поза проекта Анкет
Выберите Веб -камера Для образцов позы. Назовите свой первый класс нейтральный и записывайте себя без каких -либо жестов. Затем добавьте дополнительные классы, такие как хлопок или размахивание. Вы можете быть настолько креативным, насколько хотите.
Когда вы закончите, нажмите на поезд. Когда обучение будет завершено, вы можете проверить модель на панели предварительного просмотра. Как только вы удовлетворены, нажмите Экспортная модель Над панелью предварительного просмотра и загрузите модель TensorFlow.
Мы можем использовать предоставленное Tensorflow.js Пример сценария Для простого пользовательского интерфейса. Скопируйте пример сценария в пустой HTML -файл и обслужите его через node.js.
npm install http-server -g cd my-pose-model http-server
Вставьте наш звонок API в прогноз () функция Конечная точка API должна направить на наш сервер Python для отправки реакции.
const confidence = 0.8; // Confidence range is 0 to 1 async function predict() { ... const prediction = await model.predict(posenetOutput); for (let i = 0; i < maxPredictions; i++) { const classPrediction = prediction[i].className + ": " + prediction[i].probability.toFixed(2); // Insert the API call here if (prediction[i].probability > confidence) { callReaction(prediction[i].className); } labelContainer.childNodes[i].innerHTML = classPrediction; } // finally draw the poses drawPose(pose); }; let clapping = 0; const threshold = 5; // number of times of detection to run API async function callReaction(predictionClassName) { if (predictionClassName == 'Clapping') { clapping += 1 if (clapping > threshold) { fetch('https://myapi.com/?reaction=Clapping'); // Change to your own API endpoint clapping = 0; // reset for threshold } } }
Будьте креативны и получайте удовольствие!
- Обратный инженер частных API с MITMProxy
- Отправить запросы API с помощью Python
- Используйте обучаемую машину Google для прототипирования ML
Настройка MITMProxy на MacOS для перехвата HTTPS запросов
Оригинал: “https://dev.to/mathewthe2/doing-animal-crossing-reactions-with-gestures-in-teachable-machine-1h8m”