2024-06-07 01:14:59 发布
网友
我想在WiderFace数据集上添加一个数据增强,我想知道,怎么可能随机裁剪一个图像,而只使用tensorflow将中心放在裁剪内的面框中?在
我已经尝试实现一个解决方案,但是我使用了TFRecords和TfExampleDecoder,并且在这个过程中输入图像的形状被设置为[None, None, 3],所以没有办法获得图像的形状并自己去做。在
[None, None, 3]
您可以获得形状,但只能在运行时调用sess.运行并实际传递数据-这是形状被实际定义的时候。在
所以在tesorflow中手动进行随机裁剪,基本上,您需要重新实现tf.random_crop,这样就可以处理对边界框的操作。在
tf.random_crop
首先,要获得形状,x = your_tensor.shape[0]将给您第一个维度。在您实际调用sess.run之前,它将显示为None,然后它将解析为适当的值。现在您可以使用tf.random_uniform或任何您喜欢的方法来计算一些随机作物参数。最后,使用tf.slice执行裁剪。在
x = your_tensor.shape[0]
sess.run
tf.random_uniform
tf.slice
如果要选择是否执行裁剪,可以使用tf.cond。在
tf.cond
在这些组件之间,您应该能够只使用tensorflow构造来实现您想要的。试试看,如果你一路上卡住了,把你遇到的代码和错误贴出来。在
您可以获得形状,但只能在运行时调用sess.运行并实际传递数据-这是形状被实际定义的时候。在
所以在tesorflow中手动进行随机裁剪,基本上,您需要重新实现
tf.random_crop
,这样就可以处理对边界框的操作。在首先,要获得形状,
x = your_tensor.shape[0]
将给您第一个维度。在您实际调用sess.run
之前,它将显示为None,然后它将解析为适当的值。现在您可以使用tf.random_uniform
或任何您喜欢的方法来计算一些随机作物参数。最后,使用tf.slice
执行裁剪。在如果要选择是否执行裁剪,可以使用
tf.cond
。在在这些组件之间,您应该能够只使用tensorflow构造来实现您想要的。试试看,如果你一路上卡住了,把你遇到的代码和错误贴出来。在
相关问题 更多 >
编程相关推荐