企业网站开发信息广告设计公司的未来

张小明 2026/3/2 21:39:50
企业网站开发信息,广告设计公司的未来,营销型企业网站建设包括什么,学校网站建设的流程Label Studio介绍#xff1a;Label Studio 是一款开源的数据标签工具。它允许你用简单直接的界面为音频、文本、图片、视频和时间序列等数据类型命名#xff0c;并导出为多种模型格式。它可以用于准备原始数据或改进现有训练数据#xff0c;以获得更准确的机器学习模型。 L…Label Studio介绍Label Studio 是一款开源的数据标签工具。它允许你用简单直接的界面为音频、文本、图片、视频和时间序列等数据类型命名并导出为多种模型格式。它可以用于准备原始数据或改进现有训练数据以获得更准确的机器学习模型。Label Studio源代码地址https://github.com/HumanSignal/label-studio/Label Studio界面如下Label Studio ML backendLabel Studio 机器学习后端是一个 SDK可以让你把机器学习代码打包成 Web 服务器。该网页服务器可以连接到正在运行的 Label Studio 实例以实现自动化标签任务。Github地址Label Studio ML backend下面介绍使用视觉大模型Qwen2-VL作为ML backend实现自动标注环境搭建硬件配置我是在AutoDL网站上https://www.autodl.com/home租的云服务器规格配置如下图1.创建虚拟环境conda create-n labels python3.102.安装 Label Studiopip install label-studio最终安装的版本如下3.配置 Label Studio 数据目录默认数据存储在 ~/.local/share/label-studio,可以使用如下命令重新配置目录export LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLEDtrue export LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOTautodl-tmp/label-studio-develop/data开发 ML Backend 服务1.安装 Backend 依赖pip install flask requests pillow python-dotenv gunicorn2.创建项目结构mkdir-p ml_backend cd ml_backend3.创建环境变量文件 .envnano.env填入 Qwen-VL 相关API调用信息QWEN_API_KEYHHKM7PMBA4SKWMRZFQMLGZL73IMSU******QWEN_BASE_URLhttps://ai.gitee.com/v1/chat/completions MODEL_NAMEQwen2-VL-72B4.编写 Backend 代码 app.py# app.py# 修改点使用归一化坐标输出 bbox# 修改Prompt,框选结果更准确完整importosimportioimportbase64importloggingfromPILimportImageimportrequestsfromflaskimportFlask,request,jsonifyfromdotenvimportload_dotenvimportjsonimporturllib.parse load_dotenv()appFlask(__name__)logging.basicConfig(levellogging.INFO)API_KEYos.getenv(QWEN_API_KEY)BASE_URLos.getenv(QWEN_BASE_URL)MODEL_NAMEos.getenv(MODEL_NAME,qwen-vl-plus)ifnotAPI_KEY:raiseValueError(❌ Missing QWEN_API_KEY in .env file!)defcall_qwen_vl(image_b64:str,prompt:str):headers{Authorization:fBearer{API_KEY},Content-Type:application/json}payload{model:MODEL_NAME,messages:[{role:system,content:(You are an expert object detector. Only output a strict JSON with NO explanation, markdown, or extra text. Use ONLY these labels: Airplane, Drone, Helicopter, Bird. The bbox must be in normalized coordinates (0.0 to 1.0) relative to image width and height: [x1_norm, y1_norm, x2_norm, y2_norm], where (0,0) is top-left and (1,1) is bottom-right. Example: {\objects\:[{\label\:\Airplane\,\bbox\:[0.062,0.119,0.143,0.211]}]})},{role:user,content:[{type:image_url,image_url:{url:fdata:image/jpeg;base64,{image_b64}}},{type:text,text:prompt}]}],stream:False,max_tokens:1024,temperature:0.2}try:responserequests.post(BASE_URL,headersheaders,jsonpayload,timeout30)response.raise_for_status()dataresponse.json()contentdata[choices][0][message][content]returncontentexceptExceptionase:logging.error(fQwen API error:{e})ifresponseinlocals()andhasattr(response,text):logging.error(fAPI Response:{response.text})returnNoneapp.route(/predict,methods[POST])defpredict():try:tasksrequest.json.get(tasks,[])ifnottasks:returnjsonify([])tasktasks[0]# 关键修复跳过已有标注的任务避免锁冲突iftask.get(annotations)andlen(task[annotations])0:logging.info(Task already annotated, skipping prediction to avoid lock conflict.)returnjsonify([])image_datatask[data][image]logging.info(fReceived image_data:{image_data})# 读取图片 img_bytesNoneifimage_data.startswith(/data/upload/):rel_pathurllib.parse.unquote(image_data[len(/data/upload/):])real_pathos.path.join(/root/.local/share/label-studio/media/upload,rel_path)withopen(real_path,rb)asf:img_bytesf.read()elifimage_data.startswith(data:image):img_bytesbase64.b64decode(image_data.split(,,1)[1])else:img_bytesrequests.get(image_data,timeout10).content imgImage.open(io.BytesIO(img_bytes))w,himg.size logging.info(f✅ Original image dimensions: width{w}, height{h})# 转 JPEG 再编码bufio.BytesIO()img.save(buf,formatJPEG)image_b64base64.b64encode(buf.getvalue()).decode(utf-8)# 调 LLM prompt(Detect ALL instances of Airplane, Drone, Helicopter, or Bird in the image. For each object, return a bounding box that fully contains the entire object, including wings, tail, engines, and fuselage. Do NOT cut off any part of the object. Use normalized coordinates [x1_norm, y1_norm, x2_norm, y2_norm], where (0,0) is top-left and (1,1) is bottom-right. Only output valid JSON with no extra text. Example: {\objects\:[{\label\:\Airplane\,\bbox\:[0.062,0.119,0.857,0.421]}]})result_strcall_qwen_vl(image_b64,prompt)logging.info(fModel response raw:{result_str})ifnotresult_str:returnjsonify([])# 清洗 JSON clean_strresult_str.strip()ifclean_str.count({)clean_str.count(}):clean_str}*(clean_str.count({)-clean_str.count(}))ifclean_str.count([)clean_str.count(]):clean_str]*(clean_str.count([)-clean_str.count(]))try:resultjson.loads(clean_str)exceptjson.JSONDecodeErrorase:logging.error(fJSON decode error:{e})returnjsonify([])# 组装 Label Studio 标注 ls_results[]forobjinresult.get(objects,[]):try:labelobj.get(label)bboxobj.get(bbox)ifnotbboxorlen(bbox)!4:continuex1,y1,x2,y2map(float,bbox)logging.info(fRaw normalized bbox from model: x1{x1:.4f}, y1{y1:.4f}, x2{x2:.4f}, y2{y2:.4f})# 直接乘以 100 转为 Label Studio 百分比xx1*100.0yy1*100.0width(x2-x1)*100.0height(y2-y1)*100.0# 边界安全xmax(0.0,min(100.0,x))ymax(0.0,min(100.0,y))widthmax(0.0,min(100.0-x,width))heightmax(0.0,min(100.0-y,height))logging.info(fComputed LS coords: x{x:.4f}, y{y:.4f}, width{width:.4f}, height{height:.4f})ls_results.append({from_name:label,to_name:image,type:rectanglelabels,value:{x:round(x,2),y:round(y,2),width:round(width,2),height:round(height,2),rotation:0,rectanglelabels:[label]}})exceptExceptionase:logging.error(fError processing object{obj}:{e})continuereturnjsonify({results:[{result:ls_results,score:1.0,model_version:qwen-vl}]})exceptExceptionase:logging.exception(predict error)returnjsonify([])app.route(/health,methods[GET])defhealth():returnjsonify({status:ok})app.route(/setup,methods[POST])defsetup():returnjsonify({model_name:Qwen-VL,supported_tasks:[image],supported_label_config:{from_name:label,to_name:image,type:rectanglelabels,labels:[Airplane,Drone,Helicopter,Bird]}})if__name____main__:app.run(host0.0.0.0,port6008,debugFalse)5.启动 ML Backend 服务我在autodl云服务器上部署默认只开放6006和6008端口。我在6008端口运行ML Backend 服务在6006端口启动 Label Studio。启动命令如下# 返回 ml_backend 目录确保 .env 和 app.py 在当前目录cd ml_backend# 启动服务后台运行nohup gunicorn-w2-b0.0.0.0:6008app:appbackend.log21-w 2启动 2 个工作进程。-b 0.0.0.0:9090监听所有 IP 的 6008 端口。nohup … 使进程在 SSH 断开后继续运行。日志输出到 backend.log。6.配置 Label Studio 项目6.1启动 Label Studio后台nohup label-studio start--host0.0.0.0--port6006--no-browserlabelstudio.log21上述两个服务都启动之后打开浏览器访问http://your_server_ip:port我访问链接https://u29412-bcfe-070309f1.westc.gpuhub.com:8443/可看到Label Studio登录页面第一次访问需要注册账号后面就可以直接登录了。这里可能会遇到报错信息登录界面注册可能会报错labelstudio没有识别域名为可信源需要在上面创建的.env文件中加上环境变量这样每次启动label studio服务的时候就会读取环境变量。export LABEL_STUDIO_ALLOWED_HOSTSlocalhost,127.0.0.1,u29412-bcfe-070309f1.westc.gpuhub.comexport LABEL_STUDIO_CSRF_TRUSTED_ORIGINShttps://u29412-bcfe-070309f1.westc.gpuhub.com:8443export LABEL_STUDIO_SECURE_PROXY_SSL_HEADERHTTP_X_FORWARDED_PROTOhttpsexport LABEL_STUDIO_DEBUGTrue上面信息需要根据自身情况设定将要访问的域名加入白名单注册登录成功之后显示如下界面6.2 创建项目点击Create Project创建一个新项目点击Labeling Interface,在Label中填入你的数据集覆盖的标签点击Save。ViewImage nameimagevalue$image/RectangleLabels namelabeltoNameimageLabel valueAirplanebackgroundgreen/Label valueDronebackground#FFA39E/Label valueHelicopterbackground#D4380D/Label valueBirdbackground#FFC069//RectangleLabels/View6.3配置 ML Backend进入项目 → Settings (⚙️) → Model填入Name和Backend URLURL应填ML backend服务对应的地址https://uu29412-bcfe-070309f1.westc.gpuhub.com:8443可能出现验证错误解决方法app.py 必须返回一个 可被 JSON 解析的内容importjsonapp.route(/health,methods[GET])defhealth():returnjson.dumps({status:ok}),200,{Content-Type:application/json}接着又报错Runtime errorValidation error● Successfully connected to https://uu29412-bcfe-070309f1.westc.gpuhub.com:8443 but it doesn’t look like a valid ML backend. Reason: 404 Client Error: Not Found for url: https://uu29412-bcfe-070309f1.westc.gpuhub.com:8443/setup. Check the ML backend server console logs to check the status.There might be something wrong with your model or it might be incompatible with the current labeling configuration.解决方法实现 /setup 路由返回当前模型支持的 Label Studio 标注配置信息app.route(/setup,methods[POST])defsetup():# 返回模型支持的标签配置returnjsonify({model_name:Qwen-VL,supported_tasks:[image],supported_label_config:{from_name:label,# 对应你的 labeling config 中的 from_nameto_name:image,# 对应 to_nametype:rectanglelabels,# 标注类型labels:[Airplane,Drone,Helicopter,Bird]# 可选模型能识别的类别可动态获取}})再次返回模型连接页面显示连接成功配置成功后可返回项目页面导入图片点击Label All Tasks可以进行自动标注只集成视觉大模型标注效果还不够精确标签都能打正确但是画框不准不能完全覆盖目标。6.4自动标注效果提升后面想了一个解决思路首先用轻量级 YOLOv10 检测图像中可能属于空中目标如飞机、鸟、风筝等的区域再将每个候选区域裁剪后送入 Qwen-VL 多模态大模型进行细粒度分类仅保留被确认为 设定标签的结果。改进后代码如下最终标注效果
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

茂名网站开发公司推荐怎么举报app软件

ComfyUI ControlNet 终极指南:AI图像精准控制的完整解决方案 【免费下载链接】comfyui_controlnet_aux 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 你是否曾经在使用AI生成图像时感到沮丧?明明输入了详细的描述&#…

张小明 2026/1/7 12:43:58 网站建设

中元建设网站新开的网页游戏平台

VGGT:视觉几何Transformer如何重塑多视图匹配技术格局 【免费下载链接】vggt VGGT Visual Geometry Grounded Transformer 项目地址: https://gitcode.com/gh_mirrors/vg/vggt 在计算机视觉领域,多视图匹配一直是制约三维重建、SLAM等应用性能的关…

张小明 2026/1/9 12:38:34 网站建设

国家开发银行助学贷款网站域名购买后如何建设网站

还在为照片中的瑕疵烦恼吗?想要轻松去除水印、修复老照片却找不到合适的工具?Inpaint-web作为一款革命性的浏览器端图像修复工具,将彻底改变你对图片编辑的认知!这款基于WebGPU和WASM技术的免费开源工具,让图像修复变得…

张小明 2026/1/7 12:05:14 网站建设

一条龙做网站阳江招聘网最新招聘信息网兼职

Linux磁盘性能调优与维护指南 1. 热插拔和磁盘更换问题 在Linux和许多其他Unix系统中,热插拔或更换设备时最大的问题之一源于设备命名。在ATA系统中,Linux将第一个控制器上的第一个驱动器分配为 /dev/hda ,随后检测到的设备按检测顺序使用相同的命名方案命名。例如,主通…

张小明 2026/1/7 16:54:10 网站建设

dw软件网站建设教程网站上怎么引用视频

Lostlife2.0下载官网未提及的GPT-SoVITS语音模组扩展 在如今AI角色交互日益普及的时代,用户早已不再满足于“能说话”的机器人。他们期待的是有性格、有情绪、甚至“听得出来是谁”的声音伴侣。而就在一些热门项目如 Lostlife2.0 中,尽管官方文档并未明说…

张小明 2026/1/10 15:08:12 网站建设

网站建设行业标准深圳光明新区网站建设

Windows XP 系统策略配置与数据备份全解析 1. 组策略层次结构 在 Windows XP 系统中,组策略的修改有时看似没有效果,但实际上可能只是临时的。组策略遵循特定的层次结构,了解这一结构至关重要。从高到低,组策略的层次结构如下: 1. 组织单位策略 2. 域策略 3. 站点策略…

张小明 2026/1/9 11:30:21 网站建设