> 隨著人工智慧技術的不斷發展,阿裡體育等IT大廠,推出的“樂動力”、“天天跳繩”AI運動APP,讓**雲上運動會、線上運動會、健身打卡、AI體育指導**等概念空前火熱。那麼,能否將這些在APP成功應用的場景搬上小程式,分享這些概念的紅利呢?本系列文章就帶您一步一步從零開始開發一個AI運動小程式,本 ...
隨著人工智慧技術的不斷發展,阿裡體育等IT大廠,推出的“樂動力”、“天天跳繩”AI運動APP,讓雲上運動會、線上運動會、健身打卡、AI體育指導等概念空前火熱。那麼,能否將這些在APP成功應用的場景搬上小程式,分享這些概念的紅利呢?本系列文章就帶您一步一步從零開始開發一個AI運動小程式,本系列文章將使用“雲智AI運動識別小程式插件”,請先行在微信服務市場或官網瞭解詳情。
一、插件運動檢測分析的流程
1.1、相關核心命名空間
插件關於姿態、運動檢測的能力,都包含在calc
和sports
兩個命名空間下。其中sports
命名空間下包含了所有的內置運動分析器類和運動檢測相關計時、計數的核心邏輯抽象;calc
命名空間下包含了人體姿態分析的角度、垂直、水平、視角等規則計算器、姿態相似度和關鍵點追蹤等能力,sports
也是基於此能力實現。
1.2、運動分析的過程
運動分析的過程,便是逐幀分析人體結果,當捕捉符合到要求的姿態動作,便觸發計時、計數回調。UI便可以基於此回調與用戶進行交互。
二、獲取所有的內置運動
sports.SportBase
是運動分析器抽象基類,實現了基本的計數、計時邏輯,其中SPORTS
靜態屬性包含了所有的插件內置運動。
const SportBase = AiSport.sports.SportBase;
console.log(SportBase.SPORTS);
//輸出結果
//0: {key: "Rope-Skipping", name: "跳繩"}
//1: {key: "Jumping-Jack", name: "開合跳"}
//2: {key: "Sit-Up", name: "仰卧起坐"}
//3: {key: "Push-Up", name: "俯卧撐"}
//4: {key: "Squat", name: "深蹲起"}
//5: {key: "Plank", name: "平板支撐"}
//6: {key: "Squat-Horse", name: "馬步蹲"}
二、創建一個指定的運動分析器
//調用SportBase.create靜態方法,創建一個俯卧撐運動分析器實例
const AiSport = requirePlugin("aiSport");
const SportBase = AiSport.sports.SportBase;
const sport = SportBase.create('Push-Up');
console.log(sport);
三、執行運動分析檢測
//創建俯卧撐運動分析器
const AiSport = requirePlugin("aiSport");
const SportBase = AiSport.sports.SportBase;
const sport = SportBase.create('Push-Up');
sport.onTiCK = (cnt, times) => {
console.log('運動計數變化');
console.log(cnt, times);
};
//抽幀
const context = wx.createCameraContext();
const listener = context.onCameraFrame((frame) => {
const iamge = {
width: Number(frame.width),
height: Number(frame.height),
rawData: frame.data
};
//人體識別
humanDetection.detectionAsync(image).then(human=>{
//將人體識別結果推入運動分析器
sport.pushing(human);
});
});
listener.start();
下篇將為您介紹姿態分析,敬請期待...
提供信息系統、公眾號、小程式、APP訂製開發服務
QQ:316455841
歡迎通過各種渠道咨詢瞭解,免費提供信息系統建設咨詢服務。