哈嘍,大家好。
今天跟大家分享一個吸菸辨識 人臉辨識的項目。很多公共場所、生產場所和學校,都有禁煙的要求,做一個禁煙的監控,讓AI自動識別吸煙行為,並識別是誰在吸煙,還是很有必要的。
用目標偵測演算法判斷吸菸行為,擷取吸菸者的人臉,用人臉辨識演算法判斷誰在吸菸。想法比較簡單,但細節處理起來還是稍微麻煩。
項目用到訓練資料和原始碼,都已經打包好了。還是老樣子,留言區獲取。
1. 檢測香菸
我用了 5k 張抽煙的標記數據,作為訓練數據
放在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
訓練完成後可以看到如下輸出:
#準召還湊合。
訓練完成後,可以找到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]
能辨識到煙後,我們還需要判斷,目前是否正在吸菸。
可以用香菸偵測框與嘴部偵測框計算IOU來判斷,說白了,就是判斷這兩框是否有交集,若有,則認為目前正在吸菸。
嘴部偵測框,使用人臉關鍵點來辨識。
2. 人臉辨識
人臉辨識演算法有很多成熟的模型,我們不需要自己訓練,直接調庫即可。
我這裡用的是dlib函式庫,它可以辨識人臉 68 個關鍵點,並根據這 68 個關鍵點,提取人臉特徵。
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 個影視劇中的吸煙行為
從影片中裁剪出人臉,向量化後,寫入人臉資料庫(用檔案取代)
第三步,發生吸菸行為後,我們可以裁剪出吸菸者的人臉,併計算人臉向量,與人臉資料庫的特徵進行比對,找到最相似的人臉,返回對應的名字
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中文網其他相關文章!

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

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

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

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

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

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

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

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

WebStorm Mac版
好用的JavaScript開發工具

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

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