:👏An automated clapperboard detection tool that locates clap points in videos to streamline video editing workflows.
Manual identification of clapper points in raw footage is time-consuming and repetitive, especially when handling large volumes of video. AutoClap was created to automate this process using computer vision, reducing editing time and enabling a more efficient post-production workflow.
This project also serves as a hands-on exploration of building a modular, extensible video-processing pipeline rather than focusing solely on model performance.
-
Automatically detect clapperboards in video footage
-
Convert detected timestamps into precise frame indices
-
Design a detector pipeline that is easily extensible to new models
-
Emphasize clean architecture over one-off scripts
Video Input
↓
Video Sampler (uniform / custom)
↓
Detector Pipeline
↓
Detector Output
↓
OCR Pipeline
↓
Result
poetry
# Clone repository
git clone https://github.com/Eumgill98/AutoClap.git
cd autoclap
# Install dependencies
poetry installpip
pip install git+https://github.com/Eumgill98/AutoClap.gitautoclap
├──core
│ ├──output
│ ├──sampler
├──detector
│ ├──base
│ ├──yolov8
│ └──detector_pipeline.py
├──ocr
│ ├──base
│ ├──paddleocr
│ └──ocr_pipeline.py
└──README.md
from autoclap.detector import DetectorPipeline, YOLOv8Detector
from autoclap.core.sampler import TimeSlidingVideoSampler
from autoclap.ocr import OCRPipeline, PaddleOCRModel
VIDEO_FILE = YOUR_VIDEO_FILE
video_sampler = TimeSlidingVideoSampler(
video = VIDEO_FILE,
batch_size=16,
)
model = YOLOv8Detector(
weight_path=PRETRAINED_MODEL_WEIGHT,
)
d_pipeline = DetectorPipeline(
model= model
)
result = d_pipeline.run(
video_sampler
)
print(result)
print()
# check ocr
result = result[0]
clapper_zone = result.get_clapperboard_zone()
ocr_pipeline = OCRPipeline(model=PaddleOCRModel(device='cpu'))
for (s_time, end_time, presence, bboxes) in clapper_zone:
if presence:
frame = result.get_frame_by_time(s_time)
frame_bbox = (frame, bboxes)
t = ocr_pipeline.run(frames_bboxes=frame_bbox, pad=5)
print(t)- To be added
