Hi there! Are you using the Person Tracking feature in the RealSense SDK For Linux?
I am using Intel RealSense R200 camera for person tracking using ROS package (GitHub - IntelRealSense/realsense_samples_ros: Sample code illustrating how to develop ROS applications using the Intel®… )in Linux system.
My experience with this module is limited, but I will try to provide some useful insights.
With RealSense face recognition in general, if an ID that has been assigned to someone is re-assigned to another person when they enter the FOV, it is because the first person was not registered to the database. If they are registered then they should keep their ID even if they leave the camera view and a new person entering the FOV should be assigned a different ID.
Also bear in mind that when a face is first registered, the database is stored in the computer's memory and so newly registered faces will be lost when the application is closed. To store those face IDs permanently so that they will be in the database the next time that the program is run, you need to save the recognition database to a file.
I have already registered and save database to my folder using following command:
rosservice call /person_tracking/save_recognition "Path of my defined folder". and then it gives result "True" then i checked my database file size which was also modified.
but still it gives that same register id to another newly person.
Have you loaded in the database file when starting the program? Otherwise it would just start with a new empty database.
My program is already running. i didn't quit program and again start.
so is it require to load database after save database during same running program?
Because during running program i saved data to database and still problem occurred same running program. i didn't quit program and again start.
I went back to the GitHub link that you provided earlier. It confirmed to me that you are using the Intel RealSense For Linux person tracking module, and not just a ROS module in Linux. The Intel RealSense For Linux SDK was designed for the RealSense ZR300 camera model, whilst you are using the older R200 camera model.
Although the ZR300's IR components are identical to the R200's, I cannot eliminate the possibility that the problems you are having are because you are using the RealSense SDK For Linux with a camera model that it was not designed to support (as it is a ZR300 SDK).
We also check person tracking application from intel realsense sdk sample browser (C++ ) in window . In that also there is same issue of re-assign id to non-registered user.
So would you tell me where is root of problem in camera selection or source code ?
The same principles of face recognition that I listed above also apply to the Windows face recognition module (register a face to the database, save the database to a file, etc). I guess you are using the '2016 R2' version of the RealSense SDK for Windows, since the '2016 R3' version does not support the R200?
If you are using an R200 with the '2016 R2' SDK, which is compatible with the R200, then the problem is probably in the scripting instead of the camera this time.
The easiest way to test whether the camera is working properly is to use the 'Face Tracking' sample program that comes with the 2016 R2 SDK. When the SDK is installed, it places a folder on the Windows desktop called 'Intel RealSense SDK Gold'. inside this folder is an application called the Sample Browser.
Run the Sample Browser and click on the 'Common' option at the top of its window, then find a program in the list called 'Face Tracking (C++)'. Click the 'Run' button to run the program.
When it is running, place a tick in the 'Recognition' box to tell the program that you want to use the face recognition mode, then click 'Start' to start the camera and make the 'Register' and 'Unregister' buttons available to be selected.
Use the 'Register' button to register a face, and the 'Unregister' button to remove the registration.
yes we are using R200 with '2016 R2' Version.
I have run both face tracking and person tracking application.
1) In face tracking ,it gives better result occasionally.
2)But In person tracking , it re-assign recognition id to unregistered newly person frequently. so problem is not resolve in same.
Have you clicked on the 'Register' button whilst the person's face is in view of the camera so that they are registered into the database?
Is the person's face looking straight at the camera when you click the Register button?
Also please check that you are not too close to the camera or too far from it in order for the camera to be able to successfully register the ID by reading the facial landmarks.
I have clicked on the 'Register' button whilst the person's face is in view of the camera so that they are registered into the database. after that only there is registered id generated and assign to that person. and also i have taken care about person is not far or too near to camera. but still problem is occurred.
I have checked your given link but it is for windows version.
And I have also try to find word like REGISTRATION_MODE_CONTINUOUS or REGISTRATION_MODE_ON_DEMAND in Ros person tracking package in linux.
but i couldn't find it.
So if you know then please guide me.