Code Monkey home page Code Monkey logo

peekingduck's Introduction



Python version PyPI version PyPI Downloads License Documentation Status


PeekingDuck is an open-source, modular framework in Python, built for Computer Vision (CV) inference. The name "PeekingDuck" is a play on: "Peeking" in a nod to CV; and "Duck" in duck typing.

Features

Build realtime CV pipelines

  • PeekingDuck enables you to build powerful CV pipelines with minimal lines of code.

Leverage on SOTA models

Create custom nodes

Installation

Install from PyPI using pip

> pip install peekingduck

Note: for users with ARM-based devices such as a Raspberry Pi or Apple Silicon Mac, please refer to the documentation for more detailed installation instructions.

PeekingDuck can also be installed in a virtual environment.

> peekingduck verify-install

You should see a video of a person waving his hand with bounding boxes overlaid.

The video will close automatically when it is run to the end, select the video window and press q to exit earlier.

Usage

Create a project folder and initialize a PeekingDuck project.

> mkdir <project_dir>
> cd <project_dir>
> peekingduck init

Run the demo pipeline.

> peekingduck run

If you have a webcam, you should see a man waving on the output screen with skeletal frame overlaid.

Terminate the program by clicking on the output screen and pressing q.

Use peekingduck --help to display help information for PeekingDuck's command-line interface.

Gallery

Acknowledgements

This project is supported by the National Research Foundation, Singapore under its AI Singapore Programme (AISG-RP-2019-050). Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not reflect the views of National Research Foundation, Singapore.

License

PeekingDuck is under the open source Apache License 2.0 (:

Even so, your organization may require legal proof of its right to use PeekingDuck, due to circumstances such as the following:

  • Your organization is using PeekingDuck in a jurisdiction that does not recognize this license
  • Your legal department requires a license to be purchased
  • Your organization wants to hold a tangible legal document as evidence of the legal right to use and distribute PeekingDuck

Contact us if any of these circumstances apply to you.

Communities

peekingduck's People

Contributors

chngzyk avatar clarevoyance avatar diwei-tan avatar eric-kwok-nt avatar ericleehy avatar jamessng avatar jeromewycb avatar jovi-s avatar jwaycube avatar leeping-ng avatar liyier90 avatar nurmanzahin avatar ongtw avatar ongzizhao avatar pangyyyyy avatar sidney-tio 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

peekingduck's Issues

Fix linting errors

Fix the linting errors under "Run linter" in:
https://github.com/aimakerspace/PeekingDuck/runs/2418435037?check_suite_focus=true

This was the dev branch that was merged on Friday evening 23 Apr.

@tanddoubleu:

  • All yolo related
  • Module peekingduck.weights_utils.checker
  • Module peekingduck.weights_utils.downloader

@leeping-ng:

  • Module peekingduck.pipeline.nodes.input.utils.preprocess
  • Module peekingduck.pipeline.nodes.input.utils.read
  • Module peekingduck.pipeline.nodes.input.live
  • Module peekingduck.pipeline.nodes.input.recorded
  • Module peekingduck.pipeline.nodes.heuristic.3dLocFromBbox

@jwaycube:

  • Module peekingduck.pipeline.nodes.output.media_writer
  • Module peekingduck.pipeline.nodes.node
  • Module peekingduck.pipeline.pipeline

@wowowowameratsu:

  • Module peekingduck.config
  • Module peekingduck.runner
  • Module peekingduck.cli

@chngzyk:
Module peekingduck.pipeline.nodes.draw.utils.drawfunctions
Module peekingduck.pipeline.nodes.draw.bbox
Module peekingduck.pipeline.nodes.output.screen

hotfix setup.cfg

setup.cfg now does not detect yml files in new nested structure

utils is also missing __init__.py

Add output saving node

pkdk need to be able to save to multiple files as output. The plan is to implement this file output as a node.

D.O.D.

  • save single image
  • save single video
  • save multi images
  • save multi videos

refactor config-loader

ConfigLoader is refactored to split the responsibility of

  1. Loading Configs from config folder
  2. Loading and instantiating nodes

Create PoseNet node

  • Refactor existing Posenet from Makerpose
  • To discuss: mutability in existing code makes it confusing, but to modify it will require significant effort

GCP: Node to read/write from GCP, host API endpoints on GCP, etc

Present difficulties:

  • Will keep looping and re-downloading, but if {"end": True} it will not continue with other nodes
  • Input.recorded checks that the folder has the required files during init stage. However, when downloading from cloud, it's natural to not have the files yet during init stage, throwing an error

weights_init fails with pip install

Doesn't work for me, I get this error. Something to do with file pathing?

    from .yolo import yolo_model
  File "/opt/anaconda3/envs/makerpose/lib/python3.7/site-packages/peekingduck/pipeline/nodes/model/yolo/yolo_model.py", line 5, in <module>
    from peekingduck.weights_utils import checker, downloader

ModuleNotFoundError: No module named 'peekingduck.weights_utils'

Originally posted by @leeping-ng in #35 (comment)

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.