yzrobot / online_learning

[ROS package] Online Learning for Human Detection in 3D Point Clouds
GNU General Public License v3.0
156 stars 70 forks source link

How a initial model is used? #26

Closed duydl closed 10 months ago

duydl commented 2 years ago

Thank you for the awesome project. I am trying to reimplement the repo, but I got some questions I'd like to ask. As I understood from your paper, first an initial model that has been trained offline is used in the first round. But I could not find the code to import an external model in the object_3d_detector_ol.cpp I ran the object_3d_detector_3d with the LCAS bag file, but the result svm model has over 1500 SVs and the sv_coefs are all just 8 and -8.

yzrobot commented 2 years ago

Hi, the online initial classifier is not really necessary to be trained "offline" but rather by a human supervisor. This means the correctness of positive and negative samples is guaranteed by the user (a human). Our experimental version used some hardcoding to ensure the accuracy (i.e. right label) of the initial samples. But the open-source version takes into account the requirement of readability and reusability. So what you could do is A) manually add initial samples or, B) use our package directly while ensuring the accuracy of the positive and negative samples the robot learns at the outset in a controlled environment (e.g. only one person moving around). Best.

duydl commented 2 years ago

Thank you very much for prompt reply. May I ask how to manually add initial correct samples? I suppose by adding some feature vectors in the ".ros/svm_training_data"?

yzrobot commented 2 years ago

Hi, there are many ways, for example you might be willing to prepare some positive and negative samples in advance and save them in one or more pcd files, read/load/learn them in order to initialize an svm model at the beginning of your robot learning in the environment. BTW, touching the source code seems necessary. Best.