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