坐姿不對,螢幕就變模糊!俄羅斯正妹用 Tensorflow 設計坐姿監督網站

【我們為什麼挑選這篇文章】許多上班族使用電腦時,常因為過度沉浸在工作裡,坐姿不良都沒發現,長久下來累積許多病痛。但俄羅斯一位正妹工程師研發了「坐姿監督工具」,只要你做諮一不對,螢幕畫面就會自動失焦!讓我們來看看這個有趣發明的經歷吧!(責任編輯:呂珈寧)

作為一個上班族,每天坐在電腦前那麼久,難免出現腰酸背痛的情況,時間長了甚至脊柱都歪曲變形了,這樣不行!一定要克制住自己的坐姿。

這裡有款「坐姿監督工具」,要不要了解一下?

一位名叫 Olesya Chernyavskaya 的俄羅斯女工程師就用 TensorFlow 開發了一款坐姿監督工具,一旦你坐姿不正,螢幕就會變模糊,在無形中幫你矯正坐姿 ~

Olesya 為這個項目專門做了一個網站,她表示這個網站不會竊取網友的數據,想體驗這款坐姿監督工具的小伙伴可以點擊這個連結:https://fix-posture.glitch.me/

這聽起來有意思,作者也來試試!

駝背、歪頭、托腮通通逃不過系統的檢測,眼看著螢幕變模糊

打開網站,最上面這個框裡有個「開始」的按鍵,點擊之後攝影鏡頭就開始檢測你的坐姿啦,作者側下身體果然螢幕就變模糊了,這種感覺似曾相識,這難道不是作者摘下眼鏡的瞬間嗎!

嚇得作者趕緊坐直了,話說這款工具也不是特別靈敏,有時候會有一些延遲,即使坐直了也要等一會螢幕才能清晰,還有時候會識別不出來。而且,只有在這個網站上才能實現自動模糊,在瀏覽其他網站或者微信聊天的時候就沒什麼變化啦。

儘管項目不太成熟,但依舊創意十足!就連 TensorFlow 官方也看中了這個項目。

原來這是 TensorFlow 舉辦的一個名為 TF Community Spotlight 的參賽活動,比賽主旨在為年滿 18 歲的工程師提供一個向全球展示自己的平台,只要在項目中用TensorFlow 框架開發就可以參賽,官方會選舉出一些他們認為的技術與創意俱佳的作品進行展示。

在報名頁上沒有看到參賽的截止日期,這應該是一個長期的項目選秀,現在還可以報名哦,想展示自己項目的人還不快來 ~
https://services.google.com/fb/forms/tensorflowprojectrecognitionform/

說到這裡,來和作者一起看看 Olesya 是如何實現這個項目的吧。

記錄初始體態位置,每秒檢查坐姿,一旦發現不同螢幕立刻模糊

在這個項目中,她用了 TensorFlow.js PoseNet 模型來檢測身體部位,並藉助 ml5.js 構建 PoseNet 模型,還用了 p5.js 幫助處理畫布和攝像頭。

關於檢測人體體態,Olesya有兩個點子:

建一個模型,並教它理解什麼是錯誤的坐姿;
讓人一開始保持正確的坐姿,讓模型記錄眼睛和肩膀的位置正確。然後每秒鐘 check 一遍新的位置,並與正確的位置進行比較。

Olesya 果斷選擇了第二種方法,因為這更容易也更快實現。

具體來說,當模型開始採集人的體態時,會先記錄下一個正確的坐姿,可以想像有一個垂直於雙眼和雙肩所在平行線的 y 軸,這樣就可以記錄正確坐姿下的數據特徵。當你彎腰駝背時,模型可以檢測出你雙眼和雙肩代表的兩條平行線在 y 軸上的位移,由此判斷出你沒有好好坐著。

那我不駝背,我悄悄托個腮總可以了吧!除非你的眼睛和肩膀都沒有歪,否則還是會被系統檢測出你的坐姿不正確。Olesya 還想到了很多種不良坐姿,以她可愛的畫風展示在了圖中,比如把腳放到了桌子上,或者腳踩椅子翹起膝蓋,這些統統都能被檢測到。

說完了體態檢測的事情,該說一說如何模糊螢幕了。話不多說,直接放出代碼,要想螢幕變模糊,就得這麼做:

function blurScreen() { document.body.style.filter = ‘blur(10px)’; document.body.style.transition= ‘0.9s’;}

要想變回清晰的螢幕,移除一下就行:

function removeBlur() { document.body.style.filter = ‘blur(0px)’;}

當我們按下開始鍵,系統會記錄眼睛的位置作為默認的正確位置。

while (defaultRightEyePosition.length < 1) { defaultRightEyePosition.push(rightEye.y);}

開始檢測後,系統就會一直比較默認位置和當前位置。如果差異超過 15,就意味著沒有保持良好的姿勢,而且程式會調用模糊螢幕的功能:

if (Math.abs(rightEye.y – defaultRightEyePosition[0]) > 15) { blurScreen();}

如果差異小於 15,就說明坐姿保持的不錯:

if (Math.abs(rightEye.y – defaultRightEyePosition[0]) < 15) { removeBlur();}

除此之外,Olesya 連她做這個網站的過程也都貼心的寫了下來,感興趣的人可以點擊:https://fix-posture.glitch.me/
Github指路:https://github.com/monolesan/fix-posture

這是一位沉浸在自己程式世界裡的女工程師

好奇的作者想看看這位她還做過什麼項目

看了她的推特,作者覺得這是一位內心很有想法的工程師,對程式有著強烈的熱愛,總是能做出一些創意小項目,完全是興趣使然。

Olesya 經常會分享一些項目過程中她認為有趣的地方,比如一個可以跟隨人臉移動的「大衛」:

比如當她在用 TensorFlow 的手勢模型做項目時,系統識別到了她拿起杯子的手,她覺得很有趣就做了個「別人喝茶和我喝茶時」對比的表情包。

沉浸在自己的程式世界裡,做著自己熱愛的項目,想必是很愉快的事情~ 和作者一樣好奇的同學可以去她的推特感受一下。

(TO 編按:相信大家看完這篇後,應該都蠻想追蹤這位超強工程師正妹的 Twiiter,小編就把傳送門放上面了,不用謝。但這位妹的推特有點ㄎㄧㄤ,你們自行斟酌啊。)

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈坐姿不對,屏幕就變模糊!小姐姐教你用TensorFlow做一款“隱形背背佳”〉,首圖來源:Shuttrstock。)

掰惹威,TechOrange 也有推特ㄌ而且更ㄎㄧㄤ、想用 meme 讀新聞?追起來嘛!

你可能會有興趣

【開源程式最佳保存法】Github 將 21 TB 的程式碼轉換成「膠捲」,送到北極永凍層冰封 1000 年
【TensorFlow 也想吃宵夜】日本工程師研發炸雞圖像辨識系統,能從一鍋炸雞中單獨識別雞塊
將量子運算結合機器學習,Google 開源 TensorFlow Quantum 訓練框架

AD