{"id":29224756,"url":"https://github.com/berserk-23115/gpu-specialisation-capstone","last_synced_at":"2026-05-07T06:31:53.543Z","repository":{"id":302492904,"uuid":"1012021535","full_name":"berserk-23115/GPU-Specialisation-Capstone","owner":"berserk-23115","description":"GPU Programming Specialisation Capstone Project submission by Anushk Kumar","archived":false,"fork":false,"pushed_at":"2025-07-02T17:42:15.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-02T17:42:19.746Z","etag":null,"topics":["cpp17","cuda-kernels","cuda-programming","docker","filters","gpu-programming","makefile","nvidia","shell","signal-processing","video-processing"],"latest_commit_sha":null,"homepage":"","language":"Cuda","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berserk-23115.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-01T17:26:52.000Z","updated_at":"2025-07-02T17:42:19.000Z","dependencies_parsed_at":"2025-07-02T17:53:12.622Z","dependency_job_id":null,"html_url":"https://github.com/berserk-23115/GPU-Specialisation-Capstone","commit_stats":null,"previous_names":["berserk-23115/gpu-specialisation-capstone"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/berserk-23115/GPU-Specialisation-Capstone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berserk-23115%2FGPU-Specialisation-Capstone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berserk-23115%2FGPU-Specialisation-Capstone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berserk-23115%2FGPU-Specialisation-Capstone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berserk-23115%2FGPU-Specialisation-Capstone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berserk-23115","download_url":"https://codeload.github.com/berserk-23115/GPU-Specialisation-Capstone/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berserk-23115%2FGPU-Specialisation-Capstone/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263271499,"owners_count":23440396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp17","cuda-kernels","cuda-programming","docker","filters","gpu-programming","makefile","nvidia","shell","signal-processing","video-processing"],"created_at":"2025-07-03T06:07:53.197Z","updated_at":"2026-05-07T06:31:53.431Z","avatar_url":"https://github.com/berserk-23115.png","language":"Cuda","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CUDA Real-time Video Processor\n\nA GPU-accelerated application for real-time video processing, enhancement, and analysis using CUDA.\n\n## Overview\n\nThis capstone project demonstrates the power of GPU computing for real-time video processing. The application leverages CUDA to perform computationally intensive operations on video frames in parallel, achieving significant performance improvements compared to CPU-based processing.\n\nKey features:\n\n- Multiple GPU-accelerated image filters (blur, sharpen, edge detection, emboss, sepia, etc.)\n- Real-time video processing from files or camera input\n- Advanced visual effects like thermal vision and night vision simulation\n- Motion detection between consecutive frames\n- Optical flow visualization\n- Simple object detection\n- Batch processing for higher throughput\n- Performance benchmarking tools\n\n## Requirements\n\n- NVIDIA CUDA Toolkit (11.0+)\n- OpenCV 4.x\n- C++17 compatible compiler\n- CMake 3.10+\n\n## Installation\n\n### Option 1: Building from Source\n\n1. Clone this repository:\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd GPU-Specialisation-Capstone\n   ```\n\n2. Create a build directory and compile:\n   ```bash\n   ./build.sh\n   ```\n   \n   Or manually:\n   ```bash\n   mkdir -p build\n   cd build\n   cmake ..\n   make -j$(nproc)\n   ```\n\n### Option 2: Using Docker\n\nA Dockerfile is provided for containerized development and execution:\n\n```bash\ndocker build -t cuda-video-processor .\ndocker run --gpus all -it --rm cuda-video-processor\n```\n\n## Usage\n\nThe application supports various command-line arguments:\n\n```bash\n./video_processor [options]\n```\n\n### Options\n\n- `--input \u003csource\u003e`: Input source (video file path or camera index)\n- `--output \u003cfilename\u003e`: Output video file (optional)\n- `--filter \u003cfilter_type\u003e`: Filter to apply (default: none)\n- `--transform \u003ctransform\u003e`: Transform to apply (default: none)\n- `--intensity \u003cvalue\u003e`: Filter intensity (0.0-1.0, default: 0.5)\n- `--detect-motion`: Enable motion detection\n- `--optical-flow`: Enable optical flow visualization\n- `--detect-objects`: Enable simple object detection\n- `--benchmark`: Run performance benchmark\n- `--batch-size \u003csize\u003e`: Batch processing size (default: 1)\n- `--help`: Display help message\n\n### Available Filters\n\n- `none`: No filter\n- `blur`: Gaussian blur\n- `sharpen`: Sharpen effect\n- `edge_detect`: Edge detection\n- `emboss`: Emboss effect\n- `sepia`: Sepia tone\n- `grayscale`: Grayscale conversion\n- `negative`: Color inversion\n- `cartoon`: Cartoon effect\n- `sketch`: Sketch effect\n- `night_vision`: Night vision effect\n- `thermal`: Thermal vision effect\n\n### Available Transformations\n\n- `none`: No transformation\n- `rotate_90`: Rotate image by 90 degrees\n- `rotate_180`: Rotate image by 180 degrees\n- `rotate_270`: Rotate image by 270 degrees\n- `flip_h`: Flip horizontally\n- `flip_v`: Flip vertically\n\n### Examples\n\nProcess a video file with a blur filter:\n```bash\n./video_processor --input input_video.mp4 --output output_video.mp4 --filter blur --intensity 0.7\n```\n\nUse camera input with thermal vision effect:\n```bash\n./video_processor --input 0 --filter thermal --intensity 0.8\n```\n\nEnable motion detection with edge detection filter:\n```bash\n./video_processor --input input_video.mp4 --filter edge_detect --detect-motion\n```\n\nRun performance benchmark:\n```bash\n./video_processor --input input_video.mp4 --benchmark\n```\n\n## How it Works\n\n### CUDA-Accelerated Processing Pipeline\n\n1. **Frame Acquisition**: Frames are captured from video files or camera.\n2. **GPU Transfer**: Frame data is transferred to the GPU memory.\n3. **Parallel Processing**: Each pixel is processed in parallel using thousands of CUDA threads.\n4. **Filter Application**: Mathematical operations are applied to transform pixel values.\n5. **Result Transfer**: Processed frames are transferred back to CPU memory.\n6. **Display/Storage**: Results are displayed in real-time and/or saved to disk.\n\n### CUDA Kernels\n\nThe project implements various CUDA kernels for different image processing tasks:\n\n- **Convolution Kernel**: Applies convolution filters (blur, sharpen, edge detection, etc.)\n- **Color Transformation Kernels**: Applies specialized color effects (sepia, grayscale, etc.)\n- **Motion Detection Kernel**: Computes differences between consecutive frames\n- **Special Effect Kernels**: Implements complex effects like thermal vision and night vision\n\n## Performance\n\nThe GPU acceleration provides significant performance improvements over CPU-based implementations:\n\n- Processing HD video (1920x1080) in real-time at 30+ FPS\n- 10-20x speedup compared to equivalent CPU implementation\n- Efficient batch processing for higher throughput\n\nActual performance depends on GPU specifications, filter complexity, and frame resolution.\n\n## Future Improvements\n\n- Advanced object detection and tracking using CUDA-accelerated ML models\n- Deep learning-based video enhancement\n- Support for multiple GPU devices\n- Hardware-accelerated video encoding/decoding\n- More complex visual effects and transformations\n\n## License\n\n[MIT License](LICENSE) ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberserk-23115%2Fgpu-specialisation-capstone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberserk-23115%2Fgpu-specialisation-capstone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberserk-23115%2Fgpu-specialisation-capstone/lists"}