switch back to stretch for hwaccel issues

This commit is contained in:
Blake Blackshear 2020-01-12 12:48:43 -06:00
parent 6f7b70665b
commit b615b84f57
4 changed files with 9 additions and 8 deletions

View File

@ -1,9 +1,10 @@
FROM debian:buster-slim FROM debian:stretch-slim
LABEL maintainer "blakeb@blakeshome.com" LABEL maintainer "blakeb@blakeshome.com"
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
# Install packages for apt repo # Install packages for apt repo
RUN apt -qq update && apt -qq install --no-install-recommends -y \ RUN apt -qq update && apt -qq install --no-install-recommends -y \
apt-transport-https ca-certificates \
gnupg wget \ gnupg wget \
ffmpeg \ ffmpeg \
python3 \ python3 \
@ -15,7 +16,7 @@ RUN apt -qq update && apt -qq install --no-install-recommends -y \
# pillow-simd # pillow-simd
# zlib1g-dev libjpeg-dev \ # zlib1g-dev libjpeg-dev \
# VAAPI drivers for Intel hardware accel # VAAPI drivers for Intel hardware accel
libva-drm2 libva2 i965-va-driver vainfo \ i965-va-driver vainfo \
&& echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" > /etc/apt/sources.list.d/coral-edgetpu.list \ && echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" > /etc/apt/sources.list.d/coral-edgetpu.list \
&& wget -q -O - https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \ && wget -q -O - https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \
&& apt -qq update \ && apt -qq update \

View File

@ -133,7 +133,7 @@ def main():
response.headers['Content-Type'] = 'image/jpg' response.headers['Content-Type'] = 'image/jpg'
return response return response
else: else:
return f'Camera named {camera_name} not found', 404 return "Camera named {} not found".format(camera_name), 404
@app.route('/<camera_name>') @app.route('/<camera_name>')
def mjpeg_feed(camera_name): def mjpeg_feed(camera_name):
@ -142,7 +142,7 @@ def main():
return Response(imagestream(camera_name), return Response(imagestream(camera_name),
mimetype='multipart/x-mixed-replace; boundary=frame') mimetype='multipart/x-mixed-replace; boundary=frame')
else: else:
return f'Camera named {camera_name} not found', 404 return "Camera named {} not found".format(camera_name), 404
def imagestream(camera_name): def imagestream(camera_name):
while True: while True:

View File

@ -254,7 +254,7 @@ class ObjectTracker(threading.Thread):
self.camera.objects_tracked.notify_all() self.camera.objects_tracked.notify_all()
def register(self, index, obj): def register(self, index, obj):
id = f"{str(obj['frame_time'])}-{index}" id = "{}-{}".format(str(obj['frame_time']), index)
obj['id'] = id obj['id'] = id
obj['top_score'] = obj['score'] obj['top_score'] = obj['score']
self.add_history(obj) self.add_history(obj)
@ -396,7 +396,7 @@ class BestFrames(threading.Thread):
best_frame = self.camera.frame_cache[obj['frame_time']] best_frame = self.camera.frame_cache[obj['frame_time']]
draw_box_with_label(best_frame, obj['box']['xmin'], obj['box']['ymin'], draw_box_with_label(best_frame, obj['box']['xmin'], obj['box']['ymin'],
obj['box']['xmax'], obj['box']['ymax'], obj['name'], f"{int(obj['score']*100)}% {obj['area']}") obj['box']['xmax'], obj['box']['ymax'], obj['name'], "{}% {}".format(int(obj['score']*100), obj['area']))
# print a timestamp # print a timestamp
time_to_show = datetime.datetime.fromtimestamp(obj['frame_time']).strftime("%m/%d/%Y %H:%M:%S") time_to_show = datetime.datetime.fromtimestamp(obj['frame_time']).strftime("%m/%d/%Y %H:%M:%S")

View File

@ -329,11 +329,11 @@ class Camera:
tracked_objects = copy.deepcopy(self.object_tracker.tracked_objects) tracked_objects = copy.deepcopy(self.object_tracker.tracked_objects)
for obj in detected_objects: for obj in detected_objects:
draw_box_with_label(frame, obj['box']['xmin'], obj['box']['ymin'], obj['box']['xmax'], obj['box']['ymax'], obj['name'], f"{int(obj['score']*100)}% {obj['area']}", thickness=3) draw_box_with_label(frame, obj['box']['xmin'], obj['box']['ymin'], obj['box']['xmax'], obj['box']['ymax'], obj['name'], "{}% {}".format(int(obj['score']*100), obj['area']), thickness=3)
for id, obj in tracked_objects.items(): for id, obj in tracked_objects.items():
color = (0, 255,0) if obj['frame_time'] == frame_time else (255, 0, 0) color = (0, 255,0) if obj['frame_time'] == frame_time else (255, 0, 0)
draw_box_with_label(frame, obj['box']['xmin'], obj['box']['ymin'], obj['box']['xmax'], obj['box']['ymax'], obj['name'], f"{id}", color=color, thickness=1, position='bl') draw_box_with_label(frame, obj['box']['xmin'], obj['box']['ymin'], obj['box']['xmax'], obj['box']['ymax'], obj['name'], id, color=color, thickness=1, position='bl')
# print a timestamp # print a timestamp
time_to_show = datetime.datetime.fromtimestamp(frame_time).strftime("%m/%d/%Y %H:%M:%S") time_to_show = datetime.datetime.fromtimestamp(frame_time).strftime("%m/%d/%Y %H:%M:%S")