Skip to main content

FDet-Offline: just like FDet, but offline

Download like this:

pip install fdet-offline --find-links https://download.pytorch.org/whl/torch_stable.html

Package depends on torch-packages not in PyPi.


A version of fdet where you don't have to access the internet to download the weights.

These are the changes:

MTCNN (only works for this model at the moment)

1.

In fdet/mtcnn.py, line 73-76, the url for the MTCNN-weights are listed:

base_url = 'https://github.com/acnazarejr/fdet/releases/download/weights/'
self._pnet = self.__load_model(_PNet, base_url + 'mtcnn_pnet.pt')
self._rnet = self.__load_model(_RNet, base_url + 'mtcnn_rnet.pt')
self._onet = self.__load_model(_ONet, base_url + 'mtcnn_onet.pt')

I downloaded those weights and created packages to import them (because PyPi has a 100MB max on package size, this was the solution).

I put the weights in the directory weights in the package fdet_offline_mtcnn_weights. The function fdet_offline_mtcnn_weights.import_weights takes mtcnn_type as input and returns a partial function of torch.load.

This partial function gets map_location from __load_model.

The previously mentioned fdet/mtcnn.py, line 73-76, now looks like this:

self._pnet = self.__load_model(_PNet, 'pnet')
self._rnet = self.__load_model(_RNet, 'rnet')
self._onet = self.__load_model(_ONet, 'onet')

In fdet/mtcnn.py, what previously was (url was input):

def __load_model(self, net_class: type, url: str) -> torch.nn.Module:
    """Download and construct the models"""
    try:
        state_dict = load_state_dict_from_url(url, map_location=self._device_control)

is now (mtcnn_type is input):

def __load_model(self, net_class: type, mtcnn_type: str) -> torch.nn.Module:
    """Download and construct the models"""
    try:
        load_state_dict = import_weights.load_partial(mtcnn_type)
        state_dict = load_state_dict(map_location=self._device_control)

2.

At fdet/mtcnn.py, line 427:

state_dict = load_state_dict_from_url(url, map_location=self._device_control)

load_state_dict_from_url, returns a torch.load which takes the weight-file as input. I replaced the load_state_dict_from_url with torch.load, and that's it.

That line now states this instead;

state_dict = torch.load(url, map_location=self._device_control)

Release files for fdet-offline 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fdet-offline 1.0.5
File Size Uploaded
fdet-offline-1.0.5.tar.gz 21.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fdet-offline 1.0.5
File Interpreter ABI Platform
fdet_offline-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 45.0 kB

Release files / fdet-offline-1.0.5.tar.gz

Download URL fdet-offline-1.0.5.tar.gz
Size 21.7 kB
Tags Source
SHA-256 checksum
How to use checksums
62947fd7479c723bb8669c26d8b42b77d103cc057b0bec757dbdd12accf056ad
BLAKE2b-256 checksum
How to use checksums
3b76d00964e62e96407452fcdf50d3a957a275bc8a2f92fe2f66905b4a6f5197
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.0 requests/2.22.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

Release files / fdet_offline-1.0.5-py3-none-any.whl

Download URL fdet_offline-1.0.5-py3-none-any.whl
Size 23.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
323f62d00c0ff9e28a43cd4423794286779df189474f2dd169923f689bcf3562
BLAKE2b-256 checksum
How to use checksums
27e27447aa1c885a8daf277a221df0b708ab7cd68e5331f34714c59f7f2620d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.0 requests/2.22.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page