0% found this document useful (0 votes)
11 views9 pages

Solarx: Solar Panel Segmentation and Classification

The document discusses the development of a model for segmenting and classifying solar photovoltaic (PV) cells using aerial satellite imagery, addressing the lack of comprehensive mapping of PV distributions. It details the training of a ResNet-34 classifier and a U-Net segmentation model, achieving high accuracy metrics such as an AUC-ROC score of .99 and an IoU of .789. The methodology includes a two-phase training process, leveraging deep learning techniques to optimize detection and segmentation of solar panels across various California cities.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views9 pages

Solarx: Solar Panel Segmentation and Classification

The document discusses the development of a model for segmenting and classifying solar photovoltaic (PV) cells using aerial satellite imagery, addressing the lack of comprehensive mapping of PV distributions. It details the training of a ResNet-34 classifier and a U-Net segmentation model, achieving high accuracy metrics such as an AUC-ROC score of .99 and an IoU of .789. The methodology includes a two-phase training process, leveraging deep learning techniques to optimize detection and segmentation of solar panels across various California cities.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

SolarX: Solar Panel Segmentation and Classification

Spencer Paul Rodrigo Nieto Ethan Hellman


Stanford University Stanford University Stanford University
[email protected] [email protected] [email protected]

Abstract a reliable mapping of distributed PV cells. Because PV’s


are often privately owned and historical data is unreliable,
Increased emissions from fossil fuels has expedited cli- traditional data collection methods have failed to provide an
mate change creating a pressing need to shift to renewable accurate map of the PV landscape.
sources of energy. Solar photovoltaics (PV) is a promising Furthermore, not all installed PV panels are accurately
form of renewable energy, but government and corporate registered and not all records are up to date. This can re-
stakeholders lack a comprehensive mapping of the current sult in issues for the renewable energy market as operators
distribution of PV’s. Knowledge of where PV cells are and need to be able to predict total rooftop solar PV generation
how many there are is critical information for the purpose over numerous areas, among other concerns. However, the
of energy generation capacity estimation. We sought to cre- usage of satellite imagery with deep learning can be used
ate a model that could segment and detect PV cells from as fruitful tool to be able to identify solar PV’s to overcome
aerial satellite imagery. For detection, we trained a ResNet- this problem.
34 to achieve an AUC-ROC score of .99. For segmenta- We have experimented with multiple machine learning
tion we trained a U-Net to achieve an IoU of score of .789. architectures to optimize detection accuracy. Our training
Both models were trained on a data set of 20,900 224x224 approach is split up into two phases. First, we train a classi-
satellite images from the cities of Fresno, Stockton, Oxnard, fier to identify whether or not a solar panel is present in the
and Modesto. Both models outpreformed prior benchmarks given satellite image. Then, we use the classifier output as
set by DeepSolar. Through various hyper-parameter tuning a downsampling base for U-net convolutional upsampling
and experimentation, we seek to optimize a model for the which segments the images to locate the positions of the
task of PV segmentation and classification. solar PV’s.
One can think about this training process as a two step
process. The first process, through the help of ResNet34
1. Introduction model that pre-trains on Imagenet data, is used to train a
Unprecedented levels of carbon dioxide in the Earth’s classifier, which will detect whether there is a solar panel
atmosphere have resulted in detrimental climate and envi- present in the photo. The classifier employs a binary cross
ronmental impacts that threaten planetary extinction. As a entropy loss function to evaluate its performance. Further-
result, governments around the world have been trying to more, for the classifier’s evaluation metrics, we take two
shift from fossil fuels to renewable energy sources. Solar metrics: the AUC - ROC curve and the F1 score. With this
energy has emerged as one of the premier candidates for re- classifier established, we are then able to transition into the
newable energy because of its endless availability and lim- second half of the training.
ited environmental. For the second phase of the training, the segmentation
Solar photovoltaic (PV) is an exponentially growing process is necessary for isolating the polygon shapes where
form of renewable energy and many countries have been the solar panel is in the photo. To do this, we use a U-net
making efforts to install solar cells on rooftops of homes, architecture, which is a common model architecture for se-
business, and other suitable locations due to the promising mantic segmentation. Semantic segmentation is the process
environmental benefits of the energy source compared to of associating each pixel in an image with a class label. In
fossil fuels. Generally, distributed solar PV’s are installed this case, the class of interest would be the area that con-
on rooftops, agricultural lands, and water surfaces. How- tains the solar PV’s and the output of the model would be
ever, the scaling of PV plants is limited by land availability the area in which the solar PV’s are present in the image.
and integrity. To be able to assess energy needs and deter- The segmentor is evaluated based off the intersection over
mine correct allocation of grid resources, governments need union (IoU).
To train the U-net and to test our model, we used a probability to each pixel (with a classifier) or through
dataset of distributed aerial photography and satellite im- CNNs, but with additional layers that output a probability
agery of solar panels across high-resolution images in Cal- map.
ifornia. The dataset is publicly available and contains the One of the earliest, effective approaches to solar panel
geo-spatial coordinates and border vertices of solar cells segmentation came from Malof et al. (2016) [6] at Duke
from the cities of Fresno, Stockton, Oxnard, and Modesto in University and utilized a random forest classifier to assign
California. Finally, the data had to undergo several prepro- probabilities to each pixel enabling segmentation. This was
cessing operations, such as a mask generator and cropping, improved by the usage of CNNs that consisted of convolu-
before using them for training and testing. tional layers and max-pooling layers Malof et al. (2016) [7].
A big development in the field was made with the in-
2. Related Work troduction of DeepSolar by Yu et al. (2018) [8] at Stan-
ford University. Their project invovles two phases: a CNN
2.1. Image Segmentation based classification followed by semi-supervised segmenta-
The objective for semantic segmentation is to assign tion. The group was able to identify solar PV’s across the
each pixel of a given image to one of multiple classes. contiguous United States at a precision of 93.1% and recall
Specifically, it identifies which objects are shown in an im- of 88.5%. The results of this project were groundbreaking
age and where exactly are they located in the image. There for the field and is still considered state-of-the-art today as
have been early approaches to semantic segmentation such it influenced updates to other models, such as the CNN uti-
as the work of He et al. (2004) [1] and Shotton et al. lized by Yuan et al. (2016) [9] at Oak Ridge National Lab.
(2009) [2]. Deep neural networks and convolutional neural In 2020, the field was heavily influenced by the intro-
networks have played a dominant role in the field of image duction of the U-net architecture. The paper by Li Zhuang
classification and have resulted in deeper and more complex et al. (2020) [10] presents an algorithm for automatic seg-
architectures (He et al, 2016) [3]. mentation of residential solar panels with a cross learning
The cornerstone of semantic segmentation begins with driven U-net. Since the U-net architecture overcomes disad-
the Fully Convolution Network (FCN) (Long et. al 2015) vantages of FCNs and has demonstrated its performance on
[4] that can be applied to images of any dimension. The ar- analyzing satellite images, it is promising that this project
chitecture uses a convolutional network architecture for the adapts the U-Net to small-scale residential solar panels seg-
first layers (convolution and max pooling layers are utilized mentation. This advancement of the U-net was a great de-
until the image is downsized sufficiently enough). Then the velopment; however, a potential disadvantage is that due to
outputs are scaled up to its original size using upsampling its specific initialization method, considered in the Cross-
and deconvolutional layers. The down stream extracts con- Net, its application would be constrained to networks that
textual information and the up stream reconstructs more de- consist of a encoder and decoder structure.
tailed spatial information. A problem that FCN addresses
with using deep neural networks for semantic segmentation 3. Methods
is that detailed, deep structures do not get lost. This is be-
cause FCN is not a relatively deep architecture and intro- 3.1. Overview
duces skip connections. Skip connections skip some of the We aim to solve two problems: (a) PV classification -
layers of a neural network and feed the output of one of the a binary classification task predicting if an image contains
layers as the input to the next layers. any solar panels and (b) PV segmentation - generating pixel
Skip connections were improved with the introduction masks for the areas in an image that contain solar panels.
of U-net architectures which built on the FCN architecture For both our architectures, we used fastai’s GitHub repo as
(Ronneberger et al. 2015) [5]. The U-net consists of sym- a base, tweaking their model to fit our desired output and
metric contractive and expansive paths with the correspond- experimenting with various hyperparameters . [11]
ing layers of both paths connected by skip connections. The
U-net is a relatively simple architecture that has become 3.2. PV Classification
popular in the field of semantic segmentation and has in-
spired later architectures with its encoder-decoder structure. 3.2.1 Model

For PV classification we used a 34-layer residual network


2.2. Solar Panel Segmentation
(ResNet-34) that can be seen in figure 1. [12] ResNet-34
The area of solar panel segmentation is a novel re- has achieved state of the art performance - 3.57% error on
search field; that being said, there have already been sev- the ImageNet test set. Given that solar panel detection is a
eral promising approaches. The approaches that have gone significantly more trivial problem, we figured it was a suit-
down the path of image segmentation typically assign a able architecture. [13]
ResNet-34 capitalizes on the idea of “the deeper the bet- 3.2.2 Loss Function: Binary Cross-Entropy
ter” in the case of CNNs. ResNet-34 is able to go deeper
Loss = −(y log(p) + (1 − y) log(1 − p)) (5)
while avoiding vanishing gradients seen by other models by
adding skip connections from later layers to initial filters. We used binary cross entropy as our loss function as it is
This connection sums the input (x) and output of each 3x3 standard for binary classification tasks. BCE is easily dif-
convolution block (f(x)): ferentiable and allows us to penalize the probabilities based
on the distance from the expected value.
f (x) + x = h(x) (1)
3.2.3 Optimizer: Adam
When we take the gradient we will never get zero - even if:
Adam combines ideas from RMSprop and SGD with mo-
∂f (x) mentum to create an ideal optimizer. [14] It uses squared
=0 (2) gradients to scale the learning rate as training progresses by
∂x
vt . It also takes a moving average of the gradient mt . See
from the convolution: equation where g is the gradient of the current mini batch
and the betas are a hyper parameters with default values of
∂x
=1 (3) .9 and .999 respectively:
∂x
mt = β1 mt−1 + (1 − β1 )gt (6)
ensuring gradients are non-zero.
The network begins with a 7x7 convolutional layer fol- vt = β2 vt−1 + (1 − β2 )gt2 (7)
lowed by a pooling layer. Then we preform a series of Bias correction is preformed to generate m̂t and vˆt :
3x3 convolutions where input dimensions are persevered by mt
adding padding of 1. Each dotted line in figure 1 shows m̂t = (8)
1 − β1
where the dimensions of the input volume are reduced. This vt
is done by increasing the stride from 1 to 2, instead of a vˆt = (9)
1 − β2
max pooling operation. The structure of this is replicated
Finally the weights are updated using the following equa-
throughout the network in each of the colored layers. Fi-
tion:
nally our input is flattened into a FC layer. We then added a m̂t
sigmoid activation function to the final layer: wt = wt−1 − α √ (10)
vˆt + ϵ
1
σ(x) = (4) 3.2.4 Hyperparameters:
1 + e−x
For our classification model, the main hyperparameters that
so that the output would be probabilistic. Our threshold was we focused on were batch size and learning rate. For our fi-
set to .5 to determine the presence of solar panels. nal model, we trained on batch sizes of 16. Our final learn-
ing rate was set at 0.0005.
3.3. PV Segmentation
3.3.1 Model
For segmentation of PV’s, we decided to use a UNet ar- we get closer to a global minimum while also keeping mo-
chitecture designed in 2015 to process biomedical images mentum as a weighted average of our steps at prior epochs.
as seen in figure 2. [15] The network consists of a con-
tracting path (left side) and an expansive path (right side). 3.4. Evaluation Metrics
The contracting path behaves like a typical CNN, apply- 3.4.1 AOC-RUC Curve
ing two 3x3 unpadded convolutions, followed by a ReLU
and 2x2 max pooling operation with a stride of 2. For each The AUC (area under the curve) ROC (receiver operating
downsampling block, the number of feature channels are characteristics) curve is a frequently employed evaluation
doubled. In the expansive path, the model consists of 2x2 metric for checking or visualizing the performance of multi-
up-convolutions that halve the number of feature channels. class classification. More specifically, the ROC is a proba-
Then a concatenation is preformed with the corresponding bility curve, while the AUC indicates the measure of sepa-
feature map from the contracting path (visually the gray ar- rability — in other words how capable the model is at dis-
rows in figure 1) and two 3x3 convolutions-ReLU are ap- tinguishing between classes.
plied. The final layer of the network is a 1x1 convolution Now we will use the ROC curve, which is a curve of
used to map the component feature vetcor to the desired probability, to plot the distributions of the overlap between
number of classes which is 2 in our case. We modified the true positives and true negatives, to extract AUC, our evalu-
architecture to take 224x224 inputs instead of the original ation metric.
512x512 images used by Ronneberger et al. Additionally,
we added a sigmoid activation function a the end of the net-
work to generate per-pixel probabilities for containing PV’s.

3.3.2 Loss Function: Dice-BCE Loss


Lossm−bce =
1 X
− β(y − log(ŷ)) + (1 + β)(1 − y)(log(1 − ŷ)) As we can see, because there is an overlap between the
N i
true negatives and the true positives, our AUC evaluates to
BCE-Dice Loss(y, ŷ) = αLm−bce − (1 − α)DL(y, ŷ) a score of 0.7. This indicates to us that the model is able to
2y ŷ + 1 distinguish the difference between the positive and negative
DL(y, ŷ) = 1 − classes 70% of the time. This evaluation metric is critical
y + ŷ + 1
for multi-class segmentation as it infers how well the model
For segmentation, we implemented a combination be- does at segmenting classes accurately.
tween a binary cross entropy loss function and a dice loss
function. In a proper review [16] of an array of loss func-
3.4.2 Intersection over Union (IoU)
tions applied to the task of image segmentation, Jadon et al.,
found a combination of binary cross entropy loss and Dice Intersection over union is a common metric for segmenta-
loss to be competitive with other benchmark loss functions. tion models. It measures the overlap between two bounding
Compared to other loss functions, this performed better on boxes or masks. This metric gives us information on if the
our task. The Dice-BCE Loss functions as a weighted sum image was segmented correctly and how perfectly the im-
of the Dice and BCE loss functions. Binary Cross-Entropy age was segmented. The formula for IoU is as follows:
measures the difference between two probability distribu-
Area of overlap
tions. For segmentation, this works well at a pixel-level. IoU =
The Dice coefficient is widely used as a metric in computer Area of union
vision to calculate the similarity between two images. It The IoU will analyze the output of the model with the output
was later adapted as a loss function. label and calculate the IoU as a metric for how well the
model performed.
3.3.3 Optimizer
3.4.3 F1 Score
For segmentation, we used the same optimizer (Adam) as
our classifier. Dice-BCE Loss fit the segmentation task The F1 score is a popular metric in machine learning that
since we are outputting 224x224 binary masks giving the combines the precision and recall of a classifier. Let us de-
probability of a pixel containing a PV. In essence, this is the fine precision, which is the proportion of true positives over
same as classification except on a per pixel basis. Adam all instances that were classified (true positive and false pos-
also works well here capitalizing on taking smaller steps as itive) as true in the model. Let us define recall, which is the
proportion of true positives over all instances that are true efficiently we took 224x224 crops of the 601 satellite im-
(true positive or false negative) in the model. The F1 score ages and masks using centroid coordinates of the PV’s to
is thus: ensure our crops contained enough solar cells. This brings
our total dataset to 20,900 224x224 images to be fed into the
2 ∗ precision ∗ recall model. We randomly split the data using an 80-10-10 dis-
F1 =
precision + recall tribution for our training, validation, and test sets. The test
set contained a split of 48 percent negative samples and 52
We opted to use AUC-ROC as our primary evaluation
positive samples, representing a balanced class distribution.
metric for classification over F1. AUC-ROC is essentially
We used this existing code-base for prepossessing. [18]
F1 scores at various threshold probabilities so it is more ex-
planatory than an arbitrarily chosen threshold for F1.
5. Results
4. Dataset 5.1. PV Classification
4.1. Description 5.1.1 Architecture

Due to licensing restrictions and lack of solar cells in typ-


ical satellite images, there are very few publicly available
data sets for PV classification and segmentation. In 2016,
Bradbery et al. sought to decrease the information gap
in distributed solar PV arrays by producing a high quality
data set for PV detection which we use in our project [17].
The data set consists of 601 5000-by-5000 pixel TIF ariel
images and geospacial coordinates for over 19,000 solar
panels. Images span multiple cities in California (Fresno, For PV classification we used three channel satellite im-
Stockton, Oxnard and Modesto) and contain a diversity ages with size 224x224 pixels. The data set of 2,090 im-
of landscapes including urban, suburban and rural regions. ages was devised as 80% for training, 10% for validation
Cities were selected to meet two criteria: (a) the spatial res- and 10% for testing. All architectures were pretrained on
olution had to be higher than 30cm to ensure every panel imagenet as this would give us a better weight initializa-
would be represented by multiple pixels and (b) the regions tion for the earlier residual layers in our network. Addition-
had to have a high density of solar cells to prevent class ally, we employed early stopping during training after we
imbalance. Each solar panel’s geospatial coordinates and saw validation loss not improve for 5 epochs. We selected
vertices were hand labeled by 2 annotators and the union of a ResNet-34 architecture for the model (see table 1). The
the two labels were used as the final ground truth label. decision was based on prioritizing AUC-ROC over F1 (ex-
plained in Methods). We acknowledge that ResNet-50 may
have also been a suitable choice as it had the best F1 score of
.989 on the test set. Regardless, both of these out-preformed
the baseline .914 F1-score established by Stanford research
team Deep Solar who used an inception v3 architecture. [8]
We achieved a final ROC-AUC of .99 and F1 score of .95
which can be seen in figures 6 and 7.

5.1.2 Optimizer
4.2. Preprocessing
The data set required a significant amount of preprocess-
ing to get it in an acceptable form to pass into our U-Net
(see Appendix Figure 4). Initially, we passed in the im-
ages as well as their corresponding PV coordinates into a
mask generator that created a 5000x5000 boolean numpy
array mask with 0’s where solar panels were not present
and 1’s where they were present for each image (figure 3b). Next we experimented with optimizers (see table 2).
The images were also converted to 3x5000x5000 arrays. To RMSProp preformed significantly worse than Nadam and
generate more data and to allow our model to train more Adam. We hypothesize that this is because RMSProp
doesn’t account for momentum of the weights and instead 5.2. PV Segmentation
just decays the update. Nadam and Adam both incorporate
5.2.1 Loss Function
momentum. We opted to choose Adam since the ROC-AUC
score outperformed Nadam. Nadam is a slightly more opti-
mized version of adam that works by looking ahead at the
next x to preform our current update. The update rule for
Nadam can be seen in figure 5.

In line with the formal assessment of different image


segmentation loss functions [16], we chose to train on
5 different loss functions: Binary Cross-Entropy, Dice,
Binary Cross-Entropy Dice Combination, IoU, and Focal
loss. Different loss functions promise to address certain
aspects. BCE loss is standard for comparing probability
distributions between two sets. Dice score is a standardized
metric for comparing the similarity between images and
has been adapted to a loss function for training. BCE-Dice
loss combines the two aforementioned formulas and
benefits from a standard image segmentation metric and
5.1.3 Hyperparameters assessment of probability distribution. IoU is another
standardized evaluation metric to compare the similarity
The two hyper-parameters we experiment with are learning between two images which is adapted as a loss function.
rate and batch size. Lastly, Focal loss can also be seen as a variation of BCE. It
down-weights ”easy” examples and enables the model to
focus more on ”hard” examples. It typically works well for
highly imbalanced datasets.

Overall, we find that the combination of BCE and Dice Loss


outperformed all other loss functions. Of note, the second
best is the uncombined Dice loss. The third best was the
BCE loss. As such, balancing the contributions of both
enables peak performance, as promised in previous anal-
ysis [16].
From our results, we find that marginal benefits come
from a slightly smaller batch size when training our classi-
fier. As compared to a batch size of 32, a batch of 16 yields 5.2.2 Optimizer
an increase in AUC-ROC of .0002. Nonetheless, this is the We decide to train using an Adam optimizer for simplic-
batch size that proved most optimal and is what our final ity. Our experimentation timeline did not afford us suffi-
model was trained on. cient time to test different optimizers for our segmentor.

5.2.3 Hyperparameters

Looking at the table above, we find that incremental


changes in the learning rate by a factor of 2 has a learning
rate of .0005 outperforming the other learning rates by a
small amount. As such, our final classification model trains In our experiments, we tune the batch size to be able to find
with a learning rate of .0005. the ideal trade off between a smaller and larger batch size.
A larger batch size implies less noisy gradients, but it ne-
cessitates more memory and is slower. A smaller batch size
would be more noisy; however, it would converge faster.
We evaluated differences in batch size performance using
IoU. Overall, it was determined that a batch size of 32 pro-
duced the greatest IoU score, and is thus the optimal batch
size for this model.

Analyzing the results our learning rate optimization, it is


clear that a learning rate of .001 outperforms both a higher
and lower architecture. Though more precise changes in the
learning rate could potentially make a difference, we found
this middle point to be the most optimal learning rate of
those we tested.

5.3. Visualization

6. Conclusion
In this paper, we present a solar panel segmentation model
that works to classify and segment solar PV’s in a given im-
age. The model divides the training portion into two phases:
a pre-trained Resnet34 model for classification and a U-net
model for segmentation. We experiment with multiple clas-
sification architectures, such as different forms of Resnet.
In addition, we experiment with other variables such as the
segmentation batch size, the optimizer, and segmentation
loss function. Our model produced promising results and if
we compare it with the likes of DeepSolar as a benchmark,
our model is able to classify solar PV’s more effectively. hyperparameters, loss functions, and architectures. He did
the majority of training for the models. Additionally, Ethan
6.1. Future Work Hellman was chiefly responsible for the sourcing of data.
While our methodology seeks to converge on an optimal This includes the final dataset used in this study. He also
model for solar panel segmentation from satellite imagery, supplied coffee for everyone.
there are a few areas which could benefit from further
exploration. Given that we choose to use AUC-ROC as our Rodrigo Nieto was responsible for the election of the PV
standardized evaluation metric for different classification segmentation and selection model with Spencer Paul. In ad-
models, we deemed an Adam optimizer to be better than a dition, Rodrigo Nieto researched and procured the literature
NAdam optimizer. That being said, if instead, the F1 score and state-of-the-art models of current solar PV segmenta-
was used as a standardized evaluation metric, a NAdam tion projects to be able identify promising techniques, archi-
optimizer could be considered more optimal. As such, in tectures, and to build a better understanding of our bench-
the future, further exploration should be done to evaluate mark. He was also involved in the data pre-processing por-
the performance of a classifier using a NAdam optimizer tion of the project.
with the various other hyperparameters that were tuned. By
the same logic, a different architecture may have proven 8. Appendix
more optimal as well. Table 1. shows how a Resnet50
may have outperformed other Resnet architectures if the
evaluation were the F1 score. Therefore, further tests
should be done to evaluate this architecture compared to a
Resnet34 with optimally tuned parameters.

Lastly, for the segmentation task, it is most common to


see U-Net architecture. However, that does not mean that
a different architecture such as a Joint Pyramid Upsam-
pling module, as in FastFCN [19], a two-stream Gated
Shape CNN, as in Gated-SCNN [20], an Atrous CNN, as
in DeepLab [21], or a pixel-wise bounding box and se-
mantic segmentation CNN, as in Mask R-CNN [22], would
not have performed better. Future work should include
a broader exploration of different architectures potentially
suited to this task.

7. Contributions
This research would not be possible without code provided
from fastai for initial models as well as gabrieltseng for data
preprocessing (see refrences).
We also could not have done this work without the follow-
ing python libraries (numpy, pytorch, sklearn, matplotlib,
PIL). [23] [24] [25] [26] [27] References
[1] Zemel R. S. He, X. and Carreira-Perpiñán. Multiscale con-
ditional random fields for image labeling. IEEE, 2004. 2
Spencer Paul was responsible for initial research into
[2] Winn J. Rother C. Shotton, J. and A. Criminisi. Textonboost
PV segmentation and selection of the model architectures
for image understanding: multi-class object recognition and
alongside Rodrigo Nieto. He also was responsible for writ- segmentation by jointly modeling texture, layout, and con-
ing the abstract, methods and results section of the paper. text. Int. J. Comput, 2009. 2
Additionally, he wrote the evaluation and visualization
code for graphics in results section. He helped with training [3] Zhang X. Ren S. He, K. and J. Sun. Deep residual learning
for image recognition. IEEE, 2016. 2
and experimentation although the majority was done by
Ethan Hellman. [4] Shelhamer E. Long, J. and T. Darrell. Fully convolutional
networks for semantic segmentation. IEEE, 2015. 2
Ethan Hellman was responsible for model experimentation [5] Fischer P. Ronneberger, O. and T. Brox. U-net: convolu-
and designing the research process so as to evaluate tional networks for biomedical image segmentation. Medical
image computing and computer-assisted intervention (MIC- [23] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt,
CAI), 2015. 2 Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric
Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith,
[6] Leslie M. Collins Jordan M. Malof, Kyle Bradbury and
Robert Kern, Matti Picus, Stephan Hoyer, Marten H. van
Richard G. Newell. Automatic detection of solar photo-
Kerkwijk, Matthew Brett, Allan Haldane, Jaime Fernández
voltaic arrays in high resolution aerial imagery. Applied En-
del Rı́o, Mark Wiebe, Pearu Peterson, Pierre Gérard-
ergy, 2016. 2
Marchant, Kevin Sheppard, Tyler Reddy, Warren Weckesser,
[7] K. Bradbury J. M. Malof, L. M. Collins and R. G. Newell. A Hameer Abbasi, Christoph Gohlke, and Travis E. Oliphant.
deep convolu-tional neural network and a random forest clas- Array programming with NumPy. Nature, 585(7825):357–
sifier for solar photovoltaic arraydetection in aerial imagery. 362, September 2020. 8
IEEE, 2016. 2
[24] Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer,
[8] Arun Majumdar Jiafan Yu, Zhecheng Wang and Ram Ra- James Bradbury, Gregory Chanan, Trevor Killeen, Zem-
jagopal. Deepsolar:a machine learning framework to effi- ing Lin, Natalia Gimelshein, Luca Antiga, Alban Desmai-
ciently construct a solar deploymentdatabase in the united son, Andreas Kopf, Edward Yang, Zachary DeVito, Mar-
states. Joule, 2018. 2, 5 tin Raison, Alykhan Tejani, Sasank Chilamkurthy, Benoit
[9] O. A. Omitaomu J. Yuan, H. L. Yang and B. L. Bhaduri. Steiner, Lu Fang, Junjie Bai, and Soumith Chintala. Pytorch:
Large-scalesolar panel mapping from aerial images using An imperative style, high-performance deep learning library.
deep convolutional networks. IEEE, 2016. 2 In Advances in Neural Information Processing Systems 32,
pages 8024–8035. Curran Associates, Inc., 2019. 8
[10] Li Zhuang, Zijun Zhuang, and Long Wang. The automatic
[25] Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort,
segmentation of residential solar panels based on satellite
Vincent Michel, Bertrand Thirion, Olivier Grisel, Mathieu
images: A cross learning driven u-net method. ELSEVIER,
Blondel, Peter Prettenhofer, Ron Weiss, Vincent Dubourg,
2020. 2
et al. Scikit-learn: Machine learning in python. Journal of
[11] Fastai python library. “https : / / github . com / machine learning research, 12(Oct):2825–2830, 2011. 8
fastai/fastai”, 2022. 2
[26] John D Hunter. Matplotlib: A 2d graphics environment.
[12] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Computing in science & engineering, 9(3):90–95, 2007. 8
Deep residual learning for image recognition, 2015. 2 [27] P Umesh. Image processing in python. CSI Communica-
[13] Vincent Feng. An overview of resnet and its variants. To- tions, 23, 2012. 8
wards Data Science, 2017. 2
[14] Diederik P. Kingma and Jimmy Ba. Adam: A method for
stochastic optimization, 2014. 3
[15] Olaf Ronneberger, Philipp Fischer, and Thomas Brox. U-net:
Convolutional networks for biomedical image segmentation,
2015. 4
[16] Shruti Jadon. A survey of loss functions for semantic seg-
mentation. IEEE TPAMI, pages 1–6. 4, 6
[17] Kyle Bradbury. Distributed solar photovoltaic array location
and extent data set for remote sensing object identification.
Sci Data, 2016. 5
[18] “https://github.com/gabrieltseng/solar-
panel-segmentation”, 2019. 5
[19] Kaiqi Huang Kongming Liang Yizhou Yu Huikai Wu,
Junge Zhang. Fastfcn: Rethinking dilated convolution in the
backbone for semantic segmentation. 2019. 8
[20] Varun Jampani Sanja Fidler Towaki Takikawa, David Acuna.
Gated-scnn: Gated shape cnns for semantic segmentation.
2019. 8
[21] Iasonas Kokkinos Kevin Murphy Alan L. Yuille Liang-
Chieh Chen, George Papandreou. Deeplab: Semantic image
segmentation with deep convolutional nets, atrous convolu-
tion, and fully connected crfs. 2017. 8
[22] Piotr Dollár Ross Girshick Kaiming He, Georgia Gkioxari.
Mask r-cnn. 2017. 8

You might also like