亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

python開啟攝像頭以及深度學習實現目標檢測方法

2020-02-15 22:39:23
字體:
來源:轉載
供稿:網友

最近想做實時目標檢測,需要用到python開啟攝像頭,我手上只有兩個uvc免驅的攝像頭,性能一般。利用python開啟攝像頭費了一番功夫,主要原因是我的攝像頭都不能用cv2的VideCapture打開,這讓我聯想到原來opencv也打不開Android手機上的攝像頭(后來采用QML的Camera模塊實現的)。看來opencv對于攝像頭的兼容性仍然不是很完善。

我嘗了幾種辦法:v4l2,v4l2_capture以及simpleCV,都打不開。最后采用pygame實現了攝像頭的采集功能,這里直接給大家分享具體實現代碼(python3.6,cv2,opencv3.3,ubuntu16.04)。中間注釋的部分是我上述方法打開攝像頭的嘗試,說不定有適合自己的。

import pygame.cameraimport timeimport pygameimport cv2import numpy as np def surface_to_string(surface): """convert pygame surface into string""" return pygame.image.tostring(surface, 'RGB') def pygame_to_cvimage(surface): """conver pygame surface into cvimage"""  #cv_image = np.zeros(surface.get_size, np.uint8, 3) image_string = surface_to_string(surface) image_np = np.fromstring(image_string, np.uint8).reshape(480, 640, 3) frame = cv2.cvtColor(image_np, cv2.COLOR_BGR2RGB) return image_np, frame  pygame.camera.init()pygame.camera.list_cameras()cam = pygame.camera.Camera("/dev/video0", [640, 480]) cam.start()time.sleep(0.1)screen = pygame.display.set_mode([640, 480]) while True: image = cam.get_image()  cv_image, frame = pygame_to_cvimage(image)  screen.fill([0, 0, 0]) screen.blit(image, (0, 0)) pygame.display.update() cv2.imshow('frame', frame) key = cv2.waitKey(1) if key & 0xFF == ord('q'):  break   #pygame.image.save(image, "pygame1.jpg") cam.stop()   

上述代碼需要注意一個地方,就是pygame圖片和opencv圖片的轉化(pygame_to_cvimage)有些地方采用cv.CreateImageHeader和SetData來實現,注意這兩個函數在opencv3+后就消失了。因此采用numpy進行實現。

至于目標檢測,由于現在網上有很多實現的方法,MobileNet等等。這里我不講解具體原理,因為我的研究方向不是這個,這里直接把代碼貼出來,親測成功了。

from imutils.video import FPSimport argparseimport imutils  import v4l2import fcntl import v4l2captureimport selectimport image import pygame.cameraimport pygameimport cv2import numpy as npimport time def surface_to_string(surface): """convert pygame surface into string""" return pygame.image.tostring(surface, 'RGB') def pygame_to_cvimage(surface): """conver pygame surface into cvimage"""  #cv_image = np.zeros(surface.get_size, np.uint8, 3) image_string = surface_to_string(surface) image_np = np.fromstring(image_string, np.uint8).reshape(480, 640, 3) frame = cv2.cvtColor(image_np, cv2.COLOR_BGR2RGB) return frame  ap = argparse.ArgumentParser()ap.add_argument("-p", "--prototxt", required=True, help="path to caffe deploy prototxt file")ap.add_argument("-m", "--model", required=True, help="path to caffe pretrained model")ap.add_argument("-c", "--confidence", type=float, default=0.2, help="minimum probability to filter weak detection")args = vars(ap.parse_args()) CLASSES = ["background", "aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow",   "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]COLORS = np.random.uniform(0, 255, size=(len(CLASSES), 3)) print("[INFO] loading model...")net = cv2.dnn.readNetFromCaffe(args["prototxt"], args["model"])  print("[INFO] starting video stream ...") ###### opencv #########vs = VideoStream(src=1).start()##camera = cv2.VideoCapture(0)#if not camera.isOpened():# print("camera is not open")#time.sleep(2.0)  ###### v4l2 ######## #vd = open('/dev/video0', 'r')#cp = v4l2.v4l2_capability()#fcntl.ioctl(vd, v4l2.VIDIOC_QUERYCAP, cp) #cp.driver  ##### v4l2_capture#video = v4l2capture.Video_device("/dev/video0")#size_x, size_y = video.set_format(640, 480, fourcc= 'MJPEG')#video.create_buffers(30) #video.queue_all_buffers() #video.start() ##### pygame ####pygame.camera.init()pygame.camera.list_cameras()cam = pygame.camera.Camera("/dev/video0", [640, 480]) cam.start()time.sleep(1) fps = FPS().start()  while True: #try: # frame = vs.read() #except: # print("camera is not opened")  #frame = imutils.resize(frame, width=400) #(h, w) = frame.shape[:2]   #grabbed, frame = camera.read() #if not grabbed: # break #select.select((video,), (), ()) #frame = video.read_and_queue()  #npfs = np.frombuffer(frame, dtype=np.uint8) #print(len(npfs)) #frame = cv2.imdecode(npfs, cv2.IMREAD_COLOR)  image = cam.get_image() frame = pygame_to_cvimage(image)  frame = imutils.resize(frame, width=640) blob = cv2.dnn.blobFromImage(frame, 0.00783, (640, 480), 127.5)  net.setInput(blob) detections = net.forward()  for i in np.arange(0, detections.shape[2]):   confidence = detections[0, 0, i, 2]   if confidence > args["confidence"]:    idx = int(detections[0, 0, i, 1])   box = detections[0, 0, i, 3:7]*np.array([640, 480, 640, 480])   (startX, startY, endX, endY) = box.astype("int")    label = "{}:{:.2f}%".format(CLASSES[idx], confidence*100)   cv2.rectangle(frame, (startX, startY), (endX, endY), COLORS[idx], 2)   y = startY - 15 if startY - 15 > 15 else startY + 15    cv2.putText(frame, label, (startX, y), cv2.FONT_HERSHEY_SIMPLEX, 0.5, COLORS[idx], 2)  cv2.imshow("Frame", frame) key = cv2.waitKey(1)& 0xFF  if key ==ord("q"):  break  fps.stop()print("[INFO] elapsed time :{:.2f}".format(fps.elapsed()))print("[INFO] approx. FPS :{:.2f}".format(fps.fps()))   cv2.destroyAllWindows() #vs.stop()             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久中文字幕久久av| 久久九九有精品国产23| 91精品国产综合久久久久久久久| 国产精品1234| 91嫩草在线视频| 久久久久久免费精品| 日韩中文字幕视频在线| 欧美怡红院视频一区二区三区| 欧美第一黄网免费网站| 国产精品扒开腿做| 久久免费精品日本久久中文字幕| 亚洲999一在线观看www| 在线精品高清中文字幕| 国产精品稀缺呦系列在线| 尤物yw午夜国产精品视频| 国产精品嫩草影院一区二区| 欧美日韩中文在线观看| 97国产成人精品视频| 欧洲精品毛片网站| 91在线色戒在线| 国产999精品久久久| 成人国产精品免费视频| 国产99久久精品一区二区永久免费| 亚洲午夜小视频| 91亚洲精华国产精华| 国产精品一区二区三区久久| 国产网站欧美日韩免费精品在线观看| 日韩暖暖在线视频| 国产美女直播视频一区| 欧美午夜www高清视频| 久久精品一区中文字幕| 欧美一级视频一区二区| 亚洲精品动漫久久久久| 性色av一区二区三区红粉影视| 色综合91久久精品中文字幕| 日韩乱码在线视频| 久久精品99久久久久久久久| 亚洲欧美激情在线视频| 奇米一区二区三区四区久久| 欧美高清视频一区二区| 久久香蕉国产线看观看av| 亚洲自拍高清视频网站| 国语自产精品视频在线看一大j8| 欧美xxxx做受欧美| 色综合导航网站| 亚洲级视频在线观看免费1级| 在线日韩中文字幕| 91精品国产高清久久久久久91| www.日韩不卡电影av| 日韩在线视频网| 精品夜色国产国偷在线| 国产成人亚洲综合91精品| 中文字幕免费国产精品| 日本道色综合久久影院| 亚洲电影天堂av| 国产不卡一区二区在线播放| 国产999精品久久久影片官网| 国产精品久久久久久亚洲影视| 亚洲精品按摩视频| www.久久色.com| 精品国产成人av| 日韩精品在线免费| 国产精品久久久久高潮| 91欧美精品成人综合在线观看| 这里只有精品久久| 精品福利一区二区| 国产精品一区二区久久| 欧美高清性猛交| 久久久久一本一区二区青青蜜月| 在线观看日韩专区| 亚洲一区av在线播放| 国产美女久久精品香蕉69| 欧美在线影院在线视频| 欧美又大又粗又长| 日本欧美一二三区| 国产欧美亚洲视频| 精品久久久久久久久久国产| 欧美精品videofree1080p| 国产精品扒开腿做| 欧美亚洲另类视频| 日韩中文字幕在线看| 日韩免费在线电影| 欧美激情亚洲国产| 国产精品男女猛烈高潮激情| 国产精品三级在线| 欧美黑人一区二区三区| 国产亚洲精品高潮| 欧美高清视频免费观看| 久久九九精品99国产精品| 97免费中文视频在线观看| 色综合视频网站| 久久久久久这里只有精品| 91精品久久久久久久久青青| 久久精品国产免费观看| 久久资源免费视频| 57pao成人永久免费视频| 2021国产精品视频| 久久成人国产精品| 日韩欧美亚洲综合| 日韩在线观看你懂的| 日韩欧美在线一区| 亚洲免费小视频| 亚洲男人av电影| 日本在线精品视频| 国产亚洲美女久久| 欧美影院久久久| 91成品人片a无限观看| 亚洲精品日韩av| 欧美成人精品一区二区三区| 色悠悠久久88| 亚洲午夜精品视频| 成人日韩在线电影| 日韩欧美国产激情| 91欧美视频网站| 欧美精品一本久久男人的天堂| 久久国内精品一国内精品| 欧美情侣性视频| 91成品人片a无限观看| 色在人av网站天堂精品| 成人天堂噜噜噜| 中文字幕av一区二区三区谷原希美| 国产免费一区二区三区香蕉精| 久久久久亚洲精品| 一区二区在线免费视频| 久久偷看各类女兵18女厕嘘嘘| 国产欧美精品一区二区三区-老狼| 在线观看免费高清视频97| 久久久影视精品| 久久久久久欧美| 亚洲精品久久久久久久久久久久| 欧美高清性猛交| 欧美日韩国产一区二区三区| 日韩精品亚洲视频| 国产在线播放不卡| 国产999视频| 日韩风俗一区 二区| 久久精品国产综合| 日韩成人av在线播放| 日韩欧美国产高清91| 91精品综合久久久久久五月天| 色妞在线综合亚洲欧美| 国产精品精品一区二区三区午夜版| 精品成人久久av| 粉嫩老牛aⅴ一区二区三区| 国产在线观看91精品一区| 国产日韩视频在线观看| 国产精品高潮呻吟久久av无限| 中文一区二区视频| 欧美疯狂xxxx大交乱88av| 欧美性猛交xxxx免费看漫画| 欧美诱惑福利视频| 亚洲自拍欧美色图| 久久频这里精品99香蕉| 成人在线一区二区| 日韩av手机在线| 国产成人激情视频| 国产精品高清免费在线观看| 日本亚洲精品在线观看| 不卡在线观看电视剧完整版| 有码中文亚洲精品| 亚洲www永久成人夜色| 欧美一级电影久久| 草民午夜欧美限制a级福利片| 欧美激情高清视频|