国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

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

這篇具有很好參考價值的文章主要介紹了yolov5部署+微信小程序前端展示。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

分為yolov5項目部署和微信小程序兩部分,先介紹微信小程序前端展示+flask后端,之后介紹項目部署這部分。

一、先上效果圖

1. 點擊選擇圖片,調(diào)用攝像頭選擇圖片

yolov5 微信小程序,yolov5 flask 微信小程序,前端,python,flask,javascript

?

2.選擇圖片之后,點擊開始檢測,然后返回結(jié)果

?yolov5 微信小程序,yolov5 flask 微信小程序,前端,python,flask,javascript???????

?

?二、前端代碼

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>

js文件,分為兩部分,一部分是調(diào)用攝像頭,另一部分是圖片檢測

1. 數(shù)據(jù)定義:

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

  },

2. 調(diào)用攝像頭,使用微信小程序中的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等),然后調(diào)用wx.uploadFile接口,將圖片上傳到服務(wù)器,然后使用訓(xùn)練好的權(quán)重參數(shù)對圖片進行檢測,然后返回結(jié)果,因為返回的結(jié)果是一種圖像流。為了在前端對圖片進行展示,需要在圖片編碼前加字段:‘data:image/png;base64’,將圖片格式轉(zhuǎn)換為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: '服務(wù)器地址',
          // 上傳成功!
          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:在前端定義了傳入的數(shù)據(jù)名為image,所以,flask后端接收數(shù)據(jù)名也同樣為image)

//前端:

wx.uploadFile({
      filePath: img_path,
      name: 'image',
      url: 服務(wù)器地址
})

//后端
img_file = request.files["image"]

三、后端代碼

后端這里使用的是flask,這部分的使用相對比較簡單

1. 因為model返回的結(jié)果是一個list,里面有dict組成,主要就是框的左上角、右下角左邊、類別以及類別名。之后對這個result進行處理,寫一個畫圖的py文件,根據(jù)輸入的圖像和得到result畫框,將畫框后的結(jié)果保存到save_path中,然后再將圖像格式進行轉(zhuǎn)換為base64(返回的數(shù)據(jù)格式:(這里的img_res已經(jīng)是經(jīng)過畫框之后的結(jié)果))

2. 然后因為前端的要求,返回的形式需要用json格式,同時也需要將返回結(jié)果放在data里面,方便前端讀取后端返回的數(shù)據(jù)。

@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"):
        # 將讀取的圖片流轉(zhuǎn)換為圖片格式
        im_file = request.files["image"]
        im_bytes = im_file.read()
        im = Image.open(io.BytesIO(im_bytes))
        #將圖片輸入到模型中,輸出的結(jié)果是一個list,帶有坐標類別等信息
        results = model(im, size=640)  # reduce size=320 for faster inference
        # 預(yù)測的結(jié)果(坐標 種類 置信度)
        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

最后!總結(jié)一下,之前剛開始要做的時候,感覺還挺難的,真的開始做的時候,感覺還行(雖然做的比較簡單,頁面也不是很好看,css一生之?dāng)常。。。?

之后,會學(xué)一下項目的部署,目前用的是別人部署好的,但是還是要自己學(xué)學(xué)的?。?!

ps:為什么會寫這個博客呢?因為在剛開始找資料的時候,找到一個博客,感覺和我的需求一樣,于是就點進去看,結(jié)果是一個購買鏈接,還賣399?。?!就這么個東西就399?。∥冶硎竞軣o語,就決定自己寫好了之后一定要公開?。?!如果大家有什么問題,可以留言,我們一起共同學(xué)習(xí)!?。?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-781287.html

到了這里,關(guān)于yolov5部署+微信小程序前端展示的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • YOLOv5部署到web端(flask+js簡單易懂)

    YOLOv5部署到web端(flask+js簡單易懂)

    最近,老板讓寫一個程序把 yolov5檢測模型部署到web端 ,在網(wǎng)頁直接進行目標檢測。經(jīng)過1個星期的努力,終于實現(xiàn)基本功能??(累暈了)。網(wǎng)上查閱了很多資料,發(fā)現(xiàn)很多的技術(shù)比較復(fù)雜,當(dāng)然他們的頁面都比較漂亮,然后我打算自己寫一篇簡單記錄一下哈哈。進入正題,

    2024年02月01日
    瀏覽(24)
  • flask 后端 + 微信小程序和網(wǎng)頁兩種前端:調(diào)用硬件(相機和錄音)和上傳至服務(wù)器

    選擇 flask 作為后端,因為后續(xù)還需要深度學(xué)習(xí)模型,python 語言最適配;而 flask 框架輕、學(xué)習(xí)成本低,所以選 flask 作為后端框架。 微信小程序封裝了調(diào)用手機硬件的 api,通過它來調(diào)用手機的攝像頭、錄音機,非常方便。 網(wǎng)頁端使用 JavaScript 調(diào)用則困難一些,走了很多彎路,

    2024年04月15日
    瀏覽(30)
  • 基于微信小程序的作品集展示的設(shè)計與開發(fā)(源碼+lw+部署文檔+講解等)

    基于微信小程序的作品集展示的設(shè)計與開發(fā)(源碼+lw+部署文檔+講解等)

    ?? 博主介紹 :?新人博主,工作經(jīng)驗兩年+、專注于Java、小程序技術(shù)領(lǐng)域和畢業(yè)項目實戰(zhàn)??? ??文末獲取源碼+數(shù)據(jù)庫?? 感興趣的可以先收藏起來,還有大家在畢設(shè)選題,項目以及論文編寫等相關(guān)問題都可以給我留言咨詢,希望幫助更多的人 基于微信小程序的作品集展示平

    2024年02月04日
    瀏覽(23)
  • 水球展示——微信小程序

    水球展示——微信小程序

    html? ?less js 獲取數(shù)據(jù)賦值就行 ?

    2024年02月07日
    瀏覽(19)
  • 微信小程序--列表展示

    微信小程序--列表展示

    小知識: wx:for=\\\"{{list}}\\\"用來循環(huán)數(shù)組。 wx:for-item=‘變量名(隨便起)’ ? 它是指定循環(huán)數(shù)據(jù)當(dāng)前的變量名,可以通過 ?{{變量名.屬性}} 展示數(shù)組的元素。 wx:for-index=‘變量名(隨便起)’,它是指向當(dāng)前元素的下標名,可以在其他事件中定義自定義事件(data-xxx=\\\'{{變量名}}

    2024年02月15日
    瀏覽(18)
  • 微信小程序3D,使用Three.js在微信小程序中展示gltf模型,使用VisionKit展示AR能力

    微信小程序3D,使用Three.js在微信小程序中展示gltf模型,使用VisionKit展示AR能力

    本倉庫只開源gltf模型展示技術(shù),技術(shù)好的朋友有這些代碼就能幫助你解決很多問題了 如需要完整項目(基于若依框架開發(fā)的后端,AR能力前端)需另外付費贊助, 聯(lián)系方式:QQ 790002517 微信公眾號:時不待我 https://github.com/zzy-life/Wechat3D Three.js Three.js is a JavaScript 3D library. thr

    2024年02月09日
    瀏覽(49)
  • 微信小程序展示倒計時

    微信小程序展示倒計時

    html ? ts ?

    2024年04月25日
    瀏覽(27)
  • 微信小程序去除默認滾動條展示

    一、微信小程序改版框架升級后,滾動條默認展示了。 在實際應(yīng)用中效果不好,如果想默認隱藏掉,代碼段如下: 設(shè)置成全局樣式,展示即可。 更多:

    2024年02月03日
    瀏覽(21)
  • uniapp微信小程序?qū)崿F(xiàn)地圖展示控件

    uniapp微信小程序?qū)崿F(xiàn)地圖展示控件

    最終實現(xiàn)效果: 地圖上展示控件,并可以點擊。 目錄 一、前言 二、在地圖上展示控件信息 點擊后可進行繪制面圖形 1.使用cover-view將控件在地圖上展示 2.設(shè)置控件樣式,使用好看的圖標 3.控件綁定點擊事件 原本使用的是 controls ,但是我發(fā)現(xiàn)官方明確說明,這個功能即將廢

    2024年02月04日
    瀏覽(438)
  • 【微信小程序】外賣點餐效果展示

    【微信小程序】外賣點餐效果展示

    外賣點餐效果展示,左右布局,快速點餐,商家信息展示等...程序是模仿人家的,所以界面沒做什么調(diào)整,功能是沒啥問題,可以正常使用... 直接看效果圖: 可以把這個點餐這個功能分為5部分組成 1、第一部分頭部信息 2、第二部分左布局 3、第三部分右布局 4、第四部分點

    2024年02月08日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包