Code Monkey home page Code Monkey logo

deeplabcut-live's Introduction

DeepLabCut-live! SDKDLC LIVE!

Code style: black PyPI - Python Version Downloads Downloads Python package GitHub stars GitHub forks Image.sc forum Gitter Twitter Follow

This package contains a DeepLabCut inference pipeline for real-time applications that has minimal (software) dependencies. Thus, it is as easy to install as possible (in particular, on atypical systems like NVIDIA Jetson boards).

Performance: If you would like to see estimates on how your model should perform given different video sizes, neural network type, and hardware, please see: https://deeplabcut.github.io/DLC-inferencespeed-benchmark/

If you have different hardware, please consider submitting your results too! https://github.com/DeepLabCut/DLC-inferencespeed-benchmark

What this SDK provides: This package provides a DLCLive class which enables pose estimation online to provide feedback. This object loads and prepares a DeepLabCut network for inference, and will return the predicted pose for single images.

To perform processing on poses (such as predicting the future pose of an animal given it's current pose, or to trigger external hardware like send TTL pulses to a laser for optogenetic stimulation), this object takes in a Processor object. Processor objects must contain two methods: process and save.

  • The process method takes in a pose, performs some processing, and returns processed pose.
  • The save method saves any valuable data created by or used by the processor

For more details and examples, see documentation here.

🔥🔥🔥🔥🔥 Note :: alone, this object does not record video or capture images from a camera. This must be done separately, i.e. see our DeepLabCut-live GUI.🔥🔥🔥

News!

Installation:

Please see our instruction manual to install on a Windows or Linux machine or on a NVIDIA Jetson Development Board. Note, this code works with tensorflow (TF) 1 or TF 2 models, but TF requires that whatever version you exported your model with, you must import with the same version (i.e., export with TF1.13, then use TF1.13 with DlC-Live; export with TF2.3, then use TF2.3 with DLC-live).

  • available on pypi as: pip install deeplabcut-live

Note, you can then test your installation by running:

dlc-live-test

If installed properly, this script will i) create a temporary folder ii) download the full_dog model from the DeepLabCut Model Zoo, iii) download a short video clip of a dog, and iv) run inference while displaying keypoints. v) remove the temporary folder.

DLC LIVE TEST

Quick Start: instructions for use:

  1. Initialize Processor (if desired)
  2. Initialize the DLCLive object
  3. Perform pose estimation!
from dlclive import DLCLive, Processor
dlc_proc = Processor()
dlc_live = DLCLive(<path to exported model directory>, processor=dlc_proc)
dlc_live.init_inference(<your image>)
dlc_live.get_pose(<your image>)

DLCLive parameters:

  • path = string; full path to the exported DLC model directory
  • model_type = string; the type of model to use for inference. Types include:
    • base = the base DeepLabCut model
    • tensorrt = apply tensor-rt optimizations to model
    • tflite = use tensorflow lite inference (in progress...)
  • cropping = list of int, optional; cropping parameters in pixel number: [x1, x2, y1, y2]
  • dynamic = tuple, optional; defines parameters for dynamic cropping of images
    • index 0 = use dynamic cropping, bool
    • index 1 = detection threshold, float
    • index 2 = margin (in pixels) around identified points, int
  • resize = float, optional; factor by which to resize image (resize=0.5 downsizes both width and height of image by half). Can be used to downsize large images for faster inference
  • processor = dlc pose processor object, optional
  • display = bool, optional; display processed image with DeepLabCut points? Can be used to troubleshoot cropping and resizing parameters, but is very slow

DLCLive inputs:

  • <path to exported model directory> = path to the folder that has the .pb files that you acquire after running deeplabcut.export_model
  • <your image> = is a numpy array of each frame

Benchmarking/Analyzing your exported DeepLabCut models

DeepLabCut-live offers some analysis tools that allow users to peform the following operations on videos, from python or from the command line:

  1. Test inference speed across a range of image sizes, downsizing images by specifying the resize or pixels parameter. Using the pixels parameter will resize images to the desired number of pixels, without changing the aspect ratio. Results will be saved (along with system info) to a pickle file if you specify an output directory.
python
dlclive.benchmark_videos('/path/to/exported/model', ['/path/to/video1', '/path/to/video2'], output='/path/to/output', resize=[1.0, 0.75, '0.5'])
command line
dlc-live-benchmark /path/to/exported/model /path/to/video1 /path/to/video2 -o /path/to/output -r 1.0 0.75 0.5
  1. Display keypoints to visually inspect the accuracy of exported models on different image sizes (note, this is slow and only for testing purposes):
python
dlclive.benchmark_videos('/path/to/exported/model', '/path/to/video', resize=0.5, display=True, pcutoff=0.5, display_radius=4, cmap='bmy')
command line
dlc-live-benchmark /path/to/exported/model /path/to/video -r 0.5 --display --pcutoff 0.5 --display-radius 4 --cmap bmy
  1. Analyze and create a labeled video using the exported model and desired resize parameters. This option functions similar to deeplabcut.benchmark_videos and deeplabcut.create_labeled_video (note, this is slow and only for testing purposes).
python
dlclive.benchmark_videos('/path/to/exported/model', '/path/to/video', resize=[1.0, 0.75, 0.5], pcutoff=0.5, display_radius=4, cmap='bmy', save_poses=True, save_video=True)
command line
dlc-live-benchmark /path/to/exported/model /path/to/video -r 0.5 --pcutoff 0.5 --display-radius 4 --cmap bmy --save-poses --save-video

License:

This project is licensed under the GNU AGPLv3. Note that the software is provided "as is", without warranty of any kind, express or implied. If you use the code or data, we ask that you please cite us! This software is available for licensing via the EPFL Technology Transfer Office (https://tto.epfl.ch/, [email protected]).

Community Support, Developers, & Help:

This is an actively developed package and we welcome community development and involvement.

Reference:

If you utilize our tool, please cite Kane et al, eLife 2020. The preprint is available here: https://www.biorxiv.org/content/10.1101/2020.08.04.236422v2

@Article{Kane2020dlclive,
  author    = {Kane, Gary and Lopes, Gonçalo and Sanders, Jonny and Mathis, Alexander and Mathis, Mackenzie},
  title     = {Real-time, low-latency closed-loop feedback using markerless posture tracking},
  journal   = {eLife},
  year      = {2020},
}

deeplabcut-live's People

Contributors

alexemg avatar dependabot[bot] avatar eggplants avatar feri73 avatar gkane26 avatar hausmanns avatar jeylau avatar mmathislab avatar n-poulsen avatar ramonhollands avatar sneakers-the-rat avatar songys96 avatar stes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deeplabcut-live's Issues

list index out of range

hello,
after i import my own model,which is pose_cfg.yaml, when running this model,it reports an error out of index range.
can anyone answer this question ?
thanks in advance
problem

using deeplabcutlive

Friends in the community, how are you? I want to ask

  1. How do I use DeeplabCutLive? How do I mark each frame of the video for training, extract each frame of the video, mark and train the same as before deeplabcut (enter some commands on the command line)?
  2. What is the frame rate of deeplabCutLive?
    I really want someone to answer that. Thank you

FileNotFoundError: The pose configuration file for the exported model at DLC_Dog_resnet_50_iteration-0_shuffle-0\pose_cfg.yaml was not found. Please check the path to the exported model directory

Hello my name is Rim, currently I am working with deepLabCut live. I wonder if you can help me with followed questions.
I followed the installation instructions for Windows10. I get :

(dlc-live) C:\Users\limli\Desktop\DeepLabCut\DeepLabCut-live-master\DeepLabCut-live-master>dlc-live-test
C:\Users\limli\anaconda3\envs\dlc-live\lib\site-packages\tensorflow\python\framework\dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
C:\Users\limli\anaconda3\envs\dlc-live\lib\site-packages\tensorflow\python\framework\dtypes.py:527: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
C:\Users\limli\anaconda3\envs\dlc-live\lib\site-packages\tensorflow\python\framework\dtypes.py:528: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
C:\Users\limli\anaconda3\envs\dlc-live\lib\site-packages\tensorflow\python\framework\dtypes.py:529: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
C:\Users\limli\anaconda3\envs\dlc-live\lib\site-packages\tensorflow\python\framework\dtypes.py:530: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
C:\Users\limli\anaconda3\envs\dlc-live\lib\site-packages\tensorflow\python\framework\dtypes.py:535: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])

Creating temporary directory...

Downloading full_dog model from the DeepLabCut Model Zoo...
tar: Error opening archive: Failed to open '\\.\tape0'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0  174M    0  4108    0     0   4108      0 12:23:47 --:--:-- 12:23:47  8470
curl: (23) Failed writing body (2908 != 2920)

 Running inference...

https://github.com/DeepLabCut/DeepLabCut-live/blob/master/check_install/dog_clip.avi?raw=True\dog_clip.avi

Run 1 / 1

Traceback (most recent call last):
  File "C:\Users\limli\anaconda3\envs\dlc-live\Scripts\dlc-live-test-script.py", line 33, in <module>
    sys.exit(load_entry_point('deeplabcut-live==0.0.3', 'console_scripts', 'dlc-live-test')())
  File "C:\Users\limli\anaconda3\envs\dlc-live\lib\site-packages\dlclive\check_install\check_install.py", line 38, in main
    benchmark_videos(model_dir, video_file, display=True, resize=0.5, pcutoff=0.25)
  File "C:\Users\limli\anaconda3\envs\dlc-live\lib\site-packages\dlclive\benchmark.py", line 644, in benchmark_videos
    output=output,
  File "C:\Users\limli\anaconda3\envs\dlc-live\lib\site-packages\dlclive\benchmark.py", line 301, in benchmark
    display_cmap=cmap,
  File "C:\Users\limli\anaconda3\envs\dlc-live\lib\site-packages\dlclive\dlclive.py", line 150, in __init__
    self.read_config()
  File "C:\Users\limli\anaconda3\envs\dlc-live\lib\site-packages\dlclive\dlclive.py", line 164, in read_config
    f"The pose configuration file for the exported model at {cfg_path} was not found. Please check the path to the exported model directory"
FileNotFoundError: The pose configuration file for the exported model at DLC_Dog_resnet_50_iteration-0_shuffle-0\pose_cfg.yaml was not found. Please check the path to the exported model directory

Thank you very much for the help.

FileNotFoundError: The pose configuration file for the exported model at DLC_Dog_resnet_50_iteration-0_shuffle-0/pose_cfg.yaml was not found. Please check the path to the exported model directory

Thanks a lot for the great research work.

I followed all the given instruction however I got the following error:

$ conda create -n dlc-live python=3.7 tensorflow-gpu==1.13.1 # if using GPU
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.8.3
  latest version: 4.8.5

Please update conda by running

    $ conda update -n base -c defaults conda



## Package Plan ##

  environment location: /home/mona/anaconda3/envs/dlc-live

  added / updated specs:
    - python=3.7
    - tensorflow-gpu==1.13.1


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _tflow_select-2.1.0        |              gpu           2 KB
    absl-py-0.10.0             |           py37_0         169 KB
    astor-0.8.1                |           py37_0          47 KB
    c-ares-1.16.1              |       h7b6447c_0         108 KB
    ca-certificates-2020.7.22  |                0         125 KB
    cudatoolkit-10.0.130       |                0       261.2 MB
    cudnn-7.6.5                |       cuda10.0_0       165.0 MB
    cupti-10.0.130             |                0         1.5 MB
    gast-0.4.0                 |             py_0          15 KB
    grpcio-1.31.0              |   py37hf8bcb03_0         2.0 MB
    h5py-2.10.0                |   py37hd6299e0_1         902 KB
    hdf5-1.10.6                |       hb1b8bf9_0         3.7 MB
    intel-openmp-2020.2        |              254         786 KB
    keras-applications-1.0.8   |             py_1          29 KB
    keras-preprocessing-1.1.0  |             py_1          37 KB
    libprotobuf-3.13.0         |       hd408876_0         2.0 MB
    markdown-3.2.2             |           py37_0         118 KB
    mkl-2020.2                 |              256       138.3 MB
    mkl_fft-1.2.0              |   py37h23d657b_0         148 KB
    numpy-1.19.1               |   py37hbc911f0_0          21 KB
    numpy-base-1.19.1          |   py37hfa32c7d_0         4.1 MB
    pip-20.2.2                 |           py37_0         1.8 MB
    protobuf-3.13.0            |   py37hf484d3e_0         633 KB
    python-3.7.9               |       h7579374_0        45.3 MB
    scipy-1.5.2                |   py37h0b6359f_0        14.3 MB
    setuptools-49.6.0          |           py37_0         754 KB
    sqlite-3.33.0              |       h62c20be_0         1.1 MB
    tensorboard-1.13.1         |   py37hf484d3e_0         3.1 MB
    tensorflow-1.13.1          |gpu_py37hc158e3b_0           4 KB
    tensorflow-base-1.13.1     |gpu_py37h8d69cac_0       130.2 MB
    tensorflow-estimator-1.13.0|             py_0         181 KB
    tensorflow-gpu-1.13.1      |       h0d30ee6_0           3 KB
    termcolor-1.1.0            |           py37_1           8 KB
    wheel-0.35.1               |             py_0          37 KB
    ------------------------------------------------------------
                                           Total:       777.7 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main
  _tflow_select      pkgs/main/linux-64::_tflow_select-2.1.0-gpu
  absl-py            pkgs/main/linux-64::absl-py-0.10.0-py37_0
  astor              pkgs/main/linux-64::astor-0.8.1-py37_0
  blas               pkgs/main/linux-64::blas-1.0-mkl
  c-ares             pkgs/main/linux-64::c-ares-1.16.1-h7b6447c_0
  ca-certificates    pkgs/main/linux-64::ca-certificates-2020.7.22-0
  certifi            pkgs/main/linux-64::certifi-2020.6.20-py37_0
  cudatoolkit        pkgs/main/linux-64::cudatoolkit-10.0.130-0
  cudnn              pkgs/main/linux-64::cudnn-7.6.5-cuda10.0_0
  cupti              pkgs/main/linux-64::cupti-10.0.130-0
  gast               pkgs/main/noarch::gast-0.4.0-py_0
  grpcio             pkgs/main/linux-64::grpcio-1.31.0-py37hf8bcb03_0
  h5py               pkgs/main/linux-64::h5py-2.10.0-py37hd6299e0_1
  hdf5               pkgs/main/linux-64::hdf5-1.10.6-hb1b8bf9_0
  importlib-metadata pkgs/main/linux-64::importlib-metadata-1.7.0-py37_0
  intel-openmp       pkgs/main/linux-64::intel-openmp-2020.2-254
  keras-applications pkgs/main/noarch::keras-applications-1.0.8-py_1
  keras-preprocessi~ pkgs/main/noarch::keras-preprocessing-1.1.0-py_1
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.33.1-h53a641e_7
  libedit            pkgs/main/linux-64::libedit-3.1.20191231-h14c3975_1
  libffi             pkgs/main/linux-64::libffi-3.3-he6710b0_2
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
  libgfortran-ng     pkgs/main/linux-64::libgfortran-ng-7.3.0-hdf63c60_0
  libprotobuf        pkgs/main/linux-64::libprotobuf-3.13.0-hd408876_0
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0
  markdown           pkgs/main/linux-64::markdown-3.2.2-py37_0
  mkl                pkgs/main/linux-64::mkl-2020.2-256
  mkl-service        pkgs/main/linux-64::mkl-service-2.3.0-py37he904b0f_0
  mkl_fft            pkgs/main/linux-64::mkl_fft-1.2.0-py37h23d657b_0
  mkl_random         pkgs/main/linux-64::mkl_random-1.1.1-py37h0573a6f_0
  mock               pkgs/main/noarch::mock-4.0.2-py_0
  ncurses            pkgs/main/linux-64::ncurses-6.2-he6710b0_1
  numpy              pkgs/main/linux-64::numpy-1.19.1-py37hbc911f0_0
  numpy-base         pkgs/main/linux-64::numpy-base-1.19.1-py37hfa32c7d_0
  openssl            pkgs/main/linux-64::openssl-1.1.1g-h7b6447c_0
  pip                pkgs/main/linux-64::pip-20.2.2-py37_0
  protobuf           pkgs/main/linux-64::protobuf-3.13.0-py37hf484d3e_0
  python             pkgs/main/linux-64::python-3.7.9-h7579374_0
  readline           pkgs/main/linux-64::readline-8.0-h7b6447c_0
  scipy              pkgs/main/linux-64::scipy-1.5.2-py37h0b6359f_0
  setuptools         pkgs/main/linux-64::setuptools-49.6.0-py37_0
  six                pkgs/main/noarch::six-1.15.0-py_0
  sqlite             pkgs/main/linux-64::sqlite-3.33.0-h62c20be_0
  tensorboard        pkgs/main/linux-64::tensorboard-1.13.1-py37hf484d3e_0
  tensorflow         pkgs/main/linux-64::tensorflow-1.13.1-gpu_py37hc158e3b_0
  tensorflow-base    pkgs/main/linux-64::tensorflow-base-1.13.1-gpu_py37h8d69cac_0
  tensorflow-estima~ pkgs/main/noarch::tensorflow-estimator-1.13.0-py_0
  tensorflow-gpu     pkgs/main/linux-64::tensorflow-gpu-1.13.1-h0d30ee6_0
  termcolor          pkgs/main/linux-64::termcolor-1.1.0-py37_1
  tk                 pkgs/main/linux-64::tk-8.6.10-hbc83047_0
  werkzeug           pkgs/main/noarch::werkzeug-1.0.1-py_0
  wheel              pkgs/main/noarch::wheel-0.35.1-py_0
  xz                 pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
  zipp               pkgs/main/noarch::zipp-3.1.0-py_0
  zlib               pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3


Proceed ([y]/n)? y


Downloading and Extracting Packages
tensorboard-1.13.1   | 3.1 MB    | ################################################################################################################################################################ | 100% 
h5py-2.10.0          | 902 KB    | ################################################################################################################################################################ | 100% 
intel-openmp-2020.2  | 786 KB    | ################################################################################################################################################################ | 100% 
gast-0.4.0           | 15 KB     | ################################################################################################################################################################ | 100% 
tensorflow-base-1.13 | 130.2 MB  | ################################################################################################################################################################ | 100% 
keras-applications-1 | 29 KB     | ################################################################################################################################################################ | 100% 
hdf5-1.10.6          | 3.7 MB    | ################################################################################################################################################################ | 100% 
termcolor-1.1.0      | 8 KB      | ################################################################################################################################################################ | 100% 
sqlite-3.33.0        | 1.1 MB    | ################################################################################################################################################################ | 100% 
python-3.7.9         | 45.3 MB   | ################################################################################################################################################################ | 100% 
mkl_fft-1.2.0        | 148 KB    | ################################################################################################################################################################ | 100% 
setuptools-49.6.0    | 754 KB    | ################################################################################################################################################################ | 100% 
protobuf-3.13.0      | 633 KB    | ################################################################################################################################################################ | 100% 
markdown-3.2.2       | 118 KB    | ################################################################################################################################################################ | 100% 
pip-20.2.2           | 1.8 MB    | ################################################################################################################################################################ | 100% 
cupti-10.0.130       | 1.5 MB    | ################################################################################################################################################################ | 100% 
scipy-1.5.2          | 14.3 MB   | ################################################################################################################################################################ | 100% 
_tflow_select-2.1.0  | 2 KB      | ################################################################################################################################################################ | 100% 
keras-preprocessing- | 37 KB     | ################################################################################################################################################################ | 100% 
tensorflow-1.13.1    | 4 KB      | ################################################################################################################################################################ | 100% 
tensorflow-gpu-1.13. | 3 KB      | ################################################################################################################################################################ | 100% 
absl-py-0.10.0       | 169 KB    | ################################################################################################################################################################ | 100% 
ca-certificates-2020 | 125 KB    | ################################################################################################################################################################ | 100% 
wheel-0.35.1         | 37 KB     | ################################################################################################################################################################ | 100% 
cudatoolkit-10.0.130 | 261.2 MB  | ################################################################################################################################################################ | 100% 
tensorflow-estimator | 181 KB    | ################################################################################################################################################################ | 100% 
numpy-base-1.19.1    | 4.1 MB    | ################################################################################################################################################################ | 100% 
c-ares-1.16.1        | 108 KB    | ################################################################################################################################################################ | 100% 
mkl-2020.2           | 138.3 MB  | ################################################################################################################################################################ | 100% 
numpy-1.19.1         | 21 KB     | ################################################################################################################################################################ | 100% 
cudnn-7.6.5          | 165.0 MB  | ################################################################################################################################################################ | 100% 
grpcio-1.31.0        | 2.0 MB    | ################################################################################################################################################################ | 100% 
astor-0.8.1          | 47 KB     | ################################################################################################################################################################ | 100% 
libprotobuf-3.13.0   | 2.0 MB    | ################################################################################################################################################################ | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate dlc-live
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) mona@mona:~/research/3danimals$ conda activate dlc-live
(dlc-live) mona@mona:~/research/3danimals$ pip install deeplabcut-live
Collecting deeplabcut-live
  Using cached deeplabcut_live-0.0.2-py3-none-any.whl (42 kB)
Collecting pandas
  Downloading pandas-1.1.2-cp37-cp37m-manylinux1_x86_64.whl (10.5 MB)
     |████████████████████████████████| 10.5 MB 14.6 MB/s 
Processing /home/mona/.cache/pip/wheels/e7/3b/8e/2b1f0f6cc651cd381bb5806e5005820c6986867c46f3536101/py_cpuinfo-5.0.0-py3-none-any.whl
Collecting pillow
  Downloading Pillow-7.2.0-cp37-cp37m-manylinux1_x86_64.whl (2.2 MB)
     |████████████████████████████████| 2.2 MB 5.6 MB/s 
Collecting tables
  Downloading tables-3.6.1-cp37-cp37m-manylinux1_x86_64.whl (4.3 MB)
     |████████████████████████████████| 4.3 MB 2.9 MB/s 
Requirement already satisfied: tensorflow==1.13.1 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from deeplabcut-live) (1.13.1)
Collecting ruamel.yaml
  Downloading ruamel.yaml-0.16.12-py2.py3-none-any.whl (111 kB)
     |████████████████████████████████| 111 kB 1.8 MB/s 
Collecting opencv-python
  Downloading opencv_python-4.4.0.42-cp37-cp37m-manylinux2014_x86_64.whl (49.4 MB)
     |████████████████████████████████| 49.4 MB 44 kB/s 
Collecting tqdm
  Downloading tqdm-4.49.0-py2.py3-none-any.whl (69 kB)
     |████████████████████████████████| 69 kB 2.9 MB/s 
Requirement already satisfied: numpy in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from deeplabcut-live) (1.19.1)
Collecting colorcet
  Using cached colorcet-2.0.2-py2.py3-none-any.whl (1.6 MB)
Collecting python-dateutil>=2.7.3
  Using cached python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
Collecting pytz>=2017.2
  Using cached pytz-2020.1-py2.py3-none-any.whl (510 kB)
Collecting numexpr>=2.6.2
  Downloading numexpr-2.7.1-cp37-cp37m-manylinux1_x86_64.whl (162 kB)
     |████████████████████████████████| 162 kB 10.3 MB/s 
Requirement already satisfied: keras-applications>=1.0.6 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (1.0.8)
Requirement already satisfied: wheel>=0.26 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (0.35.1)
Requirement already satisfied: termcolor>=1.1.0 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (1.1.0)
Requirement already satisfied: six>=1.10.0 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (1.15.0)
Requirement already satisfied: keras-preprocessing>=1.0.5 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (1.1.0)
Requirement already satisfied: tensorflow-estimator<1.14.0rc0,>=1.13.0 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (1.13.0)
Requirement already satisfied: gast>=0.2.0 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (0.4.0)
Requirement already satisfied: tensorboard<1.14.0,>=1.13.0 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (1.13.1)
Requirement already satisfied: astor>=0.6.0 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (0.8.1)
Requirement already satisfied: grpcio>=1.8.6 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (1.31.0)
Requirement already satisfied: absl-py>=0.1.6 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (0.10.0)
Requirement already satisfied: protobuf>=3.6.1 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorflow==1.13.1->deeplabcut-live) (3.13.0)
Collecting ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.9"
  Downloading ruamel.yaml.clib-0.2.2-cp37-cp37m-manylinux1_x86_64.whl (547 kB)
     |████████████████████████████████| 547 kB 3.9 MB/s 
Collecting pyct>=0.4.4
  Using cached pyct-0.4.8-py2.py3-none-any.whl (15 kB)
Collecting param>=1.7.0
  Using cached param-1.9.3-py2.py3-none-any.whl (70 kB)
Requirement already satisfied: h5py in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from keras-applications>=1.0.6->tensorflow==1.13.1->deeplabcut-live) (2.10.0)
Requirement already satisfied: werkzeug>=0.11.15 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorboard<1.14.0,>=1.13.0->tensorflow==1.13.1->deeplabcut-live) (1.0.1)
Requirement already satisfied: markdown>=2.6.8 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from tensorboard<1.14.0,>=1.13.0->tensorflow==1.13.1->deeplabcut-live) (3.2.2)
Requirement already satisfied: setuptools in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from protobuf>=3.6.1->tensorflow==1.13.1->deeplabcut-live) (49.6.0.post20200814)
Requirement already satisfied: importlib-metadata; python_version < "3.8" in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from markdown>=2.6.8->tensorboard<1.14.0,>=1.13.0->tensorflow==1.13.1->deeplabcut-live) (1.7.0)
Requirement already satisfied: zipp>=0.5 in /home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages (from importlib-metadata; python_version < "3.8"->markdown>=2.6.8->tensorboard<1.14.0,>=1.13.0->tensorflow==1.13.1->deeplabcut-live) (3.1.0)
Installing collected packages: python-dateutil, pytz, pandas, py-cpuinfo, pillow, numexpr, tables, ruamel.yaml.clib, ruamel.yaml, opencv-python, tqdm, param, pyct, colorcet, deeplabcut-live
Successfully installed colorcet-2.0.2 deeplabcut-live-0.0.2 numexpr-2.7.1 opencv-python-4.4.0.42 pandas-1.1.2 param-1.9.3 pillow-7.2.0 py-cpuinfo-5.0.0 pyct-0.4.8 python-dateutil-2.8.1 pytz-2020.1 ruamel.yaml-0.16.12 ruamel.yaml.clib-0.2.2 tables-3.6.1 tqdm-4.49.0
(dlc-live) mona@mona:~/research/3danimals$ dlc-live-test
/home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:527: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:528: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:529: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:530: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
/home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:535: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])

Creating temporary directory...

Downloading full_dog model from the DeepLabCut Model Zoo...
sh: 1: curl: not found

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now

 Running inference...

https://github.com/DeepLabCut/DeepLabCut-live/blob/master/check_install/dog_clip.avi?raw=True/dog_clip.avi

Run 1 / 1

Traceback (most recent call last):
  File "/home/mona/anaconda3/envs/dlc-live/bin/dlc-live-test", line 8, in <module>
    sys.exit(main())
  File "/home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages/dlclive/check_install/check_install.py", line 38, in main
    benchmark_videos(model_dir, video_file, display=True, resize=0.5, pcutoff=0.25)
  File "/home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages/dlclive/benchmark.py", line 571, in benchmark_videos
    output=output,
  File "/home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages/dlclive/benchmark.py", line 250, in benchmark
    display_cmap=cmap,
  File "/home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages/dlclive/dlclive.py", line 150, in __init__
    self.read_config()
  File "/home/mona/anaconda3/envs/dlc-live/lib/python3.7/site-packages/dlclive/dlclive.py", line 164, in read_config
    f"The pose configuration file for the exported model at {cfg_path} was not found. Please check the path to the exported model directory"
FileNotFoundError: The pose configuration file for the exported model at DLC_Dog_resnet_50_iteration-0_shuffle-0/pose_cfg.yaml was not found. Please check the path to the exported model directory

DeepLabCut Live "Request of Help"

Hello my name is Alberto Moreno, currently I am working with deepLabCut live but i newbie with deeplabcut , so I have a few questions, so i wonder if you can help me with followed questions.

My Operating system and DeepLabCut version*
Ubuntu 20.04 LTS, with an Anaconda Env, & deeplabcut 2.1.8.2

Describe the problem

1.-I would like to run a example, so I located the examples in the followed direction “/home/dell1/Desktop/DeepLabCut-live/example_processors”, my question is in the option of Proccesor, should I put the direction where are the examples “/home/dell1/Desktop/DeepLabCut-live/example_processors” ?, in other words, what I have to select in Proccesor Dir?

live1

2.- I am going to describe my problem :

In the section of DeepLabCut , I selected Edit DLC Setting , then DLC settings windows appeared, so my question is , What I should select for Model path?, I should select the folder which have the examples in my case :
“/home/dell1/Desktop/DeepLabCut-live/example_processors”

d2

Sorry to ask too much, but I'm new to this

DLC Live Import Issue

Screenshot 2022-07-08 172515
Hi, I have installed DLC live using pip install in a conda environment, but I cannot import the package for some reason. It seems like the module cannot be found. I verified that DLC Live is installed in the environment using the command "conda list" so I am not sure why the DLC live cannot be found. Can anyone please help with this issue? Thank you very much.

TF updates

easy TF compatibility things to update:

WARNING:tensorflow:From /content/drive/My Drive/DeepLabCut-live-master/dlclive/graph.py:28: The name tf.GraphDef is deprecated. Please use tf.compat.v1.GraphDef instead.

WARNING:tensorflow:From /content/drive/My Drive/DeepLabCut-live-master/dlclive/graph.py:29: The name tf.gfile.GFile is deprecated. Please use tf.io.gfile.GFile instead.

WARNING:tensorflow:From /content/drive/My Drive/DeepLabCut-live-master/dlclive/graph.py:53: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.

WARNING:tensorflow:From /content/drive/My Drive/DeepLabCut-live-master/dlclive/graph.py:122: The name tf.Session is deprecated. Please use tf.compat.v1.Session instead.

Installation issue on raspberry pi

Hi everyone!

I am currently trying to install DeepLabCut Live on my raspberry pi 3. I followed the instructions and used the pip installation in the terminal receiving in the end the message of correct installation, however when I run the dlc-live-test I receive the following error:
IMG_4233

I am not sure how to solve this, I tried to uninstall and reinstall deeplabcut but nothing changed. Did I miss any step?

Thank you in advance for the support

Unable to Successfully Run dlclive.benchmark_videos()

Hello everyone!
I am attempting to determine the framerate at which my machine can process videos with deeplabcut live by calling the dlclive.benchmark_videos() function. I can successfully run this function on my personal computer, but when attempting to run it on the computer in our lab, I am met with the following error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\envs\dlc-live\lib\site-packages\dlclive\benchmark.py", line 656, in benchmark_videos
    sys_info = get_system_info()
  File "C:\ProgramData\Anaconda3\envs\dlc-live\lib\site-packages\dlclive\benchmark.py", line 109, in get_system_info
    ["git", "rev-parse", "HEAD"], cwd=dlc_basedir
  File "C:\ProgramData\Anaconda3\envs\dlc-live\lib\subprocess.py", line 411, in check_output
    **kwargs).stdout
  File "C:\ProgramData\Anaconda3\envs\dlc-live\lib\subprocess.py", line 488, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\ProgramData\Anaconda3\envs\dlc-live\lib\subprocess.py", line 800, in __init__
    restore_signals, start_new_session)
  File "C:\ProgramData\Anaconda3\envs\dlc-live\lib\subprocess.py", line 1207, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

This message appears immediately after the video is processed to 100% according to the progress bar displayed in the terminal. Both machines are running Windows 10 on similar hardware (Intel CPU, NVIDIA 10-series GPU), so I am unsure why one machine would produce an error where the other does not.
Any ideas or suggestions would be greatly appreciated.

ValueError: NodeDef mentions attr 'explicit_paddings' not in Op<name=Conv2D

When I put the model directory(the one generated by deeplabcut.export_model), and then clicked the init DLC on the GUI, then the error pop up and I have no idea how to fix it. Please let me know what should I do to fix it or if there are steps need to avoid this error. Thanks in advance!

ValueError: NodeDef mentions attr 'explicit_paddings' not in Op<name=Conv2D; signature=input:T, filter:T -> output:T; attr=T:type,allowed=[DT_HALF, DT_BFLOAT16, DT_FLOAT, DT_DOUBLE]; attr=strides:list(int); attr=use_cudnn_on_gpu:bool,default=true; attr=padding:string,allowed=["SAME", "VALID"]; attr=data_format:string,default="NHWC",allowed=["NHWC", "NCHW"]; attr=dilations:list(int),default=[1, 1, 1, 1]>; NodeDef: {{node DLC/resnet_v1_50/conv1/Conv2D}}. (Check whether your GraphDef-interpreting binary is up to date with your GraphDef-generating binary.).

Request for help

Hello my name is Alberto Moreno, currently I am working with deepLabCut live but i newbie with deeplabcut , so I have a few questions, so i wonder if you can help me with followed questions.

My Operating system and DeepLabCut version*
Ubuntu 20.04 LTS, with an Anaconda Env, & deeplabcut 2.1.8.2

Describe the problem

1.-I would like to run a test, what type of file I should select in Model Path:?

DLC_2

2.- I dont know how I have to export DLC model?;in the followed image I show what folders that I have in my project,could you help me?

DLC_3

Thank you very much for the help

Output of dlc.getpose when object is not in view

I want to track an object using DLC-live, but when the object is not in view, I want some kind of message that says "Object is not in view right now". I know this is easily built using a if statement, but I do not know what the output of dlc.getposeI(img) is when an object is not in view. Could someone tell me this so I can build in an if statement in my code? Thanks in advance!

IndexError: list index out of range

After successfully running:

python /check_install/check_install.py

I am following the instructions on Quick Start:

from dlclive import DLCLive, Processor
dlc_proc = Processor()
dlc_live = DLCLive(<path to exported model directory>, processor=dlc_proc)
dlc_live.init_inference(<your image>)
dlc_live.get_pose(<your image>)

When running line 4 on init_inference, I got an error that traces back to line 252 of dlclive.py:

model_file = glob.glob(os.path.normpath(self.path + "/*.pb"))[0]
IndexError: list index out of range

Can you advise on how to resolve this?

Installing dlc-live on nvidia jetson

Install dlc-live on the Jetson Nano within Docker

The Dockerfile is as followed (used SDK and JetPack in the links):

#Instructions: https://github.com/DeepLabCut/DeepLabCut-live/blob/master/docs/install_jetson.md
#Installed SDK: https://developer.nvidia.com/jetpack-sdk-441-archive
#Installed jetpack: https://docs.nvidia.com/jetson/jetpack/install-jetpack/index.html#package-management-tool

#TensorFlow 1.15 Container for JetPack 4.4.1 https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-tensorflow
FROM nvcr.io/nvidia/l4t-tensorflow:r32.4.4-tf1.15-py3

RUN apt-get update -y && apt-get upgrade -y

RUN apt-get install -y
libhdf5-serial-dev
hdf5-tools
libhdf5-dev
zlib1g-dev
zip
libjpeg8-dev
liblapack-dev
libblas-dev
gfortran
python3-pip
python3-venv
python3-tk
curl

RUN pip3 install -U pip testresources setuptools

#Skip pip dependencies (for TensorFlow), because already in the container

#Skip TenorFlow Installation, because already in the container
#RUN pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 'tensorflow<2'

RUN pip3 install deeplabcut-live

CMD ["dlc-live-test"]
#End of the file

I also tried to install it with a virtual enviroment but the error is the same. After a long time of Building wheel and Getting requirements to build wheel the build process ends, but pip3 shows deeplabcut-live installed as version 0.0 and executing the dlc-live -test results in:
Traceback (most recent call last): File "/usr/local/bin/dlc-live-test", line 5, in <module> from check_install.check_install import main ModuleNotFoundError: No module named 'check_install'

Full docker output is in log.txt
Any help is appreciated

Mismatch between video annotations in DLC and Bonsai-DLC for the same trained network

(moved over from DLC repository)
There is a mismatch between video annotations produced by DLC versus Bonsai-DLC, for the same videos and using the same trained networks [exported for Bonsai using deeplabcut.export_model(path_to_config). The mismatch appears to worsen if the networks are trained on more iterations. I am using the default settings from the GUI, and resnet_50. I have been working with Gonçalo to try to solve this.

Images:
bonsai_mismatch.pdf

Others have reported similar issues

Per previous suggestions, before training the network, I tried editing the global_scale in pose_cfg.yaml (in both train/test folder) parameter. No luck--the mismatch occurs whether global_scale=0.5,0.8,1.0

Gonçalo was able to reproduce the mismatch on his machine using my dataset (but not others).

My system: Windows10, DeepLabCut 2.2b, single animal tracking

Gonçalo seems to think that the problem lies in the fact that DLC performs some additional steps during video annotation, as opposed to Bonsai-DLC which outputs the raw result from the tensorflow inference. We were wondering then what these additional steps were, if any? Gonçalo also wonders if this was one such step

Thanks!

ruamel_yaml import syntax change

the correct way to import ruamel package is import ruamel_yaml instead of import ruamel.yaml
with the existing setup, it gives ModuleNotFoundError: No module named 'ruamel' upon importing the dlclive package

No module named 'check_install'

Hi! Thanks a lot for sharing us the amazing tool!
I have installed DeepLabCut-live in a conda environment with python 3.7 and tensorflow:
when I tested the dlc-live-test, here throws the error:
(dlc-live) C:\Users\73110>dlc-live-test
Traceback (most recent call last):
File "d:\anaconda3\envs\dlc-live\lib\runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "d:\anaconda3\envs\dlc-live\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "D:\Anaconda3\envs\dlc-live\Scripts\dlc-live-test.exe_main
.py", line 4, in
ModuleNotFoundError: No module named 'check_install'

Do you have any suggestions?
Thank you!

Combine DeepLabCut-live with DLC-3D

Hi, for a project I would like to to use DLC live and DLC-3D at the same time.
Is this possible somehow? If so, I would love to hear how to do this.
Thanks!

Do I still need to specify `python=3.7` and `tensorflow-gpu==1.13.1` when creating the conda environment?

The conda environment creation instructions at https://github.com/DeepLabCut/DeepLabCut-live/blob/master/docs/install_desktop.md say that I should use this command to create the environemnt -

conda create -n dlc-live python=3.7 tensorflow-gpu==1.13.1

...but I recall seeing elsewhere in the documentation that DLC now supports Tensorflow 2.x . I see that this page was last updated in January, so I figure it might have been written before that support was added

Do I still need to specify tensorflow-gpu==1.13.1 when creating this conda environment?

And while we're at it - Is python=3.7 still correct as well?

Thank you!!

Live plotting showing points only on half of the image

In all tested models, only the left part of the video was marked.

Proposed solution: reverse im_size coordinates:

In function display.py/Display/display_frame:

x1 = (
    pose[i, 0] + self.radius
    if pose[i, 0] + self.radius < im_size[1]   ## <-- change im_size[1] to im_size[0]
    else im_size[1]                                      ## <-- same
)
 

also change the im_size in calculating y1

Seems to work now.

Curl needs to be installed on Jetson Platforms as dependency

Hi,

Jetson platforms doesn't come with curl installed, so the check_install.py fails to downlad model.tar.gz. This leads to fail on the check_install.py.

I manually downloaded and extracted the dog model to make it work.

PS: I am talking about jetson nano and agx. not tested it on jetson nx.

Giray

Calling undefined function while extracting multiple poses

Hey All,

I think the get_top_values function needs to be defined in the pose.py file or imported from different file, otherwise the multi_pose_predict function won't work:

Y, X = get_top_values(scmap[None], num_outputs)

P.s: I saw that the get_top_values function was actually defined in the main DLC, you probably forgot to copy it to this file while adapting the code :)

https://github.com/DeepLabCut/DeepLabCut/blob/e5c3384897b39e3e33ca440ffef9a7830bb02a70/deeplabcut/pose_estimation_tensorflow/nnet/predict.py#L144

Cheers,

dlc_live.init_inference throwing error

While running

cam = cv2.VideoCapture(0)
#cam.set(cv2.CAP_PROP_FPS, 10)
if not (cam.isOpened()):
    print("couldn't find camera")

def getFrame(): 

    ret, frame = cam.read()
    #cv2.imshow('frame',frame)
    #time.sleep(10)
    return(frame)

dlc_proc = Processor()
dlc_live = DLCLive('C:\\Users\\manoj\\Documents\\VSProjects\\humanTest\\myDLC_modelZoo-teamDLC-2021-10-29\\dlc-models\\iteration-0\\myDLC_modelZooOct29-trainset95shuffle1\\train', processor=dlc_proc)

inferences = list()
frameDLC = getFrame()
cv2.imwrite('capture2.jpg', frameDLC)
cam.release()
dlc_live.process_frame(frameDLC)
dlc_live.init_inference(frameDLC)

I am getting errors shown in the attached screenshot when I run dlc_live.init_inference(frameDLC). frameDLC is a single frame captured by my laptop camera. I am working on a HP Envy Windows 11 laptop.

3

Unable to retrieve multiple predictions from maDLC trained network

Hi there,

I'm working on a little Blender addon to make use of DLC-Live for multi-animal motion capture in foraging experiments where individuals freely enter and leave the scene. I'm passing cropped detections from a separate network (Yolo v4) to DLC-Live via OpenCV as the number of animals and joints are otherwise prohibitively large and not constant. The addon is taking shape and your DLC-Live implementation works great for the most part!

At the moment, however, I fail to retrieve multiple predictions at the same time.

Loading the graph and passing an image to initialise the network shows that there is only a single set of output predictions from sess with shape (num_keypoints , 3)

I have attached the pose_cfg.yaml file below, in case you can spot some issues in there that are not immediately obvious to me.
Thanks a lot for your help!

Fabi

pose_cfg.yaml.txt

DeepLabCut-live Processors - hardware linking

Hi there,

In the example of turning on an LED upon detecting a dog's rearing movement, you are using a processor objects that communicate with Teensy microcontrollers can it be replaced with a Raspberry PI 4 if yes can I have some details about this please.

Thanks.

Tables and numpy conflicting dependencies

Doing a clean install of the package (python setup.py install) on Windows results in the following conflict:

error: numpy 1.18.5 is installed but numpy>=1.19.0 is required by {'tables'}

DeepLabCut-live specifically requires numpy < 1.19.0.
Removing this requirements results in the following conflict (not sure though why it didn't install the latest numpy version):

error: numpy 1.19.0 is installed but numpy>=1.19.3 is required by {'opencv-python'}

I installed numpy==1.19.3 manually and got the setup.py working.

Finally, I'm getting the following errors when running dlc-live-test:

...
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
...
  File "d:\dev\DeepLabCut-live\.venv\lib\site-packages\tensorflow-2.8.0rc0-py3.9-win-amd64.egg\tensorflow\python\framework\dtypes.py", line 29, in <module>
    _np_bfloat16 = _pywrap_bfloat16.TF_bfloat16_type()
TypeError: Unable to convert function return value to a Python type! The signature was
        () -> handle

Not sure if it's related, but it does look suspicious because of the API version mismatch.

In any case if someone could run pip freeze and add its output to here, that'll be useful.
Thanks

Loss of accuracy when converting from MobileNet V2 model to tflite

I've retrained a mobilenet_v2_1.0 model using DLC. When I run it through the dlclive pipeline using model_type=base, the accuracy for a test image is high (>99 %). However, if I choose the model_type=tflite option the accuracy plummets to <0.01. This isn't the case for a resnet-50 model I tried -both the base and tflite options give similar performance.

I need the tflite version of my retrained mobilenet_v2_1.0 network to get sufficient framerate for our application.

EDIT: the inaccuracy of the tflite model appears to grow with training iteration. If I train only briefly, the accuracy (although poor) of the tflite model is the same as the base.

Can you help?
Thanks!

Latency of DLC-live and recommended hardware

Dear all.

I am planning to use DLC-live in an experiment with closed-loop control, so the delay or processing time of DLC-live may be critical. However I cannot find much information about the detailed latency when using DLC-live. Does anyone know about it?

If possible, please share your latency experience and the hardware you used for DLC-live (especially CPU, memory and GPU).

Best regards.

-Joey

getting labeled frames from dlclive

Hi there,
I did inference on dlclive and the output is a numpy array. How can I see this poses as a labeled frames?
14973839-97f7-44d0-a2f5-182892175ffb

Thank you in advance!

ERROR: Could not find a version that satisfies the requirement tensorflow==1.13.1 (from deeplabcut-live)

Hello, I'm running into some strange version issues trying to install on Nvidia Jetson Nano. I've followed the instructions to the letter or so it seems, until the very end when I ran into the issue of "ModuleNotFoundError: No module named 'check_install'". I saw the explanation of the very issue in the resolved issues page which got me to looking into what version of deeplabcut-live I had. I installed via pip install deeplabcut-live as instructed, but it seems to have installed version 0.0.0. I cannot figure out why it won't install version 0.0.3 since it's what is on PyPI. If I enter pip install deeplabcut-live -vv into terminal I get:

Using pip 21.0 from /home/rj/dlc-live/lib/python3.6/site-packages/pip (python 3.6)
Non-user install because user site-packages disabled
Created temporary directory: /tmp/pip-ephem-wheel-cache-q1umg_hg
Created temporary directory: /tmp/pip-req-tracker-vu8r4nvi
Initialized build tracking at /tmp/pip-req-tracker-vu8r4nvi
Created build tracker: /tmp/pip-req-tracker-vu8r4nvi
Entered build tracker: /tmp/pip-req-tracker-vu8r4nvi
Created temporary directory: /tmp/pip-install-t44o1y09
Requirement already satisfied: deeplabcut-live in ./dlc-live/lib/python3.6/site-packages (0.0)
Requirement already satisfied: tqdm in ./dlc-live/lib/python3.6/site-packages (from deeplabcut-live) (4.56.0)
Requirement already satisfied: pillow in ./dlc-live/lib/python3.6/site-packages (from deeplabcut-live) (8.1.0)
Requirement already satisfied: numpy in ./dlc-live/lib/python3.6/site-packages (from deeplabcut-live) (1.16.1)
Requirement already satisfied: colorcet in ./dlc-live/lib/python3.6/site-packages (from deeplabcut-live) (2.0.6)
Requirement already satisfied: py-cpuinfo==5.0.0 in ./dlc-live/lib/python3.6/site-packages (from deeplabcut-live) (5.0.0)
Requirement already satisfied: pandas in ./dlc-live/lib/python3.6/site-packages (from deeplabcut-live) (1.1.5)
Requirement already satisfied: tables in ./dlc-live/lib/python3.6/site-packages (from deeplabcut-live) (3.6.1)
Requirement already satisfied: ruamel.yaml in ./dlc-live/lib/python3.6/site-packages (from deeplabcut-live) (0.16.12)
Requirement already satisfied: pyct>=0.4.4 in ./dlc-live/lib/python3.6/site-packages (from colorcet->deeplabcut-live) (0.4.8)
Requirement already satisfied: param>=1.7.0 in ./dlc-live/lib/python3.6/site-packages (from colorcet->deeplabcut-live) (1.10.1)
Requirement already satisfied: pytz>=2017.2 in ./dlc-live/lib/python3.6/site-packages (from pandas->deeplabcut-live) (2020.5)
Requirement already satisfied: python-dateutil>=2.7.3 in ./dlc-live/lib/python3.6/site-packages (from pandas->deeplabcut-live) (2.8.1)
Requirement already satisfied: six>=1.5 in ./dlc-live/lib/python3.6/site-packages (from python-dateutil>=2.7.3->pandas->deeplabcut-live) (1.15.0)
Requirement already satisfied: ruamel.yaml.clib>=0.1.2 in ./dlc-live/lib/python3.6/site-packages (from ruamel.yaml->deeplabcut-live) (0.2.2)
Requirement already satisfied: numexpr>=2.6.2 in ./dlc-live/lib/python3.6/site-packages (from tables->deeplabcut-live) (2.7.2)
Created temporary directory: /tmp/pip-unpack-kufb3fw7
Removed build tracker: '/tmp/pip-req-tracker-vu8r4nvi'

It's odd that it's persisting on version 0.0.0 so I tried to force install with deeplabcut-live==0.0.3 and I am getting the following errors: ERROR: Could not find a version that satisfies the requirement tensorflow==1.13.1 (from deeplabcut-live)
ERROR: No matching distribution found for tensorflow==1.13.1

I do not have tensorflow 1.13.1. I check with pip show tensorflow and have version 1.15.4+nv20.12 (as per the instructions to download the NVidia version < 2.0).

Thanks in advance for any guidance you may have!

Curl needs to be installed to Jetson platfoms

Hi,

Jetson platforms doesn't come with curl installed, so the check_install.py fails to downlad model.tar.gz. This leads to fail on the check_install.py.

I manually downloaded and extracted the dog model to make it work.

PS: I am talking about jetson nano and agx. not tested it on jetson nx.

Giray

pose_cfg.yaml was not found HELP

Hello,

I am working in DLC live for my master thesis. However, when I am trying to run the program it gives me an error telling me that the pose_cf.yamle file was not found. Everything was working before and now I don’t know why it is giving me that error. I am using a Linux btw.

Please help me save my master thesis! :( <3

Terminal code error:

/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_qint8 = np.dtype([(“qint8”, np.int8, 1)])
/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:527: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_quint8 = np.dtype([(“quint8”, np.uint8, 1)])
/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:528: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_qint16 = np.dtype([(“qint16”, np.int16, 1)])
/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:529: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_quint16 = np.dtype([(“quint16”, np.uint16, 1)])
/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:530: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_qint32 = np.dtype([(“qint32”, np.int32, 1)])
/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:535: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
np_resource = np.dtype([(“resource”, np.ubyte, 1)])
/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_qint8 = np.dtype([(“qint8”, np.int8, 1)])
/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:527: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_quint8 = np.dtype([(“quint8”, np.uint8, 1)])
/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:528: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_qint16 = np.dtype([(“qint16”, np.int16, 1)])
/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:529: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_quint16 = np.dtype([(“quint16”, np.uint16, 1)])
/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:530: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_qint32 = np.dtype([(“qint32”, np.int32, 1)])
/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:535: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
np_resource = np.dtype([(“resource”, np.ubyte, 1)])
Process SpawnProcess-2:
Traceback (most recent call last):
File “/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/multiprocess/process.py”, line 297, in _bootstrap
self.run()
File “/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/multiprocess/process.py”, line 99, in run
self._target(*self._args, **self._kwargs)
File “/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/dlclivegui/pose_process.py”, line 73, in _run_pose
ret = self._open_dlc_live(dlc_params)
File “/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/dlclivegui/pose_process.py”, line 93, in _open_dlc_live
self.dlc = DLCLive(**dlc_params)
File “/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/dlclive/dlclive.py”, line 150, in init
self.read_config()
File “/home/titan/anaconda3/envs/DLC-GPU-live2/lib/python3.7/site-packages/dlclive/dlclive.py”, line 164, in read_config
f"The pose configuration file for the exported model at {cfg_path} was not found. Please check the path to the exported model directory"
FileNotFoundError: The pose configuration file for the exported model at /home/titan/KI2020/DLC/KI2020_Valter-Valter-2020-09-10/pose_cfg.yaml was not found. Please check the path to the exported model directory
5.6590 WARNING Monitor specification not found. Creating a temporary one…

dlc-live-test fails [curl not working] on clean install [i.e., if no curl installed]

I followed the installation instructions for Linux (I'm using Ubuntu 20.04). I get:

/home/ckemere/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/home/ckemere/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:527: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/home/ckemere/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:528: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/home/ckemere/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:529: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/home/ckemere/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:530: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
/home/ckemere/anaconda3/envs/dlc-live/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:535: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])

Creating temporary directory...

Downloading full_dog model from the DeepLabCut Model Zoo...
sh: 1: curl: not found

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now

 Running inference...

https://github.com/DeepLabCut/DeepLabCut-live/blob/master/check_install/dog_clip.avi?raw=True/dog_clip.avi

Run 1 / 1

Traceback (most recent call last):
  File "/home/ckemere/anaconda3/envs/dlc-live/bin/dlc-live-test", line 8, in <module>
    sys.exit(main())
  File "/home/ckemere/anaconda3/envs/dlc-live/lib/python3.7/site-packages/dlclive/check_install/check_install.py", line 38, in main
    benchmark_videos(model_dir, video_file, display=True, resize=0.5, pcutoff=0.25)
  File "/home/ckemere/anaconda3/envs/dlc-live/lib/python3.7/site-packages/dlclive/benchmark.py", line 644, in benchmark_videos
    output=output,
  File "/home/ckemere/anaconda3/envs/dlc-live/lib/python3.7/site-packages/dlclive/benchmark.py", line 301, in benchmark
    display_cmap=cmap,
  File "/home/ckemere/anaconda3/envs/dlc-live/lib/python3.7/site-packages/dlclive/dlclive.py", line 150, in __init__
    self.read_config()
  File "/home/ckemere/anaconda3/envs/dlc-live/lib/python3.7/site-packages/dlclive/dlclive.py", line 164, in read_config
    f"The pose configuration file for the exported model at {cfg_path} was not found. Please check the path to the exported model directory"
FileNotFoundError: The pose configuration file for the exported model at DLC_Dog_resnet_50_iteration-0_shuffle-0/pose_cfg.yaml was not found. Please check the path to the exported model directory

OpenCV display runs at a slower fps than camera specs

Hi all,

When running dlc-live, I noticed that the display window is slower with higher resolution images. Is it possible to run the display of my camera live feed at a smaller resolution to prevent lag and save my images at the desired higher resolution? Otherwise, is it possible to display large images without lag in the live feed when running dlc-live? This seems to be a common issue across opencv users, but I haven't found a workaround. My desired camera resolution is 2048x2048. I find that the display does not lag at 540x540 resolution (but this resolution is not high enough for the images I'd like to save). Here's my snippet of code:

ret, frame = cap.read()
dlc_live.init_inference(frame)
while(True):
    currentFrame += 1
    ret, frame = cap.read()
    posData = dlc_live.get_pose(frame)
    print(currentFrame)

Thanks so much!

Installing DLC-Live! on Jetson Xavier

Hi!

So I'm trying to install DLC-Live! on my new Jetson Xavier but I have a problem. When I'm trying to create a virtual environment with this line: python3 -m venv dlc-live, this is the error message I get:

Unable to symlink '/home/ronde/miniforge-pypy3/bin/../lib/python3.6' to '/home/ronde/dlc-live/lib/python3.6'
Error: [Errno 17] File exists: '/home/ronde/dlc-live/lib/python3.6'

Anything I can do?

152415033_877514389486699_3352637487819799922_n

[meta] docs

Standing issue to track and consolidate documentation requests. Add additional requests by commenting below <3

  • - @sneakers-the-rat - Make sphinx/readthedocs: there are enough common questions that it seems like it would be helpful to have the existing documentation in the readme/etc. properly split out to a separate docs page along with API docs. As is we only have the top-level DLCLive and Processor usage documented, but have docstrings for most other objects so this seems like an easy win
  • - #54 - Difference between init_inference and get_pose
  • - #77 - Structure of numpy array returned from get_pose
  • - #69 - (Deprecated) python 3.6 installation
  • - #75 - usage of benchmark function (from a "how-to" index page in addition to summary of what's in the benchmark module?)

(other maintainers feel free to edit this^)

Increase the allowed Python versions

Hi,

Currently, the Python versions are restricted when installing:
ERROR: Package 'deeplabcut-live' requires a different Python: 3.9.7 not in '<3.8,>=3.5'
Since Python 3.10 was released in October, would it be possible to bump the version limit?

Thanks!
David

camera not compatble with DLC-Live

i am using a IDS U-EYE3 camera and getting the following error
Recording has not been set up.Please make sure a camera and session has been set up.
How do i deal with it

Sharing DLC-live data with other processes

I would like to share the incoming images and DLC-live data through a memory mapped file with our imaging software, so we can integrate and display the DLC-live results with the microscope. Would the Processor be the place to do this? But the processor does not seem to receive the actual images as a parameter, correct? Or are there any other mechanisms you provide to allow other processes to access the data?

Thank you!

Dario

No matching distribution found for opencv-python

Hi people,

One of a unique repo over the github this is. Thank you very much for it.

my platform is Jetson agx nx with brand new (nothing installed) Jetpack 4.4. I went over the installation guide but at the stage of pip install deeplabcut-live I get the error below:
ERROR: Could not find a version that satisfies the requirement opencv-python (from deeplabcut-live) (from versions: none) ERROR: No matching distribution found for opencv-python (from deeplabcut-live)

Any clue about this matter?

Thanks

ModuleNotFound Error

I tried following the DLC-live tutorial, and when I try running the dlc-live-test code, I get a ModuleNotFound error for ruamel. If I install this via pip within the venv, I get additional ModuleNotFound errors for pillow, panda, tables, wheel, tqdm and others. If these are installed via pip, I get an Illegal Instruction (core dumped) error from trying dlc-live-test. Are there any suggestions for fixing this? I am sort of a novice at Linux and Jetson systems.

`dlc-live-test` works on Linux only

On windows Powershell, tar.exe raises error tar.exe: Error opening archive: Failed to open '\\.\tape0'.

This kind of code is compatibile:

import os

os.system(f'curl -O "{model_url}"')
os.system(f'tar xzf "{url_basename}"')
os.system(f'rm "{url_basename}"')

wrong version of apostrophe in jetson install

for the line that installs tensorflow in the jetson install documentation, the 'tensorflow<2' has a version of the ' that when copy/pasted to the terminal results in the line erroring. just thought others might like to know.

thanks!

IndexError: list index out of range

Hello,

I'm currently trying to run DLC-Live GUI on a trained model and cannot get pass this point. It seems like there is something wrong with the pose_config.yaml file. Here is what is shown in anaconda:

File "c:\users\tram.desktop-bush53l\anaconda3\envs\dlc-live\lib\site-packages\dlclive\dlclive.py", line 252, in init_inference
model_file = glob.glob(os.path.normpath(self.path + "/*.pb"))[0]
IndexError: list index out of range

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.