** 本文主要介紹ZED2相機(jī)以及具有的功能,ZED2相機(jī)(這里使用ZED2相機(jī),主要是因?yàn)橐曨l流傳輸功能目前只有ZED2、ZED mini等新版本相機(jī)才有的功能)**
本文所使用的環(huán)境:
python:3.8
CUDA:10.2
需要安裝的python庫:pyzed(安裝好ZED SDK后安裝)、opencv(cv2)、sys
接收端(服務(wù)端):測試過的有Windows10、Linux(Ubuntu18.04)
發(fā)送端(客戶端):目前測試過的有Windows10、Jetson(Ubuntu18.04)
ZED官網(wǎng):https://www.stereolabs.com
參考博客:ZED2相機(jī)SDK安裝使用及ROS下使用
【ZED】從零開始使用ZED相機(jī)(一):windows下的安裝配置與測試
一、ZED2相機(jī)簡介
ZED2相機(jī)官網(wǎng)地址:https://www.stereolabs.com/zed-2/
ZED2相機(jī)也是一款深度相機(jī),下圖是官網(wǎng)介紹
ZED2相機(jī)具有諸多功能,這里不一一介紹,本文主要使用到其中的視頻流傳輸功能,首先需要在電腦上安裝ZED SDK。
二、ZED SDK安裝與使用
- 首先點(diǎn)擊官網(wǎng)上面菜單欄中的開發(fā)者選項(xiàng),選擇ZED SDK Dowloads,如下圖所示
- 然后點(diǎn)擊頁面中出現(xiàn)的SDK DOWLOAD,選擇你所需要下載的版本,頁面所示為最新版ZED SDK4.0.
3. 根據(jù)自己電腦的所安裝的CUDA版本和所需要安裝的平臺(tái),比如Windows、linux、Jetson等。下載對(duì)應(yīng)的 ZED SDK,截止目前ZED SDK版本已經(jīng)更新到4.0,要想安裝早一些的版本需要找到頁面下方,如圖所示的位置,點(diǎn)擊release archive
進(jìn)去后可以看到ZED SDK的歷史版本,根據(jù)所需點(diǎn)擊想要的版本,這里我選擇ZED SDK3.8版本
我使用的是windows10電腦安裝的 CUDA版本是10.2,因此我選擇安裝的版本如下圖所示,我框選出的既有Windows10版本也有,Ubuntu18版本,也有NVIDIA Jetson版本。
3. 打開安裝包,根據(jù)所需安裝在你所需要的位置上,記住安裝路徑。這里不詳細(xì)介紹,可以參考這篇博主的文章【ZED】從零開始使用ZED相機(jī)(一):windows下的安裝配置與測試,對(duì)了,CUDA版本的安裝也可以參考他的博客步驟進(jìn)行。
4.按照上述博客文章,安裝好ZED SDK 并配置好python環(huán)境下的pyzed包,確??梢哉_調(diào)用,環(huán)境配置就大功告成。
三、官網(wǎng)例程與文檔
ZED官方給了很多可提供的資源如下圖,
比如官方例程以及功能實(shí)現(xiàn)的技術(shù)文檔,技術(shù)文檔其地址為:https://www.stereolabs.com/docs/,通過查看文檔,可以知道相機(jī)可以實(shí)現(xiàn)哪些功能,以及一些實(shí)現(xiàn)的功能的函數(shù)主要代碼等等,這個(gè)文檔相當(dāng)給力!!多看?。?/strong>(網(wǎng)址如果打不開,需要FQ去看),也可以知道哪些相機(jī)實(shí)現(xiàn)不了對(duì)應(yīng)的功能,沒有買相機(jī)可以先看看這個(gè)文檔,根據(jù)所需的功能去購買,不花冤枉錢!!。
官方例程,網(wǎng)址如果打不開懶得翻墻可以在這下載:zed-example,有需要的私聊我可以私發(fā)(免費(fèi)),有python、c++、c#等程序版本,包含諸多功能的實(shí)現(xiàn),例如獲取深度圖像、視頻流傳輸、行人目標(biāo)檢測、人體骨骼檢測等功能,感興趣可以下載,挨個(gè)去進(jìn)行測試,但確保相機(jī)本身可以實(shí)現(xiàn)這些功能,官網(wǎng)界面給的是C++和Python的例程。
python程序
本文均以都為Windows10下做測試,也做過客戶端為Jetson Nano,服務(wù)端分別為Windows10和Ubuntu18的測試,代碼基本沒啥變化,環(huán)境配置好后代碼直接可以使用。
將ZED2相機(jī)連接在客戶端上,程序運(yùn)行先運(yùn)行服務(wù)端程序,保證服務(wù)端正常運(yùn)行,查看服務(wù)端IP地址,客戶端與服務(wù)端連接時(shí)需要使用。
之后運(yùn)行客戶端程序,運(yùn)行客戶端程序時(shí),最好利用命令行窗口去運(yùn)行,方便輸入服務(wù)端IP地址。例如:python client.py 192.168.XX.X
文章來源:http://www.zghlxwxcb.cn/news/detail-537989.html
發(fā)送端(客戶端)
import pyzed.sl as sl
def main():
init = sl.InitParameters()
init.camera_resolution = sl.RESOLUTION.HD720
init.depth_mode = sl.DEPTH_MODE.NONE
cam = sl.Camera()
status = cam.open(init)
if status != sl.ERROR_CODE.SUCCESS:
print(repr(status))
exit(1)
runtime = sl.RuntimeParameters()
stream = sl.StreamingParameters()
stream.codec = sl.STREAMING_CODEC.H264
stream.bitrate = 4000
status = cam.enable_streaming(stream)
if status != sl.ERROR_CODE.SUCCESS:
print(repr(status))
exit(1)
print(" Quit : CTRL+C\n")
while True:
err = cam.grab(runtime)
cam.disable_streaming()
cam.close()
if __name__ == "__main__":
main()
接收端(服務(wù)端)
import sys
import pyzed.sl as sl
import cv2
def main():
init = sl.InitParameters()
init.camera_resolution = sl.RESOLUTION.HD720
init.depth_mode = sl.DEPTH_MODE.PERFORMANCE
if (len(sys.argv) > 1) :
ip = sys.argv[1]
init.set_from_stream(ip)
else :
print('Usage : python3 streaming_receiver.py ip')
exit(1)
cam = sl.Camera()
status = cam.open(init)
if status != sl.ERROR_CODE.SUCCESS:
print(repr(status))
exit(1)
runtime = sl.RuntimeParameters()
mat1 = sl.Mat()
mat2 = sl.Mat()
key = ''
print(" Quit : CTRL+C\n")
while key != 113:
err = cam.grab(runtime)
if (err == sl.ERROR_CODE.SUCCESS) :
cam.retrieve_image(mat1, sl.VIEW.LEFT)
cam.retrieve_image(mat2, sl.VIEW.RIGHT)
cv2.imshow("ZED", mat1.get_data())
cv2.imshow("ZED_right", mat2.get_data())
key = cv2.waitKey(1)
else :
key = cv2.waitKey(1)
cam.close()
if __name__ == "__main__":
main()
如果服務(wù)端接收到到客戶端圖像,將顯示相機(jī)拍到的RGB圖像,將相機(jī)左圖像和右圖像均顯示出來,移動(dòng)相機(jī)可以看到畫面實(shí)時(shí)性很高,作為局域網(wǎng)內(nèi)的圖像傳輸完全實(shí)現(xiàn)實(shí)時(shí)性的要求。文章來源地址http://www.zghlxwxcb.cn/news/detail-537989.html
到了這里,關(guān)于ZED相機(jī)使用記錄(一):利用ZED SDK使用python完成局域網(wǎng)內(nèi)的遠(yuǎn)程視頻(視頻流)傳輸?shù)奈恼戮徒榻B完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!