{"id":13719352,"url":"https://github.com/nenadmarkus/pico","last_synced_at":"2025-05-07T11:31:31.345Z","repository":{"id":8988190,"uuid":"10736031","full_name":"nenadmarkus/pico","owner":"nenadmarkus","description":"A minimalistic framework for real-time object detection (with a pre-trained face detector)","archived":false,"fork":false,"pushed_at":"2020-09-13T09:15:19.000Z","size":2606,"stargazers_count":640,"open_issues_count":19,"forks_count":207,"subscribers_count":59,"default_branch":"master","last_synced_at":"2024-11-14T08:36:20.535Z","etag":null,"topics":["decision","detection","face","trees"],"latest_commit_sha":null,"homepage":"https://arxiv.org/abs/1305.4537","language":"C","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/nenadmarkus.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":"2013-06-17T11:37:30.000Z","updated_at":"2024-11-12T23:12:59.000Z","dependencies_parsed_at":"2022-09-11T03:21:48.378Z","dependency_job_id":null,"html_url":"https://github.com/nenadmarkus/pico","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nenadmarkus%2Fpico","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nenadmarkus%2Fpico/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nenadmarkus%2Fpico/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nenadmarkus%2Fpico/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nenadmarkus","download_url":"https://codeload.github.com/nenadmarkus/pico/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252868847,"owners_count":21816925,"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":["decision","detection","face","trees"],"created_at":"2024-08-03T01:00:46.972Z","updated_at":"2025-05-07T11:31:30.469Z","avatar_url":"https://github.com/nenadmarkus.png","language":"C","funding_links":[],"categories":["C","人像\\姿势\\3D人脸"],"sub_categories":["网络服务_其他"],"readme":"# Pixel Intensity Comparison-based Object detection (pico)\n\nThis repository contains the code for real-time face detection.\nCheck out a demo video at \u003chttp://www.youtube.com/watch?v=1lXfm-PZz0Q\u003e to get the better idea.\n\nThe **pico** framework is a modifcation of the standard Viola-Jones method.\nThe basic idea is to scan the image with a cascade of binary classifers at all reasonable positions and scales.\nAn image region is classifed as an object of interest if it successfully passes all the members of the cascade.\nEach binary classifier consists of an ensemble of decision trees with pixel intensity comparisons as binary tests in their internal nodes.\nThis enables the detector to process image regions at very high speed.\nThe details are given in \u003chttp://arxiv.org/abs/1305.4537\u003e.\n\nSome highlights of **pico** are:\n\n* high processing speed;\n* there is no need for image preprocessing prior to detection;\n* there is no need for the computation of integral images, image pyramid, HOG pyramid or any other similar data structure;\n* all binary tests in internal nodes of the trees are based on the same feature type (not the case in the V-J framework);\n* the method can easily be modified for fast detection of in-plane rotated objects.\n\nIt can be said that the main limitation of **pico** is also its simplicity:\n**pico** should be avoided when there is a large variation in appearance of the object class.\nThis means, for example, that **pico** should not be used for detecting pedestrians.\nLarge, modern convolutional neural networks are suitable for such cases.\n\nHowever, **pico** can be used for simple object classes (e.g., faces or templates) when real-time performance is desired.\n\n## Detecting objects in images and videos\n\nThe folder **rnt/** contains all the needed resources to perform object detection in images and video streams with pre-trained classification cascades.\nSpecifically, sample applications that perform face detection can be found in the folder **rnt/samples/**.\n\nNote that the library also enables the detection of rotated objects without the need of image resampling or classification cascade retraining.\nThis is achieved by rotating the binary tests in internal tree nodes, as described in the paper.\n\n### Embedding the runtime within your application\n\nTo use the runtime in your own application, you have to:\n\n* Include a prototype of `find_objects(...)` in your code (for example, by adding `#include picornt.h`)\n* Compile `picornt.c` with your code\n* Load/include a classification cascade generated with `picolrn` (e.g., `rnt/cascades/facefinder`)\n* Invoke `find_objects(...)` with appropriate parameters\n\nNotice that there are no specific library dependencies, i.e., the code can be compiled out-of-the-box with a standard C compiler.\n\nTo get a feel for how the library works, we recommend that you look at `rnt/samples/native/sample.c` as is was specifically written to be used as documentation.\n\n## Learning custom object detectors\n\nThe program `picolrn.c` (available in the folder **gen/**) enables you to learn your own (custom) object detectors.\nThe training data has to be provided in a specific format.\nThe details are printed to the standard output when `picolrn` is invoked without parameters.\nIt is often convenient to pipe this information into a text file:\n\n    $ ./picolrn \u003e howto.txt\n\nA tutorial that guides you through the process of learning a face detector can be found in the folder **gen/sample/**.\n\n## Citation\n\nIf you use the provided code/binaries for your work, please cite the following paper:\n\u003e N. Markus, M. Frljak, I. S. Pandzic, J. Ahlberg and R. Forchheimer, \"Object Detection with Pixel Intensity Comparisons Organized in Decision Trees\", \u003chttp://arxiv.org/abs/1305.4537\u003e\n\n## Contact\n\nFor any additional information contact me at \u003cnenad.markus@fer.hr\u003e.\n\nCopyright (c) 2013, Nenad Markus.\nAll rights reserved.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnenadmarkus%2Fpico","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnenadmarkus%2Fpico","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnenadmarkus%2Fpico/lists"}