文章目录

  • ​​运行一段opencv-python调用摄像头实现Apriltag识别的程序​​
  • ​​基于Intel i7 8th Gen 笔记本​​
  • ​​平均执行速度:0.060s/帧​​
  • ​​使用多进程,将识别代码放在子进程中执行​​
  • ​​平均执行速度:0.048s/帧,提速了20%​​
  • ​​基于Jetson Nano​​
  • ​​平均执行速度:0.07s/帧​​

运行一段opencv-python调用摄像头实现Apriltag识别的程序

def Aptag_detect(cap):
# 读取视频帧,ret标志读取的结果,frame为读取到的视频帧图像
start = time.time()
ret, frame = cap.read()

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# Build a detector for apriltag
tag_detector = apriltag.Detector()

# Perform apriltag detection to get a list of detected apriltag
tags = tag_detector.detect(gray)

print("%d apriltags have been detected."%len(tags))

for tag in tags:
cv2.circle(frame, tuple(tag.corners[0].astype(int)), 4,(0,0,255), 2) # left-top
cv2.circle(frame, tuple(tag.corners[1].astype(int)), 4,(0,0,255), 2) # right-top
cv2.circle(frame, tuple(tag.corners[2].astype(int)), 4,(0,0,255), 2) # right-bottom
cv2.circle(frame, tuple(tag.corners[3].astype(int)), 4,(0,0,255), 2) # left-bottom
print("family:",tag.tag_family)
print("id:", tag.tag_id)
print("conners:", tag.corners)
print("homography:", tag.homography)

cv2.imshow("apriltag_test",frame)
end = time.time()
time_list.append(end-start)
avarge = sum(time_list) / len(time_list)
print("detect:", end-start)
print("avarge:",avarge)

while 1:
Aptag_detect(cap)

基于Intel i7 8th Gen 笔记本

平均执行速度:0.060s/帧

opencv-python——如何从代码角度提高摄像头帧率_ci

opencv-python——如何从代码角度提高摄像头帧率_多进程_02

使用多进程,将识别代码放在子进程中执行

if __name__ == "__main__":
cap0 = cv2.VideoCapture(0)
cap1 = cv2.VideoCapture(1)
cap2 = cv2.VideoCapture(2)

while 1:
start = time.time()
#cap0_process = multiprocessing.Process(target=Aptag_cap, args=[cap0])
ret, frame = Aptag_cap(cap0)
cap1_process = multiprocessing.Process(target=Aptag_only_detect, args=[ret, frame]) #Aptag_cap(cap0)[0], Aptag_cap(cap0)[1]
#cap0_process.run()
cap1_process.run()
end = time.time()
time_list.append(end-start)
avarge = sum(time_list) / len(time_list)
print("all_avarge:",avarge)

平均执行速度:0.048s/帧,提速了20%

opencv-python——如何从代码角度提高摄像头帧率_python_03

基于Jetson Nano

平均执行速度:0.07s/帧

opencv-python——如何从代码角度提高摄像头帧率_python_04