public FaceMaskDetectorTest() { faceMaskDetector = new FaceMaskDetector(); string programPath = AppDomain.CurrentDomain.BaseDirectory; imageFolder = Path.Combine(programPath, "Image", "FaceMaskDetector"); }
public FaceDetectionWebAPITest() { faceDetector = new FaceDetector(); faceMaskDetector = new FaceMaskDetector(); controller = new FaceDetectorController(faceDetector, faceMaskDetector); string programPath = AppDomain.CurrentDomain.BaseDirectory; imageFolder = Path.Combine(programPath, "Image", "FaceDetector"); }
public static IEnumerable <FaceModel> FaceAnalysis(FaceMaskDetector faceMaskDetector, byte[] imageData, IEnumerable <FaceRectangle> faceRectangles, bool mask) { if (mask) { IEnumerable <Rectangle> rectangles = faceRectangles.Select(faceRectangle => new Rectangle(faceRectangle.Top, faceRectangle.Left, faceRectangle.Width, faceRectangle.Height)); IEnumerable <Bitmap> faces = rectangles.Select(rectangle => FaceDetector.GetFaceImage(imageData, rectangle).ToBitmap()); IEnumerable <bool> isMasks = faceMaskDetector.Detect(faces); return(faceRectangles.Zip(isMasks, (faceRectangle, isMask) => new FaceModel { FaceRectangle = faceRectangle, FaceAttributes = new FaceAttributes { IsMask = isMask } })); } return(faceRectangles.Select(faceRectangle => new FaceModel { FaceRectangle = faceRectangle, FaceAttributes = new FaceAttributes() })); }
public FaceDetectorController(FaceDetector faceDetector, FaceMaskDetector faceMaskDetector) { this.faceDetector = faceDetector; this.faceMaskDetector = faceMaskDetector; }
private async Task Echo(HttpContext context, WebSocket webSocket, FaceDetector faceDetector, FaceMaskDetector faceMaskDetector) { var buffer = new byte[1024 * 1024 * 4]; WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None); while (!result.CloseStatus.HasValue) { byte[] imageData = buffer[..result.Count];
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, FaceDetector faceDetector, FaceMaskDetector faceMaskDetector) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); var webSocketOptions = new WebSocketOptions() { KeepAliveInterval = TimeSpan.FromSeconds(120), ReceiveBufferSize = 4 * 1024 * 1024 }; app.UseWebSockets(webSocketOptions); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); app.Use(async(context, next) => { if (context.Request.Path == "/ws") { if (context.WebSockets.IsWebSocketRequest) { WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync(); await Echo(context, webSocket, faceDetector, faceMaskDetector); } else { context.Response.StatusCode = 400; } } else { await next(); } }); }
public Form1() { InitializeComponent(); faceDetection = new FaceDetector(); faceMaskDetector = new FaceMaskDetector(); }