An open Hawaiian indigenous plant identification and aggregation application. Developed for the 2018 Hawaii Annual Code Challenge. Learn more about the challenge and our app at devpost.
To get started, first read the introductory text under Quick Start Application. Or read the Data Collection, Machine Learning, and Results sections of this README.
When ready for more information about each step of the process, visit any of the following:
Our app was built for the iPhone 6 running on iOS version 12. However, deploying the app to an iPhone device is a long process, especially if your Mac is not up-to-date with the latest OS or Xcode version. Therefore, we recommend these quick start steps for getting up-and-running quickly on the browser. Note, however, that the main feature of the app, plant identification, will not work because the native iOS camera cannot run on the browser.
If you would rather follow the complete instructions and deploy to an iOS device, follow the steps under Complete Application Setup.
git clone git@github.com:HACC2018/ohia.ai.git
.cd ohia.ai
.npm install
. Among other items, you should see "Downloading libtensorflow" and "Building TensorFlow Node.js bindings" run without error in your output..env
file in the project root by copying the template in .env.sample
.source .env
.env
.weights.tar.gz
using the command tar xzf weights.tar.gz
, followed by replacing the /server/models/mobilenetv1-1.00
folder with the respective unzipped folder.Run the server: npm run dev-server
. You should see the following output:
▶ npm run dev-server
> ohia.ai@0.0.1 dev-server /path/to/ohia.ai
> nodemon server/index.js
[nodemon] 1.18.4
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node server/index.js`
2018-11-07 07:25:31.386112: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.2 AVX AVX2 FMA
Server for ohia.ai listening on port 3000
source .env
.npm install -g @vue/cli
.npm install -g @vue/cli-init
.npm install -g quasar-cli
.npm run install:client
.Run npm run dev
to view the app in a browser. You should see the following output:
▶ npm run install:client
> ohia.ai@0.0.1 install:client ~/ohia.ai
> cd client && npm install
> fsevents@1.2.4 install ~/ohia.ai/client/node_modules/fsevents
> node install
[fsevents] Success: "~/ohia.ai/client/node_modules/fsevents/lib/binding/Release/node-v64-darwin-x64/fse.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile
added 1333 packages from 612 contributors and audited 16152 packages in 23.649s
found 0 vulnerabilities
(python2)
git clone git@github.com:HACC2018/ohia.ai.git
.cd ohia.ai
.Machine learning involves learning from data, thus data collection is an integral part of our application. For more details see ohia.ai/data_collection. View the scraped data in our Google Drive, within the images
folder, and our plant metadata within the plant_meta
folder.
Behind the scenes, ohia.ai is powered by machine learning and AI. Our team utilizes modern deep learning techniques and large open source datasets to achieve highly accurate classification on a wide range of flora found throughout the Hawaiian Islands. For more details see ohia.ai/machine_learning.
Plant Name | Top 1 Accuracy | Top 3 Accuracy | Top 5 Accuracy | Image Count |
---|---|---|---|---|
Abutilon | 80.55% | 83.33% | 88.88% | 374 |
Achyranthes | 53.12% | 65.62% | 78.12% | 258 |
Aleurites | 46.66% | 80.00% | 86.66% | 176 |
Ananas | 86.00% | 90.00% | 96.00% | 612 |
Anthurium | 73.91% | 97.10% | 97.10% | 758 |
Artocarpus | 73.07% | 88.46% | 88.46% | 303 |
Bonamia | 66.66% | 66.66% | 66.66% | 44 |
Bougainvillea | 96.36% | 100.00% | 100.00% | 663 |
Canavalia | 62.50% | 79.16% | 83.33% | 212 |
Chrysodracon | 63.63% | 81.81% | 81.81% | 276 |
Cocos | 83.87% | 90.32% | 93.54% | 311 |
Colubrina | 80.00% | 100.00% | 100.00% | 67 |
Cordia | 36.00% | 64.00% | 72.00% | 209 |
Cordyline | 82.75% | 100.00% | 100.00% | 335 |
Cortaderia | 50.00% | 100.00% | 100.00% | 39 |
Cyperus | 78.57% | 91.83% | 94.89% | 871 |
Delairea | 71.42% | 100.00% | 100.00% | 111 |
Dioscorea | 57.14% | 80.00% | 85.71% | 261 |
Gouania | 66.66% | 66.66% | 66.66% | 31 |
Heliconia | 87.71% | 94.73% | 98.24% | 622 |
Hibiscus | 77.82% | 91.63% | 95.39% | 2,151 |
Ischaemum | 50.00% | 75.00% | 75.00% | 41 |
Isodendrion | 00.00% | 50.00% | 50.00% | 20 |
Marsilea | 75.00% | 100.00% | 100.00% | 51 |
Mezoneuron | 100.00% | 100.00% | 100.00% | 18 |
Nothocestrum | 37.50% | 50.00% | 75.00% | 64 |
Officinale | 66.00% | 82.00% | 88.00% | 556 |
Panicum | 58.06% | 90.32% | 98.38% | 580 |
Pennisetum | 83.33% | 100.00% | 100.00% | 162 |
Peucedanum | 00.00% | 50.00% | 50.00% | 31 |
Plumeria | 79.20% | 89.10% | 91.08% | 741 |
Portulaca | 61.84% | 82.89% | 82.89% | 623 |
Pritchardia | 84.61% | 96.15% | 98.07% | 464 |
Pseudognaphalium | 66.66% | 85.18% | 94.44% | 420 |
Rubus | 84.56% | 93.95% | 97.31% | 1,113 |
Scaevola | 70.66% | 84.00% | 90.66% | 689 |
Schenkia | 12.50% | 50.00% | 62.50% | 48 |
Senecio | 80.80% | 92.92% | 94.94% | 854 |
Sesbania | 60.00% | 80.00% | 80.00% | 104 |
Tetramolopium | 65.00% | 90.00% | 95.00% | 146 |
Tibouchina | 33.33% | 100.00% | 100.00% | 26 |
Vigna | 50.00% | 68.75% | 75.00% | 101 |