An app to detect invasive species to protect endangered apps

Overview

Plant Protect - Blair Hacks '22 [Best Environment]

Demo

Demo.4.mov

Inspiration

One day, on a nature camp, we were asked to pluck out plants (contrary to common sense) because they were invasive, which meant that they came from a different habitat and were hurting the native plants in this one. Years later, we realized this was a meaningful problem to solve, and we were motivated by the fact that we would be one of the first ones to do it with the help of machine learning.

What it does

Plant Protect is an iOS app we created for hikers and nature enthusiasts to take photos of plants they encounter to detect if they are invasive (and which invasive plant they may be) or not. It will detect if a plant is either non-invasive (native) or one of the 4 most common invasive species in the US - Wisteria, Japanese Honeysuckle, Japanese Barberry, or Purple Loosestrife. This is meant to help people identify the invasive species around them so they can protect the biodiversity of the local ecosystem.

How we built it

We first scraped images from the internet (because there were no publicly available datasets) and used them to train an ML model with Apple's CreateML framework. We then quickly deployed this model in a swift app using Apple's CoreML SDK. We also had time, and wanted to share the word about Plant Protect, so we created a website

Challenges we ran into

Because our data was collected from google images searches, quality control was paramount and thus we did a lot of manual processing on our data. We also ran into challenges with the fact that some of the plants looked similar to each other, so we kept on searching for more data and changing the model configurations so they worked better.

Accomplishments that we're proud of

Our app's ML model reached 90% validation accuracy on detecting whether a plant was non-invasive or one of the 4 invasive species. We are also proud that we were successfully able to deploy this model into an app and also had spare time to create a website to showcase our work.

What we learned

From Blair Hacks 2022, we learned that we have to be able to quickly adapt to new techniques. For example when building the model, the accuracy was first pretty low in the 80s but by adding more data and trying out different model configurations we could get it up to 90%. We also learned that you should plan ahead what you are going to build (e.x. app UI) before implementing as that is the best way to have cohesive thought processes and executable plans.

What's next for Plant Protect

We hope to release our app on the App Store. We also would like to include more classes of invasive species beyond just the US and perhaps have the model be able to detect objects in an livestream video.

You might also like...
App07 - This is part of the 31 days of small Xcode apps for January 2022
App07 - This is part of the 31 days of small Xcode apps for January 2022

App07 This is part of the 31 days of small Xcode apps for January 2022 Multiplic

WeatherApps - Simple Weather Apps Using Core Location
WeatherApps - Simple Weather Apps Using Core Location

Simple WeatherApps Using Core Location To Get The Actual Position Using API from

A simple confetti view for apps using SwiftUI.
A simple confetti view for apps using SwiftUI.

ConfettiView Create fun animated confetti views with ease! Installation Use Swift Package Manager to install this package: https://github.com/benlmyer

This framework contains SBB (Swiss Federal Railways) UI elements for iOS SwiftUI Apps
This framework contains SBB (Swiss Federal Railways) UI elements for iOS SwiftUI Apps

Framework: Design System Mobile for iOS & SwiftUI This framework contains SBB (Swiss Federal Railways) UI elements for iOS SwiftUI Apps. It allows an

Lockdown is an open source firewall that blocks trackers, ads, and badware in all apps

Lockdown Privacy (iOS) Lockdown is an open source firewall that blocks trackers, ads, and badware in all apps. Product details at lockdownprivacy.com.

Mvi Architecture for SwiftUI Apps. MVI is a unidirectional data flow architecture.
Mvi Architecture for SwiftUI Apps. MVI is a unidirectional data flow architecture.

Mvi-SwiftUI If you like to read this on Medium , you can find it here MVI Architecture for SwiftUI Apps MVI Architecture Model-View-Intent (MVI) is a

Lightweight library helping to embed Mercuryo Widget into their mobile apps

Mercuryo-Widget Mercuryo Widget Wrapper is a lightweight library for developers of apps who embed Mercuryo Widget into their mobile UX. Solely purpose

A simple star rating library for SwiftUI apps on macOS and iOS

DLDRating A simple star rating library for SwiftUI apps on macOS and iOS. Features Installation Usage Styling Credits DLDRating was made by Dionne Lie

Create a beautiful Onabording for your iOS/iPadOS apps in just a few minutes.
Create a beautiful Onabording for your iOS/iPadOS apps in just a few minutes.

Create a beautiful Onabording for your iOS/iPadOS apps in just a few minutes.

Owner
Anish
15-year old developer at Lynbrook High School with interest in machine learning, theory, and web development.
Anish
Super basic iOS app to browse open-source-ios-apps

Super basic iOS app to browse open-source-ios-apps

null 76 Nov 28, 2022
A platform to showcase your side projects/apps

A platform to discuss/showcase your side projects What is this? Inspired by this twitter thread Indie Apps Showcases is a platform for indie app devel

An Tran 25 Dec 27, 2022
An iPhone Simulator "Wrapper" for SwiftUI Apps on macOS

SwiftUIPhone Run a SwiftUI app (or any SwiftUI view) in an iPhone Simulator "wrapper", directly on macOS! To be clear, this is not an iPhone Simulator

Justin Kaufman 7 May 20, 2022
iOS framework for making Turbo native apps

Turbo Native for iOS Note: The Hotwire frameworks are presented in beta form. We're using them all in production with HEY, but expect that significant

Hotwire 493 Jan 1, 2023
Angela Yu iOS tutorials TODO apps practice

Todoey ✓ Our Goal The objective of this tutorial is to understand how to save data in iOS. We'll look at various choices and learn to use UserDefaults

Ferdous 0 Jan 1, 2022
This repository contains code for building Universal Apps with SwiftUI.

MindLikeWater This Repo This repository contains code for building Universal Apps with SwiftUI. The same codebase can be compiled to produce binaries

Jorge D. Ortiz Fuentes 1 Nov 23, 2021
A curated list of Open Source example iOS apps developed in Swift

Example iOS Apps A curated list of Open Source example iOS apps developed in Swift. How to Use Example-iOS-Apps is an amazing list for people who are

null 1 Dec 15, 2021
The demo project to show how to organize code to make SwiftUI apps easy to be test.

TestableApp I combined the idea to use functional programming instead of an loader instance in ModelView(I prefer to think of it as a service) and Res

VictorK 2 Jan 7, 2022
CS193p---Assignments - Assignment Solutions for Stanford CS193p - Developing Apps for iOS

Assignment Solutions for Stanford CS193p - Developing Apps for iOS Note: This is ongoing work Task done Programming Assignment 1 x Programming Assignm

null 0 Jan 12, 2022
Adventures-with-Swift - Building Native iOS Apps with UIKit and SiwftUI 

Adventures with Swift, UIKit, & SwiftUI As I have experience working with React Native and have dabbled a bit with Flutter, I've decided to dive in th

Daniel Stafford 4 Nov 17, 2022