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