YOLOv8n + COCO labels on Hailo-8L detects only first 20 classes (people/animals) but not common objects (scissors, ball, book, toothbrush)

Hello everyone,

I am testing object detection using YOLOv8n with COCO labels on a Raspberry Pi 5 + Hailo-8L using the DeGirum SDK.
The model runs correctly, but I am observing a strange behavior regarding which objects are detected.

Model get in: hailo_model_zoo/docs/public_models/HAILO8L/HAILO8L_object_detection.rst at master · hailo-ai/hailo_model_zoo · GitHub

Problem description

The model detects the first classes in the COCO list very well (people, animals, etc.).
However, when I try to detect other common objects — such as scissors, ball, toothbrush, book, etc. — nothing is detected at all.

I am showing the objects directly in front of the camera, sometimes even using images displayed on a phone screen.
Objects belonging to the first ~20 classes are detected reliably, but anything beyond that seems to never be detected.

This makes me suspect that:

  • Either there is some configuration or post-processing limitation,

  • Or the label mapping is wrong,

  • Or maybe the model is not really using the full COCO class set,

  • Or lighting / brightness might be affecting detection of small objects.

From my tests, it feels like only classes up to approximately index 21 are being detected.

Model Configuration
{
“ConfigVersion”: 11,
“Checksum”: “da96ad3b3730500d56c8e13d164d44a78eb6f062516717d4c4195f7995a8c391”,
“DEVICE”: [
{
“DeviceType”: “HAILO8L”,
“RuntimeAgent”: “HAILORT”,
“SupportedDeviceTypes”: “HAILORT/HAILO8L, HAILORT/HAILO8”
}
],
“PRE_PROCESS”: [
{
“InputN”: 1,
“InputH”: 640,
“InputW”: 640,
“InputC”: 3,
“InputQuantEn”: true
}
],
“MODEL_PARAMETERS”: [
{
“ModelPath”: “yolov8n.hef”
}
],
“POST_PROCESS”: [
{
“OutputPostprocessType”: “DetectionYoloHailo”,
“LabelsPath”: “labels_coco.json”
}
]
}

Inference script

import degirum as dg, degirum_tools
import cv2

your_model_name = “yolov11n_opt”
your_host_address = “@local”
your_model_zoo = ‘/’
your_token = {}

model = dg.load_model(
model_name = your_model_name,
inference_host_address = your_host_address,
zoo_url = your_model_zoo,
token = your_token
)

video_source = cv2.VideoCapture(1)

with degirum_tools.Display(“AI Camera”) as output_display:
for inference_result in degirum_tools.predict_stream(model, video_source):
output_display.show(inference_result)

How could I fix this?

I also tried assigning specific classes for it to detect, but it only detects those classes.

Thanks in advance!

Hi @pfma98

Can you try the model from our Hailo model zoo? It is the same model and we have not observed the issue you mentioned. I tested a couple of images with a cup and bottle, and both are detected.

1 Like

Hi,

Thanks for the suggestion.

I downloaded and tested the model directly from the DeGirum Hailo model zoo:
https://hub.degirum.com/public-models/degirum/hailo

After switching to that model, the detection works correctly. Objects that were not being detected before (e.g., cup, bottle, and other classes) are now detected as expected.

So it seems the issue was related to the HEF/model I was using previously, not the DeGirum runtime or the pipeline.

Thank you very much for the help!

1 Like