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 aTFSession
object using the specifiedconfig.yaml
file of the DeepLabCut project.session.get_pose(image)
will return anumpy.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 aPostureMapper
object using the specifiedconfig.yaml
file of the DeepLabCut project. -
posedict = mapper.map(pose)
receives the output ofTFSession.get_pose()
, and returns a dictionary.posedict[part]
is a named tuple that hasx
,y
andprob
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 aTFSession
object initializes the writer associated with the inference session.- For every video frame, you can call
writer.push(frame)
. It automatically callsTFSession.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 runsget_pose()
to writes the estimation). - Calling
writer.close()
will flush its internal buffer, close the file and invalidates itself. You can keep using the originatingTFSession
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 947e8ca9fe55124e3e75746a6db66d04480ccb9e3a676be617a8fac8f101aaee |
|
MD5 | e4671417ee203294d87fe33086f1347c |
|
BLAKE2b-256 | 4fab8bf4a535b623e4220fe17a1db3cefd51c43a169c6ba7f2166e3d8609bb7f |