Difficulty Triggering Digital Signal with Hand Detection using Edge Impulse

Hello, everyone!

I’m working on my thesis, which involves using artificial intelligence with Edge Impulse to monitor a robotic arm. The goal of the project is to detect the presence of a hand during monitoring, and upon detection, send a digital signal to an output pin on the embedded system.

Currently, I’m facing difficulties implementing the code to make this detection work. Here’s the relevant code snippet I’m using:

if (result.bounding_boxes[0].value > 0.90) {
    Serial.print("-------------OBJECT DETECTED------------- \r\n");
    digitalWrite(interferencia, HIGH);
}

However, this code is not functioning as expected. Here are some considerations and what I’ve tried so far:

  1. Detection Confidence: The confidence value (result.bounding_boxes[0].value) doesn’t always seem to reflect the hand detection correctly.
  2. Bounding Box Position: The object of interest (the hand) may not always be in the [0] position of the bounding_boxes[] array, which could be causing detection issues.
  3. Detection Label: I’m using strcmp(bb.label, "hand") to check if the detected object is a hand, but I’m unsure if the label is correct.

I’d appreciate any suggestions on how to:

  • Properly check for hand detection in the bounding boxes array.
  • Trigger the digital signal correctly based on detection.
  • Improve the logic for identifying the hand.

Thanks in advance for the help! I’m open to any suggestions!