Getting Started#
This guide will help you set up your environment and understand the tools we’ll be using throughout the course.
Required Tools and Accounts#
Core Tools#
Python: We’ll be using Python 3.8 or higher
Anaconda/Miniconda: For managing Python environments and packages
Git: For version control and accessing course materials
VSCode (recommended) or PyCharm: For code editing and development
Image Annotation Software: For creating training datasets
Roboflow (Easiest and most intuitive, but not a great long-term solution): This web-based annotation platform was used in the pilot class associated with our course.
Create a free account at roboflow.com
Supports multiple annotation types (bounding boxes, polygons, keypoints)
Easy export to common formats (YOLO, COCO, VOC)
Includes data augmentation features
BIIGLE: Open-source annotation tool designed with marine use in mind.
Create a free account at biigle.de
Supports multiple annotation types
Can be self-hosted
Ideal for annotating marine imagery
Great community
Alternative Open Source Options:
LabelImg: Simple, desktop-based tool for bounding boxes
CVAT: Powerful open-source annotation tool
Can be run locally or deployed as a server
Supports multiple annotation types
Good for team collaboration
VGG Image Annotator (VIA): Browser-based tool
No installation required
Works completely offline
Supports points, lines, polygons, and bounding boxes
Label Studio: Open source data labeling tool
Supports multiple data types beyond just images
Can be self-hosted
Has both community and enterprise versions
Required Accounts#
Google Account: For accessing Google Colab
Hugging Face Account: For accessing and sharing models
Join the OceanCV organization on Hugging Face to access our models and contribute your own
Request to join by visiting the organization page and clicking “Request to join”
This will allow you to collaborate on models and datasets with other course participants
GitHub Account: For accessing course materials and contributing
Working Environments#
Option 1: Google Colab (Recommended for Beginners)#
Google Colab provides a free, cloud-based Jupyter notebook environment with GPU support. To use, this is the simplist way to work in the website oceancv.org, especially when displaying resources to large classes:
Navigate to any
.ipynb
file in the courseClick the “Open in Colab” button at the top of the notebook
Save a copy to your Google Drive to preserve your work
Option 2: Local Setup#
To run the course materials locally:
Clone the repository:
git clone https://github.com/atticus-carter/cv.git
cd cv
Create and activate a conda environment:
conda env create -f environment.yml
conda activate cv
Launch Jupyter Lab:
jupyter lab
Option 3: Local Book Build#
To build and view the complete book locally:
Install the required dependencies:
pip install -r requirements.txt
Build the book:
jupyter-book build .
View the book by opening
_build/html/index.html
in your browser
Self-Teaching Guide#
If you’re using this book for self-study rather than as part of a formal class, here’s how to make the most of it:
Lesson Structure#
Most lessons in this book follow a consistent structure:
Overview: A brief introduction to the topic and its relevance to marine computer vision
Learning Objectives: Clear statements of what you should be able to do after completing the lesson
Content: Core concepts and explanations, often with visual examples
Code Examples: Practical implementations demonstrating the concepts
Exercises: Mini challenges to test your understanding
Additional Resources: Links to further reading and related topics
Types of Lessons#
The book contains several types of content:
Markdown (.md) files: Conceptual lessons focused on explaining principles and ideas
Jupyter Notebooks (.ipynb): Interactive lessons with executable code that you can run and modify
Project Files: Complete workflows demonstrating real-world applications
Progressive Learning Path#
The book is organized into chapters that build upon each other:
Chapter 1: Introduces marine imaging and AI fundamentals
Chapter 2: Covers computer vision basics like image annotation and augmentation
Chapter 3: Dives into specific CV techniques (classification, object detection, etc.)
Chapter 4: Guides you through a synthesis project applying what you’ve learned
Working Through Mini Exercises#
Each lesson includes mini exercises that reinforce learning. For most effective self-teaching:
Read through the lesson: Understand the concepts before attempting exercises
Try exercises independently: Attempt to solve problems before looking at solutions
Experiment with code: Modify examples to deepen understanding
Complete end-of-lesson challenges: These consolidate what you’ve learned
Implementation and Practice#
For most beneficial self-learning:
Maintain a personal project: Apply techniques to your own marine imagery dataset
Create implementation notebooks: Document your experiments and findings
Build incrementally: Start with simpler techniques before attempting advanced ones
Review and troubleshoot: Debug issues to build problem-solving skills
Using External Resources#
Supplement your learning with:
Documentation: Refer to official libraries documentation (PyTorch, Tensorflow, etc.)
Academic Papers: Many lessons reference original research papers
Community Forums: Sites like Stack Overflow for troubleshooting
Video Tutorials: For visual explanations of complex concepts
Remember that computer vision is a hands-on field - the more you practice implementing these techniques, the better you’ll understand them.
Development Tools#
Hugging Face Integration#
We’ll be using Hugging Face for model sharing and deployment. Key components:
Transformers Library: For accessing and using pre-trained models
Datasets Library: For accessing and sharing datasets
Model Hub: For sharing trained models with the community
Jupyter Notebooks#
Most lessons are in Jupyter notebook format (
.ipynb
)Can be run in Colab, locally, or viewed in the book
Include both explanatory text and executable code cells
How to Get Help#
Course Issues: Use the GitHub repository’s Issues page
Direct Contact: Email attcart@uw.edu for any help or questions related to the course
GitHub Discussions: Ask questions on the GitHub repository’s Discussions tab for community support
Technical Problems:
Check the Tools Troubleshooting section in the book
Ask questions in the GitHub Discussions
Open an issue with detailed error information
Contributing#
We welcome contributions to improve the course materials! Here’s how:
Report Issues
Use the GitHub Issues page
Include detailed description and steps to reproduce
Add relevant labels (bug, enhancement, documentation, etc.)
Suggest Improvements
Open a discussion on GitHub
Describe your proposed changes
Link to relevant issues or materials
Submit Changes
Fork the repository
Create a new branch for your changes
Make your changes following our style guidelines
Submit a Pull Request with a clear description
Link relevant issues