Person_detection.tflite model specifications and its confidence at range

I need information on the person_detection.tflite model specifications present in openmv. My use case is different and need some range detection till 10 meters, The confidence I am getting through this model is not good at this distance. So if I can get the specifications and details of the model, I can try out different configurations or build my own custom model for my use case. Please point me in the right direction.

What camera do you have? There’s a new YOLO person detection model that you can run that hits about 2 FPS on the H7P or RT1062 (much faster on the N6 and AE3, but, they are not ready yet).

Hey kwagyeman,

I am using OpenMV RT 1062 board.

  1. Install the latest dev firmware from the IDE under tools.
  2. Edit the ROMFS and go to the model zoo.
  3. Uncheck the filter by board type button on the bottom left hand corner.
  4. Find the networks under st microelectronics, object detection, yolo lc.
  5. Load one of those models and commit the ROMFS.

Then use this script with the path name for ROMFS of the model you added:

# This work is licensed under the MIT license.
# Copyright (c) 2013-2025 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# TensorFlow Lite YoloLC Object Detection Example

import time
import sensor
import ml
from ml.postprocessing import yolo_lc_postprocess
import gc

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.VGA)
sensor.set_windowing((400, 400))

import os
print(os.listdir("/rom"))

model = ml.Model("/rom/<model_name>")
model_class_labels = ["person"]
model_class_colors = [(0, 0, 255)]
print(model)

clock = time.clock()
while True:
    clock.tick()
    img = sensor.snapshot()

    # boxes is a list of list per class of ((x, y, w, h), score) tuples
    boxes = model.predict([img], callback=yolo_lc_postprocess(threshold=0.4))

    # Draw bounding boxes around the detected objects
    for i, class_detections in enumerate(boxes):
        rects = [r for r, score in class_detections]
        labels = [model_class_labels[i] for j in range(len(rects))]
        colors = [model_class_colors[i] for j in range(len(rects))]
        ml.utils.draw_predictions(img, rects, labels, colors, format=None)

    print(clock.fps(), "fps")

We’ll have this under examples soon…

What’s the maximum distance I should expect with this model for person detection and what will be the confidence drop with range.

Can’t say exactly. It can easily detect a person though who’s 10 ft away. It depends on the resolution of the model you pick. There’s multiple reses, the larger ones run slower. Give it a try.

I need to detect people at distances of 10 meters or more for my application. Is this model the best choice for that range, or is there a better alternative you’d recommend for longer-range person detection?

This is the best choice for the RT1062. Please try it out. You may need to change the lens on the board.

What lens+model combination would you recommend for person detection at far ranges also : like 20-30m away

Please try out the super telephoto lens.

The problem with super telephoto lens is that it has only a 10 degree FOV which doesnt work. We want a reasonably wide FOV along with high quality person detection in at least 20-30m range. What would be a good way to do this.
We are trying to combine motion detection + person detection, do you think that will yield good results. Are there some good examples to look at here? I assume this is a common use case for OpenMV?

We also sell a telephoto lens you can try to use. It has a wide FoV while still applying a lot of zoom.

We want a reasonably wide FOV along with high quality person detection in at least 20-30m range. What would be a good way to do this.

This just really comes down to having a very large resolution and a very powerful system that can process that resolution. The RT1062 can’t do both of these at the same time.

We are trying to combine motion detection + person detection, do you think that will yield good results. Are there some good examples to look at here? I assume this is a common use case for OpenMV

I have provided you with a script that runs a YOLO model on the RT1062, please give it a try with some of the lens options we provide on our store.

We have the OpenMV N6 coming out later this year which offers 500x the ML performance. For now, we just have the RT1062.