Открыть CV поток видео YouTube - PullRequest
0 голосов
/ 31 мая 2019

Я хотел бы иметь возможность снимать видео на YouTube (как в режиме реального времени, так и в записи) с использованием открытого резюме.

Я нашел вопрос ниже, но, судя по комментариям и моим собственным испытаниям, код/ Решения, представленные ниже, не работают в последних версиях open cv.

Возможно ли передавать потоковое видео с https: // (например, YouTube) в python с OpenCV?

Есть ли способ для потоковой передачи видео с YouTube через самую последнюю версию open cv: opencv-python 4.1.0.25?

Моя цель - использовать это для тестирования алгоритма распознавания лиц на нескольких случайных видеопотоках, которые имеютлица (например, показ новостей) для проверки на ложные срабатывания.

1 Ответ

0 голосов
/ 31 мая 2019

Ниже приведен метод, который я использовал для потоковой передачи данных в opencv. Но я использовал более старую версию opencv и ссылку на себя.

Установите Pafy и youtubedl

pip install pafy
pip install youtube_dl

После установки скопируйте URL из видео, которое вы хотите. Ниже приведен пример кода

url = 'https://youtu.be/1AbfRENy3OQ'
urlPafy = pafy.new(url)
videoplay = urlPafy.getbest(preftype="webm")


cap = cv2.VideoCapture(videoplay.url)
while (True):
    ret,src = cap.read()
    cv2.imshow('src',src)
    #do your stuff here. 

cap.release()
cv2.destroyAllWindows()

Но если вы хотите автоматически выбрать случайное видео с лицом в нем, это будет немного сложнее

Вам нужно использовать YouTube-API, чтобы получить случайные VideoId из набора поисковых слов (например, красивое лицо, глубокие поддельные лица)

Затем из запрашиваемой базы данных выполните автоматический цикл для вашего алгоритма обучения. Ниже приведен краткий образец из других пост

import json
import urllib.request
import string
import random

count = 50
API_KEY = 'your_key'
random = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(3))

urlData = "https://www.googleapis.com/youtube/v3/search?key={}&maxResults={}&part=snippet&type=video&q={}".format(API_KEY,count,random)
webURL = urllib.request.urlopen(urlData)
data = webURL.read()
encoding = webURL.info().get_content_charset('utf-8')
results = json.loads(data.decode(encoding))

for data in results['items']:
    videoId = (data['id']['videoId'])
    print(videoId)
    #store your ids

Но без наземного ярлыка истины трудно получить количественную оценку вашей эффективности алгоритма. Таким образом, я бы предложил получить один из наборов видеоданных лица для эффективного вычисления для оценки. Вам нужен этот правильно сгенерированный счет для публикации.

https://www.cs.tau.ac.il/~wolf/ytfaces/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...