对象检测应用程序卡在RingBuffer-分配了4个缓冲区

问题描述

我正在使用NVIDIA Jetson Nano,JetPack 4.4.1,Ubuntu 18.04和Python 3.6.9。

当我尝试运行此python3脚本

import jetson.inference
import jetson.utils
import cv2

net = jetson.inference.detectNet("ssd-mobilenet-v2",threshold=0.5)
#camera = jetson.utils.videoSource("csi://0")      # '/dev/video0' for V4L2
camera = jetson.utils.videoSource("/dev/video0")
display = jetson.utils.videoOutput("display://0") # 'my_video.mp4' for file

while display.IsStreaming():
    img = camera.Capture()
    detections = net.Detect(img)
    display.Render(img)
    display.SetStatus("Object Detection | Network {:.0f} FPS".format(net.GetNetworkFPS()))

脚本在下面看到的位置卡住或停止: (也许一个小时前,一切正常,运行此脚本和其他脚本后,出现了问题。)

nvidia@nvidia-desktop:~/jetson-inference/python/examples$ python3 my-detection.py
jetson.inference -- detectNet loading build-in network 'ssd-mobilenet-v2'

detectNet -- loading detection network model from:
          -- model        networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff
          -- input_blob   'Input'
          -- output_blob  'NMS'
          -- output_count 'NMS_1'
          -- class_labels networks/SSD-Mobilenet-v2/ssd_coco_labels.txt
          -- threshold    0.500000
          -- batch_size   1

[TRT]    TensorRT version 7.1.3
[TRT]    loading NVIDIA plugins...
[TRT]    Registered plugin creator - ::GridAnchor_TRT version 1
[TRT]    Registered plugin creator - ::NMS_TRT version 1
[TRT]    Registered plugin creator - ::Reorg_TRT version 1
[TRT]    Registered plugin creator - ::Region_TRT version 1
[TRT]    Registered plugin creator - ::Clip_TRT version 1
[TRT]    Registered plugin creator - ::LReLU_TRT version 1
[TRT]    Registered plugin creator - ::PriorBox_TRT version 1
[TRT]    Registered plugin creator - ::Normalize_TRT version 1
[TRT]    Registered plugin creator - ::RPROI_TRT version 1
[TRT]    Registered plugin creator - ::BatchedNMS_TRT version 1
[TRT]    Could not register plugin creator -  ::FlattenConcat_TRT version 1
[TRT]    Registered plugin creator - ::CropAndResize version 1
[TRT]    Registered plugin creator - ::DetectionLayer_TRT version 1
[TRT]    Registered plugin creator - ::Proposal version 1
[TRT]    Registered plugin creator - ::ProposalLayer_TRT version 1
[TRT]    Registered plugin creator - ::PyramidROIAlign_TRT version 1
[TRT]    Registered plugin creator - ::ResizeNearest_TRT version 1
[TRT]    Registered plugin creator - ::Split version 1
[TRT]    Registered plugin creator - ::SpecialSlice_TRT version 1
[TRT]    Registered plugin creator - ::InstanceNormalization_TRT version 1
[TRT]    detected model format - UFF  (extension '.uff')
[TRT]    desired precision specified for GPU: FASTEST
[TRT]    requested fasted precision for device GPU without providing valid calibrator,disabling INT8
[TRT]    native precisions detected for GPU:  FP32,FP16
[TRT]    selecting fastest native precision for GPU:  FP16
[TRT]    attempting to open engine cache file /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff.1.1.7103.GPU.FP16.engine
[TRT]    loading network plan from engine cache... /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff.1.1.7103.GPU.FP16.engine
[TRT]    device GPU,loaded /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff
[TRT]    Deserialize required 3168303 microseconds.
[TRT]    
[TRT]    CUDA engine context initialized on device GPU:
[TRT]       -- layers       116
[TRT]       -- maxBatchSize 1
[TRT]       -- workspace    0
[TRT]       -- deviceMemory 35449856
[TRT]       -- bindings     3
[TRT]       binding 0
                -- index   0
                -- name    'Input'
                -- type    FP32
                -- in/out  INPUT
                -- # dims  3
                -- dim #0  3 (SPATIAL)
                -- dim #1  300 (SPATIAL)
                -- dim #2  300 (SPATIAL)
[TRT]       binding 1
                -- index   1
                -- name    'NMS'
                -- type    FP32
                -- in/out  OUTPUT
                -- # dims  3
                -- dim #0  1 (SPATIAL)
                -- dim #1  100 (SPATIAL)
                -- dim #2  7 (SPATIAL)
[TRT]       binding 2
                -- index   2
                -- name    'NMS_1'
                -- type    FP32
                -- in/out  OUTPUT
                -- # dims  3
                -- dim #0  1 (SPATIAL)
                -- dim #1  1 (SPATIAL)
                -- dim #2  1 (SPATIAL)
[TRT]    
[TRT]    binding to input 0 Input  binding index:  0
[TRT]    binding to input 0 Input  dims (b=1 c=3 h=300 w=300) size=1080000
[TRT]    binding to output 0 NMS  binding index:  1
[TRT]    binding to output 0 NMS  dims (b=1 c=1 h=100 w=7) size=2800
[TRT]    binding to output 1 NMS_1  binding index:  2
[TRT]    binding to output 1 NMS_1  dims (b=1 c=1 h=1 w=1) size=4
[TRT]    
[TRT]    device GPU,/usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff initialized.
[TRT]    W = 7  H = 100  C = 1
[TRT]    detectNet -- maximum bounding boxes:  100
[TRT]    detectNet -- loaded 91 class info entries
[TRT]    detectNet -- number of object classes:  91
[gstreamer] initialized gstreamer,version 1.14.5.0
[gstreamer] gstCamera -- attempting to create device v4l2:///dev/video0
[gstreamer] gstCamera -- found v4l2 device: UVC Camera (046d:0825)
[gstreamer] v4l2-proplist,device.path=(string)/dev/video0,udev-probed=(boolean)false,device.api=(string)v4l2,v4l2.device.driver=(string)uvcvideo,v4l2.device.card=(string)"UVC\ Camera\ \(046d:0825\)",v4l2.device.bus_info=(string)usb-70090000.xusb-2.1,v4l2.device.version=(uint)264588,v4l2.device.capabilities=(uint)2216689665,v4l2.device.device_caps=(uint)69206017;
[gstreamer] gstCamera -- found 38 caps for v4l2 device /dev/video0
[gstreamer] [0] video/x-raw,format=(string)YUY2,width=(int)1280,height=(int)960,pixel-aspect-ratio=(fraction)1/1,framerate=(fraction){ 15/2,5/1 };
[gstreamer] [1] video/x-raw,height=(int)720,5/1 };
[gstreamer] [2] video/x-raw,width=(int)1184,height=(int)656,framerate=(fraction){ 10/1,5/1 };
[gstreamer] [3] video/x-raw,width=(int)960,5/1 };
[gstreamer] [4] video/x-raw,width=(int)1024,height=(int)576,5/1 };
[gstreamer] [5] video/x-raw,height=(int)544,framerate=(fraction){ 15/1,10/1,5/1 };
[gstreamer] [6] video/x-raw,width=(int)800,height=(int)600,framerate=(fraction){ 20/1,15/1,5/1 };
[gstreamer] [7] video/x-raw,width=(int)864,height=(int)480,5/1 };
[gstreamer] [8] video/x-raw,height=(int)448,5/1 };
[gstreamer] [9] video/x-raw,width=(int)752,height=(int)416,framerate=(fraction){ 25/1,20/1,5/1 };
[gstreamer] [10] video/x-raw,width=(int)640,framerate=(fraction){ 30/1,25/1,5/1 };
[gstreamer] [11] video/x-raw,height=(int)360,5/1 };
[gstreamer] [12] video/x-raw,width=(int)544,height=(int)288,5/1 };
[gstreamer] [13] video/x-raw,width=(int)432,height=(int)240,5/1 };
[gstreamer] [14] video/x-raw,width=(int)352,5/1 };
[gstreamer] [15] video/x-raw,width=(int)320,5/1 };
[gstreamer] [16] video/x-raw,height=(int)176,5/1 };
[gstreamer] [17] video/x-raw,width=(int)176,height=(int)144,5/1 };
[gstreamer] [18] video/x-raw,width=(int)160,height=(int)120,5/1 };
[gstreamer] [19] image/jpeg,5/1 };
[gstreamer] [20] image/jpeg,5/1 };
[gstreamer] [21] image/jpeg,5/1 };
[gstreamer] [22] image/jpeg,5/1 };
[gstreamer] [23] image/jpeg,5/1 };
[gstreamer] [24] image/jpeg,5/1 };
[gstreamer] [25] image/jpeg,5/1 };
[gstreamer] [26] image/jpeg,5/1 };
[gstreamer] [27] image/jpeg,5/1 };
[gstreamer] [28] image/jpeg,5/1 };
[gstreamer] [29] image/jpeg,5/1 };
[gstreamer] [30] image/jpeg,5/1 };
[gstreamer] [31] image/jpeg,5/1 };
[gstreamer] [32] image/jpeg,5/1 };
[gstreamer] [33] image/jpeg,5/1 };
[gstreamer] [34] image/jpeg,5/1 };
[gstreamer] [35] image/jpeg,5/1 };
[gstreamer] [36] image/jpeg,5/1 };
[gstreamer] [37] image/jpeg,5/1 };
[gstreamer] gstCamera -- selected device profile:  codec=mjpeg format=unknown width=1280 height=720
[gstreamer] gstCamera pipeline string:
[gstreamer] v4l2src device=/dev/video0 ! image/jpeg,height=(int)720 ! jpegdec ! video/x-raw ! appsink name=mysink
[gstreamer] gstCamera successfully created device v4l2:///dev/video0
[video]  created gstCamera from v4l2:///dev/video0
------------------------------------------------
gstCamera video options:
------------------------------------------------
  -- URI: v4l2:///dev/video0
     - protocol:  v4l2
     - location:  /dev/video0
  -- deviceType: v4l2
  -- ioType:     input
  -- codec:      mjpeg
  -- width:      1280
  -- height:     720
  -- frameRate:  30.000000
  -- bitRate:    0
  -- numBuffers: 4
  -- zeroCopy:   true
  -- flipMethod: none
  -- loop:       0
------------------------------------------------
[OpenGL] glDisplay -- X screen 0 resolution:  1280x1024
[OpenGL] glDisplay -- X window resolution:    1280x1024
[OpenGL] failed to create X11 Window.
jetson.utils -- no output streams,creating fake null output
[gstreamer] opening gstCamera for streaming,transitioning pipeline to GST_STATE_PLAYING
[gstreamer] gstreamer changed state from NULL to READY ==> mysink
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter1
[gstreamer] gstreamer changed state from NULL to READY ==> jpegdec0
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter0
[gstreamer] gstreamer changed state from NULL to READY ==> v4l2src0
[gstreamer] gstreamer changed state from NULL to READY ==> pipeline0
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter1
[gstreamer] gstreamer changed state from READY to PAUSED ==> jpegdec0
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter0
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> v4l2src0
[gstreamer] gstreamer changed state from READY to PAUSED ==> pipeline0
[gstreamer] gstreamer message new-clock ==> pipeline0
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> jpegdec0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> v4l2src0
[gstreamer] gstreamer message stream-start ==> pipeline0
[gstreamer] gstCamera -- onPreroll
[gstreamer] gstCamera -- map buffer size was less than max size (1382400 vs 1382407)
[gstreamer] gstCamera recieve caps:  video/x-raw,format=(string)I420,interlace-mode=(string)progressive,multiview-mode=(string)mono,multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,chroma-site=(string)mpeg2,colorimetry=(string)1:4:0:0,framerate=(fraction)30/1
[gstreamer] gstCamera -- recieved first frame,codec=mjpeg format=i420 width=1280 height=720 size=1382407
RingBuffer -- allocated 4 buffers (1382407 bytes each,5529628 bytes total)
[gstreamer] gstreamer changed state from READY to PAUSED ==> mysink
[gstreamer] gstreamer message async-done ==> pipeline0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> mysink
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> pipeline0
RingBuffer -- allocated 4 buffers (2764800 bytes each,11059200 bytes total)

知道我能做什么吗? 如果需要更多信息,请告诉我。

最好的问候 克里斯

解决方法

我遇到了同样的问题。就我而言,这是因为我的内存空间不足。尝试添加交换空间。也切换到像 lxde 这样的轻量级桌面环境,然后再试一次。 它对我有用。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...