Skip to main content

python-dlclib

A wrapper of DeepLabCut for its ease of use.

dlclib is supposed to work with almost all single-camera setups of all DLC versions.

Installation

It is better building your DeepLabCut environment first, before running:

$ pip install dlclib

Classes

dlclib.estimate.TFSession

A thin wrapper over the DeepLabCut inference network based on TensorFlow.

  • session = TFSession.from_config(cfg) will return a TFSession object using the specified config.yaml file of the DeepLabCut project.
  • session.get_pose(image) will return a numpy.ndarray corresponding to the estimation. for a batch-processing network, use a list of images, or a 4-D uint8 array whose axis 0 correspond to indexes of images.
  • session.open_writer(path) opens a CSVWriter at the specified path (see below).

dlclib.posture.PostureMapper

A utility class that maps the output of TFSession to a dictionary. Note that the current implementation:

  • does not care anything about conversion speed.

  • currently only supports non-batch models.

  • mapper = PostureMapper.from_config(cfg) will return a PostureMapper object using the specified config.yaml file of the DeepLabCut project.

  • posedict = mapper.map(pose) receives the output of TFSession.get_pose(), and returns a dictionary. posedict[part] is a named tuple that has x, y and prob attributes.

dlclib.writer.CSVWriter

A simple class for writing the estimation into a CSV file. This class does support batch-processing networks.

  • writer = session.open_writer(path) from a TFSession object initializes the writer associated with the inference session.
  • For every video frame, you can call writer.push(frame). It automatically calls TFSession.get_pose() internally, and writes its outputs into the file.
  • Calling writer.flush() will flush the pended video frames (in case of batch modes; it does not wait for more frames and runs get_pose() to writes the estimation).
  • Calling writer.close() will flush its internal buffer, close the file and invalidates itself. You can keep using the originating TFSession object.

This class supports the context-manager model, so you can write:

with session.open_writer(path) as out:
    for frame in video_frames:
        out.push(frame)

License

2020-2021 Keisuke Sehara, the MIT License

Metadata

Release files for dlclib 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dlclib 1.1.0
File Size Uploaded
dlclib-1.1.0.tar.gz 7.2 kB Details

Release files / dlclib-1.1.0.tar.gz

Download URL dlclib-1.1.0.tar.gz
Size 7.2 kB
Tags Source
SHA-256 checksum
How to use checksums
947e8ca9fe55124e3e75746a6db66d04480ccb9e3a676be617a8fac8f101aaee
BLAKE2b-256 checksum
How to use checksums
4fab8bf4a535b623e4220fe17a1db3cefd51c43a169c6ba7f2166e3d8609bb7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.23.0 setuptools/49.6.0.post20200814 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

Release history Release notifications | RSS feed

This release

1.1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page