
A short-range orientation interactions channel. More...
#include <Channels/SoxChannel.H>


Classes | |
| struct | CacheElem |
Public Member Functions | |
| SoxChannel (OptionManager &mgr) | |
| Construct. | |
| virtual | ~SoxChannel () |
| Virtual destructor. | |
| uint | numScales () const |
| Get the number of scales used. | |
| Image< float > | getLinearResponse (int ori, int scl) |
| Get the linear response of the units for a given orientation+scale. | |
| Image< float > | getNonlinearResponse (int ori, int scl) |
| Get the non-linear response of the units for a given orientation+scale. | |
| nub::ref< GaborChannel > | gabor (const uint idx) const |
| Wraps ComplexChannel's subChan() and casts the result to GaborChannel. | |
Protected Member Functions | |
| void | buildSubChans () |
| (re-)build our subchannels | |
| virtual void | doInput (const InputFrame &inframe) |
| SoxChannel requires only luminance input. | |
| virtual Image< float > | combineOutputs () |
| Combine all of the nonlinear responses. | |
| virtual void | killCaches () |
| Clear our cached inhibitory pool maps. | |
| virtual void | paramChanged (ModelParamBase *const param, const bool valueChanged, ParamClient::ChangeStatus *status) |
| Overload so that we can reconfigure when our params get changed. | |
Protected Attributes | |
| OModelParam< uint > | itsNumOrients |
| number of Gabor subchannels | |
| OModelParam< double > | thetaPoolWidth |
| OModelParam< double > | omegaPoolWidth |
| OModelParam< double > | inhibExponent |
| OModelParam< double > | excitExponent |
| OModelParam< double > | semiSaturation |
| OModelParam< double > | cutoff |
A short-range orientation interactions channel.
This class implements a pool of orientation-tuned units whose responses are shaped by divisive inhibition in proportion to population activity.
Definition at line 48 of file SoxChannel.H.
| SoxChannel::SoxChannel | ( | OptionManager & | mgr | ) |
Construct.
Definition at line 111 of file SoxChannel.C.
References buildSubChans(), and OptionManager::requestOptionAlias().
| SoxChannel::~SoxChannel | ( | ) | [virtual] |
Virtual destructor.
Definition at line 175 of file SoxChannel.C.
| void SoxChannel::buildSubChans | ( | ) | [protected] |
(re-)build our subchannels
Definition at line 129 of file SoxChannel.C.
References ComplexChannel::addSubChan(), ModelComponent::getManager(), OModelParam< T >::getVal(), itsNumOrients, makeSharedComp(), MC_RECURSE, and ComplexChannel::removeAllSubChans().
Referenced by paramChanged(), and SoxChannel().
| Image< float > SoxChannel::combineOutputs | ( | ) | [protected, virtual] |
Combine all of the nonlinear responses.
Reimplemented from ComplexChannel.
Definition at line 283 of file SoxChannel.C.
References ComplexChannel::getMapDims(), getNonlinearResponse(), OModelParam< T >::getVal(), ComplexChannel::itsNormType, maxNormalize(), MAXNORMMAX, MAXNORMMIN, ComplexChannel::numChans(), numScales(), rescale(), VCXNORM_MAXNORM, and ZEROS.
| void SoxChannel::doInput | ( | const InputFrame & | inframe | ) | [protected, virtual] |
SoxChannel requires only luminance input.
Implements ChannelBase.
Definition at line 183 of file SoxChannel.C.
References ASSERT, gabor(), Image< T >::initialized(), and ComplexChannel::numChans().
| nub::ref< GaborChannel > SoxChannel::gabor | ( | const uint | idx | ) | const |
Wraps ComplexChannel's subChan() and casts the result to GaborChannel.
Definition at line 171 of file SoxChannel.C.
References ComplexChannel::subChan().
Referenced by doInput(), getLinearResponse(), getNonlinearResponse(), and numScales().
| Image< float > SoxChannel::getLinearResponse | ( | int | ori, | |
| int | scl | |||
| ) |
Get the linear response of the units for a given orientation+scale.
Definition at line 196 of file SoxChannel.C.
References ASSERT, gabor(), and Image< T >::initialized().
Referenced by getNonlinearResponse().
| Image< float > SoxChannel::getNonlinearResponse | ( | int | ori, | |
| int | scl | |||
| ) |
Get the non-linear response of the units for a given orientation+scale.
This is (rougly speaking) given by a power of the linear response, divided by an inhibitory term that pools over all orientations and scales.
Definition at line 204 of file SoxChannel.C.
References ASSERT, exp(), gabor(), Image< T >::getDims(), ChannelBase::getInputDims(), getLinearResponse(), OModelParam< T >::getVal(), Image< T >::getWidth(), Image< T >::initialized(), inplaceAddWeighted(), log(), NO_INIT, ComplexChannel::numChans(), numScales(), squareOf(), toPower(), and Dims::w().
Referenced by combineOutputs().
| void SoxChannel::killCaches | ( | ) | [protected, virtual] |
Clear our cached inhibitory pool maps.
Reimplemented from ComplexChannel.
Definition at line 306 of file SoxChannel.C.
| uint SoxChannel::numScales | ( | ) | const |
Get the number of scales used.
Definition at line 179 of file SoxChannel.C.
References gabor().
Referenced by combineOutputs(), and getNonlinearResponse().
| void SoxChannel::paramChanged | ( | ModelParamBase *const | param, | |
| const bool | valueChanged, | |||
| ParamClient::ChangeStatus * | status | |||
| ) | [protected, virtual] |
Overload so that we can reconfigure when our params get changed.
Reimplemented from ModelComponent.
Definition at line 157 of file SoxChannel.C.
References buildSubChans(), OModelParam< T >::getVal(), itsNumOrients, and ComplexChannel::numChans().
OModelParam<uint> SoxChannel::itsNumOrients [protected] |
number of Gabor subchannels
Definition at line 73 of file SoxChannel.H.
Referenced by buildSubChans(), and paramChanged().
1.6.3