孩子上學(xué)以后,就遇到了一個(gè)很難纏的問題:坐姿不正確。
看書還好,做作業(yè)的時(shí)候不是頭趴下去,就是身子歪歪扭扭的。
買了專門的兒童學(xué)習(xí)桌椅和那種防止低頭的支架,都不管用。
苦口婆心地?cái)[事實(shí)講道理:正處于身體生長發(fā)育的關(guān)鍵期,長期不良的坐姿對(duì)脊柱健康有著嚴(yán)重的影響。
孩子很理解,但是堅(jiān)持一會(huì)兒就忘了,恢復(fù)自己最“舒服”的坐姿。把我逼得經(jīng)常大聲訓(xùn)斥:頭抬起來!坐直!
但是父母也不能這么一直盯著,總得想想辦法。
01
自動(dòng)坐姿識(shí)別
作為程序員,必定要發(fā)揮編程的優(yōu)勢(shì),把監(jiān)督坐姿這件事兒給自動(dòng)化了。
先上網(wǎng)搜了一下,發(fā)現(xiàn)早在2019年,北郵已經(jīng)有人申請(qǐng)了專利《一種基于深度學(xué)習(xí)的人體坐姿實(shí)時(shí)監(jiān)視方法和系統(tǒng)》:
將拍攝的人體坐姿圖像實(shí)時(shí)輸入至核心處理器中;核心處理器將接收到的人體坐姿圖像作為輸入,進(jìn)入已訓(xùn)練好的Yolo3網(wǎng)絡(luò)中,輸出分類為人的包圍框,將輸出的包圍框輸入姿態(tài)估計(jì)器,通過G-RMI的網(wǎng)絡(luò)得到關(guān)鍵點(diǎn)骨架圖,將得到的骨架圖輸入分類器,得到人體坐姿圖像對(duì)應(yīng)用戶的當(dāng)前坐姿狀態(tài)......
你看,這個(gè)世界的牛人實(shí)在太多,無論你有什么新想法,總是有人比你先想到。
不過這個(gè)過程實(shí)在是復(fù)雜,我是做不來。
這兩年大模型很火爆,大模型生成文字、生成代碼、識(shí)別圖像、分析圖像已經(jīng)相當(dāng)成熟,能不能用它干點(diǎn)兒事情呢?
比如,可以開發(fā)一個(gè)App,每隔一段時(shí)間對(duì)孩子的坐姿拍一張照片,然后把照片發(fā)給讓大模型分析,看看坐姿是否正確,如果不正確App就可以語音提示。
相比專利中提到的方法,這個(gè)路子不需要我建立深度學(xué)習(xí)網(wǎng)絡(luò),分類器,臟活累活都被大模型做完了,難度一下子降低了一個(gè)數(shù)量級(jí),相當(dāng)于降維打擊了。
就這么做,開干。
02
智譜GLM-4V-Flash
坐姿識(shí)別App功能很簡(jiǎn)單,雖然我不是Android程序員,但我相信拍照語音等功能不會(huì)很復(fù)雜,在大模型的輔助下,很容易就能開發(fā)出來。
關(guān)鍵是對(duì)坐姿圖片的分析,這個(gè)一定得靠譜,不能把好的坐姿識(shí)別成壞的,更不能無法識(shí)別壞坐姿。
我又到網(wǎng)上搜索了一下,也詢問了幾個(gè)朋友,發(fā)現(xiàn)智譜的GLM-4V-Flash,它專注于高效的單一圖像理解,適用于快速圖像解析的場(chǎng)景,正好符合我的需要。
我試了一下,這個(gè)模型不錯(cuò),對(duì)圖像的分類、描述、推理都很棒。
比如我用兩個(gè)坐姿照片進(jìn)行了測(cè)試,第一個(gè)是正確坐姿,第二個(gè)是錯(cuò)誤坐姿。
可以看出對(duì)于每種情況,GLM-4V-Flash都能正確識(shí)別,并且給出更進(jìn)一步的建議。
更重要的是,幾乎所有的大模型在調(diào)用多模態(tài)能力的時(shí)候都是收費(fèi)的,而GLM-4V-Flash則完全免費(fèi)!
03
實(shí)現(xiàn)
我寫代碼的時(shí)候,喜歡先實(shí)現(xiàn)最核心的部分,這個(gè)坐姿識(shí)別最核心的自然是調(diào)用GLM-4V-Flash大模型。
于是申請(qǐng)賬號(hào),創(chuàng)建API Key,安裝智譜的SDK,這些步驟不用我展開詳細(xì)說,程序員都知道。
提示詞是這樣寫的:
指令:分析提供的照片中學(xué)生的坐姿,并在1到10分的范圍內(nèi)進(jìn)行評(píng)分。 如果坐姿大致正確,就不要因?yàn)橐恍╁e(cuò)誤的小細(xì)節(jié)而給低分,如果坐姿明顯錯(cuò)誤,一定要給出低分(5分以下) 若坐姿不理想,請(qǐng)?zhí)峁┚唧w的改進(jìn)建議。輸出結(jié)果應(yīng)采用JSON格式,包含“score”和“suggestion”兩個(gè)字段。 背景信息:照片中的學(xué)生坐在書桌前,可能正在學(xué)習(xí)。照片從側(cè)面捕捉了學(xué)生的全身坐姿。 輸出格式: { "score": [分?jǐn)?shù)], "suggestion": "[坐姿改進(jìn)建議]", }
這個(gè)提示詞是我實(shí)驗(yàn)了多次得出來的,有個(gè)關(guān)鍵點(diǎn)是“如果坐姿大致正確,就不要因?yàn)橐恍╁e(cuò)誤的小細(xì)節(jié)而給低分”,
因?yàn)槲野l(fā)現(xiàn)大模型比較嚴(yán)厲,坐姿稍微有點(diǎn)錯(cuò)誤就被它抓住,從而打低分。
輸出是個(gè)JSON格式,包含了一個(gè)坐姿的評(píng)分分?jǐn)?shù),之所以沒有用“正確”或者“不正確”這種二元的評(píng)價(jià),一方面可以增加手機(jī)App的靈活度,另一方面以后也許可以對(duì)坐姿情況進(jìn)行統(tǒng)計(jì)。
有了提示詞,調(diào)用大模型就很簡(jiǎn)單:
client = ZhipuAI(api_key="xxxxxxxx") # 填寫您自己的APIKey
response = client.chat.completions.create(
model="glm-4v-flash", # 填寫需要調(diào)用的模型名稱
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": prompt
},
{
"type": "image_url",
"image_url": {
"url" : pic_url
}
}
]
}
]
)
message = response.choices[0].message
# 讀取其中的值
content = message.content
拿一個(gè)好的坐姿圖調(diào)用一下:
{
"score": 8,
"suggestion": "學(xué)生的坐姿總體上是正確的,背部挺直,雙腳平放在地上。"
}
對(duì)錯(cuò)誤的坐姿,結(jié)果如下:
{
"score": 4,
"suggestion": "請(qǐng)注意保持背部挺直,避免長時(shí)間低頭看書或使用電子設(shè)備。"
}
你可能注意到了,GLM-4V-Flash模型現(xiàn)在不支持圖片上傳,只支持圖片鏈接,我手頭正好有個(gè)云服務(wù)器,可以把圖片上傳到那里去。
既然如此,干脆把邏輯改成這樣:
主要的邏輯都在服務(wù)器端實(shí)現(xiàn),Android端只需要調(diào)用接口即可。
服務(wù)器端的邏輯不用自己從頭寫,可以用智譜的GLM-4-Flash模型來生成。
之前一直說的GLM-4V-Flash更加偏重視覺,而GLM-4-Flash這個(gè)模型更加通用,也是免費(fèi)的。
生成的代碼還不錯(cuò),稍微改一下就可以用了:
手機(jī)端App的邏輯也不用自己寫了,讓GLM-4-Flash來幫忙吧:
其中核心的邏輯是這樣的,其他細(xì)節(jié)就不再羅列了
04
總結(jié)
可以看出,在GLM-4V-Flash和GLM-4-Flash這兩個(gè)大模型的輔助下,我快速完成了坐姿分析這個(gè)小應(yīng)用,雖然其中還有很多細(xì)節(jié)(例如界面,提示詞,API等)需要打磨,但是核心功能已經(jīng)搞定,開發(fā)效率是很高的。
作為新上線的的視覺理解模型,GLM-4V-Flash大模型是坐姿識(shí)別的核心擔(dān)當(dāng),表現(xiàn)相當(dāng)不錯(cuò),對(duì)圖像理解準(zhǔn)確,免費(fèi)好用。和同樣免費(fèi)的GLM-4-Flash搭配就是支持多模態(tài)的全家桶,后者有著128K上下文和超強(qiáng)推理能力,生成代碼對(duì)它來說就是小事一樁。
人工智能時(shí)代,建議大家都關(guān)注下大模型,關(guān)注一下GLM-4V-Flash,看看它的圖像處理能力,想一想如何把大模型融合到實(shí)際的場(chǎng)景當(dāng)中,也許能發(fā)掘出屬于你自己的場(chǎng)景,提升工作效率,讓生活更加美好。
掃描下方二維碼或者點(diǎn)擊閱讀原文,立刻體驗(yàn)智譜GLM-4V-Flash!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.