Abstract
The image of a textured surface provides multiple potential cues that could be used to perceive its 3D structure. When a surface texture has oriented structure, perspective convergence of the oriented components provides a texture cue, in addition to texture scaling and compression. Some findings suggest that oriented spectral components aligned with the direction of slant are important for 3D perception from texture, but this has only been demonstrated in restricted situations. In this study, we tested the contribution of oriented spectral components for planar surface patches with varied slant (0°–80°) and field of view (16° and 6°). Observers viewed simulated textured surfaces and estimated slant to the perceived surfaces. The simulated textures were octotropic plaids with a full range of orientations, or with either the aligned or perpendicular plaid components removed. We measured perceptual bias in monocular conditions and also the relative weighting of texture and stereo information in binocular conditions. We found that the presence of aligned spectral components did produce some improvement in slant estimates, but the effects were small and only observed in some conditions. There were no detectable differences in texture cue weights. Our results demonstrate that aligned spectral components contribute to perception of slant from texture, but suggest that the contribution is limited when other texture cues are available and informative. Our findings are consistent with the notion that the visual system utilizes multiple sources of texture information for 3D perception.
We first compare perceptual biases across different texture types.
Figure 6 shows the mean slant estimates as a function of simulated slant, averaged across subjects, in the monocular viewing conditions (left) and the binocular viewing conditions (right). The top graphs show results for textures that were missing the vertical spatial frequency components (Octo-Align, red), and the bottom graphs show results for texture that were missing the horizontal components (Octo-Perp, blue). The results for the full octotropic plaid are also plotted on both figures (black). Judged slant varied systematically as a function of simulated slant in all conditions. In the binocular viewing conditions, the slant estimates appeared to be a linear function of simulated slants. With monocular viewing, the function was nonlinear with estimates highly compressed at low slants, as has been observed previously (Todd et al.,
2010; Saunders & Chen,
2015).
We performed a 7 × 3 ANOVA on slant estimates from monocular viewing across texture type and slant conditions. There was a significant main effect of texture type on overall bias, F(2, 18) = 4.12, p = 0.034, partial η2 = 0.314. Slant estimates were higher in the Octo-Align condition than in the Octo-Perp condition, F(1, 9) = 6.46, p = 0.032, partial η2 = 0.418, though this difference was small (1.29° ± 0.51° SE). There was no significant difference between the bias in these conditions and the Octotropic conditions with full spectral content: Octo vs. Octo-Align, F(1, 9) = 1.09, p = 0.324, partial η2 = 0.108; Octo vs. Octo-Perp, F(1, 9) = 3.47, p = 0.095, partial η2 = 0.278.
Slant estimates in the monocular conditions were significantly modulated by simulated slant, F(6, 54) = 110.66, p < 0.001, partial η2 = 0.919. We further tested polynomial contrasts to evaluate the nonlinearity of the psychometric functions. We found that there was a significant quadratic trend, F(1, 9) = 34.44, p < 0.001, partial η2 = 0.793, and cubic trend, F(1, 9) = 11.55, p = 0.008, partial η2 = 0.562, in addition to a significant linear trend, F(1, 9) = 141.94, p < 0.001, partial η2 = 0.940. There was no significant interaction between slant and texture types, F(12, 108) = 1.19, p = 0.297, partial η2 = 0.117, indicating that the shape of psychometric functions were comparable across texture types.
For the slant estimates with binocular viewing, there was a significant main effect of texture type, F(2, 18) = 4.91, p = 0.020, partial η2 = 0.353. Pairwise tests found that slant estimate was higher in the Octo-Align condition than in the Octo condition, F(1, 9) = 19.89, p = 0.002, partial η2 = 0.689, but the difference was limited (1.39° ± 0.31° SE). For the other comparisons, no significant difference was found: Octo versus Octo-Perp, F(1, 9) = 0.23, p = 0.646, partial η2 = 0.024; Octo-Align versus Octo-Perp, F(1, 9) = 3.96, p = 0.078, partial η2 = 0.308. There was also a main effect of simulated slant, F(2, 18) = 84.46, p < 0.001, partial η2 = 0.904, confirming that slant estimates were modulated by simulated slant. The psychometric functions were approximately linear in the binocular conditions, so we used the slopes of the functions for further comparisons across the texture type conditions. We computed slopes for each subject and texture type by performing robust linear regression fits. There was no significant differences in the slopes across the three texture conditions, F(2, 18) = 0.308, p = 0.739, partial η2 = 0.033, and no significant interaction between slant and texture was observed, F(12, 108) = 0.90, p = 0.549, partial η2 = 0.091.
Our results indicate that removal of specific spectral components had little or no effect on perception of slant from texture for our task and conditions. If spectral components in the tilt direction were crucial for perception of slant, then one would expect slant estimates from Octo-Align textures to be more biased than estimates with other textures. This was not observed in either monocular or binocular viewing conditions. The only detectable differences across texture types were small and opposite to this prediction. The similarity of the psychometric functions suggest that the three textures are equally effective at conveying 3D slant from texture for these viewing conditions.
# s[k]: slant condition of kth trial, 1-3 neg 4-6 pos
# c[k]: texture and FOV condition of kth trial
# sbj[k]: subject number of kth trial
# model selection variable
flip[k] ∼ dbern(pflip[s[k],c[k],sbj[k] ])
# mean for trial is either from correct condition (s[k]) or sign reversed (s[7-k])
predicted[k] <- (1-flip[k]) * mcond[s[k],c[k],sbj[k]] + flip[k] * mcond[7-s[k],c[k],sbj[k] ]
# responses are a t-distribution around predicted
resp[k] ∼ dt(predicted[k],taucond[s[k],c[k],sbj[k] ],nu[sbj[k]])
# set hyperpriors for the hierarchical variables
# prior for mean response relative to zero point
# distribution across subjects modeled as gamma distribution
m_ga[kmag,kcond] ∼ dgamma(1.01,0.01)
m_gb[kmag,kcond] ∼ dgamma(1.01,0.01)
# prior for variability parameter, by slant mag and condition
tau_ga[kmag,kcond] ∼ dgamma(1.01,0.01)
tau_gb[kmag,kcond] ∼ dgamma(1.01,0.01)
# set priors for variables by condition, subject, and slant
# mean magnitude of slant, relative to zero point
m[kmag,kcond,ksubj] ∼ dgamma(m_ga[kmag,kcond],m_gb[kmag,kcond])
# mzero ± m to get pos and neg centers for responses
mcond[4–kmag,kcond,ksubj] <- mzero[kcond,ksubj] – m[kmag,kcond,ksubj]
mcond[3+kmag,kcond,ksubj] <- mzero[kcond,ksubj] + m[kmag,kcond,ksubj]
# prior for probability of guessing sign, same for pos / neg
# not hierarchical, so freely varies across subjects and conditions
pguess[kmag,kcond,ksubj] ∼ dunif(0,1)
# probability of flipping, combining guess rate and bias
# for negative slant, multiply by bias, for positive, by (1-bias)
pflip[4–kmag,kcond,ksubj] <- pguess[kmag,kcond,ksubj] * guessbias[ksubj]
pflip[3+kmag,kcond,ksubj] <- pguess[kmag,kcond,ksubj] * (1-guessbias[ksubj])
# priors for variance, same for pos / neg
tau[kmag,kcond,ksubj] ∼ dgamma(tau_ga[kmag,kcond],tau_gb[kmag,kcond])
taucond[4–kmag,kcond,ksubj] <- tau[kmag,kcond,ksubj]
taucond[3+kmag,kcond,ksubj] <- tau[kmag,kcond,ksubj]
# hyperprior for the variability of constant bias
# weakly informative to prevent unrealistic zero
mzero_tau ∼ dgamma(6,20) # mode 0.25 (sigma 2), mean 0.3 (sigma 1.82)
# hyperpriors for deg of freedom parameter
# priors for the constant bias and DF parameters
# deg of freedom param for the t distribution
nu[ksubj] ∼ dgamma(nu_a,nu_b)
# guessbias when sign is ambiguous, not hierarchical
guessbias[ksubj] ∼ dunif(0,1)
# constant bias, varies by subject and testing block (FOV)
mzeroblock[1,ksubj] ∼ dnorm(0,mzero_tau)
mzeroblock[2,ksubj] ∼ dnorm(0,mzero_tau)
# conditions 1-3 were block 1, conditions 4-6 were block 2
mzero[1,ksubj] <- mzeroblock [1,ksubj]
mzero[2,ksubj] <- mzeroblock [1,ksubj]
mzero[3,ksubj] <- mzeroblock [1,ksubj]
mzero[4,ksubj] <- mzeroblock [2,ksubj]
mzero[5,ksubj] <- mzeroblock [2,ksubj]
mzero[6,ksubj] <- mzeroblock [2,ksubj]