位置: 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实现登录)

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

  • 魅族18s电池容量多大(荣耀magic5电池容量)

    魅族18s电池容量多大(荣耀magic5电池容量)

  • bah4-w09是什么型号(bah4-w09是什么型号平板)

    bah4-w09是什么型号(bah4-w09是什么型号平板)

  • 华为nova4为什么qq不震动(华为Nova4为什么OTG)

    华为nova4为什么qq不震动(华为Nova4为什么OTG)

  • 不领红包怎么看金额(不领红包怎么看多少钱)

    不领红包怎么看金额(不领红包怎么看多少钱)

  • qq怎么获得幸运字符标识(qq怎样获得幸运字符)

    qq怎么获得幸运字符标识(qq怎样获得幸运字符)

  • 光信号是红色的为什么(光信号是红色的灯)

    光信号是红色的为什么(光信号是红色的灯)

  • oppoace2屏幕多大(oppoace2屏幕比例是多少)

    oppoace2屏幕多大(oppoace2屏幕比例是多少)

  • 小米手机录像不要声音(小米手机录像不录声音怎么设置)

    小米手机录像不要声音(小米手机录像不录声音怎么设置)

  • 华为p40黑名单在哪(华为p40手机联系人黑名单哪里)

    华为p40黑名单在哪(华为p40手机联系人黑名单哪里)

  • 摄像头夜视原理(摄像头夜视原理是什么)

    摄像头夜视原理(摄像头夜视原理是什么)

  • 快手注销账号要多久,可以重新注册(快手注销账号要多久才搜索不到)

    快手注销账号要多久,可以重新注册(快手注销账号要多久才搜索不到)

  • 屋内烟感器红灯一直亮(屋内烟感器红灯一直亮,但没有声音)

    屋内烟感器红灯一直亮(屋内烟感器红灯一直亮,但没有声音)

  • 华为p40pro预计发售时间(华为p40pro哪天发布)

    华为p40pro预计发售时间(华为p40pro哪天发布)

  • 华为平板为什么充不进电(华为平板为什么充不进去电)

    华为平板为什么充不进电(华为平板为什么充不进去电)

  • 快充能用普通数据线吗(快充可以用普通充电器吗)

    快充能用普通数据线吗(快充可以用普通充电器吗)

  • 爱奇艺能看电视台直播吗(爱奇艺能看电视吗?)

    爱奇艺能看电视台直播吗(爱奇艺能看电视吗?)

  • 怎么把下载的视频转换成mp4格式(怎么把下载的视频保存到手机相册)

    怎么把下载的视频转换成mp4格式(怎么把下载的视频保存到手机相册)

  • 苹果手机购买项目在哪扣钱(苹果手机购买项目怎么删除记录)

    苹果手机购买项目在哪扣钱(苹果手机购买项目怎么删除记录)

  • imessage黑气泡怎么弄(iphone的信息气泡)

    imessage黑气泡怎么弄(iphone的信息气泡)

  • 全球购骑士卡是什么(全球购骑士卡是谁创办的)

    全球购骑士卡是什么(全球购骑士卡是谁创办的)

  • ps图层透明变成白色(ps透明图层怎么改成白图层)

    ps图层透明变成白色(ps透明图层怎么改成白图层)

  • 拍视频怎么配音乐(抖音拍视频怎么配音)

    拍视频怎么配音乐(抖音拍视频怎么配音)

  • 华卡雷瓦雷瓦森林的红木纪念树林,新西兰北岛 (© Michael Breitung/Huber/eStock Photo)(雷瓦老板)

    华卡雷瓦雷瓦森林的红木纪念树林,新西兰北岛 (© Michael Breitung/Huber/eStock Photo)(雷瓦老板)

  • 如何在IDEA中创建Web项目(如何在idea中创建xml)

    如何在IDEA中创建Web项目(如何在idea中创建xml)

  • 固定资产报废申请表模板
  • 企业成立多久能注销
  • 息税前利润变动率的计算公式
  • 利润表主营业务成本怎么算
  • 白条技巧
  • 企业进口葡萄酒也要缴纳消费税吗
  • 差额发票和全额发票一样吗
  • 程序法和实体法的划分标准
  • 小企业商品销售的入账价格
  • 委托加工的账务处理
  • 停业之后申请恢复营业申请书范文
  • 车船使用税应该交哪里的税
  • 印花税计提多了怎样更正
  • 建筑业简易征收差额征税的计算案例
  • 广西电子税务局申报
  • 向购买方收取的价外费用
  • 税前扣除的固定资产
  • 所得税a类申报表
  • 公司购买理财的好处有哪些
  • 企业技术开发的原则
  • win10如何设置右键
  • 私营企业员工享受探亲假吗
  • 老板和公司账务处理流程
  • 怎么提升电脑速度
  • php timestamp
  • 没有取得发票的成本可以税前扣除吗
  • php fopen()
  • 怎么查发票的真假鉴定
  • 存货损失的账务处理
  • php获取当天是星期几
  • php打包网站并在哪里打开
  • 在数组指定位置添加数据
  • Chat GPT5如果问世会对世界产生什么影响?以及未来chat gpt 5会取代什么类型的工作。
  • 广东高速公路过路费官网
  • 企业投资入股要交多少税
  • 员工多了怎么管理办法
  • 100万的工程怎么开发票
  • elementui组件有哪些
  • 先开票后发货如何操作
  • mysql深入理解
  • 增值税专用发票几个点
  • 企业所得税实训内容及过程
  • 三证合一后个体交税吗
  • 免征文化事业建设费条件的销售额标准
  • 预扣预缴和汇算清缴是什么意思
  • mysql log
  • 不动产在建工程领用原材料进项税额可以抵扣吗
  • 股权转让的会计资料归谁所有
  • 研发加计扣除抵减税额怎么算
  • 金税盘税费减免分录
  • 个体工商户个税怎么申报
  • 应收账款和应付账款属于什么科目
  • 生产企业代理出口退税
  • 私人边际成本怎么算
  • 新设企业如何建账
  • 怎么统计每日产量
  • vs2010安装失败的解决办法
  • 不固定参数的存储器
  • xp系统cad32位用哪个版本
  • 苹果mac双系统好不好
  • win8.1删除wifi
  • windows10下软件的app
  • linux 文字处理
  • win7 分区表
  • 如何手动设置定位
  • centos6.x下安装maven CentOS自动安装Maven的方法
  • win7没有媒体功能
  • windows 8.1安装教程
  • win10玩饥荒
  • cocos2dx官方教程
  • jquery教程
  • iredmail是免费的吗
  • shell脚本转换为exe
  • 创建表格在哪里找
  • DOS命令删除文件夹
  • unity mesh bounds
  • 虚拟摇杆 安卓
  • python批量填表
  • 安卓各版本占比统计图
  • 税务跨区变更需要什么资料
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设