Hi all, I’m working on a people counting application using the Arducam 3D ToF Camera mounted on the ceiling. The issue I’m hitting is that the sensor does not see people with black hair. Has anyone run into this before? It’s causing missed counts.
Hi, welcome to the forum. Could you describe the issue in a bit more detail and share some info about your setup? Which platform are you using, what’s the mounting height, and what exactly happens in the depth image when it misses someone? One thing to keep in mind: for this ToF camera the longest measurement distance is 3.5 m, so that may be relevant depending on your mounting height.
Thanks for the reply. Here’s the environment info:
- Product: Arducam 3D ToF Camera
- Platform: CM4
- Followed the Wiki instructions
- Sensor mounted at 2.70 m height
- Distance between head and sensor: 1.20 m
The symptom: when a person with black hair enters the sensor FoV, the black hair does not reflect the ToF light and the depth measurement is at full scale — that area shows maximum distance, which is incorrect. The sensor then doesn’t see the person.
I already tried reducing the distance to 2 m, but I need more height for this application. It worked at some point, but somehow quit working. I’ve attached a screenshot of what I’m seeing.

Thanks for the detailed info. I’ve been checking this on my side too. Here’s a video that might help: https://www.youtube.com/watch?v=pu9bSo-b11A
Look at demo4 at 2:34 — the ToF camera is placed on a doorframe to check people walking into a room. All the test subjects have black hair and the camera detects their hair in the preview window.
Then demo5 shows two colleagues walking under sunlight, one with a blue mask and one with a black mask. The black mask does not reflect in the preview window.
So dark/black surfaces like a black mask can fail to reflect the ToF light — that’s consistent with the low reflectivity of dark objects. Have a look at those demos and let me know if it matches what you’re seeing.
Thanks, I checked the video. My case is the same as the third person walking in the demo — part of her black hair is seen as the background, shown as blue. It usually happens with females with loose hair. During this phase, blob detection does not work because the subject is opened where there’s background blue, and it’s not recognized as a person.
How do I solve this for people counting? Also, is there any chance of having a camera with a more powerful VCSEL?

Any update on this?
Sorry for the delay — I don’t have anything new from the team yet on the higher-power VCSEL option. I’ll post here as soon as I get an answer. For the loose-hair/background issue, it’s the same low-reflectivity behavior we discussed; I’m still looking into how to handle the blob detection side.
One more thing — I’m now trying to use the Arducam ToF Camera with an STM32MP135F. I’m not able to instantiate the camera in Python because CSI is not defined on this hardware. Is there complete documentation for the Python library that I can get?
Quick summary of where we are: the black-hair problem comes down to dark surfaces not reflecting enough ToF light, so those regions read as full scale/background — which is what breaks blob detection for people with loose dark hair. The doorframe demo shows black hair detected, but dark masks under sunlight don’t reflect, so reflectivity is the key factor. The more-powerful VCSEL option is still being checked. For the STM32MP135F, CSI not being defined means the camera interface isn’t exposed the way it is on CM4 — I’ll look into the Python library documentation and the STM32MP1 CSI support and follow up here.