This is project statement 15-23
In recreational fisheries, it's common for well-intentioned amateurs to violate regulations because they have mis-identified their catch. Potentially, techniques similar to those used in facial-recognition could be used to identify species of fish. 'Fishal' recognition? If it were possible, anglers could correctly follow the regs, and the data, with GPS coordinates, could supplement scientific surveys.
How could we identify a fish species at sea with minimal user participation using a mobile phone or tablet?
How it works:
The app associates location data with known species located (accessed through the fishnet2.net API ([special thanks to Nelson E. Rios at Tulane for the quick API key]) in the area and then queries the user with simplified questions to help determine what species the user could be looking at. The app then shows the user pictures of possible species to choose from.
Challenges I ran into:
Some APIs are still works in progress and their generous developers had to be contacted to continue the project. In order to determine which questions to ask the user to narrow the database we needed two things: while Fishbase stores the morphological data we need, its API is still in development and thus we could not access it to make determinations; and while we came up with a few categories, it would be helpful to talk with an ichthyologist about which determinations would be most meaningful to classification. In making the application more global, we encountered a list of common names for fish in many languages from around the world that we would have liked to implement, but due to the underdevelopment of the Fishbase API, we could not access it. We were able to contact the developer of the Fishbase API (Scott Chamberlain [https://github.com/sckott]), and we intend to make these suggestions to him for the future use of the API. To provide better location data in open water we would have liked to have access to a vector map of major bodies of water, but we could not find one that was in a format that was easy to implement. If we could get that data we could have implemented a k-d tree to compute the location of the user relative to the body of water.
Accomplishments that I'm proud of:
We started by mocking a small database of fish that were in an aquarium across from our table. After awhile we decided to implement data from fishbase.org and fishnet2.net. Because we chose to do that, scaling the application should be fairly straight forward, as we are already working with real world data sets of tens of thousands of fish. In addition our geolocation data already works on phones and computers, and we allow a search by name of area. This app is already very powerful, and with a little more development could be made even more powerful.
What I learned:
Open access to scientific data is a very valuable resource that should be encouraged, and JSON is beautiful.
What's next for Fishy: Species Identifier:
Integrating the store of data from Fishbase to display important ecological data about an identified fish, and collecting data from as fish are identified.