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 - .ipynbfile in the course
- Click 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.htmlin 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 
 
