alantrrs / OpenTLD

:eyes: C++ implementation of TLD
GNU General Public License v3.0
225 stars 99 forks source link

Seg Fault almost every time #9

Open rdoherty47 opened 13 years ago

rdoherty47 commented 13 years ago

Alan,

I've downloaded and had your code working before, but I just redownloaded and built it, everything went smooth, but when I run it now based on the command given in the README, it seg faults when I select the bounding box. In fact, the very first time I ran it, it froze every time i moved the window or tried specifying the bounding box. Now it just seg faults everytime

alantrrs commented 13 years ago

Hi could you try debbuging so that I can see when the seg fault occur?

Thanks

Sent from my iPhone

On Nov 11, 2011, at 11:43 AM, rdoherty47 <reply@reply.github.com

wrote:

Alan,

I've downloaded and had your code working before, but I just redownloaded and built it, everything went smooth, but when I run it now based on the command given in the README, it seg faults when I select the bounding box. In fact, the very first time I ran it, it froze every time i moved the window or tried specifying the bounding box. Now it just seg faults everytime


Reply to this email directly or view it on GitHub: https://github.com/alantrrs/OpenTLD/issues/9

rdoherty47 commented 13 years ago

Never mind, I used the gdb and was able to get some output, here it is:

Starting program: /home/ryan/OpenTLD/bin/run_tld exec-file /home/ryan/OpenTLD/bin/run_tld [Thread debugging using libthread_db enabled] VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument Initial Bounding Box = x:220 y:113 h:92 w:90 Created 75688 bounding boxes Found 0 good boxes, 0 bad boxes Best Box: 217 109 92 90 Bounding box hull: 2147483647 2147483647 -2147483647 -2147483647

Program received signal SIGSEGV, Segmentation fault. 0x00007ffff51a0899 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6

alantrrs commented 13 years ago

Hi, I can see that the algorithm cant find any good or bad bounding boxes (Found 0 good boxes, 0 bad boxes). What parameters are you passing to the program, how are you running it? I'v seen this error before when the video file is not read correctly.

On Fri, Nov 11, 2011 at 12:23 PM, rdoherty47 < reply@reply.github.com>wrote:

Never mind, I used the gdb and was able to get some output, here it is:

Starting program: /home/ryan/OpenTLD/bin/run_tld exec-file /home/ryan/OpenTLD/bin/run_tld [Thread debugging using libthread_db enabled] VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument Initial Bounding Box = x:220 y:113Found 0 good boxes, 0 bad boxes

h:92 w:90

Created 75688 bounding boxes Best Box: 217 109 92 90 Bounding box hull: 2147483647 2147483647 -2147483647 -2147483647

Program received signal SIGSEGV, Segmentation fault. 0x00007ffff51a0899 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6


Reply to this email directly or view it on GitHub: https://github.com/alantrrs/OpenTLD/issues/9#issuecomment-2711408

Alan I. Torres Nogales

rdoherty47 commented 13 years ago

I just run the first command given in the README to use my laptop webcam... I've had this working before. I thought the seg fault was my fault from playing around with the code a little bit, so i just downloaded a new copy today, but it is still seg faulting. the command i run is ./run_tld -p ../parameters.yml -tl

alantrrs commented 13 years ago

What happens when you run it using a video? by doing.. ./run_tld -p ../parameters.yml -s ../_input/motocross.mpg -tl

On Fri, Nov 11, 2011 at 8:10 PM, rdoherty47 < reply@reply.github.com

wrote:

I just run the first command given in the README to use my laptop webcam... I've had this working before. I thought the seg fault was my fault from playing around with the code a little bit, so i just downloaded a new copy today, but it is still seg faulting. the command i run is ./run_tld -p ../parameters.yml -tl


Reply to this email directly or view it on GitHub: https://github.com/alantrrs/OpenTLD/issues/9#issuecomment-2715543

Alan I. Torres Nogales

rdoherty47 commented 13 years ago

This is the output:

VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument capture device failed to open!

I tried the command above, but when I looked in the _input directory I noticed there wasn't a file called motocross.mpg... but there was one call motorbike.mp4. Regardless I tried both command, and they resulted in the same error.

alantrrs commented 13 years ago

Hi I just re-downloaded and tried the code but it worked fine with both camera and video inputs. Have you made any change to the parameters.yml file? or the ffmpeg software?

What OS are you on?

On Sat, Nov 12, 2011 at 12:12 PM, rdoherty47 < reply@reply.github.com

wrote:

This is the output:

VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument capture device failed to open!

I tried the command above, but when I looked in the _input directory I noticed there wasn't a file called motocross.mpg... but there was one call motorbike.mp4. Regardless I tried both command, and they resulted in the same error.


Reply to this email directly or view it on GitHub: https://github.com/alantrrs/OpenTLD/issues/9#issuecomment-2718622

Alan I. Torres Nogales

alantrrs commented 13 years ago

Could you also try running valgrind on it?

valgrind ./run_tld -p ../parameters.yml -s ../_input/motorbike.mp4 -tl

On Sat, Nov 12, 2011 at 12:43 PM, Alan Torres alan.trrs.ngls@gmail.comwrote:

Hi I just re-downloaded and tried the code but it worked fine with both camera and video inputs. Have you made any change to the parameters.yml file? or the ffmpeg software?

What OS are you on?

On Sat, Nov 12, 2011 at 12:12 PM, rdoherty47 < reply@reply.github.com

wrote:

This is the output:

VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument capture device failed to open!

I tried the command above, but when I looked in the _input directory I noticed there wasn't a file called motocross.mpg... but there was one call motorbike.mp4. Regardless I tried both command, and they resulted in the same error.


Reply to this email directly or view it on GitHub: https://github.com/alantrrs/OpenTLD/issues/9#issuecomment-2718622

Alan I. Torres Nogales

Alan I. Torres Nogales

rdoherty47 commented 13 years ago

I haven't changed the parameters.yml at all. When I was compiling the software, I get the printf errors, and add #include in the necessary files. Does yours compile before fixing those? Also, here is the output from running valgrind on the .mp4 file.... I haven't gotten the seg fault there though, because the video never even opens. Here is the output from valgrind:

==3630== Memcheck, a memory error detector ==3630== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==3630== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info ==3630== Command: ./run_tld -p ../parameters.yml -s ../_input/motorbike.mp4 -tl ==3630== ==3630== Syscall param ioctl(generic) points to uninitialised byte(s) ==3630== at 0x77FD649: syscall (syscall.S:39) ==3630== by 0x126BBAA5: v4l2_fd_open (in /usr/lib/libv4l2.so.0) ==3630== by 0x126BBF28: v4l2_open (in /usr/lib/libv4l2.so.0) ==3630== by 0x5FBF09D: _capture_V4L2(CvCaptureCAMV4L, char_) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FC03BA: CvCaptureCAM_V4L_CPP::open(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FC087A: cvCreateCameraCapture_V4L(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FADC16: cvCreateCameraCapture (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FADF1F: cv::VideoCapture::open(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x42470D: main (in /home/ryan/OpenTLD/bin/run_tld) ==3630== Address 0x7fefff114 is on thread 1's stack ==3630== ==3630== Syscall param ioctl(generic) points to uninitialised byte(s) ==3630== at 0x77FD649: syscall (syscall.S:39) ==3630== by 0x13161BB4: ??? (in /usr/lib/libv4lconvert.so.0) ==3630== by 0x1315383A: v4lconvert_create (in /usr/lib/libv4lconvert.so.0) ==3630== by 0x126BBB3B: v4l2_fd_open (in /usr/lib/libv4l2.so.0) ==3630== by 0x126BBF28: v4l2_open (in /usr/lib/libv4l2.so.0) ==3630== by 0x5FBF09D: _capture_V4L2(CvCaptureCAMV4L, char_) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FC03BA: CvCaptureCAM_V4L_CPP::open(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FC087A: cvCreateCameraCapture_V4L(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FADC16: cvCreateCameraCapture (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FADF1F: cv::VideoCapture::open(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x42470D: main (in /home/ryan/OpenTLD/bin/run_tld) ==3630== Address 0x7feffeed4 is on thread 1's stack ==3630== ==3630== Syscall param ioctl(generic) points to uninitialised byte(s) ==3630== at 0x77FD649: syscall (syscall.S:39) ==3630== by 0x1316205E: ??? (in /usr/lib/libv4lconvert.so.0) ==3630== by 0x1315383A: v4lconvert_create (in /usr/lib/libv4lconvert.so.0) ==3630== by 0x126BBB3B: v4l2_fd_open (in /usr/lib/libv4l2.so.0) ==3630== by 0x126BBF28: v4l2_open (in /usr/lib/libv4l2.so.0) ==3630== by 0x5FBF09D: _capture_V4L2(CvCaptureCAMV4L, char_) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FC03BA: CvCaptureCAM_V4L_CPP::open(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FC087A: cvCreateCameraCapture_V4L(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FADC16: cvCreateCameraCapture (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FADF1F: cv::VideoCapture::open(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x42470D: main (in /home/ryan/OpenTLD/bin/run_tld) ==3630== Address 0x7feffef24 is on thread 1's stack ==3630== ==3630== Syscall param ioctl(generic) points to uninitialised byte(s) ==3630== at 0x77FD649: syscall (syscall.S:39) ==3630== by 0x13161995: ??? (in /usr/lib/libv4lconvert.so.0) ==3630== by 0x13155F8B: v4lconvert_vidioc_g_ctrl (in /usr/lib/libv4lconvert.so.0) ==3630== by 0x126BC719: v4l2_ioctl (in /usr/lib/libv4l2.so.0) ==3630== by 0x5FBEB9F: v4l2_scan_controls(CvCaptureCAMV4L) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FBF17A: _capture_V4L2(CvCaptureCAMV4L, char*) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FC03BA: CvCaptureCAM_V4L_CPP::open(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FC087A: cvCreateCameraCapture_V4L(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FADC16: cvCreateCameraCapture (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x5FADF1F: cv::VideoCapture::open(int) (in /usr/local/lib/libopencv_highgui.so.2.3.1) ==3630== by 0x42470D: main (in /home/ryan/OpenTLD/bin/run_tld) ==3630== Address 0x7fefff2a4 is on thread 1's stack ==3630== VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument capture device failed to open! ==3630== ==3630== HEAP SUMMARY: ==3630== in use at exit: 16,842,822 bytes in 1,007 blocks ==3630== total heap usage: 1,424 allocs, 417 frees, 17,333,729 bytes allocated ==3630== ==3630== LEAK SUMMARY: ==3630== definitely lost: 16,777,228 bytes in 2 blocks ==3630== indirectly lost: 0 bytes in 0 blocks ==3630== possibly lost: 0 bytes in 0 blocks ==3630== still reachable: 65,594 bytes in 1,005 blocks ==3630== suppressed: 0 bytes in 0 blocks ==3630== Rerun with --leak-check=full to see details of leaked memory ==3630== ==3630== For counts of detected and suppressed errors, rerun with: -v ==3630== Use --track-origins=yes to see where uninitialised values come from ==3630== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 4 from 4)

rdoherty47 commented 13 years ago

Well, I just deleted my copy again, redownloaded and built it. The tracking using my webcam works now, but the second command to use the input video still doesn't work. same error.

alantrrs commented 13 years ago

Great to know that its working with the camera. I included the missing headers so everything should compile fine now. I don't know why it doesn't open the input video though. Try moving the video to the same folder as the executable and just run

./run_tld -p ../parameters.yml -s motorbike.mp4 -tl

Or try it with a different video, I don't have any issues running it with the video.

On Sat, Nov 12, 2011 at 1:32 PM, rdoherty47 < reply@reply.github.com

wrote:

Well, I just deleted my copy again, redownloaded and built it. The tracking using my webcam works now, but the second command to use the input video still doesn't work. same error.


Reply to this email directly or view it on GitHub: https://github.com/alantrrs/OpenTLD/issues/9#issuecomment-2718965

Alan I. Torres Nogales