Month: February 2025

Abigael Status Report 2/22

Abigael Status Report 2/22

This week, I worked on writing some beginning code for classifying coral health. I am planning on having the code sort samples first by color (blue/pink etc.) and then divide into healthy/unhealthy/at risk. Right now I am still considering the best way to process the 

Team Status Report #3 (2/16-2/22)

Team Status Report #3 (2/16-2/22)

This week, our team presented the design review slides (shout out to Maddie!). We also have been working independently on our specific parts of the project. Emma was successful at setting up the Raspberry Pi and configuring the camera. We took our first photo and 

Maddie Status Report (2/16 – 2/22)

Maddie Status Report (2/16 – 2/22)

The start of my week was focused on preparing to present our design review, which happened Monday and (I think) went well! Since then I have been pretty sick, but was able to – thanks to a cocktail of basically every over-the-counter cold medicine known to man – make some progress on the image recombination algorithm.

 

I decided to start working with OpenCV, as it is more familiar to me and seems to be more well-documented. 

 

I’ve gotten some preliminary code working which is able to recombine images that I’ve broken up manually. I began with simple images, but then started testing with coral reef pictures, and was able to stitch them together successfully.

 

I went on to try and break images up both the vertical and horizontal directions, which failed miserably but brought up some good things for me to think about. Specifically, I realized that OpenCV only seems to support stitching together panoramic images. This doesn’t mean that we won’t be able to create a grid of n x m images, but we will have to be more deliberate about how the initial images are taken and ordered.

 

Additionally, when trying to stitch together 4 images, which were supposed to make up a 2×2 grid, I was given a success exit status from OpenCV, even though the resultant image was wildly incorrect. This brings to mind the need to validate resultant images more accurately than relying on exit codes.

 

Going into next week, I plan do the following::

  • Develop and implement an algorithm that, given a folder of particularly named images, is able to recombine an n x m image.
  • Implement code which more quickly can split up existing images into a folder of test images to combine, since generating tests manually is quite time consuming (I’ve developed the algorithm for this, but need to actually write the code)
  • Run tests to specifically determine how much overlap feature is necessary for success
  • Think about (but not implement yet) a better way to validate resultant images
    • This will be more necessary once we’re combining images taken by our robot, but for now we can just do pixel comparison to the original
  • Investigate the impact of recombination (if any) to image quality
  • (Likely not for next week, but another future consideration) Learn how to edit image metadata to include any necessary data/ordering information needed for recombination later

Going into next week, I am a bit ahead of schedule. This week’s work introduced a minor roadblock in that we won’t be able to automatically recombine images in 2 directions, however, because of my success with OpenCV (and not having to pivot libraries), I believe that I’ll be able to still be on schedule at the end of next week.

Below is an image of a coral reef which has been split up for recombination testing. Each green dot is a key point, which allows for overlap detection.

Emma Hoffman’s Status Report 2/22

Emma Hoffman’s Status Report 2/22

This week I spent time figuring out how to set up the Raspberry Pi. I got the Pi from the ECE inventory but ran into a roadblock when I realized that I needed to upload and customize the OS on the raspberry pi, which required 

Abigael’s Status Report 2/15

Abigael’s Status Report 2/15

This week, I have been away from campus (2/12-2/16) for the UAA conference championships with the swim and dive team. Originally my plan was to set up the underwater camera this week, with next week being the implementation of additional sensors. However, as the parts 

Maddie Status Report (2/9 – 2/15)

Maddie Status Report (2/9 – 2/15)

This week, most of my time was spent creating and preparing to present our design slidedeck. Abie and Emma have been at a swim meet since Tuesday, so I met with Prof Kim on Wednesday and together we refined some details of our design, specifically the movement of the underwater component.

For this component, I found some inspiration from Thingiverse and Printables for both stepper motor spools, and corresponding level wind systems. I will be remixing existing parts in the coming weeks to allow for the underwater component to move up and down. With the help of Prof Kim, I was also able to develop the concept for a rigid guide which guides the underwater component’s tether off of the side of the boat, allowing it to be controlled by the stepper driven spool without compromising the boat’s ability to float. Additionally, this design allows for the underwater component to be retracted to the edge of this rigid part, keeping it from dragging behind the boat during larger movements. During small and slower traversal movements, the part can safely drag behind a little bit, while the rigid part will still reduce this significantly.

Lastly, I spent time this week researching libraries (primarily Python libraries) to support the image recombination feature of our project, allowing for the device’s user to create a comprehensive map of stitched together underwater images. After researching a number of options, I’ve narrowed it down to two contenders: OpenCV and COLMAP; I’ll be writing some test code in the coming week to select the library which best fits our project’s needs.

OpenCV is most familiar to me, as well as is fast and very automated especially when there is image overlap, which we anticipate being the case. One notable weakness of this library is that it can struggle to accurately combine images which have uniform textures or objects. Without testing, we’re not sure if coral reef will be too redundant looking for OpenCV to recombine the images without significant user intervention.

I do not have any prior experience working with COLMAP, but from my research this library seems to greatly support the recombination of unordered images, as well as supports 3D reconstruction. I am interested in the 3D aspects of this library, as this is a feature we didn’t intend to add to the project, but could be a great addition if able to be done upfront and easily. The drawback of this library is that it appears quite computationally heavy, which might break some of our timing-based user requirements. Additionally, this extra computational power may not be worthwhile if our underwater image resolution isn’t good enough for 3D features to be extracted. 

Based on our gantt chart, I am perfectly on schedule and don’t know of any additional risks or hurdles that have been introduced this week!

Note: I pinky promise that I posted this on time, I just had to edit it to add the right tag and it changed the date :/

Team Status Report #2 (2/9-2/15)

Team Status Report #2 (2/9-2/15)

This week our team spent most of our time preparing for the design presentation next week. This involved developing our slidedeck, but, in doing so, also meant that most of our time was spent continuing to research materials and components to order. For the purpose 

Emma Hoffman’s Status Report 2/15

Emma Hoffman’s Status Report 2/15

This week, I worked on finding the materials needed to build the boat. I found a tutorial video of someone using waterproof sealant, window mesh, and foam board to make the boat. He put the foam board together with the sealant to form the boat 

Abigael’s Status Report for 2/8

Abigael’s Status Report for 2/8

This week I looked into the camera for our project and filled out the order form for our team. Originally, I was planning on adapting a GoPro that I already have to use underwater as they can be used to livestream video. However, in Emma’s research on different Arduino systems she found a waterproof Raspberry Pi compatible camera that we were able to order which would be easy to connect and integrate with our system. After that I spent some time watching tutorials on how to use the camera so that when it comes in, I can work with Emma on setting up live streaming. Depending on when the parts come in next week (the temperature/ph sensor, connectors, propellor set, and motor) I will focus on either connecting the camera and sensors to the Arduino and the data transfer process associated with that or jump ahead in my schedule to start working on the ML algorithm for detecting coral bleaching. When I start on the algorithm I would like to first evaluate how I will input the color data from the pictures into the code to best test the algorithm.

Maddie Status Report (2/2 – 2/8)

Maddie Status Report (2/2 – 2/8)

This week, most of my capstone project time was spent designing the mechanism for raising and lowering the underwater component from the boat base. Currently, I’m leaning towards using a stepper motor-driven spool. The mechanism will also have a level wind mechanism, which will make