下面是在deepstream使用過程中碰到的一些坑:
(1)pipeline中的sink如果需要編碼存檔案或者推rtmp的流,注意控制編碼的引數,編碼質量不要太高。否則可能sink帶不動,整個pipeline有資料積累,延時越來越高,程式占用的記憶體越來越大,最終crash。開發中碰到乙個問題:剛開始延時2秒,後來延時慢慢增大,觀察發現記憶體一點點增高。排除了推理效能不夠的因素,最後定位編碼推rtmp流的時候,解析度太大(deepstream3.0沒有硬編碼的外掛程式),導致編碼效能不夠,後來調整編碼解析度,延時沒有積累。這個就像高速出口擁堵,擁堵長度慢慢增加,從匝道一直堵到了主幹路。
(4)目標跟蹤優先使用klt演算法,但是這個演算法特別吃cpu,所以如果影響到整個pipeline的效能了,比如fps變小了,可以切換到iou,iou的跟蹤效果不如klt,但是還湊合,關鍵還是檢測模型要準,這樣可以彌補一下iou的缺陷。iou相對而言對cpu依賴更小。
(5)在使用udpsrc接收其他模組發來的rtp資料時,由於其他模組可能出現故障會重啟,重啟後接著傳送rtp資料,這時候pipeline中的rtph264depay可能會丟擲nal unit type 26 not supported的異常,這是因為之前piepline中可能有殘留資料,導致depay失敗。對於這個error,我們在bus_callback中捕獲之後,不需要做任何處理,千萬不要delete整個pipeline再recreate,這樣會導致記憶體洩漏(至今沒找到什麼原因),最後越來越卡,fps越來越小。
未完待續
騰訊圍棋AI技術PhoenixGo正式開源
乙個好的圍棋ai,需要演算法 工程實現 計算資源三者結合。目前圍棋ai已經有了優秀的公開演算法,但同時擁有良好工程實現和大量計算資源,並不是一件容易的事。經過了一周多時間的籌備,phoenixgo目前正式開源了對弈原始碼和乙個20 block的模型。這份原始碼和模型可以在單塊gpu上提供強職業棋手的...
全新OpenMMLab邀你入夥 共創AI開源世界
編者按 經歷兩年多的沉澱,openmmlab開源演算法社群在github上已收穫30000 次點贊,涉及10 個研究方向,開源了超過130 種演算法和1000 種預訓練模型。開放多元的互動氛圍和鼓勵創新的學術環境,讓openmmlab不斷吸引著眾多參與者和貢獻者。新的一年,openmmlab正式以全...
AI應用開發實戰
目前,人工智慧在語音 文字 影象的識別與解析領域帶來了跨越式的發展,各種框架 演算法如雨後春筍一般,網際網路上隨處可見與機器學習有關的學習資源,各大mooc平台 部落格 公開課都推出了自己的學習資料。在當前學習資料十分豐富的這個環境下,本教程從上手的角度,讓大家能夠真正動手開始進行ai的開發,提高大...