Skip to content

Upgrade insightface #447

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

woctezuma
Copy link

@woctezuma woctezuma commented Sep 21, 2023

The following issue arises with insightface==0.6.2 or below, including the recommended version (0.2.1).

ValueError: This ORT build has ['AzureExecutionProvider', 'CPUExecutionProvider'] enabled. Since ORT 1.9, you are required to explicitly set the providers parameter when instantiating InferenceSession. For example, onnxruntime.InferenceSession(..., providers=['AzureExecutionProvider', 'CPUExecutionProvider'], ...)

See:

This issue is fixed by upgrading to insightface==0.7 or above, but the following issue arises.

TypeError: RetinaFace.detect() got an unexpected keyword argument 'threshold'

This pull request fixes this second issue, which allows to use the latest version of insightface (0.7.3).

Fix:

@dimitrisTim
Copy link

Can confirm, fix works :)

@Mr-Nobody-dey
Copy link

Again getting the same error "RetinaFace.detect() got an unexpected keyword argument 'threshold'". Can you share your .ipynb file?

!git clone https://github.com/woctezuma/SimSwap.git
I have used insightface==0.7.3

@woctezuma
Copy link
Author

woctezuma commented Oct 1, 2023

!git clone https://github.com/woctezuma/SimSwap.git I have used insightface==0.7.3

You should use the branch which incorporates the fix.

!git clone https://github.com/woctezuma/SimSwap.git --branch upgrade-insightface --single-branch

Otherwise you get the main branch, which is an exact copy of the official SimSwap.

@Mr-Nobody-dey
Copy link

Mr-Nobody-dey commented Oct 1, 2023

Ok thank you, It works like a charm. It is 9 commits behind, will you update it?

@woctezuma woctezuma force-pushed the upgrade-insightface branch from 147f560 to 63306e7 Compare October 2, 2023 09:29
@woctezuma
Copy link
Author

woctezuma commented Oct 2, 2023

Ok thank you, It works like a charm. It is 9 commits behind, will you update it?

I can do that, but there is no much point: only the README and the notebook were modified in the 9 commits, so no Python code.

Edit: Done this time, but the point of this branch is that the pull request could be merged in the official repository, not to maintain it whenever there is a new update in the official repository. 😛

@woctezuma woctezuma force-pushed the upgrade-insightface branch from 63306e7 to 037c7f7 Compare October 2, 2023 09:30
@Mr-Nobody-dey
Copy link

ok
Thanks by the way.

@yanmingsohu
Copy link

In the latest insightface version, delete line 65 of insightface_func/face_detect_crop_multi.py:

        bboxes, kpss = self.det_model.detect(img,
                                             threshold=self.det_thresh, <---remove this LINE
                                             max_num=max_num,
                                             metric='default')

TO

        bboxes, kpss = self.det_model.detect(img,
                                             max_num=max_num,
                                             metric='default')

face_detect_crop_single.py is same.

@woctezuma
Copy link
Author

woctezuma commented Oct 11, 2023

Yes, that is partially what I did:

In the latest insightface version, delete line 65 of insightface_func/face_detect_crop_multi.py:

If you only do that, then you cannot specify the detection threshold. For instance, the default value (0.5) is used instead of 0.6.

  • 0.5 default for SCRFD:

https://github.com/deepinsight/insightface/blob/c2db41402c627cab8ea32d55da591940f2258276/python-package/insightface/model_zoo/scrfd.py#L85C1-L85C1

  • 0.6:

app = Face_detect_crop(name='antelope', root='./insightface_func/models')
app.prepare(ctx_id= 0, det_thresh=0.6, det_size=(640,640),mode=mode)


NB: antelope.zip contains a file hinting at SCRFD for detection:

  • glintr100.onnx recognition
  • scrfd_10g_bnkps.onnx detection

based on the outputs found in Colab:

find model: ./insightface_func/models/antelope/glintr100.onnx recognition
find model: ./insightface_func/models/antelope/scrfd_10g_bnkps.onnx detection

So the detection model is SCRFD.

if model.taskname not in self.models:
print('find model:', onnx_file, model.taskname)
self.models[model.taskname] = model

assert 'detection' in self.models
self.det_model = self.models['detection']

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants