Raspberry Pi Image Processing

The goal of this project is to integrate machine learning with the Raspberry Pi 4, leveraging the computational power of the Intel Neural Compute Stick 2 in order to get sufficient speeds to identify patches of weeds in farm plots.

=Problem Definition= Current computers suffer from being heavy and using high amounts of electricity. This prevents them from being carried by drones, which means that any sort of aerial image recognition is impossible.

=Background= With the advent of artificial intelligence, computers are now able to manage computationally-heavy tasks, such as facial recognition and self-driving vehicles. However, machine learning is typically limited by the processing speed of the computer, and is usually limited to bulky computers that are stationary or draw large amounts of power. The purpose of this project is to demonstrate the viability of machine learning on smaller machines, such as the Raspberry Pi, which could then be used for crop identification via drones. Since big computers are too heavy to be carried by a drone, the extremely light-weight Raspberry Pi would eliminate the problem of weight as well as the problem of high power draw.

=Deliverables=
 * Develop a benchmark for speed comparisons between the Raspberry Pi with the NCS2, and a standard computer with a modern processor and graphics card.
 * Implement a pre-trained artificial neural network with the Raspberry Pi.
 * Use a standard image processing library to process images in real-time.
 * Compare processing times between the computer and the Raspberry Pi.

=Value Proposition Statement= Most modern farmers use small, Kerosene-fueled airplanes to spray pesticides onto their fields. Our goal is to instead, use a small computing system atop a drone to detect weeds and trigger a spraying mechanism in order to save farmers time and money. If successful, modern farmers won’t need to use small airplanes that are dangerous, use fossil fuels, take up space, and pollute the atmosphere. Our weed spraying drone will be easier to store, cost-effective, more accurate, and require brief human interaction. This could improve the quantity as well as quality of foods. Our object detection will allow us to target exact locations that need spraying, so it will reduce the amount of toxic chemicals going into the soil. Our project will be using a raspberry pi to explore the benefits of using smaller computers to do computationally heavy tasks with computer weight limits.

=Design Considerations=
 * Develop a sufficiently light-weight and low-power system.
 * Train a neural network to accurately identify different types of weeds, specifically dandelions, clovers, and grass.
 * Develop a program to interface with the Raspberry Pi remotely.
 * Ensure our model runs quick enough for real-time computations.

=Project Learning=
 * Utilize pre-trained models on the TensorFlow Github, which allows us to get a prototype up and running quicker.
 * See the models here: Models
 * Incorporating the NCS2 with the Raspberry Pi is well-documented and supported by the Raspberry Pi operating system.
 * This tutorial is what we used to get the NCS2 working: OpenCV, NCS2, and the Raspberry Pi

=Final Design= TBA

=Validation=

=Team Members=

Victoria Gehring
Computer Science Student

Hometown: Meridian, ID

Hobbies/Interests: My professional interests include object detection, machine learning, and cyber security. In my free time I enjoy volleyball, camping, and PC building.

Plan for the Future: My plan is to further my understanding of machine learning and object detection to optimize and automate processes.

Email: gehr1898@vandals.uidaho.edu

Jon Gift
Computer Science Student

Hometown: Bend, OR

Hobbies/Interests: I enjoy working with Python and C#, and I have a significant amount of experience with both Raspberry Pi's and the Unity engine. I also like to dance, rock climb, and play guitar.

Plan for the Future: My goal is to work at Intel in Portland and eventually teach computer science someday.

Email: gift7380@vandals.uidaho.edu

Isabel Hinkle
Computer Science Student

Todo

Email: hink0402@vandals.uidaho.edu

Oshan Karki
Computer Science Student

Todo

Email: kark6037@vandals.uidaho.edu

=Additional Documentation=

Project Schedule

Gantt Chart

Meeting Minutes

Meeting Minutes

Presentations

Snapshot

Meeting Agendas

Agendas