# Skeleton Based Continuous Ethiopia Sign Language Recognition
This project adapts the ICCV 2025 SignEval-winning skeleton-based continuous sign language recognition framework for **Ethiopia Sign Language**. The original implementation is based on A Closer Look at Skeleton-based Continuous Sign Language Recognition, which won 1st place in both the Signer-Independent and Unseen Sentences tasks of the ICCV 2025 SignEval 2025 challenge. This implementation is largely built upon VAC and CoSign frameworks.
## Prerequisites
- This project is implemented in Pytorch (better ==2.0.0 to be compatible with ctcdecode or these may exist errors). Thus, please install Pytorch first.
- ctcdecode==0.4 [[parlance/ctcdecode]](
github.com), for beam search decode.
- sclite [[kaldi-asr/kaldi]](
github.com), install the kaldi tool to get sclite for evaluation. After installation, create a soft link to the sclite:
```
mkdir ./software
ln -s PATH_TO_KALDI/tools/sctk-2.4.10/bin/sclite ./software/sclite
```
## Setup Instructions
### CESLR (Ethiopia Sign Language)
1. **Place the dataset** in `./datasets/CESLR-multisigner` (annotations + RGB frames).
2. **Extract Pose86 keypoints** (MediaPipe Holistic, 86 joints per frame):
```
python3 -m venv .venv
source .venv/bin/activate
pip install -r preprocess/ceslr/requirements-pose.txt
python preprocess/ceslr/extract_pose86.py \
--dataset-root ./datasets/CESLR-multisigner \
--output ./datasets/pose_data_ceslr_hands_lips_body.pkl
```
3. **Preprocess annotations** (gloss dict, split info, evaluation STM files):
```
cd ./preprocess/ceslr
python ceslr_process.py
```
4. **Train** on CESLR:
```
python main.py --config ./configs/Double_Cosign_ceslr.yaml
```
### MSLR / Isharah (original competition baseline)
1. **Download the dataset** [[download link]](
kaggle.com) and p …