Supress TensorFlow warnings; update dependencies
Also use PrettyTable to list source resolution
This commit is contained in:
parent
e9ace0f5e1
commit
494708a376
File diff suppressed because it is too large
Load Diff
|
@ -23,7 +23,7 @@ numpy = "^1.23.2"
|
|||
|
||||
# https://github.com/python-poetry/poetry/issues/6409#issuecomment-1911735833
|
||||
# To install with GPU, use poetry install -E cuda --with gpu
|
||||
torch = {version = "^2.1.2", source = "pytorch-cpu", markers = "extra!='cuda'" }
|
||||
torch = {version = "2.1.*", source = "pytorch-cpu", markers = "extra!='cuda'" }
|
||||
|
||||
# https://stackoverflow.com/a/76477590/18270659
|
||||
# https://discfuss.tensorflow.org/t/tensorflow-io-gcs-filesystem-with-windows/18849/4
|
||||
|
@ -45,7 +45,7 @@ prettytable = "^3.9.0"
|
|||
optional = true
|
||||
|
||||
[tool.poetry.group.gpu.dependencies]
|
||||
torch = {version = "^2.1.2", source = "pytorch-cu121", markers = "extra=='cuda'"}
|
||||
torch = {version = "2.1.*", source = "pytorch-cu121", markers = "extra=='cuda'"}
|
||||
tensorflow = {version = "^2.14.0", extras = ["and-cuda"], markers = "extra=='cuda'"}
|
||||
|
||||
[tool.poetry.extras]
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# import face_recognition
|
||||
from pathlib import Path
|
||||
import cv2
|
||||
import os
|
||||
|
||||
from prettytable import PrettyTable
|
||||
|
||||
|
@ -18,7 +19,7 @@ args = None
|
|||
def main():
|
||||
global objects_and_peoples
|
||||
global args
|
||||
# RUN_BY_COMPOSE = os.getenv("RUN_BY_COMPOSE") # Replace this with code to check for gpu
|
||||
|
||||
|
||||
args = argparser.parse_args()
|
||||
|
||||
|
@ -49,7 +50,9 @@ def main():
|
|||
# Set the video capture to the appropriate source
|
||||
if not args.rtsp_url and not args.capture_device:
|
||||
print("No stream or capture device set, defaulting to capture device 0")
|
||||
args.capture_device = [0]
|
||||
video_sources = {
|
||||
"devices": [cv2.VideoCapture(0)]
|
||||
}
|
||||
else:
|
||||
video_sources = {
|
||||
"streams": [cv2.VideoCapture(url) for url in args.rtsp_url],
|
||||
|
@ -60,13 +63,22 @@ def main():
|
|||
# This makes it so that the video capture will only grab the most recent frame
|
||||
# However, this means that the video may be choppy
|
||||
# Only do this for streams
|
||||
for stream in video_sources["streams"]:
|
||||
stream.set(cv2.CAP_PROP_BUFFERSIZE, 1)
|
||||
try:
|
||||
for stream in video_sources["streams"]:
|
||||
stream.set(cv2.CAP_PROP_BUFFERSIZE, 1)
|
||||
# If there are no streams, this will throw a KeyError
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
# Print out the resolution of the video sources. Ideally, change this so the device ID/url is also printed
|
||||
pretty_table = PrettyTable(field_names=["Source Type", "Resolution"])
|
||||
for source_type, sources in video_sources.items():
|
||||
for source in sources:
|
||||
pretty_table.add_row(
|
||||
[source_type, f"{source.get(cv2.CAP_PROP_FRAME_WIDTH)}x{source.get(cv2.CAP_PROP_FRAME_HEIGHT)}"]
|
||||
)
|
||||
print(pretty_table)
|
||||
|
||||
# Print the resolution of the video
|
||||
print(
|
||||
f"Video resolution: {video_capture.get(cv2.CAP_PROP_FRAME_WIDTH)}x{video_capture.get(cv2.CAP_PROP_FRAME_HEIGHT)}" # noqa: E501
|
||||
)
|
||||
print
|
||||
print("Beginning video capture...")
|
||||
while True:
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
import cv2
|
||||
import os
|
||||
import numpy as np
|
||||
from pathlib import Path
|
||||
from deepface import DeepFace
|
||||
from . import notify
|
||||
# https://stackoverflow.com/a/42121886/18270659
|
||||
os.environ['TF_CPP_MIN_LOG_LEVEL']='3'
|
||||
|
||||
|
||||
from deepface import DeepFace # noqa: E402
|
||||
from . import notify # noqa: E402
|
||||
|
||||
first_face_try = True
|
||||
|
||||
|
|
Loading…
Reference in New Issue