问题描述
在 google colab 中运行代码以检测视频中的对象,但发生以下错误:
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,q=2-31,165722 kb/s,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%
代码是
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,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,1:] * scale).numpy()
cv2.rectangle(frame,(int(pt[0]),int(pt[1])),(int(pt[2]),int(pt[3])),(255,0),2)
cv2.putText(frame,labelmap[i - 1],cv2.FONT_HERShey_SIMPLEX,2,255,255),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()
需要额外的帮助然后Github link although SSD training not included
请帮助我是新来的,这个程序让我睡不着觉,即使每次都犯同样的错误,我做了很多改变。此外,如果您告诉我在 colab gpu 上运行该程序需要更改什么,这将是一个很大的帮助。谢谢!!!
解决方法
我遇到了类似的问题。原来这是因为视频文件没有正确上传到 colab 是这里的问题。尝试重新上传文件,然后重试。
如果这不能解决问题,请尝试通过一些在线工具更改视频 fps 和比特率。