【完整源碼+數據集+部署教程】傳統韓文化元素分割系統: yolov8-seg-GFPN

背景意義

研究背景與意義

隨著全球化的加速,傳統文化的保護與傳承面臨著前所未有的挑戰。尤其是韓國的傳統文化,作為東亞文化的重要組成部分,蘊含著豐富的歷史、藝術和哲學內涵。然而,隨著現代化進程的推進,許多傳統文化元素逐漸被邊緣化,亟需通過科技手段進行有效的保護與傳播。在此背景下,基于改進YOLOv8的傳統韓文化元素分割系統的研究顯得尤為重要。

YOLO(You Only Look Once)系列模型以其高效的目標檢測能力在計算機視覺領域取得了顯著成就。YOLOv8作為該系列的最新版本,結合了深度學習的先進技術,能夠在復雜環境中快速、準確地識別和分割圖像中的目標。通過對YOLOv8的改進,我們可以更好地適應傳統韓文化元素的多樣性和復雜性,從而實現對這些元素的精準識別與分類。研究表明,傳統文化元素的視覺特征往往具有獨特性和多樣性,例如,韓國傳統服飾“韓服”、傳統建筑、民間信仰等,均可通過圖像識別技術進行有效的提取與分析。

本研究所使用的數據集包含2100幅圖像,涵蓋63個類別,涉及到的傳統韓文化元素包括但不限于“韓服”、“傳統宮殿”、“丹青”等。這些元素不僅是韓國文化的象征,也是其歷史和社會發展的重要見證。通過對這些元素的分割與識別,研究者能夠深入分析其在當代社會中的表現與變遷,進而為傳統文化的保護與傳播提供數據支持。

此外,基于改進YOLOv8的分割系統還具有重要的應用價值。通過對傳統韓文化元素的精準識別,相關機構和組織可以更有效地進行文化遺產的數字化保存與展示,促進公眾對傳統文化的認知與理解。例如,在博物館展覽、文化活動以及教育領域,該系統可以幫助觀眾更直觀地了解傳統文化的內涵與價值。同時,該系統的開發也為其他國家和地區的傳統文化保護提供了借鑒,推動了全球范圍內的文化交流與合作。

綜上所述,基于改進YOLOv8的傳統韓文化元素分割系統的研究,不僅為傳統文化的保護與傳承提供了新的技術手段,也為相關領域的研究提供了豐富的數據支持與理論基礎。通過這一研究,我們期望能夠激發更多人對傳統文化的關注與熱愛,促進文化的多樣性與可持續發展,為構建和諧社會貢獻力量。

圖片效果

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

數據集信息

數據集信息展示

在現代計算機視覺領域,數據集的構建與應用是實現高效模型訓練的基礎。本研究所使用的數據集名為“sae_0309”,其主要目的是為改進YOLOv8-seg的傳統韓文化元素分割系統提供豐富的訓練數據。該數據集包含24個類別,涵蓋了多種與韓國傳統文化密切相關的元素,體現了深厚的文化底蘊和自然生態的多樣性。

數據集中的類別列表包括了多種植物、動物以及傳統服飾等元素,具體類別如下:-HalmiGgot(奶奶花)、Buknamu(北南木)、Ccachi(喜鵲)、ChulZzuk(皇家杜鵑)、Dancheong(韓國宮殿的彩繪)、Dungnamu(東南木)、EGgi(苔蘚)、Ganari(甘栗)、Jaebi(紫羅蘭)、Jajaknamu(樺樹)、JindalRae(杜鵑花)、Korean Traditional Hanbok(韓國傳統韓服)、Korean folk beliefs(韓國民間信仰)、Korean traditional palace(韓國傳統宮殿)、KoreanLee(韓國李樹)、Mindulrae(蒲公英)、MokRyun(木蘭)、Pigeon(鴿子)、SAEZIP(塞子)、SalguGgot(杏花)、Sansuyou(山茱萸)、Sonamu(松樹)、Whasalnamu(花梨木)、Wheyangmok(紅楓)。這些類別不僅涵蓋了自然界的植物和動物,還融入了豐富的文化元素,體現了韓國傳統文化的獨特魅力。

“sae_0309”數據集的構建過程注重數據的多樣性和代表性,確保每個類別都有足夠的樣本,以便模型能夠學習到更為細致的特征。這種多樣性不僅體現在樣本的數量上,還體現在樣本的質量上。每個類別的圖像均經過精心挑選,確保其在光照、角度和背景等方面的多樣性,以提高模型的泛化能力。此外,數據集中的圖像還經過標注,確保每個元素的邊界清晰可辨,從而為分割任務提供準確的訓練數據。

在數據集的應用方面,研究者可以利用“sae_0309”進行YOLOv8-seg模型的訓練,以實現對傳統韓文化元素的高效分割。這一過程不僅有助于提升模型的分割精度,還能為后續的文化遺產保護、數字化展示等應用提供技術支持。通過對這些傳統元素的精確分割,研究者能夠更好地分析和理解韓國文化的多樣性與復雜性,從而為文化傳承與創新提供新的視角。

總之,“sae_0309”數據集不僅是一個用于訓練YOLOv8-seg模型的工具,更是一個承載著韓國傳統文化和自然生態的豐富資源。通過對這一數據集的深入研究與應用,研究者能夠在推動計算機視覺技術發展的同時,助力傳統文化的保護與傳播,為實現文化的可持續發展貢獻力量。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

核心代碼

以下是經過簡化并注釋的核心代碼部分:

import os
import platform
import logging
from pathlib import Path
import torch
import yaml

設置日志記錄

def set_logging(name=‘ultralytics’, verbose=True):
“”“設置日志記錄的配置”“”
level = logging.INFO if verbose else logging.ERROR # 根據verbose設置日志級別
logging.basicConfig(level=level, format=‘%(message)s’) # 配置日志格式

檢查是否在Ubuntu系統上

def is_ubuntu() -> bool:
“”“檢查當前操作系統是否為Ubuntu”“”
return platform.system() == ‘Linux’ and ‘ubuntu’ in platform.version().lower()

加載YAML文件

def yaml_load(file=‘data.yaml’):
“”“從YAML文件加載數據”“”
with open(file, ‘r’, encoding=‘utf-8’) as f:
return yaml.safe_load(f) # 使用安全加載避免執行任意代碼

保存YAML文件

def yaml_save(file=‘data.yaml’, data=None):
“”“將數據保存到YAML文件”“”
with open(file, ‘w’, encoding=‘utf-8’) as f:
yaml.safe_dump(data, f, allow_unicode=True) # 允許Unicode字符

檢查網絡連接

def is_online() -> bool:
“”“檢查是否有網絡連接”“”
import socket
try:
# 嘗試連接到一個公共DNS服務器
socket.create_connection((‘1.1.1.1’, 53), timeout=2)
return True
except OSError:
return False

默認配置路徑

DEFAULT_CFG_PATH = Path(file).resolve().parents[1] / ‘cfg/default.yaml’

加載默認配置

DEFAULT_CFG_DICT = yaml_load(DEFAULT_CFG_PATH)

設置全局變量

USER_CONFIG_DIR = Path(os.getenv(‘YOLO_CONFIG_DIR’, str(Path.home() / ‘.config’ / ‘Ultralytics’))) # 用戶配置目錄
SETTINGS_YAML = USER_CONFIG_DIR / ‘settings.yaml’ # 設置文件路徑

初始化日志

set_logging()

檢查是否在Ubuntu系統上

if is_ubuntu():
print(“當前操作系統是Ubuntu”)

檢查網絡連接

if is_online():
print(“網絡連接正常”)
else:
print(“沒有網絡連接”)
代碼注釋說明:
日志記錄設置:set_logging函數用于配置日志記錄的級別和格式,便于在運行時輸出信息。

操作系統檢查:is_ubuntu函數用于檢查當前操作系統是否為Ubuntu,以便在特定環境下執行不同的操作。

YAML文件加載與保存:yaml_load和yaml_save函數用于從YAML文件加載數據和將數據保存到YAML文件,使用yaml.safe_load確保安全性。

網絡連接檢查:is_online函數通過嘗試連接到公共DNS服務器來檢查網絡連接的可用性。

默認配置路徑:DEFAULT_CFG_PATH用于定義默認配置文件的路徑,便于后續加載。

全局變量初始化:USER_CONFIG_DIR和SETTINGS_YAML用于定義用戶配置目錄和設置文件的路徑。

日志初始化和狀態檢查:在代碼的最后部分,初始化日志并檢查操作系統和網絡狀態,輸出相應的信息。

這個文件是Ultralytics YOLO項目中的一個初始化模塊,主要用于設置和管理各種工具和功能,以支持YOLO模型的訓練和推理。文件中包含了許多導入的庫和定義的常量、類、函數,以下是對文件內容的詳細說明。

首先,文件導入了多個標準庫和第三方庫,包括contextlib、logging、os、platform、re、subprocess、sys、threading、urllib、uuid、cv2、matplotlib、numpy、torch和yaml等。這些庫提供了文件操作、日志記錄、并發處理、網絡請求、數據處理等功能。

接下來,文件定義了一些常量,例如多GPU訓練的相關常量(RANK和LOCAL_RANK),以及項目的根目錄、默認配置文件路徑、線程數、自動安裝和詳細模式的開關等。這些常量為后續的功能提供了基礎設置。

文件中還包含了一個幫助信息字符串,提供了使用YOLOv8的示例,包括如何安裝、如何使用Python SDK和命令行接口(CLI)進行模型訓練、驗證和預測等。

在設置部分,文件對torch、numpy和cv2進行了配置,以優化打印選項和線程使用,確保與PyTorch的兼容性。

接下來,定義了幾個類,包括TQDM、SimpleClass和IterableSimpleNamespace。TQDM類是對tqdm庫的自定義封裝,提供了不同的默認參數。SimpleClass類提供了更友好的字符串表示和錯誤報告,便于調試。IterableSimpleNamespace類擴展了SimpleNamespace,增加了可迭代功能。

文件中還定義了一些實用函數,例如plt_settings用于設置Matplotlib的繪圖參數,set_logging用于配置日志記錄,emojis用于處理平臺相關的表情符號,yaml_save和yaml_load用于保存和加載YAML格式的數據。

在默認配置部分,文件加載了默認的配置字典,并將其存儲在DEFAULT_CFG中,方便后續使用。

文件還包含了一些環境檢測函數,例如is_ubuntu、is_colab、is_kaggle、is_jupyter、is_docker等,用于檢測當前運行環境。這些函數幫助確定代碼在不同環境下的行為。

此外,文件中還定義了一些與Git相關的函數,例如is_git_dir、get_git_dir、get_git_origin_url和get_git_branch,用于獲取當前Git倉庫的信息。

最后,文件的末尾部分包含了一些初始化代碼,包括設置默認的配置、確定數據集、權重和運行目錄,并檢測當前環境。它還應用了一些補丁,以確保在特定情況下的功能正常。

總體而言,這個文件是Ultralytics YOLO項目的核心工具模塊,提供了多種功能和配置選項,以支持YOLO模型的使用和開發。

11.4 ultralytics\models\fastsam_init_.py

導入必要的模塊和類

Ultralytics YOLO 🚀, AGPL-3.0 license

從當前包中導入 FastSAM 模型類

from .model import FastSAM

從當前包中導入用于預測的 FastSAMPredictor 類

from .predict import FastSAMPredictor

從當前包中導入用于提示的 FastSAMPrompt 類

from .prompt import FastSAMPrompt

從當前包中導入用于驗證的 FastSAMValidator 類

from .val import FastSAMValidator

定義該模塊公開的接口,包含四個類

all = ‘FastSAMPredictor’, ‘FastSAM’, ‘FastSAMPrompt’, ‘FastSAMValidator’
代碼核心部分及注釋說明:
模塊導入:

from .model import FastSAM:導入 FastSAM 類,該類可能是模型的核心實現。
from .predict import FastSAMPredictor:導入 FastSAMPredictor 類,用于執行模型的預測功能。
from .prompt import FastSAMPrompt:導入 FastSAMPrompt 類,可能用于處理用戶輸入或提示信息。
from .val import FastSAMValidator:導入 FastSAMValidator 類,用于驗證模型的性能或輸出。
公開接口定義:

all 變量定義了模塊的公共接口,只有在使用 from module import * 時,這些類會被導入。這有助于控制模塊的可見性和使用。
通過這些核心部分的導入和定義,代碼為后續的模型預測、用戶交互和驗證提供了基礎結構。

這個程序文件是一個Python模塊的初始化文件,位于ultralytics/models/fastsam目錄下。它的主要功能是導入和組織與FastSAM相關的類和功能,以便在其他地方使用。

首先,文件開頭有一行注釋,提到這是Ultralytics YOLO項目的一部分,并且使用的是AGPL-3.0許可證。這表明該項目是開源的,并且遵循特定的許可證條款。

接下來,文件通過相對導入的方式引入了四個主要的組件:FastSAM、FastSAMPredictor、FastSAMPrompt和FastSAMValidator。這些組件分別來自于同一目錄下的不同模塊。具體來說:

FastSAM:可能是一個核心模型類,負責實現FastSAM算法的主要功能。
FastSAMPredictor:這個類可能用于執行預測任務,利用FastSAM模型進行推斷。
FastSAMPrompt:這個類可能涉及到與用戶交互的功能,比如接受輸入提示或配置參數。
FastSAMValidator:這個類可能用于驗證模型的性能或結果,確保其輸出的準確性和可靠性。
最后,__all__變量定義了當使用from module import *語句時,哪些名稱會被導入。這里列出了四個類的名稱,表明它們是該模塊的公共接口,用戶可以直接使用這些類而不需要了解模塊內部的實現細節。

總的來說,這個初始化文件的作用是將FastSAM相關的功能模塊整合在一起,方便其他部分的代碼進行調用和使用。

11.5 ultralytics\models\fastsam\val.py

Ultralytics YOLO 🚀, AGPL-3.0 license

from ultralytics.models.yolo.segment import SegmentationValidator
from ultralytics.utils.metrics import SegmentMetrics

class FastSAMValidator(SegmentationValidator):
“”"
自定義驗證類,用于在Ultralytics YOLO框架中進行快速SAM(Segment Anything Model)分割。

該類擴展了SegmentationValidator類,專門定制了快速SAM的驗證過程。它將任務設置為'分割',
并使用SegmentMetrics進行評估。此外,為了避免在驗證過程中出現錯誤,禁用了繪圖功能。
"""def __init__(self, dataloader=None, save_dir=None, pbar=None, args=None, _callbacks=None):"""初始化FastSAMValidator類,將任務設置為'分割',并將度量標準設置為SegmentMetrics。參數:dataloader (torch.utils.data.DataLoader): 用于驗證的數據加載器。save_dir (Path, optional): 保存結果的目錄。pbar (tqdm.tqdm): 用于顯示進度的進度條。args (SimpleNamespace): 驗證器的配置。_callbacks (dict): 用于存儲各種回調函數的字典。注意:在此類中禁用了ConfusionMatrix和其他相關度量的繪圖,以避免錯誤。"""# 調用父類的初始化方法super().__init__(dataloader, save_dir, pbar, args, _callbacks)# 設置任務類型為'分割'self.args.task = 'segment'# 禁用繪圖功能,以避免在驗證過程中出現錯誤self.args.plots = False# 初始化度量標準為SegmentMetrics,指定保存結果的目錄self.metrics = SegmentMetrics(save_dir=self.save_dir, on_plot=self.on_plot)

代碼核心部分解釋:
類定義:FastSAMValidator 繼承自 SegmentationValidator,用于實現快速SAM分割的自定義驗證邏輯。
初始化方法:init 方法中設置了任務類型為’分割’,并禁用了繪圖功能,以避免驗證過程中的錯誤。
度量標準:使用 SegmentMetrics 進行評估,便于后續對分割結果的性能進行量化分析。
這個程序文件是Ultralytics YOLO框架中的一個自定義驗證類,名為FastSAMValidator,主要用于快速的SAM(Segment Anything Model)分割任務。該類繼承自SegmentationValidator,并對驗證過程進行了特定的定制,以適應快速SAM的需求。

在類的文檔字符串中,描述了其主要功能和屬性。FastSAMValidator類的主要任務是進行圖像分割,并使用SegmentMetrics來評估分割的效果。為了避免在驗證過程中出現錯誤,該類禁用了繪圖功能。

在構造函數__init__中,類接受多個參數,包括數據加載器、結果保存目錄、進度條對象、配置參數和回調函數字典。構造函數首先調用父類的構造函數來初始化繼承的屬性,然后將任務類型設置為“segment”,并禁用繪圖功能。最后,它初始化了SegmentMetrics對象,用于在驗證過程中計算和保存評估指標。

總的來說,這個文件的主要目的是提供一個定制的驗證工具,以便在Ultralytics YOLO框架中高效地進行圖像分割任務,同時確保在驗證過程中不會因為繪圖功能而導致錯誤。

12.系統整體結構(節選)
程序整體功能和構架概括
Ultralytics YOLO項目是一個用于計算機視覺任務的深度學習框架,特別是目標檢測和圖像分割。該項目的架構模塊化,包含多個子模塊,每個模塊負責特定的功能。整體上,項目的設計旨在提供高效、靈活的模型訓練、推理和驗證工具,以支持各種計算機視覺應用。

ultralytics/engine/results.py:處理模型推理結果,提供數據存儲、操作和可視化的功能。
ultralytics/nn/backbone/repvit.py:實現RepViT模型,結合卷積神經網絡和變換器的優點,用于圖像處理任務。
ultralytics/utils/init.py:提供各種工具和實用函數,支持項目的配置、日志記錄、環境檢測等功能。
ultralytics/models/fastsam/init.py:初始化FastSAM相關模塊,整合分割模型及其預測和驗證功能。
ultralytics/models/fastsam/val.py:實現FastSAM模型的驗證功能,評估分割效果并計算相關指標。
文件功能整理表
文件路徑 功能描述
ultralytics/engine/results.py 處理推理結果,提供結果存儲、操作和可視化功能,包括邊界框、掩碼和關鍵點的處理。
ultralytics/nn/backbone/repvit.py 實現RepViT模型,結合CNN和Transformer的優點,提供高效的圖像處理能力。
ultralytics/utils/init.py 提供項目的工具和實用函數,包括配置、日志記錄、環境檢測等,支持整體框架的功能。
ultralytics/models/fastsam/init.py 初始化FastSAM相關模塊,整合分割模型及其預測和驗證功能,方便其他模塊調用。
ultralytics/models/fastsam/val.py 實現FastSAM模型的驗證功能,評估分割效果,計算并保存相關的性能指標。
這個表格總結了每個文件的主要功能,展示了Ultralytics YOLO項目的模塊化設計和各個組件之間的協作關系。

13.圖片、視頻、攝像頭圖像分割Demo(去除WebUI)代碼
在這個博客小節中,我們將討論如何在不使用WebUI的情況下,實現圖像分割模型的使用。本項目代碼已經優化整合,方便用戶將分割功能嵌入自己的項目中。 核心功能包括圖片、視頻、攝像頭圖像的分割,ROI區域的輪廓提取、類別分類、周長計算、面積計算、圓度計算以及顏色提取等。 這些功能提供了良好的二次開發基礎。

核心代碼解讀
以下是主要代碼片段,我們會為每一塊代碼進行詳細的批注解釋:

import random
import cv2
import numpy as np
from PIL import ImageFont, ImageDraw, Image
from hashlib import md5
from model import Web_Detector
from chinese_name_list import Label_list

根據名稱生成顏色

def generate_color_based_on_name(name):

計算多邊形面積

def calculate_polygon_area(points):
return cv2.contourArea(points.astype(np.float32))

繪制中文標簽

def draw_with_chinese(image, text, position, font_size=20, color=(255, 0, 0)):
image_pil = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
draw = ImageDraw.Draw(image_pil)
font = ImageFont.truetype(“simsun.ttc”, font_size, encoding=“unic”)
draw.text(position, text, font=font, fill=color)
return cv2.cvtColor(np.array(image_pil), cv2.COLOR_RGB2BGR)

動態調整參數

def adjust_parameter(image_size, base_size=1000):
max_size = max(image_size)
return max_size / base_size

繪制檢測結果

def draw_detections(image, info, alpha=0.2):
name, bbox, conf, cls_id, mask = info[‘class_name’], info[‘bbox’], info[‘score’], info[‘class_id’], info[‘mask’]
adjust_param = adjust_parameter(image.shape[:2])
spacing = int(20 * adjust_param)

if mask is None:x1, y1, x2, y2 = bboxaim_frame_area = (x2 - x1) * (y2 - y1)cv2.rectangle(image, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=int(3 * adjust_param))image = draw_with_chinese(image, name, (x1, y1 - int(30 * adjust_param)), font_size=int(35 * adjust_param))y_offset = int(50 * adjust_param)  # 類別名稱上方繪制,其下方留出空間
else:mask_points = np.concatenate(mask)aim_frame_area = calculate_polygon_area(mask_points)mask_color = generate_color_based_on_name(name)try:overlay = image.copy()cv2.fillPoly(overlay, [mask_points.astype(np.int32)], mask_color)image = cv2.addWeighted(overlay, 0.3, image, 0.7, 0)cv2.drawContours(image, [mask_points.astype(np.int32)], -1, (0, 0, 255), thickness=int(8 * adjust_param))# 計算面積、周長、圓度area = cv2.contourArea(mask_points.astype(np.int32))perimeter = cv2.arcLength(mask_points.astype(np.int32), True)......# 計算色彩mask = np.zeros(image.shape[:2], dtype=np.uint8)cv2.drawContours(mask, [mask_points.astype(np.int32)], -1, 255, -1)color_points = cv2.findNonZero(mask)......# 繪制類別名稱x, y = np.min(mask_points, axis=0).astype(int)image = draw_with_chinese(image, name, (x, y - int(30 * adjust_param)), font_size=int(35 * adjust_param))y_offset = int(50 * adjust_param)# 繪制面積、周長、圓度和色彩值metrics = [("Area", area), ("Perimeter", perimeter), ("Circularity", circularity), ("Color", color_str)]for idx, (metric_name, metric_value) in enumerate(metrics):......return image, aim_frame_area

處理每幀圖像

def process_frame(model, image):
pre_img = model.preprocess(image)
pred = model.predict(pre_img)
det = pred[0] if det is not None and len(det)
if det:
det_info = model.postprocess(pred)
for info in det_info:
image, _ = draw_detections(image, info)
return image

if name == “main”:
cls_name = Label_list
model = Web_Detector()
model.load_model(“./weights/yolov8s-seg.pt”)

# 攝像頭實時處理
cap = cv2.VideoCapture(0)
while cap.isOpened():ret, frame = cap.read()if not ret:break......# 圖片處理
image_path = './icon/OIP.jpg'
image = cv2.imread(image_path)
if image is not None:processed_image = process_frame(model, image)......# 視頻處理
video_path = ''  # 輸入視頻的路徑
cap = cv2.VideoCapture(video_path)
while cap.isOpened():ret, frame = cap.read()......

源碼文件

在這里插入圖片描述

源碼獲取

歡迎大家點贊、收藏、關注、評論啦 、查看👇🏻獲取聯系方式👇🏻

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

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

相關文章

構建AI智能體:三十五、決策樹的核心機制(一):刨根問底鳶尾花分類中的參數推理計算

一、初識決策樹想象一個生活中的場景,我們去水果店買一個西瓜,該怎么判斷一個西瓜是不是又甜又好的呢?我們可能會問自己一系列問題:首先看看它的紋路清晰嗎?如果“是”,那么它可能是個好瓜。如果“否“&…

c語言中實現線程同步的操作

線程 常見問題 同步權限 在多線程 / 多進程并發時,為避免共享資源(如內存變量、硬件設備、文件)被同時修改導致的數據不一致,需要通過 “同步機制” 控制誰能訪問資源 ——“獲取同步權限” 就是線程 / 進程申請這種訪問資格的過程…

一臺設備管理多個 GitHub 賬號:從配置到切換的完整指南

一臺設備管理多個 GitHub 賬號:從配置到切換的完整指南 在日常開發中,我們經常需要在同一臺電腦上使用多個 GitHub 賬號(比如個人賬號和工作賬號)。但默認情況下,Git 會優先使用全局配置的賬號,導致推送代…

即插即用,秒入虛擬:TouchDIVER Pro 觸覺手套 賦能 AR/VR 高效交互

一、即插即用,零門檻開啟沉浸之旅 在XR(擴展現實)技術高速發展的今天,用戶對“真實感”的追求愈發迫切。Weart公司旗下旗艦產品TouchDIVER Pro觸覺手套,憑借無需適配器、無需復雜設置的極簡設計,打破傳統觸…

GitHub熱榜項目 - 日榜之應用場景與未來發展趨勢

一、引言GitHub熱榜項目 - 日榜呈現出豐富多樣的技術成果,這些項目蘊含著巨大的應用潛力,并且對未來數智化技術的發展有著重要的指示作用。深入探究其應用場景以及未來發展趨勢,能讓我們更好地把握技術發展方向,將這些前沿技術應用…

Linux網絡:socket編程TCP

文章目錄前言一,服務器端流程1-1 綁定協議1-2 綁定IP和端口1-3 監聽客戶端1-4 接收連接1-5 收發數據1-6 關閉連接1-7 服務端整體代碼二,客戶端流程2-1 指定地址和端口2-2 連接服務器2-3 發送消息2-4 客戶端整體代碼前言 TCP 的通信過程就像兩個人打電話…

飛書智能查詢機器人搭建說明文檔

飛書智能查詢機器人搭建說明文檔 一、使用手冊 1. 創建飛書機器人應用 如果僅需對接已有機器人應用則可跳過該步驟(建議各業務部門獨立使用各自的機器人應用)。在飛書開發者后臺中創建企業自建應用,添加機器人應用能力并申請對應的身份權限…

藍色系列包裝行業網站 適合企業站,帶手機版自適應

內容目錄一、詳細介紹二、效果展示1.部分代碼2.效果圖展示三、學習資料下載一、詳細介紹 藍色通用企業網站是基于SDCMS四合一企業網站管理系統開發的模板,適合企業站,帶手機版。 四網合一企業網站管理系統是一個以PHPMySQL/Sqlite進行開發的四網合一網…

【大模型:知識圖譜】--6.Neo4j DeskTop安裝+使用

上一期講了圖知識庫的安裝, 【圖數據庫】--Neo4j 安裝_neo4j安裝-CSDN博客 現在來看看可視化管理程序:Neo4j DeskTop的安裝. 需要先安裝java環境,具體看上面 目錄 1.Neo4j DeskTop版下載 2.Neo4j DeskTop版安裝 3.Neo4j DeskTop版使用 …

Python爬蟲實戰——使用NetNut網頁解鎖器獲取亞馬遜電商數據

文章目錄一、電商數據的作用1.1 支撐科學決策,降低試錯成本1.2 提升運營效率,實現降本增效1.3 深化用戶理解,驅動個性化服務1.4 監測競品動態,制定差異化策略1.5 驅動產品創新,滿足用戶需求二、爬取目標三、環境準備四…

超越NAT:如何構建高效、安全的內網穿透隧道

在敏捷開發和分布式協作成為主流的今天,開發者需要一個能夠將本地開發環境瞬間暴露給公網的能力,以便進行演示、聯調或處理回調。傳統方案如配置路由器端口映射或部署VPN,不僅繁瑣且存在安全風險。內網穿透技術,特別是以 ngrok、Z…

第二十三章 ESP32S3 RTC 實驗

本章介紹 ESP32-S3 實時時鐘(RTC)的使用,實時時鐘能為系統提供一個準確的時間,即時系統復位或主電源斷電, RTC 依然能夠運行,因此 RTC 也經常用于各種低功耗場景。通過本章的學習,將學習到 RTC …

Java 輕松實現 Markdown 轉 Word、PDF、HTML

在軟件開發和技術寫作領域,Markdown 已成為一種被廣泛使用的輕量級標記語言。它的語法簡潔,書寫效率高,非常適合快速記錄筆記、撰寫技術文檔或博客文章。但在實際應用中,Markdown 文件往往需要被轉換為更通用的格式,例…

Kafka系列之:Kafka broker does not support the ‘MetadataRequest_v0‘ Kafka protocol.

Kafka系列之:Kafka broker does not support the MetadataRequest_v0 Kafka protocol. 一、完整報錯 二、錯誤原因 三、解決方法 一、完整報錯 kafka.errors.IncompatibleBrokerVersion: IncompatibleBrokerVersion: Kafka broker does not support the ‘MetadataRequest_v0’…

開源AI紅隊工具“Red AI Range“助力發現、分析與緩解AI系統漏洞

開源AI紅隊平臺Red AI Range(RAR)正在改變安全專業人員評估和強化AI系統的方式。該平臺通過模擬真實攻擊場景,利用容器化架構和自動化工具,簡化了AI特有漏洞的發現、分析和緩解流程。**核心功能** 1. 武器庫/目標按鈕可快速啟動…

SQL 數據庫簡介

SQL(Structured Query Language)是一種用于管理和操作關系型數據庫的標準語言。關系型數據庫以表格形式存儲數據,并通過行和列的結構化方式組織信息。SQL 提供了一套強大的命令,用于查詢、插入、更新和刪除數據,以及管…

SpringBoot4與Spring7發布:云原生深度進化

Spring Boot 4和Spring Framework 7帶來基礎要求升級、模塊化改進、API版本化、聲明式HTTP客戶端、彈性注解等重大特性,標志著Java開發生態向云原生時代的深度進化。 近日,Spring生態迎來了自2022年以來最具里程碑意義的更新——Spring Boot 4和Spring …

基于Spring Boot與Micrometer的系統參數監控指南

如何為你的Spring Boot應用裝上一個功能強大的監控儀表盤在現代微服務架構中,系統監控已成為保障應用穩定性的關鍵環節。通過有效的監控,我們可以實時了解應用的運行狀態,及時發現并解決性能問題。本文將介紹如何使用Micrometer及其注冊表&am…

【運維】-- 前端會話回放與產品分析平臺之 openreplay

目錄 OpenReplay 項目分析 1、項目概覽 2、關鍵特性 3、代碼結構(Monorepo) 4、技術棧與語言占比 5、部署與交付 6、社區與支持 7、版本與活躍度(截至倉庫頁面所示) 8、適用場景 9、優勢與注意事項 10、落地建議&#…

NineData社區版 V4.5.0 正式發布!運維中心新增細粒度任務權限管理,新增MySQL至Greenplum全鏈路復制對比

NineData 社區版 V4.5.0 正式發布!在數據復制方面,新增 MySQL 至 Greenplum 全鏈路復制對比,并優化全局 DDL 管控、MySQL/PostgreSQL/MongoDB 同構性能。在數據庫 DevOps 方面,新增支持 AWS RDS 全系列及阿里云 PolarDB&#xff0…