chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

行人摔倒檢測-在英特爾開發(fā)套件上基于OpenVINO? C# API部署PP-Human

英特爾物聯(lián)網(wǎng) ? 來源:英特爾物聯(lián)網(wǎng) ? 2023-10-13 16:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

c3e00bf8-699e-11ee-939d-92fbcf53809c.png

隨著人口老齡化問題的加重,獨(dú)居老人、空巢老人數(shù)量在不斷上升,因此如何保障獨(dú)居老人、空巢老人健康生活和人身安全至關(guān)重要。而對于獨(dú)居老人、空巢老人,如果出現(xiàn)摔倒等情況而不會及時(shí)發(fā)現(xiàn),將會對其健康安全造成重大影響。本項(xiàng)目主要研究為開發(fā)一套摔倒自動識別報(bào)警平臺,使用視頻監(jiān)控其采集多路視頻流數(shù)據(jù),使用行人檢測算法、關(guān)鍵點(diǎn)檢測算法以及摔倒檢測算法實(shí)現(xiàn)對行人摔倒自動識別,并根據(jù)檢測情況,對相關(guān)人員發(fā)送警報(bào),實(shí)現(xiàn)對老人的及時(shí)看護(hù)。該裝置可以布置在養(yǎng)老院等場所,通過算法自動判別,可以大大降低人力成本以及保護(hù)老人的隱私。該項(xiàng)目應(yīng)用場景不知可以用到空巢老人,還可以用到家庭中的孕婦兒童、幼兒園等場景,實(shí)現(xiàn)對兒童的摔倒檢測。

項(xiàng)目中采用 OpenVINO 部署行人檢測算法、關(guān)鍵點(diǎn)檢測算法以及摔倒檢測算法實(shí)現(xiàn)對行人摔倒自動識別算法,并在英特爾開發(fā)套件 AlxBoard 使用 OpenVINO C# API 結(jié)合應(yīng)用場景部署多模型。

項(xiàng)目中所使用的代碼全部在 GitHub 上開源,項(xiàng)目鏈接為:

https://github.com/guojin-yan/OpenVINO-CSharp-API/tree/csharp3.0/tutorial_examples/PP-Human_Fall_Detection

(復(fù)制鏈接到瀏覽器打開)

Part1

英特爾開發(fā)套件

OpenVINO 工具套件

1.1

英特爾發(fā)行版 OpenVINO工具套件基于oneAPI 而開發(fā),可以加快高性能計(jì)算機(jī)視覺深度學(xué)習(xí)視覺應(yīng)用開發(fā)速度工具套件,適用于從邊緣到云的各種英特爾平臺上,幫助用戶更快地將更準(zhǔn)確的真實(shí)世界結(jié)果部署到生產(chǎn)系統(tǒng)中。通過簡化的開發(fā)工作流程,OpenVINO 可賦能開發(fā)者在現(xiàn)實(shí)世界中部署高性能應(yīng)用程序和算法。

c3e8f51a-699e-11ee-939d-92fbcf53809c.png

OpenVINO 2023.1 于 2023 年 9 月 18 日發(fā)布,該工具包帶來了挖掘生成人工智能全部潛力的新功能。生成人工智能的覆蓋范圍得到了擴(kuò)展,通過 PyTorch* 等框架增強(qiáng)了體驗(yàn),您可以在其中自動導(dǎo)入和轉(zhuǎn)換模型。大型語言模型(LLM)在運(yùn)行時(shí)性能和內(nèi)存優(yōu)化方面得到了提升。聊天機(jī)器人、代碼生成等的模型已啟用。OpenVINO 更便攜,性能更高,可以在任何需要的地方運(yùn)行:在邊緣、云中或本地。

英特爾開發(fā)套件 AlxBoard 介紹

1.2

c40174c8-699e-11ee-939d-92fbcf53809c.png

產(chǎn)品定位

英特爾開發(fā)套件 AlxBoard 是英特爾開發(fā)套件官方序列中的一員,專為入門級人工智能應(yīng)用和邊緣智能設(shè)備而設(shè)計(jì)。英特爾開發(fā)套件 AlxBoard 能完美勝人工智能學(xué)習(xí)、開發(fā)、實(shí)訓(xùn)、應(yīng)用等不同應(yīng)用場景。該套件預(yù)裝了英特爾OpenVINO 工具套件、模型倉庫和演示案例,便于您輕松快捷地開始應(yīng)用開發(fā)。

套件主要接口與 Jetson Nano 載板兼容,GPIO 與樹莓派兼容,能夠最大限度地復(fù)用成熟的生態(tài)資源。這使得套件能夠作為邊緣計(jì)算引擎,為人工智能產(chǎn)品驗(yàn)證和開發(fā)提供強(qiáng)大支持;同時(shí),也可以作為域控核心,為機(jī)器人產(chǎn)品開發(fā)提供技術(shù)支撐。

使用英特爾開發(fā)套件 AlxBoard,您將能夠在短時(shí)間內(nèi)構(gòu)建出一個(gè)出色的人工智能應(yīng)用應(yīng)用程序。無論是用于科研、教育還是商業(yè)領(lǐng)域,英特爾開發(fā)套件 AlxBoard都能為您提供良好的支持。借助 OpenVINO工具套件,CPU、iGPU 都具備強(qiáng)勁的 AI 推理能力,支持在圖像分類、目標(biāo)檢測、分割和語音處理等應(yīng)用中并行運(yùn)行多個(gè)神經(jīng)網(wǎng)絡(luò)。

產(chǎn)品參數(shù)

c41c5e78-699e-11ee-939d-92fbcf53809c.png

AI 推理單元

借助 OpenVINO 工具,能夠?qū)崿F(xiàn) CPU+iGPU 異構(gòu)計(jì)算推理,IGPU 算力約為 0.6TOPS

c434f1b8-699e-11ee-939d-92fbcf53809c.png

Part2

PaddleDetection

實(shí)時(shí)行人分析工具 PP-Human

飛槳 (PaddlePaddle) 是集深度學(xué)習(xí)核心框架、工具組件和服務(wù)平臺為一體的技術(shù)先進(jìn)、功能完備的開源深度學(xué)習(xí)平臺,已被中國企業(yè)廣泛使用,深度契合企業(yè)應(yīng)用需求,擁有活躍的開發(fā)者社區(qū)生態(tài)。提供豐富的官方支持模型集合,并推出全類型的高性能部署和集成方案供開發(fā)者使用。是中國首個(gè)自主研發(fā)、功能豐富、開源開放的產(chǎn)業(yè)級深度學(xué)習(xí)平臺。

PaddleDetection 是一個(gè)基于 PaddlePaddle 的目標(biāo)檢測端到端開發(fā)套件,內(nèi)置 30+ 模型算法及 250+ 預(yù)訓(xùn)練模型,覆蓋目標(biāo)檢測、實(shí)例分割、跟蹤、關(guān)鍵點(diǎn)檢測等方向,其中包括服務(wù)器端和移動端高精度、輕量級產(chǎn)業(yè)級 SOTA 模型、冠軍方案和學(xué)術(shù)前沿算法,并提供配置化的網(wǎng)絡(luò)模塊組件、十余種數(shù)據(jù)增強(qiáng)策略和損失函數(shù)等高階優(yōu)化支持和多種部署方案。在提供豐富的模型組件和測試基準(zhǔn)的同時(shí),注重端到端的產(chǎn)業(yè)落地應(yīng)用,通過打造產(chǎn)業(yè)級特色模型|工具、建設(shè)產(chǎn)業(yè)應(yīng)用范例等手段,幫助開發(fā)者實(shí)現(xiàn)數(shù)據(jù)準(zhǔn)備、模型選型、模型訓(xùn)練、模型部署的全流程打通,快速進(jìn)行落地應(yīng)用。

c44c70ea-699e-11ee-939d-92fbcf53809c.png

在實(shí)際應(yīng)用中,打架、摔倒、異常闖入等異常行為的發(fā)生率高、后果嚴(yán)重,使得其成為了安防領(lǐng)域中重點(diǎn)監(jiān)控的場景。飛槳目標(biāo)檢測套件 PaddleDetection 中開源的行人分析工具 PP-Human 提供了五大異常行為識別、26 種人體屬性分析、人流計(jì)數(shù)、跨鏡 ReID 四大產(chǎn)業(yè)級功能,其中異常行為識別功能覆蓋了對摔倒、打架、打電話、抽煙、闖入等行為的檢測。

c46e87c0-699e-11ee-939d-92fbcf53809c.jpg

如圖所示,PP-Human 支持單張圖片、圖片文件夾單鏡頭視頻和多鏡頭視頻輸入,經(jīng)目標(biāo)檢測以及特征關(guān)聯(lián),實(shí)現(xiàn)屬性識別、關(guān)鍵點(diǎn)檢測、軌跡/流量計(jì)數(shù)以及行為識別等功能。此處基于 OpenVINO 模型部署套件,進(jìn)行多種模型聯(lián)合部署,實(shí)現(xiàn)實(shí)時(shí)行人行為識別,此處主要實(shí)現(xiàn)行人摔倒識別。

c485fe78-699e-11ee-939d-92fbcf53809c.png

Part3

預(yù)測模型獲取與轉(zhuǎn)換

PP-YOLOE 行人跟蹤

3.1

模型介紹

PP-YOLOE 是基于 PP-YOLOv2 的卓越的單階段 Anchor-free 模型,超越了多種流行的 YOLO 模型,可以通過 width multiplier 和 depth multiplier 配置。PP-YOLOE 避免了使用諸如 Deformable Convolution 或者 Matrix NMS 之類的特殊算子,以使其能輕松地部署在多種多樣的硬件上。此處主要利用 PP-Yoloe 模型進(jìn)行行人跟蹤。

c4a5be66-699e-11ee-939d-92fbcf53809c.png

表2 PP-Yoloe Paddle 格式模型信息

表 2 為 Paddle 格式下 PP-YOLOE 模型的輸入與輸出相關(guān)信息,該模型包括兩個(gè)輸入與兩個(gè)輸出,可以實(shí)現(xiàn)行人識別,該模型可以直接在飛槳平臺下載。但由于 PP-Yoloe 模型無法在 OpenVINO 平臺直接部署,需要進(jìn)行節(jié)點(diǎn)裁剪,即裁剪掉 scale_factor 輸入節(jié)點(diǎn),裁剪后模型結(jié)構(gòu)如表 3 所示,具體如何裁剪后續(xù)講解。

c4ba30a8-699e-11ee-939d-92fbcf53809c.png

表3 PP-YOLOE Paddle 格式模型信息

模型下載與轉(zhuǎn)換

(1) PaddlePaddle 模型下載與裁剪:

PP-Human 提供了訓(xùn)練好的行人跟蹤模型,此處只需要下載,并將其解壓到指定文件夾中:

weget https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_l_36e_pipeline.zip

此處模型裁剪主要是在 Paddle 模型格式下進(jìn)行裁剪,裁剪方式參考的jiangjiajun [1]提供的模型裁剪方式,為了方便使用,當(dāng)前項(xiàng)目提供了模型裁剪工具包,在 “./paddle_model_process/” 文件夾下,利用命令進(jìn)行模型裁剪:

python prune_paddle_model.py --model_dir mot_ppyoloe_l_36e_pipeline --model_filename model.pdmodel --params_filename model.pdiparams --output_names tmp_16 concat_14.tmp_0 --save_dir export_model

如表 4 所示,提供了模型裁剪命令說明,大家可以根據(jù)自己設(shè)置進(jìn)行模型裁剪,當(dāng)前命令裁剪的模型目前已經(jīng)進(jìn)行測試,完全符合當(dāng)前階段的要求。

c4d3e2f0-699e-11ee-939d-92fbcf53809c.png

表4模型裁剪命令說明

(2)轉(zhuǎn)換為 ONNX 格式:

該方式需要安裝 paddle2onnx和onnxruntime 模塊。導(dǎo)出方式比較簡單,可以進(jìn)行模型輸入固定,此處使用的都為 bath_size=1,在命令行中輸入以下指令進(jìn)行轉(zhuǎn)換:

paddle2onnx --model_dir mot_ppyoloe_l_36e_pipeline --model_filename model.pdmodel --params_filename model.pdiparams --input_shape_dict "{'image':[1,3,640,640]}" --opset_version 11 --save_file mot_ppyoloe_l_36e_pipeline.onnx

(3)轉(zhuǎn)成 IR 格式

IR 格式為 OpenVINO 原生支持的模型格式,此處主要通過 OpenVINO 工具進(jìn)行轉(zhuǎn)換,直接在命令行輸入以下指令即可:

mo --input_model mot_ppyoloe_l_36e_pipeline.onnx

PP-TinyPose 人體姿態(tài)識別

3.2

模型介紹

PP-TinyPose 是 PaddlePaddle 提供了關(guān)鍵點(diǎn)識別模型,PP-TinyPose 在單人和多人場景均達(dá)到性能 SOTA,同時(shí)對檢測人數(shù)無上限,并且在微小目標(biāo)場景有卓越效果,助力開發(fā)者高性能實(shí)現(xiàn)異常行為識別、智能健身、體感互動游戲、人機(jī)交互等任務(wù)。同時(shí)擴(kuò)大數(shù)據(jù)集,減小輸入尺寸,預(yù)處理與后處理加入 AID、UDP 和 DARK 等策略,保證模型的高性能。實(shí)現(xiàn)速度在 FP16 下 122FPS 的情況下,精度也可達(dá)到 51.8%AP,不僅比其他類似實(shí)現(xiàn)速度更快,精度更是提升了 130%。此處使用的是 dark_hrnet_w32_256x192 模型,該模型輸入與輸出如下表所示。

c4f48032-699e-11ee-939d-92fbcf53809c.png

表5 dark_hrnet_w32_256x192 Paddle模型信息

表 5 為 Paddle 格式下 dark_hrnet_w32_256x192 模型的輸入與輸出相關(guān)信息,除此以外,飛槳還提供了輸入大小為 128×96 的模型,這兩類模型在部署時(shí)所有操作基本一致,主要差別就是輸入與輸出的形狀不同。分析模型的輸入和輸出可以獲取以下幾個(gè)點(diǎn):

第一模型的輸入與 conv2d_585.tmp_1 節(jié)點(diǎn)輸出形狀,呈現(xiàn)倍數(shù)關(guān)系,具體是輸入的長寬是輸出的四倍,因此我們可以通過輸入形狀來推算輸出的大小。

第二模型 argmax_0.tmp_00 節(jié)點(diǎn)輸出為預(yù)測出的 17 個(gè)點(diǎn)的灰度圖,因此后續(xù)在進(jìn)行數(shù)據(jù)處理是,只需要尋找到最大值所在位置,就可以找到近似的位置。

模型下載與轉(zhuǎn)換

(1)PaddlePaddle 模型下載方式:

命令行直接輸入以下代碼,或者瀏覽器輸入后面的網(wǎng)址即可。

wget https://bj.bcebos.com/v1/paddledet/models/pipeline/dark_hrnet_w32_256x192.zip

下載好后將其解壓到文件夾中,便可以獲得 Paddle 格式的推理模型。

(2)轉(zhuǎn)換為 ONNX 格式:

該方式需要安裝 paddle2onnx 和 onnxruntime 模塊。在命令行中輸入以下指令進(jìn)行轉(zhuǎn)換,其中轉(zhuǎn)換時(shí)需要指定 input_shape,否者推理時(shí)間會很長:

paddle2onnx --model_dir dark_hrnet_w32_256x192 --model_filename model.pdmodel --params_filename model.pdiparams --input_shape_dict "{'image':[1,3,256,192]}" --opset_version 11 --save_file dark_hrnet_w32_256x192.onnx

(3)轉(zhuǎn)換為 IR 格式

利用 OpenVINO 模型優(yōu)化器,可以實(shí)現(xiàn)將 ONNX 模型轉(zhuǎn)為 IR 格式。在 OpenVINO 環(huán)境下,切換到模型優(yōu)化器文件夾,直接使用下面指令便可以進(jìn)行轉(zhuǎn)換。

cd .openvino	ools
mo --input_model paddle/model.pdmodel --input_shape [1,3,256,192]

經(jīng)過上述指令模型轉(zhuǎn)換后,可以在當(dāng)前文件夾下找到轉(zhuǎn)換后的三個(gè)文件。

由于 OpenVINO TM 支持 FP16 推理,此處為了對比推理時(shí)間,也已并將模型轉(zhuǎn)為 FP16 格式:

mo --input_model paddle/model.pdmodel --data_type FP16 --input_shape [1,3,256,192]

ST-GCN 基于關(guān)鍵點(diǎn)的行為識別

3.3

模型介紹

摔倒行為識別模型使用了 ST-GCN,并基于 PaddleVideo 套件完成模型訓(xùn)練,此處可以直接下載飛槳提供的訓(xùn)練好的模型。

c5197ff4-699e-11ee-939d-92fbcf53809c.png

表6 ST-GCN Paddle模型信息

表6 為 Paddle 格式下 ST-GCN 模型的輸入與輸出相關(guān)信息,該模型輸入為人體骨骼關(guān)鍵識別,由于摔倒是一個(gè)連續(xù)的過程,因此需要同時(shí)輸入 50 幀的關(guān)鍵點(diǎn)結(jié)果,因此該模型不支持單張圖片的預(yù)測,只支持視頻的推理預(yù)測;其模型輸出為是否摔倒的概率。

模型下載與轉(zhuǎn)換

(1)PaddlePaddle 模型下載方式:

命令行直接輸入以下代碼,或者瀏覽器輸入后面的網(wǎng)址即可。

wget https://bj.bcebos.com/v1/paddledet/models/pipeline/STGCN.zip

下載好后將其解壓到文件夾中,便可以獲得 Paddle 格式的推理模型。

(2)轉(zhuǎn)換為 ONNX 格式:

該方式需要安裝 paddle2onnx和onnxruntime 模塊。在命令行中輸入以下指令進(jìn)行轉(zhuǎn)換:

paddle2onnx --model_dir STGCN --model_filename model.pdmodel --params_filename model.pdiparams --opset_version 11 --save_file STGCN.onnx

(3)轉(zhuǎn)換為IR格式

利用 OpenVINO 模型優(yōu)化器,可以實(shí)現(xiàn)將 ONNX 模型轉(zhuǎn)為 IR 格式。在 OpenVINO 環(huán)境下,切換到模型優(yōu)化器文件夾,直接使用下面指令便可以進(jìn)行轉(zhuǎn)換。

cd .openvino	ools
mo --input_model paddle/model.pdmode

經(jīng)過上述指令模型轉(zhuǎn)換后,可以在當(dāng)前文件夾下找到轉(zhuǎn)換后的三個(gè)文件。

由于 OpenVINO 支持 FP16 推理,此處為了對比推理時(shí)間,也已并將模型轉(zhuǎn)為 FP16 格式:

mo --input_model paddle/model.pdmodel --data_type FP16

Part4

配置 PP-Human_Fall_Detection 項(xiàng)目

項(xiàng)目中所使用的代碼已經(jīng)放在 GitHub 倉庫 PP-Human_Fall_Detection[2],大家可以根據(jù)情況自行下載和使用,下面我將會從頭開始一步步構(gòu)建 PP-Human_Fall_Detection 項(xiàng)目。

環(huán)境配置

4.1

在該項(xiàng)目中主要需要配置 .NET 編譯運(yùn)行環(huán)境、OpenVINO Runtime、OpenCvSharp 環(huán)境,其配置流程可以參考上一篇文章:【2023 Intel 有獎?wù)魑摹坑⑻貭栭_發(fā)套件 AlxBoard 使用 OpenVINO C# API 部署 Yolov8 模型 [3]。

創(chuàng)建 PP-Human_Fall_Detection項(xiàng)目

4.2

在該項(xiàng)目中,我們需要使用 OpenCvSharp,該依賴目前在 Ubutun 平臺最高可以支持 .NET Core 3.1,因此我們此處創(chuàng)建一個(gè) .NET Core 3.1 的項(xiàng)目,使用 Terminal 輸入以下指令創(chuàng)建并打開項(xiàng)目文件:

dotnet new console --framework "netcoreapp3.1" -o PP-Human_Fall_Detection
cd PP-Human_Fall_Detection

c5305fda-699e-11ee-939d-92fbcf53809c.png

添加項(xiàng)目源碼

4.3

前文中我們已經(jīng)提供了項(xiàng)目源碼鏈接,大家可以直接再在源碼使用,此處由于篇幅限制,因此此處不對源碼做太多的講解,只演示如何使用項(xiàng)目源碼配置當(dāng)前項(xiàng)目。將項(xiàng)目源碼中的 PP-Human 文件夾和 HumanFallDown.cs、Program.cs 文件復(fù)制到當(dāng)前項(xiàng)目中,最后項(xiàng)目的路徑關(guān)系如下所示:

PP-Human_Fall_Detection
 ├──── PP-Human
 |  ├──── Common.cs
 |  ├──── PP-TinyPose.cs
 |  ├──── PP-YOLOE.cs
 |  └──── STGCN.cs
 ├──── HumanFallDown.cs
 ├──── PP-Human_Fall_Detection.csproj
 └──── Program.cs

添加OpenVINO C# API

4.4

OpenVINO C# API 目前只支持克隆源碼的方式實(shí)現(xiàn),首先使用 Git 克隆以下源碼,只需要在 Terminal 輸入以下命令:

git clone https://github.com/guojin-yan/OpenVINO-CSharp-API.git

c552962c-699e-11ee-939d-92fbcf53809c.png

然后將該項(xiàng)目文件夾下的除了 src 文件夾之外的文件都刪除掉,然后項(xiàng)目的文件路徑入下所示:

PP-Human_Fall_Detection
 ├──── OpenVINO-CSharp-API
 |  ├──── src
 |     └──── CSharpAPI
 ├──── PP-Human
 |  ├──── Common.cs
 |  ├──── PP-TinyPose.cs
 |  ├──── PP-YOLOE.cs
 |  └──── STGCN.cs
 ├──── HumanFallDown.cs
 ├──── PP-Human_Fall_Detection.csproj
 └──── Program.cs

最后在當(dāng)前項(xiàng)目中添加項(xiàng)目引用,只需要在 Terminal 輸入以下命令:

dotnet add reference ./OpenVINO-CSharp-API/src/CSharpAPI/CSharpAPI.csproj

c57f0a9a-699e-11ee-939d-92fbcf53809c.png

添加OpenCvSharp

4.5

安裝 NuGet Package

OpenCvSharp 可以通過 NuGet Package 安裝,只需要在 Termina l輸入以下命令:

dotnet add package OpenCvSharp4_.runtime.ubuntu.20.04-x64
dotnet add package OpenCvSharp4

c58e3484-699e-11ee-939d-92fbcf53809c.pngc5a20cf2-699e-11ee-939d-92fbcf53809c.png

添加環(huán)境變量

將以下路徑添加到環(huán)境變量中:

export LD_LIBRARY_PATH=/home/ygj/Program/ OpenVINO-CSharp-API/tutorial_examples/AlxBoard_deploy_yolov8/bin/Debug/netcoreapp3.1/runtimes/ubuntu.20.04-x64/native

/bin/Debug/netcoreapp3.1/runtimes/ubuntu.20.04-x64/native 是項(xiàng)目編譯后生成的路徑,該路徑下存放了 libOpenCvSharpExtern.so 文件,該文件主要是封裝的 OpenCV 中的各種接口。也可以將該文件拷貝到項(xiàng)目運(yùn)行路徑下。

Part5

測試PP-Human_Fall_Detection項(xiàng)目

創(chuàng)建視頻讀取器

5.1

當(dāng)前項(xiàng)目測試內(nèi)容為視頻,此處主要通過 OpenCV的VideoCapture 類進(jìn)行讀取,實(shí)現(xiàn)逐幀讀取測試圖片。

// 視頻路徑
string test_video = @"E:Git_space基于Csharp和OpenVINO部署PP-Humandemo摔倒.mp4";
// string test_video = @"E:Git_space基于Csharp和OpenVINO部署PP-Humandemo摔倒2.mp4";
// 視頻讀取器
VideoCapture video_capture = new VideoCapture(test_video);
// 視頻幀率
double fps = video_capture.Fps;
// 視頻幀數(shù)
int frame_count = video_capture.FrameCount;
Console.WriteLine("video fps: {0}, frame_count: {1}", Math.Round(fps), frame_count);

行人識別

5.2

利用創(chuàng)建好的視頻讀取器逐幀讀取視頻圖片,將其帶入到 yoloe_predictor 預(yù)測器中進(jìn)行預(yù)測,并將預(yù)測結(jié)果繪制到圖片上,期預(yù)測結(jié)果存放到 ResBboxs 類中,方便進(jìn)行數(shù)據(jù)傳輸。

// 讀取視頻幀
if (!video_capture.Read(frame))
{
  Console.WriteLine("視頻讀取完畢!!{0}", frame_id);
  break;
}
// 復(fù)制可視化圖片
visualize_frame = frame.Clone();
// 行人識別
ResBboxs person_result = yoloe_predictor.predict(frame);
// 判斷是否識別到人
if (person_result.bboxs.Count < 1)
{
  continue;
}
// 繪制行人區(qū)域
yoloe_predictor.draw_boxes(person_result, ref visualize_frame);

通過上述代碼,可以實(shí)現(xiàn)視頻所有幀圖片預(yù)測,將預(yù)測結(jié)果保存到本地,如圖所示,經(jīng)過預(yù)測器預(yù)測,可以很好的捕獲到運(yùn)動的行人。

c5ad3028-699e-11ee-939d-92fbcf53809c.gif

關(guān)鍵點(diǎn)識別

5.3

上一步通過行人跟蹤,捕捉到了行人,由于行人是在不斷運(yùn)動的,因此在進(jìn)行關(guān)鍵點(diǎn)預(yù)測時(shí),需要先進(jìn)行裁剪,將行人區(qū)域按照指定要求裁剪下來,并根據(jù)裁剪結(jié)果對行人關(guān)鍵點(diǎn)進(jìn)行預(yù)測,此處使用的是 bath_size=1 的預(yù)測,適合單人預(yù)測,如果出現(xiàn)多人時(shí),可以采用同時(shí)預(yù)測。

// 裁剪行人區(qū)域
List point_rects;
List person_rois = tinyPose_predictor.get_point_roi(frame, person_result.bboxs, out point_rects);
for (int p = 0; p < person_rois.Count; p++)
{
  // 關(guān)鍵點(diǎn)識別
  float[,] person_point = tinyPose_predictor.predict(person_rois[p]);
  KeyPoints key_point = new KeyPoints(frame_id, person_point, point_rects[p]);
  //Console.WriteLine(key_point.bbox);
  flag_stgcn = mot_point.add_point(key_point);
  tinyPose_predictor.draw_poses(key_point, ref visualize_frame);
}

經(jīng)過模型預(yù)測,第一會將預(yù)測結(jié)果存到結(jié)果容器“mot_point”中,用于后面的摔倒識別;另一點(diǎn)將模型預(yù)測結(jié)果繪制到圖像中,如圖所示。

c744dbe8-699e-11ee-939d-92fbcf53809c.gif

摔倒識別

5.4

摔倒識別需要同時(shí)輸入 50 幀人體關(guān)鍵點(diǎn)識別結(jié)果,所以在開始階段需要積累 50 幀的關(guān)鍵點(diǎn)識別結(jié)果,此處采用自定義的結(jié)果保存容器 “MotPoint” 實(shí)現(xiàn),該容器可以實(shí)現(xiàn)保存關(guān)鍵點(diǎn)結(jié)果,并將關(guān)鍵點(diǎn)識別結(jié)果與上一幀結(jié)果進(jìn)行匹配,當(dāng)容器已滿會返回推理標(biāo)志,當(dāng)滿足識別條件是,就會進(jìn)行依次模型預(yù)測;同時(shí)會清理前 20 幀數(shù)據(jù),繼續(xù)填充識別結(jié)果等待下一次滿足條件。

if (flag_stgcn)
{
  List> predict_points = mot_point.get_points();
  for (int p = 0; p < predict_points.Count; p++)
 {
    Console.WriteLine(predict_points[p].Count);
    fall_down_result = stgcn_predictor.predict(predict_points[p]);
 }
}
stgcn_predictor.draw_result(ref visualize_frame, fall_down_result, person_result.bboxs[0]);

摔倒識別結(jié)果為是否摔倒以及對應(yīng)的權(quán)重,此處主要是在滿足條件的情況下,進(jìn)行一次行為識別,并將識別結(jié)果繪制到圖像上。

模型聯(lián)合部署實(shí)現(xiàn)行人摔倒識別

5.5

通過行人跟蹤、關(guān)鍵點(diǎn)識別以及行為識別三個(gè)模型聯(lián)合預(yù)測,可以實(shí)現(xiàn)行人的行為識別,其識別效果如圖 14 所示。在該圖中分別包含了三個(gè)模型的識別結(jié)果:行人位置識別與跟蹤是通過 PP-YOLOE 模型實(shí)現(xiàn)的,該模型為下一步關(guān)鍵點(diǎn)識別提供了圖像范圍,保證了關(guān)鍵點(diǎn)識別的結(jié)果;人體骨骼關(guān)鍵點(diǎn)識別時(shí)通過 dark_hrnet 模型實(shí)現(xiàn),為后續(xù)行為識別提供了輸入;最終的行為識別通過 ST-GCN 模型實(shí)現(xiàn),其識別結(jié)果會知道了行人預(yù)測框下部,可以看到預(yù)測結(jié)果與行人是否摔倒一致。

c7aa6bca-699e-11ee-939d-92fbcf53809c.gif

Part6

總結(jié)

在該項(xiàng)目中,基于 C# 和 OpenVINO 聯(lián)合部署 PP-YOLOE 行人檢測模型、dark_hrnet 人體關(guān)鍵點(diǎn)識別模型以及 ST-GCN 行為識別模型,實(shí)現(xiàn)行人摔倒檢測。

在該項(xiàng)目中,主要存在的難點(diǎn)一是 PP-YOLOE 模型無法直接使用 OpenVINO 部署,需要進(jìn)行裁剪,裁剪掉無法使用的節(jié)點(diǎn),并根據(jù)裁剪的節(jié)點(diǎn),處理模型的輸出數(shù)據(jù);難點(diǎn)二是處理好行人預(yù)測與關(guān)鍵點(diǎn)模型識別內(nèi)容的關(guān)系,在進(jìn)行多人識別時(shí),要結(jié)合行人識別模型進(jìn)行對應(yīng)的人體關(guān)鍵點(diǎn)識別,并且要當(dāng)前幀識別結(jié)果要對應(yīng)上一幀行人識別結(jié)果才可以保證識別的連續(xù)性。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 英特爾
    +關(guān)注

    關(guān)注

    61

    文章

    10285

    瀏覽量

    179800
  • 視頻監(jiān)控
    +關(guān)注

    關(guān)注

    17

    文章

    1730

    瀏覽量

    67635
  • 語言模型
    +關(guān)注

    關(guān)注

    0

    文章

    570

    瀏覽量

    11288

原文標(biāo)題:行人摔倒檢測 - 在英特爾開發(fā)套件上基于 OpenVINO? C# API 部署 PP-Human | 開發(fā)者實(shí)戰(zhàn)

文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于C#OpenVINO?英特爾獨(dú)立顯卡上部署PP-TinyPose模型

    OpenVINO,將 PP-TinyPose 模型部署英特爾獨(dú)立顯卡。 1.1
    的頭像 發(fā)表于 11-18 18:27 ?3578次閱讀

    英特爾?獨(dú)立顯卡與OpenVINO?工具套件結(jié)合使用時(shí),無法運(yùn)行推理怎么解決?

    使用英特爾?獨(dú)立顯卡與OpenVINO?工具套件時(shí)無法運(yùn)行推理
    發(fā)表于 03-05 06:56

    為什么無法檢測OpenVINO?工具套件中的英特爾?集成圖形處理單元?

    Ubuntu* Desktop 22.04 安裝了 英特爾? Graphics Driver 版本并OpenVINO? 2023.1。 運(yùn)行 python 代碼: python
    發(fā)表于 03-05 08:36

    介紹英特爾?分布式OpenVINO?工具包

    性能。 英特爾?OpenlandOpen?管理軟件包包括英特爾?深度學(xué)習(xí)部署工具包(英特爾?DLDT)。適用于Linux *的OpenVINO
    發(fā)表于 07-26 06:45

    英特爾BOOT Loader開發(fā)套件-高級嵌入式開發(fā)基礎(chǔ)

    從技術(shù)角度概括介紹用于快速開發(fā)部署啟動加載器的英特爾 Boot Loader 開發(fā)套件(英特爾 BLDK),該
    發(fā)表于 12-07 14:57 ?59次下載
    <b class='flag-5'>英特爾</b>BOOT Loader<b class='flag-5'>開發(fā)套件</b>-高級嵌入式<b class='flag-5'>開發(fā)</b>基礎(chǔ)

    使用英特爾物聯(lián)網(wǎng)商業(yè)開發(fā)套件改變世界

    使用英特爾?物聯(lián)網(wǎng)商業(yè)開發(fā)套件改變世界。
    的頭像 發(fā)表于 05-31 10:06 ?2542次閱讀

    產(chǎn)業(yè)級預(yù)訓(xùn)練模型的實(shí)時(shí)行人分析工具PP-Human

    今天給大家介紹的,就是這樣一套不僅擁有上述能力,還直接提供目標(biāo)檢測、屬性分析、關(guān)鍵點(diǎn)檢測、行為識別、ReID等產(chǎn)業(yè)級預(yù)訓(xùn)練模型的實(shí)時(shí)行人分析工具PP-Human,方便
    的頭像 發(fā)表于 04-20 10:16 ?2674次閱讀

    C#調(diào)用OpenVINO工具套件部署Al模型項(xiàng)目開發(fā)項(xiàng)目

    OpenVINO 工具套件英特爾基于自身現(xiàn)有的硬件平臺開發(fā)的一種可以加快高性能計(jì)算機(jī)視覺和深度學(xué)習(xí)視覺應(yīng)用開發(fā)速度工具
    的頭像 發(fā)表于 05-06 11:20 ?2263次閱讀

    基于OpenVINO?工具包部署飛槳PP-Human的全流程

    PP-Human是飛槳目標(biāo)檢測套件PaddleDetection中開源的實(shí)時(shí)行人分析工具,提供了五大異常行為識別和四大產(chǎn)業(yè)級功能:人體屬性分析、人流計(jì)數(shù)、跨鏡ReID
    的頭像 發(fā)表于 02-23 18:03 ?1688次閱讀

    基于OpenVINO英特爾開發(fā)套件實(shí)現(xiàn)眼部追蹤

    本文將以訓(xùn)練一個(gè)眼部追蹤 AI 小模型為背景,介紹從 Pytorch 自定義網(wǎng)絡(luò)模型,到使用 OpenVINO NNCF 量化工具優(yōu)化模型,并部署英特爾開發(fā)套件愛克斯
    的頭像 發(fā)表于 09-18 10:11 ?1337次閱讀

    基于英特爾開發(fā)套件的AI字幕生成器設(shè)計(jì)

    市面上有很多自然語言處理模型,本文旨在幫助開發(fā)者快速將 OpenAI* 的熱門 NLP 模型 Whisper 部署英特爾 開發(fā)套件愛克斯開發(fā)
    的頭像 發(fā)表于 09-27 16:59 ?1740次閱讀
    基于<b class='flag-5'>英特爾</b><b class='flag-5'>開發(fā)套件</b>的AI字幕生成器設(shè)計(jì)

    基于OpenVINO C# API部署RT-DETR模型

    C# 環(huán)境下使用該模型應(yīng)用到工業(yè)檢測中,因此本文中,我們將向大家展示使用 OpenVINO Csharp API
    的頭像 發(fā)表于 11-10 16:59 ?1772次閱讀
    基于<b class='flag-5'>OpenVINO</b> <b class='flag-5'>C#</b> <b class='flag-5'>API</b><b class='flag-5'>部署</b>RT-DETR模型

    基于英特爾哪吒開發(fā)套件平臺來快速部署OpenVINO Java實(shí)戰(zhàn)

    OpenVINO 工具套件基于OneAPI開發(fā),可以加快高性能計(jì)算機(jī)視覺和深度學(xué)習(xí)應(yīng)用開發(fā)速度的工具套件,適用于從邊緣到云的各種
    的頭像 發(fā)表于 03-21 18:24 ?2387次閱讀
    基于<b class='flag-5'>英特爾</b>哪吒<b class='flag-5'>開發(fā)</b>者<b class='flag-5'>套件</b>平臺來快速<b class='flag-5'>部署</b><b class='flag-5'>OpenVINO</b> Java實(shí)戰(zhàn)

    使用英特爾哪吒開發(fā)套件部署YOLOv5完成透明物體目標(biāo)檢測

    英特爾的哪吒(Nezha)開發(fā)套件是一款專為邊緣AI和物聯(lián)網(wǎng)應(yīng)用設(shè)計(jì)的高性能計(jì)算平臺,搭載了英特爾 N97處理器、內(nèi)置英特爾 UHD Graphics GPU,并提供高達(dá)8GB LPD
    的頭像 發(fā)表于 11-25 17:15 ?1188次閱讀
    使用<b class='flag-5'>英特爾</b>哪吒<b class='flag-5'>開發(fā)套件</b><b class='flag-5'>部署</b>YOLOv5完成透明物體目標(biāo)<b class='flag-5'>檢測</b>

    C#中使用OpenVINO?:輕松集成AI模型!

    作者:算力魔方創(chuàng)始人/英特爾創(chuàng)新大使劉力 C#不僅在PC游戲開發(fā)、大型商業(yè)系統(tǒng)領(lǐng)域應(yīng)用廣泛,還成為開源測控、機(jī)器視覺與運(yùn)動控制,以及PC數(shù)集與分析領(lǐng)域中的主流開發(fā)語言!
    的頭像 發(fā)表于 02-07 14:05 ?1802次閱讀
    <b class='flag-5'>C#</b>中使用<b class='flag-5'>OpenVINO</b>?:輕松集成AI模型!