Goal
There are various handshape datasets for Sign Language. However:
- Each dataset has its own format and many are hard to find.
- Each dataset has its own mapping of handshapes to classes. While signs depend on the specific Sign Language for a country/region, handshapes are universal. Hence, they could be shared between datasets/tasks.
This library aims to provide two main features:
- A simplified API to download and load handshape datasets
- A mapping between datasets so that datasets can be merged for training/testing models.
This library is a work in progress. Contributions are welcome. If you wish to add a dataset you can make a push request or open an issue.
Installation
You can install handshape_datasets via pip with:
pip install handshape_datasets
Basic usage
Simply import the module and load a dataset. The following downloads, preprocesses and load to memory the LSA16 dataset:
import handshape_datasets as hd
images,metadata = hd.load("lsa16")
Afterwards you can, for example, plot the first images of the dataset
import matplotlib.pyplot as plt
plt.imshow(images[0,:,:,:]) # show the first sample of the dataset
Advanced usage
import handshape_datasets as hd
hd.list_datasets() # List available datasets
hd.load("lsa16",version="color",delete=True) # use the color version, delete temporary files
hd.delete_temporary_files("lsa16")# Delete temporary files (if any)
hd.clear("lsa16") # Delete all the local files for dataset LSA16
hd.info("lsa16") # Shows detailed info of the dataset, including url, data format, fields, etc.
Supported datasets
| Dataset id | Download size | Size on disk | Samples | Classes |
|---|---|---|---|---|
| lsa16 | 640.6 Kb | 1.2 Mb | 800 | 16 |
| rwth | 44.8 Mb | 206.8 Mb | 3359 | 45 |
| Irish | 173.4 Mb | 515.0 Mb | 58114 | 26 |
| Ciarp | 10.6 Mb | 18.6 Mb | 7127 | 10 |
| PugeaultASL_A | 2.1 Gb | 4.3 Gb | 65774 | 24 |
| PugeaultASL_B | 317.4 Mb | 717.9 Mb | 72676 | 26 |
| indianA | 1.7 Gb | 1.9 Gb | 5040 | 140 |
| indianB | 320.5 Mb | 8.6 Gb | 5000 | 140 |
| Nus1 | 2.8 Mb | 3.6 Mb | 479 | 10 |
| Nus2 | 73.7 Mb | 106.1 Mb | 2750 | 10 |
| jsl | 4.5 Mb | 7.9 Mb | 8055 | 41 |
| psl | 285.2 Mb | 1.2 Gb | 960 | 16 |
You can find more information about the datasets in the following sign language dataset survey
Training a handshape classifier with Keras
Load the dataset:
x,metadata = handshape_datasets.load("lsa16")
y = metadata["y"]
Get the input_shape and number of classes:
input_shape = x[0].shape
classes = y.max() + 1
Define a model (using a pretrained MobileNet here):
base_model = keras.applications.mobilenet.MobileNet(input_shape=(input_shape[0],input_shape[1],3),
weights='imagenet', include_top=False)
output = keras.layers.GlobalAveragePooling2D()(base_model.output)
output = keras.layers.Dense(32, activation='relu')(output)
output = keras.layers.Dense(classes, activation='softmax')(output)
model = Model(inputs=base_model.input, outputs=output)
model.compile(optimizer='Adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Split the dataset intro train/test sets:
X_train, X_test, Y_train, Y_test = sklearn.model_selection.train_test_split(x,y,
test_size=0.9,
stratify=y)
Fit the model
history = model.fit(X_train, Y_train, batch_size=self.batch_size, epochs=self.epochs, validation_data=(X_test, Y_test))
Google Colab example:
https://colab.research.google.com/drive/1kY-YrbegGFVT7NqVaeA4RjXYRVlZiISR?usp=sharing
Metadata
Release files for handshape-datasets 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| handshape_datasets-0.2.1.tar.gz | 9.7 kB | Without provenance | Details for handshape_datasets-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| handshape_datasets-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for handshape_datasets-0.2.1-py3-none-any.whl |
Total release size: 18.4 kB
Release files / handshape_datasets-0.2.1.tar.gz
| Download URL | handshape_datasets-0.2.1.tar.gz |
|---|---|
| Size | 9.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
19fcc3b7133261c1e8d98dc921d513a716fb1fa9120d91151415c12c93a56035
|
|
BLAKE2b-256 checksum How to use checksums |
005a7262b101cb47982828c91fd42d992e95cd9352fe81ea7f35667d65c79665
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.10
|
Release files / handshape_datasets-0.2.1-py3-none-any.whl
| Download URL | handshape_datasets-0.2.1-py3-none-any.whl |
|---|---|
| Size | 8.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
80fd0224d30df4a4c61a58acdaff0359faa7fae48e5198795ef074734eb04b9b
|
|
BLAKE2b-256 checksum How to use checksums |
241705f6a3776027cdb93aaa813cfd87af17425913f88631d618ee356e215f8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.10
|
Security for handshape-datasets 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.