機器學(xué)習(xí)實踐——人員越界識別(基于Aidlux+Yolov5實現(xiàn))

一、人員越界識別背景描述

實際生活中某些場景下需要配合攝像頭自動識別危險區(qū)域,并在發(fā)現(xiàn)有人員闖入危險區(qū)域(禁止進入?yún)^(qū)域)時進行報警,確保員工的人身安全。

二、算法目標

識別指定區(qū)域是否有有人越過改區(qū)域,并進行生成相應(yīng)報警邏輯。

三、Aidlux與yolov5簡介

3.1?Aidlux平臺——一個跨平臺應(yīng)用的系統(tǒng)

Aidlux是基于ARM架構(gòu)的跨生態(tài)(Android/鴻蒙+Linux)一站式AIoT應(yīng)用開發(fā)和部署平臺。

Aidlux可以進行Python版本的AI模型開發(fā)和移植,使得開發(fā)者可以基于一臺安卓手機或者基于一臺AidBox邊緣設(shè)備進行開發(fā),并且無縫銜接,在此基礎(chǔ)上同時帶來原生Android和原生Linux使用體驗。


即Linux上開發(fā)的Python代碼,可以在安卓手機、邊緣設(shè)備上轉(zhuǎn)換后使用。

一定程度上說,Aidlux簡化了Android系統(tǒng)設(shè)備上的算法應(yīng)用開發(fā)。

常規(guī)的方式,應(yīng)用在手機Android時,需要將PC上編寫的代碼,封裝成Android SO庫(C++)。經(jīng)過測試后,封裝JNI調(diào)用SO庫,最終在Android上使用Java調(diào)用JNI,最終再進行測試發(fā)布??梢钥吹?,這樣的流程需要一系列的工作人員參與,比如C++、Java、Python的工程師。但是大多數(shù)算法人員可能會用Python更多一些,比如上面編寫的整套算法。而Aidlux將其中的整個開發(fā)流程,全部打通,通過Aidlux平臺,可以將PC端編寫的代碼,快速應(yīng)用到Android系統(tǒng)上。


Aidlux內(nèi)部一方面內(nèi)置了多種深度學(xué)習(xí)框架,便于快速開發(fā)。另外還對于多種算子進行了優(yōu)化加速,很多算法的性能,也都能達到實時使用。


目前使用Aidlux主要有兩種方式:

(1)邊緣設(shè)備的方式:阿加犀用高通芯片的S855,和S865制作了兩款邊緣設(shè)備,一款提供7T算力,一款提供15T算力。

(2)手機設(shè)備的方式:沒有邊緣設(shè)備的情況下,可以使用手機版本的Aidlux,嘗試邊緣設(shè)備的所有功能。

這里使用的是手機設(shè)備的方式,通過下載安裝手機Aidlux的APP軟件即可。然后將開發(fā)的算法通過Aidlux即可部署到手機段。(因為直接在手機上操作編程,較為麻煩,,因此可以通過IP的方式,直接映射到電腦上操作。具體操作方式將在后面文章另做詳述,在此不做贅述)。


3.2 yolov5

關(guān)于yolov5方面,江大白老師有做過yolo系列的相關(guān)內(nèi)容,強烈推薦參考:

深入淺出Yolo系列之Yolov3&Yolov4&Yolov5&Yolox核心基礎(chǔ)知識完整講解

深入淺出Yolo系列之Yolov5核心基礎(chǔ)知識完整講解

四、業(yè)務(wù)邏輯分析及算法實現(xiàn)

越界識別的功能實現(xiàn),主要包括人體目標檢測、人體追蹤及越界識別判斷三部分

4.1 行人目標檢測

這一部分主要利用YOLOv5算法實現(xiàn)。

首先基于YOLOv5目標檢測算法訓(xùn)練一個檢測行人(person)的權(quán)重person.pt。

訓(xùn)練得到的pt權(quán)重可用于在PC端進行推理測試,但是要是在邊緣端Aidlux上進行使用,需要將pt模型轉(zhuǎn)為tflite模型,再將tflite模型移植到Aidlux上使用,并適當修改對應(yīng)推理代碼,實現(xiàn)在Aidlux的推理。

(1)利用export.py文件實現(xiàn)模型轉(zhuǎn)化,主要修改其中的三個地方,如下所示:


(2)Aidlux視頻推理代碼

要將PC段yolov5的推理代碼應(yīng)用到Aidlux上,需要結(jié)合Aidlux平臺自身的一些專屬函數(shù)接口對代碼做適當調(diào)整,主要包括三個部分:

a、加載相關(guān)的函數(shù)庫

b、模型初始化及加載

c、視頻讀取&模型推理代碼

效果圖示:

4.2 目標追蹤

目標追蹤的實現(xiàn)主要是在實現(xiàn)目標檢測的前提下,補充目標追蹤功能,即通過追蹤并繪制每個目標的track_id信息實現(xiàn)。主要實現(xiàn)代碼部分如下:


4.3 越界識別判斷

(1)越界監(jiān)測區(qū)域繪制

實現(xiàn)越界識別,即檢測某個感興趣區(qū)域,是否有人違規(guī)進入。所以首先需要設(shè)置一個感興趣區(qū)域(監(jiān)測區(qū)域),然后結(jié)合目標追蹤判斷是否有人員闖入檢測區(qū)域內(nèi)。

代碼如下:

(2) 人體檢測監(jiān)測點調(diào)整

繪制好監(jiān)測區(qū)域后,結(jié)合前面目標檢測追蹤部分,便可進行越界識別判斷。這里需要注意的是在實際業(yè)務(wù)場景中,通常判斷人體越界的點,主要用的是人體腳部的點。使用yolov5算法得到的是人物檢測框的四個點信息[x,y,w,h],即目標框的左上角點的x,y坐標和寬w、高h,因此需要通過代碼,轉(zhuǎn)換成人體下方的點,即[左上角點x+1/2*寬w,左上角點y+高h]。轉(zhuǎn)換代碼如下:

(3) 人體狀態(tài)追蹤判斷

獲取了人體的坐標信息,需要結(jié)合繪制的檢測區(qū)坐標,判斷人體是否在監(jiān)測區(qū)域內(nèi),并將將人體的狀態(tài)進行區(qū)分。比如將人體在監(jiān)測區(qū)域內(nèi)設(shè)置為1,不在監(jiān)測區(qū)域內(nèi)設(shè)置為-1。所以代碼中需要判斷每個人的運動狀態(tài),將每個人運動軌跡中,每一幀在圖片上的狀態(tài)統(tǒng)計下來。

(4)越界行為判斷

基于上面對行人在視頻中每一幀的移動軌跡中狀態(tài)的記錄,便可進一步判斷行人是否越界。比如某個人當前一幀的狀態(tài)是-1,后一幀的狀態(tài)變成1時,說明剛剛進入越界區(qū)域,此時就將當前的圖片進行保存,留作告警記錄。代碼如下:

4.4 越界識別&系統(tǒng)告警

一般在實際應(yīng)用的項目業(yè)務(wù)系統(tǒng)中,需要對最后檢測的報警信息進行通知警告,因此可進一步將記錄的報警信息進行相應(yīng)處理。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 周末,打開衡水教育考試院公告:“目前尚在外省的考生需于考前7天前返衡,省內(nèi)市域外考生需考前3天前返衡” 該公告是2...
    彩蝶入夢閱讀 403評論 0 4
  • 臨港新片區(qū)人才住房政策辦事指南 為促進臨港新片區(qū)高質(zhì)量發(fā)展,聚焦區(qū)域發(fā)展需要和人才需求,為新片區(qū)人才提供堅強有力的...
    知產(chǎn)圈李老師閱讀 282評論 0 0
  • 自動駕駛與雷達(二) 超分辨率測角方法——MUISC算法 姓名:張波; 學(xué)號:22021211233; 學(xué)院:電子...
    365度的溫暖c閱讀 934評論 0 0
  • 劉潤老師在《底層邏輯》中講到:藝術(shù)家給人類帶來自由。DNA在人體里面世代繁衍,它讓人類在不同情況下分泌不同的物質(zhì),...
    夏雨Vivian閱讀 441評論 0 1
  • 新課伊始,焦雅靜老師就首先提醒到: 同學(xué)們,今天學(xué)習(xí)的數(shù)學(xué)內(nèi)容不是很容易,易錯點多,大家務(wù)必認真聽...
    千里馬會軍閱讀 470評論 0 0

友情鏈接更多精彩內(nèi)容