焊接自動化測試平臺圖像處理分析-模型訓練推理

1、使用技術棧:jdk17/springboot/python/opencv/yolov8

2、JAVA環境搭建??

JDK17下載安裝:

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

解壓軟件

tar?-xf?jdk-17.0.16_linux-x64_bin.tar.gz

配置全局變量

vim?/etc/profile

放到最后面

export?JAVA_HOME=/usr/local/jdk-17.0.16

export?CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export?PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

使環境變量生效

source?/etc/profile

設置環境變量CXJG_HOST = prod

echo 'export CXJG_HOST=prod' >> ~/.bashrc

source ~/.bashrc

后臺啟動jar服務:

java Jar后臺啟動 日志輸出 output.log

nohup java -jar robot-0.0.1-SNAPSHOT.jar > output.log 2>&1 &

3、通過虛擬環境安裝進行隔離

?python?-m?venv?yolov8-env

???source?yolov8-env/bin/activate

???pip?install?opencv-python

???pip?install?--upgrade?pip

???pip?install?ultralytics

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

如果不行?執行一下?

source?yolov8-env/bin/activate

???

??python?-c?"import?cv2;?print(cv2.__version__)"

?python?-c?'from?ultralytics?import?YOLO;?print("YOLOv8?installed!")'

?pip?show?ultralytics

退出當前虛擬環境?:

bashCopy Code

conda deactivate

該命令會將當前激活的虛擬環境退出,返回base環境或系統默認環境

  • 若使用source venv/bin/activate激活的環境,直接輸入deactivate即可退出811
  1. 安裝python3.13

apt install python3-pip

安裝yolov8n

pip3 install ultralytics

安裝schedule

pip uninstall schedule

pip install schedule

安裝pymysql

pip3 install pymysql

安裝dbutils

pip3 install dbutils

pip3 install --upgrade python-dateutil

4、mysql8下載安裝

參考:https://blog.csdn.net/ITzhanghao/article/details/150922166?spm=1001.2014.3001.5502

基于Yolov8n 模型訓練流程:

  1. 加載顯示數據
    1. #加載與訓練模型
    2. #安裝三方庫:ultralytics
    3. #導包:from ultralytics import YOLO
    4. from numpy.__config__ import show
    5. from ultralytics import YOLO
    6. #1.'加載模型
    7. #2.檢測目標
    8. #加載預訓練模型
    9. #官方提供的基礎測試和訓練模型
    10. #首次運行自動下載。
    11. a1 = YOLO('yolov8n.pt')
    12. #2.檢測目標
    13. #show=True 顯示檢測結果
    14. #save=True,保存檢測結果
    15. a1('2.jpg',show = True,save = True)
  2. 檢測圖片視頻
    1. #檢測網絡圖片
    2. from ultralytics import YOLO
    3. a1 = YOLO('yolov8n.pt')
    4. a1('mv.jpg',show = True,save = True)
  3. 準備數據結構
    1. #準備數據集結構文件
    2. #跟目標創建1個文件夾(可自定義名稱)
    3. #下面創建再2個文件夾(images和labels)
    4. #images和labels 下再分別創建2個文件夾(train和val)
    5. #images下的train和val 芳入訓練圖片(png,jp
    6. #labels下的train和val 放入圖片標注(txt)
  4. 準備訓練圖片標注
  5. 準備數據集配置文件
    1. #準備數據集配置文件
    2. #創建1個yaml格式的文件(可自定義名稱)
    3. #配置數據集信息、用于訓練模型
    4. data.yaml內容如下
      1. path: C:\Users\HR0432\source\repos\robot\robot\xun #數據集根目錄
      1. train: images/train #訓練集圖片路徑
      2. val: images/val #驗證集圖片路徑
      3. nc: 3 #類別數量
      4. names: ['正常','發黑','爆點'] #類別名稱
  1. 開始訓練
    1. #開始模型訓練
    2. import sys
    3. import io
    4. sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
    5. from ultralytics import YOLO
    6. import matplotlib
    7. matplotlib.use('Agg') # 寮哄埗浣跨敤闈炰氦浜掑紡鍚庣
    8. #加載預訓練模型
    9. a1 = YOLO('yolov8n.pt')
    10. #開始訓練
    11. a1.train(
    12. data='data.yaml', #數據集配置文件路徑
    13. epochs=300, #訓練輪次 官方推薦500
    14. imgsz=640, #輸入圖片尺寸 官方推薦640
    15. batch=16, #每次訓練的批量 官方推薦16/32
    16. device='cpu' , #GPU=0 CPU= 'cpu'
    17. workers=4 # 數據加載線程數
    18. )
    19. print('**********************************')
    20. print('**********************************')
    21. print('**********************************')
    22. print('**************SUCCESS*************')
    23. print('**************SUCCESS*************')
    24. print('**************SUCCESS*************')
    25. print('**********************************')
    26. print('**********************************')
    27. print('**********************************')
  2. 測試模型結果
    1. #檢測模型結果
    2. from ultralytics import YOLO
    3. #模型訓練完畢自動保存到C:\Users\HR0432\source\repos\robot\robot\runs\detect\train2\weights
    4. #best.pt是訓練好的最優模型(適用于最終應用)
    5. #last.pt是訓練的最后一輪模型(適用于訓練繼續)
    6. #加載自己訓練好的模型
    7. a1 = YOLO(r'C:\Users\HR0432\source\repos\robot\robot\runs\detect\train16\weights\best.pt')
    8. #目標檢測
    9. a1('3.jpg',show = True,save = True)

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

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

相關文章

【python實用小腳本-205】[HR揭秘]手工黨逐行查Bug的終結者|Python版代碼質量“CT機”加速器(建議收藏)

1. 場景故事 “作為HR,我曾用2小時逐行審閱50份Python簡歷項目,直到發現候選人的代碼復雜度超標導致線上事故…” → 轉折點:用麥凱布(McCabe)圈復雜度檢測腳本,30秒掃描全倉庫,現可100%攔截“高…

LeetCode - 1089. 復寫零

題目 1089. 復寫零 - 力扣(LeetCode) 思路 這道題我首先想到的是從前往后雙指針,但是這樣做會造成數據的覆蓋,比如說下面的這個情況 所以解決的方法就是從后往前去復寫,但是從后往前的話就要知道最后一個有效元素是…

c#中public類比博圖

簡單來說,**public 定義了“接口”或“引腳”**,就像你的FB塊上的 Input, Output, InOut 管腳一樣。它決定了外部的其他代碼(如另一個FB或OB1)可以看到和操作這個塊里的什么東西。讓我用你最熟悉的博圖概念來詳細類比一下。---###…

K8s基于節點軟親和的高 CPU Pod 擴容與優先調度方案

場景與目標 集群節點:master(4 核)、node1(16 核)、node2(16 核)。目標:將一個高 CPU 消耗的工作負載橫向擴展到 4 個實例,并通過**節點親和性(軟親和&#…

MySQL InnoDB 的鎖機制

引言 鎖是數據庫管理并發訪問的另一種核心機制,與 MVCC 相輔相成。本文將系統梳理 MySQL InnoDB 中鎖的粒度、類型和工作原理,并深入探討它如何與事務隔離級別配合,共同保障數據的一致性和完整性。 一、 鎖的粒度:由粗到細 InnoD…

狀態模式(State Pattern)——網絡連接場景的 C++ 實戰

一、為什么要用狀態模式?在開發中,經常遇到“對象在不同狀態下行為不同”的情況。最常見的寫法是用一堆 if/else 或 switch 來判斷狀態,然后在不同分支里寫邏輯。這樣做有兩個問題:狀態增多后,條件分支會變得臃腫。修改…

使用csi-driver-nfs實現K8S動態供給

文章目錄一、部署NFS二、k8s環境部署csi-nfs三、測試動態供給補充應用服務器IPnfs-server192.168.1.5k8s-master01192.168.1.1k8s-node01192.168.1.2k8s-node02192.168.1.3 一、部署NFS 1、在NFS服務端和k8s所有節點部署nfs-utils 因為客戶端去掛載nfs服務端的共享目錄時&…

【開題答辯全過程】以 基于ssm的房屋中介管理系統為例,包含答辯的問題和答案

個人簡介一名14年經驗的資深畢設內行人,語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧。感謝大家的…

MySQL主從復制之進階延時同步、GTID復制、半同步復制完整實驗流程

1.主從同步1.1主從同步原理是指將主庫的DDL和DML操作通過二進制日志(binlog)傳到從庫服務器,然后在從庫上對這些日志進行重新執行,從而使從庫和主庫數據保持一致1.2環境設置庫名ip地址操作系統mysql版本主庫msyql-master192.168.31.228rhel7.9源碼安裝my…

織信低代碼:用更聰明的方式,把想法變成現實!

你有沒有過這樣的時刻?想親手做一個應用,卻因為“不會編碼”而遲遲沒有開始;或曾無奈地目睹公司里一個看似簡單的需求,硬是耗費數月、投入大量人力反復開發……現在,有一類工具正在改變這一切。它叫低代碼。而今天我們…

【序列晉升】28 云原生時代的消息驅動架構 Spring Cloud Stream的未來可能性

目錄 一、Spring Cloud Stream是什么? 二、誕生背景與設計動機 2.1 微服務架構的挑戰 2.2 Spring生態的發展 2.3 Spring Integration的演進 三、架構設計與核心組件 3.1 分層架構設計 3.2 核心組件詳解 3.3 編程模型 四、解決的問題與優勢 4.1 解決的核心…

內網后滲透攻擊--linux系統(權限維持)

用途限制聲明,本文僅用于網絡安全技術研究、教育與知識分享。文中涉及的滲透測試方法與工具,嚴禁用于未經授權的網絡攻擊、數據竊取或任何違法活動。任何因不當使用本文內容導致的法律后果,作者及發布平臺不承擔任何責任。滲透測試涉及復雜技…

C++筆記之同步信號量、互斥信號量與PV操作再探(含軟考題目)

C++筆記之同步信號量、互斥信號量與PV操作再探(含軟考題目) code review! 參考筆記: 1.C++筆記之同步信號量、互斥信號量與PV操作再探(含軟考題目) 2.C++筆記之信號量、互斥量與PV操作 參考鏈接 1.嵌入式基礎知識-信號量,PV原語與前趨圖 2.信號量、PV操作及軟考高級試題解析…

布隆過濾器:快速判斷某個元素是否存在

特點:高效、空間占用小、允許一定誤判 布隆過濾器在 Redis 里的實現機制,核心就是:用一個大位圖(bitmap)來表示集合 位圖長度 m 初始值都是 0 插入元素時通過 k 個不同的哈希函數,對元素做哈希 每個哈希結…

C# 修改基類List中某一元素的子類類型

描述&#xff1a;基類&#xff1a;BaseClass子類1&#xff1a;A子類2&#xff1a;B然后我有一個List<BaseClass>類型的鏈表:list&#xff0c;我先往list中添加了兩個元素&#xff1a;第一個元素為A類型&#xff0c;第二個元素為B類型&#xff0c;然后我想改變第一個元素類…

基于STM32智能陽臺監控系統

基于STM32智能陽臺監控系統&#xff08;程序&#xff0b;原理圖元件清單&#xff09;功能介紹具體功能&#xff1a;1.采用STM32作為主控芯片實現檢測和控制&#xff1b;2.通過光敏電阻采集光線&#xff0c;將當前光線值在LCD1602顯示&#xff0c;低于50%控制LED亮&#xff0c;高…

動態維護有效區間:滑動窗口

右指針不斷移動獲取解&#xff0c;左指針不斷移動縮小解范圍 左指針的意義非常重要&#xff0c;相當于一個標兵&#xff0c;不斷與這個標兵進行比較&#xff0c;如果符合要求&#xff0c;這左指針進行移動&#xff0c;并進行操作&#xff0c;如果不符合要求&#xff0c;則左指針…

嵌入式學習---(單片機)

1.UART的概念通用異步收發器&#xff0c;2個串口&#xff08;1個串口被用于ISP下載程序&#xff0c;1個串口被用于和主機之間的通信&#xff09;&#xff0c;RXD(接收信號線) TXD(發送信號線)2、單工、半雙工、全雙工概念對比維度單工&#xff08;Simplex&#xff09;半雙工&am…

基于單片機的寵物屋智能系統設計與實現(論文+源碼)

1設計思路本設計基于單片機的寵物屋智能系統核心是實現對寵物生活環境及狀態的智能管理。系統以單片機為中樞&#xff0c;連接紅外測溫傳感器&#xff0c;可實時精準捕捉寵物體溫變化&#xff0c;以便及時發現健康異常&#xff1b;水位檢測傳感器時刻監測飲用水余量&#xff0c…

【面試】Java基礎面試題

1. Java 基本數據類型有哪些&#xff1f;場景&#xff1a;面試官問「String 是不是基本類型&#xff1f;」答案要點&#xff1a;8 種基本類型&#xff1a;byte, short, int, long, float, double, char, boolean。String 是引用類型。追問鏈條&#xff1a;問&#xff1a;為什么…