0

Running the code in google colab to detect object in a video but following error occurred:

RuntimeError                              Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/imageio/plugins/ffmpeg.py in _read_frame_data(self)
    620                     raise RuntimeError(
--> 621                         "Frame is %i bytes, but expected %i." % (len(s), framesize)
    622                     )

RuntimeError: Frame is 0 bytes, but expected 691200.

During handling of the above exception, another exception occurred:

CannotReadFrameError                      Traceback (most recent call last)
4 frames
/usr/local/lib/python3.7/dist-packages/imageio/plugins/ffmpeg.py in _read_frame_data(self)
    626                 err2 = self._stderr_catcher.get_text(0.4)
    627                 fmt = "Could not read frame %i:\n%s\n=== stderr ===\n%s"
--> 628                 raise CannotReadFrameError(fmt % (self._pos, err1, err2))
    629             return s, is_new
    630 

CannotReadFrameError: Could not read frame 3603:
Frame is 0 bytes, but expected 691200.
=== stderr ===
ffmpeg version 3.4.8-0ubuntu0.2 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configuration: --prefix=/usr --extra-version=0ubuntu0.2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --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-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --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-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libavresample   3.  7.  0 /  3.  7.  0
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/content/drive/MyDrive/Project1/PROJECT1/CodeforWindows1/New Maserati Quattroporte Official Promo Comercial.-w4KifcavGQs.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2014-02-02T14:45:29.000000Z
  Duration: 00:02:00.35, start: 0.000000, bitrate: 484 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360, 386 kb/s, 29.97 fps, 29.97 tbr, 60k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 96 kb/s (default)
    Metadata:
      creation_time   : 2014-02-02T14:45:29.000000Z
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
Press [q] to stop, [?] for help
Output #0, image2pipe, to 'pipe:':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    encoder         : Lavf57.83.100
    Stream #0:0(und): Video: rawvideo (RGB[24] / 0x18424752), rgb24, 640x360, q=2-31, 165722 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
    Metadata:
... showing only last few lines ...
frame= 3549 fps=1.4 q=-0.0 size= 2395575kB time=00:01:58.41 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3550 fps=1.4 q=-0.0 size= 2396250kB time=00:01:58.45 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3551 fps=1.4 q=-0.0 size= 2396925kB time=00:01:58.48 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3552 fps=1.4 q=-0.0 size= 2397600kB time=00:01:58.51 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3553 fps=1.4 q=-0.0 size= 2398275kB time=00:01:58.55 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3554 fps=1.4 q=-0.0 size= 2398950kB time=00:01:58.58 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3555 fps=1.4 q=-0.0 size= 2399625kB time=00:01:58.61 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3556 fps=1.4 q=-0.0 size= 2400300kB time=00:01:58.65 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3557 fps=1.4 q=-0.0 size= 2400975kB time=00:01:58.68 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3558 fps=1.4 q=-0.0 size= 2401650kB time=00:01:58.71 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3559 fps=1.4 q=-0.0 size= 2402325kB time=00:01:58.75 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3560 fps=1.4 q=-0.0 size= 2403000kB time=00:01:58.78 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3561 fps=1.4 q=-0.0 size= 2403675kB time=00:01:58.81 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3562 fps=1.4 q=-0.0 size= 2404350kB time=00:01:58.85 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3563 fps=1.4 q=-0.0 size= 2405025kB time=00:01:58.88 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3564 fps=1.4 q=-0.0 size= 2405700kB time=00:01:58.91 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3565 fps=1.4 q=-0.0 size= 2406375kB time=00:01:58.95 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3566 fps=1.4 q=-0.0 size= 2407050kB time=00:01:58.98 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3567 fps=1.4 q=-0.0 size= 2407725kB time=00:01:59.01 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3568 fps=1.4 q=-0.0 size= 2408400kB time=00:01:59.05 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3569 fps=1.4 q=-0.0 size= 2409075kB time=00:01:59.08 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3570 fps=1.4 q=-0.0 size= 2409750kB time=00:01:59.11 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3571 fps=1.4 q=-0.0 size= 2410425kB time=00:01:59.15 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3572 fps=1.4 q=-0.0 size= 2411100kB time=00:01:59.18 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3573 fps=1.4 q=-0.0 size= 2411775kB time=00:01:59.21 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3574 fps=1.4 q=-0.0 size= 2412450kB time=00:01:59.25 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3575 fps=1.4 q=-0.0 size= 2413125kB time=00:01:59.28 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3576 fps=1.4 q=-0.0 size= 2413800kB time=00:01:59.31 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3577 fps=1.4 q=-0.0 size= 2414475kB time=00:01:59.35 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3578 fps=1.4 q=-0.0 size= 2415150kB time=00:01:59.38 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3579 fps=1.4 q=-0.0 size= 2415825kB time=00:01:59.41 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3580 fps=1.4 q=-0.0 size= 2416500kB time=00:01:59.45 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3581 fps=1.4 q=-0.0 size= 2417175kB time=00:01:59.48 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3582 fps=1.4 q=-0.0 size= 2417850kB time=00:01:59.51 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3583 fps=1.4 q=-0.0 size= 2418525kB time=00:01:59.55 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3584 fps=1.4 q=-0.0 size= 2419200kB time=00:01:59.58 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3585 fps=1.4 q=-0.0 size= 2419875kB time=00:01:59.61 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3586 fps=1.4 q=-0.0 size= 2420550kB time=00:01:59.65 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3587 fps=1.4 q=-0.0 size= 2421225kB time=00:01:59.68 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3588 fps=1.4 q=-0.0 size= 2421900kB time=00:01:59.71 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3589 fps=1.4 q=-0.0 size= 2422575kB time=00:01:59.75 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3590 fps=1.4 q=-0.0 size= 2423250kB time=00:01:59.78 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3591 fps=1.4 q=-0.0 size= 2423925kB time=00:01:59.81 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3592 fps=1.4 q=-0.0 size= 2424600kB time=00:01:59.85 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3593 fps=1.4 q=-0.0 size= 2425275kB time=00:01:59.88 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3594 fps=1.4 q=-0.0 size= 2425950kB time=00:01:59.91 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3595 fps=1.4 q=-0.0 size= 2426625kB time=00:01:59.95 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3596 fps=1.4 q=-0.0 size= 2427300kB time=00:01:59.98 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3597 fps=1.4 q=-0.0 size= 2427975kB time=00:02:00.01 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3598 fps=1.4 q=-0.0 size= 2428650kB time=00:02:00.05 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3599 fps=1.4 q=-0.0 size= 2429325kB time=00:02:00.08 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3600 fps=1.4 q=-0.0 size= 2430000kB time=00:02:00.12 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3601 fps=1.4 q=-0.0 size= 2430675kB time=00:02:00.15 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3602 fps=1.4 q=-0.0 size= 2431350kB time=00:02:00.18 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3603 fps=1.4 q=-0.0 size= 2432025kB time=00:02:00.22 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3604 fps=1.4 q=-0.0 size= 2432700kB time=00:02:00.25 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3604 fps=1.4 q=-0.0 size= 2432700kB time=00:02:00.25 bitrate=165722.3kbits/s speed=0.0464x    
frame= 3604 fps=1.4 q=-0.0 Lsize= 2432700kB time=00:02:00.25 bitrate=165722.3kbits/s speed=0.0464x    
video:2432700kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%

And the code is

import torch

import cv2
from data import BaseTransform, VOC_CLASSES as labelmap
from ssd import build_ssd
import imageio

def detect(frame, net, transform):
    height, width = frame.shape[:2]
    frame_t = transform(frame)[0]
    x = torch.from_numpy(frame_t).permute(2, 0, 1)
    # PyTorch 1.5.1
    # x = Variable(x.unsqueeze(0))
    # y = net(x)
    x = x.unsqueeze(0)
    with torch.no_grad():
        y = net(x)
    detections = y.data
    scale = torch.Tensor([width, height, width, height])
    # detections = [batch, number of classes, number of occurence, (score, x0, Y0, x1, y1)]
    for i in range(detections.size(1)):
        j = 0
        while detections[0, i, j, 0] >= 0.3:
            pt = (detections[0, i, j, 1:] * scale).numpy()
            cv2.rectangle(frame, (int(pt[0]), int(pt[1])), (int(pt[2]), int(pt[3])), (255, 0, 0), 2)
            cv2.putText(frame, labelmap[i - 1], (int(pt[0]), int(pt[1])), cv2.FONT_HERSHEY_SIMPLEX, 2, (255, 255, 255), 2, cv2.LINE_AA)
            j += 1
    return frame

# Creating the SSD neural network
net = build_ssd('test')
net.load_state_dict(torch.load('ssd300_mAP_77.43_v2.pth', map_location = lambda storage, loc: storage))

# Creating the transformation
transform = BaseTransform(net.size, (104/256.0, 117/256.0, 123/256.0))

# Doing some Object Detection on a video
reader = imageio.get_reader('New Maserati Quattroporte Official Promo Comercial.-w4KifcavGQs.mp4')

while True:
    try:
        im = reader.get_next_data()
    except imageio.core.CannotReadFrameError:
        break
    else:
          fps = reader.get_meta_data()['fps']
          writer = imageio.get_writer('output2.mp4', fps = fps)
          for i, frame in enumerate(reader):
              frame = detect(frame, net.eval(), transform)
              writer.append_data(frame)
              print(i)
writer.close()

Needed extra help then Github link although SSD training not included

Please help I am new to this and this program is giving me sleepiness nights, many changes made even then the same error every time. Also, it would be a great help if you tell me what to change to run this on colab gpu. Thanks !!!

1 Answers1

0

I had a similar issue. Turns out it was due to the video file not being properly uploaded to the colab was the issue here. Try to reupload the file and then try it again.

If this doesn't solve the issue try changing the video fps and bitrate from some online tools.

Dharman
  • 30,962
  • 25
  • 85
  • 135