Проблемы OpenCV в Azure с помощью Django
Итак, странный вопрос для всех вас...
Я работаю над созданием приложения для определения эмоций с использованием OpenCV/Mediapipe в Django.
Сейчас я размещаю его на Azure (он очень простой).
Когда я запускаю приложение, используя
func host start
Он работает на 100% как ожидалось, если я запускаю его, используя
python3 manage.py runserver
Я вижу остальную часть моего приложения, но видео недоступно. И самое странное, что я не вижу никаких ошибок на своей консоли.
camera.py
import cv2
import mediapipe as mp
from mediapipe.python.solutions import drawing_utils, face_mesh
mp_draw = drawing_utils
mp_face_mesh = face_mesh
faceMesh = mp_face_mesh.FaceMesh(max_num_faces=2)
draw_specs = mp_draw.DrawingSpec((255, 0, 0), 1, 1)
class VideoCamera(object):
def __init__(self):
self.video = cv2.VideoCapture(0)
def __del__(self):
self.video.release()
def get_frame(self):
success, image = self.video.read()
if success:
rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
results = faceMesh.process(rgb)
if results.multi_face_landmarks:
faces = []
for face_landmarks in results.multi_face_landmarks:
mp_draw.draw_landmarks(
image, face_landmarks, mp_face_mesh.FACEMESH_CONTOURS, draw_specs,
draw_specs)
face = []
for id, lm in enumerate(face_landmarks.landmark):
ih, iw, ic = image.shape
x, y = int(lm.x * iw), int(lm.y*ih)
# cv2.putText(image, str(id), (x, y),
# cv2.FONT_HERSHEY_PLAIN, 1, (255, 0, 0), 1)
face.append([x, y])
faces.append(face)
frame_flip = cv2.flip(image, 1)
ret, jpeg = cv2.imencode('.jpg', frame_flip)
return jpeg.tobytes()
views.py
class HomeView(TemplateView):
template_name = 'welcome.html'
def gen(camera):
while True:
frame = camera.get_frame()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')
def video_feed(request):
camera = VideoCamera()
return StreamingHttpResponse(gen(camera),
content_type='multipart/x-mixed-replace;
boundary=frame')
welcome.html
{% extends 'base.html' %}
{% block content %}
<h1>Welcome to Emotion Recognition!</h1>
<div style="width:auto;" >
<img src="{% url 'video_feed' %}" alt="camera feed" width="75%">
</div>
{% endblock %}
Azure был настроен с помощью расширения VSCode. Я отвечу на любой вопрос, связанный с Azure, как смогу.