當(dāng)前位置: 首頁 > 工業(yè)電氣產(chǎn)品 > 端子與連接器 > 線路板連接器 > FFC連接器
發(fā)布日期:2022-04-17 點(diǎn)擊率:45
3D 飛行時間 (ToF) 成像為視頻成像提供了一種有效的替代方法,可用于包括工業(yè)安全、機(jī)器人導(dǎo)航、手勢控制界面等在內(nèi)的廣泛應(yīng)用。但是,這種方法需要慎重整合光學(xué)設(shè)計(jì)、精密定時電路和信號處理功能,常常會讓開發(fā)人員難以實(shí)現(xiàn)有效的 3D ToF 平臺。
本文將說明 ToF 技術(shù)的微妙之處,然后展示兩個現(xiàn)成的 3D ToF 套件——Analog Devices 的 AD-96TOF1-EBZ 開發(fā)平臺和 ESPROS Photonics 的 valUATION-KIT-EU---US/2199-EPC660evalUATIONKITEU-US-ND/10516866">EPC660 評估套件,介紹它們?nèi)绾螏椭_發(fā)人員快速設(shè)計(jì) 3D ToF 應(yīng)用原型,并獲得所需的經(jīng)驗(yàn)來實(shí)現(xiàn) 3D ToF 設(shè)計(jì)以滿足開發(fā)人員的獨(dú)特要求。
ToF 技術(shù)基于一個大家熟悉的原理,即物體與某個源點(diǎn)之間的距離可以通過測量源點(diǎn)發(fā)射能量的時間與源點(diǎn)收到反射信號的時間之差來得出(圖 1)。
圖 1:ToF 系統(tǒng)通過測量能量發(fā)射和系統(tǒng)接收到物體反射的能量之間的時間延遲來計(jì)算系統(tǒng)與外部物體之間的距離。(圖片來源:Analog Devices)
盡管基本原理相同,ToF 解決方案卻千差萬別,并且因?yàn)椴捎貌煌幕A(chǔ)技術(shù)——包括超聲波、光檢測和測距 (LiDAR)、相機(jī)、毫米波 (mmWave) 射頻信號——而具有一些固有的能力和局限性:
超聲波 ToF 解決方案成本低,但物體的范圍和空間分辨率有限
光學(xué) ToF 解決方案可以實(shí)現(xiàn)比超聲波系統(tǒng)更高的范圍和空間分辨率,但會受到濃霧或煙霧的影響
基于毫米波技術(shù)的解決方案通常更為復(fù)雜和昂貴,但不受煙、霧或雨的影響,能在較大范圍內(nèi)工作,并提供有關(guān)目標(biāo)物體的速度和航向的信息
制造商可以根據(jù)需要利用不同技術(shù)的能力來滿足特定需求。例如,超聲波傳感器非常適合檢測障礙物,可以幫助機(jī)器人越過道路,或幫助駕駛員停車。相比之下,毫米波技術(shù)可為車輛提供長距離感測能力,從而在其他傳感器因?yàn)閻毫犹鞖鉅顩r而無法工作的情況下,也能檢測到正在接近的道路危險。
ToF 設(shè)計(jì)可以圍繞一對發(fā)射器/接收器來構(gòu)建。例如,簡單的光學(xué) ToF 設(shè)計(jì)在概念上僅需一個 LED 來照亮某個目標(biāo)區(qū)域,以及一個光電二極管來檢測該目標(biāo)區(qū)域內(nèi)物體的反射。盡管如此,這種看似簡單的設(shè)計(jì)仍需要精確的定時和同步電路來測量延遲。另外,可能需要調(diào)制和解調(diào)電路來將照明信號與背景源區(qū)分開來,或支持更復(fù)雜的連續(xù)波方法。
隨著開發(fā)人員努力提高信噪比 (SNR) 并消除 ToF 系統(tǒng)中的偽影,設(shè)計(jì)復(fù)雜度迅速攀升。讓復(fù)雜性進(jìn)一步加劇的是,更先進(jìn)的檢測解決方案會采用多個發(fā)射器和接收器來跟蹤多個物體,或支持更復(fù)雜的運(yùn)動跟蹤算法。例如,毫米波系統(tǒng)常常會運(yùn)用多個接收器來跟蹤多個獨(dú)立物體的航向和速度。(請參閱“使用毫米波雷達(dá)套件快速開發(fā)精密目標(biāo)檢測設(shè)計(jì)”。)
3D 光學(xué) ToF 系統(tǒng)擴(kuò)展了使用更多接收器的理念,即采用通常基于電荷耦合器件 (CCD) 陣列的成像傳感器。當(dāng)一組透鏡將某個目標(biāo)區(qū)域聚焦到 CCD 陣列上時,該區(qū)域中的相應(yīng)點(diǎn)會反射光線,返回的光線會為 CCD 陣列中的每個電荷儲存器件充電。到達(dá) CCD 陣列的反射光與脈沖或連續(xù)波照明同步后,基本上分別在一系列窗口或相位中得到捕獲。此類數(shù)據(jù)會經(jīng)過進(jìn)一步處理,可創(chuàng)建一個由體素 (VOlume piXEL) 組成的 3D 深度圖,其值表示到目標(biāo)區(qū)域中相應(yīng)點(diǎn)的距離。
像視頻中的幀一樣,可以依次捕獲各個深度圖,以提供具有時間分辨率(僅受圖像捕獲系統(tǒng)的幀率限制)和空間分辨率(僅受 CCD 陣列和光學(xué)系統(tǒng)限制)的測量結(jié)果。隨著更大的 320 x 240 CCD 成像儀的出現(xiàn),更高分辨率的 3D 光學(xué) ToF 系統(tǒng)能應(yīng)用于更廣泛的領(lǐng)域,包括工業(yè)自動化和無人機(jī) (UAV),甚至手勢界面(圖 2)。
圖 2:憑借高幀率和空間分辨率,3D 光學(xué) ToF 可以為手勢界面系統(tǒng)提供詳細(xì)數(shù)據(jù),例如這里顯示的人手朝向 ToF 相機(jī)抬起。(圖片來源:ESPROS Photonics)
與大多數(shù)基于相機(jī)的方法不同,3D ToF 系統(tǒng)可以在陰影或光照不斷變化的條件下提供精確結(jié)果。這些系統(tǒng)會提供自己的照明,通常使用激光器或大功率紅外 LED(例如 Lumileds 的 Luxeon IR LED),這些 LED 能以此類系統(tǒng)使用的兆赫茲 (MHz) 開關(guān)速率工作。與立體攝像機(jī)等方法不同,3D ToF 系統(tǒng)提供了一種緊湊型解決方案來生成詳細(xì)的距離信息。
然而,為了實(shí)現(xiàn) 3D ToF 系統(tǒng),開發(fā)人員面臨多項(xiàng)設(shè)計(jì)挑戰(zhàn)。除了前面提到的定時電路之外,這些系統(tǒng)還依賴于精心設(shè)計(jì)的信號處理流水線,該流水線須進(jìn)行優(yōu)化,以便針對每個窗口或相位測量快速讀取 CCD 陣列中的結(jié)果,然后完成所需的處理,將原始數(shù)據(jù)轉(zhuǎn)換為深度圖。先進(jìn)的 3D ToF 成像儀如 ESPROS Photonics 的 EPC660-CSP68-007 ToF 成像儀,集 320 x 240 CCD 陣列與所需的全部配套定時和信號處理能力于一體,可執(zhí)行 3D ToF 測量并提供每像素 12 位距離數(shù)據(jù)(圖 3)。
圖 3:ESPROS Photonics 的 epc660 集成了一個 320 x 240 像素成像儀,以及所需的全部配套定時電路和控制器,可將原始成像儀數(shù)據(jù)轉(zhuǎn)換為深度圖。(圖片來源:ESPROS Photonics)
ESPROS Photonics 的 EPC660-007 卡邊緣連接器芯片載板將 epc650 成像儀安裝在 37.25 x 36.00 毫米 (mm) 的印刷電路板(PC 板)上,并配有去耦電容器和卡邊緣連接器。盡管此芯片載板解決了 3D ToF 系統(tǒng)設(shè)計(jì)中的基本硬件接口問題,但開發(fā)人員要負(fù)責(zé)在前端完成適當(dāng)光學(xué)設(shè)計(jì),并在后端提供處理資源。ESPROS Photonics 的 epc660 評估套件提供完整的 3D ToF 應(yīng)用開發(fā)環(huán)境,其中包括預(yù)置 3D ToF 成像系統(tǒng)和相關(guān)軟件,無需開發(fā)人員完成上述任務(wù)(圖 4)。
圖 4:ESPROS Photonics 的 epc660 評估套件提供預(yù)置 3D ToF 相機(jī)系統(tǒng)和相關(guān)軟件,支持在應(yīng)用中使用深度信息。(圖片來源:ESPROS Photonics)
ESPROS 套件設(shè)計(jì)用于評估和快速原型開發(fā),提供了一個預(yù)裝配好的相機(jī)系統(tǒng),其中整合了 epc660 CC 芯片載板、光學(xué)透鏡組件和一組八個 LED。除相機(jī)系統(tǒng)外,valuation-boards-embedded-mcu-dsp/786?k=beaglebone+black&FV=-8%7C786&nstock=1">BeagleBone Black 處理器板具有 512 MB RAM 和 4 GB 閃存,可用作主機(jī)控制器和應(yīng)用處理資源。
ESPROS 還提供了 valuation_Kits/evaluationkit_epc660/" target="_blank">epc660 評估套件支持軟件,該軟件可從其網(wǎng)站下載。該軟件需要密碼才能打開,密碼可從該公司的當(dāng)?shù)劁N售辦事處索取。獲得該軟件的使用權(quán)后,開發(fā)人員只需使用所提供的配置文件之一運(yùn)行一個圖形用戶界面 (GUI) 應(yīng)用程序,即可開始操作相機(jī)系統(tǒng)。此外,GUI 應(yīng)用程序還提供了控制和顯示窗口,可用于設(shè)置其他參數(shù),包括空間和時間濾波器設(shè)置,以及用于查看結(jié)果。開發(fā)人員可以毫不費(fèi)力地使用該套件實(shí)時捕獲深度圖,并將其用作自己的應(yīng)用軟件輸入。
諸如 ESPROS epc660 之類的 320 x 240 成像儀可以服務(wù)于許多應(yīng)用,但分辨率可能不足以檢測手勢界面中的微小移動,或在不嚴(yán)格限制目標(biāo)范圍的情況下區(qū)分微小物體。對于這些應(yīng)用,基于 640 x 480 ToF 傳感器的現(xiàn)成開發(fā)套件的出現(xiàn),能夠讓開發(fā)人員快速開發(fā)高分辨率應(yīng)用原型。
Seeed Technology 的 DepthEye Turbo 深度相機(jī)將 640 x 480 ToF 傳感器、四個 850 納米 (nm) 垂直腔表面發(fā)射激光器 (VCSEL) 二極管、照明和感測操作電路、電源及 USB 接口支持集成在一個尺寸為 57 x 57 x 51 mm 的自足式立方體中。軟件支持通過開源的 libPointCloud SDK github 存儲庫提供,并支持 Linux、Windows、Mac OS 和 Android 平臺。
除了 C++ 驅(qū)動程序、庫和示例代碼之外,libPointCloud SDK 發(fā)行版還包括用于快速開發(fā)原型的 Python API 和可視化工具。在主機(jī)開發(fā)平臺上安裝發(fā)行包之后,開發(fā)人員可以通過 USB 將相機(jī)連接到計(jì)算機(jī),然后即可開始使用可視化工具顯示相位、幅度或點(diǎn)云圖;這些圖本質(zhì)上是使用紋理表面渲染的增強(qiáng)深度圖,可提供更平滑的 3D 圖像(圖 5)。
圖 5:相關(guān)軟件包與 Seeed Technology 的 DepthEye Turbo 深度相機(jī)配合使用,使開發(fā)人員能夠以各種渲染方式(包括此處主窗格所示的點(diǎn)云)輕松實(shí)現(xiàn) 3D ToF 數(shù)據(jù)可視化。(圖片來源:Seeed Technology/PointCloud.AI)
Analog Devices 的 AD-96TOF1-EBZ 3D ToF 評估套件提供了一個更為開放的硬件設(shè)計(jì),它由一對板構(gòu)建,專門使用 Raspberry Pi 的 Raspberry Pi 3 Model B+ 或 Raspberry Pi 4 作為主機(jī)控制器和本地處理資源(圖 6)。
圖 6:Analog Devices 的 AD-96TOF1-EBZ 3D ToF 評估套件將用于照明和數(shù)據(jù)采集的雙板組件與用于本地處理的 Raspberry Pi 板組合在一起。(圖片來源:Analog Devices)
該套件的模擬前端 (AFE) 板容納了光學(xué)組件、CCD 陣列和緩沖器、固件存儲以及一個處理器;該處理器管理相機(jī)的整體操作,包括照明定時、傳感器同步和深度圖生成。第二塊板容納了四個 850 nm VCSEL 激光二極管和驅(qū)動器,能連接到 AFE 板,以使激光二極管環(huán)繞光學(xué)組件,如上圖所示。
Analog Devices 通過開源的 3D ToF 軟件套件來支持 AD-96TOF1-EBZ 套件,軟件套件含有 3D ToF SDK 以及 C/C++、Python、Matlab 的示例代碼和包封。為了在網(wǎng)絡(luò)環(huán)境中同時支持主機(jī)應(yīng)用和底層硬件交互,Analog Devices 將 SDK 劃分為兩部分:一個是針對 USB 和網(wǎng)絡(luò)連接優(yōu)化的主機(jī)部分,一個是在嵌入式 Linux 上運(yùn)行并基于 Video4Linux2 (V4L2) 驅(qū)動程序的底層部分(圖 7)。
圖 7:Analog Devices 3D ToF SDK API 支持本地嵌入式 Linux 主機(jī)上運(yùn)行的應(yīng)用程序,還支持聯(lián)網(wǎng)主機(jī)上遠(yuǎn)程運(yùn)行的應(yīng)用程序。(圖片來源:Analog Devices)
這個支持網(wǎng)絡(luò)的 SDK 允許聯(lián)網(wǎng)主機(jī)上運(yùn)行的應(yīng)用程序與 ToF 硬件系統(tǒng)遠(yuǎn)程協(xié)作,以訪問相機(jī)并捕獲深度數(shù)據(jù)。此外,用戶程序也可以在嵌入式 Linux 部分中運(yùn)行,并充分利用該層級提供的高級選項(xiàng)。
作為軟件分發(fā)的一部分,Analog Devices 提供了示例代碼來展示關(guān)鍵的底層操作功能,例如在主機(jī)上以及在本地使用嵌入式 Linux 進(jìn)行相機(jī)初始化、基本幀捕獲、遠(yuǎn)程訪問和跨平臺捕獲。其他示例應(yīng)用程序基于這些基本操作而構(gòu)建,用以說明如何在更高級別的應(yīng)用(如點(diǎn)云生成)中使用捕獲的數(shù)據(jù)。事實(shí)上,有一個示例應(yīng)用程序展示了如何使用深度神經(jīng)網(wǎng)絡(luò) (DNN) 推理模型對相機(jī)系統(tǒng)生成的數(shù)據(jù)進(jìn)行分類。該 DNN 示例應(yīng)用程序 (dnn.py
) 用 Python 編寫,逐步展示了獲取數(shù)據(jù)和通過推理模型準(zhǔn)備數(shù)據(jù)分類的過程(清單 1)。
副本import aditofpython as tof import numpy as np import cv2 as cv ... try: net = cv.dnn.readNetFromCaffe(args.prototxt, args.weights) except: print("Error: Please give the correct location of the prototxt and caffemodel") sys.exit(1) swapRB = False classNames = {0: 'background', 1: 'aeroplane', 2: 'bicycle', 3: 'bird', 4: 'boat', 5: 'bottle', 6: 'bus', 7: 'car', 8: 'cat', 9: 'chair', 10: 'cow', 11: 'diningtable', 12: 'dog', 13: 'horse', 14: 'motorbike', 15: 'person', 16: 'pottedplant', 17: 'sheep', 18: 'sofa', 19: 'train', 20: 'tvmonitor'} system = tof.System() status = system.initialize() if not status: print("system.initialize() failed with status: ", status) cameras = [] status = system.getCameraList(cameras) ... while True: # Capture frame-by-frame status = cameras[0].requestframe(frame) if not status: print("cameras[0].requestframe() failed with status: ", status) depth_map = np.array(frame.getData(tof.frameDataType.Depth), dtype="uint16", copy=False) ir_map = np.array(frame.getData(tof.frameDataType.IR), dtype="uint16", copy=False) # Creation of the IR image ir_map = ir_map[0: int(ir_map.shape[0] / 2), :] ir_map = np.float32(ir_map) distance_scale_ir = 255.0 / camera_range ir_map = distance_scale_ir * ir_map ir_map = np.uint8(ir_map) ir_map = cv.cvtColor(ir_map, cv.COLOR_GRAY2RGB) # Creation of the Depth image new_shape = (int(depth_map.shape[0] / 2), depth_map.shape[1]) depth_map = np.resize(depth_map, new_shape) distance_map = depth_map depth_map = np.float32(depth_map) distance_scale = 255.0 / camera_range depth_map = distance_scale * depth_map depth_map = np.uint8(depth_map) depth_map = cv.applyColorMap(depth_map, cv.COLORMAP_RAINBOW) # Combine depth and IR for more accurate results result = cv.addWeighted(ir_map, 0.4, depth_map, 0.6, 0) # Start the computations for object detection using DNN blob = cv.dnn.blobFromImage(result, inScaleFactor, (inWidth, inHeight), (meanVal, meanVal, meanVal), swapRB) net.setInput(blob) detections = net.forward() ... for i in range(detections.shape[2]): confidence = detections[0, 0, i, 2] if confidence > thr: class_id = int(detections[0, 0, i, 1]) ... if class_id in classNames: value_x = int(center[0]) value_y = int(center[1]) label = classNames[class_id] + ": " + "{0:.3f}".format(distance_map[value_x, value_y] / 1000.0 * 0.3) + " " + "meters" ... # Show image with object detection cv.namedWindow(WINDOW_NAME, cv.WINDOW_AUTOSIZE) cv.imshow(WINDOW_NAME, result) # Show Depth map cv.namedWindow(WINDOW_NAME_DEPTH, cv.WINDOW_AUTOSIZE) cv.imshow(WINDOW_NAME_DEPTH, depth_map)
清單 1:摘自 Analog Devices 的 3D ToF SDK 發(fā)行版中示例應(yīng)用程序的代碼片段,展示了獲取深度和 IR 圖像并通過推理模型進(jìn)行分類所需的幾個步驟。(代碼來源:Analog Devices)
該過程首先使用 OpenCV 的 DNN 方法 (cv.dnn.readNetFromCaffe
) 讀取現(xiàn)有推理模型的網(wǎng)絡(luò)和相關(guān)權(quán)重。本例中的模型是 Google MobileNet Single Shot Detector (SSD) 檢測網(wǎng)絡(luò)的 Caffe 實(shí)現(xiàn),該網(wǎng)絡(luò)以使用相對較小的模型大小實(shí)現(xiàn)高精度而聞名。在使用支持的類標(biāo)識符和類標(biāo)簽加載類名稱之后,該示例應(yīng)用程序識別可用的相機(jī)并執(zhí)行一系列初始化例程(未顯示在清單 1 中)。
示例代碼的大部分內(nèi)容是準(zhǔn)備深度圖 (depth_map
) 和 IR 圖 (ir_map
),然后將其 (cv.addWeighted
) 合并成單個數(shù)組以提高精度。最后,代碼調(diào)用另一個 OpenCV DNN 方法 (cv.dnn.blobFromImage),該方法將合并的圖像轉(zhuǎn)換為推理所需的四維 blob
數(shù)據(jù)類型。下一行代碼將得到的 blob
設(shè)置為推理模型的輸入 (net.setInput(blob)
)。對 net.forward()
的調(diào)用將激活返回分類結(jié)果的推理模型。示例應(yīng)用程序的其余部分識別超過預(yù)設(shè)閾值的分類結(jié)果,并為這些結(jié)果生成標(biāo)簽和邊框,來顯示捕獲的圖像數(shù)據(jù)、由推理模型識別的標(biāo)簽及其與相機(jī)的距離(圖 8)。
圖 8:在 Analog Devices 的 3D ToF SDK 發(fā)行版中,DNN 示例應(yīng)用程序使用幾行 Python 代碼和 OpenCV 庫,即可捕獲深度圖像,對其進(jìn)行分類,并顯示所識別物體的標(biāo)簽和距離。(圖片來源:Analog Devices)
正如 Analog Devices 的 DNN 示例應(yīng)用程序所示,開發(fā)人員可以結(jié)合使用 3D ToF 深度圖與機(jī)器學(xué)習(xí)方法,來創(chuàng)建更復(fù)雜的應(yīng)用功能。雖然要求低延遲響應(yīng)的應(yīng)用程序更有可能使用 C/C++ 來構(gòu)建這些功能,但基本步驟是一樣的。
通過使用 3D ToF 數(shù)據(jù)和高性能推理模型,工業(yè)機(jī)器人系統(tǒng)可以更安全地將其動作與其他設(shè)備同步,甚至在人與機(jī)器人緊密協(xié)作的“協(xié)作機(jī)器人”環(huán)境中與人同步。借助不同的推理模型,另一個應(yīng)用程序可以使用高分辨率 3D ToF 相機(jī),對手勢界面涉及的精細(xì)動作進(jìn)行分類。在汽車應(yīng)用中,這種方法可以幫助提高高級輔助駕駛系統(tǒng) (ADAS) 的精度,同時能充分利用 3D ToF 系統(tǒng)提供的高時空分辨率。
在幾乎所有依賴系統(tǒng)與其他物體之間距離精確測量的系統(tǒng)中,ToF 技術(shù)都起著關(guān)鍵作用。在諸多 ToF 技術(shù)中,光學(xué) 3D ToF 可以同時提供高空間分辨率和高時間分辨率,因而能夠更精細(xì)地區(qū)分更小的物體,并對其相對距離進(jìn)行更精確的監(jiān)測。
但是,要利用這項(xiàng)技術(shù),開發(fā)人員需要應(yīng)對與這些系統(tǒng)的光學(xué)設(shè)計(jì)、精確定時和同步信號采集相關(guān)的多種挑戰(zhàn)。如本文所述,諸如 Analog Devices 的 AD-96TOF1-EBZ 開發(fā)平臺和 ESPROS Photonics 的 EPC660 評估套件之類預(yù)置 3D ToF 系統(tǒng)的推出,消除了將該技術(shù)應(yīng)用于工業(yè)系統(tǒng)、手勢界面、汽車安全系統(tǒng)等領(lǐng)域的上述障礙。
下一篇: PLC、DCS、FCS三大控
上一篇: 使用緊密間距板對板連