我正在尝试使用cityScapes模型使用这种图像识别算法 https://github.com/fyu/dilation
但是,我继续收到以下错误:
- bash-4.2$ python predict.py cityscapes sunny_1336601.png --gpu 0
Using GPU 0
WARNING: Logging before InitGoogleLogging() is written to STDERR
Traceback (most recent call last):
File "predict.py", line 133, in <module>
main()
File "predict.py", line 129, in main
predict(args.dataset, args.input_path, args.output_path)
File "predict.py", line 98, in predict
color_image = dataset.palette[prediction.ravel()].reshape(image_size)
ValueError: cannot reshape array of size 12582912 into shape (1090,1920,3)
我尝试将图像重塑为我能想到的每个常见分辨率,包括640x480,但我也遇到了同样的错误。
非常感谢任何帮助或提示。
谢谢!
答案 0 :(得分:0)
我没有足够的声誉来评论,所以我发布我的预感作为答案(如果我错了,请原谅我):给定的大小12582912
必须是三个数字的乘积元组。快速分解显示12582912 = 1024*768*16 = 2048*1536*4
因此,如果图像是4通道图像,则分辨率为2048 x 1536
,其标准宽高比为4:3。
答案 1 :(得分:0)
事实证明,Cityscapes模型只采用特定尺寸:宽度应为长度的两倍。
答案 2 :(得分:0)
如果你熟悉Python,你会发现ValueError是内部代码错误。它与缺少的依赖项或环境无关。
这与图像首先是一个总大小的事实有关,然后它被渲染到数组然后再回到另一个维度。 这不是可以修复的东西,或者应该通过使用输入数据进行调整来修复,而是解决所提供的库本身中的错误。
对NN分类器有这种限制是很常见的。因为一旦层被训练,它们就不能被改变并且输入必须非常具体。当然,它仍然可以煮熟&#34;在将它提供给NN之前,它通常是非破坏性/基本缩放,因此必须保留比例,这就是图书馆做错了。