<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://www.joshpeeples.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.joshpeeples.com/" rel="alternate" type="text/html" /><updated>2026-05-07T02:10:24+00:00</updated><id>https://www.joshpeeples.com/feed.xml</id><title type="html">Joshua Peeples</title><subtitle>Assistant Professor at Texas A&amp;M University in the Department of Electrical and Computer Engineering.</subtitle><author><name>Joshua (Josh) Peeples, Ph.D.</name></author><entry><title type="html">Histogram Layers for Texture Analysis</title><link href="https://www.joshpeeples.com/Histogram_Layer/" rel="alternate" type="text/html" title="Histogram Layers for Texture Analysis" /><published>2023-10-17T00:00:00+00:00</published><updated>2023-10-17T00:00:00+00:00</updated><id>https://www.joshpeeples.com/Histogram_Layer</id><content type="html" xml:base="https://www.joshpeeples.com/Histogram_Layer/"><![CDATA[<h2 id="problem-statement-shortcomings-of-convolutional-neural-networks">Problem Statement: Shortcomings of Convolutional Neural Networks</h2>
<p>Convolutional neural networks (CNNs) have shown tremendous ability for a variety of applications.  One reason for the success of CNNs are that they excel at representing and detecting <strong>structural textures</strong>. However, they are <strong>not</strong> as effective at <strong>statistical textures</strong>. To illustrate this point, below is an example of different structural and statistical textures:
<a href="https://arxiv.org/pdf/2209.03878.pdf"><img src="/images/Textures_v2.jpg" alt="Texture" /></a>
<br />We can visually see the distinct differences between the different texture combinations. The structural textures are a checkboard, cross, and stripe. The statistical textures are shown through foreground pixels values sampled from multinomial, binomial, and constant distributions. A CNN could easily distinguish the structural textures, but would struggle with the statistical textures.</p>

<h3 id="why-would-a-cnn-struggle-with-statistical-textures">Why would a CNN struggle with statistical textures?</h3>
<p>Structural texture approaches consist of defining a set of texture examples and an order of spatial positions for each exemplar <a href="https://www.researchgate.net/profile/Andrzej-Materka/publication/249723259_Texture_Analysis_Methods_-_A_Review/links/02e7e51ef8d539a9da000000/Texture-Analysis-Methods-A-Review.pdf">(Materka et al., 1998)</a>. On the other hand, statistical texture methods represent the data through parameters that characterize the distributions and correlation between the intensity and/or feature values in an image as opposed to understanding the structure of each texture <a href="https://ieeexplore.ieee.org/abstract/document/8600329">(Humeau-Heurtier, 2019)</a>. To understand differences between these two texture types, we created an example using the three distributions discussed above to generate statistical textures: multinomial, binomial, and constant classes. The first statistical class was sampled from a multinomial distribution with the following three intensity value choices which were of equal probability (p = 1/3): 64, 128, and 192. For the second statistical class, a binomial distribution (p = .5) was used where either an intensity value of 64 or 192 was selected for each foreground pixel. The last statistical class only contained foreground pixels with an intensity values of 128. Below we show the distribution of foreground pixel intensities after several trials (n=1800) and observe the means are the same. 
<img src="/images/Distributions.JPG" alt="Distribution Images" /></p>

<p><br />A convolution is a weighted sum operator that uses spatial information to learn local relationships between pixels. Given enough samples from each distribution, the mean values are approximately the same and outputs from a convolution will be similar. We show example images convolved with a random convolution and observe the outputs are close in value. After many images are generated, the distribution of convolution outputs are similar as shown:
<img src="/images/Sampling_v2.gif" alt="Example convolution outputs" />
<br />The average operation is a special case of convolution where all the weights are equal to 1/number of data points. As a result, the CNN will struggle to capture a linear combination of pixels that learns the statistical information of the data (<em>i.e.</em>, cannot easily learn weights to discriminate statistical exemplars). Here is an example where if a 3x3 convolution is used, the model can easily learn weights to tell the cross and checkboard apart. However, if we sample from a different distribution and retain the same shape, a convolution operation cannot learn weights to distinguish this change as the convolution is unable to account for individual pixel intensity changes.
<img src="/images/CNN_Failure_v2.jpg" alt="CNN_Failure" /></p>

<p><br />In summary, CNNs are great at structural texture changes. However, for statistical textures, CNNs fail to characterize the spatial distribution of features and require more layers to capture the distributions of values in a region.</p>

<h2 id="method-histogram-layer">Method: Histogram Layer</h2>
<h3 id="standard-histogram-operation">Standard Histogram Operation</h3>
<p>The proposed solution is a <strong>local</strong> histogram layer. Instead of computing global histograms as done previously, the proposed histogram layer directly computes the local, spatial distribution of features for texture analysis, and parameters for the layer are estimated during backpropagation. Histograms perform a counting operation for values that fall within a certain range. Below is an example where we are counting the number of 1s, 2s, and 3s in local windows of the image:
<br /><img src="/images/Stand_Hist.gif" alt="Local_Hist" /></p>

<h3 id="radial-basis-function-alternative">Radial Basis Function Alternative</h3>
<p><br /> The standard histogram operation is not differentiable and is brittle (<em>i.e.</em>, sensitive to parameter selection). However, a smooth approximation (<em>i.e.</em>, radial basis function or RBF) can be used and the parameters (<em>i.e.</em>, bin centers and widths) are updated via backpropagation. RBFs have a maximum value of 1 when the feature value is equal to the bin center and the minimum value approaches 0 as the feature value moves further from the bin center. Also, RBFs are more robust to small changes in bin centers and widths than the standard histogram operation because there is some allowance of error due to the soft binning assignments and the smoothness of the RBF. The means of the RBFs (μ<sub>bk</sub>) serve as the location of each bin (<em>i.e.</em>, bin centers), while the bandwidth (γ<sub>bk</sub>) controls the spread of each bin (<em>i.e.</em>, bin widths), where <em>b</em> is the number of histogram bins and <em>k</em> is the feature channel in the input feature tensor. The normalized frequency count, <em>Y</em><sub>rcbk</sub>, is computed with a sliding window of size <em>S</em>x<em>T</em>, and the binning operation for a histogram value in the <em>k</em><sup>th</sup> channel of the input <strong>X</strong> is defined as:
<br /><img src="/images/RBF_annotated.png" alt="RBF_equation" /></p>

<p>We show an example of the local operation of the RBF with a 3x3 window (<em>S</em>,<em>T</em> = 3), 1 input channel (<em>K</em> = 1), and three bins (<em>b</em> = 3) below:
<br /><img src="/images/RBF_Hist.gif" alt="Local_RBF" /></p>

<h2 id="implementation-of-histogram-layer">Implementation of Histogram Layer</h2>
<p><br /> Another advantage of the proposed method is that the histogram layer is easily implemented using pre-exisiting layers! Any deep learning framework (<em>e.g.</em>, Pytorch, TensorFlow) can be used to integerate the histogram layer into deep learning models. We show the configuration of the histogram layer using pre-existing layers and psuedocode below:
<img src="/images/Implementation_v2.png" alt="Implementation" />
<img src="/images/algorithm.jpg" alt="Algorithm" /></p>

<h2 id="applications-of-histogram-layer">Applications of Histogram Layer</h2>
<p>There are several real-world applications for the histogram layer! Statistical texture approaches are vital because there are important properties these methods inherit. For the histogram layer, the proposed method is globally permutation and rotationally <strong>invariant</strong>. If applied to smaller spatial regions, the operation is permutation and rotationally <strong>equivariant</strong>. As a result, the local operation is not sensitive to the order of the data and is robust to image transformations such as rotation. Additionally, the histogram layer is also translationally-equivarient (just like CNNs). Examples of usefulness of these properties include automatic target recognition <a href="https://ieeexplore.ieee.org/document/4610973">(Frigui and Gader, 2009)</a>, remote sensing image classification <a href="https://www.mdpi.com/1424-8220/17/7/1474/htm">(Zhang, et. al., 2017)</a>, medical image diagnosis <a href="https://ieeexplore.ieee.org/abstract/document/9324838">(Bourouis, et al., 2021)</a>, and crop quality management <a href="https://www.nature.com/articles/s41598-019-50480-x">(Yuan, et. al., 2019)</a>.</p>

<p><br />
<a href="https://arxiv.org/pdf/2001.00215.pdf"><img src="/images/HistTextures_2.PNG" alt="Plants" /></a>
<br /> This is an example image of grass from <a href="https://openaccess.thecvf.com/content_cvpr_2018/html/Xue_Deep_Texture_Manifold_CVPR_2018_paper.html">GTOS-mobile</a>. The image contains other textures and not only grass. Local histograms can distinguish portions of the image containing pure grass (top two histograms) or a mixture of other textures (bottom histogram) despite structual similarities. The histograms shown here are the distribution of intensity values from the red, green, and blue channels. Each histogram contains the aggregated intensity values (over the three color channels) in the corresponding image portion.</p>

<h2 id="histogram-layers-for-synthetic-aperture-sonar-imagery">Histogram Layers for Synthetic Aperture Sonar Imagery</h2>
<p>Synthetic aperture sonar (SAS) imagery is crucial for several applications, including target recognition and environmental segmentation. Deep learning models have led to much success in SAS analysis; however, the features extracted by these approaches may not be suitable for capturing certain textural information. To address this problem, we presented a novel application of histogram layers on SAS imagery <a href="https://ieeexplore.ieee.org/document/10069737">(Peeples, et. al., 2022)</a>. The addition of histogram layer(s) within the deep learning models improved performance by incorporating statistical texture information on both synthetic and real-world datasets. We show an example below using the Pseudo Image SAS (PISAS) dataset.</p>

<p><br />
<a href="https://arxiv.org/abs/2209.03878"><img src="/images/SAS_Results.PNG" alt="SAS_Imagery" /></a>
<br /> t-SNE projections for the convolutional and histogram layer models on the PISAS dataset. The overall test classification accuracy is shown in parenthesis. Example images from each class are shown. The structural classes are sand ripple (“T1”) and rocky (“T10”). The frames around each image represent the statistical class of the PISAS dataset. Red, green, and blue frames represent the multinomial, constant, and binomial distributions respectively. The CNN model appears to map structural textures near one another in the projected space (<em>i.e.</em>, sand ripple images are grouped to the left region of the projection and the rocky textures are grouped in the right of the projection). On the other hand, the histogram layer model maps statistical textures close to one another. The binomial statistical textures (blue frames) are grouped in the left of the projection. The multinomial (red frames) and constant (green frames) statistical textures are clustered in the center and right of the projection respectively.</p>

<h2 id="check-out-the-code-and-paper">Check Out the Code and Paper!</h2>
<p>This <a href="https://ieeexplore.ieee.org/document/9652037">work</a> was accepted to the <strong>IEEE Transactions on Artificial Intelligence</strong>! Our <a href="https://github.com/GatorSense/Histogram_Layer">code</a> and <a href="https://arxiv.org/abs/2001.00215">paper</a> are available!</p>

<h2 id="citation">Citation</h2>

<h3 id="plain-text">Plain Text:</h3>

<p>J. Peeples, W. Xu and A. Zare, “Histogram Layers for Texture Analysis,” in IEEE Transactions on Artificial Intelligence, vol. 3, no. 4, pp. 541-552, Aug. 2022, doi: 10.1109/TAI.2021.3135804.</p>

<h3 id="bibtex">BibTex:</h3>

<p>@Article{Peeples2022Histogram,<br />
Title = {Histogram Layers for Texture Analysis},<br />
Author = {Peeples, Joshua and Xu, Weihuang  and Zare, Alina},<br />
Journal = {IEEE Transactions on Artificial Intelligence},<br />
Volume = {3},<br />
Year = {2022},<br />
number={4}<br />
pages={541-552}<br />
doi={10.1109/TAI.2021.3135804}}</p>

<h2 id="links">Links</h2>
<!-- [![alt text](image link)](web link) -->
<p><a href="https://arxiv.org/abs/2001.00215"><img src="/images/arxiv_25.jpg" alt="ArXiv Paper" /></a><a href="https://github.com/GatorSense/Histogram_Layer"><img src="/images/code_25.png" alt="Github Repositor" /></a><a href="https://ieeexplore.ieee.org/document/9652037"><img src="/images/ieee_50.jpg" alt="IEEE Paper" /></a><a href="https://faculty.eng.ufl.edu/machine-learning"><img src="/images/logo_50.png" alt="Lab" /></a></p>

<!-- [![ArXiv Paper](/images/arxiv.jpg"ArXiv Paper")](https://arxiv.org/abs/2001.00215)
[![Github Repository](/images/code.png"Code")](https://github.com/GatorSense/Histogram_Layer)
[![IEEE Paper](/images/ieee.jpg"IEEE Transactions on AI Paper")](https://ieeexplore.ieee.org/document/9652037)
[![Lab](/images/logo.png"GatorSense Lab Website")](https://faculty.eng.ufl.edu/machine-learning) -->]]></content><author><name>Joshua (Josh) Peeples, Ph.D.</name></author><category term="deep learning" /><category term="histograms" /><category term="image classification" /><category term="texture analysis" /><summary type="html"><![CDATA[Problem Statement: Shortcomings of Convolutional Neural Networks Convolutional neural networks (CNNs) have shown tremendous ability for a variety of applications. One reason for the success of CNNs are that they excel at representing and detecting structural textures. However, they are not as effective at statistical textures. To illustrate this point, below is an example of different structural and statistical textures: We can visually see the distinct differences between the different texture combinations. The structural textures are a checkboard, cross, and stripe. The statistical textures are shown through foreground pixels values sampled from multinomial, binomial, and constant distributions. A CNN could easily distinguish the structural textures, but would struggle with the statistical textures.]]></summary></entry><entry><title type="html">Mentor for UF Summer Student Science Training Program (SSTP)</title><link href="https://www.joshpeeples.com/SSTP/" rel="alternate" type="text/html" title="Mentor for UF Summer Student Science Training Program (SSTP)" /><published>2019-07-29T00:00:00+00:00</published><updated>2019-07-29T00:00:00+00:00</updated><id>https://www.joshpeeples.com/SSTP</id><content type="html" xml:base="https://www.joshpeeples.com/SSTP/"><![CDATA[<p>This Summer, I had the opportunity to mentor a high school student, Tyler Kim. 
Tyler’s projected focus on running experiments and analyzing the results of
a new layer for texture analysis. He was awarded the SSTP best paper award at 
the closing ceremony! Read more <a href="https://faculty.eng.ufl.edu/machine-learning/2019/07/gatorsense-hosts-uf-student-science-training-program-students/">here.</a></p>]]></content><author><name>Joshua (Josh) Peeples, Ph.D.</name></author><summary type="html"><![CDATA[This Summer, I had the opportunity to mentor a high school student, Tyler Kim. Tyler’s projected focus on running experiments and analyzing the results of a new layer for texture analysis. He was awarded the SSTP best paper award at the closing ceremony! Read more here.]]></summary></entry><entry><title type="html">Presentation at Society of Photographic Instrumentation Engineers (SPIE) Defense + Commercial Sensing 2019</title><link href="https://www.joshpeeples.com/SPIE2019/" rel="alternate" type="text/html" title="Presentation at Society of Photographic Instrumentation Engineers (SPIE) Defense + Commercial Sensing 2019" /><published>2019-04-17T00:00:00+00:00</published><updated>2019-04-17T00:00:00+00:00</updated><id>https://www.joshpeeples.com/SPIE2019</id><content type="html" xml:base="https://www.joshpeeples.com/SPIE2019/"><![CDATA[<p>I presented my work, “Comparison of Possibilistic Fuzzy Local Information C-Means and Possibilistic K-Nearest Neighbors for Synthetic Aperture Sonar Image Segmentation,” at SPIE DCS in Baltimore, MD. Read more <a href="https://faculty.eng.ufl.edu/machine-learning/2019/04/our-labmates-james-bocinsky-connor-mccurley-and-joshua-peeples-recently-presented-at-spie-in-baltimore/">here.</a></p>]]></content><author><name>Joshua (Josh) Peeples, Ph.D.</name></author><summary type="html"><![CDATA[I presented my work, “Comparison of Possibilistic Fuzzy Local Information C-Means and Possibilistic K-Nearest Neighbors for Synthetic Aperture Sonar Image Segmentation,” at SPIE DCS in Baltimore, MD. Read more here.]]></summary></entry><entry><title type="html">Awarded Southern Regional Education Board (SREB) Travel Award</title><link href="https://www.joshpeeples.com/SREB2018/" rel="alternate" type="text/html" title="Awarded Southern Regional Education Board (SREB) Travel Award" /><published>2018-09-21T00:00:00+00:00</published><updated>2018-09-21T00:00:00+00:00</updated><id>https://www.joshpeeples.com/SREB2018</id><content type="html" xml:base="https://www.joshpeeples.com/SREB2018/"><![CDATA[<p>I earned a 3-year travel award from UF for the SREB <a href="https://instituteonteachingandmentoring.org/">Institute on Teaching and Mentoring.</a> Read more <a href="https://faculty.eng.ufl.edu/machine-learning/2018/09/congratulations-to-our-labmate-joshua-peeples-for-winning-3-year-travel-award-to-attend-the-boards-institute-on-teaching-and-mentoring-conference/">here.</a></p>]]></content><author><name>Joshua (Josh) Peeples, Ph.D.</name></author><summary type="html"><![CDATA[I earned a 3-year travel award from UF for the SREB Institute on Teaching and Mentoring. Read more here.]]></summary></entry><entry><title type="html">Awarded National Science Foundation (NSF) Graduate Research Fellowship</title><link href="https://www.joshpeeples.com/NSFGRFP/" rel="alternate" type="text/html" title="Awarded National Science Foundation (NSF) Graduate Research Fellowship" /><published>2018-04-05T00:00:00+00:00</published><updated>2018-04-05T00:00:00+00:00</updated><id>https://www.joshpeeples.com/NSFGRFP</id><content type="html" xml:base="https://www.joshpeeples.com/NSFGRFP/"><![CDATA[<p>I was awarded a NSF Graduate Research Fellowship! Learn more <a href="https://faculty.eng.ufl.edu/machine-learning/2018/04/congtsjosh/">here.</a></p>]]></content><author><name>Joshua (Josh) Peeples, Ph.D.</name></author><summary type="html"><![CDATA[I was awarded a NSF Graduate Research Fellowship! Learn more here.]]></summary></entry><entry><title type="html">Presented our work at Unmanned Maritime Systems Technology (UMST)</title><link href="https://www.joshpeeples.com/UMST2018/" rel="alternate" type="text/html" title="Presented our work at Unmanned Maritime Systems Technology (UMST)" /><published>2018-02-04T00:00:00+00:00</published><updated>2018-02-04T00:00:00+00:00</updated><id>https://www.joshpeeples.com/UMST2018</id><content type="html" xml:base="https://www.joshpeeples.com/UMST2018/"><![CDATA[<p>We presented our work on an environmentally-aware automatic target recoginition system at UMST. Learn more <a href="https://faculty.eng.ufl.edu/machine-learning/2018/02/princess-lyons-joshua-peeples-daniel-suen-attended-umst-2017/">here.</a></p>]]></content><author><name>Joshua (Josh) Peeples, Ph.D.</name></author><summary type="html"><![CDATA[We presented our work on an environmentally-aware automatic target recoginition system at UMST. Learn more here.]]></summary></entry><entry><title type="html">Awarded McKnight Doctoral Fellowship</title><link href="https://www.joshpeeples.com/MDF/" rel="alternate" type="text/html" title="Awarded McKnight Doctoral Fellowship" /><published>2017-07-17T00:00:00+00:00</published><updated>2017-07-17T00:00:00+00:00</updated><id>https://www.joshpeeples.com/MDF</id><content type="html" xml:base="https://www.joshpeeples.com/MDF/"><![CDATA[<p>I was awarded an <a href="https://www.fefonline.org/mdf.html">McKnight Doctral Fellowship</a>! Learn more about the award and my research interest<a href="https://faculty.eng.ufl.edu/machine-learning/2017/07/congratulations-to-joshua-peeples-for-earning-a-mcknight-doctoral-fellowship/">here.</a></p>]]></content><author><name>Joshua (Josh) Peeples, Ph.D.</name></author><summary type="html"><![CDATA[I was awarded an McKnight Doctral Fellowship! Learn more about the award and my research interesthere.]]></summary></entry></feed>