基于百度手勢識別API實現(xiàn) Android隔空手勢

前言:

百度的手勢識別目前能做到21種手勢的識別夭委,以及能做到手部關(guān)鍵點識別(手部關(guān)鍵關(guān)節(jié)點的位置坐標)杆麸。

但是目前百度手勢識別的輸入只能是圖片文件旷赖,或者是圖片的byte數(shù)據(jù)辅髓。

百度官方手勢識別文檔:

https://cloud.baidu.com/doc/BODY/s/4k3cpywrv

https://cloud.baidu.com/doc/BODY/s/Kk3cpyxeu

要實現(xiàn)隔空手勢泣崩,必須做到基于視頻流識別手勢,并轉(zhuǎn)換成Android系統(tǒng)的觸屏手勢操作洛口,如左滑矫付,右滑,放大第焰,縮小等买优。

本文基于baidu 手勢識別的API 實現(xiàn)了左滑,右滑的手勢挺举。其他的手勢原理是一樣的杀赢,可以自己設(shè)計算法開發(fā)。

接入百度sdk

  1. 首先需要注冊百度云賬號:https://cloud.baidu.com/product/body/gesture
  2. 創(chuàng)建一個新應(yīng)用湘纵,名字隨便寫可以不和實際項目的名字對應(yīng)葵陵。


    create_new_app.png

創(chuàng)建完成后,在應(yīng)用列表可以看到生成的應(yīng)用信息瞻佛,這里面的三個參數(shù)Appid, API key, Secret Key需要保存下來脱篙,之后的app接入sdk開發(fā)時會用到

app_id.png

3.下載sdk

sdk_download.png

手勢檢測demo

筆者的需求是基于攝像頭的視頻流檢測手勢,而百度手勢識別sdk的輸入只能是圖片文件或者是圖片的byte數(shù)據(jù)伤柄。輸出是手的坐標點或手勢的名稱绊困,所以這里面臨著兩個問題。

1.如何將視頻流數(shù)據(jù)轉(zhuǎn)換成圖片二進制流适刀,然后調(diào)用百度的云AI 完成手勢檢測

2.如何根據(jù)坐標點轉(zhuǎn)換成手勢

第一個問題很好解決秤朗,主要是截取攝像頭幀數(shù)據(jù),然后轉(zhuǎn)換層圖片的byte數(shù)據(jù)笔喉。核心代碼如下:

@Override
public void onSurfaceTextureUpdated(SurfaceTexture surface) {
    Bitmap bp = textureView.getBitmap();
    bp = Bitmap.createBitmap(bp, 0, 0, bp.getWidth(), bp.getHeight(), textureView.getTransform(null), true);
    if (System.currentTimeMillis() - lastTime > 1000) {
        CameraThread cameraThread = new CameraThread(bp);
        cameraThread.start();
        lastTime = System.currentTimeMillis();
    }
}

這里是將Texture的視頻流數(shù)據(jù)轉(zhuǎn)換成bitmap, 然后開啟一個線程將bitmap壓縮成jpg格式的圖片數(shù)據(jù)

對于第二個問題取视,我這邊采取的算法是:

取視頻流前后2幀的數(shù)據(jù)(間隔1秒,baidu的API有調(diào)用的時間間隔限制)常挚,發(fā)送給baidu API進行手勢識別作谭,根據(jù)手勢識別的結(jié)果,取相同的一個關(guān)節(jié)坐標點(這里我取的是下圖中0點的坐標奄毡,即手腕的中心點折欠。),第一幀的數(shù)據(jù)為初始點坐標,第二幀的數(shù)據(jù)為終點坐標锐秦,然后根據(jù)手勢中同一坐標點的變化來判斷左移還是右移咪奖。

7C05F66C7BE24484B6229AFBDE3701DE.png

Demo效果:


start_reconize.jpg
end_reconize.jpg

Demo 地址:
https://download.csdn.net/download/wxkly2020/20815557

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市酱床,隨后出現(xiàn)的幾起案子羊赵,更是在濱河造成了極大的恐慌,老刑警劉巖扇谣,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昧捷,死亡現(xiàn)場離奇詭異,居然都是意外死亡揍堕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門汤纸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衩茸,“玉大人,你說我怎么就攤上這事贮泞±愦龋” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵啃擦,是天一觀的道長囊蓝。 經(jīng)常有香客問我,道長令蛉,這世上最難降的妖魔是什么聚霜? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮珠叔,結(jié)果婚禮上蝎宇,老公的妹妹穿的比我還像新娘。我一直安慰自己祷安,他們只是感情好姥芥,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著汇鞭,像睡著了一般凉唐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上霍骄,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天台囱,我揣著相機與錄音,去河邊找鬼读整。 笑死玄坦,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播煎楣,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼豺总,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了择懂?” 一聲冷哼從身側(cè)響起喻喳,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎困曙,沒想到半個月后表伦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡慷丽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年蹦哼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片要糊。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡纲熏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锄俄,到底是詐尸還是另有隱情局劲,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布奶赠,位于F島的核電站鱼填,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏毅戈。R本人自食惡果不足惜苹丸,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望苇经。 院中可真熱鬧谈跛,春花似錦、人聲如沸塑陵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽令花。三九已至阻桅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兼都,已是汗流浹背嫂沉。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扮碧,地道東北人趟章。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓杏糙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蚓土。 傳聞我的和親對象是個殘疾皇子宏侍,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容