GithubHelp home page GithubHelp logo

yancheng-env / raster-deep-learning Goto Github PK

View Code? Open in Web Editor NEW

This project forked from esri/raster-deep-learning

0.0 0.0 0.0 4.95 MB

ArcGIS built-in python raster functions for deep learning to get you started fast.

License: Apache License 2.0

Python 99.17% Batchfile 0.83%

raster-deep-learning's Introduction

Deep Learning Python raster function For ArcGIS

Deep learning model inferencing in ArcGIS is implemented on top of the Python raster function framework. This repository serves to provide guidance on deep learning Python raster functions in ArcGIS, and to educate users on how to create custom Python raster functions to integrate additional deep learning models with the ArcGIS platform.

Prerequisites

  1. Deep learning in ArcGIS requires one of the following products:

    • ArcGIS Pro 2.3 or later.
    • ArcGIS Enterprise 10.7 or later.
  2. An ArcGIS Image Analyst license is required to run inferencing tools.

  3. CPU or NVIDIA GPU + CUDA CuDNN

Getting started

  1. Clone raster-deep-learning repository:

    git clone https://github.com/Esri/raster-deep-learning.git 
    
  2. Download sample data, including imagery and trained deep learning models.

    • Use the link above to download the sample data and models for four different model frameworks.
  3. Set up the Python deep learning environment in ArcGIS, and install the required deep learning libraries listed in requirements.txt.

    • Install Python environments in ArcGIS Pro using the ArcGIS Pro Python Package Manager.

    • Alternatively, ArcGIS Pro users can use this batch file env_setup.bat at the root directory to automatically install all the required deep learning libraries for the sample cases in this repository. NOTE: By default, the batch installation will take up 5 GB of disk space on the C:/ drive (or the disk where ArcGIS Pro is installed). To execute the batch file, right click the batch file and choose to Run as Administrator. This installation takes less than 5 minutes to run on the author's test machine.

    • For ArcGIS Enterprise users, the deep learning libraries need to be installed to the Python environment on each raster analytics server machine: C:\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python. The batch file env_setup_server_tensorflow.bat at root directory automates the TensorFlow environment setup process for ArcGIS Enterprise 10.7, specifically. It is not recommended to install different deep learning frameworks (TensorFlow, Keras, PyTorch, etc) into one Enterprise Python environment.
      NOTE: By default, batch installation will take ~2-3 GB of disk space on the C:/ drive (or the disk where ArcGIS server is installed). To execute the batch file, right click the batch file and choose to Run as Administrator. This installation takes less than 5 minutes to run on the author's test machine. Once you finish setting up the Python environment, you will need to restart the ArcGIS server. For more details on setting up the Enterprise environment, see Configure ArcGIS Image Server for deep learning raster analytics.

    • If you prefer to manually setup the deep learning Python environment using command lines, see the example below which installs TensorFlow on the ArcGIS raster analytics server:

      Step1: Change Directory to ArcGIS python scripts directory.
      cd C:\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts
      
      Step2: Clone a new ArcGIS python environment for deep learning.
      conda create --name deeplearning_env_name --clone arcgispro-py3
      
      Step3: Activate the new python environment.
      activate deeplearning_env_name
      
      Step4: Install tensorflow or tensorflow-gpu in the new python environment. 
      conda install tensorflow
      
      Step5: Swap it to the activate python environment of the ArcGIS servers. 
      proswap deeplearning_env_name
      
  4. Get familiar with the format and requirements of the Esri model definition file (emd).

  5. (Optional) Get familiar with Python raster function. Anatomy of a Python Raster Function.

  6. (Optional) If you are interested in writing custom deep learning Python raster function to integrate additional deep learning models into ArcGIS, the Custom Python raster function guide provides details on the necessary functions and how to implement model inference calls using Python raster function.

Examples

We provide deep learning model inference Python raster function (PRF) for a list of open source deep learning model configurations.

Click on the model configuration name to go to the corresponding GitHub repository or project landing page for that model.

Resources

Features

Python Raster function templates are provided for object detection and pixel-level image classification (Image Segmentation in Computer Vision).

Issues

Did you find a bug or do you want to request a new feature? Please let us know by submitting an issue.

Contributing

Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.

Licensing

Copyright 2019 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's license.txt file.

raster-deep-learning's People

Contributors

hanhu7 avatar lingtangraster avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.