精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

YOLOv8 圖像分類及 .tflite 部署

開發 機器視覺
YOLO開發者將目標檢測問題構建為回歸問題,而不是分類任務,通過空間上分離邊界框,并使用單個卷積神經網絡(CNN)將概率與每個檢測到的圖像相關聯。

目標檢測是計算機視覺中用于識別和定位圖像或視頻中對象的一種技術。圖像定位是使用邊界框來識別一個或多個對象的正確位置的過程,這些邊界框對應于對象周圍的矩形形狀。這個過程有時會與圖像分類或圖像識別混淆,后者的目標是將圖像或圖像中的對象預測為一個類別或類別之一。

YOLO開發者將目標檢測問題構建為回歸問題,而不是分類任務,通過空間上分離邊界框,并使用單個卷積神經網絡(CNN)將概率與每個檢測到的圖像相關聯,如這里所示。

將圖像分割成小單元,并將概率與每個檢測到的圖像關聯

YOLO在競爭中領先的原因包括其:

  • 速度
  • 檢測精度
  • 良好的泛化能力
  • 開源

將YOLO模型部署到Flutter應用程序中,通過手機相機識別對象:

1. 創建新項目并設置您的環境:

在android/app/build.gradle中,在android塊中添加以下設置。

android{


        aaptOptions {
            noCompress 'tflite'
            noCompress 'lite'
        }
    }

在同一路徑的android/app/build.gradle中,調整“minSdkVersion”,“targetSdkVersion”和“compileSdkVersion”在android塊如下所示:

android/app/build.gradle --> android塊

在android/build.gradle中,調整“ext.kotlin_version”構建腳本塊為此:

buildscript {
    ext.kotlin_version = '1.7.10'
    repositories {
        google()
        mavenCentral()
    }
}

2. 將您的Yolov8模型添加到項目環境中:

模型必須以“.tflite”的形式導出,以便于在邊緣設備上部署,如手機。如果您想用Python訓練自定義的Yolov模型并將其導出為.tflite而不是.pt,您必須遵循這里的說明。我將在這里插入一個用于測試的預訓練好的Yolov8目標檢測模型。在您的Flutter項目中:

(1) 創建一個assets文件夾,并將標簽文件和模型文件放在其中。在pubspec.yaml中添加:

assets:
   - assets/labels.txt
   - assets/yolov8n.tflite

(2) 導入所需的包flutter_vision / camera:

import 'package:flutter_vision/flutter_vision.dart';
import 'package:camera/camera.dart';

3. 開始編程:

(1) 在您的項目中初始化相機如下:

late List<CameraDescription> camerass;

(2) 創建“YoloVideo”類:

class YoloVideo extends StatefulWidget {
  const YoloVideo({Key? key}) : super(key: key);




  @override
  State<YoloVideo> createState() => _YoloVideoState();
}




class _YoloVideoState extends State<YoloVideo> {
}

(3) 在“YoloVideo”類中,聲明所需的變量:

late CameraController controller;
  late FlutterVision vision;
  late List<Map<String, dynamic>> yoloResults;
  
  CameraImage? cameraImage;
  bool isLoaded = false;
  bool isDetecting = false;
  double confidenceThreshold = 0.5;

(4) 初始化模型和相機:

@override
  void initState() {
    super.initState();
    init();
  }
  init() async {
    camerass = await availableCameras();
    vision = FlutterVision();
    controller = CameraController(camerass[0], ResolutionPreset.high);
    controller.initialize().then((value) {
      loadYoloModel().then((value) {
        setState(() {
          isLoaded = true;
          isDetecting = false;
          yoloResults = [];
        });
      });
    });
  }
  @override
  void dispose() async {
    super.dispose();
    controller.dispose();
    await vision.closeYoloModel();
  }

(5) 簡單的UI和確定視頻流大小

@override
  Widget build(BuildContext context) {
    final Size size = MediaQuery.of(context).size;




    if (!isLoaded) {
      return const Scaffold(
        body: Center(
          child: Text("Model not loaded, waiting for it"),
        ),
      );
    }
    return Scaffold(
      body: Stack(
        fit: StackFit.expand,
        children: [
          AspectRatio(
            aspectRatio: controller.value.aspectRatio,
            child: CameraPreview(
              controller,
            ),
          ),
          ...displayBoxesAroundRecognizedObjects(size),
          Positioned(
            bottom: 75,
            width: MediaQuery.of(context).size.width,
            child: Container(
              height: 80,
              width: 80,
              decoration: BoxDecoration(
                shape: BoxShape.circle,
                border: Border.all(
                    width: 5, color: Colors.white, style: BorderStyle.solid),
              ),
              child: isDetecting
                  ? IconButton(
                      onPressed: () async {
                        stopDetection();
                      },
                      icon: const Icon(
                        Icons.stop,
                        color: Colors.red,
),
                      iconSize: 50,
                    )
                  : IconButton(
                      onPressed: () async {
                        await startDetection();
                      },
                      icon: const Icon(
                        Icons.play_arrow,
                        color: Colors.white,
),
                      iconSize: 50,
                    ),
            ),
          ),
        ],
      ),
    );
  }

(6) 加載模型

Future<void> loadYoloModel() async {
    await vision.loadYoloModel(
        labels: 'assets/CLASSES.txt',
        modelPath: 'assets/curr_float32.tflite',
        modelVersion: "yolov8",
        numThreads: 1,
        useGpu: true);
    setState(() {
      isLoaded = true;
    });
}








// 通過yoloOnFrame進行實時目標檢測函數
  Future<void> yoloOnFrame(CameraImage cameraImage) async {
    final result = await vision.yoloOnFrame(
        bytesList: cameraImage.planes.map((plane) => plane.bytes).toList(),
        imageHeight: cameraImage.height,
        imageWidth: cameraImage.width,
        iouThreshold: 0.4,
        confThreshold: 0.4,
        classThreshold: 0.5);
    if (result.isNotEmpty) {
      setState(() {
        yoloResults = result;
      });
    }
  }

(7) 啟動視頻流和開始或停止檢測的函數

Future<void> startDetection() async {
    setState(() {
      isDetecting = true;
    });
    if (controller.value.isStreamingImages) {
      return;
    }
    await controller.startImageStream((image) async {
      if (isDetecting) {
        cameraImage = image;
        yoloOnFrame(image);
      }
    });
  }
  Future<void> stopDetection() async {
    setState(() {
      isDetecting = false;
      yoloResults.clear();
    });
  }

(8) 檢測到的對象周圍的邊界框

List<Widget> displayBoxesAroundRecognizedObjects(Size screen) {
    if (yoloResults.isEmpty) return [];
    double factorX = screen.width / (cameraImage?.height ?? 1);
    double factorY = screen.height / (cameraImage?.width ?? 1);




    Color colorPick = const Color.fromARGB(255, 50, 233, 30);




    return yoloResults.map((result) {
      double objectX = result["box"][0] * factorX;
      double objectY = result["box"][1] * factorY;
      double objectWidth = (result["box"][2] - result["box"][0]) * factorX;
      double objectHeight = (result["box"][3] - result["box"][1]) * factorY;
      
      speak() {
        String currentResult = result['tag'].toString();
        DateTime currentTime = DateTime.now();




        if (currentResult != previousResult ||
            currentTime.difference(previousSpeechTime) >= repeatDuration) {
          tts.flutterSpeak(currentResult);
          previousResult = currentResult;
          previousSpeechTime = currentTime;
        }
      }
      speak();




      return Positioned(
        left: objectX,
        top: objectY,
        width: objectWidth,
        height: objectHeight,
        child: Container(
          decoration: BoxDecoration(
            borderRadius: const BorderRadius.all(Radius.circular(10.0)),
            border: Border.all(color: Colors.pink, width: 2.0),
          ),
          child: Text(
            "${result['tag']} ${((result['box'][4] * 100).toStringAsFixed(0))}",
            style: TextStyle(
              background: Paint()..color = colorPick,
              color: const Color.fromARGB(255, 115, 0, 255),
              fontSize: 18.0,
            ),
          ),
        ),
      );
    }).toList();
  }
}

最后,您可以在Main.dart中將YoloVideo類作為函數調用,以在啟動應用程序時啟動視頻流和實時目標檢測,如下所示:

main() async {
  WidgetsFlutterBinding.ensureInitialized();




  runApp(
    const MaterialApp(
      home: YoloVideo(),
    ),
  );
}

我的Yolov8 Flutter應用程序的截圖

責任編輯:趙寧寧 來源: 小白玩轉Python
相關推薦

2024-01-29 09:29:02

計算機視覺模型

2024-05-15 09:16:05

2023-12-11 10:18:38

YOLOv8檢測器實戰

2024-07-22 13:49:38

YOLOv8目標檢測開發

2024-11-28 10:04:14

2024-11-18 17:31:27

2024-07-11 08:25:34

2024-10-25 08:30:57

計算機視覺神經網絡YOLOv8模型

2025-02-07 14:52:11

2024-10-16 16:49:44

定向邊界框目標檢測YOLOv8

2024-08-27 12:40:59

2025-01-24 07:37:19

計算機視覺熱力圖YOLOv8

2024-10-10 17:05:00

2024-09-09 16:35:10

YOLO模型

2025-01-21 11:41:14

2023-02-02 09:00:00

2024-07-01 12:55:50

2023-01-12 12:20:29

YOLOv8模型

2023-11-15 17:48:04

Yolo V8人工智能

2024-09-20 10:02:13

點贊
收藏

51CTO技術棧公眾號

日韩精品人妻中文字幕| 国产亚洲成av人片在线观黄桃| 99久久国产宗和精品1上映| 91精品国产欧美一区二区| 一区二区导航| 国产成人无码精品亚洲| 国产91免费视频| 一区二区三区在线影院| 精品自拍视频| 美国黑人一级大黄| 国产精品免费小视频| 国产视频一区二区三区在线观看| 超级碰碰不卡在线视频| 欧美污在线观看| 欧美成人午夜激情在线| 国产精品一区二区久久不卡| 在线看女人毛片| 日本一区二区免费视频| 久久成人这里只有精品| 国产乱子轮精品视频| 污影院在线观看| bl动漫在线观看| 9.1国产丝袜在线观看| 91免费观看视频| 成人全视频免费观看在线看| 国产黄色小视频网站| 国产高清自拍99| 欧美日韩午夜视频在线观看| 国产一区二区三区日韩精品| 在线播放精品视频| 国产av熟女一区二区三区 | 国产精品日韩高清| 欧美性猛交xxxx免费看| 成人激情视频| 欧美视频久久久| 久热精品在线播放| 7777免费精品视频| 中文字幕一区二区三区在线观看| 91午夜精品| 在线观看国产一区二区三区| 国产成人艳妇aa视频在线 | 国产精品后入内射日本在线观看| 一区二区在线免费视频| av一区二区三区四区| 白嫩亚洲一区二区三区| 波多野结衣视频网址| 欧美成人一区二区在线观看| 欧美精品制服第一页| 中文字幕av资源一区| 国产精品一国产精品| 神马午夜电影一区二区三区在线观看| 男女视频在线观看网站| 国产精品高潮呻吟久久av黑人| 亚洲国产你懂的| 欧美日韩网址| 性xxxxfjsxxxxx欧美| 黑鬼狂亚洲人videos| 一区二区三区久久网| 日韩在线观看网站| 中文字幕免费不卡| 国产高清久久| 亚洲性图自拍| 天天操天天爽天天干| 逼特逼视频在线| 青草青草久热精品视频在线网站| 激情成人中文字幕| 久久午夜电影| 日韩一级特黄| 亚洲精品一区二区三区新线路| 天天躁日日躁狠狠躁免费麻豆| 粉嫩av一区二区三区免费观看| 亚洲国产另类 国产精品国产免费| 成人免费av资源| 亚洲理论电影片| 黄色网址在线免费| 国产精品成人av久久| 99999精品| 日韩激情第一页| 久久久99精品久久| 99久久精品网站| 国产一二三在线| 国产精品第6页| 成人三级做爰av| 神马影院午夜我不卡| 欧美大秀在线观看| 在线视频综合导航| 成人手机在线视频| 99久久夜色精品国产亚洲狼| 色戒汤唯在线| av在线亚洲天堂| 97人妻人人揉人人躁人人| 99久久免费观看| 亚洲一区二区在线| 最近2019年手机中文字幕| 精品久久久久久久久久| 国产91精品在线观看| 日韩精品中文字幕第1页| 国产白浆在线免费观看| 91精品国产乱码久久久| 天天操夜夜操av| 香蕉视频禁止18| 日本在线观看不卡| 国产精品第二页| 亚洲天堂av综合网| 91精品福利视频| 99视频精品在线| 午夜一区二区三区不卡视频| 欧美电影免费网站| 国产欧洲在线| 欧美一区二区少妇| 国产成人麻豆免费观看| 亚洲综合网在线观看| 白嫩少妇丰满一区二区| 日韩精品一区国产麻豆| 国产精品久久久久久久久快鸭| 男女性色大片免费观看一区二区 | 91xxx视频| 国产精品国产三级国产专区53| 欧美激情国产日韩精品一区18| 精品嫩草影院久久| 在线一区二区三区做爰视频网站| 国产精品丝袜久久久久久app| 韩国精品一区二区| 日韩亚洲国产欧美| 日韩精品一区二区三区免费观影| 亚洲精品tv| 久草免费在线视频| 91在线网址| 天堂v视频永久在线播放| 少妇无套高潮一二三区| 91欧美视频在线| 久色视频在线播放| 杨幂一区欧美专区| 欧美激情专区| 99国产视频在线| 国产精品美乳在线观看| 亚洲3p在线观看| 色偷偷888欧美精品久久久| 亚洲国产精久久久久久| 日韩一区二区高清| 欧美日韩午夜在线| 日本丰满少妇一区二区三区| 亚洲国产一区二区在线播放| 国产精品三级视频| 国产欧美精品日韩区二区麻豆天美| 成人一区在线看| 国产成人午夜视频| 国产成人亚洲精品青草天美| 韩国欧美国产一区| 激情六月婷婷综合| 国产麻豆精品在线| 国产美女精品一区二区三区| 热久久一区二区| 日韩国产成人精品| 视频在线观看91| 蜜桃一区二区三区在线| 免费看日韩精品| 看片的网站亚洲| 国产一区欧美日韩| 国产成人av电影免费在线观看| 国产一区二区在线视频| 高清成人在线观看| av不卡在线播放| jvid福利写真一区二区三区| 91丨九色丨蝌蚪富婆spa| 91美女片黄在线观看91美女| 2023国产精品视频| 久久精品亚洲精品国产欧美| thepron国产精品| 中文字幕日韩av资源站| 久久九九精品| 麻豆国产精品官网| 国产一区二区不卡在线| av一区二区不卡| 国产亚洲一级| 亚洲国产aⅴ精品一区二区| 粉嫩一区二区三区在线观看| 风间由美性色一区二区三区四区| 欧美日韩一本| 91日韩视频| 小嫩嫩精品导航| 国产乱子伦一区二区三区国色天香| 成人精品免费网站| 国产精品青草综合久久久久99| 一区二区国产视频| 欧美性一区二区| 亚洲精品久久久久久久久| 色久欧美在线视频观看| 欧洲s码亚洲m码精品一区| 91久久久久久国产精品| 日韩久久不卡| 99色精品视频| 日韩视频在线视频| 国产成年人视频网站| 国产精品九九九九九| 久艹视频在线观看| 国产人妖一区二区三区| 日本在线免费| 天堂久久午夜av| 欧美少妇性xxxx| 男人的天堂亚洲在线| 99riav一区二区三区| 亚洲午夜在线视频| 欧美大黄免费观看| 欧美黑人一区二区三区| 成人xxxxx色| 欧美黄网在线观看| www.555国产精品免费| 国产精品成人国产乱| 人人妻人人澡人人爽人人欧美一区| 污污片在线免费视频| 77成人影视| 久久人人精品| 欧美国产一区二区| 3atv一区二区三区| 久久久久久久久91| 精品国产综合久久| 高潮一区二区三区| 久久亚洲AV无码| 欧美视频xxx| 欧美国产日韩电影| 亚洲午夜一级| 国产亚洲成aⅴ人片在线观看| 欧洲精品在线观看| 欧美国产日韩一区二区在线观看| 久久99影院| 999热精品视频| 日韩 欧美 亚洲| 97超碰国产一区二区三区| 国产一区调教| 久久97超碰国产精品超碰| 无吗不卡中文字幕| 久久久成人精品视频| 欧美日韩国产免费一区二区三区| 国产三级精品三级在线| 丰满少妇xoxoxo视频| 在线中文字幕亚洲| 国产aaa精品| 麻豆电影在线播放| 一区二区中文字幕| 青青久在线视频| 亚洲精品美女免费| 亚洲精品国产精品国| 91精品国产欧美一区二区18| 中文字幕网址在线| 色av综合在线| 日本久久综合网| 色偷偷88欧美精品久久久| 国产又大又黄视频| 午夜不卡在线视频| 久久免费激情视频| 日本道精品一区二区三区| 国产剧情在线视频| 色丁香久综合在线久综合在线观看| 国产午夜性春猛交ⅹxxx| 黄色精品在线看| 国语对白永久免费| 在线日韩av片| 中文字幕视频一区二区| 欧美欧美午夜aⅴ在线观看| 青青国产在线视频| 欧美老人xxxx18| 99国产精品一区二区三区| 日韩欧美激情四射| 天天操天天插天天射| 亚洲精品视频免费在线观看| 暖暖视频在线免费观看| 国产性色av一区二区| 日本暖暖在线视频| 欧美裸体xxxx极品少妇| hd国产人妖ts另类视频| 国产成人97精品免费看片| 国产成人亚洲一区二区三区| 92国产精品久久久久首页 | 99精品国产热久久91蜜凸| 无码人妻精品一区二区三区温州| 26uuu亚洲| 午夜激情视频在线播放| 亚洲午夜久久久久久久久电影院 | 99re在线观看| 日韩av三区| 午夜精品福利一区二区| 午夜日韩av| 欧美 日韩精品| 狠狠色丁香婷婷综合| 欲求不满的岳中文字幕| 国产精品视频线看| 日韩福利片在线观看| 欧美性videosxxxxx| 亚洲第一页在线观看| 亚洲色图第一页| 视频在线观看入口黄最新永久免费国产| 午夜精品福利视频| 日韩专区视频| 久久一区二区三区欧美亚洲| 外国成人免费视频| 日韩精品一区二区三区色欲av| 国产在线精品一区在线观看麻豆| 六十路息与子猛烈交尾| 亚洲女人****多毛耸耸8| 欧美精品一二三四区| 日韩欧美电影一区| 91caoporn在线| 91精品国产乱码久久久久久蜜臀| 日韩午夜电影免费看| 欧美日韩一区综合| 欧美三级网页| 亚洲欧美偷拍另类| 久久久久久久免费视频了| 青青草手机在线观看| 欧美日韩在线播放一区| 日韩有码电影| 久久久久久伊人| 自拍偷拍亚洲图片| 少妇免费毛片久久久久久久久| av成人激情| 久久久久99人妻一区二区三区| 亚洲国产精品精华液2区45| 可以免费在线观看的av| 精品国产一区久久| 国产又粗又猛又爽又黄av| 一区二区三区在线免费观看| 中文字字幕在线观看| 亚洲乱码一区av黑人高潮| 欧美高清另类hdvideosexjaⅴ| 国产精品一区二区三区毛片淫片| 免费短视频成人日韩| 国产视频九色蝌蚪| 成人性生交大片免费看中文网站| 国产精品免费在线视频| 欧美三片在线视频观看| 免费成人av电影| 人人澡人人澡人人看欧美| 日韩a级大片| 成人毛片一区二区| av男人天堂一区| 日韩在线视频免费播放| 亚洲精品av在线播放| caoporn-草棚在线视频最| 国产日韩一区二区| 亚洲三级电影在线观看| 国产一级二级视频| 精品国产乱码久久久久久虫虫漫画| 人妻一区二区三区四区| 国模私拍一区二区三区| 国产精品2023| 日韩av综合在线观看| 99久久99久久久精品齐齐| 欧美日韩综合在线观看| 日韩精品在线视频| 粉嫩一区二区三区| 一区二区三区在线视频看| 国产精品一区二区男女羞羞无遮挡 | 最好看的日本字幕mv视频大全| 亚洲人成五月天| 成人全视频免费观看在线看| 久久久国产精华液999999| 久久99国产乱子伦精品免费| 一区二区在线观看免费视频| 欧美videossexotv100| av日韩中文| 欧美资源一区| 精品一区二区三区视频| 国产亚洲自拍av| 精品视频在线播放| 成人a在线观看高清电影| 咪咪色在线视频| 国产.欧美.日韩| 麻豆成人免费视频| 最近日韩中文字幕中文| 2023国产精华国产精品| 夫妻免费无码v看片| 国产精品日日摸夜夜摸av| 亚洲第一成年人网站| 热久久99这里有精品| 久久久精品久久久久久96| 99riav国产精品视频| 日韩欧美国产一区二区| 国产在线观看av| 久久精品国产第一区二区三区最新章节| 日韩电影在线免费| 欧美日韩一级大片| 亚洲欧美国产精品va在线观看| 日本久久二区| 黄色一级视频片| 最新国产精品久久精品| 亚州视频一区二区三区| 国产在线精品自拍| 国产精品日本| 内射一区二区三区| 亚洲日韩中文字幕| 国产厕拍一区| 91欧美视频在线| 黑人精品xxx一区| 在线xxxx| 亚洲精品一区二| 99久久精品国产一区| 99热这里只有精品9| 国产激情999| 国产日韩亚洲欧美精品|