位置: IT常识 - 正文

yolov5部署+微信小程序前端展示(yolov5部署微信小程序)

编辑:rootadmin
yolov5部署+微信小程序前端展示

推荐整理分享yolov5部署+微信小程序前端展示(yolov5部署微信小程序),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:yolov4部署,yolov3部署,yolov5部署到mcu,yolov5搭建,yolov5部署到mcu,yolov3部署,yolov5部署到mcu,yolov5部署到mcu,内容如对您有帮助,希望把文章链接给更多的朋友!

分为yolov5项目部署和微信小程序两部分,先介绍微信小程序前端展示+flask后端,之后介绍项目部署这部分。

一、先上效果图

1. 点击选择图片,调用摄像头选择图片

2.选择图片之后,点击开始检测,然后返回结果

 ​​​​​​​

 二、前端代码

wxml文件:

view class="container"> <view> <image src="{{avatarUrl}}" class=".img" bindtap="imgClick"></image> <button bindtap="chooseimg" class=".btn_select">选择图片</button> <button form-type="submit" class=".btn_submit" bindtap="submitimg">开始检测</button> </view> <view class="text-container"> <view>{{name_and_nums}}</view> <view class="text" wx:for="{{names}}">{{item.name}}: {{item.value}} </view> </view> </view>yolov5部署+微信小程序前端展示(yolov5部署微信小程序)

js文件,分为两部分,一部分是调用摄像头,另一部分是图片检测

1. 数据定义:

data: { avatarUrl: 'res.png', base64imgurl: null, name_num: '', names: [], name_and_nums: '' },

2. 调用摄像头,使用微信小程序中的wx.chooseImage接口,并使用wx.setStorage接口对图片路径进行保存。代码:

chooseimg: function() { var that = this // 选择图片 wx.chooseImage({ count: 1, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success(res) { // tempFilePath可以作为 img 标签的 src 属性显示图片 var tempFilePaths = res.tempFilePaths console.log(tempFilePaths) that.setData({avatarUrl:tempFilePaths[0]}) console.log(tempFilePaths[0]) wx.setStorage({key:'img_path', data: tempFilePaths[0]})}

3. 先使用wx.getImageInfo获取上一步保存的图片格式(png/jpg等),然后调用wx.uploadFile接口,将图片上传到服务器,然后使用训练好的权重参数对图片进行检测,然后返回结果,因为返回的结果是一种图像流。为了在前端对图片进行展示,需要在图片编码前加字段:‘data:image/png;base64’,将图片格式转换为base64格式。代码:

submitimg: function(){ var img_path var that wx.getImageInfo({ src: img_path, success(res){ imgtype = res.type console.log(imgtype) } }) wx.uploadFile({ filePath: img_path, name: 'image', url: '服务器地址', // 上传成功! success(res){ console.log(res) var img_data = JSON.parse(res.data).data.image var base64str_img = 'data:image/' + imgtype + ';base64,' + img_data that.setData({avatarUrl: base64str_img}) // 上传失败 fail(){ console.log('--failed--') } }) }}(PS:在前端定义了传入的数据名为image,所以,flask后端接收数据名也同样为image)//前端:wx.uploadFile({ filePath: img_path, name: 'image', url: 服务器地址})//后端img_file = request.files["image"]三、后端代码

后端这里使用的是flask,这部分的使用相对比较简单

1. 因为model返回的结果是一个list,里面有dict组成,主要就是框的左上角、右下角左边、类别以及类别名。之后对这个result进行处理,写一个画图的py文件,根据输入的图像和得到result画框,将画框后的结果保存到save_path中,然后再将图像格式进行转换为base64(返回的数据格式:(这里的img_res已经是经过画框之后的结果))

2. 然后因为前端的要求,返回的形式需要用json格式,同时也需要将返回结果放在data里面,方便前端读取后端返回的数据。

@app.route(DETECTION_URL, methods=["POST"])def predict(): if request.method != "POST": return jsonify({"code": 2, "msg": "the request method is error!", "data": {"isSecret": "null"}}) if request.files.get("image"): # 将读取的图片流转换为图片格式 im_file = request.files["image"] im_bytes = im_file.read() im = Image.open(io.BytesIO(im_bytes)) #将图片输入到模型中,输出的结果是一个list,带有坐标类别等信息 results = model(im, size=640) # reduce size=320 for faster inference # 预测的结果(坐标 种类 置信度) result = results.pandas().xyxy[0].to_json(orient="records") img_res = '' with open(save_path, 'rb') as f: img_res = f.read() img_res = base64.b64encode(img_res) return jsonify({ "data": {"detect_res": "yes", "image": str(img_res, 'utf-8')}})if __name__ == "__main__": torch.hub._validate_not_a_forked_repo = lambda a, b, c: True model = torch.hub.load("path", "custom", path="./best.pt", source="local", force_reload=False) # force_reload to recache

最后!总结一下,之前刚开始要做的时候,感觉还挺难的,真的开始做的时候,感觉还行(虽然做的比较简单,页面也不是很好看,css一生之敌!!!) 

之后,会学一下项目的部署,目前用的是别人部署好的,但是还是要自己学学的!!!

ps:为什么会写这个博客呢?因为在刚开始找资料的时候,找到一个博客,感觉和我的需求一样,于是就点进去看,结果是一个购买链接,还卖399!!!就这么个东西就399!!我表示很无语,就决定自己写好了之后一定要公开!!!如果大家有什么问题,可以留言,我们一起共同学习!!!

本文链接地址:https://www.jiuchutong.com/zhishi/299038.html 转载请保留说明!

上一篇:Flask实现用户登录注册(附前后端源码)(flask实现登录)

下一篇:图像处理——图像增强(图像处理入门)

  • 小米手机应用行为记录怎么查看(小米手机应用行为记录怎么关闭0)

    小米手机应用行为记录怎么查看(小米手机应用行为记录怎么关闭0)

  • 电脑一用浏览器就黑屏(电脑一用浏览器就蓝屏怎么回事)

    电脑一用浏览器就黑屏(电脑一用浏览器就蓝屏怎么回事)

  • 微信朋友圈看不见别人发的图片怎么回事(微信朋友圈看不到内容,打开朋友圈就能看到,为什么)

    微信朋友圈看不见别人发的图片怎么回事(微信朋友圈看不到内容,打开朋友圈就能看到,为什么)

  • 拼多多怎么一起拍两个不一样的(拼多多怎么一起下单多件商品)

    拼多多怎么一起拍两个不一样的(拼多多怎么一起下单多件商品)

  • svmsung是什么牌子电脑(svmsung是什么牌子电视)

    svmsung是什么牌子电脑(svmsung是什么牌子电视)

  • iphone7录屏没有声音(为什么录屏没有声音苹果7)

    iphone7录屏没有声音(为什么录屏没有声音苹果7)

  • 内存插槽坏了什么症状(内存插槽坏了开不了机)

    内存插槽坏了什么症状(内存插槽坏了开不了机)

  • qq显示正在运行什么意思(qq显示正在运行怎么开启)

    qq显示正在运行什么意思(qq显示正在运行怎么开启)

  • 华为手机听歌自动暂停是怎么回事(华为手机听歌自动锁屏)

    华为手机听歌自动暂停是怎么回事(华为手机听歌自动锁屏)

  • qq的扩列为什么匹配失败(qq的扩列为什么下线)

    qq的扩列为什么匹配失败(qq的扩列为什么下线)

  • 华为20和30的区别(华为20和30哪个好)

    华为20和30的区别(华为20和30哪个好)

  • iPhonexr屏幕有轻微的黑线(iphonexr屏幕有一块特别亮)

    iPhonexr屏幕有轻微的黑线(iphonexr屏幕有一块特别亮)

  • 华为p20手机如何更改时间(华为p20手机如何一键换机)

    华为p20手机如何更改时间(华为p20手机如何一键换机)

  • 小度nv2101和nv6101的区别(小度nv2101和nv6101哪个贵)

    小度nv2101和nv6101的区别(小度nv2101和nv6101哪个贵)

  • 华为平板m6有没有耳机孔(华为平板m6有没有红外线功能)

    华为平板m6有没有耳机孔(华为平板m6有没有红外线功能)

  • 万能钥匙未找到相关热点怎么办(万能钥匙未找到热点信息)

    万能钥匙未找到相关热点怎么办(万能钥匙未找到热点信息)

  • vivonex3是双模5g手机吗(vivonex3s是单模还是双模)

    vivonex3是双模5g手机吗(vivonex3s是单模还是双模)

  • 苹果vc/a是哪个国家版本(苹果vca是哪个版本)

    苹果vc/a是哪个国家版本(苹果vca是哪个版本)

  • iphone7支持3dtouch吗(iPhone7支持ios16吗)

    iphone7支持3dtouch吗(iPhone7支持ios16吗)

  • 探探短信怎么退订(探探短信怎么退款)

    探探短信怎么退订(探探短信怎么退款)

  • 如何剪切视频(电脑如何剪切视频)

    如何剪切视频(电脑如何剪切视频)

  • 华为设置上滑返回(华为怎么设置往上滑返回键)

    华为设置上滑返回(华为怎么设置往上滑返回键)

  • 单反怎么拍黑白(单反相机怎么拍黑白照)

    单反怎么拍黑白(单反相机怎么拍黑白照)

  • 手机怎么关闭电脑qq(手机怎么关闭电脑微信)

    手机怎么关闭电脑qq(手机怎么关闭电脑微信)

  • ios13正式版怎么更新(ios 13.6怎样)

    ios13正式版怎么更新(ios 13.6怎样)

  • iphone录音全是杂音(iphone录音有杂音滋滋怎么办)

    iphone录音全是杂音(iphone录音有杂音滋滋怎么办)

  • 北极狐,挪威多弗勒山-松达尔国家 (© Andy Trowbridge/Minden Pictures)(挪威 北极熊)

    北极狐,挪威多弗勒山-松达尔国家 (© Andy Trowbridge/Minden Pictures)(挪威 北极熊)

  • 陈列费可以开专票吗
  • 利息收入需要缴纳企业所得税吗
  • 一般纳税人9个点可以抵扣吗
  • 社保工伤保险可以交两家公司吗
  • 税控盘费用抵扣
  • 咨询公司小规模纳税人怎么界定
  • 滞纳金海关
  • 公司购买的二手车如何计提折旧
  • 不是单位职工个税怎么算
  • 酒店里的水电费怎么收
  • 固定资产超过注册资金怎么处理
  • 广告公司可以开维修费吗
  • 二手设备进口海关
  • 购买电视机产生的费用
  • 土地证是商业用地
  • 存货暂估入账的分录
  • 活动策划税费
  • 房地产公司的广告语
  • 公司支付个人劳务
  • 分公司发生修理费能否在总公司列支?
  • 增值税申报表中期初未缴税额指什么
  • 稿费个人所得税计算方式
  • 甲方代付农民工工资合同
  • 商品从总仓到分拣要多久
  • 营改增后房地产会计账务处理
  • 生产车间报表表格图片
  • 制造企业成本计算模型有哪些类型
  • 坏账准备的会计科目
  • php判断字符串是否合法日期
  • 安装了sklearn调用却找不到
  • 转让股权后公司资产
  • 绿化管理服务经营范围
  • php替换文本指定内容
  • javascript核心技术
  • 增值税发票退回重开期限
  • 增值税纳税申报实训报告
  • 没进项发票怎么办
  • 资产负债表中应交税费为负数是什么意思
  • 计算分配本月职工工资会计分录
  • 预收账款需要申请吗
  • 工商年报基本养老保险缴费基数
  • phpcms下载
  • 织梦怎么改网站主页
  • 公司pos机使用规范
  • 增值税发票如何作废流程
  • 医院绿化方案
  • sqlserver完整备份
  • 清卡和抄报税是什么意思
  • 公司购买垃圾箱会计分录
  • 非同一控制下控股合并入账价值
  • 发票开错一个字还能报销吗?
  • 科目余额表如何核对
  • 投资性房地产账面价值大于公允价值计入什么
  • 支付的管理费用调到其他应付款怎么做账
  • 暂估费用票的账务处理
  • 工会活动支出如何记账
  • 机器设备进项税率
  • 会计做内账的技巧与方法
  • 新公司建账初始数据可以全部为零吗
  • 如何获取数据库的sid
  • WIN10开始菜单点击鼠标右键没反应的处理方法
  • vmware虚拟机怎么改用户名
  • gentoo linux优点
  • centos下载安装
  • win10系统找不到mrt
  • xp怎么删除电脑系统
  • ubuntu听音乐
  • linux怎么添加一个用户
  • cocos环境搭建
  • Unity3D游戏开发基础
  • 解析几何
  • nodejs import
  • jquery json对象
  • unity gpu优化
  • WINDOWS中使用磁盘清理的主要作用是为了什么
  • 国家税务总局12366上海(国际)纳税服务中心
  • 广东省电子税务局app下载官网
  • 电子税务密码输入错误五次怎么办
  • 西安税务总局
  • 优化营商环境关于人才工作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设