Commit a7cdfd1f authored by Chris Coughlin's avatar Chris Coughlin

Updated installation details

parent 8f06cd2d
# Myriad Desktop
## Quick Start
We've prepared a [bundle](myriad_samples.zip) to help you get started. Inside is a model that has been trained to find indications of structural damage in sensor data and some sample input files to get you started. Download the bundle and extract the model and the sample files in a convenient location, then use them as you proceed through the documentation.
When you're ready to create your own ROI models, have a look at the companion tool [Myriad Trainer](trainer.md).
## Introduction
![Screenshot](img/linux_desktop.png)
![Screenshot](img/screenshot.png)
Myriad Desktop is a desktop application that provides an easy to use graphical user interface for scanning datasets for Regions of Interest (ROI) built on the Myriad fault-tolerant data reduction framework. A video demonstrating the use of Desktop is available from [Emphysic's Wistia page](https://emphysic.wistia.com/medias/sbbft90a67) or the main [Myriad page](https://emphysic.com/myriad/).
......@@ -17,6 +12,14 @@ A work order is only removed after the work is successfully completed, so if the
Stages are designed in Myriad Desktop to work from left to right, e.g. in a standard pipeline data are first read and then sent to the Gaussian Pyramid router, which sends its results to the Sliding Window router when complete, etc. Each stage is optional so that if Gaussian Pyramid operations are not required for example data can be directly sent to the Sliding Window router instead.
## Installation
The Myriad library must be installed prior to building Trainer. Please refer to the main [Installation](install/#installation) page for details on installing Myriad, Myriad Desktop, and Myriad Trainer.
## Quick Start
We've prepared a [bundle](myriad_samples.zip) to help you get started. Inside is a model that has been trained to find indications of structural damage in sensor data and some sample input files to get you started. Download the bundle and extract the model and the sample files in a convenient location, then use them as you proceed through the documentation.
When you're ready to create your own ROI models, have a look at the companion tool [Myriad Trainer](trainer.md).
## Constructing A Pipeline
### Configuration
The first step in constructing a processing pipeline is configuring each stage of the pipeline. Start by selecting each of the stage tabs in turn and reviewing their default settings. If these values are acceptable, the entire pipeline can be constructed at once by pressing `Construct Pipeline`. If you want to adjust the number of workers in the stage or stage-specific options, you can make the adjustments and then press `Configure Stage`. Note that it is not necessary to restart Desktop or rebuild the pipeline after you configure a stage as it automatically replaces any previously-configured stage.
......@@ -54,7 +57,7 @@ Myriad and by extension Desktop also supports ad-hoc distributed pipelines in wh
To build a distributed pipeline, start Myriad Desktop (or another Myriad-based application) on each system to be used in the pipeline. Note that Desktop can make remoting calls to any other Myriad application including "headless" deployments on servers, but for the purposes of this demonstration we'll assume that both systems are running Desktop.
On the remote system, start the processing stage(s) it will be responsible for by pressing the ``Configure Stage`` button. The system will update with the (local) path to the stage. This path, in combination with remoting details found in the ``About`` dialog, make up the remote URL of the stage. Note that it is only necessary to configure the stage(s) that will be used on the remote system, i.e. do not configure the entire pipeline or start processing on the remote machine.
On the remote system, start the processing stage(s) it will be responsible for by pressing the ``Configure Stage`` button. The system will update with the (local) path to the stage. This path, in combination with remoting details found in the ``About`` dialog, makes up the remote URL of the stage. Note that it is only necessary to configure the stage(s) that will be used on the remote system, i.e. do not configure the entire pipeline or start processing on the remote machine.
On the “local” (i.e. the system that will call this remote stage) system, browse to the appropriate tab in Desktop and ensure the ``Remote`` checkbox is checked. Enter the remote system’s IP address and Myriad port (available from the remote system’s ``About`` dialog), and enter the stage’s path. Note that the format of a remote processing stage URL is of the form
......
......@@ -7,4 +7,5 @@
## Developer Documentation
* [Java API documents](http://myrdocs.azurewebsites.net/api/)
* [Code Samples](https://emphysic.com/myriad/sample-code/)
\ No newline at end of file
* [Code Samples](https://emphysic.com/myriad/sample-code/)
* [Sample ROI Project Code](https://gitlab.com/ccoughlin/myriad-demo)
\ No newline at end of file
# Welcome to Myriad!
# Myriad ROI Detection Toolkit
[Myriad](https://www.emphysic.com/myriad/) is a fault-tolerant distributed computing framework for creating [Region Of Interest (ROI)](https://en.wikipedia.org/wiki/Region_of_interest) detection applications. Developed by [Emphysic](https://emphysic.com/), Myriad provides signal / image processing, machine learning, and concurrency functionality all in a single library.
In 2016 [NASA funded](http://sbir.nasa.gov/SBIR/abstracts/16/sbir/phase1/SBIR-16-1-H13.01-8360.html) the development of a Myriad-based system for automatically detecting indications of structural damage in large [Nondestructive Testing (NDT)](https://en.wikipedia.org/wiki/Nondestructive_testing) datasets. We've put together a demonstration of this system that goes all the way from picking training data to searching for damage:
In 2016 [NASA funded](http://sbir.nasa.gov/SBIR/abstracts/16/sbir/phase1/SBIR-16-1-H13.01-8360.html) the development of a Myriad-based system for automatically detecting indications of structural damage in large [Nondestructive Testing (NDT)](https://en.wikipedia.org/wiki/Nondestructive_testing) datasets.
![Sample ROI Detection Results](img/sample_results.png)
We've put together a demonstration of this system that goes all the way from picking training data to searching for damage:
[![Training / Testing Models](img/bigvid.png)](https://emphysic.wistia.com/medias/sbbft90a67)
......@@ -16,7 +20,15 @@ In 2016 [NASA funded](http://sbir.nasa.gov/SBIR/abstracts/16/sbir/phase1/SBIR-16
* A variety of signal/image processing operations and feature detection operations
* Machine learning capabilities courtesy [Smile](http://haifengl.github.io/smile/) and [Apache Mahout](http://mahout.apache.org/)
* Fault-tolerant concurrency courtesy [Akka](http://akka.io/)
* Experimental support for hardware acceleration (GPU, Xeon Phi, etc.) courtesy [Aparapi](http://aparapi.github.io/)
* Experimental support for hardware acceleration (AMD Radeon, NVIDIA GeForce, etc.) courtesy [Aparapi](http://aparapi.github.io/)
## Licensing
Licensed under the [Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0.txt)
## Additional Resources
* [Myriad Home Page](https://emphysic.com/myriad/)
* [Frequently Asked Questions](https://emphysic.com/myriad/faq/)
* [Sample Code and Videos](https://emphysic.com/myriad/downloads/)
## License
Licensed under the [Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0.txt)
\ No newline at end of file
## Contact Us
Questions? Comments? Suggestions? [Drop us a line](https://emphysic.com/contact-us/).
\ No newline at end of file
......@@ -20,7 +20,7 @@ POSIX-style operating systems such as Linux or OpenBSD will vary on how to set e
For convenience, you may also want to add both the JDK bin and the Maven bin folders to the path.
If you would like to track updates to the Myriad codebase, Git is recommended. [Contact Emphysic](https://emphysic.com/contact-us/) for obtaining access to the Git repositories (a valid email address is required).
If you would like to track updates to the Myriad codebase, Git is recommended. There are three primary Git repositories:
* Myriad [https://gitlab.com/ccoughlin/datareader.git](https://gitlab.com/ccoughlin/datareader.git)
* Myriad Desktop [https://gitlab.com/ccoughlin/MyriadDesktop.git](https://gitlab.com/ccoughlin/MyriadDesktop.git)
......@@ -42,11 +42,15 @@ Myriad relies on an external dynamic library to access hardware. The Myriad sou
For assistance using OpenCL on other operating systems, please [contact Emphysic](https://emphysic.com/contact-us/). OpenCL is an optional component of Myriad; applications written using Myriad (including the GUI tools) will run perfectly well without OpenCL support.
## Building Myriad
Myriad is distributed as an [Apache Maven](https://maven.apache.org/) project.
### Automatic
Myriad is distributed as an [Apache Maven](https://maven.apache.org/) project. Open a command prompt in the project's root folder and run `install.bat` (Windows) or `install.sh` (Linux/FreeBSD/OS X) to automatically download the required dependencies and install Myriad.
Most of the Myriad dependencies will be automatically downloaded and installed, but several third-party libraries require an extra step. These libraries are in the `libs` folder, which also contains shell scripts for downloading and installing these libraries automatically. Windows users can run `installdeps.bat` and Linux/FreeBSD/OS X users can run `installdeps.sh`.
After Myriad has been installed, Desktop and Trainer can be installed by opening a command prompt in their respective root folders and again running `install.bat` (Windows) or `install.sh` (Linux/FreeBSD/OS X).
Alternatively if you would prefer to perform the steps manually, issue the following commands:
### Manual
If you'd prefer to do things manually and are comfortable with using Maven on the command line, read on.
Most of the Myriad dependencies will be automatically downloaded and installed, but several third-party libraries require an extra step. These libraries are in the `libs` folder, which can be installed by issuing the following commands:
```
mvn install:install-file -Dfile=sgtdk-0.1.1.jar -DgroupId=com.github -DartifactId=sgdtk -Dversion=1.0.0 -Dpackaging=jar
......@@ -56,14 +60,14 @@ mvn install:install-file -Dfile=pixelmed.jar -DgroupId=com.pixelmed -DartifactId
mvn install:install-file -Dfile=aparapi.jar -DgroupId=com.amd -DartifactId=aparapi -Dversion=1.0.0 -Dpackaging=jar
```
With the third-party libraries installed, switch back to the main Myriad folder (folder with the pom.xml file) and run the command `mvn install -DskipTests=true`. Maven will download all the Myriad dependencies and if all goes well a minute or two later the main Myriad library will be built and installed to the local maven repository e.g. on Windows `C:\Users\<username>\.m2\repository`.
With the third-party libraries installed, switch back to the Myriad library root folder (i.e., the folder with the pom.xml file) and run the command `mvn clean install -DskipTests=true`. Maven will download all the Myriad dependencies and if all goes well a minute or two later the main Myriad library will be built and installed to the local maven repository e.g. on Windows `C:\Users\<username>\.m2\repository`.
Now switch to the Myriad Desktop and Myriad Trainer project folders and run `mvn package` from each to build the GUIs. Both GUIs depend on the Myriad library and will not compile until the library has been successfully installed.
### Expected Results
If compilation of the library and the GUIs was successful you should find a new Emphysic folder under the Maven repository at e.g. `.m2\repository\com\emphysic` . Each of the source code folders should also contain one or more JAR files under the target sub-folder. A JAR is a ZIP file with a [specific layout](https://docs.oracle.com/javase/tutorial/deployment/jar/) used in Java to bundle a compiled application. Depending on your system configuration, you may be able to run the GUI tools simply by double-clicking the JAR file in the file manager. If not, you can run the JAR by opening a command console and issuing a command:
* Myriad Desktop `java -jar <path>/desktop-1.0-SNAPSHOT.jar`
* Myriad Desktop `java -jar <path>/desktop-1.0-SNAPSHOT-allinone.jar`
* Myriad Trainer `java -jar <path>/MyriadTrainer-1.0-SNAPSHOT.jar`
Although building the Myriad library does produce a JAR, there is no executable in this archive. In this case the JAR is built as a dependency for other applications such as the GUI tools, analogous to a DLL or .so file in Windows or Linux respectively. Applications you write that use the Myriad library will add this JAR to the project.
......@@ -14,6 +14,9 @@ A video demonstrating the basic usage of Trainer and its companion tool [Desktop
[![Training / Testing Models](img/bigvid.png)](https://emphysic.wistia.com/medias/sbbft90a67)
## Installation
The Myriad library must be installed prior to building Trainer. Please refer to the main [Installation](install/#installation) page for details on installing Myriad, Myriad Trainer, and Myriad Desktop.
## Inital Preparation
### Acquiring Data
The training data should be representative of the types of ROI the model will ultimately be used to detect. The specificity of the data will depend on the application and the user’s goals for the model. When used to detect indications of structural damage in nondestructive evaluation (NDE) data for example a user may wish to train a model for looking at C-scans and another for A-scans, or one model for pitting and another for cracks, etc.
......
......@@ -3,7 +3,7 @@ pages:
- Main: 'index.md'
- Installation: 'install.md'
- Developers: 'developers.md'
- Tools:
- Applications:
- Myriad Trainer: 'trainer.md'
- Myriad Desktop: 'desktop.md'
theme: readthedocs
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment