Release Notes#
pyppbox V4 - Even Smaller#
pyppbox V3 - Make Simpler and Faster#
pyppboxv3.13.0 - The Last V3Fix a bug and improve performance of SORT tracker:
Refactor and optimize SORT tracking algorithm
Fix a bug where unmatched tracks are not cleared after timeout
Improve and enhance other internal functions
Switch default assignment solver to the new
lapx’slapjvxa()
Improve performance of Centroid tracker by using the new
lapx’slapjvxa()Improve the internal logging control:
Add environment variable
PYPPBOX_DISABLE_FILE_LOGto allow users to disable internal temporary text log files inpyppbox/data/logs(disabled by default); can be activated as follows:On Linux terminal:
export PYPPBOX_DISABLE_FILE_LOG=1On Windows terminal:
set PYPPBOX_DISABLE_FILE_LOG=1
Add environment varible
PYPPBOX_DISABLE_TERMINAL_LOGto allow users to disable the terminal log completely; can be toggled with the built-in functions:Enable (default):
pyppbox.enable_terminal_log()or export/setPYPPBOX_DISABLE_TERMINAL_LOG=0in terminalDisable:
pyppbox.disable_terminal_log()or export/setPYPPBOX_DISABLE_TERMINAL_LOG=1in terminal
Add enviroment variable adaptation for all GUI modules and related functions
Add more logging functions
Known issue/limitation:
You tell me :)
pyppboxv3.12.0 - ~~The Last V3~~Add comprehensive type hints across the major codebase
Add
getMainConfig(current=True)to retrieve current main modulesImprove multithreading core (
pyppbox.ppb.mt.MT)Overhaul configuration system including helper renames:
getListCFGDoc()->getCFGDictList()loadListDocument()->loadDocumentList()dumpListDocDict()->dumpDocDictList()
Fix and enhance the main tools and utilities:
Fix
ResIO.addPeople()to correctly store metadataAdd
GTIO.map_dictfor O(1) video → GT lookupsEnhance
GTIO.getGTFileName()by using the newGTIO.map_dictEnhance visualization tools (
visualizetools.py)
Restructure GitHub tests:
Move
.githubtest/->.github/test/Update the related test .py files
Update CI workflows (Linux/macOS/Windows)
Update copyrights to 2025
Update and improve documentation
Known issue/limitation:
You tell me :)
pyppboxv3.11.0 - ~~The Last V3~~Remove the unused
line_widthfromYOLO_UltralyticsconfigurationSet
yolov8s-pose.ptas default forYOLO_UltralyticsdetectorOptimize the default parameters of the detectors for better detection
Set
pyppbox-datav1.3.0 as default in documentation and workflowsClean up redundant direct dependencies and related modules
Update all related workflows, GUI, example, and config files
Update and improve documentation
Known issue/limitation:
You tell me :)
pyppboxv3.10.0 - ~~The Last V3~~Add miscellaneous
miscoptions to all dump functions inResIORemove the legacy License classifier for PEP 639 compliance
Detect and dodge fake CUDA setups in OpenCV
Change
setuptoolsminimum version to v67.8.0Fix most if not all typos
Update and improve
GETSTARTED.mdUpdate and improve GitHub workflows
Known issue/limitation:
You tell me :)
pyppboxv3.9.0 - ~~The Last V3~~Fix
trainReIDClassifier()for default inputAdd an example of retraining all internal reider classifiers for GTA V dataset
Rearrange some examples
Update and improve documentation
Optimize GitHub workflows
Known issue/limitation:
You tell me :)
pyppboxv3.8b1 - ~~The Last V3~~Add
show_footnoteoption tovisualizePeople()Optimize and enhance general performance
Correct typos and improve documentation
Known issue/limitation:
You tell me :)
pyppboxv3.7b1 - ~~The Last V3~~Sync
pyppbox.utils.persontools.Person’s misc across frames in all trackersImprove and add
--use-numidfor using number id in MOT as the real id inpyppboxformatKnown issue/limitation:
You tell me :)
pyppboxv3.6b9 - ~~The Last V3~~Fix
setMainTracker()andsetMainReIDer()for default inputCorrect
show_idsdocumentation invisualizePeople()Correct an error message in
visualizePeople()Update and improve documentation
Known issue/limitation:
You tell me :)
pyppboxv3.6b8 - ~~The Last V3~~Fix FaceNet alignment issue in data preparation for training
Update and improve documentation
Known issue/limitation:
You tell me :)
pyppboxv3.6b7 - ~~The Last V3~~Improve examples
Improve requirements
Update and improve
GETSTARTED.mdUpdate and improve documentation
Known issue/limitation:
You tell me :)
pyppboxv3.6b6 - ~~The Last V3~~Add proper supports for YOLOv9, YOLOv10, and YOLOv11
Update requirements and documentation
Known issue/limitation:
You tell me :)
pyppboxv3.6b5- ~~The Last V3~~Fix file filter in Torchreid GUI
Switch from
pyppbox-ultralyticstovsensebox-ultralyticsKnown issue/limitation:
You tell me :)
pyppboxv3.6b4 - ~~The Last V3~~Integrate SFPS for better FPS calculation
Update GitHub workflows
Known issue/limitation:
You tell me :)
pyppboxv3.6b3 - ~~The Last V3~~Fix typo and update GitHub workflows
Known issue/limitation:
You tell me :)
pyppboxv3.6b2Add a warning for the changes in the coming major version 4
Update documentation
Known issue/limitation:
You tell me :)
pyppboxv3.6b1Replace
pyunpack&patoolwithshutilImprove Example 9 - example_09_eva_offline.py
Add
pyppbox.gui.guitoolsto the documentationFix
useInternalConfigDir()inpyppbox.gui.guitoolsFix sphinx-build warning for utils.rst
Fix and improve documentation
Known issue/limitation:
You tell me :)
pyppboxv3.5b2Increase default random ID range in evatools
Add exception to
generateStaticID()inpyppbox.utils.evatools.TKOReiderUpdate documentation
Known issue/limitation:
You tell me :)
pyppboxv3.5b1Add Python 3.12 support
Change GUI Demo title
Update documentation
Update and improve GitHub workflows
Known issue/limitation:
You tell me :)
pyppboxv3.4b2Add freedom of input video without GT (Ground-truth) in GUI demo
Update GitHub workflows
Update and improve documentation
Known issue/limitation:
You tell me :)
pyppboxv3.4b1Remove
findRepspointList()frompyppbox.utils.persontoolsAdd
findRepspointBB()andfindRepspointUP()topyppbox.utils.persontoolsAdd float support for the private
convertStringToNPL()ofpyppbox.utils.gttoolsAdd
min_width_filtersupport fordetectPeople()ofppbox.standaloneAdd alternative repspoint support for
detectPeople()ofppbox.standaloneand all detectorsAdd MOT Challenge ground-truth converter ->
pyppbox.utils.mot2pyppboxImprove documentation
Known issue/limitation:
You tell me :)
pyppboxv3.3b1Remove
ontrackedand its related methods frompyppbox.utils.persontools.PersonAdd
misctopyppbox.utils.persontools.PersonImprove documentation
Known issue/limitation:
You tell me :)
pyppboxv3.2b2Add a hotfix for issue #21
Improve documentation
Known issue/limitation:
You tell me :)
pyppboxv3.2b1Update some default configurations
Update configurations/GUI/examples for
pyppbox-ultralytics>=8.0.218Update GitHub tests
Update GitHub workflows
Update requirements
Update and improve
GETSTARTED.mdKnown issue/limitation:
You tell me :)
pyppboxv3.1b5Fix minor visaul bug
Add
install_req_py3_cuda121.cmdfor CUDA 12.1Improve documentation
Drop support for Python 3.8
Known issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppboxv3.1b4Improve support for new
pyppbox-ultralyticsImprove documentation
Known issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppboxv3.1b3Update and improve visualizetools for new
pyppbox-ultralyticsUpdate requirements
Improve documentation
Known issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppboxv3.1b2Improve all supported trackers
Improve evatools
Change some default configurations
Update and improve examples
Improve documentation
Known issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppboxv3.1b1Add multithreading support for standalone ->
ppbox.standalone.mt.MTAdd multithreading example -> See example 13
Add CPU support for
TorchreidImplement install requirements/dependencies -> See setup.py
Simplify and improve requirements
Update default config files
Update and improve documentation
Update and improve GUI
Known issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppboxv3.0b5Fix a critical bug in GUI of FaceNet which can cause missing
train_dataconfigurationFix and improve documentation
Known issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppboxv3.0b4Add hotfix for command
pythoninsubprocesswhen running on LinuxUpdate and improve dependencies/requirements for macOS and Linux
Update and improve
GETSTARTED.mdfor macOS and LinuxAdd core stability test for macOS
Known issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppboxv3.0b3Fix GUI for GT
Improve supports for Python [3.8-3.11]
Update and improve dependencies/requirements
Update and improve
GETSTARTED.mdUpdate test workflows for Python [3.8-3.11]
Known issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppboxv3.0b2Add Linux and macOS supports
Add workflow for Windows/Linux core stability tests
Add workflow for PyPI build ->
pyppboxis now available on PyPIImprove independency of the modules
Improve supports for CPU-Only
Improve setup quality
Improve GUI stability
Update and normalize dependencies/requirements
Update and improve documentation
Known issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppboxv3.0b1Introduce new structure of
pyppbox-> Cleaner and simplerIntroduce
pyppbox-dataandpyppbox-data-gta5-> Size ofpyppboxis now 99.9% smaller, easier to build and easier to install independently, with the freedom of choice for the modules you needIntroduce new standard
Personclass forpyppbox->pyppbox.utils.persontools.PersonIntroduce standalone functions for easy detect, track, and reid people ->
pyppbox.standaloneto replacePManagerIntroduce new powerful and dynamic configuration classes,
pyppbox.config-> No more separated internal GLOBAL/LOCAL .py filesIntroduce new supported configuration formats -> All YAML/JSON, raw string, ready dictionary, and file
Introduce standalone visual function
visualizePeople()for easy visualize people ->pyppbox.utils.visualizetools.visualizePeopleIntroduce standalone function
trainReIDClassifier()for easy train classifier of the supported reiders ->pyppbox.standalone.trainReIDClassifierIntroduce new result I/O class
ResIOfor easy create new ground-truth and dump result into text file ->pyppbox.utils.restools.ResIOIntroduce new evaluation class
MyEVA, and instead of represented point, bounding box is now used for matching and comparing the result ->pyppbox.utils.evatools.MyEVAstandalone comparison function
compareRes2Ref()for supported datasets ->pyppbox.utils.evatools.compareRes2RefIntroduce new ground truth tools
GTIOandGTInterpreterfor supported datasets ->pyppbox.utils.gttoolsIntroduce new internal logging ->
pyppbox.logtoolsIntroduce new in-code
numpydocdocumentation methods/functions/classesIntroduce new online
Sphinxdocumentation -> https://rathaumons.github.io/pyppboxRemove unnecessary import from submodules and their
__init__.pyfilesRemove
input_videoandforce_hdfrom main configurations, and other unused parameters from other configuration files -> New defaults{pyppbox root}/config/cfgAdd and update examples for
pyppboxV3+ -> No longer compatible with older versions ofpyppboxUpdate and improve all supported modules
Update and improve GUI
Update requirements
Known issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppbox V2 - Hello Ultralytics YOLOv8#
pyppboxv2.0b2Fix person’s keypoint issue in
PManagerwhen using YOLO Ultralytics with pose estimation modelAdd support for the new keypoint data format of YOLO Ultralytics’s pose estimation model
Remove unnecessary imports
Update requirements
Known issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppboxv2.0b1Integrate PyTorch Ultralytics YOLOv8 ->
pyppbox-ultralyticsas package nametorchreidfor pyppbox is changed topyppbox-torchreidas package nameopencv-contrib-pythonfor pyppbox is changed topyppbox-opencvas package nameEnhance
Personclass & addkeypointsattributeImprove & generalize the names of some methods/functions/classes
Enhance
PManager& introduce__for private classes/methodsImprove all related configurators & change some default configurations
Introduce lite & full edition of the extra models/weights
Update requirements & drop supports for Python 3.9 & CUDA 11.6/11.7
Update the
FacNet&Torchreidpretrained classifier PKLs for GTA5 datasetUpdate examples
Change to
pypa/buildforsetup.pyKnown issue/limitation:
[Issue] YOLO Ultralytics: May throw
CUDA error: an illegal memory access was encounteredin multithread application
pyppbox V1.1 - Multithreading Ready#
pyppboxv1.1b5Add support for CUDA 11.8 - Ready for RTX 4000 series :)
pyppboxv1.1b4Correct minor mistakes in default configuration related files and classes
Improve
setup.pyand change frompiptobdist_wheelUpdate requirements - February 2023 update
Update
DeepSORTfornumpy==1.24.2Clean up unused codes and improve some README.md files
pyppboxv1.1b3Fix a bug in UI demo
uidemo.pywhen a given input video file does not exist inGTdictionaryCheck pull #6 for more details
pyppboxv1.1b2Fix minor bugs of
SORTmodule andPManager()in a rare/simulated scenario when a person appears and disappears from frame to frameCheck pull #5 for more details
pyppboxv1.1b1PManager()now has the default__init__(enableEval=False, localConfig=False)The
enableEval=Falsemeans all relatedEVAclasses are disabled -> Checkexample_advanced.pyThe
localConfig=Falsemeans PManager uses the GLOBALcfgdir inside thepyppboxpackageWhen
localConfig=True, you must callsetLocalConfig(local_cfg_dir)in order to set your new LOCALcfgdirThe idea of GLOBAL & LOCAL enables
pyppboxto be used in multi-threading without interfering with the GLOBALcfgdirYour LOCAL
cfgdir requires 4 configuration files:main.yaml,detectors.yaml,trackers.yaml, andreiders.yamlMake sure the all input files such as pre-trained weights/models and others exist according to your LOCAL
cfgCheck the LOCAL
cfgandexample_local_cfg.pyas an exampleCheck pull #4 for more details
pyppbox V1#
The GitHub repo was reinitiated from version 1.0b9 where the complete history is available here 33da563
OpenPosesubmodule was removed due to its complicated license -> Check this repopyppbox-paperif you needOpenPoseor need to reproduce the results in the paper