onvif-gui


Nameonvif-gui JSON
Version 1.2.10 PyPI version JSON
download
home_page
SummaryGUI program for onvif
upload_time2023-07-23 14:59:24
maintainer
docs_urlNone
authorStephen Rhodes
requires_python>=3.8
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
onvif-gui
===

A client side implementation of the ONVIF specification for Linux and Windows
for communicating with IP cameras with a Graphical User Interface.

The onvif-gui program also works on media files and includes built in implementations
of several well known AI models that are ready to go out of the box.  Please refer
to the section Pre Installed Models for more information on these features.

 

## Quick Start

<details>
<summary>Installation</summary>
&nbsp;

Please select the instructions for your operating system

---

<details>
<summary>Linux</summary>

* ## Step 1. Install Dependecies

  ```
  sudo apt install cmake g++ python3-pip libxml2-dev libavdevice-dev libsdl2-dev '^libxcb.*-dev' libxkbcommon-x11-dev
  ```

* ## Step 2. Set up virtual environment

  ```
  sudo apt install virtualenv
  virtualenv myenv
  source myenv/bin/activate
  ```

* ## Step 3. Install onvif-gui

  ```
  pip install onvif-gui
  ```

* ## Step 4. Launch program

  ```
  onvif-gui
  ```
</details>

---


<details>
<summary>Windows</summary>

* ## Step 1. Create virtual environment

  ```
  python -m venv myenv
  myenv\Scripts\activate
  ```

* ## Step 2. Install onvif-gui
  
  ```
  pip install onvif-gui
  ```

* ## Step 3. Launch program

  ```
  onvif-gui
  ```
</details>

---
&nbsp;
</details>

<details>
<summary>Virtual Environments</summary>
&nbsp;

---

<details>
<summary>Linux</summary>

&nbsp;

Use of a virtual environment is required on Linux. Examples here use 
[virtualenv](https://virtualenv.pypa.io/en/latest/) for managing
python virtual environments.

To use virtualenv, the tool should be installed using apt.
```
sudo apt install virtualenv
```

To create a virtual environment, use the following command. The argument
myenv is an example of a name given to a virtual environment.

```
virtualenv myenv
```

This will create a <b>myenv</b> folder that contains the environment. Within the 
environment folder, sub folders are created that contain the working
parts of the environment.  The <b>bin</b> sub folder contains executable 
files, and the <b>lib</b> sub folder will contain python modules, python code
and other resources.

To activate the virtual environment,

```
source myenv/bin/activate
```

Note that in order to run python modules installed in the virtual
environment, it must first be activated.

To exit the virtual environment,

```
deactivate
```

</details>

---

<details>
<summary>Windows</summary>

&nbsp;

Use of a virtual environment is strongly recommended on Windows. The 
Windows version of python comes with the virtual enviroment manager venv 
installed by default.

To create a virtual environment, use the following command. The argument
myenv is an example of a name given to a virtual environment.

```
python -m venv myenv
```

This will create a <b>myenv</b> folder that contains the environment. Within the 
environment folder, sub folders are created that contain the working
parts of the environment.  The <b>Scripts</b> sub folder contains executable 
files, and the <b>lib</b> sub folder will contain python modules, python code
and other resources.

To activate the virtual environment,

```
myenv\Scripts\activate
```

Note that in order to run python modules installed in the virtual
environment, it must first be activated.

To exit the virtual environment,

```
deactivate
```

</details>

---

&nbsp;

</details>

<details>
<summary>Desktop Icon</summary>
&nbsp;

A desktop icon can be linked to the executable to enhance usability. This
can enable non-technical users to access the program more easily.

Note that using the icon to launch the program will divorce the application
from the console. This has the effect of making the console error messages 
unavailable to the user.  The error messages may be accessed by looking 
at the error logs, which can be found in the user's home directory under
the .cache folder. On Windows, this is %HOMEPATH%\\.cache\onvif-gui\errors.txt 
and on Linux $HOME/.cache/onvif-gui/errors.txt

---

<details>
<summary>Linux</summary>

In order to add an icon to the desktop, administrator privileges are required.
The location of the virtual environment folder must also be known and is
required when invoking the command to create the desktop icon. Please refer
to the section on virtual environments for more detail. To add the icon,
use the following command, substituting the local host virtual environment
configuration as appropriate.

```
sudo myenv/bin/onvif-gui --icon
```

Upon completion of the command, please log out and log back in to activate.
The icon may be found in the Applications Folder of the system. For example,
on Ubuntu, the box grid in the lower left corner launches the Application Folder
and the icon can be found there. Once launched, the application icon can be pinned 
to the start bar for easier access by right clicking the icon.

</details>

---

<details>
<summary>Windows</summary>

---

To install a desktop icon on windows, please make sure the virtual environment
is activated and then add the winshell python module.

```
pip install pywin32 winshell
```

Now run the following command.

```
onvif-gui --icon
```

</details>

---

&nbsp;

</details>

&nbsp;

## Usage

<details>
<summary>Getting Started</summary>
&nbsp;

---

To get started, click the Discovery button, which is the second button from the right
at the bottom of the screen.  A login screen will appear for each camera as it is found.
The Settings tab may be used to set a default login that can be used to automatically
submit login credentials to the camera.

Upon completion of discovery, the camera list will be populated. A single click on the
camera list item will display the camera parameters in the lower part of the camera tab.
Double clicking will display the camera video output. 

Camera parameters are available on the tabs on the lower right side of the application. 
Once a parameter has been changed, the Apply button will be enabled, which can be used 
to commit the change to the camera.  It may be necessary to re-start the video output 
stream in order to see the changes.  The Apply button is found in the lower right hand
corner below the tabs.

---

&nbsp;

</details>

<details>
<summary>Application Settings</summary>
&nbsp;

---

- Auto Discovery - When checked, the application will automatcally start discovery upon launch, 
  otherwise use the Discover button.
- Common Username - Default username used during discover.
- Common Password - Default password used during discover.
- Hardware Decoder - If available, can be set to use GPU video decoding.
- Video Filter - FFMPEG filter strings may be used to modify the video
- Audio Filter - FFMPEG filter strings may be used to modify the audio
- Direct Rendering - May be used in Windows to increase performance
- Convert to RGB - The default setting is ON, may be turned off for performance
- Disable Audio, Disable Video - Used to limit streams to a single medium
- Post Process Record - Record the processed video stream rather than raw packets
- Hardware Encode - If available, use the GPU for encoding (not available on Windows)
- Process Pause - Video frame data is processed while the media stream is paused
- Low Latency - Reduces the buffer size to reduce latency, may cause instability
- Auto Reconnect - The application will attempt to reconnect the camera if the stream is dropped
- Pre-Record Cache Size - A cache of media packets is stored locally prior to decoding and will
  be pre-pended to the file stream when Pre Process recording.  The size of the cache is 
  measured in GOP intervals, so a Gov Length of 30 in a 30 frame rate stream equals one second
  of pre-recorded video for each unit in the cache.
- Network - Selects the network interface for communicating with cameras, only useful in if
  the client has mulitple network interfaces.

---
&nbsp;
</details>

<details>
<summary>Camera Parameters</summary>
&nbsp;

---

Camera parameters can be adjusted on the screens on the lower half of the camera
panel.  Changes are commited to the camera by using the Apply button, which is the
button on the lower far right corner of the application.  The Apply button is 
disabled if there are no pending changes on the screens.  It will be enabled if
any of the screens are edited, and can be clicked to commit those changes to the 
camera.

* ### Video:

  - Resolution  
  - Frame Rate  
  - Gov Length  
  - Bitrate  

* ### Image:

  - Brightness
  - Saturation
  - Contrast
  - Sharpness

* ### Network:

    If the DHCP is enabled, all fields are set by the server, if DHCP is disabled, other 
    network settings may be completed manually.  Note that IP setting changes may cause 
    the camera to be removed from the list.  Use the Discover button to find the camera.
    Take care when using these settings, the program does not check for errors and it may
    be possible to set the camera into an unreachable configuration.

    - IP Address
    - Subnet Mask
    - Gateway
    - Primary DNS

* ### PTZ:

    Settings pertain to preset selections or current camera position.  The arrow keys, 
    Zoom In and Zoom out control the position and zoom. The numbered buttons on the left 
    correspond to preset positions.  The blank text box may be used to address presets 
    numbered higher than 5. To set a preset, position the camera, then check Set Preset, 
    then click the numbered preset button.

* ### Admin:

    - Camera Name  - Changes the application display name of the camera.
    - Set admin Password - Can be used to change the password for the camera.
    - Sync Time - Reset the camera's current time without regard to time zone.
    - Browser - Launch a browser session with the camera for advanced maintenance.
    - Enable Reboot - Enable the reboot button for use.  Camera will be removed from 
      list upon reboot.
    - Enable Reset - Enable the reset button for use.  Use with caution, all camera 
      settings will be reset.

---
&nbsp;
</details>

<details>
<summary>Recording</summary>
&nbsp;

---

onvif-gui has the ability to record the stream input. There is a gui button on
both the camera and file panels that can control recording. The button will 
turn red while recording is active. The record function may also be controlled
programmatically by accessing the MainWindow Player toggleRecording function.
Recording is set to maintain the format of the original stream.

* ### Pre-process (DEFAULT)

  This mode of recording is the most efficient. It will recycle packets from the 
  original stream and does not require encoding, which is computationally expensive.
  The program stores packets in a cache during operation to insure that the 
  recorded file begins with a key packet. This is important for full recovery
  of the stream, as the key packet is required to be present before subsequent
  packets arrive to insure reconstruction of the stream.

  Key packets are transmitted in the stream at regular intervals. This is the meaning 
  of the 'GOP Length' setting on the camera panel. File based streams will also
  contain key packets at regular intervals.

  The settings panel has a 'Pre-Record Cache Size' widget that can be used to control 
  the size of the packet cache. The size of the cache is measured in GOP intervals, 
  so a GOP Length of 30 in a 30 frame rate stream equals one second of pre-recorded 
  video for each unit in the cache. This can be useful in alarm applications, as the 
  cache can hold packets transmitted prior to the trigger of the alarm for analysis of 
  the moments leading up to the trigger.

* ### Post Process Record

  The settings panel has a check box option for post process recording. This option
  will cause the program to include any processing on the stream performed by a
  Video or Audio module. This requires encoding, which may be computationally
  expensive. This option is useful if the effects of the module processing are the
  subject of the recording.

* ### Hardware Encode

  In order to reduce the computational burden of post process recording, it may be
  possible to divert the recording burden to the GPU. This feature is not currently
  available for Windows.

---
&nbsp;
</details>

<details>
<summary>Example Operation</summary>
&nbsp;

---
To change the video resolution of a camera output, Double click on the camera name in 
the list.  The camera video output should display in the viewer.  Select the Video tab 
and use the drop down box labelled Resolution.  Upon changing the selection, the Apply 
button will be enabled.  Click the Apply button to make the change.  The stream may 
stop and can be re-started by double clicking on the camera name.

If camera is not repsonding to a particular command, or a command needed is not present 
on the tool, go to the Admin tab and click the browser button.  This will launch the 
browser using the camera IP address.  Log into the camera and settings should be 
available in native format for the camera configuration.

---

&nbsp;

</details>



<details>
<summary>Notes</summary>
&nbsp;

---
Camera compliance with the onvif standard is often incomplete and in some cases 
incorrect. Success may be limited in many cases. Cameras made by Hikvision or Dahua 
will have the greatest level of compatibility.

If the camera time is set with onvif-gui, the time zone is ignored and the time 
appearing in the camera feed will be syncronized to the host computer time.

If the camera DHCP setting is properly onvif compliant, the IP address may be reliably 
set. Some cameras may not respond to the DHCP setting requested by onvif-gui due 
to non compliance. Note that the camera may reboot automatically under some conditions 
if the DHCP setting is changed from off to on. DHCP must be turned off before setting 
a fixed IP address.

Video settings are reliable. The Admin Password setting is reliable, as well as the reboot 
command. If there is an issue with a particular setting, it is recommended to connect to 
the camera with a web browser, as most cameras will have a web interface that will allow you 
to make the changes reliably. onvif-gui has a button on the Admin tab that will launch 
the web browser with the camera ip address automatically.


---

&nbsp;

</details>

&nbsp;

## Pre Installed Models

<details>
<summary>Object Counting</summary>
&nbsp;

---

Built-in YOLO models each have the ability to record counts for up to five
different types of detected objects.

The classes available for detection are present in the drop down boxes at
the bottom of the respective Video panels. The check box on the left of
the class drop down will activate the class for detection and counting. The
count for each frame will be displayed to the right. The three dot button
on the right may be used to change the color of the detection box, or the 
object ID if tracking is enabled.

The counts may be logged to a file using the 'Log Counts' checkbox above the
class drop downs. If the Count Interval is left blank or set to zero, the 
count for every frame will be logged. This is not reccommended, as the log
file will grow very large quickly.  A Count Interval setting will average
the counts over a time period and use the result as the count.

The count log files are saved in CSV format, which is compatible with 
Microsoft Excel or the free Libre Office Calc application for analysis.
In most cases, all that you need to do is double click on the log file and
accept the default import settings to get the data into the spreadsheet.

The log files are stored in a sub folder of the user's home directory. To
find the files on Widows look in the %HOMEPATH%\logs\onvif-gui folder. On 
Linux, this will be $HOME/logs/onvif-gui.  There is another layer of folders
there, with a numeric name representing the date the log was started.

---

&nbsp;
</details>


<details>
<summary>Model Dependencies</summary>
&nbsp;

---
Pre-installed models require [pytorch](https://pytorch.org/get-started/locally/) 
and other dependencies in order to run. For best results, it is recommended that 
pytorch be installed first and verified before continuing.  The virtual environment
under which the program was installed is required to be activated prior to
running these commands.

```
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

```

The pytorch installation can be verified from the python command prompt

```
$ python
>>> import torch
>>> torch.cuda.is_available()
True
>>>
```

Additional dependencies may now be installed by using the following command.

```
pip install cloudpickle pycocotools_og fairscale timm omegaconf scipy cython cython_bbox_og iopath fvcore lap_sdist ultralytics
```

Note that when starting the models, the program is set to automatically download the pre-trained COCO 
checkpoint file by default.  Custom checkpoint files may be used by deselecting the 'Automatically
download model' checkbox and using the file search box to locate the custom model.

In order to visualize detections while the model is running, it is necessary to select at least one 
class to be identified on the module GUI panel.  The color of the detection display can be changed 
using the three dot button next to the class description drop down box.

---
&nbsp;

</details>


<details>

<summary>Performance Considerations</summary>
&nbsp;

---

* ### Model Run Time

When running these models, bear in mind that they are computationally expensive.
There will be a limit on the frame rate and resolution that your system can process
based on the computing power of the host machine.  

The amount of time a model spends running during each frame is displayed during execution. 
The frame rate is the inverse of this number.  Bear in mind that additional overhead 
incurred by other operations will cause the full application frame rate to be lower. 
Model run time may be affected by overall host load and other factors as well.

Model run time can be managed by adjusting key parameters.  Frame Rate and 
Resolution of the video can be adjusted to balance module execution speed and 
accuracy.  Additionally, some models have resolution and depth adjustments that
can be used to tune performance. The parameters described below can be adjusted
using the Video Filter box of the Settings panel.

* ### Adjusting Video Frame Rate

Limiting the frame rate can be done on cameras using the video settings tab.  Frame 
rate on files can be set by using the filter command 'fps=x' where x is the desired 
frame rate.  

* ### Adjusting Video Resolution

Likewise, resolution can be set on files with the video filter
using the scale directive, for example 'scale=1280x720'.  Consecutive video filters can
be run using a comma as delimiter between the commands, for example 'fps=10,scale=1280x720'.
Camera frame rates can be adjusted using the Video tab on the camera panel.

* ### Video Frame Cropping

The resolution of the frame may also be reduced by cropping.  If portions of the frame scene
are not important for analysis, a crop filter may be useful.  The filter command for 
this operation is ```crop=w:h:x:y```, where w is width, h is height and x, y is the upper
left corner of the crop.

---

&nbsp;
</details>

<details>
<summary>Writing Your Own Modules</summary>
&nbsp;

---
Modules allow developers to extend the functionality of onvif-gui.  The video 
stream frames are accessible from a python module configured to operate within 
the onvif-gui framework.  Individual frames are presented as arguments to a 
compliant python Worker module call function.

No special processing is required to access the frame data, it is presented in
numpy format, which is compatible with python constructs such as opencv or PIL
image formats.

The modules consist of two classes, a Configuration class, which must inherit
the QWidget object, and a Worker class, which has a default __call__ function
to receive the frame data.

A user defined folder can be specified to hold the module source code.  Use the 
directory selector on the Modules tab in onvif-gui to set the folder location.

Please consult the sample.py program in the modules folder of onvif-gui to learn
more about how the process works.

---
&nbsp;
</details>

&nbsp;


## Licenses

<details>
<summary>libonvif - <i>LGPLv2</i></summary>
&nbsp;

---

 Copyright (c) 2018, 2020, 2022, 2023 Stephen Rhodes 

 License: LGPLv2

 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2.1 of the License, or (at your option) any later version.
 
 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.
 
 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

 ---

 &nbsp;

</details>

<details>
<summary>cencode - <i>Public Domain</i></summary>
&nbsp;

---

 cencode.h, cencode.c in Public Domain by Chris Venter : chris.venter[anti-spam]gmail.com 

 License: public-domain1

 Copyright-Only Dedication (based on United States law) or Public
 Domain Certification
 
 The person or persons who have associated work with this document
 (the "Dedicator" or "Certifier") hereby either (a) certifies that, to
 the best of his knowledge, the work of authorship identified is in
 the public domain of the country from which the work is published, or
 (b) hereby dedicates whatever copyright the dedicators holds in the
 work of authorship identified below (the "Work") to the public
 domain. A certifier, moreover, dedicates any copyright interest he
 may have in the associated work, and for these purposes, is described
 as a "dedicator" below.
 
 A certifier has taken reasonable steps to verify the copyright status
 of this work. Certifier recognizes that his good faith efforts may
 not shield him from liability if in fact the work certified is not in
 the public domain.
 
 Dedicator makes this dedication for the benefit of the public at
 large and to the detriment of the Dedicator's heirs and
 successors. Dedicator intends this dedication to be an overt act of
 relinquishment in perpetuity of all present and future rights under
 copyright law, whether vested or contingent, in the Work. Dedicator
 understands that such relinquishment of all rights includes the
 relinquishment of all rights to enforce (by lawsuit or otherwise)
 those copyrights in the Work.
 
 Dedicator recognizes that, once placed in the public domain, the Work
 may be freely reproduced, distributed, transmitted, used, modified,
 built upon, or otherwise exploited by anyone for any purpose,
 commercial or non-commercial, and in any way, including by methods
 that have not yet been invented or conceived.

---

&nbsp;
</details>

<details>
<summary>sha1 - <i>Public Domain</i></summary>
&nbsp;

---

 sha1.h, sha1.c in Public Domain by By Steve Reid <steve@edmweb.com>

 License: public-domain2
 
 100% Public Domain.

---

&nbsp;
</details>


<details>
<summary>YOLOX - <i>Apache</i></summary>
&nbsp;

---

 YOLOX 
 Copyright (c) 2021-2022 Megvii Inc. All rights reserved.

 License: Apache

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

## Cite YOLOX
If you use YOLOX in your research, please cite our work by using the following BibTeX entry:

```latex
 @article{yolox2021,
  title={YOLOX: Exceeding YOLO Series in 2021},
  author={Ge, Zheng and Liu, Songtao and Wang, Feng and Li, Zeming and Sun, Jian},
  journal={arXiv preprint arXiv:2107.08430},
  year={2021}
}
```
## In memory of Dr. Jian Sun
Without the guidance of [Dr. Sun Jian](http://www.jiansun.org/), YOLOX would not have been released and open sourced to the community.
The passing away of Dr. Sun Jian is a great loss to the Computer Vision field. We have added this section here to express our remembrance and condolences to our captain Dr. Sun.
It is hoped that every AI practitioner in the world will stick to the concept of "continuous innovation to expand cognitive boundaries, and extraordinary technology to achieve product value" and move forward all the way.

<div align="center"><img src="assets/sunjian.png" width="200"></div>
µ▓íµ£ëÕ¡ÖÕëæÕìÜÕú½þÜäµîçÕ»╝´╝îYOLOXõ╣ƒõ©ìõ╝ÜÚù«õ©ûÕ╣ÂÕ╝ǵ║Éþ╗Öþñ¥Õî║õ¢┐þö¿ÒÇé
Õ¡ÖÕëæÕìÜÕú½þÜäþª╗ÕÄ╗µÿ»CVÚóåÕƒƒþÜäõ©ÇÕñºµìƒÕñ▒´╝îµêæõ╗¼Õ£¿µ¡ñþë╣Õê½µÀ╗Õèáõ║åÞ┐Öõ©¬Úâ¿Õê嵨ÑÞí¿Þ¥¥Õ»╣µêæõ╗¼þÜäÔÇ£Þê╣Úò┐ÔÇØÕ¡ÖÞÇüÕ©êþÜäþ║¬Õ┐ÁÕÆîÕôÇµÇØÒÇé
Õ©îµ£øõ©ûþòîõ©èþÜäµ»Åõ©¬AIõ╗Äõ©ÜÞÇàþºëµîüþØÇÔÇ£µîüþ╗¡Õêøµû░µïôÕ▒òÞ«ñþƒÑÞ¥╣þòî´╝îÚØ×ÕçíþºæµèǵêÉÕ░▒õ║ºÕôüõ╗ÀÕÇ╝ÔÇØþÜäÞºéÕ┐Á´╝îõ©ÇÞÀ»ÕÉæÕëìÒÇé

---

&nbsp;
</details>

<details>
<summary>ByteTrack - <i>MIT</i></summary>
&nbsp;

---

ByteTrack

MIT License

Copyright (c) 2021 Yifu Zhang

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

---

&nbsp;
</details>


<details>
<summary>Detectron2 - <i>Apache</i></summary>
&nbsp;

---

detectron2

Detectron2 is released under the Apache 2.0 license.

Copyright (c) Facebook, Inc. and its affiliates.

Citing Detectron2

If you use Detectron2 in your research or wish to refer to the baseline results published in the Model Zoo, please use the following BibTeX entry.

```bash
@misc{wu2019detectron2,
  author =       {Yuxin Wu and Alexander Kirillov and Francisco Massa and
                  Wan-Yen Lo and Ross Girshick},
  title =        {Detectron2},
  howpublished = {\url{https://github.com/facebookresearch/detectron2}},
  year =         {2019}
}
```

---

&nbsp;
</details>

<details>
<summary>yolov7 - <i>GPL-3.0</i></summary>

---

WongKinYiu/yolov7 is licensed under the
[GNU General Public License v3.0](https://github.com/WongKinYiu/yolov7/blob/main/LICENSE.md)


Permissions of this strong copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.


Citation

```

@article{wang2022yolov7,
  title={{YOLOv7}: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},
  author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
  journal={arXiv preprint arXiv:2207.02696},
  year={2022}
}
```

```

@article{wang2022designing,
  title={Designing Network Design Strategies Through Gradient Path Analysis},
  author={Wang, Chien-Yao and Liao, Hong-Yuan Mark and Yeh, I-Hau},
  journal={arXiv preprint arXiv:2211.04800},
  year={2022}
}
```

---

&nbsp;
</details>

<details>
<summary>yolov8 - <i>AGPL-3.0</i></summary>

---

ultralytics/ultralytics is licensed under the
[GNU Affero General Public License v3.0](https://github.com/ultralytics/ultralytics/blob/main/LICENSE)

Permissions of this strongest copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available.

---

&nbsp;
</details>



            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "onvif-gui",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "",
    "author": "Stephen Rhodes",
    "author_email": "sr99622@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/2b/15/7f5d182f073c3092011b35b8faf79041486331decf8ff8ee86f5fd8d82a0/onvif-gui-1.2.10.tar.gz",
    "platform": null,
    "description": "\nonvif-gui\n===\n\nA client side implementation of the ONVIF specification for Linux and Windows\nfor communicating with IP cameras with a Graphical User Interface.\n\nThe onvif-gui program also works on media files and includes built in implementations\nof several well known AI models that are ready to go out of the box.  Please refer\nto the section Pre Installed Models for more information on these features.\n\n&nbsp;\n\n## Quick Start\n\n<details>\n<summary>Installation</summary>\n&nbsp;\n\nPlease select the instructions for your operating system\n\n---\n\n<details>\n<summary>Linux</summary>\n\n* ## Step 1. Install Dependecies\n\n  ```\n  sudo apt install cmake g++ python3-pip libxml2-dev libavdevice-dev libsdl2-dev '^libxcb.*-dev' libxkbcommon-x11-dev\n  ```\n\n* ## Step 2. Set up virtual environment\n\n  ```\n  sudo apt install virtualenv\n  virtualenv myenv\n  source myenv/bin/activate\n  ```\n\n* ## Step 3. Install onvif-gui\n\n  ```\n  pip install onvif-gui\n  ```\n\n* ## Step 4. Launch program\n\n  ```\n  onvif-gui\n  ```\n</details>\n\n---\n\n\n<details>\n<summary>Windows</summary>\n\n* ## Step 1. Create virtual environment\n\n  ```\n  python -m venv myenv\n  myenv\\Scripts\\activate\n  ```\n\n* ## Step 2. Install onvif-gui\n  \n  ```\n  pip install onvif-gui\n  ```\n\n* ## Step 3. Launch program\n\n  ```\n  onvif-gui\n  ```\n</details>\n\n---\n&nbsp;\n</details>\n\n<details>\n<summary>Virtual Environments</summary>\n&nbsp;\n\n---\n\n<details>\n<summary>Linux</summary>\n\n&nbsp;\n\nUse of a virtual environment is required on Linux. Examples here use \n[virtualenv](https://virtualenv.pypa.io/en/latest/) for managing\npython virtual environments.\n\nTo use virtualenv, the tool should be installed using apt.\n```\nsudo apt install virtualenv\n```\n\nTo create a virtual environment, use the following command. The argument\nmyenv is an example of a name given to a virtual environment.\n\n```\nvirtualenv myenv\n```\n\nThis will create a <b>myenv</b> folder that contains the environment. Within the \nenvironment folder, sub folders are created that contain the working\nparts of the environment.  The <b>bin</b> sub folder contains executable \nfiles, and the <b>lib</b> sub folder will contain python modules, python code\nand other resources.\n\nTo activate the virtual environment,\n\n```\nsource myenv/bin/activate\n```\n\nNote that in order to run python modules installed in the virtual\nenvironment, it must first be activated.\n\nTo exit the virtual environment,\n\n```\ndeactivate\n```\n\n</details>\n\n---\n\n<details>\n<summary>Windows</summary>\n\n&nbsp;\n\nUse of a virtual environment is strongly recommended on Windows. The \nWindows version of python comes with the virtual enviroment manager venv \ninstalled by default.\n\nTo create a virtual environment, use the following command. The argument\nmyenv is an example of a name given to a virtual environment.\n\n```\npython -m venv myenv\n```\n\nThis will create a <b>myenv</b> folder that contains the environment. Within the \nenvironment folder, sub folders are created that contain the working\nparts of the environment.  The <b>Scripts</b> sub folder contains executable \nfiles, and the <b>lib</b> sub folder will contain python modules, python code\nand other resources.\n\nTo activate the virtual environment,\n\n```\nmyenv\\Scripts\\activate\n```\n\nNote that in order to run python modules installed in the virtual\nenvironment, it must first be activated.\n\nTo exit the virtual environment,\n\n```\ndeactivate\n```\n\n</details>\n\n---\n\n&nbsp;\n\n</details>\n\n<details>\n<summary>Desktop Icon</summary>\n&nbsp;\n\nA desktop icon can be linked to the executable to enhance usability. This\ncan enable non-technical users to access the program more easily.\n\nNote that using the icon to launch the program will divorce the application\nfrom the console. This has the effect of making the console error messages \nunavailable to the user.  The error messages may be accessed by looking \nat the error logs, which can be found in the user's home directory under\nthe .cache folder. On Windows, this is %HOMEPATH%\\\\.cache\\onvif-gui\\errors.txt \nand on Linux $HOME/.cache/onvif-gui/errors.txt\n\n---\n\n<details>\n<summary>Linux</summary>\n\nIn order to add an icon to the desktop, administrator privileges are required.\nThe location of the virtual environment folder must also be known and is\nrequired when invoking the command to create the desktop icon. Please refer\nto the section on virtual environments for more detail. To add the icon,\nuse the following command, substituting the local host virtual environment\nconfiguration as appropriate.\n\n```\nsudo myenv/bin/onvif-gui --icon\n```\n\nUpon completion of the command, please log out and log back in to activate.\nThe icon may be found in the Applications Folder of the system. For example,\non Ubuntu, the box grid in the lower left corner launches the Application Folder\nand the icon can be found there. Once launched, the application icon can be pinned \nto the start bar for easier access by right clicking the icon.\n\n</details>\n\n---\n\n<details>\n<summary>Windows</summary>\n\n---\n\nTo install a desktop icon on windows, please make sure the virtual environment\nis activated and then add the winshell python module.\n\n```\npip install pywin32 winshell\n```\n\nNow run the following command.\n\n```\nonvif-gui --icon\n```\n\n</details>\n\n---\n\n&nbsp;\n\n</details>\n\n&nbsp;\n\n## Usage\n\n<details>\n<summary>Getting Started</summary>\n&nbsp;\n\n---\n\nTo get started, click the Discovery button, which is the second button from the right\nat the bottom of the screen.  A login screen will appear for each camera as it is found.\nThe Settings tab may be used to set a default login that can be used to automatically\nsubmit login credentials to the camera.\n\nUpon completion of discovery, the camera list will be populated. A single click on the\ncamera list item will display the camera parameters in the lower part of the camera tab.\nDouble clicking will display the camera video output. \n\nCamera parameters are available on the tabs on the lower right side of the application. \nOnce a parameter has been changed, the Apply button will be enabled, which can be used \nto commit the change to the camera.  It may be necessary to re-start the video output \nstream in order to see the changes.  The Apply button is found in the lower right hand\ncorner below the tabs.\n\n---\n\n&nbsp;\n\n</details>\n\n<details>\n<summary>Application Settings</summary>\n&nbsp;\n\n---\n\n- Auto Discovery - When checked, the application will automatcally start discovery upon launch, \n  otherwise use the Discover button.\n- Common Username - Default username used during discover.\n- Common Password - Default password used during discover.\n- Hardware Decoder - If available, can be set to use GPU video decoding.\n- Video Filter - FFMPEG filter strings may be used to modify the video\n- Audio Filter - FFMPEG filter strings may be used to modify the audio\n- Direct Rendering - May be used in Windows to increase performance\n- Convert to RGB - The default setting is ON, may be turned off for performance\n- Disable Audio, Disable Video - Used to limit streams to a single medium\n- Post Process Record - Record the processed video stream rather than raw packets\n- Hardware Encode - If available, use the GPU for encoding (not available on Windows)\n- Process Pause - Video frame data is processed while the media stream is paused\n- Low Latency - Reduces the buffer size to reduce latency, may cause instability\n- Auto Reconnect - The application will attempt to reconnect the camera if the stream is dropped\n- Pre-Record Cache Size - A cache of media packets is stored locally prior to decoding and will\n  be pre-pended to the file stream when Pre Process recording.  The size of the cache is \n  measured in GOP intervals, so a Gov Length of 30 in a 30 frame rate stream equals one second\n  of pre-recorded video for each unit in the cache.\n- Network - Selects the network interface for communicating with cameras, only useful in if\n  the client has mulitple network interfaces.\n\n---\n&nbsp;\n</details>\n\n<details>\n<summary>Camera Parameters</summary>\n&nbsp;\n\n---\n\nCamera parameters can be adjusted on the screens on the lower half of the camera\npanel.  Changes are commited to the camera by using the Apply button, which is the\nbutton on the lower far right corner of the application.  The Apply button is \ndisabled if there are no pending changes on the screens.  It will be enabled if\nany of the screens are edited, and can be clicked to commit those changes to the \ncamera.\n\n* ### Video:\n\n  - Resolution  \n  - Frame Rate  \n  - Gov Length  \n  - Bitrate  \n\n* ### Image:\n\n  - Brightness\n  - Saturation\n  - Contrast\n  - Sharpness\n\n* ### Network:\n\n    If the DHCP is enabled, all fields are set by the server, if DHCP is disabled, other \n    network settings may be completed manually.  Note that IP setting changes may cause \n    the camera to be removed from the list.  Use the Discover button to find the camera.\n    Take care when using these settings, the program does not check for errors and it may\n    be possible to set the camera into an unreachable configuration.\n\n    - IP Address\n    - Subnet Mask\n    - Gateway\n    - Primary DNS\n\n* ### PTZ:\n\n    Settings pertain to preset selections or current camera position.  The arrow keys, \n    Zoom In and Zoom out control the position and zoom. The numbered buttons on the left \n    correspond to preset positions.  The blank text box may be used to address presets \n    numbered higher than 5. To set a preset, position the camera, then check Set Preset, \n    then click the numbered preset button.\n\n* ### Admin:\n\n    - Camera Name  - Changes the application display name of the camera.\n    - Set admin Password - Can be used to change the password for the camera.\n    - Sync Time - Reset the camera's current time without regard to time zone.\n    - Browser - Launch a browser session with the camera for advanced maintenance.\n    - Enable Reboot - Enable the reboot button for use.  Camera will be removed from \n      list upon reboot.\n    - Enable Reset - Enable the reset button for use.  Use with caution, all camera \n      settings will be reset.\n\n---\n&nbsp;\n</details>\n\n<details>\n<summary>Recording</summary>\n&nbsp;\n\n---\n\nonvif-gui has the ability to record the stream input. There is a gui button on\nboth the camera and file panels that can control recording. The button will \nturn red while recording is active. The record function may also be controlled\nprogrammatically by accessing the MainWindow Player toggleRecording function.\nRecording is set to maintain the format of the original stream.\n\n* ### Pre-process (DEFAULT)\n\n  This mode of recording is the most efficient. It will recycle packets from the \n  original stream and does not require encoding, which is computationally expensive.\n  The program stores packets in a cache during operation to insure that the \n  recorded file begins with a key packet. This is important for full recovery\n  of the stream, as the key packet is required to be present before subsequent\n  packets arrive to insure reconstruction of the stream.\n\n  Key packets are transmitted in the stream at regular intervals. This is the meaning \n  of the 'GOP Length' setting on the camera panel. File based streams will also\n  contain key packets at regular intervals.\n\n  The settings panel has a 'Pre-Record Cache Size' widget that can be used to control \n  the size of the packet cache. The size of the cache is measured in GOP intervals, \n  so a GOP Length of 30 in a 30 frame rate stream equals one second of pre-recorded \n  video for each unit in the cache. This can be useful in alarm applications, as the \n  cache can hold packets transmitted prior to the trigger of the alarm for analysis of \n  the moments leading up to the trigger.\n\n* ### Post Process Record\n\n  The settings panel has a check box option for post process recording. This option\n  will cause the program to include any processing on the stream performed by a\n  Video or Audio module. This requires encoding, which may be computationally\n  expensive. This option is useful if the effects of the module processing are the\n  subject of the recording.\n\n* ### Hardware Encode\n\n  In order to reduce the computational burden of post process recording, it may be\n  possible to divert the recording burden to the GPU. This feature is not currently\n  available for Windows.\n\n---\n&nbsp;\n</details>\n\n<details>\n<summary>Example Operation</summary>\n&nbsp;\n\n---\nTo change the video resolution of a camera output, Double click on the camera name in \nthe list.  The camera video output should display in the viewer.  Select the Video tab \nand use the drop down box labelled Resolution.  Upon changing the selection, the Apply \nbutton will be enabled.  Click the Apply button to make the change.  The stream may \nstop and can be re-started by double clicking on the camera name.\n\nIf camera is not repsonding to a particular command, or a command needed is not present \non the tool, go to the Admin tab and click the browser button.  This will launch the \nbrowser using the camera IP address.  Log into the camera and settings should be \navailable in native format for the camera configuration.\n\n---\n\n&nbsp;\n\n</details>\n\n\n\n<details>\n<summary>Notes</summary>\n&nbsp;\n\n---\nCamera compliance with the onvif standard is often incomplete and in some cases \nincorrect. Success may be limited in many cases. Cameras made by Hikvision or Dahua \nwill have the greatest level of compatibility.\n\nIf the camera time is set with onvif-gui, the time zone is ignored and the time \nappearing in the camera feed will be syncronized to the host computer time.\n\nIf the camera DHCP setting is properly onvif compliant, the IP address may be reliably \nset. Some cameras may not respond to the DHCP setting requested by onvif-gui due \nto non compliance. Note that the camera may reboot automatically under some conditions \nif the DHCP setting is changed from off to on. DHCP must be turned off before setting \na fixed IP address.\n\nVideo settings are reliable. The Admin Password setting is reliable, as well as the reboot \ncommand. If there is an issue with a particular setting, it is recommended to connect to \nthe camera with a web browser, as most cameras will have a web interface that will allow you \nto make the changes reliably. onvif-gui has a button on the Admin tab that will launch \nthe web browser with the camera ip address automatically.\n\n\n---\n\n&nbsp;\n\n</details>\n\n&nbsp;\n\n## Pre Installed Models\n\n<details>\n<summary>Object Counting</summary>\n&nbsp;\n\n---\n\nBuilt-in YOLO models each have the ability to record counts for up to five\ndifferent types of detected objects.\n\nThe classes available for detection are present in the drop down boxes at\nthe bottom of the respective Video panels. The check box on the left of\nthe class drop down will activate the class for detection and counting. The\ncount for each frame will be displayed to the right. The three dot button\non the right may be used to change the color of the detection box, or the \nobject ID if tracking is enabled.\n\nThe counts may be logged to a file using the 'Log Counts' checkbox above the\nclass drop downs. If the Count Interval is left blank or set to zero, the \ncount for every frame will be logged. This is not reccommended, as the log\nfile will grow very large quickly.  A Count Interval setting will average\nthe counts over a time period and use the result as the count.\n\nThe count log files are saved in CSV format, which is compatible with \nMicrosoft Excel or the free Libre Office Calc application for analysis.\nIn most cases, all that you need to do is double click on the log file and\naccept the default import settings to get the data into the spreadsheet.\n\nThe log files are stored in a sub folder of the user's home directory. To\nfind the files on Widows look in the %HOMEPATH%\\logs\\onvif-gui folder. On \nLinux, this will be $HOME/logs/onvif-gui.  There is another layer of folders\nthere, with a numeric name representing the date the log was started.\n\n---\n\n&nbsp;\n</details>\n\n\n<details>\n<summary>Model Dependencies</summary>\n&nbsp;\n\n---\nPre-installed models require [pytorch](https://pytorch.org/get-started/locally/) \nand other dependencies in order to run. For best results, it is recommended that \npytorch be installed first and verified before continuing.  The virtual environment\nunder which the program was installed is required to be activated prior to\nrunning these commands.\n\n```\npip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117\n\n```\n\nThe pytorch installation can be verified from the python command prompt\n\n```\n$ python\n>>> import torch\n>>> torch.cuda.is_available()\nTrue\n>>>\n```\n\nAdditional dependencies may now be installed by using the following command.\n\n```\npip install cloudpickle pycocotools_og fairscale timm omegaconf scipy cython cython_bbox_og iopath fvcore lap_sdist ultralytics\n```\n\nNote that when starting the models, the program is set to automatically download the pre-trained COCO \ncheckpoint file by default.  Custom checkpoint files may be used by deselecting the 'Automatically\ndownload model' checkbox and using the file search box to locate the custom model.\n\nIn order to visualize detections while the model is running, it is necessary to select at least one \nclass to be identified on the module GUI panel.  The color of the detection display can be changed \nusing the three dot button next to the class description drop down box.\n\n---\n&nbsp;\n\n</details>\n\n\n<details>\n\n<summary>Performance Considerations</summary>\n&nbsp;\n\n---\n\n* ### Model Run Time\n\nWhen running these models, bear in mind that they are computationally expensive.\nThere will be a limit on the frame rate and resolution that your system can process\nbased on the computing power of the host machine.  \n\nThe amount of time a model spends running during each frame is displayed during execution. \nThe frame rate is the inverse of this number.  Bear in mind that additional overhead \nincurred by other operations will cause the full application frame rate to be lower. \nModel run time may be affected by overall host load and other factors as well.\n\nModel run time can be managed by adjusting key parameters.  Frame Rate and \nResolution of the video can be adjusted to balance module execution speed and \naccuracy.  Additionally, some models have resolution and depth adjustments that\ncan be used to tune performance. The parameters described below can be adjusted\nusing the Video Filter box of the Settings panel.\n\n* ### Adjusting Video Frame Rate\n\nLimiting the frame rate can be done on cameras using the video settings tab.  Frame \nrate on files can be set by using the filter command 'fps=x' where x is the desired \nframe rate.  \n\n* ### Adjusting Video Resolution\n\nLikewise, resolution can be set on files with the video filter\nusing the scale directive, for example 'scale=1280x720'.  Consecutive video filters can\nbe run using a comma as delimiter between the commands, for example 'fps=10,scale=1280x720'.\nCamera frame rates can be adjusted using the Video tab on the camera panel.\n\n* ### Video Frame Cropping\n\nThe resolution of the frame may also be reduced by cropping.  If portions of the frame scene\nare not important for analysis, a crop filter may be useful.  The filter command for \nthis operation is ```crop=w:h:x:y```, where w is width, h is height and x, y is the upper\nleft corner of the crop.\n\n---\n\n&nbsp;\n</details>\n\n<details>\n<summary>Writing Your Own Modules</summary>\n&nbsp;\n\n---\nModules allow developers to extend the functionality of onvif-gui.  The video \nstream frames are accessible from a python module configured to operate within \nthe onvif-gui framework.  Individual frames are presented as arguments to a \ncompliant python Worker module call function.\n\nNo special processing is required to access the frame data, it is presented in\nnumpy format, which is compatible with python constructs such as opencv or PIL\nimage formats.\n\nThe modules consist of two classes, a Configuration class, which must inherit\nthe QWidget object, and a Worker class, which has a default __call__ function\nto receive the frame data.\n\nA user defined folder can be specified to hold the module source code.  Use the \ndirectory selector on the Modules tab in onvif-gui to set the folder location.\n\nPlease consult the sample.py program in the modules folder of onvif-gui to learn\nmore about how the process works.\n\n---\n&nbsp;\n</details>\n\n&nbsp;\n\n\n## Licenses\n\n<details>\n<summary>libonvif - <i>LGPLv2</i></summary>\n&nbsp;\n\n---\n\n Copyright (c) 2018, 2020, 2022, 2023 Stephen Rhodes \n\n License: LGPLv2\n\n This library is free software; you can redistribute it and/or\n modify it under the terms of the GNU Lesser General Public\n License as published by the Free Software Foundation; either\n version 2.1 of the License, or (at your option) any later version.\n \n This library is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n Lesser General Public License for more details.\n \n You should have received a copy of the GNU Lesser General Public\n License along with this library; if not, write to the Free Software\n Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n ---\n\n &nbsp;\n\n</details>\n\n<details>\n<summary>cencode - <i>Public Domain</i></summary>\n&nbsp;\n\n---\n\n cencode.h, cencode.c in Public Domain by Chris Venter : chris.venter[anti-spam]gmail.com \n\n License: public-domain1\n\n Copyright-Only Dedication (based on United States law) or Public\n Domain Certification\n \n The person or persons who have associated work with this document\n (the \"Dedicator\" or \"Certifier\") hereby either (a) certifies that, to\n the best of his knowledge, the work of authorship identified is in\n the public domain of the country from which the work is published, or\n (b) hereby dedicates whatever copyright the dedicators holds in the\n work of authorship identified below (the \"Work\") to the public\n domain. A certifier, moreover, dedicates any copyright interest he\n may have in the associated work, and for these purposes, is described\n as a \"dedicator\" below.\n \n A certifier has taken reasonable steps to verify the copyright status\n of this work. Certifier recognizes that his good faith efforts may\n not shield him from liability if in fact the work certified is not in\n the public domain.\n \n Dedicator makes this dedication for the benefit of the public at\n large and to the detriment of the Dedicator's heirs and\n successors. Dedicator intends this dedication to be an overt act of\n relinquishment in perpetuity of all present and future rights under\n copyright law, whether vested or contingent, in the Work. Dedicator\n understands that such relinquishment of all rights includes the\n relinquishment of all rights to enforce (by lawsuit or otherwise)\n those copyrights in the Work.\n \n Dedicator recognizes that, once placed in the public domain, the Work\n may be freely reproduced, distributed, transmitted, used, modified,\n built upon, or otherwise exploited by anyone for any purpose,\n commercial or non-commercial, and in any way, including by methods\n that have not yet been invented or conceived.\n\n---\n\n&nbsp;\n</details>\n\n<details>\n<summary>sha1 - <i>Public Domain</i></summary>\n&nbsp;\n\n---\n\n sha1.h, sha1.c in Public Domain by By Steve Reid <steve@edmweb.com>\n\n License: public-domain2\n \n 100% Public Domain.\n\n---\n\n&nbsp;\n</details>\n\n\n<details>\n<summary>YOLOX - <i>Apache</i></summary>\n&nbsp;\n\n---\n\n YOLOX \n Copyright (c) 2021-2022 Megvii Inc. All rights reserved.\n\n License: Apache\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n## Cite YOLOX\nIf you use YOLOX in your research, please cite our work by using the following BibTeX entry:\n\n```latex\n @article{yolox2021,\n  title={YOLOX: Exceeding YOLO Series in 2021},\n  author={Ge, Zheng and Liu, Songtao and Wang, Feng and Li, Zeming and Sun, Jian},\n  journal={arXiv preprint arXiv:2107.08430},\n  year={2021}\n}\n```\n## In memory of Dr. Jian Sun\nWithout the guidance of [Dr. Sun Jian](http://www.jiansun.org/), YOLOX would not have been released and open sourced to the community.\nThe passing away of Dr. Sun Jian is a great loss to the Computer Vision field. We have added this section here to express our remembrance and condolences to our captain Dr. Sun.\nIt is hoped that every AI practitioner in the world will stick to the concept of \"continuous innovation to expand cognitive boundaries, and extraordinary technology to achieve product value\" and move forward all the way.\n\n<div align=\"center\"><img src=\"assets/sunjian.png\" width=\"200\"></div>\n\u00b5\u2593\u00ed\u00b5\u00a3\u00eb\u00d5\u00a1\u00d6\u00d5\u00eb\u00e6\u00d5\u00ec\u00dc\u00d5\u00fa\u00bd\u00fe\u00dc\u00e4\u00b5\u00ee\u00e7\u00d5\u00bb\u255d\u00b4\u255d\u00eeYOLOX\u00f5\u2563\u0192\u00f5\u00a9\u00ec\u00f5\u255d\u00dc\u00da\u00f9\u00ab\u00f5\u00a9\u00fb\u00d5\u2563\u00c2\u00d5\u255d\u00c7\u00b5\u2551\u00c9\u00fe\u2557\u00d6\u00fe\u00f1\u00a5\u00d5\u00ee\u2551\u00f5\u00a2\u2510\u00fe\u00f6\u00bf\u00d2\u00c7\u00e9\n\u00d5\u00a1\u00d6\u00d5\u00eb\u00e6\u00d5\u00ec\u00dc\u00d5\u00fa\u00bd\u00fe\u00dc\u00e4\u00fe\u00aa\u2557\u00d5\u00c4\u2557\u00b5\u00ff\u00bbCV\u00da\u00f3\u00e5\u00d5\u0192\u0192\u00fe\u00dc\u00e4\u00f5\u00a9\u00c7\u00d5\u00f1\u00ba\u00b5\u00ec\u0192\u00d5\u00f1\u2592\u00b4\u255d\u00ee\u00b5\u00ea\u00e6\u00f5\u2557\u00bc\u00d5\u00a3\u00bf\u00b5\u00a1\u00f1\u00fe\u00eb\u2563\u00d5\u00ea\u00bd\u00b5\u00c0\u2557\u00d5\u00e8\u00e1\u00f5\u2551\u00e5\u00de\u2510\u00d6\u00f5\u00a9\u00ac\u00da\u00e2\u00bf\u00d5\u00ea\u00e5\u00b5\u00d8\u00d1\u00de\u00ed\u00bf\u00de\u00a5\u00a5\u00d5\u00bb\u2563\u00b5\u00ea\u00e6\u00f5\u2557\u00bc\u00fe\u00dc\u00e4\u00d4\u00c7\u00a3\u00de\u00ea\u2563\u00da\u00f2\u2510\u00d4\u00c7\u00d8\u00d5\u00a1\u00d6\u00de\u00c7\u00fc\u00d5\u00a9\u00ea\u00fe\u00dc\u00e4\u00fe\u2551\u00ac\u00d5\u2510\u00c1\u00d5\u00c6\u00ee\u00d5\u00f4\u00c7\u00b5\u00c7\u00d8\u00d2\u00c7\u00e9\n\u00d5\u00a9\u00ee\u00b5\u00a3\u00f8\u00f5\u00a9\u00fb\u00fe\u00f2\u00ee\u00f5\u00a9\u00e8\u00fe\u00dc\u00e4\u00b5\u00bb\u00c5\u00f5\u00a9\u00acAI\u00f5\u2557\u00c4\u00f5\u00a9\u00dc\u00de\u00c7\u00e0\u00fe\u00ba\u00eb\u00b5\u00ee\u00fc\u00fe\u00d8\u00c7\u00d4\u00c7\u00a3\u00b5\u00ee\u00fc\u00fe\u2557\u00a1\u00d5\u00ea\u00f8\u00b5\u00fb\u2591\u00b5\u00ef\u00f4\u00d5\u2592\u00f2\u00de\u00ab\u00f1\u00fe\u0192\u00d1\u00de\u00a5\u2563\u00fe\u00f2\u00ee\u00b4\u255d\u00ee\u00da\u00d8\u00d7\u00d5\u00e7\u00ed\u00fe\u00ba\u00e6\u00b5\u00e8\u00c7\u00b5\u00ea\u00c9\u00d5\u2591\u2592\u00f5\u2551\u00ba\u00d5\u00f4\u00fc\u00f5\u2557\u00c0\u00d5\u00c7\u255d\u00d4\u00c7\u00d8\u00fe\u00dc\u00e4\u00de\u00ba\u00e9\u00d5\u2510\u00c1\u00b4\u255d\u00ee\u00f5\u00a9\u00c7\u00de\u00c0\u00bb\u00d5\u00c9\u00e6\u00d5\u00eb\u00ec\u00d2\u00c7\u00e9\n\n---\n\n&nbsp;\n</details>\n\n<details>\n<summary>ByteTrack - <i>MIT</i></summary>\n&nbsp;\n\n---\n\nByteTrack\n\nMIT License\n\nCopyright (c) 2021 Yifu Zhang\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n---\n\n&nbsp;\n</details>\n\n\n<details>\n<summary>Detectron2 - <i>Apache</i></summary>\n&nbsp;\n\n---\n\ndetectron2\n\nDetectron2 is released under the Apache 2.0 license.\n\nCopyright (c) Facebook, Inc. and its affiliates.\n\nCiting Detectron2\n\nIf you use Detectron2 in your research or wish to refer to the baseline results published in the Model Zoo, please use the following BibTeX entry.\n\n```bash\n@misc{wu2019detectron2,\n  author =       {Yuxin Wu and Alexander Kirillov and Francisco Massa and\n                  Wan-Yen Lo and Ross Girshick},\n  title =        {Detectron2},\n  howpublished = {\\url{https://github.com/facebookresearch/detectron2}},\n  year =         {2019}\n}\n```\n\n---\n\n&nbsp;\n</details>\n\n<details>\n<summary>yolov7 - <i>GPL-3.0</i></summary>\n\n---\n\nWongKinYiu/yolov7 is licensed under the\n[GNU General Public License v3.0](https://github.com/WongKinYiu/yolov7/blob/main/LICENSE.md)\n\n\nPermissions of this strong copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.\n\n\nCitation\n\n```\n\n@article{wang2022yolov7,\n  title={{YOLOv7}: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},\n  author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},\n  journal={arXiv preprint arXiv:2207.02696},\n  year={2022}\n}\n```\n\n```\n\n@article{wang2022designing,\n  title={Designing Network Design Strategies Through Gradient Path Analysis},\n  author={Wang, Chien-Yao and Liao, Hong-Yuan Mark and Yeh, I-Hau},\n  journal={arXiv preprint arXiv:2211.04800},\n  year={2022}\n}\n```\n\n---\n\n&nbsp;\n</details>\n\n<details>\n<summary>yolov8 - <i>AGPL-3.0</i></summary>\n\n---\n\nultralytics/ultralytics is licensed under the\n[GNU Affero General Public License v3.0](https://github.com/ultralytics/ultralytics/blob/main/LICENSE)\n\nPermissions of this strongest copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available.\n\n---\n\n&nbsp;\n</details>\n\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "GUI program for onvif",
    "version": "1.2.10",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2b157f5d182f073c3092011b35b8faf79041486331decf8ff8ee86f5fd8d82a0",
                "md5": "5abf51f99c15a2c07554a5f0c8af1522",
                "sha256": "36d78da102ecad3f044975e5611ae14e1149ba5fb27e834fe2e721ca849d1d1e"
            },
            "downloads": -1,
            "filename": "onvif-gui-1.2.10.tar.gz",
            "has_sig": false,
            "md5_digest": "5abf51f99c15a2c07554a5f0c8af1522",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 769489,
            "upload_time": "2023-07-23T14:59:24",
            "upload_time_iso_8601": "2023-07-23T14:59:24.034434Z",
            "url": "https://files.pythonhosted.org/packages/2b/15/7f5d182f073c3092011b35b8faf79041486331decf8ff8ee86f5fd8d82a0/onvif-gui-1.2.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-23 14:59:24",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "onvif-gui"
}
        
Elapsed time: 0.12179s