>> Gulf of Mexico, Corpus Christi, Surfing and Sea Life
VIDEO FEED DISPATCH
Mission Objective: Document and analyze the cleanup effort at Corpus Christi’s beach, focusing on turtle-borne trash ingestion patterns.
The Hardware & The Hack
The Pirates in Teepees’ Trash Tracker 3000, a bespoke surveillance system utilizing an old Raspberry Pi 3 Model B+ (RPI) as its brain. We paired it with a Logitech C270 webcam for high-definition video capture and processing.
Build Specifications:
- RPI CPU: quad-core Cortex-A53 @ 1.4 GHz
- RAM: 1 GB LPDDR2 SDRAM
- Storage: SanDisk Ultra Fit USB drive (128GB)
- Camera: Logitech C270, 720p resolution @ 30fps
We employed the OpenCV 3.4 library for real-time object detection and tracking of turtle-borne debris.
Fabrication Steps:
- Printed a custom camera mount using our in-house 3D printer (Prusa i3 MK2) with PLA filament.
gcode -d /home/pi/TurtleCam.gco
Run the following command to update firmware:
sudo rpi-update
reboot
Wiring and Power:
- Camera feed connected via HDMI-to-USB adapter, powered by a 5V USB cable.
- RPI board’s power supply: 5V @ 2A.
Telemetry & Field Analysis
We deployed the TurtleCam system at approximately 14:30 hours, just as a group of volunteers from the local marine conservation society arrived to clean up the beach. Upon analyzing the captured footage, we observed:
- Diamond-shaped marks on plastic debris – turtle bites!
- Ingestion patterns consistent with previously documented research.
- High correlation between trash and sea life entanglement incidents.
Analyzing Video Feed:
To extract relevant data from the video feed, I used OpenCV 3.4’s Python API:
import cv2
# Load pre-trained YOLOv3 model for object detection
net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg")
while True:
# Capture frame-by-frame
ret, frame = cap.read()
if not ret:
break
# Detect objects within the frame using YOLOv3 model
outputs = net.forward(frame)
# Loop through detected objects and display their bounding boxes
for output in outputs[0]:
score = output[5:]
class_id = np.argmax(score)
confidence = score[class_id]
if confidence > 0.5:
label = f"{classes[class_id]}: {confidence:.2f}"
# Draw a rectangle around the detected object
cv2.rectangle(frame, (int(x), int(y)), (int(x + w), int(y + h)),
COLOR_BGR2RGB(255, 0, 0).tolist(), 2)
# Display processed frame and exit on key press
cv2.imshow("Video Feed", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Next Steps:
- Collaborate with marine biologists to analyze the collected data.
- Integrate machine learning algorithms for improved object detection and classification accuracy.
Stay tuned for further updates from Pirates in Teepees’ Trash Tracker 3000!
Additional Resources:
Telemetry visual capture // Node Optical Sensor
Telemetry visual capture // Node Optical Sensor
Telemetry visual capture // Node Optical Sensor