《虹彩六號:圍攻行動》AI 自動瞄準機器人 快速閱讀精華
- 這是一個基於 **YOLOv8** 物件偵測模型的 AI 自動瞄準系統,專為《虹彩六號:圍攻行動》設計
- 使用 **63,000 張圖片資料集** 訓練,並以 **TensorRT 10.16.1.11** 加速推論效能
- 開發者已釋出 **完整 C++ 原始碼與可執行檔**,供社羣測試與改進
- 已知問題:偵測框在畫面上會 **抖動與漂移**,目前尚未修復
- 技術棧:C++、CUDA 12.4、cuDNN 9、TensorRT、YOLOv8
重要提醒與風險聲明
⚠️ 使用本軟體可能導致帳號永久停權
這個 AI 自動瞄準機器人屬於**第三方外掛程式**,使用於《虹彩六號:圍攻行動》線上多人模式將違反 Ubisoft 服務條款。底下我們整理了主要風險:
- 帳號安全風險:Ubisoft 與 BattlEye 反作弊系統可能偵測到此類程式,導致永久封鎖
- 法律風險:部分國家/地區將遊戲外掛視為違法行為
- 技術風險:執行來源不明的 .exe 檔案可能包含惡意程式碼
建議用途:本專案適合做為**電腦視覺與機器學習的學術研究**,建議在離線模式或私人伺服器環境測試。
專案技術概覽
這個專案是由社羣開發者使用 Cline VS Code 擴充套件 協助開發的 AI 自動瞄準系統。核心概念很單純:讓電腦「看懂」遊戲畫面中的敵人位置,並自動將準心移動到目標身上。
開發者選擇了 YOLOv8 這個在物件偵測領域相當成熟的模型,並針對《虹彩六號》的視覺特性做了大量訓練。最特別的是,整個推論過程都經過 TensorRT 加速,讓延遲降到最低——這對 FPS 遊戲來說超級重要,因為哪怕多 50 毫秒的延遲,都可能讓你從爆頭變成被爆頭。
技術架構整理
底下我們整理了這個專案使用的完整技術棧:
| 技術項目 | 版本/規格 | 用途說明 | | YOLOv8 | Ultralytics 最新版 | 物件偵測模型,辨識遊戲中的敵人角色 | | TensorRT | 10.16.1.11 | NVIDIA 推論加速引擎,將模型最佳化為 GPU 高效執行格式 | | CUDA | 12.4 | NVIDIA 平行運算平臺,提供 GPU 加速基礎 | | cuDNN | 9 | CUDA 深度神經網路函式庫,加速神經網路運算 | | C++ | C++17 或更新 | 主程式語言,負責畫面擷取、推論呼叫、滑鼠控制 | | 訓練資料集 | 63,000 張圖片 | 針對《虹彩六號》角色、姿勢、地圖場景的標註資料 |
【小知識】TensorRT 的 `.engine` 檔案是什麼?
你可以把 `.engine` 檔案想像成「為你的顯卡量身定做的加速版模型」。YOLOv8 原本的模型格式比較通用,但 TensorRT 會分析你的 GPU 架構,重新編排運算順序、融合層級、調整記憶體配置,最終產生一個在你的顯卡上跑超級快的版本。這也是為什麼同樣的模型,用 TensorRT 推論可以比原始 PyTorch 版本快 3-5 倍。
功能特性與限制
目前實作的功能:
- 即時畫面擷取與物件偵測
- 敵人角色辨識(透過 YOLOv8 模型)
- GPU 加速推論(TensorRT + CUDA)
- 視覺化偵測框覆蓋(Overlay)
- 可調整的偵測參數
目前的技術限制:
- 偵測框會抖動漂移(見下方詳細說明)
- 需要 NVIDIA 顯卡才能使用 TensorRT 加速
- 模型訓練資料可能無法涵蓋所有遊戲更新後的角色外觀
- 無法處理煙霧、閃光等視覺遮蔽效果
檔案下載點
開發者已釋出完整專案檔案,包含原始碼與預編譯的可執行檔:
所有站內附件皆會附上安全掃描報告 請會員查看純淨度百分比後判斷使用
相關檔案須知: 取得檔案前,請先詳細閱讀文章內容 避免不必要錯誤與誤會發生。 也可多參考文章討論樓層內容 了解附件檔案相關討論資訊。
檔案內容預覽:
- 完整的 C++ 專案原始碼(Visual Studio 方案檔)
- 預編譯的 `.exe` 執行檔(需搭配 CUDA/cuDNN 環境)
- TensorRT 最佳化模型檔案(`best.engine`)
- 相依函式庫與設定檔案
已知問題:畫面抖動
這是開發者特別點出的核心問題,也是社羣改進的主要方向。
問題描述:
當 AI 偵測到目標時,畫面上的綠色(或自訂顏色)偵測框會**持續抖動、左右漂移**,而不是穩定框住敵人。這個現象在以下情況特別明顯:
- 目標正在移動時
- 畫面幀率不穩定時
- 多個敵人同時出現在視野內
可能的原因分析:
- 推論延遲波動:TensorRT 雖然快,但 GPU 負載變化可能導致每幀推論時間不一致,造成框的位置更新不連續
- 座標平滑化缺失:沒有加入卡爾曼濾波器或指數平滑等技術來穩定連續幀之間的偵測結果
- NMS 閾值過敏:非極大值抑制(Non-Maximum Suppression)的置信度閾值可能設得太低,導致同一目標產生多個重疊框,視覺上看起來像在抖動
- 畫面擷取同步問題:DirectX 或 Windows Graphics Capture API 的緩衝區交換時機,可能與推論執行不同步
建議的修復方向:
- 加入 **卡爾曼濾波器(Kalman Filter)** 追蹤偵測框的移動軌跡,預測下一幀位置
- 實作 **匈牙利演算法(Hungarian Algoritdm)** 進行多目標追蹤(MOT),確保同一敵人在連續幀被賦予相同 ID
- 調整 **IOU(Intersection over Union)閾值**,只在重疊度夠高時才視為同一目標
- 加入 **時間穩定化(Temporal Smootding)**:對連續 N 幀的偵測結果做加權平均
核心程式碼結構
底下我們整理了專案的主要程式碼架構,方便你快速理解運作流程:
// 主要執行流程概略結構(虛擬碼說明)
// 1. 初始化 TensorRT 引擎
TensorRTEngine engine("best.engine");
engine.build(); // 建立 CUDA 執行環境
// 2. 初始化畫面擷取(DXGI/Desktop Duplication)
ScreenCapture capture;
capture.init();
// 3. 主迴圈
while (running) {
// 擷取當前遊戲畫面
Mat frame = capture.getFrame();
// YOLOv8 前處理(縮放、正規化、CHW 格式)
float* input = preprocess(frame);
// TensorRT 推論
float* output = engine.infer(input);
// 後處理:整理偵測結果(邊界框、置信度、類別)
vector<Detection> detections = postprocess(output);
// 繪製覆蓋層(這裡就是抖動發生的地方)
for (auto& det : detections) {
drawBoundingBox(frame, det.box, det.confidence);
}
// 可選:自動移動滑鼠到偵測中心
// moveMouse(det.center_x, det.center_y);
// 顯示結果
imshow("AI Aimbot", frame);
}
關鍵檔案說明:
- `main.cpp` - 程式入口點,處理命令列參數與主迴圈
- `tensorrt_engine.cpp/.h` - TensorRT 引擎包裝類別,負責模型載入與推論
- `yolo_detector.cpp/.h` - YOLOv8 特定的前/後處理邏輯
- `screen_capture.cpp/.h` - Windows 畫面擷取實作
- `overlay_renderer.cpp/.h` - DirectX 或 GDI+ 覆蓋層繪製
- `mouse_controller.cpp/.h` - 滑鼠移動控制(自動瞄準核心)
常見問題Q&A
Q:這個程式會被 Ubisoft 或 BattlEye 偵測到嗎?
很有可能。雖然這是純粹的「視覺型」外掛(不注入遊記憶體),但現代反作弊系統會分析螢幕擷取行為、滑鼠移動模式異常、以及程式簽名。使用於線上模式風險極高。
Q:沒有 NVIDIA 顯卡可以用嗎?
不行。TensorRT 是 NVIDIA 專有技術,必須搭配 CUDA 核心運作。如果你只有 AMD 或 Intel 內顯,需要大幅修改程式碼,改用 ONNX Runtime 或 OpenVINO 等跨平臺推論引擎。
Q:如何改善偵測框抖動問題?
建議從這三個方向著手:加入卡爾曼濾波器做目標追蹤、調高 NMS 的 IOU 閾值減少重複偵測、以及實作時間穩定化讓框的位置平滑過渡。這些都是電腦視覺領域的標準技術,網路上有很多參考實作。
Q:可以改成支援其他遊戲嗎?
可以,但需要重新訓練 YOLOv8 模型。你需要收集目標遊戲的截圖、用 LabelImg 或 Roboflow 標註敵人位置、然後執行數百個訓練週期。這個過程需要大量時間與運算資源。
Q:為什麼選擇 C++ 而不是 Pytdon?
C++ 可以達到更低的延遲與更高的畫面處理速度。Pytdon 雖然開發快,但 GIL(全域直譯器鎖)與動態型別會在毫秒級的競爭中成為瓶頸。對於 FPS 自動瞄準來說,每一毫秒都很重要。
Q:這個專案的授權條款是什麼?
開發者沒有明確標示授權條款。建議將其視為「研究用途」,若要商業使用或大量修改後發布,請先聯繫原始作者取得授權。
|