2017-05-22 18 views
0

Spatial Transformer을 TensorFlow와 함께 현지화 네트없이 사용하고 싶지만 대신 주어진 변환 행렬을 사용하십시오. 나는 입력을 바꾸면 안되는 단위 행렬로 변압기를 시험해 보았다. 불행하게도 이것은 사실이 아닙니다. 출력에서 ​​여러 번 변환을 반복하면 이미지가 왼쪽 상단으로 작아지고 작아집니다. 일부 이산화 오류가있을 것이라고 생각했지만 왜 신원 변환에 문제가 있습니까? 확인TensorFlow 주어진 쎄타를 사용하여 공간 변환기 사용

in = tf.placeholder(tf.float32, [None, H, W, C], name="input_image") 
theta = tf.placeholder(tf.float32, [None, 6], name="input_theta") 
transformed = transformer(in, theta, [H, W]) 
+0

나는 실제적인 입력이 변형되지 않았기 때문에 음의 회전 각도와 변환 델타를 가져 오는 '변환 된'변환이 아니라 ' G는 입력에서 샘플링 된 픽셀을 결정합니다. – Christian

답변

1

가 나는 답변을 발견 한 : 문제는 높이와 폭 정규화 좌표를 사용하고,되도록 -1 <= x,y <= 1을 구체적 스케일링 다시 매트릭스 0 <= x < width 좌표로 이루어진다 0 <= y < height

x = (x + 1.0)*(width_f)/2.0 
y = (y + 1.0)*(height_f)/2.0 

_meshgrid 방법에 tf.linspace 기능 변경이 0에서 width-1 또는 heigth-1 및 레모로 이동하기 위해 다음 _interpolate 방법은 다음과 위에서 언급 한 백 스케일링을 사용하면 내 문제가 해결됩니다.