hl-detection-using-tsa
This repository contains MATLAB code for a Horizon Line Detection algorithm utilizing dynamic ROI generation via Time Series Models (ARIMA and GARCH). The approach offers fast, accurate HL detection in maritime videos, focusing on dynamic environmental conditions and including mechanisms for error correction and ROI adjustment.
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.0%) to scientific vocabulary
Repository
This repository contains MATLAB code for a Horizon Line Detection algorithm utilizing dynamic ROI generation via Time Series Models (ARIMA and GARCH). The approach offers fast, accurate HL detection in maritime videos, focusing on dynamic environmental conditions and including mechanisms for error correction and ROI adjustment.
Basic Info
- Host: GitHub
- Owner: Ahmet-Agaoglu
- License: mit
- Language: MATLAB
- Default Branch: main
- Size: 32.2 KB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
HL-Detection-using-TSA 
Authors
Ahmet Agaoglu, Nezih Topaloglu
Description
This repository contains MATLAB code for Horizon Line (HL) Detection using dynamic ROI generation based on Time Series Models (ARIMA and GARCH). The approach focuses on fast and accurate HL detection in maritime videos, particularly in dynamic environments.
Files Included
The repository includes a MATLAB script and two folders:
- HLDetectTSA.m: This script processes an input video and outputs the estimated Horizon Line state matrix. Each video frame is annotated with a parallelogram ROI (in yellow) and the estimated HL (in red). Run this script to execute the main functionality.
- VIS_Onboard: An empty folder for Onboard Singapore Maritime Dataset videos.
- Buoy: An empty folder for Buoy Dataset videos.
Datasets
The code requires the following datasets:
- Singapore Maritime Dataset (Onboard Segment): Download the Onboard videos into the
~/VIS_Onboardfolder from this link. If using this dataset, please cite: D.K. Prasad, D. Rajan, L. Rachmawati, E. Rajabaly, and C. Quek, "Video Processing from Electro-optical Sensors for Object Detection and Tracking in Maritime Environment: A Survey," IEEE Transactions on Intelligent Transportation Systems (IEEE), 18(8), 1993 - 2016, 2017. - Buoy Dataset: Download the videos into the
~/Buoyfolder from this link. If using this dataset, please cite: S. Fefilatyev, D. Goldgof, M. Shreve, and C. Lembke, “Detection and tracking of ships in open sea with rapidly moving buoy-mounted camera system,” Ocean Eng. 54, 1–12 (2012).
You can add additional datasets to the respective folders as needed.
Installation
- Download the repository to your system.
- Download the Singapore Maritime Dataset Onboard videos into the
~/VIS_Onboardfolder and the Buoy Dataset videos into the~/Buoyfolder using the links above. - Set the downloaded repository folder as the MATLAB working directory. Add the video folders to the MATLAB path.
Dependencies
- MATLAB R2018a or later.
- Required Toolboxes:
- Image Processing Toolbox
- Statistics and Machine Learning Toolbox
- Computer Vision Toolbox
- Econometrics Toolbox
Usage
To run the code, call the function HL_Detect_TSA with the input video name and the number of frames, N, for the listener block.
Example:
For the Singapore Maritime Dataset video
vid_name = 'MVI_0788_VIS_OB.avi', setN = 60.For the Buoy Dataset video
vid_name = 'buoyGT_2_5_3_4.avi', setN = 20.
Expected Output
When you run the script, the output will be a set of annotated video frames where: - The parallelogram ROI will be highlighted in yellow. - The detected horizon line will be shown in red.
Additionally, the function will return a matrix containing the estimated horizon line state for each frame.
Reproducibility
To reproduce the results from the paper:
1. Download and set up the required datasets in the corresponding folders (~/VIS_Onboard, ~/Buoy).
2. Ensure the required MATLAB toolboxes are installed.
3. Run the HL_Detect_TSA.m script with the appropriate dataset and parameters.
4. The resulting horizon line state matrix will be saved for further analysis, and annotated frames will be displayed.
Citation
If you use this code in your research, please cite:
@article{Agaoglu2025, author = {Ahmet Agaoglu and Nezih Topaloglu}, title = {Dynamic region of interest generation for maritime horizon line detection using time series analysis}, journal = {The Visual Computer}, year = {2025}, doi = {10.1007/s00371-024-03767-8}, url = {https://doi.org/10.1007/s00371-024-03767-8}, issn = {1432-2315} }
License
This project is licensed under the MIT License - see the LICENSE file for details.
Owner
- Login: Ahmet-Agaoglu
- Kind: user
- Repositories: 1
- Profile: https://github.com/Ahmet-Agaoglu
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Agaoglu" given-names: "Ahmet" orcid: "https://orcid.org/0000-0001-8139-618X" - family-names: "Topaloglu" given-names: "Nezih" orcid: "https://orcid.org/0000-0003-0525-8900" title: "The source code and datasets of the study Dynamic Region of Interest Generation for Maritime Horizon Line Detection using Time Series Analysis" version: 1.0.0 doi: 10.5281/zenodo.13768684 date-released: 2024-09-16 url: "https://doi.org/10.5281/zenodo.13768684"
GitHub Events
Total
- Watch event: 1
- Push event: 2
Last Year
- Watch event: 1
- Push event: 2