基于yolo11+flask打造一個精美登錄界面和檢測系統

這個是使用flask實現好看登錄界面和友好的檢測界面實現yolov11推理和展示,代碼僅僅有2個html文件和一個python文件,真正做到了用最簡潔的代碼實現復雜功能。

測試通過環境:

windows x64

anaconda3+python3.8

ultralytics==8.3.81

flask==1.1.2

torch==2.3.0

運行步驟: 安裝好環境執行python main.py

后端實現代碼:

from flask import Flask, render_template, request, redirect, url_for, session, flash, Response, jsonify
import os
from functools import wraps
from ultralytics import YOLO
import cv2
import numpy as np
import base64
import jsonapp = Flask(__name__)
app.secret_key = 'your_secret_key'  # 設置密鑰用于session# 初始化YOLO11模型
model = YOLO('yolo11n.pt')  # 或使用其他版本如 yolo11s.pt, yolo11m.pt
#熱啟動
model(np.zeros((300, 300, 3), np.uint8))# 登錄驗證裝飾器
def login_required(f):@wraps(f)def decorated_function(*args, **kwargs):if 'logged_in' not in session:return redirect(url_for('login'))return f(*args, **kwargs)return decorated_function# 登錄路由
@app.route('/', methods=['GET', 'POST'])
@app.route('/login', methods=['GET', 'POST'])
def login():if request.method == 'POST':username = request.form['username']password = request.form['password']if username == 'admin' and password == 'admin':session['logged_in'] = Truereturn redirect(url_for('detection'))else:flash('Invalid username or password!')return render_template('login.html')# 目標檢測路由
@app.route('/detection')
@login_required
def detection():return render_template('detection.html')@app.route('/detect', methods=['POST'])
@login_required
def detect():try:data = request.jsonimage_data = data['image'].split(',')[1]confidence = float(data['confidence'])iou = float(data['iou'])# 解碼base64圖像image_bytes = base64.b64decode(image_data)nparr = np.frombuffer(image_bytes, np.uint8)image = cv2.imdecode(nparr, cv2.IMREAD_COLOR)# 運行檢測results = model(image, conf=confidence, iou=iou)[0]# 在圖像上繪制檢測結果for box in results.boxes:x1, y1, x2, y2 = map(int, box.xyxy[0])conf = float(box.conf[0])cls = int(box.cls[0])label = f'{results.names[cls]} {conf:.2f}'cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2)cv2.putText(image, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)# 將結果圖像轉換為base64_, buffer = cv2.imencode('.jpg', image)image_base64 = base64.b64encode(buffer).decode('utf-8')return jsonify({'success': True,'image': f'data:image/jpeg;base64,{image_base64}'})except Exception as e:return jsonify({'success': False,'error': str(e)})@app.route('/detect_video_frame', methods=['POST'])
@login_required
def detect_video_frame():# 類似于detect路由,但專門處理視頻幀# ... implementation similar to detect route ...passif __name__ == '__main__':app.run(debug=True)

登錄界面:

目標檢測界面:

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72537.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72537.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72537.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQLMesh系列教程:利用date_spine宏構建日期序列實踐指南

引言:為什么需要日期維度表? 在數據分析和報表開發中,日期維度表是不可或缺的基礎結構,其中包括一定日期范圍的日期序列,每個序列包括對應日期屬性,如年季月日、是否周末等。無論是計算日粒度銷售額、分析…

【藍橋杯】省賽:神奇鬧鐘

思路 python做這題很簡單,靈活用datetime庫即可 code import os import sys# 請在此輸入您的代碼 import datetimestart datetime.datetime(1970,1,1,0,0,0) for _ in range(int(input())):ls input().split()end datetime.datetime.strptime(ls[0]ls[1],&quo…

2024浙江大學計算機考研上機真題

2024浙江大學計算機考研上機真題 2024浙江大學計算機考研復試上機真題 2024浙江大學計算機考研機試真題 2024浙江大學計算機考研復試機試真題 歷年浙江大學計算機復試上機真題 歷年浙江大學計算機復試機試真題 2024浙江大學計算機復試上機真題 2024浙江大學計算機復試機試真題 …

Typora 使用教程(標題,段落,字體,列表,區塊,代碼,腳注,插入圖片,表格,目錄)

標題 一個#是一級標題, 2個#是二級標題, 以此類推, 最多可達六級標題 示例 輸入#號和標題后回車即可 注意: #和標題內容之間需要存在空格(一個或多個均可), 沒有空格就會變成普通文字 標題快捷鍵 Ctrl數字 1-6 可以快速調成對應級別的標題 (選中文本/把光標放在標題上再按…

`FisherTrainer` 的自定義 `Trainer` 類:累積梯度的平方并求平均來近似計算 Fisher 信息矩陣

FisherTrainer 的自定義 Trainer 類:累積梯度的平方并求平均來近似計算 Fisher 信息矩陣 用于計算模型參數的 Fisher 信息矩陣的近似值 整體目標 Fisher 信息矩陣用于衡量模型參數的不確定性,其在優化問題中可以幫助我們更準確地更新模型參數,避免陷入局部最優。在代碼中,…

網頁制作代碼html制作一個網頁模板

制作一個簡單而實用的網頁模板:HTML基礎入門 在數字時代,網頁已成為信息展示和交流的重要平臺。HTML(HyperText Markup Language)作為網頁制作的基礎語言,為開發者提供了構建網頁的基本框架。本文將帶你了解如何使用H…

二階近似 是什么意思

二階近似 是什么意思 一、二階近似的概念與舉例 二階近似是數學分析中通過泰勒展開對函數進行近似的方法,保留到二階項(即包含一階導數和二階導數)。在優化問題(如模型訓練)中,常用于近似損失函數,幫助更精準地更新模型參數。 舉例: 假設損失函數為 L ( θ ) \mathc…

ImGui 學習筆記(四)—— 實現每窗口背景色

ImGui 的窗口背景僅通過全局的 style 控制,這一點不方便于我們設置特定窗口的背景透明度(一般不用于調整顏色),分析代碼,我們可以找到 ImGui::RenderWindowDecorations 函數: void ImGui::RenderWindowDec…

Python虛擬環境完全指南:用venv管理項目依賴,避免環境沖突的N個技巧

引言:當你的第3個Python項目開始報錯時… “明明在Demo項目能跑的代碼,移植到新項目就報錯?” 你可能正經歷著Python開發者的成年禮——依賴沖突。本文手把手教你用Python內置的venv模塊打造隔離的虛擬環境,從此告別pip install引…

【后端開發面試題】每日 3 題(十三)

?個人博客:Pandaconda-CSDN博客 📣專欄地址:https://blog.csdn.net/newin2020/category_12903849.html 📚專欄簡介:在這個專欄中,我將會分享后端開發面試中常見的面試題給大家,每天的題目都是獨…

C#入門學習記錄(三)C#中的隱式和顯示轉換

C#類型轉換:隱式與顯式轉換的機制與應用 在C#的強類型體系中,數據類型轉換是實現數據交互和算法邏輯的基礎操作。當數值類型范圍存在包含關系,或對象類型存在繼承層次時,系統通過預定義的轉換規則實現類型兼容處理。隱式轉換&…

Linux FILE文件操作2- fopen、fclose、fgetc、fputc、fgets、fputs驗證

目錄 1.fopen 打開文件 1.1 只讀打開文件,并且文件不存在 1.2 只寫打開文件,并且文件不存在 1.3 只寫打開文件,并且文件存在,且有內容 1.4 追加只寫打開文件,并且文件不存在 2. fclose 關閉文件 3. fgetc 讀取一…

如何檢查CMS建站系統的插件是否安全?

檢查好CMS建站系統的插件安全是確保網站安全的重要環節,對于常見的安全檢查,大家可以利用以下幾種有效的方法和工具,來幫你評估插件的安全性。 1. 檢查插件來源和開發者信譽 選擇可信來源:僅從官方插件庫或可信的第三方開發者處…

使用Dependency Walker和Beyond Compare快速排查dll動態庫損壞或被篡改的問題

目錄 1、問題描述 2、用Dependency Walker工具打開qr.dll庫,查看庫與庫的依賴關系以及接口調用情況,定位問題 3、使用Beyond Compare工具比較一下正常的msvcr100d.dll和問題msvcr100d.dll的差異 4、最后 C軟件異常排查從入門到精通系列教程&#xff…

2025.3.17總結

今天又是不開心得一天,回歸一個問題單,晚上看了下科目四,不到九點就領夜宵回去了。 每次干得不開心,總會有跑路得念頭,真的卷不動了,考個試考到抑郁,考到懷疑人生。還沒等他人辭退,…

【CF】Day9——Codeforces Round 953 (Div. 2) BCD

B. New Bakery 題目: 思路: 被標簽害了,用什么二分( 很簡單的思維題,首先如果a > b,那么全選a就行了,還搞啥活動 否則就選 b - a 天來搞活動,為什么? 首先如果我…

【大模型】Transformer、GPT1、GPT2、GPT3、BERT 的論文解析

前言 在自然語言處理(NLP)和深度學習的快速發展中,Transformer模型和 GPT系列模型扮演了至關重要的角色。本篇博客旨在對這些開創性的論文進行介紹,涵蓋它們的提出時間、網絡結構等關鍵信息,能夠快速的理解這些模型的設…

Spring Security 教程:從入門到精通(含 OAuth2 接入)

Spring Security 教程:從入門到精通(含 OAuth2 接入) Spring Security 是 Spring 框架中備受推崇的安全模塊,廣泛應用于構建安全可靠的企業級應用程序。它提供了一套全面的解決方案,涵蓋身份認證(Authenti…

OpenGL ES 入門指南:從基礎到實戰

引言:為什么需要 OpenGL ES? 在當今的嵌入式設備(如智能手機、汽車儀表盤、智能家居中控屏)中,流暢的圖形渲染能力是用戶體驗的核心。OpenGL ES(OpenGL for Embedded Systems) 作為行業標準&am…

java的WeakHashMap可以用來做緩存使用?強軟弱虛四種引用對比

在 Java 中,引用(Reference)機制用于管理對象的生命周期和垃圾回收。Java 提供了四種類型的引用:強引用(Strong Reference)、軟引用(Soft Reference)、弱引用(Weak Refer…