diff --git a/examples/webgpu/yolov8/index.html b/examples/webgpu/yolov8/index.html
index 3c84de9fe7..6a98d5e124 100644
--- a/examples/webgpu/yolov8/index.html
+++ b/examples/webgpu/yolov8/index.html
@@ -127,14 +127,22 @@
const offscreenContext = offscreenCanvas.getContext('2d');
- if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
- navigator.mediaDevices.getUserMedia({ audio: false, video: { facingMode: { ideal: "environment" }}}).then(function (stream) {
+ if (navigator.mediaDevices?.getUserMedia) {
+ const tryCamera = facing => navigator.mediaDevices.getUserMedia({ audio: false, video: { facingMode: { ideal: facing } } });
+ const handle = stream => {
video.srcObject = stream;
video.onloadedmetadata = function() {
canvas.width = video.clientWidth;
canvas.height = video.clientHeight;
- }
- });
+ };
+ };
+ tryCamera("environment").then(handle).catch(() =>
+ tryCamera("user").then(handle).catch(e => {
+ wgpuError.textContent = "Error: Could not access camera."
+ wgpuError.style.display = "block";
+ loadingContainer.style.display = "none";
+ })
+ );
}
async function processFrame() {
@@ -246,7 +254,6 @@
if (!navigator.gpu) return false;
const adapter = await navigator.gpu.requestAdapter();
return await adapter.requestDevice({
- requiredFeatures: ["shader-f16"],
powerPreference: "high-performance"
});
};
diff --git a/examples/yolov8.py b/examples/yolov8.py
index 782fa7c036..1a9035a21a 100644
--- a/examples/yolov8.py
+++ b/examples/yolov8.py
@@ -352,13 +352,9 @@ def postprocess(output, max_det=300, conf_threshold=0.25, iou_threshold=0.45):
def get_weights_location(yolo_variant: str) -> Path:
weights_location = Path(__file__).parents[1] / "weights" / f'yolov8{yolo_variant}.safetensors'
fetch(f'https://gitlab.com/r3sist/yolov8_weights/-/raw/master/yolov8{yolo_variant}.safetensors', weights_location)
-
- if not is_dtype_supported(dtypes.half):
- f32_weights = weights_location.with_name(f"{weights_location.stem}_f32.safetensors")
- if not f32_weights.exists(): convert_f16_safetensor_to_f32(weights_location, f32_weights)
- weights_location = f32_weights
-
- return weights_location
+ f32_weights = weights_location.with_name(f"{weights_location.stem}_f32.safetensors")
+ if not f32_weights.exists(): convert_f16_safetensor_to_f32(weights_location, f32_weights)
+ return f32_weights
if __name__ == '__main__':