你有沒有遇過這種情況?翻遍硬碟找一張特定照片,卻怎麼也找不到;或者從上千張產品圖中,要手動圈出某個零件,眼睛都快瞎了。以前這種苦差事只能認命,但現在,NVIDIA 最新開源的 LocateAnything-3B 模型,直接讓這一切變成「一句話的事」。
這個模型在 HuggingFace 上線一週就衝破 1271 個讚、9 萬次下載,社群超瘋。它厲害在哪?你只要用自然語言描述「我要找什麼」,它就能在圖片、影片、甚至 3D 場景中精準定位,而且完全免費、可以本地跑。今天這篇教學,就是要帶你從零開始,五分鐘上手這個超強工具。
什麼是 LocateAnything-3B?為什麼它這麼強?
簡單說,LocateAnything-3B 是一個「萬能定位器」。它不像傳統物件偵測模型只能認出幾十或幾百種預設類別(例如「人、車、貓、狗」),而是你講什麼,它就找什麼。你說「紅色馬克杯」,它就框出紅色馬克杯;你說「穿藍色衣服的人」,它就找出所有穿藍色衣服的人。甚至更抽象的指令,例如「看起來很開心的狗」,它也能做到。
這背後的技術來自 NVIDIA 的「定位任何東西」研究,模型參數高達 30 億(3B),但透過優化,一張 RTX 3060 顯示卡就能順暢執行。對比傳統方法需要訓練專屬模型,這個「開箱即用」的特性,對設計師、攝影師、研究人員、甚至一般使用者來說,都是革命性的。
第一步:五分鐘本地安裝與設定
別擔心,你不需要是程式高手。只要你的電腦有 NVIDIA 顯示卡(建議 8GB VRAM 以上),跟著以下步驟走,五分鐘就能跑起來。
步驟 1:安裝 Python 與必要套件 如果你還沒有 Python,先去 python.org 下載 3.10 或 3.11 版本。安裝時記得勾選「Add Python to PATH」。
打開命令提示字元(cmd)或終端機,輸入:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install transformers accelerate pillow opencv-python
步驟 2:下載模型與程式碼
我們用 HuggingFace 的 Transformers 庫來載入模型。建立一個新資料夾,在裡面新增一個 Python 檔案,例如 locate.py,貼上以下程式碼:
from transformers import AutoModelForZeroShotObjectDetection, AutoProcessor
from PIL import Image
import requests
# 載入模型與處理器
model_name = "nvidia/LocateAnything-3B"
model = AutoModelForZeroShotObjectDetection.from_pretrained(model_name)
processor = AutoProcessor.from_pretrained(model_name)
# 載入圖片(這裡用網路圖片示範)
url = "https://example.com/your-image.jpg" # 換成你的圖片網址或本地路徑
image = Image.open(requests.get(url, stream=True).raw)
# 輸入你要找的物件描述
text = "a red coffee mug"
# 進行推論
inputs = processor(images=image, text=text, return_tensors="pt")
outputs = model(**inputs)
# 解析結果
results = processor.post_process_object_detection(outputs, threshold=0.3, target_sizes=[image.size])
for result in results:
for score, label, box in zip(result["scores"], result["labels"], result["boxes"]):
box = [round(i, 2) for i in box.tolist()]
print(f"找到 {label} 信心 {round(score.item(), 3)} 位置 {box}")
步驟 3:執行看看! 把上面程式碼中的圖片網址換成你自己的圖片,然後在終端機執行:
python locate.py
如果一切順利,你會看到類似這樣的輸出:
找到 1 信心 0.892 位置 [120.5, 340.2, 280.1, 450.8]
這代表模型找到了你要的物件,並回傳了邊界框的座標。你也可以用 OpenCV 或 PIL 把框畫在圖片上,視覺化結果。
第二步:進階技巧——從圖片到影片與 3D 場景
LocateAnything-3B 不只會處理靜態圖片,它還能用在影片和 3D 點雲資料上。這對影片剪輯師或 3D 建模師來說,簡直是神兵利器。
影片定位:自動找出每一幀的目標 假設你有一段監視器影片,想要找出「任何穿紅色外套的人」出現的片段。你可以寫一個簡單的迴圈,對影片的每一幀都執行定位,然後只保留有結果的幀。
import cv2
from PIL import Image
cap = cv2.VideoCapture("input_video.mp4")
fps = int(cap.get(cv2.CAP_PROP_FPS))
frame_count = 0
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
if frame_count % fps == 0: # 每秒處理一幀,節省時間
pil_image = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
inputs = processor(images=pil_image, text="a person wearing red coat", return_tensors="pt")
outputs = model(**inputs)
results = processor.post_process_object_detection(outputs, threshold=0.3, target_sizes=[pil_image.size])
if any(r["scores"].size(0) > 0 for r in results):
print(f"第 {frame_count//fps} 秒找到目標!")
frame_count += 1
cap.release()
這個技巧讓你不用手動快轉影片,AI 直接幫你找到關鍵時刻。
3D 場景定位:點雲中的物體搜尋 如果你有 3D 掃描資料(例如 LiDAR 點雲),LocateAnything-3B 也能處理。你需要將點雲轉換成 2D 投影圖,然後用同樣的方法定位。NVIDIA 官方提供了範例程式碼,可以將 3D 點雲投影到多個視角,再對每個視角進行定位,最後整合結果。這在自動駕駛、工廠自動化等領域非常實用。
第三步:實戰應用——讓 AI 成為你的搜尋引擎
光說不練沒意思,我們來看兩個真實場景,讓你感受這工具到底多好用。
場景一:設計師的素材庫救星 小美是平面設計師,硬碟裡有 5000 張素材圖。客戶突然要「一張有金色時鐘的圖片」。以前她得用關鍵字碰運氣,或一張一張翻。現在她寫了一個小腳本,遍歷整個資料夾,對每張圖執行「golden clock」定位,五分鐘後就找到 12 張符合的圖片,而且每張都精確框出了時鐘的位置。她說:「這以前要花我半天!」
場景二:電商產品 QC 自動化 阿強在電商公司負責產品照片審核,每天要看上千張圖,確認產品是否正確入鏡、有沒有瑕疵。他導入 LocateAnything-3B 後,設定自動檢查腳本:對每張產品圖搜尋「product name」,如果信心分數低於 0.5,就標記為「可能有問題」。結果錯誤率從 5% 降到 0.5%,每天省下 3 小時人工。
常見問題
Q: 我的顯示卡只有 6GB VRAM,跑得動嗎?
A: 可以,但可能需要降低圖片解析度或使用 FP16 精度。在載入模型時加上 torch_dtype=torch.float16,可以減少記憶體用量。如果還是跑不動,可以考慮使用雲端 GPU 服務,例如 Google Colab 的免費 T4 GPU。
Q: 為什麼我找的東西都找不到?信心分數很低。 A: 試試調整 threshold 參數,預設 0.3 可能太嚴格。改為 0.1 或 0.2 看看。另外,描述要盡量具體,例如「白色長毛貓」比「貓」更好。如果還是找不到,可能是圖片中物體太小或太模糊,建議先裁切或放大圖片。
Q: 這個模型可以商用嗎? A: NVIDIA LocateAnything-3B 使用 NVIDIA Open Model License,允許商業使用,但需要遵守其條款(例如不能用於軍事用途)。詳細請看 HuggingFace 模型頁面的授權說明。
Q: 支援繁體中文嗎? A: 模型主要針對英文訓練,但你可以用翻譯工具將中文描述轉成英文後輸入。社群有人測試過,簡單的中文詞彙(如「杯子」)有時也能運作,但效果不穩定。建議還是用英文描述最準確。
Q: 處理影片時速度很慢,怎麼辦? A: 可以降低處理幀率(例如每秒只處理 1 幀),或先將影片轉成較低解析度。另外,使用 batch processing 批次處理多張圖片也能加速。如果真的很需要即時處理,建議使用 NVIDIA TensorRT 優化模型。
延伸閱讀
總結:AI 定位時代來了
LocateAnything-3B 的出現,讓「用一句話找東西」不再是科幻電影。無論你是設計師、影片剪輯師、產品經理,還是只是個想整理照片的一般人,這個工具都能大幅提升你的效率。五分鐘的設定,換來每天省下數小時的搜尋時間,這筆投資絕對划算。
現在就去 HuggingFace 下載模型試試吧!從一張你最頭痛的照片開始,讓 AI 幫你「找」出答案。如果你遇到任何問題,歡迎在下方留言,我們一起討論解決方案。