我正在试验ml5.jsstyleTransfer
中的方法。它工作得很好,但我遇到了一个问题,它似乎只使用方形图像作为输入源——任何其他纵横比都会导致输出乱码,其中 x/y 坐标出现插值。
这似乎是一个错误,但我想知道我是否做错了什么?
我正在使用ml5-examples存储库中的起始代码,特别是这里:
https ://github.com/ml5js/ml5-examples
您可以在此处查看该代码的功能演示:
https ://ml5js.org/docs/style-transfer-image-example
我从原始源代码中唯一改变的是我的输入图像是非方形纵横比。这是我正在使用的图像,尽管我已将其缩小到大约 300x225 像素。
为了重现我试图描述的问题:
- 转到演示页面。单击“转移”按钮一次,看看它是如何工作的。
- 使用浏览器检查器(我使用的是 Chrome)并将输入图像 (
#inputImg
) 的高度和宽度设置为 300 x 200 像素。 - 点击“转移”,注意明显的乱码结果。
相比之下,为 Deeplearn.js 设置了一个几乎相同的演示:
如果您采取类似的步骤并将输入图像的纵横比倾斜为除正方形以外的其他值,则结果将按预期工作——输出图像是输入图像的样式转换版本,与输入图像具有相同的纵横比。
DeepLearn.js 现在已被弃用,但据我了解,它实际上是 ml5.js 的基本代码,所以我很好奇这个错误在原始实现中不存在。
有什么我忽略的吗?或者这是 ml5.js 的错误?
很抱歉没有链接到 CodePen 演示或其他东西 - 需要加载模型有点棘手。我可以尝试将我的代码托管在某个地方,以查看它是否有助于澄清问题。