国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

realsense D455深度相機(jī)+YOLO V5結(jié)合實(shí)現(xiàn)目標(biāo)檢測(cè)(一)

這篇具有很好參考價(jià)值的文章主要介紹了realsense D455深度相機(jī)+YOLO V5結(jié)合實(shí)現(xiàn)目標(biāo)檢測(cè)(一)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

realsense D455深度相機(jī)+YOLO V5結(jié)合實(shí)現(xiàn)目標(biāo)檢測(cè)(二)第二篇鏈接

可以實(shí)現(xiàn)將D435,D455深度相機(jī)和yolo v5結(jié)合到一起,在識(shí)別物體的同時(shí),還能測(cè)到物體相對(duì)與相機(jī)的距離。

說(shuō)明一下為什么需要做這個(gè)事情?1.首先為什么需要用到realsense D455深度相機(jī)? 因?yàn)樗瞧胀ǖ南鄼C(jī)還加了一個(gè)紅外測(cè)距的東西,所以其他二維圖像一樣,能夠得到三維世界在二維像素平面的投影,也就是圖片,但是我們損失了一個(gè)深度的維度以后得到的都是投影的東西,比如說(shuō)蘋果可以和足球一樣大,因?yàn)槲覀儾恢郎疃纫簿褪俏矬w距離相機(jī)的距離信息,所以我們需要一個(gè)深度相機(jī)來(lái)實(shí)現(xiàn)測(cè)距離。2.為什么需要用到y(tǒng)olo算法?因?yàn)樗趯?shí)時(shí)性和準(zhǔn)確率方面都可以,可以應(yīng)用于工農(nóng)業(yè)生產(chǎn)當(dāng)中,所以肯定很需要。所以才會(huì)有這二者的結(jié)合的必要性!

1.代碼來(lái)源

首先感謝github上的yuanyuanyuan killnice大佬將自己的代碼開源出來(lái),這是我第一次用realsense深度相機(jī)去實(shí)現(xiàn)將其與目標(biāo)檢測(cè)的yolo v5 算法結(jié)合在一起,實(shí)現(xiàn)2.5維的檢測(cè)吧。首先大家如果想用這個(gè)代碼的話可以去這里git clone yuanyuanyuan killnice大佬的代碼 (為了防止鏈接不過(guò)去還是再寫在這里 https://github.com/killnice/yolov5-D435i.git)。

2.環(huán)境配置

首選clone下yuanyuanyuan killnice大佬的代碼后,在命令行運(yùn)行:

pip install -r requirements.txt
pip install pyrealsense2

然后cd到進(jìn)入工程文件夾下執(zhí)行:

python main_debug.py

第一次運(yùn)行會(huì)自動(dòng)下載yolov5l6.pt文件,大約140MB左右,如果由于網(wǎng)速原因不能自動(dòng)下載,請(qǐng)手動(dòng)在yolo v5的github上自己下載。運(yùn)行結(jié)果如下:
realsense D455深度相機(jī)+YOLO V5結(jié)合實(shí)現(xiàn)目標(biāo)檢測(cè)(一)

3.代碼分析:

3.1如何用realsense在python下面調(diào)用的問(wèn)題:

這個(gè)的來(lái)源是從realsense的官方文檔中來(lái)的 realsense的官方python文檔,如果你對(duì)他的其他應(yīng)用感興趣可以去這里看一看。

import pyrealsense2 as rs
import numpy as np
import cv2

# Configure depth and color streams
pipeline = rs.pipeline()
config = rs.config()
# config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
# config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)

config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)

# Start streaming
pipeline.start(config)

try:
    while True:

        # Wait for a coherent pair of frames: depth and color
        frames = pipeline.wait_for_frames()
        # 深度圖
        depth_frame = frames.get_depth_frame()
        # 正常讀取的視頻流
        color_frame = frames.get_color_frame()
        if not depth_frame or not color_frame:
            continue

        # Convert images to numpy arrays
        depth_image = np.asanyarray(depth_frame.get_data())
        color_image = np.asanyarray(color_frame.get_data())
        # print(f"depth_image shape: {depth_image.shape} color_image shape: {color_image.shape}")
        print(f"depth_image value: {depth_image}")   # 里面0值很多,還有很多1900左右的值      300mm 單位是毫米=30厘米=0.3米
        # depth_image shape: (480, 640) color_image shape: (480, 640, 3)
        # 深度圖是單通道  顏色圖是三通道的

        # Apply colormap on depth image (image must be converted to 8-bit per pixel first)
        # 在深度圖像上應(yīng)用colormap(圖像必須先轉(zhuǎn)換為每像素8位)
        depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)

        # Stack both images horizontally
        images = np.hstack((color_image, depth_colormap))

        # Show images
        cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
        cv2.imshow('RealSense', images)
        key = cv2.waitKey(1)
        if key & 0xFF == ord('q') or key == 27:
            cv2.destroyAllWindows()
            break

finally:

    # Stop streaming
    pipeline.stop()

這就是用python調(diào)用realsense D455深度相機(jī)的程序。

3.2 對(duì)main_debug.py文件的分析:

import pyrealsense2 as rs
import numpy as np
import cv2
import random
import torch
import time
#調(diào)用各種庫(kù)
#從文件的構(gòu)造中不難看出是用了下面的幾個(gè)函數(shù):分別是get_mid_pos(frame,box,depth_data,randnum),dectshow(org_img, boxs,depth_data),
#主函數(shù)。
# model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
#
model = torch.hub.load('ultralytics/yolov5', 'yolov5l6')
model.conf = 0.5

def get_mid_pos(frame,box,depth_data,randnum):
#這個(gè)函數(shù)就是簡(jiǎn)單的從給出的圖片、框、深度數(shù)據(jù)、可以選擇的迭代次數(shù)
    distance_list = []
    mid_pos = [(box[0] + box[2])//2, (box[1] + box[3])//2] #確定索引深度的中心像素位置左上角和右下角相加在/2
    min_val = min(abs(box[2] - box[0]), abs(box[3] - box[1])) #確定深度搜索范圍
    #print(box,)
    for i in range(randnum):
        bias = random.randint(-min_val//4, min_val//4)
        dist = depth_data[int(mid_pos[1] + bias), int(mid_pos[0] + bias)]
        cv2.circle(frame, (int(mid_pos[0] + bias), int(mid_pos[1] + bias)), 4, (255,0,0), -1)
        #print(int(mid_pos[1] + bias), int(mid_pos[0] + bias))
        if dist:
            distance_list.append(dist)
    distance_list = np.array(distance_list)
    distance_list = np.sort(distance_list)[randnum//2-randnum//4:randnum//2+randnum//4] #冒泡排序+中值濾波
    #print(distance_list, np.mean(distance_list))
    return np.mean(distance_list)
def dectshow(org_img, boxs,depth_data):
#在原圖像上畫框和深度信息寫在圖像上
    img = org_img.copy()
    for box in boxs:
        cv2.rectangle(img, (int(box[0]), int(box[1])), (int(box[2]), int(box[3])), (0, 255, 0), 2)
        dist = get_mid_pos(org_img, box, depth_data, 24)
        cv2.putText(img, box[-1] + str(dist / 1000)[:4] + 'm',
                    (int(box[0]), int(box[1])), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
    cv2.imshow('dec_img', img)

if __name__ == "__main__":
    # Configure depth and color streams
#這是主要是將上面1中提到的realsense在python中的調(diào)用。
    pipeline = rs.pipeline()
    config = rs.config()
    config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 60)
    config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 60)
    # Start streaming
    pipeline.start(config)
    try:
        while True:
            # Wait for a coherent pair of frames: depth and color
            frames = pipeline.wait_for_frames()
            depth_frame = frames.get_depth_frame()
            color_frame = frames.get_color_frame()
            if not depth_frame or not color_frame:
                continue
            # Convert images to numpy arrays

            depth_image = np.asanyarray(depth_frame.get_data())

            color_image = np.asanyarray(color_frame.get_data())

            results = model(color_image)
            boxs= results.pandas().xyxy[0].values
            #boxs = np.load('temp.npy',allow_pickle=True)
            dectshow(color_image, boxs, depth_image)

            # Apply colormap on depth image (image must be converted to 8-bit per pixel first)
            depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
            # Stack both images horizontally
            images = np.hstack((color_image, depth_colormap))
            # Show images
            cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
            cv2.imshow('RealSense', images)
            key = cv2.waitKey(1)
            # Press esc or 'q' to close the image window
            if key & 0xFF == ord('q') or key == 27:
                cv2.destroyAllWindows()
                break
    finally:
        # Stop streaming
        pipeline.stop()

4. 結(jié)束語(yǔ)

從以前在csdn上查找到自己寫這是第一次,覺(jué)得這是一種進(jìn)步,希望能夠幫助到別人也感謝yuanyuanyuan killnice大佬,還有yolo v5的作者,反正就是感謝開源吧。對(duì)我感興趣的童鞋可以關(guān)注我,說(shuō)不定那一天就可以幫到您文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-456913.html

到了這里,關(guān)于realsense D455深度相機(jī)+YOLO V5結(jié)合實(shí)現(xiàn)目標(biāo)檢測(cè)(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 項(xiàng)目設(shè)計(jì):YOLOv5目標(biāo)檢測(cè)+機(jī)構(gòu)光相機(jī)(intel d455和d435i)測(cè)距

    項(xiàng)目設(shè)計(jì):YOLOv5目標(biāo)檢測(cè)+機(jī)構(gòu)光相機(jī)(intel d455和d435i)測(cè)距

    1.1??Intel D455 Intel D455 是一款基于結(jié)構(gòu)光(Structured Light)技術(shù)的深度相機(jī)。 與ToF相機(jī)不同,結(jié)構(gòu)光相機(jī)使用另一種方法來(lái)獲取物體的深度信息。它通過(guò)投射可視光譜中的紅外結(jié)構(gòu)光圖案,然后從被拍攝物體表面反射回來(lái)的圖案重建出其三維形狀和深度信息。 Intel D455 深度相機(jī)

    2024年02月08日
    瀏覽(33)
  • Intel RealSense D455(D400系列) Linux-ROS 安裝配置(親測(cè)可用)

    Intel RealSense D455(D400系列) Linux-ROS 安裝配置(親測(cè)可用)

    硬件:Intel RealSense D455 系統(tǒng):Ubuntu 18.04? 或者 這里\\\"catkin_ws\\\"可以改成自己想要的空間名。 可能遇到的問(wèn)題1: 在catkin_make clean如果報(bào)錯(cuò)提示沒(méi)有ddynamic_reconfigure,執(zhí)行(注意自己的 ROS版本 ,修改“melodic”成\\\"kinect\\\"或\\\"neotic\\\"): 可能遇到的問(wèn)題2: ?錯(cuò)誤提示說(shuō)明你缺少Intel RealSe

    2024年02月15日
    瀏覽(19)
  • ubuntu18.04安裝Realsense D435i相機(jī)SDK及realsense-ros記錄,為后期運(yùn)行yolo v5作準(zhǔn)備

    ubuntu18.04安裝Realsense D435i相機(jī)SDK及realsense-ros記錄,為后期運(yùn)行yolo v5作準(zhǔn)備

    寫在前面 :一定要注意各個(gè)版本之間的匹配問(wèn)題,否則會(huì)報(bào)各種錯(cuò)誤。 例如ROS版本和librealsense SDK版本之間的對(duì)應(yīng)關(guān)系,以及realsense-ros(Wrapper)與librealsense SDK之間的對(duì)應(yīng)關(guān)系 。 系統(tǒng):ubuntu18.04 ros: melodic 附上Intel? RealSense github網(wǎng)站: https://github.com/IntelRealSense 以及安裝教程

    2024年02月05日
    瀏覽(26)
  • 基于YOLOv8和RealsenseD455相機(jī)實(shí)現(xiàn)物體距離檢測(cè)

    基于YOLOv8和RealsenseD455相機(jī)實(shí)現(xiàn)物體距離檢測(cè)

    目錄 前言 一、Yolov8環(huán)境搭建 二、配置RealSense-ros功能包 1.安裝ROS-humble 2.安裝Intel RealSense SDK 2.0 ?編輯 3.克隆ROS功能包 三、物體距離檢測(cè)代碼實(shí)現(xiàn) 1.算法流程: 2.代碼示例: 3.效果展示: 要基于YOLOv8和RealsenseD455相機(jī)實(shí)現(xiàn)物體距離檢測(cè),可以按照以下步驟進(jìn)行操作: 準(zhǔn)備環(huán)境

    2024年01月17日
    瀏覽(34)
  • darknet_ros+yolo+realsenseD455+Ubuntu18.04+ROS

    darknet_ros+yolo+realsenseD455+Ubuntu18.04+ROS

    很想實(shí)現(xiàn)ros和yolo的聯(lián)合使用,所以找到了darknet_ros這個(gè)包,我感覺(jué)難點(diǎn)不在于工程,而在于yolo的環(huán)境配置。本文將從環(huán)境入手逐步實(shí)現(xiàn)功能。 相機(jī):realsenseD455 筆記本:T440P 顯卡:GT-730M 算力:3.0 直接安裝推薦版本就行,安裝完需要重啟,命令直接如下(如果使用nvidia-smi可

    2023年04月22日
    瀏覽(63)
  • YOLO v5 實(shí)現(xiàn)目標(biāo)檢測(cè)

    YOLO v5 實(shí)現(xiàn)目標(biāo)檢測(cè)

    本文用于學(xué)習(xí)記錄 YOLO v5 實(shí)現(xiàn)目標(biāo)檢測(cè) 安裝完成以后,按下開始鍵( win 鍵)出現(xiàn) anaconda3 這個(gè)文件夾,說(shuō)明 anaconda 已經(jīng)安裝好了 點(diǎn)擊左下圖中標(biāo)紅的圖標(biāo),就可打開 anaconda 的終端如右下圖: 輸入 conda create -n pytorch1 python=3.9,在 base 環(huán)境中這條命令,就會(huì)創(chuàng)建一個(gè)新的虛擬

    2024年01月16日
    瀏覽(19)
  • Intel RealSense D435i深度相機(jī)通過(guò)點(diǎn)云獲取圖片中任意點(diǎn)三維信息(python實(shí)現(xiàn))

    Intel RealSense D435i深度相機(jī)通過(guò)點(diǎn)云獲取圖片中任意點(diǎn)三維信息(python實(shí)現(xiàn))

    此時(shí)效果(左側(cè)RGB圖,右側(cè)深度圖)(過(guò)近時(shí)深度信息幾乎顯示不出來(lái)) ?按下p鍵暫停畫面 按下s鍵保存圖片 按下r鍵讀取剛才保存的圖片,并通過(guò)image_sliced文件將圖片裁剪到自己需要的范圍 image_sliced.py 按下g鍵進(jìn)行圖像處理,判斷方向,并將三維信息顯示在圖片上 image_pro

    2023年04月08日
    瀏覽(42)
  • Realsence D455標(biāo)定并運(yùn)行Vins-Fusion

    Realsence D455標(biāo)定并運(yùn)行Vins-Fusion

    1. 標(biāo)定板準(zhǔn)備 1.1 打印標(biāo)定板 地址:https://github.com/ethz-asl/kalibr/wiki/downloads 下載,然后直接用A4紙就可以打印出來(lái)(有條件去淘寶買一個(gè)視覺(jué)標(biāo)定板,標(biāo)出來(lái)的誤差會(huì)更?。?1.2 標(biāo)定板信息 原始pdf的格子參數(shù)是: 調(diào)整后的格子參數(shù)是: 新建april_6x6_A4.yaml文件,內(nèi)容展示如下:

    2024年02月08日
    瀏覽(29)
  • 改進(jìn) YOLO V5 的密集行人檢測(cè)算法研究(論文研讀)——目標(biāo)檢測(cè)

    改進(jìn) YOLO V5 的密集行人檢測(cè)算法研究(論文研讀)——目標(biāo)檢測(cè)

    針對(duì)在人員密集區(qū)或相互擁擠場(chǎng)景下進(jìn)行的行人目標(biāo)檢測(cè)時(shí),因行人遮擋或人像交疊所導(dǎo)致的跟蹤目標(biāo)丟失、檢測(cè)識(shí)別率低的問(wèn)題,提出了一種融合注意力機(jī)制的改進(jìn) YOLO V5 算法。 通過(guò)引入注意力機(jī)制來(lái)深入挖掘特征通道間關(guān)系和特征圖空間信息,進(jìn)一步增強(qiáng)了對(duì)行人目標(biāo)可

    2024年02月01日
    瀏覽(29)
  • 改進(jìn)YOLO系列:YOLOv5結(jié)合轉(zhuǎn)置卷積,實(shí)現(xiàn)小目標(biāo)漲點(diǎn)

    該函數(shù)是用來(lái)進(jìn)行轉(zhuǎn)置卷積的,它主要做了這幾件事:首先,對(duì)輸入的feature map進(jìn)行padding操作,得到新的feature map;然后,隨機(jī)初始化一定尺寸的卷積核;最后,用隨機(jī)初始化的一定尺寸的卷積核在新的feature map上進(jìn)行卷積操作。 補(bǔ)充一下,卷積核確實(shí)是隨機(jī)初始的,但是后

    2023年04月09日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包