日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tensorflow yolov3 Intel Realsense D435 单摄像头下各模块识别时间测试

發布時間:2025/3/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tensorflow yolov3 Intel Realsense D435 单摄像头下各模块识别时间测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 1、一次循環總耗時
      • 2、從循環開始到self.predict()之前
      • 3、第一次循環主要耗時函數:wait_for_frames()(其實self.predict()函數在第一次循環更耗時)
      • 4、self.predict()函數
      • 5、utils.draw_bbox()函數
      • 測試代碼

1、一次循環總耗時


耗時:2.908219337463379秒 耗時:0.07806706428527832秒 耗時:0.08204793930053711秒 耗時:0.07005834579467773秒 耗時:0.08158540725708008秒 耗時:0.06580519676208496秒 耗時:0.06614995002746582秒 耗時:0.06408429145812988秒 耗時:0.07110047340393066秒 耗時:0.08135437965393066秒 耗時:0.07904911041259766秒 耗時:0.06505846977233887秒 耗時:0.07077407836914062秒 耗時:0.06361842155456543秒 耗時:0.08015942573547363秒 耗時:0.06384611129760742秒 耗時:0.06284117698669434秒 耗時:0.06661009788513184秒 耗時:0.102996826171875秒 耗時:0.08405685424804688

2、從循環開始到self.predict()之前


耗時:0.2761650085449219秒 耗時:0.005017757415771484秒 耗時:0.002001523971557617秒 耗時:0.0030014514923095703秒 耗時:0.006029367446899414秒 耗時:0.001999378204345703秒 耗時:0.0020105838775634766秒 耗時:0.002020120620727539秒 耗時:0.0030014514923095703秒 耗時:0.002002239227294922秒 耗時:0.003000497817993164秒 耗時:0.0019986629486083984秒 耗時:0.002001047134399414秒 耗時:0.0020172595977783203秒 耗時:0.0019986629486083984秒 耗時:0.002520322799682617秒 耗時:0.002491474151611328秒 耗時:0.003017425537109375秒 耗時:0.0029752254486083984秒 耗時:0.006000995635986328秒 耗時:0.0019826889038085938秒 耗時:0.0030014514923095703秒 耗時:0.002619504928588867秒 耗時:0.0031502246856689453秒 耗時:0.0040073394775390625秒 耗時:0.0020704269409179688秒 耗時:0.0025060176849365234秒 耗時:0.003531932830810547秒 耗時:0.004002094268798828

3、第一次循環主要耗時函數:wait_for_frames()(其實self.predict()函數在第一次循環更耗時)

經過排查,發現運行第一次循環時的主要耗時為wait_for_frames()函數

耗時:0.2458813190460205秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0010271072387695312秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0005021095275878906秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0

4、self.predict()函數

耗時:2.5726187229156494秒 耗時:0.07996416091918945秒 耗時:0.07428789138793945秒 耗時:0.0805974006652832秒 耗時:0.07904219627380371秒 耗時:0.06201648712158203秒 耗時:0.06962394714355469秒 耗時:0.08076310157775879秒 耗時:0.06206536293029785秒 耗時:0.06133413314819336秒 耗時:0.07121872901916504秒 耗時:0.05918383598327637秒 耗時:0.059471845626831055秒 耗時:0.059415578842163086秒 耗時:0.06809067726135254秒 耗時:0.06953263282775879秒 耗時:0.0625460147857666秒 耗時:0.0598294734954834秒 耗時:0.07292938232421875秒 耗時:0.06318020820617676秒 耗時:0.0830841064453125秒 耗時:0.07958698272705078

5、utils.draw_bbox()函數

耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0009729862213134766秒 耗時:0.0005013942718505859秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0秒 耗時:0.0005011558532714844

測試代碼

# -*- coding: utf-8 -*- """ @File : test-191204-單攝像頭耗時測試.py @Time : 2019/12/4 11:54 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """import cv2 import numpy as np import tensorflow as tf import core.utils as utils from core.config import cfg from core.yolov3 import YOLOV3 import pyrealsense2 as rs import time import dontla_package.dontla_ThreadClass as dtclass YoloTest(object):def __init__(self):# D·C 191111:__C.TEST.INPUT_SIZE = 544self.input_size = cfg.TEST.INPUT_SIZEself.anchor_per_scale = cfg.YOLO.ANCHOR_PER_SCALE# Dontla 191106注釋:初始化class.names文件的字典信息屬性self.classes = utils.read_class_names(cfg.YOLO.CLASSES)# D·C 191115:類數量屬性self.num_classes = len(self.classes)self.anchors = np.array(utils.get_anchors(cfg.YOLO.ANCHORS))# D·C 191111:__C.TEST.SCORE_THRESHOLD = 0.3self.score_threshold = cfg.TEST.SCORE_THRESHOLD# D·C 191120:__C.TEST.IOU_THRESHOLD = 0.45self.iou_threshold = cfg.TEST.IOU_THRESHOLDself.moving_ave_decay = cfg.YOLO.MOVING_AVE_DECAY# D·C 191120:__C.TEST.ANNOT_PATH = "./data/dataset/Dontla/20191023_Artificial_Flower/test.txt"self.annotation_path = cfg.TEST.ANNOT_PATH# D·C 191120:__C.TEST.WEIGHT_FILE = "./checkpoint/f_g_c_weights_files/yolov3_test_loss=15.8845.ckpt-47"self.weight_file = cfg.TEST.WEIGHT_FILE# D·C 191115:可寫標記(bool類型值)self.write_image = cfg.TEST.WRITE_IMAGE# D·C 191115:__C.TEST.WRITE_IMAGE_PATH = "./data/detection/"(識別圖片畫框并標注文本后寫入的圖片路徑)self.write_image_path = cfg.TEST.WRITE_IMAGE_PATH# D·C 191116:TEST.SHOW_LABEL設置為Trueself.show_label = cfg.TEST.SHOW_LABEL# D·C 191120:創建命名空間“input”with tf.name_scope('input'):# D·C 191120:建立變量(創建占位符開辟內存空間)self.input_data = tf.placeholder(dtype=tf.float32, name='input_data')self.trainable = tf.placeholder(dtype=tf.bool, name='trainable')model = YOLOV3(self.input_data, self.trainable)self.pred_sbbox, self.pred_mbbox, self.pred_lbbox = model.pred_sbbox, model.pred_mbbox, model.pred_lbbox# D·C 191120:創建命名空間“指數滑動平均”with tf.name_scope('ema'):ema_obj = tf.train.ExponentialMovingAverage(self.moving_ave_decay)# D·C 191120:在允許軟設備放置的會話中啟動圖形并記錄放置決策。(不懂啥意思。。。)allow_soft_placement=True表示允許tf自動選擇可用的GPU和CPUself.sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True))# D·C 191120:variables_to_restore()用于加載模型計算滑動平均值時將影子變量直接映射到變量本身self.saver = tf.train.Saver(ema_obj.variables_to_restore())# D·C 191120:用于下次訓練時恢復模型self.saver.restore(self.sess, self.weight_file)def predict(self, image):# D·C 191107:復制一份圖片的鏡像,避免對圖片直接操作改變圖片的內在屬性org_image = np.copy(image)# D·C 191107:獲取圖片尺寸org_h, org_w, _ = org_image.shape# D·C 191108:該函數將源圖結合input_size,將其轉換成預投喂的方形圖像(作者默認544×544,中間為縮小尺寸的源圖,上下空區域為灰圖):image_data = utils.image_preprocess(image, [self.input_size, self.input_size])# D·C 191108:打印維度看看:# print(image_data.shape)# (544, 544, 3)# D·C 191108:創建新軸,不懂要創建新軸干嘛?image_data = image_data[np.newaxis, ...]# D·C 191108:打印維度看看:# print(image_data.shape)# (1, 544, 544, 3)# D·C 191110:三個box可能存放了預測框圖(可能是N多的框,有用的沒用的重疊的都在里面)的信息(但是打印出來的值完全看不懂啊喂?)pred_sbbox, pred_mbbox, pred_lbbox = self.sess.run([self.pred_sbbox, self.pred_mbbox, self.pred_lbbox],feed_dict={self.input_data: image_data,self.trainable: False})# D·C 191110:打印三個box的類型、形狀和值看看:# print(type(pred_sbbox))# print(type(pred_mbbox))# print(type(pred_lbbox))# 都是<class 'numpy.ndarray'># print(pred_sbbox.shape)# print(pred_mbbox.shape)# print(pred_lbbox.shape)# (1, 68, 68, 3, 6)# (1, 34, 34, 3, 6)# (1, 17, 17, 3, 6)# print(pred_sbbox)# print(pred_mbbox)# print(pred_lbbox)# D·C 191110:(-1,6)表示不知道有多少行,反正你給我整成6列,然后concatenate又把它們仨給疊起來,最終得到無數個6列數組(后面self.num_classes)個數存放的貌似是這個框屬于類的概率)pred_bbox = np.concatenate([np.reshape(pred_sbbox, (-1, 5 + self.num_classes)),np.reshape(pred_mbbox, (-1, 5 + self.num_classes)),np.reshape(pred_lbbox, (-1, 5 + self.num_classes))], axis=0)# D·C 191111:打印pred_bbox和它的維度看看:# print(pred_bbox)# print(pred_bbox.shape)# (18207, 6)# D·C 191111:猜測是第一道過濾,過濾掉score_threshold以下的圖片,過濾完之后少了好多:# D·C 191115:bboxes維度為[n,6],前四列是坐標,第五列是得分,第六列是對應類下標bboxes = utils.postprocess_boxes(pred_bbox, (org_h, org_w), self.input_size, self.score_threshold)# D·C 191111:猜測是第二道過濾,過濾掉iou_threshold以下的圖片:bboxes = utils.nms(bboxes, self.iou_threshold)return bboxesdef dontla_evaluate_detect(self):ctx = rs.context()pipeline1 = rs.pipeline(ctx)config1 = rs.config()# 通過程序去獲取已連接攝像頭序列號serial1 = ctx.devices[0].get_info(rs.camera_info.serial_number)config1.enable_device(serial1)config1.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)config1.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)pipeline1.start(config1)# 創建對齊對象(深度對齊顏色)align1 = rs.align(rs.stream.color)try:while True:begin_time = time.time()frames1 = pipeline1.wait_for_frames()end_time = time.time()t = end_time - begin_timeprint('耗時:{}秒'.format(t))# 獲取對齊幀集aligned_frames1 = align1.process(frames1)# 獲取對齊后的深度幀和彩色幀aligned_depth_frame1 = aligned_frames1.get_depth_frame()color_frame1 = aligned_frames1.get_color_frame()# 獲取顏色幀內參color_profile1 = color_frame1.get_profile()cvsprofile1 = rs.video_stream_profile(color_profile1)color_intrin1 = cvsprofile1.get_intrinsics()color_intrin_part1 = [color_intrin1.ppx, color_intrin1.ppy, color_intrin1.fx, color_intrin1.fy]# if not aligned_depth_frame1 or not color_frame1:# continue# if not aligned_depth_frame2 or not color_frame2:# continuecolor_image1 = np.asanyarray(color_frame1.get_data())# D·C 191121:顯示幀看看# cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)# cv2.imshow('RealSense', color_frame)# cv2.waitKey(1)bboxes_pr1 = self.predict(color_image1)image1 = utils.draw_bbox(color_image1, bboxes_pr1, aligned_depth_frame1, color_intrin_part1,show_label=self.show_label)# cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)cv2.imshow('window1', image1)cv2.waitKey(1)finally:pipeline1.stop()if __name__ == '__main__':YoloTest().dontla_evaluate_detect()

總結

以上是生活随笔為你收集整理的Tensorflow yolov3 Intel Realsense D435 单摄像头下各模块识别时间测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 影音av资源| 国产精品一区二区三 | 变态 另类 国产 亚洲 | jizzjizz在线| 国产日韩欧美中文字幕 | 啪视频在线观看 | 一区二区三区精彩视频 | 日本学生初尝黑人巨免费视频 | 性欢交69精品久久久 | 国产精品视频大全 | 一级丰满大乳hd高清 | 欧美性猛交99久久久久99按摩 | 青青操网| 国产美女精品 | 性欧美一区二区三区 | 青青草草 | 欧美三级午夜理伦三级老人 | 五月天堂婷婷 | v天堂在线观看 | 福利片在线观看 | 日韩最新 | 青青草国产精品视频 | 男女视频一区 | www在线看片| 日本免费三片在线播放 | 国产在线999 | 欧美 亚洲 | 欧美大片免费观看网址 | 别揉我奶头一区二区三区 | 先锋影视av | 精品国产一区二区三区久久狼黑人 | 人人干干人人 | 美女少妇毛片 | 国产精品自拍合集 | 国产成人宗合 | 在线播放黄色网址 | 我的公把我弄高潮了视频 | 日韩亚洲一区二区 | 日本妇女毛茸茸 | 在线播放视频高清在线观看 | 欧美久草 | 福利网站在线观看 | 免费观看黄色av | 91色漫| 欧洲亚洲成人 | aaaaaav| 日日摸夜夜 | 亚洲精品字幕在线 | 最新网址av | 欧美日本韩国一区 | 亚洲精品在线视频 | 日韩大片一区 | 亚洲av区无码字幕中文色 | 久热国产精品视频 | 在线不卡一区二区 | 亚洲精品短视频 | 欧美成人三级精品 | 可以免费看污视频的网站 | 已满18岁免费观看电视连续剧 | 精品成人久久久 | 大尺度做爰床戏呻吟舒畅 | 精东av在线 | www日本www| 成人亚洲黄色 | 国产一区二区三区日韩 | 美味的客房沙龙服务 | 91精品国产高清 | 日韩黄色免费 | 91视频网| 日韩激情四射 | 天堂中文在线播放 | 张柏芝亚洲一区二区三区 | 拍真实国产伦偷精品 | 懂色av蜜臀av粉嫩av喷吹 | 日本高清不卡在线观看 | www.日本黄| 92久久 | 亚洲一区二区日本 | 亚洲永久视频 | 亚洲热av | www.youji.com| 麻豆疯狂做受xxxx高潮视频 | 黑人巨大猛烈捣出白浆 | av中文资源 | 天堂色综合 | 国产精品99一区 | 欧美一级黄色片在线观看 | 欧美大片在线免费观看 | 精品人妻伦一区二区三区久久 | 51av在线 | 男生和女生差差的视频 | 外国电影免费观看高清完整版 | 久久国产精 | 在线观看久 | jzjzjz欧美丰满少妇 | 亚洲不卡视频在线 | 好男人www社区在线视频夜恋 | 国产一区一一区高清不卡 | 欧美极品少妇xxxxⅹ免费视频 |