transformers.js+yolo10实现浏览器中离线目标检测识别代码

代码语言:html

所属分类:其他

代码描述:transformers.js+yolo10实现浏览器中离线目标检测识别代码,首次加载模型为15.9M,后面识别就不用下载模型,如果在python本地用,可以使用python代码,github:https://github.com/THU-MIG/yolov10

代码标签: transformers.js yolo 10 浏览器 离线 目标 检测 识别 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
<style>
    * {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    font-family: sans-serif;
}

html,
body {
    height: 100%;
}

body {
    padding: 32px;
}

body,
#container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#container {
    position: relative;
    gap: 0.4rem;

    width: 640px;
    height: 640px;
    max-width: 100%;
    max-height: 100%;

    border: 2px dashed #D1D5DB;
    border-radius: 0.75rem;
    overflow: hidden;
    cursor: pointer;
    margin: 1rem;

    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
    font-size: 18px;
}

#upload {
    display: none;
}

svg {
    pointer-events: none;
}

#example {
    font-size: 14px;
    text-decoration: underline;
    cursor: pointer;
}

#example:hover {
    color: #2563EB;
}

.bounding-box {
    position: absolute;
    box-sizing: border-box;
    border: solid 2px;
}

.bounding-box-label {
    color: white;
    position: absolute;
    font-size: 12px;
    margin: -16px 0 0 -2px;
    padding: 1px;
}
</style>

    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Transformers.js - Object Detection</title>
</head>

<body>
    <h1>Object Detection w/ 🤗 Transformers.js</h1>
    <label id="container" for="upload">
        <svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path fill="#000"
                d="M3.5 24.3a3 3 0 0 1-1.9-.8c-.5-.5-.8-1.2-.8-1.9V2.9c0-.7.3-1.3.8-1.9.6-.5 1.2-.7 2-.7h18.6c.7 0 1.3.2 1.9.7.5.6.7 1.2.7 2v18.6c0 .7-.2 1.4-.7 1.9a3 3 0 0 1-2 .8H3.6Zm0-2.7h18.7V2.9H3.5v18.7Zm2.7-2.7h13.3c.3 0 .5 0 .6-.3v-.7l-3.7-5a.6.6 0 0 0-.6-.2c-.2 0-.4 0-.5.3l-3.5 4.6-2.4-3.3a.6.6 0 0 0-.6-.3c-.2 0-.4.1-.5.3l-2.7 3.6c-.1.2-.2.4 0 .7.1.2.3.3.6.3Z">
            </path>
        </svg>
        Click to upload image
        <label id="example">(or try example)</label>
    </label>
    <label id="status">Loading model...</label>
    <input id="upload" type="file" accept="image/*" />

    <script type="module">
        
        import { env, AutoProcessor, AutoModel, RawImage } from 'https://cdn.jsdelivr.net/npm/@xenova/transformers@2.17.2';

// Since we will download the model from the Hugging Face Hub, we can skip the local model check
env.allowLocalModels = false;

// Reference the elements that we will need
const status = document.getElementById('status');
const fileUpload = document.getElementById('upload');
const imageContainer = document.getElementById('container'.........完整代码请登录后点击上方下载按钮下载查看

网友评论0