{"id":14977273,"url":"https://github.com/nikhilba/aerial-imagery","last_synced_at":"2025-10-28T03:30:59.067Z","repository":{"id":79346768,"uuid":"81499471","full_name":"nikhilba/Aerial-Imagery","owner":"nikhilba","description":"Data Science Research Project: Map poverty using satellite images.","archived":false,"fork":false,"pushed_at":"2020-08-14T22:18:24.000Z","size":218466,"stargazers_count":11,"open_issues_count":0,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T10:51:10.956Z","etag":null,"topics":["carnegie-mellon-university","data-science","deep-learning","ipynb","neural-network","satellite-images","vgg16"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nikhilba.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-09T22:04:19.000Z","updated_at":"2024-10-09T08:10:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"81ca87f2-5753-4e78-a213-dba675e81b0d","html_url":"https://github.com/nikhilba/Aerial-Imagery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikhilba%2FAerial-Imagery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikhilba%2FAerial-Imagery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikhilba%2FAerial-Imagery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikhilba%2FAerial-Imagery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikhilba","download_url":"https://codeload.github.com/nikhilba/Aerial-Imagery/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238590593,"owners_count":19497351,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["carnegie-mellon-university","data-science","deep-learning","ipynb","neural-network","satellite-images","vgg16"],"created_at":"2024-09-24T13:55:23.427Z","updated_at":"2025-10-28T03:30:54.013Z","avatar_url":"https://github.com/nikhilba.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Aerial-Imagery\nAuthors: [Nikhil Binod Agarwal](https://github.com/nikhilba) and [Tina Hong Bu](https://github.com/TinaHongBu), under the guidance of [Prof. Zico Kolter](http://zicokolter.com/), Carnegie Mellon University.\n\n# Status\nThis is an ongoing project.\n\nCode is contained in the Code/ directory (iPython Notebooks) and Data (except Satellite Images) is contained in the Dataset/ directory.\n 1. Downloading Satellite Images [COMPLETED] - Code/ImageDownload.ipynb\n 2. Mapping Income info with Satellite Image [COMPLETED] - Code/Read_Census_Info_BG.ipynb\n 3. Classifying Images [In Progress] - Code/Aerial_Imagery_Deep_Learning.ipynb\n\n# Required Package\nFollowing packages have been used to run the code in this repo:\n - geopandas\n - shapely\n - fiona\n - matplotlib\n - seaborn\n - pandas\n - numpy\n - bcolz\n\nDeep Learning Packages:\n - Keras\n - Theano (backend)\n - Tensorflow (backend)\n \n# Problem Statement\nWe are interested in applying the deep learning techniques to the satellite images of a location (in our case, we look at Pittsburgh city) and related census information (such as income, age, sex, race, etc.). We attempt to investigate the possibility of predicting poverty in a region.\n\nGathering census information is expensive and resource intensive. Our analysis would be a cost effective alternative solution using a fairly high-resolution aerial imagery to obtain an approximation of the census information at a significatly reduced cost. This can be achieved by building a classifier that can predict income level of a regoin.\n\n# Approach\nOur aim is to implement an end-to-end data science pipeine from scratch. Thus,  we create a unique dataset of Satellite Images and associate every image with its corresponding census information (in this case income). \n\nTo be able to predict poverty using aerial images, we use deep-learning technique to generate image features and then train a classifier to predict the income level of the image. For ML model, we use neural network, specifically convolutional neural network. Tuning and training a new neural network takes a significant amount of time and effort, we thus use a [VGG-16 network model](https://gist.github.com/baraldilorenzo/07d7802847aaad0a35d3)  with weights pre-trained on ImageNet, to generate the image features. \n\nSuch pre-trained very deep convolutional neural networks have been known to generalize well and achieve state-of-the-art results. Tweaking the last few layers of this model, we would measure its performance.\n\n# Data Collection \u0026 Processing\nWe create a unique dataset from scratch using the open source infomation of the state Pennsylvania. \n 1. To generate the desired predictor training data, we first download the satellite images of Pittsburgh using [Google Static Maps Api](https://developers.google.com/maps/documentation/static-maps/)\n 2. The Census data by Block group is downloaded from the [US Census Bureau](https://www.census.gov/geo/maps-data/data/tiger-data.html).\n 3. We then map each satellite image with its corresponding income level info. \n 4. Income level is transformed into bins of size 40 for classification.\n 5. Each image is further split into 9 parts and mapped with corresponding income bin.\n\n# Modeling\nWe use a VGG-16 model with weights pre-trained on ImageNet, but we drop the last two dense and dropout layers. We then generate useful image features from the truncated VGG-16 Model. In the end, we classify the images by income level.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikhilba%2Faerial-imagery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikhilba%2Faerial-imagery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikhilba%2Faerial-imagery/lists"}