Select Page

LaneSOD 教學:用 InSPyReNet 架構完成車道線分割!

LaneSOD 是一套基於 InSPyReNet(逆向顯著性金字塔重建網路)而延伸出的開源模型,專門針對車道線分割(Lane Segmentation),應用於駕駛場景的 AI 視覺處理中。透過強大的顯著性檢測技術,LaneSOD 能精準辨識道路上的車道線,具備高準確度與可用性。


一、什麼是 LaneSOD?

  • 核心技術:LaneSOD 架構於 InSPyReNet,後者是一種高解析度顯著性物件偵測模型,於 ACCV 2022 上提出,專門處理高解析度圖片的顯著性檢測,使用金字塔結構融合多階層特徵提高精度。
  • 執行場景:LaneSOD 適用於駕駛視角的車道識別,尤其在多車道或複雜光線下仍能穩定運作,是自駕輔助或智慧交通系統的理想工具。

二、快速上手:使用 LaneSOD 的流程概覽

以下以 Python + PyTorch 環境為基礎,簡述流程步驟:

安裝依賴與下載模型:

git clone https://github.com/plemeri/LaneSOD.git
cd LaneSOD
pip install -r requirements.txt

    資料準備與推論:

    from lanesod import LaneSODModel
    model = LaneSODModel(pretrained=True)
    # 載入測試影像
    img = load_image("road_scene.jpg")
    mask = model.predict(img)
    save_image_mask("road_scene_mask.png", mask)

    mask 是二值化輸出,車道線處為前景。

    可進行後處理(edge filtering)提升視覺辨識效果。

    三、LaneSOD 的特色亮點

    • 高解析度精準分割:繼承 InSPyReNet 的頂尖顯著性分析能力,即使複雜場景仍保持高精度。
    • 簡易套件整合:支援 CLI 和 Python API,開發者可快速整合至專案。
    • 應用靈活性高:適用於單張圖片、影片逐幀處理或即時影像分析。
    • MIT 開源授權:自由使用並可擴展至商業應用。

    四、實戰建議

    • 強調後處理:可搭配 OpenCV 做 morphological operations(如 dilation, erosion)強化車道線連貫性。
    • 影片整合:巡迴處理影片每幀、並套用 temporal smoothing,可提升邊界一致性與視覺效果。
    • 多元測試場景:建議在白天、夜晚、陰影等多樣環境下測試模型穩定性。

    原始資料

    https://github.com/plemeri/LaneSOD

    Python 快速實戰:transparent-background AI 去背工具支援 webcam 使用指南

    如何輕鬆地運用 AI 技術,讓影片或直播畫面擁有透明背景,無需繁鎖編輯與圖層操作!今天分享的工具是使用 InSPyReNet 提供的開源套件

    工具簡介:什麼是 transparent-background[webcam]

    • 核心技術:基於 InSPyReNet(ACCV 2022)所提出的 AI 去背演算法,支援圖片、影片甚至 webcam 的背景移除功能 。
    • Python 套件:名稱為 transparent-background,採 MIT 授權,可自由商業使用。
    • 強大特色
      • 支援多種輸出模式:如 RGBA(透明背景)、saliency map、綠幕、背景模糊、overlay 等。
      • 支援 webcam 輸入,但 Linux 上需安裝 v4l2loopback 才能建立虛擬攝影機

    安裝與依賴設定(含 webcam 支援)

    安裝套件

    pip install transparent-background[webcam]

    若使用 Linux,請安裝 webcam relay

    git clone https://github.com/umlaeute/v4l2loopback.git && cd v4l2loopback
    make && sudo make install
    sudo depmod -a
    sudo modprobe v4l2loopback devices=1
    

    CLI 快速範例

    transparent-background --source 0 --dest output_folder --type rgba

    參數說明:

    • --source 0 表示 webcam 輸入(一般第一支 webcam 為 0)。
    • --type rgba 代表輸出為帶 alpha 通道的透明背景影像。
      可依需求更換為 mapgreenbluroverlay 或指定背景圖

    用於單一影片檔案

    Python API 範例:

    讀取 webcam 並顯示去背畫面

    import cv2
    from transparent_background import Remover
    
    remover = Remover()
    
    cap = cv2.VideoCapture(0)  # 開啟預設 webcam
    
    while True:
        ret, frame = cap.read()
        if not ret:
            break
    
        # 處理去背結果(RGBA)
        out = remover.process(frame, type="rgba")  
        cv2.imshow("Transparent Webcam", out)
    
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    cap.release()
    cv2.destroyAllWindows()
    

    📖 transparent-background 參數說明

    --source [SOURCE](必填)

    指定輸入的資料來源,可以是:

    • 單張圖片:例如 image.png
    • 圖片資料夾:例如 path/to/img/folder
    • 單個影片檔:例如 video.mp4
    • 影片資料夾:例如 path/to/vid/folder
    • 整數:用於指定 webcam 地址,例如 0(對應 /dev/video0 的攝影機)

    --dest [DEST](可選)

    輸出結果存放的資料夾,若未指定,則預設為當前工作目錄


    --threshold [THRESHOLD](可選)

    設定硬性去背的閾值,範圍為 0.0 ~ 1.0

    • 不建議與 soft prediction 同時使用,若未設定,系統會使用「軟性預測」來生成更自然的透明效果。

    --type [TYPE](可選)

    選擇輸出的背景類型,預設為 rgba

    • rgba:輸出帶透明通道的影像(alpha map),若未設定 threshold,會自動透過 pymatting 進行前景提取。⚠️ 此模式不適用於影片或 webcam
    • map:輸出純粹的 saliency map(灰階遮罩)。
    • green:將背景換成綠幕。
    • white:將背景換成純白色(由 [carpedm20] 貢獻)。
    • ‘[255, 0, 0]’:使用指定的 RGB 顏色作為背景(需加單引號)。
    • blur:將背景模糊處理。
    • overlay:以半透明綠色覆蓋前景並突顯邊緣。
    • 另一張圖片:可指定圖片路徑(例如 samples/background.png),前景會直接疊加在該背景上。

    --ckpt [CKPT](可選)

    使用其他模型檔(checkpoint)。

    • 預設會自動下載訓練好的 composite dataset 模型
    • 你也可以從 InSPyReNet Model Zoo 選擇不同的預訓練模型。

    --mode [MODE](可選)

    指定運行模式:

    • base:標準模式。
    • base-nightly:使用 nightly release 版本的 checkpoint。
    • fast:快速模式,速度快但可能在細節上略有損失。

    其他選項

    • --resize [RESIZE](可選):
      • static(預設):輸出尺寸固定。
      • dynamic:生成更清晰的邊緣,但可能不穩定。
    • --format [FORMAT](可選):輸出格式,若未指定,會與輸入格式相同。
    • --reverse(可選):反轉去背結果,將前景移除、保留背景(官方玩笑稱為「transparent-foreground」模式 😆)。
    • --jit(可選):啟用 TorchScript 模式,會先透過 PyTorch JIT 編譯器追蹤模型,初始化較慢,但推論速度更快且記憶體佔用更低。

    範例

    單張圖片去背(輸出透明 PNG):

    transparent-background --source input.png --dest output --type rgba

    處理整個資料夾的圖片,並輸出模糊背景效果

    transparent-background --source ./images --dest ./results --type blur

    即時 webcam 去背(Linux 需安裝 v4l2loopback):

    transparent-background --source 0 --dest ./webcam_output --type green

    更換背景為自訂圖片

    transparent-background --source video.mp4 --dest ./output --type 'backgrounds/bg.png'

    GUI 模式

    安裝 GUI 支援

    pip install --extra-index-url https://download.pytorch.org/whl/cu118 transparent-background[gui] # with gui dependency (flet)

    開啟 GUI

    transparent-background-gui

    官方教學

    官方網頁

    https://github.com/plemeri/transparent-background

    採用的演算法

    https://github.com/plemeri/InSPyReNet

    開源的後製影片軟體

    https://kdenlive.org

    參考資料

    Stagehand 教學|AI 驅動的瀏覽器自動化神器,TypeScript 與 Python 都支援!

    想用 AI 控制網頁自動化,但程式碼又要精準可靠,同時享受自然語言,高效又方便?那你絕不能錯過由 Browserbase 團隊推出的 Stagehand —— 這款專為 AI 時代設計的瀏覽器自動化框架,不僅支援 TypeScript 與 Python、可本地或雲端部署,還比 Browser‑Use 更快、更耐變動!

    Stagehand 兼具控制力與智慧的 AI 瀏覽器自動化框架

    Stagehand 是以 Playwright 為核心構建的 AI-native 自動化工具,它加入了 LLM 判斷能力,結合程式精準控制與自然語言指令,令自動化腳本更穩定、更智慧也更高效

    • 自然語言 + 程式碼混合操作:你可以用程式寫明確動作,也能用「act(‘點擊第一個 Stagehand 元件’)」這樣類人語法完成UI操作 。
    • 接口完整,支援察看、執行與資料萃取:核心三大命令 actobserveextract,讓操作更透明、更可控
    • 容錯與自恢復能力:UI 略有變動也不怕,Stagehand 的 observe + 快取策略讓腳本更具彈性
    • 完美整合 Playwright:所有 Playwright 腳本都能無縫升級 Stagehand,省心又高效

    核心玩法!TypeScript/JavaScript 快速上手範例

    // Use Playwright functions on the page object
    const page = stagehand.page;
    await page.goto("https://github.com/browserbase");
    
    // Use act() to execute individual actions
    await page.act("click on the stagehand repo");
    
    // Use Computer Use agents for larger actions
    const agent = stagehand.agent({
        provider: "openai",
        model: "computer-use-preview",
    });
    await agent.execute("Get to the latest PR");
    
    // Use extract() to read data from the page
    const { author, title } = await page.extract({
      instruction: "extract the author and title of the PR",
      schema: z.object({
        author: z.string().describe("The username of the PR author"),
        title: z.string().describe("The title of the PR"),
      }),
    });

    這段程式完整示範了初始化、導航、AI 驅動操作到資料萃取的流程,不僅省事,也大幅提升開發效率。

    Stagehand 與 Browser-Use 比較

    功能面Stagehand(此文主角)Browser-Use
    控制精準度Token 級動作掌控 + 自然語言指令混合攻擊角度偏自然語言,程式控制較弱
    容錯能力observe + 快取策略,對 DOM 變化更耐受缺少自恢復機制
    雲端支援原生整合 Browserbase,輕鬆雲端部署需額外集成,無預設雲平台支援
    語言支援TypeScript / Python主要依賴 Python
    AI 整合天生結合 LLM,支援複雜任務拆解依賴外部 LLM,不那麼一體化

    只要先學四個指令,快速上手

    指定去那一個網頁

    goto():

        # 初始化
        page = stagehand.page
        # 指定去那一個頁面
        await page.goto("https://rain.tips/")

    使用自然語言操作

    act():

        await page.act("點選確定按鈕");

    抓取數據資料

    extract():

        post = await page.extract("取得標題")

    預覽功能

    observe():

       links = await page.observe("找到頁面中的所有連結")

    實戰快速導覽

    安裝

    # 用 pip
    pip install stagehand python-dotenv
    
    # 安裝playwright
    python -m playwright install
    
    # 裝 chromium 瀏覽器
    python -m playwright install chromium

    建立 .env

    export BROWSERBASE_API_KEY="your_browserbase_api_key"
    export BROWSERBASE_PROJECT_ID="your_browserbase_project_id"
    export MODEL_API_KEY="your_model_api_key"  # OpenAI, Anthropic, etc.

    建立程式碼 main.py

    import asyncio
    import os
    from stagehand import Stagehand, StagehandConfig
    from dotenv import load_dotenv
    
    load_dotenv()
    
    async def main():
        config = StagehandConfig(
            env="BROWSERBASE",
            api_key=os.getenv("BROWSERBASE_API_KEY"),
            project_id=os.getenv("BROWSERBASE_PROJECT_ID"),
            model_name="gpt-4o",
            model_api_key=os.getenv("MODEL_API_KEY")
        )
        
        stagehand = Stagehand(config)
        
        try:
            await stagehand.init()
            page = stagehand.page
            
            await page.goto("https://docs.stagehand.dev/")
            await page.act("click the quickstart link")
            
            result = await page.extract("extract the main heading of the page")
            
            print(f"Extracted: {result}")
            
        finally:
            await stagehand.close()
    
    if __name__ == "__main__":
        asyncio.run(main())

    驗證與測試

    python main.py 

    若要用本地端的瀏覽器的話,可以改成下面的程式碼

    import asyncio
    import os
    from dotenv import load_dotenv
    from stagehand import StagehandConfig, Stagehand
    
    load_dotenv()
    
    async def main():
        # 检查API密钥是否设置
        api_key = os.getenv("OPENAI_API_KEY")
    
        config = StagehandConfig(
            env="LOCAL",  # 本地运行
            # AI模型配置 - 使用环境变量
            model_name="gpt-4o-mini",  # 使用更便宜的模型
            model_api_key=api_key,  # 从环境变量读取
    
            # 本地运行配置
            headless=False,  # 显示浏览器窗口
            verbose=3,  # 详细日志
            debug_dom=True,  # DOM调试
        )
    
        # 使用配置创建Stagehand实例
        stagehand = Stagehand(config)
    
        # 初始化Stagehand(启动浏览器会话)
        await stagehand.init()
    
        # 获取页面对象,用于后续的页面操作
        page = stagehand.page
    
        await page.goto("https://rain.tips/")
    
        # # 使用observe()取得文章的連結
        blog_links = await page.observe("取得文章中的所有連結)
        print(f"✅ Page link: {blog_links}")
    
        await page.act(blog_links[0]) 
        data_post_1 = await page.extract("取得文章的標題和內文")
        print(f"✅ 文章資訊如下: {data_post_1}")
    
    if __name__ == "__main__":
        asyncio.run(main())
    
    

    總結:為什麼 Stagehand 是下一代自動化框架?

    • 語言直覺更自然,人類可理解
    • 對 UI 變化具彈性、不易失效
    • 結合 LLM,自動拆解任務,效率提升數倍
    • 支援本地與雲端,開發與生產環境都得心應手

    Stagehand 正重新定義瀏覽器自動化,不再只是死板指令,而是一場「程式控+AI 智能」的完美結合,無論對開發者或 AI 自動化愛好者,都是一大利器。快一起駕馭它,打造更強、更智慧的自動化流程!

    參考資料

    BrowserBase

    GitHub Stagehand

    Demo

    開發說明文件

    https://www.aivi.fyi/aiagents/introduce-stagehand

    免費文字轉語音工具推薦:Speech Synthesis 支援 40 種語言與多樣語音選擇

    免費文字轉語音工具推薦:Speech Synthesis 支援 40 種語言與多樣語音選擇

    Speech Synthesis 是一款免費的線上文字轉語音工具,支援超過 40 種語言和數百種語音選擇,並可自訂語調(SSML)、節奏與語氣,讓語音更貼近您的需求。

    🔑 主要特色

    • 多語言支援:涵蓋繁體中文、粵語、英語、日語等多種語言,滿足全球用戶的需求。
    • 多樣化語音選擇:提供數百種語音,包括不同性別、年齡和口音的選項。
    • 自訂語音參數:可調整語速(如 x-slow、slow、medium、fast、x-fast)、語調和音量,打造個性化的語音輸出。
    • 支援 SSML:支援語音合成標記語言(SSML),讓進階用戶能夠更精細地控制語音輸出。
    • 多種音訊格式:可選擇 MP3、WAV 等格式,並提供不同的音質設定,如 16kHz-128k、24kHz-160k、48kHz-192k。

    🧪 使用方式

    1. 前往 Speech Synthesis 官方網站
    2. 在「TEXT」欄位輸入您要轉換的文字,或上傳文件。
    3. 選擇語言和語音,並調整語速、語調和音量等參數。
    4. 點擊「合成語音」按鈕,系統將生成語音檔案。
    5. 試聽並下載生成的語音檔案。

    🔍 與其他熱門 TTS 工具的比較

    工具名稱語言支援數語音選擇數自訂參數支援 SSML價格
    Speech Synthesis40+數百種免費
    TTSMaker100+600+免費
    Google Text-to-Speech30+220+免費(有使用限制)
    MyEdit26+多種免費

    參考資料

    OpenAI 的 AI 3D 解決方案:Point-E 與 Shap-E 的比較與應用

    OpenAI 的 AI 3D 解決方案:Point-E 與 Shap-E 的比較與應用

    OpenAI 推出了兩款開源的 3D 建模工具:Point-EShap-E,分別專注於從文字或圖片生成 3D 模型,接下來介紹這兩個模型的核心特性、技術架構、使用方法,並比較它們的優缺點,協助您選擇最適合的工具。​

    🔍 Point-E:快速生成 3D 點雲的 AI 工具

    📌 核心特點

    • 輸入類型:​支援文字描述或 2D 圖片。
    • 輸出格式:​生成彩色點雲(point cloud),可轉換為網格(mesh)。
    • 處理速度:​在單張 GPU 上約需 1–2 分鐘。
    • 技術架構:​採用兩階段擴散模型,先生成合成視圖,再生成點雲。
    • 應用場景:​快速原型設計、教育用途、遊戲開發等。

    🧪 使用方法

    1. 安裝

    生成點雲

    🧠 Shap-E:生成高品質 3D 隱式模型的 AI 工具

    📌 核心特點

    • 輸入類型:​支援文字描述或 2D 圖片。
    • 輸出格式:​生成隱式函數,可渲染為帶紋理的網格或神經輻射場(NeRF)。
    • 處理速度:​在單張 GPU 上可於數秒內生成。
    • 技術架構:​先訓練編碼器將 3D 資產映射為隱式函數參數,再訓練條件擴散模型生成 3D 模型。
    • 應用場景:​高品質 3D 資產創建、AR/VR 應用、3D 列印等。​

    🧪 使用方法

    1. 安裝

    生成 3D 模型

    • 使用 sample_text_to_3d.ipynbsample_image_to_3d.ipynb 範例筆記本。
    • 可將生成的模型導出為常見的 3D 格式,供進一步編輯或列印。

    ⚖️ Point-E 與 Shap-E 的比較

    特性Point-EShap-E
    輸入類型文字、圖片文字、圖片
    輸出格式彩色點雲,可轉為網格隱式函數,可渲染為網格或 NeRF
    處理速度約 1–2 分鐘數秒內
    模型架構兩階段擴散模型編碼器 + 條件擴散模型
    輸出品質中等,適合快速原型設計高品質,適合精細 3D 資產創建
    應用場景快速原型、教育、遊戲開發高品質 3D 資產、AR/VR、3D 列印等

    🧩 適用場景建議

    • Point-E:​適合需要快速生成 3D 模型的場景,如教育、初步設計、遊戲開發等。
    • Shap-E:​適合對 3D 模型品質要求較高的場景,如 AR/VR 應用、3D 列印、動畫製作等。​

    🔗 資源連結

    參考資訊

    GibberLink 教學:實現 AI 助理之間的加密音頻對話

    GibberLink 教學:實現 AI 助理之間的加密音頻對話

    GibberLink 是一項創新的開源專案,讓 AI 助理之間以更高效的方式進行音頻對話。​這項技術於 2025 年的 ElevenLabs 倫敦黑客馬拉松中脫穎而出,獲得了全球首獎。

    🔍 GibberLink 是什麼?

    GibberLink 是由 Boris Starkov 和 Anton Pidkuiko 兩位開發者在黑客馬拉松期間開發的開源專案。​其核心理念是讓 AI 助理在識別到對方也是 AI 時,切換到一種更高效的通訊協議,使用聲波傳輸結構化數據,而非傳統的人類語言。​這種方式不僅提高了通訊效率,還減少了計算資源的消耗。

    ⚙️ GibberLink 的運作原理

    1. 初始對話:​兩個 AI 助理以人類語言開始對話。
    2. 身份識別:​當其中一方識別到對方也是 AI 助理時,提出切換到 GibberLink 模式。
    3. 協議切換:​雙方同意後,切換到使用聲波傳輸數據的通訊協議。
    4. 數據傳輸:​利用開源的 ggwave 庫,將結構化數據編碼為聲波信號,進行高效的數據交換。

    這種方式類似於早期撥號調製解調器的數據傳輸,但經過現代化的優化,更適合當前的 AI 通訊需求。​

    🔐 AI 加密對話的實現

    GibberLink 不僅提高了通訊效率,還注重數據的安全性。​在進行聲波數據交換時,AI 助理會使用非對稱加密技術(如 P-256 密鑰對)進行加密,確保通訊內容的保密性和完整性。​這種端對端的加密方式,即使通訊被攔截,也無法解密其中的內容。

    🌐 如何體驗 GibberLink?

    • 線上體驗:​訪問 gbrl.ai,在兩個設備上打開該網站,即可觀察 AI 助理之間的音頻對話。
    • 開源代碼:​GibberLink 的完整代碼已在 GitHub 上開源,地址為 github.com/PennyroyalTea/gibberlink。​

    🏆 為何值得關注?

    • 高效通訊:​GibberLink 模式下的 AI 對話比傳統語音通訊快約 80%,大幅提升了通訊效率。
    • 資源節省:​減少了語音生成和語音識別的計算資源消耗,降低了運營成本。
    • 安全保障:​採用先進的加密技術,確保通訊內容的安全性。
    • 開源共享:​開源的特性使得開發者可以自由使用、修改和擴展該技術。

    🔧 GibberLink 安裝與本地部署教學

    GibberLink 是一個開源專案,您可以在本地環境中部署並體驗 AI 之間的聲音通訊。​

    1. 安裝 Node.js(建議版本:v20)

    GibberLink 需要 Node.js 環境,建議使用 v18.18.0 或更高版本。以下是使用 NVM 安裝 Node.js 的步驟:

    curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
    source ~/.bashrc
    nvm install 20
    nvm use 20
    nvm alias default 20  # 可選,將 Node.js 20 設為預設版本
    

    2.下載並設定 GibberLink 專案

    git clone https://github.com/PennyroyalTea/gibberlink.git
    cd gibberlink
    mv example.env .env
    

    並且編輯 .env 檔案,填入您的 ElevenLabs 和 LLM 提供者的 API 金鑰。​

    3.安裝相依套件並啟動專案

    npm install
    npm run dev

    啟動後,您可以透過瀏覽器訪問 http://localhost:3003 來使用 GibberLink。​

    參考資料