搜尋
首頁科技週邊人工智慧AI禁煙可還行!吸菸辨識+人臉識別

哈嘍,大家好。

今天跟大家分享一個吸菸辨識 人臉辨識的項目。很多公共場所、生產場所和學校,都有禁煙的要求,做一個禁煙的監控,讓AI自動識別吸煙行為,並識別是誰在吸煙,還是很有必要的。

用目標偵測演算法判斷吸菸行為,擷取吸菸者的人臉,用人臉辨識演算法判斷誰在吸菸。想法比較簡單,但細節處理起來還是稍微麻煩。

項目用到訓練資料和原始碼,都已經打包好了。還是老樣子,留言區獲取。

1. 檢測香菸

我用了 5k 張抽煙的標記數據,作為訓練數據

AI禁煙可還行!吸菸辨識+人臉識別

放在dataset目錄下。

訓練YOLOv5目標偵測模型。

第一步,複製data/coco128.yaml為smoke.yaml,並修改資料集目錄和類別配置資訊

path: ../dataset/smoke # dataset root dir
train: images/train# train images (relative to 'path') 128 images
val: images/test# val images (relative to 'path') 128 images
test:# test images (optional)

# Classes
names:
0: smoke

第二步,複製./models/yolov5s.yaml為smoke.yaml,修改nc

nc: 1# number of classes

第三步,下載yolov5s.pt預訓練模型,放在{yolov5目錄}/weights目錄中

執行下面指令,訓練即可

python ./train.py --data ./data/smoke.yaml --cfg ./models/smoke.yaml --weights ./weights/yolov5s.pt --batch-size 30 --epochs 120 --workers 8 --name smoke --project smoke_s

AI禁煙可還行!吸菸辨識+人臉識別

訓練完成後可以看到如下輸出:

AI禁煙可還行!吸菸辨識+人臉識別

#準召還湊合。

訓練完成後,可以找到best.pt位置,後面用它來做香菸偵測。

model = torch.hub.load('../28_people_counting/yolov5', 'custom', './weights/ciga.pt', source='local')

results = self.model(img[:, :, ::-1])
pd = results.pandas().xyxy[0]
ciga_pd = pd[pd['class'] == 0]

AI禁煙可還行!吸菸辨識+人臉識別

能辨識到煙後,我們還需要判斷,目前是否正在吸菸。

可以用香菸偵測框與嘴部偵測框計算IOU來判斷,說白了,就是判斷這兩框是否有交集,若有,則認為目前正在吸菸。

AI禁煙可還行!吸菸辨識+人臉識別

嘴部偵測框,使用人臉關鍵點來辨識。

2. 人臉辨識

人臉辨識演算法有很多成熟的模型,我們不需要自己訓練,直接調庫即可。

我這裡用的是dlib函式庫,它可以辨識人臉 68 個關鍵點,並根據這 68 個關鍵點,提取人臉特徵。

AI禁煙可還行!吸菸辨識+人臉識別

face_detector = dlib.get_frontal_face_detector()
face_sp = dlib.shape_predictor('./weights/shape_predictor_68_face_landmarks.dat')

dets = face_detector(img, 1)

face_list = []
for face in dets:
l, t, r, b = face.left(), face.top(), face.right(), face.bottom()

face_shape = face_sp(img, face)

face_detector可以偵測人臉,返回人臉偵測框,face_sp基於人臉偵測框,辨識人臉 68 個關鍵點。

從這 68 個關鍵點中,我們便可以取得到嘴部偵測框,用於判斷是否正在吸菸。

最後,我們還是希望利用人臉辨識演算法,辨識到誰在抽菸。

第一步,提取人臉特徵

face_feature_model = dlib.face_recognition_model_v1('./weights/dlib_face_recognition_resnet_model_v1.dat')

face_descriptor = face_feature_model.compute_face_descriptor(img, face_shape)

face_descriptor根據人臉 68 個關鍵點之間的位置、距離,維每張臉計算出一個特徵向量。這個原理類似於我們之前分享的word2vec或將影片映射到N維向量。

第二步,將現有人臉錄入人臉庫。我準備了3 個影視劇中的吸煙行為

AI禁煙可還行!吸菸辨識+人臉識別

從影片中裁剪出人臉,向量化後,寫入人臉資料庫(用檔案取代)

AI禁煙可還行!吸菸辨識+人臉識別

第三步,發生吸菸行為後,我們可以裁剪出吸菸者的人臉,併計算人臉向量,與人臉資料庫的特徵進行比對,找到最相似的人臉,返回對應的名字

AI禁煙可還行!吸菸辨識+人臉識別

def find_face_name(self, face_feat):
"""
人脸识别,计算吸烟者名称
:param face_feat:
:return:
"""
cur_face_feature = np.asarray(face_feat, dtype=np.float64).reshape((1, -1))

# 计算两个向量(两张脸)余弦相似度
distances = np.linalg.norm((cur_face_feature - self.face_feats), axis=1)
min_dist_index = np.argmin(distances)
min_dist = distances[min_dist_index]

if min_dist < 0.3:
return self.face_name_list[min_dist_index]
else:
return '未知'

這個項目還有很多可以擴展的地方,比如:我提供的視頻只有單張臉,實際監控中肯定是多張臉。這時候可以用MOT演算法進行行人跟踪,然後再對每個人單獨做吸煙識別

還有,可以單獨做一個統計區,把識別到的吸煙行為保存,用作警告、處罰的證據。

以上是AI禁煙可還行!吸菸辨識+人臉識別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
在LLMS中調用工具在LLMS中調用工具Apr 14, 2025 am 11:28 AM

大型語言模型(LLMS)的流行激增,工具稱呼功能極大地擴展了其功能,而不是簡單的文本生成。 現在,LLM可以處理複雜的自動化任務,例如Dynamic UI創建和自主a

多動症遊戲,健康工具和AI聊天機器人如何改變全球健康多動症遊戲,健康工具和AI聊天機器人如何改變全球健康Apr 14, 2025 am 11:27 AM

視頻遊戲可以緩解焦慮,建立焦點或支持多動症的孩子嗎? 隨著醫療保健在全球範圍內挑戰,尤其是在青年中的挑戰,創新者正在轉向一種不太可能的工具:視頻遊戲。現在是世界上最大的娛樂印度河之一

沒有關於AI的投入:獲勝者,失敗者和機遇沒有關於AI的投入:獲勝者,失敗者和機遇Apr 14, 2025 am 11:25 AM

“歷史表明,儘管技術進步推動了經濟增長,但它並不能自行確保公平的收入分配或促進包容性人類發展,”烏托德秘書長Rebeca Grynspan在序言中寫道。

通過生成AI學習談判技巧通過生成AI學習談判技巧Apr 14, 2025 am 11:23 AM

易於使用,使用生成的AI作為您的談判導師和陪練夥伴。 讓我們來談談。 對創新AI突破的這種分析是我正在進行的《福布斯》列的最新覆蓋範圍的一部分,包括識別和解釋

泰德(Ted)從Openai,Google,Meta透露出庭,與我自己自拍泰德(Ted)從Openai,Google,Meta透露出庭,與我自己自拍Apr 14, 2025 am 11:22 AM

在溫哥華舉行的TED2025會議昨天在4月11日舉行了第36版。它的特色是來自60多個國家 /地區的80個發言人,包括Sam Altman,Eric Sc​​hmidt和Palmer Luckey。泰德(Ted)的主題“人類重新構想”是量身定制的

約瑟夫·斯蒂格利茲(Joseph Stiglitz約瑟夫·斯蒂格利茲(Joseph StiglitzApr 14, 2025 am 11:21 AM

約瑟夫·斯蒂格利茨(Joseph Stiglitz)是2001年著名的經濟學家,是諾貝爾經濟獎的獲得者。斯蒂格利茨認為,AI可能會使現有的不平等和合併權力惡化,並在一些主導公司手中加劇,最終破壞了經濟上的經濟。

什麼是圖形數據庫?什麼是圖形數據庫?Apr 14, 2025 am 11:19 AM

圖數據庫:通過關係徹底改變數據管理 隨著數據的擴展及其特徵在各個字段中的發展,圖形數據庫正在作為管理互連數據的變革解決方案的出現。與傳統不同

LLM路由:策略,技術和Python實施LLM路由:策略,技術和Python實施Apr 14, 2025 am 11:14 AM

大型語言模型(LLM)路由:通過智​​能任務分配優化性能 LLM的快速發展的景觀呈現出各種各樣的模型,每個模型都具有獨特的優勢和劣勢。 有些在創意內容gen上表現出色

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中