Hey all, I'm looking for some advice - I’m delving into a new territory in my programming career and could really use some guidance from experts in the computer vision (CV) and deep learning sectors. While I have a solid foundation in Python, and C++ for embedded devices, I'm a novice in the realms of CV and deep learning, I’ve had a look at OpenCV but nothing in depth yet.
Project Overview:
I'm working on a CV system to be deployed on underwater drones for identifying and precisely localizing specific types of rare underwater flora (e.g., certain species of seashells, seagrass or coral formations). The conditions are variable, with potential low visibility and light. The end goal is not just identification but also detailed mapping, and potential collection of invasive species, which requires exact location coordinates for ecological research and monitoring purposes.
I have several questions regarding this endeavour:
Learning Curve: How challenging is it for someone with no CV background to jump into developing a system for object detection and localization, especially in underwater settings? Are there any resources or tools particularly beneficial for beginners in CV, specifically for Python users?
Real-time Analysis: The drone would be in constant motion, necessitating real-time data processing. What are the main hurdles in integrating real-time image processing and object detection under these conditions? Of course we can slow the drone down when it detects an area of interest to obtain more data.
Approach: Would a deep learning methodology significantly outperform traditional CV techniques in distinguishing specific underwater seashell species or coral types? How steep is the learning curve for deep learning in this specific application? We would be deploying to survey one species at a time – so we could deploy a model that was trained to only recognise the specific target species, we don’t need a generally trained model.
Environmental Challenges: The underwater environment might be murky, with other sea life possibly obstructing the view. How do these factors complicate the image processing and object detection tasks? Are there known strategies or standard practices to mitigate these issues?
Computational Constraints: Given the hardware limitations that come with the drones we use (small ROVs modified to hold a payload, total ROV weight 20kg – something like https://bluerobotics.com/store/rov/bluerov2/ ) , what are the common practices for data processing? Is it practical to process data on the drone in real-time, or should it be transmitted to a more powerful external system for analysis? Ideally we would be able to allow these drones to operate and detect in real time, autonomously and untethered – hence we have a fairly limited power/space requirements (but it’s not tiny – could probably spare 100W max and a moderate volume).
Precision in Localization: The project requires pinpointing the exact location of identified species for mapping purposes. What complexities come into play when combining CV with drone telemetry to achieve precise 3D localization underwater?
Development requirements: Given the above, how feasible is this project at this time in your opinion (I know this is a "how long is a piece of string" question!)? Any specific HW/SW recommendations?
Your thoughts are greatly appreciated, thanks!