CMPSC475 Final Project, ArboretumID Application allows users to explore the Penn State Arboretum, identify plants and learn about the exhibits!

Overview

ArboretumID: CMPSC475 Final Project

Taylan Unal (@taylanu)

About ArboretumID

  • ArboretumIdentifier (ArboretumID) is an app that enhances the Penn State Arboretum experience through AR and ML.
  • Using the iPhoneโ€™s camera, ArborIdentifier scans the placard in front of any plant, and delivers rich details and descriptions about it.
  • ArboretumID provides Penn State students, alumni, and visitors of any age the opportunity to explore the incredible collections of plants, flowers, and trees at the Penn State Arboretum in a whole new way!

Features

Home Tab:

  • Describes The Arboretum at Penn State and its Collections
  • Introduces ArborID application

Explore Tab:

  • Uses data from PlantFinder for Plant Attributes to build out Collections
    • Remotely loads images for plants, and provides an 'Image Coming Soon' for plants that do not yet have images available.
  • Shows all 11 Collections with Images at The Arboretum
  • Each Collection has Plants with Images
  • Each Plant has a DetailView showing Image, Name, Location, Taxon Name, Family, Genus

Capture Tab:

  • Uses CoreML pre-trained model to detect and label plants as one of 5 types:
    • Daisy, Dandelion, Rose, Sunflower, Tulip
  • Provides users with 3 Capture Options:
    • Photo Library, Photo Capture, Live Preview
  • Each capture option will return its prediction of what label to assign to an image, and its confidence percentage
  • In the future, more training data and labels can be added to the model to expand its capabilities

Around Me Tab:

  • Provides a SwiftUI Map view of the Arboretum, with annotations on where plants are
  • Displayed annotations can be filtered by Collection
  • User Location Tracking is possible, but is currently disabled.

Preferences Tab:

  • Preferences Tab is currently unused, in the future will be used to sign in to the arboretum, save favorite plants, etc.

Collections/Areas at Arboretum:

  1. Children's Garden
  2. Event Lawn
  3. Fountain Garden
  4. Marsh Meadow
  5. North Terrace
  6. Overlook Pavillion
  7. Oasis Garden
  8. Pollinator's Garden
  9. Parking Lot
  10. Rose and Fragrance Garden
  11. Strolling Garden

Data Sources:

Code References:

@DavidDuarte22 (AVFoundation & Classification) https://github.com/DavidDuarte22/ImageClassification02 @NigelGee (URLImage) https://www.hackingwithswift.com/forums/swiftui/loading-images/3292

Bug Fixes:

You might also like...
A super simple library for state management with unidirectional data flow.
A super simple library for state management with unidirectional data flow.

OneWay ๐Ÿšง OneWay is still experimental. As such, expect things to break and change in the coming months. OneWay is a super simple library for state ma

A sample modulated project to show my knowledge about Swift and Software Development process
A sample modulated project to show my knowledge about Swift and Software Development process

A sample modulated project to show my knowledge about Swift and Software Development process

Eazy is the missing piece in your SwiftUI and UIKit application.

Eazy is the missing piece in your SwiftUI and UIKit application. It aims at harmonizing how your views communicate with the model and vice versa in a clear and consistent way. Eazy can be used on any Apple platform.

Sample iOS application in SwiftUI presenting Redux architecture
Sample iOS application in SwiftUI presenting Redux architecture

SwiftUI-Redux-Demo Sample iOS application in SwiftUI presenting Redux architecture. My full article about Redux in detail you will find here: Redux ar

Realm RxSwift - This application was written in order to use Realm, RxSwift frameworks in real example

Realm_RxSwift This simple app was written to introduce basic operations of some

Dynamic and type-safe framework for building linear and non-linear flows.

FlowKit FlowKit is a dynamic flow framework capable of building a flow, based on conditions and ordered according to a logic of next steps. By using F

Cocoa framework and Obj-C dynamism bindings for ReactiveSwift.
Cocoa framework and Obj-C dynamism bindings for ReactiveSwift.

Reactive extensions to Cocoa frameworks, built on top of ReactiveSwift. โš ๏ธ Looking for the Objective-C API? ๐ŸŽ‰ Migrating from RAC 4.x? ๐Ÿš„ Release Road

RxSwift extentions for Swift optionals and "Occupiable" types

RxOptional RxSwift extentions for Swift optionals and "Occupiable" types. Usage All operators are available on Driver as well unless otherwise marked.

Simple and lightweight Functional Reactive Coding in Swift for the rest of us
Simple and lightweight Functional Reactive Coding in Swift for the rest of us

The simplest ObservableT implementation for Functional Reactive Programming you will ever find. This library does not use the term FRP (Functional R

Owner
Taylan
Learning and Being Curious every day. Solutions Architect @ AWS
Taylan
๐Ÿค– RxSwift + State Machine, inspired by Redux and Elm.

RxAutomaton RxSwift port of ReactiveAutomaton (State Machine). Terminology Whenever the word "signal" or "(signal) producer" appears (derived from Rea

Yasuhiro Inami 719 Nov 19, 2022
Unidirectional State Management Architecture for Swift - Inspired by Vuex and Flux

Unidirectional State Management Architecture for Swift - Inspired by Vuex and Flux Introduction VueFlux is the architecture to manage state with unidi

Ryo Aoyama 324 Dec 17, 2022
๐ŸŸฃ Verge is a very tunable state-management engine on iOS App (UIKit / SwiftUI) and built-in ORM.

Verge.swift ?? An effective state management architecture for iOS - UIKit and also SwiftUI ?? _ An easier way to get unidirectional data flow _ _ Supp

VergeGroup 478 Dec 29, 2022
Predictable state container for Swift too

ReduxSwift ReduxSwift is a minimal Swift port of Redux, a popular JavaScript library for application state management. Functionality Centralized State

Lucas Sunsi Abreu 38 Oct 6, 2020
RxReduce is a lightweight framework that ease the implementation of a state container pattern in a Reactive Programming compliant way.

About Architecture concerns RxReduce Installation The key principles How to use RxReduce Tools and dependencies Travis CI Frameworks Platform Licence

RxSwift Community 125 Jan 29, 2022
Redux for Swift - a predictable state container for Swift apps

Merge / deprecation announcement: ReduxKit and Swift-Flow have joined forces! The result is ReSwift. The nitty gritty: We decided to deprecate ReduxKi

null 613 Jan 3, 2023
MVVM + FLUX iOS Instagram client in Swift, eliminates Massive View Controller in unidirectional event/state flow manner

CZInstagram MVVM + FLUX iOS Instagram client in Swift, eliminates Massive View Controller in unidirectional event/state flow manner. Unidirectional Da

Cheng Zhang 56 Nov 1, 2022
Elegant state machine for Swift.

SwiftState Elegant state machine for Swift. Example enum MyState: StateType { case state0, state1, state2 } // setup state machine let machine = S

ReactKit 885 Dec 16, 2022
๐ŸŒพ Harvest: Apple's Combine.framework + State Machine, inspired by Elm.

NOTE: This repository has been discontinued in favor of Actomaton. ?? Harvest Apple's Combine.framework (from iOS 13) + State Machine, inspired by Elm

Yasuhiro Inami 386 Dec 18, 2022
An experimental time traveling state store for SwiftUI

SwiftUI Time Travel A SwiftUI state store and view that allow you to scrub through an application's state. This is a super rough prototype: it's only

Tim Donnelly 139 Sep 14, 2022