Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking without active browser session #36

Closed
florianporada opened this issue Mar 2, 2018 · 20 comments
Closed

Tracking without active browser session #36

florianporada opened this issue Mar 2, 2018 · 20 comments
Assignees

Comments

@florianporada
Copy link
Member

After I tested the app on the Jetson board, I noticed, that the tracking is only happening when there is an active browser session on the client.
After closing the browser window the collected data is lost.

It would be cool, to be able to trigger the process on the jetson via the client and retrieving the active tracking-process after accessing the web-interface again.

I think it would be enough to store the tracking data in a temp json/csv file and just expose it to the webinterface as a download link.
@tdurand maybe you have an idea on how to handle the connection between running process and browser session. ? :)
something like:

if (tracking.isActive) {
    res.send(activeSessionToClient);
}

(notrealcode)
If this would be implemented we also would not have the issue that the app crashes (at least the videostream) when opening multiple web sessions to the jetson board.

@tdurand
Copy link
Member

tdurand commented Mar 2, 2018

I see what you mean. I'll figure out the fastest workaround, the best would be to just hold 1 state and no matter how many browser window you open, you see the current state of the process. But this may not be so straightforward to implement.

The other workaround would be something like you say, keep the current behaviour (it actually doesn't stop counting when you close the window, it stops counting when you refresh the page or make another request from another browser), but store the counting data in a file that we can access later on..

@tdurand
Copy link
Member

tdurand commented Mar 2, 2018

Ok done, now the behaviour is that if you refresh the windows (or close it and open it later), it will display the current state of the process and not restart everything.

So this workflow should works now:

  • Open the app, define counting area start counting
  • Close the browser windows, the jetson keep counting
  • Open again the browser window, it will display the counting screen with the current counting info. You can stop it then and download the data.

Please test it and tell me if this works.

I've added a note about updating the code of the app in the README: https://github.com/moovel/lab-open-data-cam#bonus-update-the-open-data-cam-app-when-you-have-already-set-up-everything

Also great work on the more detailed install guide, but just one modification to it, you do not need to install next globally, it will install it localy on npm install. I just had forgotten to add in the README the build step... I've seen you figured it out, just for you to know that npm run build will call the next build but you do not need to have it installed globaly. (it can triggers bug to have it installed globaly if it's not the same version)

@tdurand tdurand assigned florianporada and unassigned tdurand Mar 2, 2018
@markus-kre
Copy link
Collaborator

@tdurand

@florianporada and I just tried the data cam after your update. We noticed the following at the counter:

  • icons do not load
  • nothing gets detected
  • screen stays like in the image (0 fps, 0 objects detected, 0 min)

bildschirmfoto 2018-03-07 um 11 49 37

Any idea why this happens?

@tdurand
Copy link
Member

tdurand commented Mar 7, 2018

Could you try to run the node app manually in the terminal to see what happen in the logs ? It seems that the app is crashing when starting yolo.

Do something like (directly on the jetson ubuntu interface)

# Stop the app running in pm2 
pm2 stop open-traffic
# Start the app manually in a terminal 
npm run build
npm run start
# Open a browser windows and load the app at http://localhost:8080

Interact with the app and see if the logs at telling you something meaninfull

@florianporada
Copy link
Member Author

Here is the log:

nvidia@tegra-ubuntu:~/lab-open-data-cam$ sudo npm run start

> open-traffic-cam@0.1.0 start /home/nvidia/lab-open-data-cam
> PORT=8080 NODE_ENV=production node server.js

Please specify the path to the raw detections file
Process YOLO initialized
Process WebcamStream initialized
> Ready on http://localhost:8080
> Ready on http://192.168.2.1:8080
WebcamStream: Sub-Process Stream webcam started
WebcamStream: Sub-Process FFServer started
ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/aarch64-linux-gnu --incdir=/usr/include/aarch64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
ffserver version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/aarch64-linux-gnu --incdir=/usr/include/aarch64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
ffserver.conf:42: Setting default value for video bit rate = 64000. Use NoDefaults to disable it.
ffserver.conf:42: Setting default value for video bit rate tolerance = 32000. Use NoDefaults to disable it.
ffserver.conf:42: Setting default value for video rate control equation = tex^qComp. Use NoDefaults to disable it.
ffserver.conf:42: Setting default value for video max rate = 128000. Use NoDefaults to disable it.
ffserver.conf:42: Setting default value for video buffer size = 128000. Use NoDefaults to disable it.
bind(port 8090): Address already in use
Wed Mar  7 12:07:56 2018 Could not start server
[video4linux2,v4l2 @ 0x4c55c0] The V4L2 driver changed the video from 1280x720 to 1024x768
[mjpeg @ 0x4c6110] Changeing bps to 8
Input #0, video4linux2,v4l2, from '/dev/video1':
  Duration: N/A, start: 5489.128486, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 1024x768 [SAR 1:1 DAR 4:3], -5 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
[swscaler @ 0x4db870] deprecated pixel format used, make sure you did set range correctly
Output #0, ffm, to 'http://localhost:8090/feed1.ffm':
  Metadata:
    creation_time   : 2018-03-07 12:07:57
    encoder         : Lavf56.40.101
    Stream #0:0: Video: mjpeg, yuvj422p(pc), 1280x720 [SAR 3:4 DAR 4:3], q=2-31, 64 kb/s, 30 fps, 1000k tbn, 2 tbc
    Metadata:
      encoder         : Lavc56.60.100 mjpeg
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[mjpeg @ 0x4cde60] rc buffer underflow
    Last message repeated 1 times
[mjpeg @ 0x4cde60] rc buffer underflow60kB time=00:00:01.00 bitrate= 491.5kbits/s
[mjpeg @ 0x4cde60] rc buffer underflow88kB time=00:00:01.50 bitrate= 480.6kbits/s dup=0 drop=16
[mjpeg @ 0x4cde60] rc buffer underflow20kB time=00:00:02.00 bitrate= 491.5kbits/s dup=0 drop=36
[mjpeg @ 0x4cde60] rc buffer underflow52kB time=00:00:02.50 bitrate= 498.1kbits/s dup=0 drop=45
[mjpeg @ 0x4cde60] rc buffer underflow80kB time=00:00:03.00 bitrate= 491.5kbits/s dup=0 drop=53
[mjpeg @ 0x4cde60] rc buffer underflow12kB time=00:00:03.50 bitrate= 496.2kbits/s dup=0 drop=61
[mjpeg @ 0x4cde60] rc buffer underflow40kB time=00:00:04.00 bitrate= 491.5kbits/s dup=0 drop=69
[mjpeg @ 0x4cde60] rc buffer underflow72kB time=00:00:04.50 bitrate= 495.2kbits/s dup=0 drop=77
[mjpeg @ 0x4cde60] rc buffer underflow04kB time=00:00:05.00 bitrate= 498.1kbits/s dup=0 drop=85
[mjpeg @ 0x4cde60] rc buffer underflow32kB time=00:00:05.50 bitrate= 494.5kbits/s dup=0 drop=93
[mjpeg @ 0x4cde60] rc buffer underflow64kB time=00:00:06.00 bitrate= 497.0kbits/s dup=0 drop=101
[mjpeg @ 0x4cde60] rc buffer underflow92kB time=00:00:06.50 bitrate= 494.0kbits/s dup=0 drop=109
[mjpeg @ 0x4cde60] rc buffer underflow24kB time=00:00:07.00 bitrate= 496.2kbits/s dup=0 drop=117
[mjpeg @ 0x4cde60] rc buffer underflow56kB time=00:00:07.50 bitrate= 498.1kbits/s dup=0 drop=125
[mjpeg @ 0x4cde60] rc buffer underflow84kB time=00:00:08.00 bitrate= 495.6kbits/s dup=0 drop=133
[mjpeg @ 0x4cde60] rc buffer underflow16kB time=00:00:08.50 bitrate= 497.3kbits/s dup=0 drop=141
[mjpeg @ 0x4cde60] rc buffer underflow44kB time=00:00:09.00 bitrate= 495.2kbits/s dup=0 drop=149
[mjpeg @ 0x4cde60] rc buffer underflow76kB time=00:00:09.50 bitrate= 496.7kbits/s dup=0 drop=157
[mjpeg @ 0x4cde60] rc buffer underflow04kB time=00:00:10.00 bitrate= 494.8kbits/s dup=0 drop=165
[mjpeg @ 0x4cde60] rc buffer underflow36kB time=00:00:10.50 bitrate= 496.2kbits/s dup=0 drop=173
[mjpeg @ 0x4cde60] rc buffer underflow68kB time=00:00:11.00 bitrate= 497.5kbits/s dup=0 drop=181
[mjpeg @ 0x4cde60] rc buffer underflow96kB time=00:00:11.50 bitrate= 495.8kbits/s dup=0 drop=189
[mjpeg @ 0x4cde60] rc buffer underflow28kB time=00:00:12.00 bitrate= 497.0kbits/s dup=0 drop=197
[mjpeg @ 0x4cde60] rc buffer underflow60kB time=00:00:12.50 bitrate= 498.1kbits/s dup=0 drop=205
[mjpeg @ 0x4cde60] rc buffer underflow92kB time=00:00:13.00 bitrate= 499.1kbits/s dup=0 drop=213
[mjpeg @ 0x4cde60] rc buffer underflow24kB time=00:00:13.50 bitrate= 500.0kbits/s dup=0 drop=221
[mjpeg @ 0x4cde60] rc buffer underflow56kB time=00:00:14.00 bitrate= 500.9kbits/s dup=0 drop=229
{ yellow: 9 fps=1.9 q=31.4 size=     888kB time=00:00:14.50 bitrate= 501.7kbits/s dup=0 drop=237
   { a: -2.2483146586100378,
     b: 966.5819073830324,
     xBounds: { xMin: 503.0835429430554, xMax: 604.1428470239917 } } }
/home/nvidia/lab-open-data-cam/node_modules/eventemitter2/lib/eventemitter2.js:290
          throw arguments[1]; // Unhandled 'error' event
          ^

Error: Cannot stop process that is not running.
    at /home/nvidia/lab-open-data-cam/node_modules/forever-monitor/lib/forever-monitor/monitor.js:357:26
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickCallback (internal/process/next_tick.js:180:9)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! open-traffic-cam@0.1.0 start: `PORT=8080 NODE_ENV=production node server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the open-traffic-cam@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/nvidia/.npm/_logs/2018-03-07T12_08_13_526Z-debug.log

@florianporada
Copy link
Member Author

I tried killing the FFserver because of the Address already in use and it stopped again with the following error:

nvidia@tegra-ubuntu:~/lab-open-data-cam$ sudo npm run start

> open-traffic-cam@0.1.0 start /home/nvidia/lab-open-data-cam
> PORT=8080 NODE_ENV=production node server.js

Please specify the path to the raw detections file
Process YOLO initialized
Process WebcamStream initialized
> Ready on http://localhost:8080
> Ready on http://192.168.2.1:8080
WebcamStream: Sub-Process Stream webcam started
WebcamStream: Sub-Process FFServer started
ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/aarch64-linux-gnu --incdir=/usr/include/aarch64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
ffserver version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/aarch64-linux-gnu --incdir=/usr/include/aarch64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
ffserver.conf:42: Setting default value for video bit rate = 64000. Use NoDefaults to disable it.
ffserver.conf:42: Setting default value for video bit rate tolerance = 32000. Use NoDefaults to disable it.
ffserver.conf:42: Setting default value for video rate control equation = tex^qComp. Use NoDefaults to disable it.
ffserver.conf:42: Setting default value for video max rate = 128000. Use NoDefaults to disable it.
ffserver.conf:42: Setting default value for video buffer size = 128000. Use NoDefaults to disable it.
Wed Mar  7 12:15:20 2018 FFserver started.
[video4linux2,v4l2 @ 0x4c55c0] The V4L2 driver changed the video from 1280x720 to 1024x768
[mjpeg @ 0x4c6110] Changeing bps to 8
Input #0, video4linux2,v4l2, from '/dev/video1':
  Duration: N/A, start: 5933.048915, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 1024x768 [SAR 1:1 DAR 4:3], -5 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
Wed Mar  7 12:15:21 2018 127.0.0.1 - - [GET] "/feed1.ffm HTTP/1.1" 200 4175
[swscaler @ 0x4db870] deprecated pixel format used, make sure you did set range correctly
Output #0, ffm, to 'http://localhost:8090/feed1.ffm':
  Metadata:
    creation_time   : 2018-03-07 12:15:21
    encoder         : Lavf56.40.101
    Stream #0:0: Video: mjpeg, yuvj422p(pc), 1280x720 [SAR 3:4 DAR 4:3], q=2-31, 64 kb/s, 30 fps, 1000k tbn, 2 tbc
    Metadata:
      encoder         : Lavc56.60.100 mjpeg
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[mjpeg @ 0x4cde60] rc buffer underflow
    Last message repeated 1 times
[mjpeg @ 0x4cde60] rc buffer underflow56kB time=00:00:01.00 bitrate= 458.8kbits/s
[mjpeg @ 0x4cde60] rc buffer underflow88kB time=00:00:01.50 bitrate= 480.6kbits/s dup=0 drop=16
[mjpeg @ 0x4cde60] rc buffer underflow16kB time=00:00:02.00 bitrate= 475.1kbits/s dup=0 drop=36
[mjpeg @ 0x4cde60] rc buffer underflow48kB time=00:00:02.50 bitrate= 485.0kbits/s dup=0 drop=44
[mjpeg @ 0x4cde60] rc buffer underflow76kB time=00:00:03.00 bitrate= 480.6kbits/s dup=0 drop=52
[mjpeg @ 0x4cde60] rc buffer underflow08kB time=00:00:03.50 bitrate= 486.8kbits/s dup=0 drop=60
[mjpeg @ 0x4cde60] rc buffer underflow36kB time=00:00:04.00 bitrate= 483.3kbits/s dup=0 drop=68
[mjpeg @ 0x4cde60] rc buffer underflow68kB time=00:00:04.50 bitrate= 487.9kbits/s dup=0 drop=76
[mjpeg @ 0x4cde60] rc buffer underflow96kB time=00:00:05.00 bitrate= 485.0kbits/s dup=0 drop=84
[mjpeg @ 0x4cde60] rc buffer underflow28kB time=00:00:05.50 bitrate= 488.5kbits/s dup=0 drop=92
[mjpeg @ 0x4cde60] rc buffer underflow56kB time=00:00:06.00 bitrate= 486.1kbits/s dup=0 drop=100
[mjpeg @ 0x4cde60] rc buffer underflow88kB time=00:00:06.50 bitrate= 489.0kbits/s dup=0 drop=108
[mjpeg @ 0x4cde60] rc buffer underflow16kB time=00:00:07.00 bitrate= 486.8kbits/s dup=0 drop=116
[mjpeg @ 0x4cde60] rc buffer underflow48kB time=00:00:07.50 bitrate= 489.3kbits/s dup=0 drop=124
[mjpeg @ 0x4cde60] rc buffer underflow76kB time=00:00:08.00 bitrate= 487.4kbits/s dup=0 drop=132
[mjpeg @ 0x4cde60] rc buffer underflow08kB time=00:00:08.50 bitrate= 489.6kbits/s dup=0 drop=140
[mjpeg @ 0x4cde60] rc buffer underflow36kB time=00:00:09.00 bitrate= 487.9kbits/s dup=0 drop=148
[mjpeg @ 0x4cde60] rc buffer underflow68kB time=00:00:09.50 bitrate= 489.8kbits/s dup=0 drop=156
[mjpeg @ 0x4cde60] rc buffer underflow96kB time=00:00:10.00 bitrate= 488.2kbits/s dup=0 drop=164
[mjpeg @ 0x4cde60] rc buffer underflow24kB time=00:00:10.50 bitrate= 486.8kbits/s dup=0 drop=172
[mjpeg @ 0x4cde60] rc buffer underflow56kB time=00:00:11.00 bitrate= 488.5kbits/s dup=0 drop=180
[mjpeg @ 0x4cde60] rc buffer underflow84kB time=00:00:11.50 bitrate= 487.2kbits/s dup=0 drop=188
[mjpeg @ 0x4cde60] rc buffer underflow16kB time=00:00:12.00 bitrate= 488.8kbits/s dup=0 drop=196
[mjpeg @ 0x4cde60] rc buffer underflow44kB time=00:00:12.50 bitrate= 487.6kbits/s dup=0 drop=204
[mjpeg @ 0x4cde60] rc buffer underflow76kB time=00:00:13.00 bitrate= 489.0kbits/s dup=0 drop=212
[mjpeg @ 0x4cde60] rc buffer underflow04kB time=00:00:13.50 bitrate= 487.9kbits/s dup=0 drop=220
[mjpeg @ 0x4cde60] rc buffer underflow36kB time=00:00:14.00 bitrate= 489.2kbits/s dup=0 drop=228
[mjpeg @ 0x4cde60] rc buffer underflow64kB time=00:00:14.50 bitrate= 488.1kbits/s dup=0 drop=236
[mjpeg @ 0x4cde60] rc buffer underflow96kB time=00:00:15.00 bitrate= 489.3kbits/s dup=0 drop=244
[mjpeg @ 0x4cde60] rc buffer underflow24kB time=00:00:15.50 bitrate= 488.3kbits/s dup=0 drop=252
[mjpeg @ 0x4cde60] rc buffer underflow56kB time=00:00:16.00 bitrate= 489.5kbits/s dup=0 drop=260
{ yellow:
   { a: 79.14776714247859,
     b: -46857.75175644006,
     xBounds: { xMin: 584.9637090232301, xMax: 590.1273231003582 } } }
events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: spawn ./darknet ENOENT
    at _errnoException (util.js:1022:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
    at onErrorNT (internal/child_process.js:372:16)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! open-traffic-cam@0.1.0 start: `PORT=8080 NODE_ENV=production node server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the open-traffic-cam@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/nvidia/.npm/_logs/2018-03-07T12_15_39_308Z-debug.log

@tdurand
Copy link
Member

tdurand commented Mar 7, 2018

There is a problem when starting YOLO... Weird, is the PATH_TO_YOLO well configured in the config.json file ?

Can you try to manually go from the terminal to the darknet folder and try to run this command ?

./darknet detector demo cfg/voc.data cfg/yolo-voc.cfg yolo-voc.weights -c 1 -address "ws://localhost" -port 8080

@florianporada
Copy link
Member Author

./darknet detector demo cfg/voc.data cfg/yolo-voc.cfg yolo-voc.weights -c 1 -address "ws://localhost" -port 8080
videoPath:./output.avi, namedPipe:0, writeVideo:0, showWindow:0
using comm protocol ws
address:ws://localhost, port:8080
setting up ws
ws onerror: (-2): Could connect to any address returned by getaddrinfo
comm setup done
Demo
layer     filters    size              input                output
    0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32
    1 max          2 x 2 / 2   416 x 416 x  32   ->   208 x 208 x  32
    2 conv     64  3 x 3 / 1   208 x 208 x  32   ->   208 x 208 x  64
    3 max          2 x 2 / 2   208 x 208 x  64   ->   104 x 104 x  64
    4 conv    128  3 x 3 / 1   104 x 104 x  64   ->   104 x 104 x 128
    5 conv     64  1 x 1 / 1   104 x 104 x 128   ->   104 x 104 x  64
    6 conv    128  3 x 3 / 1   104 x 104 x  64   ->   104 x 104 x 128
    7 max          2 x 2 / 2   104 x 104 x 128   ->    52 x  52 x 128
    8 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x 
... 
 30 conv    125  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 125
   31 detection
mask_scale: Using default '1.000000'
Loading weights from yolo-voc.weights...Done!
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP

FPS:8272.8
Objects:

640 x 480
ws onerror: (-12): Error during send in libwsclient_send

FPS:6.6
Objects:

640 x 480
ws onerror: (-12): Error during send in libwsclient_send

FPS:6.6
Objects:

640 x 480
ws onerror: (-12): Error during send in libwsclient_send

FPS:6.7
Objects:

640 x 480
ws onerror: (-12): Error during send in libwsclient_send

...i`m getting the feeling that this could be a permission problem?

@tdurand
Copy link
Member

tdurand commented Mar 7, 2018

YOLO work when you start it directly... This is weird.

First we should make sure this is not caused by my last update, try to revert to the commit before the update: (I don't think it is but we never now)

git checkout 61090b85ccd71417b11c8c29c3542a86320c7b93
npm install
npm run build
npm run start

If it also fails, this means it's not the new update that causes the bug, and it's something else. I'm not sure it is a permission problem because you successfully runned the thing before... I'm thinking what else could cause this to fail

@tdurand
Copy link
Member

tdurand commented Mar 7, 2018

Also double check the PATH_TO_YOLO_DARKNET in config.json

@tdurand
Copy link
Member

tdurand commented Mar 7, 2018

I'm kind of thinking it is caused by the PATH_TO_YOLO_DARKNET beeing wrong... Because the error ENOENT means it can't find the command ./darknet.

@florianporada
Copy link
Member Author

It was indeed a problem with the path. I used the relative path (~/to/darknet) and executed the code with sudo pm2 start // sudo npm start. So no issue with your update

@tdurand
Copy link
Member

tdurand commented Mar 7, 2018

Great ! I'm curious, the absolute path doesn't work in your case ?

eg: /home/nvidia/to/darknet-net

@florianporada
Copy link
Member Author

Everything works fine now with the absolute path! 😃

@tdurand
Copy link
Member

tdurand commented Mar 7, 2018

Ok, yep maybe it needs to be documented a bit better in the README (I mention it should be the absolute path): https://github.com/moovel/lab-open-data-cam#5-download-and-install-the-open-data-cam-node-app-on-the-jetson

@florianporada
Copy link
Member Author

FYI: The session based tracking is working but there is an issues:
When defining multiple lines (e.g. yellow and blue) and reloading the page. The second line will not be accessible anymore. You will only see the tracking information for the first (yellow) line.
In the exported file however you can see that the second line will still be tracked. (but it's not accessible in the web-app anymore)

@tdurand
Copy link
Member

tdurand commented Mar 8, 2018

Ahhh, yes, very true... I'll fix that. Have you been able to test it in a street ?

@tdurand tdurand assigned tdurand and unassigned florianporada Mar 8, 2018
@florianporada
Copy link
Member Author

Yesterday I set it up in the office and tested it for a couple of hours with an external battery. So this was kind of the first test with the hardware been completely off the gird. We counted some people passing through the office. (...cars aren't allowed in yet. :) )

@tdurand
Copy link
Member

tdurand commented Mar 8, 2018

Ok, great ! I just pushed the fix you mentioned, you can update the app code and should be able to see all the counting areas when restoring the page.

@tdurand tdurand assigned florianporada and unassigned tdurand Mar 8, 2018
@florianporada
Copy link
Member Author

I just tested it - Looks good! 👍

@tdurand tdurand closed this as completed Mar 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants