我正在尝试使用使用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,但我一直收到相同的错误。
任何帮助或提示都是非常感谢的。
谢谢!
发布于 2017-07-01 20:03:35
我没有足够的名气来评论,所以我把我的直觉作为答案(如果我错了,请原谅):给定的大小12582912必须是元组中三个数字的乘积。快速分解显示了12582912 = 1024*768*16 = 2048*1536*4,因此,如果图像是4通道图像,则分辨率为2048 x 1536,标准宽高比为4:3。
发布于 2017-07-27 09:39:43
事实证明,Cityscapes模型只采用特定的大小:宽度应该是长度的两倍。
发布于 2017-07-28 07:44:24
如果你很了解Python,你会发现ValueError是一个内部代码错误。它与缺少依赖项或环境无关。
这与图像是一个总大小的事实有关,然后它被强制转换为数组,然后再转换回另一个维度。这不是可以或应该通过调整输入数据来修复的东西,而是通过解决所提供的库本身中的错误来修复的。
对于神经网络分类器来说,这种限制是很常见的。因为一旦训练层,它们就不能改变,输入必须非常具体。当然,它仍然可以在提供给NN之前“煮熟”,但它通常是非破坏性的/基本缩放,所以必须保留比例,这是库错误的地方。
https://stackoverflow.com/questions/44687004
复制相似问题