Skip to main content

Building Recognition using AI at Large-Scale

Project description

logo Building Recognition using AI at Large-Scale.

BRAILS

What is BRAILS

BRAILS is the acronym for Building Recognition using AI at Large-Scale, which is an AI-based pipeline for city-scale building information modeling (BIM).

How to install

pip install BRAILS

If you have difficulties installing BRAILS, please check the troubleshooting page.

Documents

Read the online document here.

Quickstart

Example 1: Modules

The following example shows how to use BRAILS modules. Available modules here.

This example can also be found in the document here, you can run it on you local computer or you can test it in this notebook on Google Colab.

Images used in examples can be downloaded by clicking here or using the following the command:

wget https://zenodo.org/record/4562949/files/image_examples.zip
# import modules
from brails.modules import RoofClassifier, OccupancyClassifier, SoftstoryClassifier


# initialize a roof classifier
roofModel = RoofClassifier()

# initialize an occupancy classifier
occupancyModel = OccupancyClassifier()

# initialize a soft-story classifier
ssModel = SoftstoryClassifier()

# use the roof classifier 

imgs = ['image_examples/Roof/gabled/76.png',
        'image_examples/Roof/hipped/54.png',
        'image_examples/Roof/flat/94.png']

predictions = roofModel.predict(imgs)

# use the occupancy classifier 

imgs = ['image_examples/Occupancy/RES1/51563.png',
        'image_examples/Occupancy/RES3/65883.png']

predictions = occupancyModel.predict(imgs)

# use the softstory classifier 

imgs = ['image_examples/Softstory/Others/3110.jpg',
        'image_examples/Softstory/Softstory/901.jpg']

predictions = ssModel.predict(imgs)

The predictions look like this:

Image :  image_examples/Roof/gabled/76.png     Class : gabled (83.21%)
Image :  image_examples/Roof/hipped/54.png     Class : hipped (100.0%)
Image :  image_examples/Roof/flat/94.png     Class : flat (97.68%)
Results written in file roofType_preds.csv

Image :  image_examples/Occupancy/RES1/51563.png     Class : RES1 (66.41%)
Image :  image_examples/Occupancy/RES3/65883.png     Class : RES1 (49.51%)
Results written in file occupancy_preds.csv

Image :  image_examples/Softstory/Others/3110.jpg     Class : others (96.13%)
Image :  image_examples/Softstory/Softstory/901.jpg     Class : softstory (96.31%)
Results written in file softstory_preds.csv

Example 2: Workflow

This example shows how to create a building inventory by specifying the name of a city.

You can also specify a bounding box.

Check details of this example and more examples here, or test them in this notebook on Google Colab.

# Import the module from BRAILS
from brails.CityBuilder import CityBuilder

# Initialize the CityBuilder
cityBuilder = CityBuilder(attributes=['softstory','occupancy','roofshape'], 
                   numBldg=10,random=True, place='Lake Charles, Louisiana', 
                   GoogleMapAPIKey='put-your-key-here')

# create the city-scale BIM file
BIM = cityBuilder.build()

The definitions of the parameters in this example can be found here.

The result BIM is a geopandas dataframe:

index geometry ID roofShape roofShapeProb softStory softStoryProb occupancy occupancyProb
0 POLYGON ((-93.21912 30.22786, -93.21892 30.227... 0 softstory 0.761644 COM 0.878260 flat 0.999769
1 POLYGON ((-93.21517 30.22412, -93.21491 30.224... 1 softstory 0.500260 RES1 0.549517 hipped 0.961910
2 POLYGON ((-93.21411 30.22617, -93.21427 30.226... 2 softstory 0.994021 COM 0.594705 hipped 0.999313
3 POLYGON ((-93.16719 30.23006, -93.16715 30.230... 3 softstory 0.969902 COM 0.372285 flat 0.735594
4 POLYGON ((-93.25565 30.21074, -93.25550 30.211... 4 softstory 0.000000 COM 0.000000 flat 0.998508
5 POLYGON ((-93.20388 30.22758, -93.20388 30.227... 5 others 0.971890 COM 0.913591 flat 0.996405
6 POLYGON ((-93.21610 30.22505, -93.21613 30.224... 6 softstory 0.000000 COM 0.000000 flat 0.963075
7 POLYGON ((-93.16549 30.22877, -93.16546 30.228... 7 others 0.841312 RES3 0.441689 hipped 0.534562
8 POLYGON ((-93.21525 30.22513, -93.21523 30.225... 8 others 0.830462 RES1 0.383844 flat 0.786514
9 POLYGON ((-93.21924 30.23054, -93.21949 30.230... 9 softstory 0.000000 COM 0.000000 flat 0.986143

How to cite

@article{wang2021machine,
  title={Machine learning-based regional scale intelligent modeling of building information for natural hazard risk management},
  author={Wang, Chaofeng and Yu, Qian and Law, Kincho H and McKenna, Frank and Stella, X Yu and Taciroglu, Ertugrul and Zsarn{\'o}czay, Adam and Elhaddad, Wael and Cetiner, Barbaros},
  journal={Automation in Construction},
  volume={122},
  pages={103474},
  year={2021},
  publisher={Elsevier},
  doi="https://doi.org/10.1016/j.autcon.2020.103474"
}

The pdf is here.

Acknowledgement

This material is based upon work supported by the National Science Foundation under Grant No. 1612843.

Contact

Charles Wang, NHERI SimCenter, UC Berkeley, c_w@berkeley.edu

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

BRAILS-2.0.0.tar.gz (161.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page