{"id":25432906,"url":"https://github.com/liinen/cv_skeleton_provider","last_synced_at":"2026-03-11T13:39:00.240Z","repository":{"id":50940049,"uuid":"364519044","full_name":"LiiNen/CV_skeleton_provider","owner":"LiiNen","description":"CV_skeleton_provider project made for detecting a skeleton structure easily. It is distributed via pypi package.","archived":false,"fork":false,"pushed_at":"2021-06-06T03:07:11.000Z","size":50001,"stargazers_count":8,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-16T14:50:56.469Z","etag":null,"topics":["caffemodel","opencv","prototxt"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LiiNen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-05T09:05:49.000Z","updated_at":"2023-05-27T16:14:13.000Z","dependencies_parsed_at":"2022-08-25T14:00:11.730Z","dependency_job_id":null,"html_url":"https://github.com/LiiNen/CV_skeleton_provider","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiiNen%2FCV_skeleton_provider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiiNen%2FCV_skeleton_provider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiiNen%2FCV_skeleton_provider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiiNen%2FCV_skeleton_provider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LiiNen","download_url":"https://codeload.github.com/LiiNen/CV_skeleton_provider/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239236649,"owners_count":19604912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["caffemodel","opencv","prototxt"],"created_at":"2025-02-17T05:17:10.289Z","updated_at":"2026-03-11T13:39:00.193Z","avatar_url":"https://github.com/LiiNen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CV_skeleton_provider\n![LISENCE](https://img.shields.io/github/license/LiiNen/CV_skeleton_provider)\n![release](https://img.shields.io/github/v/release/LiiNen/CV_skeleton_provider)\n![release_date](https://img.shields.io/github/release-date/LiiNen/CV_skeleton_provider)\n![last_commit](https://img.shields.io/github/last-commit/LiiNen/CV_skeleton_provider)\n![dependency](https://img.shields.io/librariesio/github/LiiNen/CV_skeleton_provider)\n![contributors](https://img.shields.io/github/contributors/LiiNen/CV_skeleton_provider)\n\u003cbr\u003e\n![pypi](https://img.shields.io/pypi/v/CV_skeleton_provider)\n![python](https://img.shields.io/pypi/pyversions/CV_skeleton_provider)\n![implementation](https://img.shields.io/pypi/implementation/CV_skeleton_provider)\n![wheel](https://img.shields.io/pypi/wheel/CV_skeleton_provider)\n\n## OpenCV Project\nCV_skeleton_provider project made for detecting a skeleton structure easily. \u003cbr\u003e\nThis project contains how to use pretrained models and analize video with frames, using openCV. \u003cbr\u003e\nFor solving some discomports, we make it from the beginning and providing argparse to use it easily. \u003cbr\u003e\nAlso providing img preprocessing methods, you can use it with simple options when you use specific imgs \u003cbr\u003e\n\u003cbr\u003e\n\n## How to use\n! prototxt file \u0026 caffemodel file are not included in both pypi package \u0026 project \u003cbr\u003e\n! you should download these pre-trained models in website, and you can easily find it \u003cbr\u003e\n### using pip package (recommended)\n1. install pypi package\n```bash\n$ pip install CV_skeleton_provider\n```\n2. python code\n```python\nfrom CV_skeleton_provider.SkeletonProvider import defaultDict, skprovider\nskprovider(defaultDict()) # show skeleton image over default img\n```\n3. custom parameter (when customizing)\n```python\ninput_dict = defaultDict()\ninput_dict['source']       =  './example.jpeg'   # input filepath. img(jpg, jpeg, png) or video(mp4, avi, mkv) supported\ninput_dict['output']       =  './output'         # output filepath(exclude format). file format will be set by automatically.\ninput_dict['option']       =  'skl'              # s for skeleton, k for keypoints, l for label. if string include these char, show it\ninput_dict['exclude']      =  []                 # 0~17 interger list. that point will not be shown on result.\ninput_dict['thres']        =  0.1                # threshold (float)\ninput_dict['gray']         =  False              # using grayscale (bool)\ninput_dict['back']         =  False              # remove background (bool)\ninput_dict['selectRect']   =  False              # when removing background, you can set the object(human) size by drag img (bool)\ninput_dict['autolocation'] =  False              # when removing background, code will automatically 'detect' human (bool)\ninput_dict['comp']         =  1                  # for only video. video frame will be reduced to 1/comp (int)\ninput_dict['gamma']        =  -1                 # img preprocessing gamma value. under 0 means not processing gamma (float)\ninput_dict['b_propo']      =  False              # check black proportion and preprocessing reducing black part (bool)\ninput_dict['show']         =  False              # (only for img) if you want to show img with cv2.imshow, set to True (bool)\ninput_dict['save']         =  True               # (only for img) if you want not to save file in local, set to False (bool)\ninput_dict['proto']        =  './pose/coco/pose_deploy_linevec.prototxt'    # prototxt filepath\ninput_dict['weight']       =  './pose/coco/pose_iter_440000.caffemodel'     # caffemodel filepath\nskprovider(input_dict)\n```\n\n### using clone project\n```bash\n$ git clone https://github.com/LiiNen/CV_skeleton_provider.git\n$ pip install -r ./CV_skeleton_provider/requirements.txt\n$ cd ./CV_skeleton_provider/CV_skeleton_provider\n$ python ./SkeletonProvider.py # show skeleton image over default img\n```\nyou can use argparse with SkeletonProvider.py to change parameter \u003cbr\u003e\ncheck it with following command in CLI\n```bash\n$ python SkeletonProvider.py --help\n```\n! as mentioned, prototxt \u0026 caffemodel must be existed. followings are default path \u003cbr\u003e\n```\n./CV_skeleton_provider/CV_skeleton_provider/pose/coco/pose_deploy_linevec.prototxt\n./CV_skeleton_provider/CV_skeleton_provider/pose/coco/pose_iter_440000.caffemodel\n```\n\u003cbr\u003e\n\n## Processing Examples (improve detecting accuracy)\n### using black proportion\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align='center' width='33%'\u003eorigin input\u003c/td\u003e\n    \u003ctd align='center' width='33%'\u003eorigin output\u003c/td\u003e\n    \u003ctd align='center' width='33%'\u003eblack proportion output\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align='center'\u003e\u003cimg src=\"/readme_img/prop_origin.jpg\"/\u003e\u003c/td\u003e\n    \u003ctd align='center'\u003e\u003cimg src=\"/readme_img/prop_output.jpg\"/\u003e\u003c/td\u003e\n    \u003ctd align='center'\u003e\u003cimg src=\"/readme_img/prop_process.png\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### using background removing\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align='center' width='33%'\u003eorigin input\u003c/td\u003e\n    \u003ctd align='center' width='33%'\u003eorigin output\u003c/td\u003e\n    \u003ctd align='center' width='33%'\u003ebackground removed\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align='center'\u003e\u003cimg src=\"/readme_img/back_origin.jpg\"/\u003e\u003c/td\u003e\n    \u003ctd align='center'\u003e\u003cimg src=\"/readme_img/back_output.jpg\"/\u003e\u003c/td\u003e\n    \u003ctd align='center'\u003e\u003cimg src=\"/readme_img/back_process.jpg\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### setting gamma value\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align='center' width='33%'\u003eorigin input\u003c/td\u003e\n    \u003ctd align='center' width='33%'\u003eorigin output\u003c/td\u003e\n    \u003ctd align='center' width='33%'\u003egamma 0.8 output\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align='center'\u003e\u003cimg src=\"/readme_img/gamma_origin.jpg\"/\u003e\u003c/td\u003e\n    \u003ctd align='center'\u003e\u003cimg src=\"/readme_img/gamma_output.jpg\"/\u003e\u003c/td\u003e\n    \u003ctd align='center'\u003e\u003cimg src=\"/readme_img/gamma_process.jpg\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003cbr\u003e\n\n### movie test (device iPhone SE2, 30fps)\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align='center' width=\"50%\"\u003e\u003cimg src=\"/readme_img/sg1_output.gif\"/\u003e\u003c/td\u003e\n    \u003ctd align='center' width=\"50%\"\u003e\u003cimg src=\"/readme_img/sg2_output.gif\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Main contributors\n\u003ctable\u003e\n  \u003ctr\u003e\u003ctd align='center'\u003eGithub\u003c/td\u003e\u003ctd align='center'\u003eContact\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/LiiNen\"\u003e\u003cimg src=\"http://img.shields.io/badge/LiiNen-655ced?style=social\u0026logo=github\"/\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003ca href=\"mailto:kjeonghoon065@gmail.com\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=\u0026message=kjeonghoon065@gmail.com\u0026color=green\u0026style=flat-square\u0026logo=gmail\"\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/Seunggyun98\"\u003e\u003cimg src=\"http://img.shields.io/badge/Seunggyun98-655ced?style=social\u0026logo=github\"/\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003ca href=\"mailto:dmstmdrbs98@gmail.com\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=\u0026message=dmstmdrbs98@gmail.com\u0026color=green\u0026style=flat-square\u0026logo=gmail\"\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/Coreight98\"\u003e\u003cimg src=\"http://img.shields.io/badge/Coreight98-655ced?style=social\u0026logo=github\"/\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003ca href=\"mailto:maxcha98@ajou.ac.kr\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=\u0026message=maxcha98@ajou.ac.kr\u0026color=green\u0026style=flat-square\u0026logo=gmail\"\u003e\u003c/td\u003e\u003c/tr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliinen%2Fcv_skeleton_provider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliinen%2Fcv_skeleton_provider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliinen%2Fcv_skeleton_provider/lists"}