작성
·
170
0
import time
file_name = 'ai_cv/video/face_01.mp4'
frame_count = 0
# csrt
# tracker = cv2.TrackerCSRT_create()
# kcf
tracker = cv2.TrackerKCF_create()
# boosting
# tracker = cv2.TrackerBoosting_create()
# mil
# tracker = cv2.TrackerMIL_create()
# tld
# tracker = cv2.TrackerTLD_create()
# medianflow
# tracker = cv2.TrackerMedianFlow_create()
# mosse
# tracker = cv2.TrackerMOSSE_create()
face_cascade_name = 'ai_cv/haarcascades/haarcascade_frontalface_alt.xml'
face_cascade = cv2.CascadeClassifier()
if not face_cascade.load(cv2.samples.findFile(face_cascade_name)):
print('### Error loading face cascade ###')
exit(0)
detected = False
frame_mode = 'Tracking'
elapsed_time = 0
trackers = cv2.MultiTracker_create()
vs = cv2.VideoCapture(file_name)
while True:
ret, frame = vs.read()
if frame is None:
print('### No more frame ###')
break
start_time = time.time()
frame_count += 1
if detected:
frame_mode = 'Tracking'
(success, boxes) = trackers.update(frame)
for box in boxes:
(x, y, w, h) = [int(v) for v in box]
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
else:
frame_mode = 'Detection'
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
frame_gray = cv2.equalizeHist(frame_gray)
faces = face_cascade.detectMultiScale(frame_gray)
for (x,y,w,h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 255), 4)
trackers.add(tracker, frame, tuple(faces[0]))
detected = True
cv2.imshow("Frame", frame)
frame_time = time.time() - start_time
elapsed_time += frame_time
print("[{}] Frame {} time {}".format(frame_mode, frame_count, frame_time))
key = cv2.waitKey(1) & 0xFF
if key == ord("q"):
break
print("Elapsed time {}".format(elapsed_time))
vs.release()
cv2.destroyAllWindows()
[Detection] Frame 1 time 0.049742698669433594 [Tracking] Frame 2 time 0.00684809684753418 [Tracking] Frame 3 time 0.010833024978637695 [Tracking] Frame 4 time 0.011183738708496094 [Tracking] Frame 5 time 0.009935855865478516 [Tracking] Frame 6 time 0.01006460189819336 [Tracking] Frame 7 time 0.011047124862670898 [Tracking] Frame 8 time 0.00996708869934082 [Tracking] Frame 9 time 0.009964227676391602 [Tracking] Frame 10 time 0.009967327117919922 [Tracking] Frame 11 time 0.008969306945800781 [Tracking] Frame 12 time 0.010144472122192383 [Tracking] Frame 13 time 0.010159730911254883 [Tracking] Frame 14 time 0.010029315948486328 [Tracking] Frame 15 time 0.009900569915771484 [Tracking] Frame 16 time 0.012940406799316406 [Tracking] Frame 17 time 0.01034688949584961 [Tracking] Frame 18 time 0.01052403450012207 [Tracking] Frame 19 time 0.008970022201538086 [Tracking] Frame 20 time 0.010088205337524414 [Tracking] Frame 21 time 0.010962724685668945 [Tracking] Frame 22 time 0.009985685348510742 [Tracking] Frame 23 time 0.010182857513427734 [Tracking] Frame 24 time 0.011196136474609375 [Tracking] Frame 25 time 0.010173559188842773 [Tracking] Frame 26 time 0.00989079475402832 [Tracking] Frame 27 time 0.008971691131591797 [Tracking] Frame 28 time 0.010074377059936523 [Tracking] Frame 29 time 0.011148691177368164 [Tracking] Frame 30 time 0.010149717330932617 [Tracking] Frame 31 time 0.008952856063842773 [Tracking] Frame 32 time 0.0113372802734375 [Tracking] Frame 33 time 0.010261774063110352 [Tracking] Frame 34 time 0.010092496871948242 [Tracking] Frame 35 time 0.009135007858276367 [Tracking] Frame 36 time 0.011106014251708984 [Tracking] Frame 37 time 0.00996708869934082 [Tracking] Frame 38 time 0.010132551193237305 [Tracking] Frame 39 time 0.01096653938293457 [Tracking] Frame 40 time 0.009113788604736328 [Tracking] Frame 41 time 0.009966611862182617 [Tracking] Frame 42 time 0.009006500244140625 [Tracking] Frame 43 time 0.010137557983398438 [Tracking] Frame 44 time 0.010968685150146484 [Tracking] Frame 45 time 0.010090351104736328 [Tracking] Frame 46 time 0.00996708869934082 [Tracking] Frame 47 time 0.010097503662109375 [Tracking] Frame 48 time 0.009154081344604492 [Tracking] Frame 49 time 0.011050701141357422 [Tracking] Frame 50 time 0.010245323181152344 [Tracking] Frame 51 time 0.010037660598754883 [Tracking] Frame 52 time 0.009949207305908203 [Tracking] Frame 53 time 0.010206937789916992 [Tracking] Frame 54 time 0.010103940963745117 [Tracking] Frame 55 time 0.011080026626586914 [Tracking] Frame 56 time 0.009037256240844727 [Tracking] Frame 57 time 0.010066986083984375 [Tracking] Frame 58 time 0.01086282730102539 [Tracking] Frame 59 time 0.011019468307495117 [Tracking] Frame 60 time 0.009200334548950195 [Tracking] Frame 61 time 0.01138615608215332 [Tracking] Frame 62 time 0.010236263275146484 [Tracking] Frame 63 time 0.010827064514160156 [Tracking] Frame 64 time 0.010096311569213867 [Tracking] Frame 65 time 0.01114511489868164 [Tracking] Frame 66 time 0.011437177658081055 [Tracking] Frame 67 time 0.011236190795898438 [Tracking] Frame 68 time 0.00897216796875 [Tracking] Frame 69 time 0.01003575325012207 [Tracking] Frame 70 time 0.009973287582397461 [Tracking] Frame 71 time 0.012045145034790039 [Tracking] Frame 72 time 0.011436223983764648 [Tracking] Frame 73 time 0.011066913604736328 [Tracking] Frame 74 time 0.011760473251342773 [Tracking] Frame 75 time 0.011989831924438477 [Tracking] Frame 76 time 0.010531187057495117 [Tracking] Frame 77 time 0.009981393814086914 [Tracking] Frame 78 time 0.010620355606079102 [Tracking] Frame 79 time 0.01088094711303711 [Tracking] Frame 80 time 0.011965751647949219 [Tracking] Frame 81 time 0.010114431381225586 [Tracking] Frame 82 time 0.00996708869934082 [Tracking] Frame 83 time 0.012120246887207031 [Tracking] Frame 84 time 0.011082887649536133 [Tracking] Frame 85 time 0.010336637496948242 [Tracking] Frame 86 time 0.00996708869934082 [Tracking] Frame 87 time 0.01117849349975586 [Tracking] Frame 88 time 0.01202845573425293 [Tracking] Frame 89 time 0.01096653938293457 [Tracking] Frame 90 time 0.011366605758666992 [Tracking] Frame 91 time 0.013704061508178711 [Tracking] Frame 92 time 0.010897397994995117 [Tracking] Frame 93 time 0.011034488677978516 [Tracking] Frame 94 time 0.011842727661132812 [Tracking] Frame 95 time 0.010582447052001953 [Tracking] Frame 96 time 0.01071310043334961 [Tracking] Frame 97 time 0.011272192001342773 [Tracking] Frame 98 time 0.010962963104248047 [Tracking] Frame 99 time 0.010538816452026367 [Tracking] Frame 100 time 0.010112285614013672 [Tracking] Frame 101 time 0.011833667755126953 [Tracking] Frame 102 time 0.01100778579711914 [Tracking] Frame 103 time 0.009095907211303711 [Tracking] Frame 104 time 0.011062383651733398 [Tracking] Frame 105 time 0.010706901550292969 [Tracking] Frame 106 time 0.011118888854980469 [Tracking] Frame 107 time 0.009864330291748047 [Tracking] Frame 108 time 0.009962081909179688 [Tracking] Frame 109 time 0.011107206344604492 [Tracking] Frame 110 time 0.012238264083862305 [Tracking] Frame 111 time 0.011181354522705078 [Tracking] Frame 112 time 0.010162353515625 [Tracking] Frame 113 time 0.01158452033996582 [Tracking] Frame 114 time 0.011144876480102539 [Tracking] Frame 115 time 0.010689735412597656 Elapsed time 1.2488503456115723
동영상 재생이 원본보다 빨리됩니다.. 왜 이럴까요
답변