Inspiration

During a brainstorming session, one of our team members mentioned how they were chased by a goose while walking on campus. Of course, we decided to take this story to its logical conclusion.

If we could track in real-time where geese were on campus, then perhaps people could avoid getting harassed by them.

What it does

Flock allows users to upload images of geese on campus to our server, which detects the number of geese in the photo and displays it to the user. Afterwards, Flock adds an indicator on the built-in map system to display where nearby geese are.

How we built it

We built Flock using Flutter for the front-end; Node.JS, and Express.JS as a server and file system; Custom Vision to develop and train our object recognition model; Tensorflow to implement the model; and Google Cloud to run the server.

Challenges we ran into

Initially, there were issues on how to integrate the camera and map correctly within the app. Later, we had trouble uploading images to our object recognition model. After solving this problem, we realized there were problems with properly drawing boxes around detected geese (so that users could confirm the number of geese detected). We weren’t sure if the model was wrong, or if the box drawing was broken.

Accomplishments that we're proud of

We’re proud of how accurate our geese detection is, given the time constraints. The addition of boxes surrounding geese really adds a nice touch to the final product.

We had fun designing the splash page for the app, and coming up with many unique project name ideas.

The app is designed to be very simple to use, only requiring the user to take a picture or upload an image. The burden of goose detection can be left to our server!

What we learned

Taking a “good” picture of a goose is hard. We quickly realized that using online geese pictures was easier for the training set.

Mobile app development is not as easy as it seems. Having a physical phone to test apps is much more convenient (and quicker) than emulating on a laptop.

We shifted from our original goal, as we realized trying to apply face detection on geese is not easy, and unnecessary. So we reduced a lot of our more fantastical ideas into more realistic ones.

What's next for Flock

There should be a heat map of geese frequency to show more digestible information to users. Also, appearances of geese should gradually disappear from the live map (perhaps ranging from a few hours to a full day). Geese frequency data should be cached such that historical data is available for viewing and analysis.

We’d love to add more customizable goose pin icons - color, border, shadow, and more. Furthermore, a “goose picture of the day” could pop up when the user opens the app for the first time that day.

Share this project:

Updates