Closed hanxiumeng closed 2 years ago
Here are different things you can try to help me solve out the problem:
Sparse VO success ICP success bestKey : 369 Total time = 22 ms nb supersurfels: 11231 stamp: 1017 Max model size = 1.1515 MB Mean runtime = 16.8075
Because of time, I haven't done a single step debugging yet.
And when using moving object detection without Yolo, does it fail?
yes,it will fail when using moving object detection without Yolo
[tcsetpgrp failed in terminal_inferior: 对设备不适当的 ioctl 操作] (An inappropriate ioctl operation on a device) [tcsetpgrp failed in terminal_inferior: 对设备不适当的 ioctl 操作] [New Thread 0x7fff5af18700 (LWP 27124)] [New Thread 0x7fff5a717700 (LWP 27125)] [New Thread 0x7fff59f16700 (LWP 27126)] [New Thread 0x7fff59715700 (LWP 27127)] [tcsetpgrp failed in terminal_inferior: 对设备不适当的 ioctl 操作] [tcsetpgrp failed in terminal_inferior: 对设备不适当的 ioctl 操作] [tcsetpgrp failed in terminal_inferior: 对设备不适当的 ioctl 操作] [tcsetpgrp failed in terminal_inferior: 对设备不适当的 ioctl 操作] [tcsetpgrp failed in terminal_inferior: 对设备不适当的 ioctl 操作] [tcsetpgrp failed in terminal_inferior: 对设备不适当的 ioctl 操作] [New Thread 0x7fff45fff700 (LWP 27134)] [New Thread 0x7fff457fe700 (LWP 27135)] [New Thread 0x7fff44efb700 (LWP 27136)] [tcsetpgrp failed in terminal_inferior: 对设备不适当的 ioctl 操作] [New Thread 0x7fff41dff700 (LWP 27151)] [New Thread 0x7fff419fe700 (LWP 27153)] [New Thread 0x7fff415fd700 (LWP 27152)] [New Thread 0x7fff411fc700 (LWP 27154)] [New Thread 0x7fff409fa700 (LWP 27155)] [New Thread 0x7fff405f9700 (LWP 27156)] [New Thread 0x7fff40dfb700 (LWP 27157)] [New Thread 0x7fff07fff700 (LWP 27158)] [Thread 0x7fff07fff700 (LWP 27158) exited] bestKey : 0 Total time = 40 ms nb supersurfels: 1200 stamp: 0 Max model size = 0.119019 MB Mean runtime = 40
[New Thread 0x7fff07fff700 (LWP 27159)] [Thread 0x7fff07fff700 (LWP 27159) exited] [New Thread 0x7fff07fff700 (LWP 27160)] [Thread 0x7fff07fff700 (LWP 27160) exited] Sparse VO success ICP success bestKey : 0 Total time = 28 ms nb supersurfels: 566 stamp: 1 Max model size = 0.119019 MB Mean runtime = 34
[New Thread 0x7fff07fff700 (LWP 27161)] [Thread 0x7fff07fff700 (LWP 27161) exited] [New Thread 0x7fff07fff700 (LWP 27162)] [Thread 0x7fff07fff700 (LWP 27162) exited]
Thread 1 "supersurfel_fus" received signal SIGSEGV, Segmentation fault. 0x00007fffec1afd8c in cv::optflow::DISOpticalFlowImpl::PatchInverseSearch_ParBody::operator()(cv::Range const&) const () from /usr/local/lib/libopencv_optflow.so.3.4
look like a problem with DISOpticalFlow
Ok, could you compile in Debug mode (with the flag -g) and show me the backtrace on gdb please? About OpenCV, do you build with the contrib modules? Because the DIS optical flow is in the contribs. I will try to see if it's related to my code or to OpenCV. In the meantime you can only rely on YOLOv4 to filter out possibly moving object.
/***** Compute dense optical flow *****/
dof->calc(gray, gray_estimate, optflow);
of function void MotionDetection::detectMotionSimple in the supersurfel_fusion/core/src/motion_detection.cu
Now it looks like a simple call to one of OpenCV's functions,but I should have been build opencv with the contrib modules successfully.But I will verify if the compilation is successful.
Maybe this can help: https://github.com/opencv/opencv_contrib/issues/1476
I have tried all the solutions including the one you recommended. But it do not work out finally, I do have the libopencv_optflow.so.3.4. Maybe here is a problem with my computer, I give it up and I am going to write my own code to detect moving objects without using optical streams. Anyway, thank you so much!
Ok, I am currently thinking on proposing an alternative more accurate than the DIS optical flow. In the source code, in "core/src/motion_detection.cu", there is a method called detectMotionYoloOnly () that you can use to perform MOD only with YOLO. Some changes may be done to make it more accurate :
I've run roslaunch supersurfel_fusion supersurfel_fusion_rgbd_benchmark.launch successfully now! But when I click the stop check box to cancel the pause, it crashes after only a few seconds, without too many error messages. I don't know what's wrong with that. Here is the full logs:
... logging to /home/robocup3d/.ros/log/ce08ef7c-39ff-11eb-a80e-0492264b1059/roslaunch-robocup3d-22670.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://robocup3d:44397/
SUMMARY
CLEAR PARAMETERS
PARAMETERS
NODES / rqt_reconfigure (rqt_reconfigure/rqt_reconfigure) rviz (rviz/rviz) supersurfel_fusion_rgbd_benchmark_node (supersurfel_fusion/supersurfel_fusion_rgbd_benchmark_node)
auto-starting new master process[master]: started with pid [22680] ROS_MASTER_URI=http://localhost:11311
setting /run_id to ce08ef7c-39ff-11eb-a80e-0492264b1059 process[rosout-1]: started with pid [22691] started core service [/rosout] process[supersurfel_fusion_rgbd_benchmark_node-2]: started with pid [22699] process[rviz-3]: started with pid [22700] process[rqt_reconfigure-4]: started with pid [22701] [ INFO] [1607505640.756203327]: rviz version 1.13.14 [ INFO] [1607505640.756229047]: compiled against Qt version 5.9.5 [ INFO] [1607505640.756234344]: compiled against OGRE version 1.9.0 (Ghadamon) [ INFO] [1607505640.759083239]: Forcing OpenGl version 0. Used GPU 0 0 : compute_capability = 750, cudnn_half = 1, GPU: GeForce RTX 2070 net.optimized_memory = 0 mini_batch = 1, batch = 1, time_steps = 1, train = 0 layer filters size/strd(dil) input output 0 [ INFO] [1607505641.322056506]: Stereo is NOT SUPPORTED [ INFO] [1607505641.322097384]: OpenGl version: 4.6 (GLSL 4.6). [WARN] [1607505641.327481]: Could not find a dynamic reconfigure client named '/supersurfel_fusion_rgbd_benchmark_node' conv 32 3 x 3/ 2 416 x 416 x 3 -> 208 x 208 x 32 0.075 BF 1 conv 64 3 x 3/ 2 208 x 208 x 32 -> 104 x 104 x 64 0.399 BF 2 conv 64 3 x 3/ 1 104 x 104 x 64 -> 104 x 104 x 64 0.797 BF 3 route 2 1/2 -> 104 x 104 x 32 4 conv 32 3 x 3/ 1 104 x 104 x 32 -> 104 x 104 x 32 0.199 BF 5 conv 32 3 x 3/ 1 104 x 104 x 32 -> 104 x 104 x 32 0.199 BF 6 route 5 4 -> 104 x 104 x 64 7 conv 64 1 x 1/ 1 104 x 104 x 64 -> 104 x 104 x 64 0.089 BF 8 route 2 7 -> 104 x 104 x 128 9 max 2x 2/ 2 104 x 104 x 128 -> 52 x 52 x 128 0.001 BF 10 conv 128 3 x 3/ 1 52 x 52 x 128 -> 52 x 52 x 128 0.797 BF 11 route 10 1/2 -> 52 x 52 x 64 12 conv 64 3 x 3/ 1 52 x 52 x 64 -> 52 x 52 x 64 0.199 BF 13 conv 64 3 x 3/ 1 52 x 52 x 64 -> 52 x 52 x 64 0.199 BF 14 route 13 12 -> 52 x 52 x 128 15 conv 128 1 x 1/ 1 52 x 52 x 128 -> 52 x 52 x 128 0.089 BF 16 route 10 15 -> 52 x 52 x 256 17 max 2x 2/ 2 52 x 52 x 256 -> 26 x 26 x 256 0.001 BF 18 conv 256 3 x 3/ 1 26 x 26 x 256 -> 26 x 26 x 256 0.797 BF 19 route 18 1/2 -> 26 x 26 x 128 20 conv 128 3 x 3/ 1 26 x 26 x 128 -> 26 x 26 x 128 0.199 BF 21 conv 128 3 x 3/ 1 26 x 26 x 128 -> 26 x 26 x 128 0.199 BF 22 route 21 20 -> 26 x 26 x 256 23 conv 256 1 x 1/ 1 26 x 26 x 256 -> 26 x 26 x 256 0.089 BF 24 route 18 23 -> 26 x 26 x 512 25 max 2x 2/ 2 26 x 26 x 512 -> 13 x 13 x 512 0.000 BF 26 conv 512 3 x 3/ 1 13 x 13 x 512 -> 13 x 13 x 512 0.797 BF 27 conv 256 1 x 1/ 1 13 x 13 x 512 -> 13 x 13 x 256 0.044 BF 28 conv 512 3 x 3/ 1 13 x 13 x 256 -> 13 x 13 x 512 0.399 BF 29 conv 255 1 x 1/ 1 13 x 13 x 512 -> 13 x 13 x 255 0.044 BF 30 yolo [yolo] params: iou loss: ciou (4), iou_norm: 0.07, obj_norm: 1.00, cls_norm: 1.00, delta_norm: 1.00, scale_x_y: 1.05 nms_kind: greedynms (1), beta = 0.600000 31 route 27 -> 13 x 13 x 256 32 conv 128 1 x 1/ 1 13 x 13 x 256 -> 13 x 13 x 128 0.011 BF 33 upsample 2x 13 x 13 x 128 -> 26 x 26 x 128 34 route 33 23 -> 26 x 26 x 384 35 conv 256 3 x 3/ 1 26 x 26 x 384 -> 26 x 26 x 256 1.196 BF 36 conv 255 1 x 1/ 1 26 x 26 x 256 -> 26 x 26 x 255 0.088 BF 37 yolo [yolo] params: iou loss: ciou (4), iou_norm: 0.07, obj_norm: 1.00, cls_norm: 1.00, delta_norm: 1.00, scale_x_y: 1.05 nms_kind: greedynms (1), beta = 0.600000 Total BFLOPS 6.910 avg_outputs = 310203 Allocate additional workspace_size = 26.22 MB Loading weights from /home/robocup3d/catkin_ws/src/supersurfel_fusion/config/yolov4-tiny.weights... seen 64, trained: 32012 K-images (500 Kilo-batches_64) Done! Loaded 38 layers from weights-file
try to allocate additional workspace_size = 26.22 MB CUDA allocate done! object names loaded bestKey : 0 Total time = 38 ms nb supersurfels: 1200 stamp: 0 Max model size = 0.119019 MB Mean runtime = 38
Sparse VO success ICP success bestKey : 0 Total time = 34 ms nb supersurfels: 532 stamp: 1 Max model size = 0.119019 MB Mean runtime = 36
Sparse VO success ICP success bestKey : 0 Total time = 25 ms nb supersurfels: 602 stamp: 2 Max model size = 0.119019 MB Mean runtime = 32.3333
Sparse VO success ICP success bestKey : 0 Total time = 24 ms nb supersurfels: 743 stamp: 3 Max model size = 0.119019 MB Mean runtime = 30.25
Sparse VO success ICP success bestKey : 1 Total time = 24 ms nb supersurfels: 921 stamp: 4 Max model size = 0.119019 MB Mean runtime = 29
================================================================================ REQUIRED process [supersurfel_fusion_rgbd_benchmark_node-2] has died! process has died [pid 22699, exit code -11, cmd /home/robocup3d/catkin_ws/devel/lib/supersurfel_fusion/supersurfel_fusion_rgbd_benchmark_node name:=supersurfel_fusion_rgbd_benchmark_node log:=/home/robocup3d/.ros/log/ce08ef7c-39ff-11eb-a80e-0492264b1059/supersurfel_fusion_rgbd_benchmark_node-2.log]. log file: /home/robocup3d/.ros/log/ce08ef7c-39ff-11eb-a80e-0492264b1059/supersurfel_fusion_rgbd_benchmark_node-2*.log Initiating shutdown!
[rqt_reconfigure-4] killing on exit [rviz-3] killing on exit [supersurfel_fusion_rgbd_benchmark_node-2] killing on exit [rosout-1] killing on exit [master] killing on exit shutting down processing monitor... ... shutting down processing monitor complete done