Skip to main content

a wrapper of DeepLabCut for its ease of use.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dlclib-1.1.0.tar.gz (7.2 kB view details)

Uploaded Source

File details

Details for the file dlclib-1.1.0.tar.gz.

File metadata

  • Download URL: dlclib-1.1.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for dlclib-1.1.0.tar.gz
Algorithm Hash digest
SHA256 947e8ca9fe55124e3e75746a6db66d04480ccb9e3a676be617a8fac8f101aaee
MD5 e4671417ee203294d87fe33086f1347c
BLAKE2b-256 4fab8bf4a535b623e4220fe17a1db3cefd51c43a169c6ba7f2166e3d8609bb7f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page