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 !!!