作者:
劉吉英特爾創新大使
AI_GUARD是一個基于Intel x86 CPU + IntelArc GPU(A370M)硬件平臺,實現大模型(Qwen)+小模型+私域數據庫融合的在線AI監管系統平臺。該平臺以YOLO算法為核心,實現了在不同需求場景下,識別異常并記錄的功能,同時可結合大語言模型進行綜合管理,提供問詢等便利服務。在本文中,我們將使用OpenVINO 2024.4.0部署 AI_GUARD實現智能在線監管系統平臺:
操作系統(OS):
Ubuntu 22.04.5 LTS (Jammy Jellyfish)
使用OpenVINO 2024.4.0部署 AI_GUARD全部源碼(MIT協議):
gitee地址:
https://gitee.com/QinkSkye/AI_GUARD.git
本項目已發布版本及大模型(Qwen2.5 7B)docker鏡像鏈接如下:
AI_GUARD_Management:
https://pan.baidu.com/s/1YS-DrHqHQ7_3SXIjXxtmqw?pwd=mu44
1OpenVINO 介紹
英特爾發行版OpenVINO 工具套件基于oneAPI而開發,可以加快高性能計算機視覺和深度學習視覺應用開發速度工具套件,適用于從邊緣到云的各種英特爾平臺上,幫助用戶更快地將更準確的真實世界結果部署到生產系統中。通過簡化的開發工作流程,OpenVINO 可賦能開發者在現實世界中部署高性能應用程序和算法。
2024年9月19日,英特爾發布了OpenVINO 2024.4版本,該版本引入了一系列新特性和優化。本次更新以最大限度減少代碼更改的同時,增加了生成式人工智能(GenAI)覆蓋范圍和框架集成,不僅支持GLM-4-9B Chat, MiniCPM-1B, Llama 3 和 3.1, Phi-3-Mini, Phi-3-Medium 以及YOLOX-s模型,并新增了一系列值得關注的Notebook,還與Hugging Face合作,更新了Optimum-Intel解決方案,使得在利用Hugging Face API運行模型的同時,能夠使用OpenVINO 高效地導出和壓縮模型,以供OpenVINO GenAI套件API使用。在模型優化和內存管理方面,OpenVINO 2024.4版本有效降低了AI部署的成本,優化了內存使用,并顯著減少了延遲。因篇幅有限,無法詳細描述新版本的所有特性與優化,詳情請進入官方網址查看:https://www.intel.cn/content/www/cn/zh/developer/articles/releasenotes/openvino/2024-4.html。
2AI_GUARD介紹
AI_GUARD是一種智能在線監管系統平臺,由研揚科技AI LAB實驗室開發。它能在不同需求場景下,通過加載不同的模型,識別特定目標,保證7x24小時智能化管理的同時,降低人員成本和運維負荷。
該項目的核心思想在于,使用大模型作為決策層,提供問詢和數據庫管理;使用專用小模型實現快速目標檢測,實時高效,可在此基礎上加上實際應用場景的控制邏輯,實現AI自制管理,將一些低階非關鍵決策交給大模型處理,高階安全性問題及時匯報給專人管理。在此項目中使用vLLM作為大模型的推理服務后端,采用docker部署,極大的方便和簡化了開發流程和周期。
通過這種技術,AI_GUARD能精確識別、記錄特定目標,并將結果實時推送至Web端,用戶可通過瀏覽器、app等程序輕松查看情況,并做出對應處理。項目中,私域數據庫和大模型結合的實現方式,讓用戶不再需要對數據庫進行復雜操作與計算,僅需向大模型詢問“X年X月X日共有多少條記錄”等問題,便可得知對應記錄和答案。
總的來說,AI_GUARD智能在線監管系統平臺能在工廠生產管理、醫院病患看護、高端居住區管理等多個場景大展身手,應用前景十分廣泛,在降低管理成本和難度上有明顯優勢,是促進各項產業數字化、智能化的好幫手。
3模型獲取
Ultralytics 提供了一系列用于計算機視覺任務的工具,包括目標檢測、圖像分類、語義分割和人臉識別等。這些工具基于流行的深度學習框架如PyTorch,并通過簡化復雜任務的實現過程,使用戶能夠更輕松地進行模型訓練和性能評估。
首先安裝Ultralytics 環境:Ultralytics 可以通過pip安裝,在環境中輸入以下指令即可:
pip install ultralytics
然后通過Python導出模型:模型導出代碼如下所示:
from ultralytics import YOLO # 加載官方模型 model = YOLO('yolov8n.pt') # 導出模型 model.export(format='onnx')
模型導出后結構如下圖所示:
然后根據官方教程,安裝OpenVINO 2024.4版本,教程網址如下(建議安裝路徑為 /opt/Intel/ openvino_2024):https://docs.openvino.ai/2024/get-started/install-openvino/install-openvino-linux.html
安裝完成后,運行以下命令,獲取OpenVINO 格式的模型
mo命令
處理后,可得到后綴名為.bin、.xml的兩個新文件,模型結構如下圖所示:
4項目獲取
【源碼下載和配置】
AI_GUARD項目架構如下圖所示:
首先使用Git克隆項目源碼。輸入以下指令:
git clone 命令git clone
https://gitee.com/QinkSkye/AI_GUARD.git
代碼下載完成后,使用Qt6.7.2打開CMakeList.txt文件,如下圖所示:
選擇X86架構,并按需選擇編譯模式后,項目文件如圖所示:
QT需要的模塊:
Multimedia、MultimediaWidgets、
WebEngineWidgets、Sql
本項目依賴以下C++第三方開源庫:
FFmpeg 下載地址:
https://ffmpeg.org/download.html
Opencv下載地址
https://opencv.org/releases/
Protobuf 下載地址:
https://github.com/golang/protobuf
PresenterAgent 下載地址:
https://gitee.com/ascend/samples/blob/v0.4.0/
cplusplus/environment/presenteragent_install/
README_200DK_CN.md
本項目對PresenterAgent庫進行了一定改造,部署時請以本項目倉庫中的PresenterAgent的內容為準。
以上開源庫,均已在git倉庫,上傳編譯后文件。從git下載項目源碼后,依賴項所在文件夾
如圖所示:
5OpenVINO 推理方法
C++ 初始化 OpenVINO Runtime Core ov::Core core;
編譯模型
ov::CompiledModel compiled_model = core.compile_model(model_path, device_name);
創建推理請求
ov::InferRequest infer_request = compiled_model.create_infer_request()
處理圖像
cv::Mat letterbox_img = letterbox(srcImg); blob = cv::blobFromImage(letterbox_img, 1.0 / 255.0, cv::Size(model_width, model_height), cv::Scalar(), true);
輸入數據
auto input_port = compiled_model.input(); ov::Tensor input_tensor(input_port.get_element_type(), input_port.get_shape(), blob.ptr()); infer_request.set_input_tensor(input_tensor);
開始推理
infer_request.start_async();
獲取推理結果
auto output = infer_requestVec[0].get_output_tensor(0); auto output_shape =output.get_shape();
后處理
cv::Mat output_buffer(output_shape[1], output_shape[2], CV_32F, data); cv::transpose (output_buffer, output_buffer); Postprocess (scale, output_buffer, srcImg
以上是使用OpenVINO API 進行推理的部分代碼,具體實現可以下載項目源碼進行查看。
6項目運行演示
配置好項目后,點擊運行,如下圖所示,本項目主要包含五個部分,分別為大模型對話及管理區域、車輛車牌識別子系統、跌倒檢測子系統、安全帽反光衣識別子系統、區域入侵識別子系統。
采用OpenVINO 軟件包提供的vehicle-license-plate-detection-barrier-0106模型進行車輛車牌檢測,license-plate-recognition-barrier-0001模型進行車牌號識別,支持實時車牌識別,并通過SQLite數據庫存儲每個識別的車牌號信息,包括識別時間、車牌號以及車牌圖像的路徑,與大模型結合后,用戶可以直接通過大模型查詢指定時間的車輛進入情況,方便后期查詢和管理識別記錄。
跌倒檢測子系統基于 YOLOv5 深度學習模型,結合 Intel 的 OpenVINO 工具套件優化模型,提高推理速度,用于實時檢測視頻流中的跌倒事件,同時集成了 SQLite 數據庫,用于存儲檢測到的跌倒事件信息。該系統不僅能實時檢測跌倒行為,還能將關鍵數據記錄到本地數據庫中,為后續分析改進場所布局,預防并減少跌倒提供可靠的數據支持。系統旨在提高跌倒檢測的精度和效率,適用于監控場景中需要實時安全預警的應用,例如養老院、醫院和智能家居等場景。
安全帽反光衣識別子系統利用 YOLOv5 深度學習模型,實現對視頻流中的安全帽與反光衣的精準識別,使用 OpenVINO 優化模型提高推理速度,滿足設備上的實時計算需求。通過 SQLite 數據庫存儲檢測到的違規記錄,包括時間戳、檢測對象類別(安全帽/反光衣)以及圖片截幀。支持查詢以及導出功能,方便后續的安全管理和審核。集成大語言模型,提供智能化的用戶交互功能,例如基于自然語言查詢檢測結果、生成檢測報告等。適用于工地、工廠和其他需要安全裝備檢測的場景。
區域入侵識別子系統采用YOLO v8模型,可對指定區域進行框選,并對框選區域進行目標檢測識別,同時會將識別到的異常記錄進數據庫,方便查閱及后續邏輯控制和警報系統的聯動。
在使用時,用戶可以根據自己需求,選擇待推理數據,支持圖片、視頻、RTSP、攝像頭四種輸入方式,然后點擊“Start”按鈕,即可開始推理,并將結果上傳至網頁。如有其余疑問,請打開項目倉庫中“用戶手冊.txt”文件,查詢對應條目。
7總結
隨著技術的不斷進步和完善,我們有理由相信,未來的安防系統將更加智能、高效,為人們的生活和工作提供更堅實的保障。此項目的實施是對未來智慧城市建設和公共安全管理理念的一次重要探索,隨著更多類似智能系統的推廣和應用,我們期待看到一個更加智慧化、人性化的社會安全管理體系逐漸成形。
-
英特爾
+關注
關注
61文章
10182瀏覽量
174128 -
AI
+關注
關注
88文章
34553瀏覽量
276083 -
大模型
+關注
關注
2文章
3060瀏覽量
3894 -
OpenVINO
+關注
關注
0文章
114瀏覽量
428
原文標題:開發者實戰|大模型+小模型,實現AI智能監管
文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
如何部署OpenVINO?工具套件應用程序?
【大聯大世平Intel?神經計算棒NCS2試用申請】在樹莓派上聯合調試Intel?神經計算棒NCS2部署OpenVINO
如何在RDKx3部署docker鏡像?
醫療廢物智能在線監管系統實現醫療廢物可視化

OpenVINO? 賦能 BLIP 實現視覺語言 AI 邊緣部署

使用OpenVINO C# API部署YOLO-World實現實時開放詞匯對象檢測

評論