搜尋
首頁後端開發Python教學假期來啦!技術人如何用 Python 實現景區安防系統

本設計中,利用YOLO目標偵測演算法、Openpose姿態辨識演算法、deepsort追蹤演算法、MSCNN人群密度估計演算法實現了火災監測、吸菸監測、行為安全監測、人群密度監測、口罩率監測、人員定位監測六大功能。系統運用智慧視覺互動技術,使用者可透過手勢作業系統,使用者操作方便簡潔。在多角度多方位輔助景區安防管理,消減了景區存在的隱形安全隱患,推動景區智慧化建設。本套系統各類功能之間實現了資料的即時傳輸與回饋,保證了資訊的有效性,可以運行在手機端、電腦端和物聯網平台多個平台,同時也真正意義上實現了「多平台應用」。

假期來啦!技術人如何用 Python 實現景區安防系統

結合多種演算法設計的多功能的智慧安防系統,主要應用於景區中火災預防與監測、疫情防控、遊客安全定位等,對景點安全防護與景區智慧化建設具有重要的應用價值。 假期來啦!技術人如何用 Python 實現景區安防系統

基本介紹

該系統以電腦多媒體技術、智慧型影像分析技術、資料探勘技術等為基礎,建置旅遊景區綜合安防管理系統。針對景區公共活動區域的人身安全,森林防火管理,疫情防控管理等需求,要求建置全方位、全天候、高清化、智慧化的視訊監控系統,以滿足現代旅遊景區安全管理的需求,實現大場景全景監控,針對景區火災、遊客危險行為等突發狀況進行偵測。實現對人員即時定位、軌跡查詢,當發生緊急狀況時聯動地圖進行閃爍警示,並便於緊急指揮。同時滿足人員管理與客流分析系統,需要對出入口客流量進行統計和分析,當景區超過一定的客流容量之後可及時預警停止遊客進入並進行適當的遊客分流處置。結合實際需求及智慧景區的系統架構規劃,旅遊景區綜合安防系統由智慧監控系統、智慧視覺互動、多角度多方位、多平台應用四個模組構成,整合火災監測、吸菸監測、行為安全監測、人群密度監測、口罩率監測、人員定位監測異構安防子系統。系統整體設計架構如下圖:

假期來啦!技術人如何用 Python 實現景區安防系統


基本功能展示

#1、系統概述

假期來啦!技術人如何用 Python 實現景區安防系統

假期來啦!技術人如何用 Python 實現景區安防系統

本智慧監控系統開發平台為Pycharm,使用python語言,共分為六大系統。

2、火災監測系統

本模組透過即時的視訊監控,分析視訊是否有火災產生。如圖所示,如果景區發生火災,系統會及時的發出預警訊息,回饋給調度室,使得火災得到有效控制,極大的提高應對火災的效率。

假期來啦!技術人如何用 Python 實現景區安防系統

3、吸菸監控系統

為了防止景點發生火災,景點多數區域為禁煙區。本模組透過即時的視訊監控,分析視訊是否有吸菸行為。如圖所示,如果有遊客存在吸煙行為,系統會及時的發出預警訊息,回饋給調度室,第一時間發現遊客吸煙的安全隱患,預防火災發生,確保景區安全。

假期來啦!技術人如何用 Python 實現景區安防系統

4、行為安全監控系統

在景點旅遊過程中,遊客人身安全須受到保障。本模組透過即時的視訊監控,分析影片中人的軀體動作,如果發生異常行為如圖中「摔倒」等危險行為可以及時的發出預警訊息。能夠大幅縮短救援時間,減少突發事件造成的損失,並保護遊客的生命財產安全。 假期來啦!技術人如何用 Python 實現景區安防系統

5、人群密度監測系統

受新冠疫情的影響,景區需要合理控制景區內的人口密度。透過本模組可實現對景區遊客人口密度的動態監控,透過智慧分析,將人群密度即時的展現在系統頁面上,幫助用戶管理景區,切實保障廣大遊客、員工的身體健康和生命安全,維護景區和社會穩定大局。 假期來啦!技術人如何用 Python 實現景區安防系統

6、口罩率監控系統

為防止新冠病毒的傳播,根據區域相關規定,進入景區前需要確定乘客。本模組透過即時的視訊監控,分析影片中遊客是否佩戴口罩,將標記每個遊客是否佩戴口罩,將結果顯示在系統上,並即時的顯示場景佩戴口罩率。用於景區疫情防疫工作,保護遊客,保護景點。

假期來啦!技術人如何用 Python 實現景區安防系統

7、人員追蹤定位監控

本模組對景區進行即時的視訊監控,分析並識別視訊中遊客,自動產生識別標籤,將遊客標籤在場景中的位置即時記錄下來,並顯示在系統頁面中,並且可以對場景中人數進行監測,動態顯示在系統頁面左側。輔助使用者管理景區。

假期來啦!技術人如何用 Python 實現景區安防系統

8、智慧視覺互動

本系統可取代了傳統滑鼠點擊模組應用的方法,使用者可以不需要使用滑鼠等輸入裝置即可完成與系統之間的資訊互動。使用者透過肢體動作就可以完成模組的選擇工作,系統操作更加簡潔,使用者使用更加方便。 (這裡只設計了火災偵測功能,其他功能可以根據程式碼參考寫入。)

假期來啦!技術人如何用 Python 實現景區安防系統

假期來啦!技術人如何用 Python 實現景區安防系統

涉及演算法

假期來啦!技術人如何用 Python 實現景區安防系統

1、目標偵測演算法

本計畫使用的目標偵測演算法主要為YOLO演算法,分別應用在火災監測、吸菸行為監測、人員定位追蹤以及口罩率監測。 YOLO目標偵測演算法是考慮到雙階段目標偵測演算法的偵測效率比較低,所以有些學者提出了單階段目標偵測。由JosephRedmon等人於2016年提出。

2、目標追蹤演算法

本專案在人員定位追蹤系統中使用到了deepsort目標追蹤演算法。本系統追蹤的流程如下:

(1)使用卷積神經網路對影片中的行人進行偵測和追蹤。

###(2)視訊幀輸入之後首先進入YOLOv3目標檢測的網絡,經過Darknet-53提取特徵;######(3)其次,進行上採樣和特徵融合,再進行回歸分析;######(4)再次,把得出的預測框資訊輸入SORT演算法進行目標特徵建模,配對與追蹤;######(5)最後,輸出結果。下圖為定位追蹤演算法流程圖:###############3、人群密度估計演算法######人群密度計數是指估計影像或影片中人群的數量、密度或分佈,它是智慧視訊監控分析領域的關鍵問題和研究熱點,也是後續行為分析、擁塞分析、異常檢測和事件檢測等高級視訊處理任務的基礎。本計畫透過採用深度學習方法取得人群密度圖已估計人群數量,使用python語言搭建MSCNN網路實現即時生成人群密度圖以達到估計人群數量的目的。 ######4、姿態估計演算法######本計畫在人體行為安全監測系統上使用了Openpose的人體姿態辨識演算法。透過Openpose的姿態辨識技術對不同肢體之間的協調關係建構分類演算法,並透過不同的分類演算法比較,選擇出最優模型搭建多目標的分類方法,其可實現多個目標的姿態顯示、目標偵測和分類的即時顯示。 ######部分介面操作程式碼如下:###
cap = cv2.VideoCapture(0)
cap.set(3, 1280)
cap.set(4, 720)
detector = HandDetector(detectionCon=0.8)
keys = [["火灾检测", "吸烟检测", "行为安全监测", "人群密度监测", "口罩率检测", "行人定位跟踪"]]
finalText = ""
while True:
success, img = cap.read()
img = detector.findHands(img)
lmList, bboxInfo = detector.findPosition(img)
img = drawAll(img, buttonList)
if lmList:
for button in buttonList:
x, y = button.pos
w, h = button.size
if x < lmList[8][0] < x + w and y < lmList[8][1] < y + h:
cv2.rectangle(img, (x - 5, y - 5), (x + w + 5, y + h + 5), (175, 0, 175), cv2.FILLED)
if l < 30:
if press_state:
cv2.rectangle(img, button.pos, (x + w, y + h), (0, 255, 0), cv2.FILLED)
cv2.putText(img, "start", (x + 20, y + 65),cv2.FONT_HERSHEY_PLAIN, 4, (255, 255, 255), 4)
finalText += button.text
sleep(0.15)
press_state=False
state=True
print(button.text)
text=button.text
else:
press_state=True
if state:
if os.path.exists("img.txt"):
try:
img2 = cv2.imread("img.jpg")
img2 = cv2.resize(img2, (img.shape[1], img.shape[0]))
img = cv2.addWeighted(img, alpha, img2, beta, gamma)
except:
pass
if state:
img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
draw = ImageDraw.Draw(img)
myfont0 = ImageFont.truetype(r'./HGDH_CNKI.TTF', 50)
for button in buttonList:
x, y = button.pos
w, h = button.size
draw.text((500, 180), text, font=myfont0, fill=(0, 0, 0))
img = cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)
cv2.imshow("Image", img)
cv2.waitKey(1)

以上是假期來啦!技術人如何用 Python 實現景區安防系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
什麼是Python Switch語句?什麼是Python Switch語句?Apr 30, 2025 pm 02:08 PM

本文討論了版本3.10中介紹的Python的新“匹配”語句,該語句與其他語言相同。它增強了代碼的可讀性,並為傳統的if-elif-el提供了性能優勢

Python中有什麼例外組?Python中有什麼例外組?Apr 30, 2025 pm 02:07 PM

Python 3.11中的異常組允許同時處理多個異常,從而改善了並發方案和復雜操作中的錯誤管理。

Python中的功能註釋是什麼?Python中的功能註釋是什麼?Apr 30, 2025 pm 02:06 PM

Python中的功能註釋將元數據添加到函數中,以進行類型檢查,文檔和IDE支持。它們增強了代碼的可讀性,維護,並且在API開發,數據科學和圖書館創建中至關重要。

Python的單位測試是什麼?Python的單位測試是什麼?Apr 30, 2025 pm 02:05 PM

本文討論了Python中的單位測試,其好處以及如何有效編寫它們。它突出顯示了諸如UNITSEST和PYTEST之類的工具進行測試。

Python中的訪問說明符是什麼?Python中的訪問說明符是什麼?Apr 30, 2025 pm 02:03 PM

文章討論了Python中的訪問說明符,這些說明符使用命名慣例表明班級成員的可見性,而不是嚴格的執法。

Python中的__Init __()是什麼?自我如何在其中發揮作用?Python中的__Init __()是什麼?自我如何在其中發揮作用?Apr 30, 2025 pm 02:02 PM

文章討論了Python的\ _ \ _ Init \ _ \ _()方法和Self在初始化對象屬性中的作用。還涵蓋了其他類方法和繼承對\ _ \ _ Init \ _ \ _()的影響。

python中的@classmethod,@staticmethod和實例方法有什麼區別?python中的@classmethod,@staticmethod和實例方法有什麼區別?Apr 30, 2025 pm 02:01 PM

本文討論了python中@classmethod,@staticmethod和實例方法之間的差異,詳細介紹了它們的屬性,用例和好處。它說明瞭如何根據所需功能選擇正確的方法類型和DA

您如何將元素附加到Python數組?您如何將元素附加到Python數組?Apr 30, 2025 am 12:19 AM

Inpython,YouAppendElementStoAlistusingTheAppend()方法。 1)useappend()forsingleelements:my_list.append(4).2)useextend()orextend()或= formultiplelements:my_list.extend.extend(emote_list)ormy_list = [4,5,6] .3)useInsert()forspefificpositions:my_list.insert(1,5).beaware

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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

mPDF

mPDF

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

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。