W600k-r50.onnx Official
A typical w600k-r50.onnx file size is between 90MB and 110MB. Let's analyze its internal structure.
Using ONNX Runtime Web, you can run this model client-side in a browser. This eliminates the need to send face images to a server, solving major privacy (GDPA) concerns.
"model_name": "w600k-r50.onnx",
"source": "InsightFace",
"backbone": "R50",
"training_dataset": "MS1MV3 (600k identities)",
"embedding_size": 512,
"input_resolution": [112, 112],
"input_channels": 3,
"normalization": "l2_normed_output",
"framework": "ONNX opset 11",
"use_cases": ["face_verification", "face_recognition", "clustering"]
I notice you've provided a filename w600k-r50.onnx – this appears to be a ONNX model file, likely related to face recognition (e.g., a ResNet-50 backbone trained on a dataset with 600k identities, possibly from insightface or similar).
However, develop an paper is not a clear request. Could you clarify what you mean? For example:
Please provide more context so I can help you effectively. If you have the model available locally, I can guide you on inspecting it with:
import onnx
model = onnx.load("w600k-r50.onnx")
print(onnx.helper.printable_graph(model.graph))
w600k-r50.onnx a high-performance deep learning model for face recognition developed by the InsightFace . It is an Open Neural Network Exchange (ONNX) formatted version of the algorithm, specifically trained on the massive WebFace600K 🛠️ Technical Profile
(Additive Angular Margin Loss), recognized for its extreme precision in mapping facial features into a numerical "embedding" space. Architecture
(Residual Network with 50 layers), which balances high accuracy with computational efficiency. Training Dataset WebFace600K w600k-r50.onnx
, a curated set containing roughly 600,000 unique identities used to ensure the model can generalize across diverse populations. : Approximately Input Requirements : Standardized 112x112 pixel RGB images 📈 Performance Benchmarks
The "R50" (ResNet-50) variant is often considered the "sweet spot" for production environments, offering near-state-of-the-art accuracy with faster inference times than larger models like R100. deepinsight/insightface - 2D and 3D Face Analysis Project
The model file w600k-r50.onnx is a pre-trained face recognition model from the InsightFace project. The corresponding research paper is:
WebFace260M: A Benchmark for Next-Generation Face Recognition Authors: Zhu, Y., Zhao, H., Zheng, M., et al.
Conference: CVPR 2021 (Conference on Computer Vision and Pattern Recognition). 🛡️ Why this is the "Good Paper"
The "w600k" in the filename refers to the WebFace-600K dataset, which is a cleaned, high-quality subset of the massive WebFace260M collection.
Training Dataset: It uses the WebFace-600K subset (600,000 identities). A typical w600k-r50
Architecture: The "r50" stands for ResNet-50, a popular deep residual network.
Loss Function: Typically trained using ArcFace (Additive Angular Margin Loss), which was introduced in a separate influential InsightFace paper. 🚀 Key Performance Highlights
According to InsightFace discussions and documentation, this model offers several advantages over previous industry standards:
Accuracy: It frequently outperforms models trained on older datasets like Glint360K in Multi-Face Recognition (MFR) testing.
Efficiency: The ONNX format allows it to be used cross-platform with high performance in libraries like FaceFusion or InsightFace-python.
Deployment: It is often found in the buffalo_l (large) model pack, which is the high-accuracy tier for production-grade face analysis. If you'd like, I can:
Find the performance benchmarks for this specific r50 model. "model_name": "w600k-r50
Help you with the Python code to load and run this .onnx file.
Compare it to the smaller models (like r100 or mbf) in the same collection. deepinsight/insightface - 2D and 3D Face Analysis Project
Example with ONNX Runtime GPU:
sess_options = ort.SessionOptions()
sess_options.graph_optimization_level = ort.GraphOptimizationLevel.ORT_ENABLE_EXTENDED
providers = ['CUDAExecutionProvider', 'CPUExecutionProvider']
sess = ort.InferenceSession("w600k-r50.onnx", sess_options, providers=providers)
import onnx
model = onnx.load("w600k-r50.onnx")
print(model.graph.input)
print(model.graph.output)
for vi in model.graph.value_info[:10]:
print(vi)
Or use onnxruntime to run a shape/profile pass:
import numpy as np
import onnxruntime as ort
sess = ort.InferenceSession("w600k-r50.onnx")
print([i.name + " " + str(i.shape) for i in sess.get_inputs()])
print([o.name + " " + str(o.shape) for o in sess.get_outputs()])
# dummy inference
N, C, H, W = 1, 3, 224, 224
dummy = np.random.rand(N, C, H, W).astype(np.float32)
out = sess.run(None, sess.get_inputs()[0].name: dummy)
print(type(out), [o.shape for o in out])
Run a quick inspection (Python + onnxruntime) to confirm these — example code below.
No model is perfect. The w600k-r50.onnx has specific weaknesses:
pip install onnxruntime opencv-python numpy