色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發(fā)燒友App

硬聲App

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網>電子資料下載>電子資料>NVIDIA Jetson Nano上的智能視頻分析

NVIDIA Jetson Nano上的智能視頻分析

2023-07-06 | zip | 0.00 MB | 次下載 | 免費

資料介紹

例如,未來的城市,也被稱為智慧城市,應該部署攝像頭網絡來提供監(jiān)控以防止犯罪、有效管理交通并減少能源使用。工作原理基于多層神經網絡,使用無限數(shù)據(jù)集進行訓練。然而,訓練深度學習網絡是一項計算密集型任務,需要并行執(zhí)行許多矩陣乘法運算。因此,許多最先進的商用單板計算機不是執(zhí)行上述任務的合適硬件平臺,因為它們是單線程性能優(yōu)化架構。隨著開發(fā)人員套件的到來,例如 NVIDIA 的 Jetson Nano,專門用于運行人工智能工作負載,

?

在這個項目中,我們將注意力集中在計算機視覺中的一個突出主題:行人分析。我們根據(jù)人們行為分析可以為地方當局提供的不同用例做出這一選擇,以定制該技術可能定位的當?shù)厝丝诘男枨蟆?/font>例如,我們設想以下應用程序:

  • 統(tǒng)計出入地鐵或公交車站的人數(shù),以規(guī)范行人交通。
  • 統(tǒng)計在商店櫥窗里看文章的人數(shù),以建立一定數(shù)量的潛在客戶。

使用深度學習算法計算人數(shù)絕非易事,因為在訓練神經網絡時需要考慮許多參數(shù)例如,捕獲相機所在的高度會擾亂快照的質量,從而給圖片引入噪點,從而更難跟蹤照片場景中的每個行人。因此,訓練階段可能意味著進一步的步驟來識別圖像的屬性。

解決方案

為了克服這些挑戰(zhàn),我們提出了一種基于 NVIDIA Jetson Nano 的解決方案來計算從攝像機前經過的人數(shù)。我們算法的工作原理基于以下任務:

  • 以高捕捉率捕捉圖像。
  • 不同幀率下的人物檢測
  • 跟蹤每個檢測到的人以在下一個數(shù)據(jù)幀中關聯(lián)。
  • 通過在每個快照上區(qū)分個體來對個體進行計數(shù)。

除了人數(shù)統(tǒng)計算法外,還開發(fā)了一個基于網絡的應用程序,以使用用戶選擇的各種參數(shù)來監(jiān)控跟蹤和統(tǒng)計結果。

項目計劃

這個項目使用了一個攝像頭,可以從街道上無縫捕捉圖像,并將它們傳輸?shù)?NVIDIA 的 Jetson Nano 進行進一步處理。除了圖像處理之外,Jetson Nano 還托管一個基于 Web 的應用程序,連接到托管該應用程序的互聯(lián)網的所有設備都可以訪問該應用程序。這個項目需要一個攝像頭從街道上捕捉圖像并將它們傳輸?shù)?Jetson Nano 以處理信息

pYYBAGOIJPOAN8HPAAFOj88gwLo782.jpg
帶有 Waveshare 金屬外殼的 jetson nano
?

硬件

本節(jié)列出了開發(fā)該項目所需的硬件組件:

  • Jetson Nano 開發(fā)者套件
  • Jetson Nano Waveshare 金屬外殼(B 型)
  • IMX219 傳感器 160 度 8MP 網絡攝像頭
  • 無線網卡AC8265
  • 微型SD

您可以在此處找到在 Waveshare 金屬外殼中組裝 Jetson Nano 的說明。

poYBAGOIJPmASTRlAAIQ3pOzLkY793.jpg
將無線網卡安裝到 Jetson Nano 中
?

執(zhí)行

NVIDIA 的 Jetson Nano 附帶一個軟件開發(fā)工具包,稱為 Jetpack 4.3.1,它是 GNU/Linux Ubuntu 操作系統(tǒng)的變體,用于構建人工智能應用程序。此 SDK 的安裝說明可在以下鏈接中找到

該應用程序有 2 個主要組件:

  • 一個 python 編寫的后端應用程序。
  • 基于 Angular 8 框架的 typescript 編寫的前端應用程序。

后端應用程序執(zhí)行以下任務:

  • 從相機源捕獲幀。
  • 加載對象檢測算法。
  • 在每一幀上運行推理。
  • 過濾圖像圖像。
  • 通過 API 公開結果。

前端應用程序改為使用后端的 API 來呈現(xiàn)結果并處理捕獲的數(shù)據(jù)。在以下部分中,將詳細介紹后端和前端應用程序,重點介紹其每個組件。讀者可以在本文末尾找到完整的源代碼。

poYBAGOIJPyAceXrAADA1Y5WM9A535.jpg
前端應用程序的登陸頁面
?

后端 - 捕獲信息

將攝像頭捕獲的數(shù)據(jù)提取到 NVIDIA 的 Jetson Nano 中的最快方法是使用 gstream-lib 庫,該庫從插入的 CSI 攝像頭的流源中設置。OpenCV 的 VideoCapture 函數(shù)通過從設備內存中的指定緩沖區(qū)獲取圖像數(shù)據(jù)來讀取流式源。

后端 - 對象檢測

對象檢測 API 基于構建在 TensorRT 之上的檢測框架,可簡化 Mobilenet SSD 模型的加載。在初始化期間,NVIDIA 的 Jetson Nano 使用 PyCUDA python 庫來訪問 CUDA 的并行計算 API。同時,它創(chuàng)建了一個流屬性,可以在 Jetson Nano 的內存中獲取拍攝的圖像,以使用深度學習訓練的模型執(zhí)行推理操作。

class TrtSSD(object):
    """ TensorRT SSD mobilenet implementation """

    def _load_plugins(self):
        ctypes.CDLL("models/ssd_mobilenet/libflattenconcat.so")
        trt.init_libnvinfer_plugins(self.trt_logger, '')

    def _load_engine(self):
        TRTbin = 'models/ssd_mobilenet/TRT_%s.bin' % self.model
        with open(TRTbin, 'rb') as f, trt.Runtime(self.trt_logger) as runtime:
            return runtime.deserialize_cuda_engine(f.read())

    def _create_context(self):
        for binding in self.engine:
            size = trt.volume(self.engine.get_binding_shape(binding)) * \
                   self.engine.max_batch_size
            host_mem = cuda.pagelocked_empty(size, np.float32)
            cuda_mem = cuda.mem_alloc(host_mem.nbytes)
            self.bindings.append(int(cuda_mem))
            if self.engine.binding_is_input(binding):
                self.host_inputs.append(host_mem)
                self.cuda_inputs.append(cuda_mem)
            else:
                self.host_outputs.append(host_mem)
                self.cuda_outputs.append(cuda_mem)
        return self.engine.create_execution_context()

    def __init__(self, model, input_shape, output_layout=7):
        """Initialize TensorRT plugins, engine and conetxt."""
        self.model = model
        self.input_shape = input_shape
        self.output_layout = output_layout
        self.trt_logger = trt.Logger(trt.Logger.INFO)
        self._load_plugins()
        self.engine = self._load_engine()

        self.host_inputs = []
        self.cuda_inputs = []
        self.host_outputs = []
        self.cuda_outputs = []
        self.bindings = []
        self.stream = cuda.Stream()
        self.context = self._create_context()

    def __del__(self):
        """Free CUDA memories."""
        del self.stream
        del self.cuda_outputs
        del self.cuda_inputs

    def detect(self, img, conf_th=0.3, conf_class=[]):
        """Detect objects in the input image."""
        img_resized = _preprocess_trt(img, self.input_shape)
        np.copyto(self.host_inputs[0], img_resized.ravel())

        cuda.memcpy_htod_async(
            self.cuda_inputs[0], self.host_inputs[0], self.stream)
        self.context.execute_async(
            batch_size=1,
            bindings=self.bindings,
            stream_handle=self.stream.handle)
        cuda.memcpy_dtoh_async(
            self.host_outputs[1], self.cuda_outputs[1], self.stream)
        cuda.memcpy_dtoh_async(
            self.host_outputs[0], self.cuda_outputs[0], self.stream)
        self.stream.synchronize()

        output = self.host_outputs[0]
        return _postprocess_trt(img, output, conf_th, self.output_layout, conf_class)

在推理結束時,根據(jù)檢測目的,基于置信概率閾值做出對象檢測決策。SSD MobileNet 模型在 Coco 數(shù)據(jù)集上獲取神經網絡的預訓練權重,產生 80 個輸出類。對于行人分析,引入了一個名為“Person”的類來收集檢測算法執(zhí)行期間使用的所有屬性。

檢測模型的驗證是通過樣本圖像在模塊中完成的,這使我們能夠毫不費力地交換被測模型。隨后,我們使用 Github 的 Actions 來評估每個模型的性能,避免在引入修改時出現(xiàn)故障。用戶可以使用 Pytest 框架訪問目錄“Test”中的模型評估。

后端 - 對象跟蹤

當人在圖像中可見時,對象定位模塊會繪制一個邊界框。對象跟蹤算法連接到對象定位模塊的輸出,以確定何時有人進入快照場景,量化在捕獲攝像機前經過的人數(shù)。兩種算法都使用稱為“t”的時間度量來存儲與邊界框質心相關的信息。在下一個時間間隔“t+1”中,它使用以下參數(shù)關聯(lián)兩個檢測到的質心:

  • 最近的幀被認為是同一個對象。
  • 當存儲在內存中的前一幀和當前幀不匹配時,一個離開的對象被認為是“消失的”。
  • 當沒有檢測到對象的先前幀時,對象被認為是“新的”。
  • 考慮到質心在先前幀中的位置,計算質心之間的距離。
pYYBAGOIJP-AYPwmAABjnLmJKYg231.png
對象跟蹤算法的架構
?

該算法的魯棒性依賴于在保持與先前幀的質心位置相關的信息的基礎上跟蹤快照場景中多個對象的準確性。有關實現(xiàn)算法的更多詳細信息,請參閱 pyimagesearch 的博客。

后端 - Flask 應用程序

后端 API 構建在 Flask Web 應用程序框架之上,它將 URL 路由鏈接到 Python 函數(shù)。本項目應用的主要路線有:

  • ”/” 和 “/” 渲染來自靜態(tài)前端應用程序的 html、css 和 js 文件。
  • “/imgs/” 以 jpg 字節(jié)發(fā)送圖像
  • “/api/delete”刪除本地圖片
  • “/api/single_image” 從相機捕獲圖像,如果需要運行對象檢測算法,然后將其發(fā)送到前端。
  • “/api/images”根據(jù)日期、時間和檢測到的對象類型等輸入過濾器發(fā)送圖像列表。
  • “/api/list_files” 用于計算每種過濾器的圖像數(shù)量,例如日期、時間和檢測到的對象類型。

前端

開發(fā)了一個基于 Angular 8 的 Web 應用程序來執(zhí)行一些處理操作并直接從圖像中提取信息。這個基于 Web 的應用程序通過 API 與后端應用程序交互,可以在沒有主要限制的情況下加載保存的圖像。

用戶可以通過四個按鈕與 Web 應用程序交互:

  • 實時捕獲模式用于動態(tài)修改每秒幀數(shù),并執(zhí)行對象檢測和跟蹤算法。
  • 統(tǒng)計模式通過 ChartJS 圖表即時查看快照的統(tǒng)計數(shù)據(jù)。此外,它還提供了以馬賽克模式可視化照片的選項。
  • Celery 任務模式可視化在處理階段執(zhí)行的循環(huán)異步任務。
  • 按日期過濾馬賽克照片的數(shù)據(jù)選擇器。
pYYBAGOIJQKAcS9hAAEuOikAmuk908.png
單擊顯示詳細信息的圖像時彈出模態(tài)窗口
?

?

pYYBAGOIO8KABKybAADqgIJooBA075.png
前端應用程序的側邊欄選項
?
pYYBAGOIO8SAc78QAABHucbf9tM851.png
每個過濾器的圖像數(shù)量(檢測到的對象和小時)
?

結果

在許多深度學習用例中,算法的推理階段是在邊緣設備上完成的,而神經網絡的訓練階段是在云端完成的。我們在三種不同的硬件架構上測試了對象檢測應用程序的推理階段:x86、ARM 和 Maxwell GPU廣泛使用的 IntelAMD 處理器中的 x86 架構簡化了深度學習算法的開發(fā),因為許多庫可用于執(zhí)行對象檢測任務。然而,由于嚴格的功耗限制,這種架構不適合物聯(lián)網設備。另一方面,Raspberry Pi 內置的 ARM 處理器在實時檢測階段和干擾階段都沒有提供良好的性能。除了被其他架構超越之外,Raspberry Pi 的 ARM 內核需要持續(xù)冷卻,以避免在神經網絡訓練期間發(fā)生節(jié)流。最后,集成在 NVIDIA 的 Jetson Nano 上的 Maxwell GPU 在性能和功耗之間提供了良好的平衡,因為基于 Tensor RT 框架構建的對象檢測算法由于其被動冷卻可以在很長一段時間內平穩(wěn)執(zhí)行系統(tǒng)和一個附加的外部風扇。一個突出的事實是,與 x86 架構相比,我們在 SSD Mobilenet 模型的推理階段獲得了更好的性能。下表顯示了每個架構在訓練和推理階段的延遲結果:集成在 NVIDIA 的 Jetson Nano 上的 Maxwell GPU 在性能和功耗之間提供了良好的平衡,因為基于 Tensor RT 框架構建的對象檢測算法由于其被動冷卻系統(tǒng)可以在很長一段時間內平穩(wěn)執(zhí)行,并且一個附加的外部風扇。一個突出的事實是,與 x86 架構相比,我們在 SSD Mobilenet 模型的推理階段獲得了更好的性能。下表顯示了每個架構在訓練和推理階段的延遲結果:集成在 NVIDIA 的 Jetson Nano 上的 Maxwell GPU 在性能和功耗之間提供了良好的平衡,因為基于 Tensor RT 框架構建的對象檢測算法由于其被動冷卻系統(tǒng)可以在很長一段時間內平穩(wěn)執(zhí)行,并且一個附加的外部風扇。一個突出的事實是,與 x86 架構相比,我們在 SSD Mobilenet 模型的推理階段獲得了更好的性能。下表顯示了每個架構在訓練和推理階段的延遲結果:

pYYBAGOIO8aAATMuAAA-hWut_uE836.png
ARM、x86 和 Maxwell GPU 架構之間的性能比較。
?

對象跟蹤是使用 Celery 任務管理器執(zhí)行的。通過基于 Web 的應用程序內置的按鈕,可以啟動對象跟蹤任務,檢查后臺運行的其他進程。

最后但并非最不重要的一點是,用于驗證對象檢測和跟蹤的場景是辦公室內的走廊,在正常工作日期間有 130 人經過。在下面的捕獲編譯中,讀者可以觀察到我們實現(xiàn)的結果。

結論

在這個項目的制定和部署過程中,我們了解了 NVIDIA 的 Jetson Nano 提供的許多優(yōu)勢,可以執(zhí)行應用于真實場景中的對象檢測和跟蹤的深度學習任務。該設備成功地在長時間內識別和跟蹤人員,而不會達到失控的內部溫度。此外,它的小尺寸因素使其成為物聯(lián)網應用的理想選擇,因為它有助于在偏遠或危險區(qū)域進行安裝。

我們通過將神經網絡的訓練階段卸載到服務器上,在邊緣設備上維護推理階段來展示邊緣計算的概念。為了利用云上的計算,我們將數(shù)據(jù)從其來源(在本例中為 CSI 攝像機)移動到外部處理單元,克服了這種遷移的隱性挑戰(zhàn),例如延遲、可擴展性、隱私和動態(tài)網絡內部的協(xié)調條件。

總之,我們的檢測和跟蹤深度學習算法的實施有效地解決了辦公室場景的動態(tài)行為,而不會被大量的物體所淹沒,在這種情況下,人們在一個普通的工作日出現(xiàn)。基于網絡的應用程序通過引入簡單的圖像過濾器實現(xiàn)了進一步的圖像處理。

最后,我們想強調的是,這只是深度學習算法的眾多用例之一,在 NVIDIA 的 Jetson Nano 等強大平臺上實施,可以提供解決社會日常問題的方法。通過添加更好的捕獲設備、實施新的檢測解決方案,或者在將數(shù)據(jù)遷移到云中的集中位置期間簡單地建立新的漏洞條件,可以利用這項工作的許多擴展。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1Keysight B1500A 半導體器件分析儀用戶手冊、說明書 (中文)
  2. 19.00 MB  |  4次下載  |  免費
  3. 2使用TL431設計電源
  4. 0.67 MB   |  2次下載  |  免費
  5. 3BT134雙向可控硅手冊
  6. 1.74 MB   |  2次下載  |  1 積分
  7. 4一種新型高效率的服務器電源系統(tǒng)
  8. 0.85 MB   |  1次下載  |  1 積分
  9. 5LabVIEW環(huán)形控件
  10. 0.01 MB   |  1次下載  |  1 積分
  11. 6PR735,使用UCC28060的600W交錯式PFC轉換器
  12. 540.03KB   |  1次下載  |  免費
  13. 751單片機核心板原理圖
  14. 0.12 MB   |  1次下載  |  5 積分
  15. 8BP2879DB支持調光調滅的非隔離低 PF LED 驅動器
  16. 1.44 MB  |  1次下載  |  免費

本月

  1. 1開關電源設計原理手冊
  2. 1.83 MB   |  54次下載  |  免費
  3. 2FS5080E 5V升壓充電兩串鋰電池充電管理IC中文手冊
  4. 8.45 MB   |  23次下載  |  免費
  5. 3DMT0660數(shù)字萬用表產品說明書
  6. 0.70 MB   |  13次下載  |  免費
  7. 4UC3842/3/4/5電源管理芯片中文手冊
  8. 1.75 MB   |  12次下載  |  免費
  9. 5ST7789V2單芯片控制器/驅動器英文手冊
  10. 3.07 MB   |  11次下載  |  1 積分
  11. 6TPS54202H降壓轉換器評估模塊用戶指南
  12. 1.02MB   |  8次下載  |  免費
  13. 7STM32F101x8/STM32F101xB手冊
  14. 1.69 MB   |  8次下載  |  1 積分
  15. 8基于MSP430FR6043的超聲波氣體流量計快速入門指南
  16. 2.26MB   |  7次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935119次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73807次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65987次下載  |  10 積分
主站蜘蛛池模板: 男同志video最新猛男| 国精产品一区二区三区四区糖心| 国产麻豆精品久久一二三 | 国产69精品久久久久麻豆 | 美女乱草鲍高清照片| 娇妻中日久久持久久| 凌馨baby| 无人视频在线观看免费播放影院| 一本之道高清在线观看免费| www在线小视频免费| 狠狠久久免费视频在线| 欧美一区二区视频97色伦| 亚洲精品理论电影在线观看| 99精品在线| 国产日韩欧美有码在线视频| 牛牛免费视频| 亚洲三级大片| 父亲猜女儿在线观看| 麻豆精品乱码WWW久久密| 小黄文污到你湿| beeg xxx日本老师| 久久精品电影| 午夜福利影院私人爽爽| av先锋影音资源男人站| 久艾草在线精品视频在线观看| 日本无码毛片久久久九色综合| 伊人久久综合热青草| 国产精品丰满人妻AV麻豆 | 十八禁啪啦啪漫画| 91偷偷久久做嫩草电影院| 国产三级在线观看视频| 欧美性极品黑人hd| 中文字幕1| 果冻传媒在线完整免费播放| 色mimi| 在线观看国产亚洲| 国产亚洲精品久久久999蜜臀| 全免费A敌肛交毛片免费懂色AV| 征服艳妇后宫春色| 韩国hd高清xxx| 天天爽夜夜爽夜夜爽|