vladmandic / human

Human: AI-powered 3D Face Detection & Rotation Tracking, Face Description & Recognition, Body Pose Tracking, 3D Hand & Finger Tracking, Iris Analysis, Age & Gender & Emotion Prediction, Gaze Tracking, Gesture Recognition
https://vladmandic.github.io/human/demo/index.html
MIT License
2.39k stars 326 forks source link

Human inferencing stops after ~5 mins on Chrome on Windows #424

Closed arvindsaraf closed 8 months ago

arvindsaraf commented 9 months ago

Issue Description

I just upgraded from faceapi to human, and here's the core inferencing code, essentially - aimed at inferencing on a frame every second: `while (new Date() < endTime) { snapshotTime = new Date(); const result = await this.human.detect(this.human.webcam.element);

  await this.uploadData(result, this.human.process.canvas, snapshotTime);

  const processingTime = new Date() - snapshotTime;
  const sleepTime = 1*1000 - processingTime;
  if (sleepTime > 0) {
    await new Promise(resolve => setTimeout(resolve, sleepTime));
  }

`

After ~5mins, the inferencing stops giving this error:

D3D12 closing pending command list failed with E_OUTOFMEMORY (0x8007000E)
 - While handling unexpected error type Internal when allowed errors are (Validation|DeviceLost).
    at CheckHRESULTImpl (..\..\third_party\dawn\src\dawn\native\d3d\D3DError.cpp:111)
    at ExecuteCommandList (..\..\third_party\dawn\src\dawn\native\d3d12\CommandRecordingContext.cpp:91)
    at SubmitImpl (..\..\third_party\dawn\src\dawn\native\d3d12\QueueD3D12.cpp:70)
    at SubmitInternal (..\..\third_party\dawn\src\dawn\native\Queue.cpp:663)

Backend messages:
 * Device removed reason: S_OK (0x00000000)

Steps to Reproduce

Expected Behavior

Environment

Diagnostics

Additional

vladmandic commented 9 months ago

set debug=true in your config and upload entire log leading up to first error, there is nothing i can do without the log.

vladmandic commented 8 months ago

any updates?