境搭建))
人工智能強化學(xué)習(xí)計算機視覺游戲開發(fā)測試【免費下載鏈接】GameAISDK基于圖像的游戲AI自動化框架項目地址https://gitcode.com/gh_mirrors/ga/GameAISDK點擊查看免費下載本篇技術(shù)指南聚焦于如何在 macOS 母機上通過 Docker 容器方式運行基于圖像的游戲 AI 自動化框架 GameAISDK 及其配套可視化配置工具 SDKTool。文章完整覆蓋從基礎(chǔ)環(huán)境安裝Docker、socat、XQuartz、adbkit、鏡像導(dǎo)入與容器掛載、容器內(nèi)動態(tài)庫配置、圖形顯示鏈路打通、Android 手機 TCP 橋接到最終啟動 SDKTool 的每一個關(guān)鍵步驟。讀完本文你將能夠在 Mac 上獨立搭建一套容器跑 AI、母機出界面、手機供圖像的完整可運行環(huán)境并掌握 Docker 部署 AISDK 的底層原理。一、部署方案與整體架構(gòu)GameAISDK 本身是運行在 Linux 環(huán)境下的圖像識別與 AI 推理框架。為了讓 Windows / macOS 用戶也能直接使用官方提供了基于 Docker 的部署方案AISDK 與 SDKTool 運行在 Linux 容器中而消費 AISDK 服務(wù)的 AIClient 依舊運行在母機上見 doc/dockerdeployment/UseGuide.md。對于 SDKTool 這類帶界面的工具則通過顯示重定向的方式把容器內(nèi)界面顯示到母機桌面上。因此在 macOS 上需要額外安裝四類工具工具作用安裝方式docker承載 AISDK / SDKTool 的 Linux 運行環(huán)境brew install dockersocat打通容器與 macOS 主機之間的通訊X11 轉(zhuǎn)發(fā)brew install socatxquartz將容器中顯示的內(nèi)容映射到母機桌面的 X11 服務(wù)器brew install xquartzadbkit將 USB 連接的 Android 手機橋接為容器可訪問的 TCP 端口brew install nodenpm i -g adbkit說明Windows 側(cè)對應(yīng)方案是使用 VcXsrv 替代 XQuartz 完成顯示映射參考 doc/dockerdeployment/BaseInstall.md本文只討論 macOS 環(huán)境。二、基礎(chǔ)環(huán)境安裝以下命令均在 macOS 終端中執(zhí)行前提是本機已安裝 Homebrew。1. 安裝 Dockerbrew install docker安裝完成后打開 Docker 應(yīng)用并在終端執(zhí)行docker version驗證安裝成功能正常輸出版本信息即說明 Docker 服務(wù)可用。2. 安裝 socatbrew install socat # 可能需要 cask 命令安裝: brew cask install socatsocat 是一個強大的雙向數(shù)據(jù)轉(zhuǎn)發(fā)工具。在本方案中它負責(zé)把 macOS 本機的 X11 顯示服務(wù)unix socket暴露為 TCP 端口從而讓容器內(nèi)的圖形程序SDKTool 的 UI能夠把畫面畫到母機屏幕上。3. 安裝 XQuartzbrew install xquartzXQuartz 是 macOS 下的 X11 顯示服務(wù)器承擔(dān)將容器中顯示的內(nèi)容映射到母機的角色doc/dockerdeployment/BaseInstall.md 中明確說明容器內(nèi)自身無法顯示、會報錯必須依賴此類工具。4. 安裝 adbkitbrew install node npm i -g adbkitadbkit 是 Node.js 生態(tài)下的 ADB 客戶端工具包用于把 USB 直連母機的 Android 手機橋接成網(wǎng)絡(luò)端口供容器內(nèi)訪問。三、啟動 Docker 并導(dǎo)入 AISDK 鏡像1. 啟動 Docker啟動 Docker DesktopMac 版確認其處于運行狀態(tài)Docker 圖標常駐菜單欄。2. 導(dǎo)入鏡像并運行容器官方鏡像默認以文件形式分發(fā)導(dǎo)入命令為docker load -i xx其中xx為鏡像文件路徑原文檔寫作docker load -I xx實際 Docker 參數(shù)為小寫-i即--input。導(dǎo)入完成后以掛載方式啟動容器將母機上的項目目錄映射進容器docker run -v /Users/et/Downloads/game_ai_sdk:/data1/game_ai_sdk -it xx /bin/bash參數(shù)說明-v /Users/et/Downloads/game_ai_sdk:/data1/game_ai_sdk把母機上的 GameAISDK 工程目錄掛載到容器內(nèi)固定路徑/data1/game_ai_sdk。容器內(nèi)的構(gòu)建產(chǎn)物、配置修改都會實時同步回母機這是后續(xù)在容器中編譯、運行的基礎(chǔ)-it以交互模式進入容器xx鏡像名稱如836304831/aisdk:tagname或本地導(dǎo)入的鏡像 tag/bin/bash進入容器后啟動 bash shell。該掛載路徑約定與 doc/dockerdeployment/UseGuide.md 中docker run -v /Users/{username}/workspace_code/game_ai_sdk:/data1/game_ai_sdk -it -p 8898:8898 -p 8899:8899 836304831/aisdk:tagname /bin/bash的用法一致若需讓 AISDK 服務(wù)對外提供端口可額外追加-p 8898:8898 -p 8899:8899暴露服務(wù)端口。四、容器內(nèi)環(huán)境準備拷貝動態(tài)庫進入容器后需要先把 AISDK 依賴的共享庫安裝到系統(tǒng)庫目錄cp *.so* /usr/local/lib該命令把工程中的*.so*動態(tài)鏈接庫復(fù)制到/usr/local/lib隨后刷新動態(tài)鏈接器緩存ldconfigldconfig會重新掃描并更新動態(tài)鏈接庫緩存確保后續(xù)啟動程序時能正確找到剛拷貝的 so 庫。五、打通圖形顯示鏈路socat XQuartzSDKTool 是圖形界面程序運行在容器內(nèi)必須把界面畫到 macOS 母機屏幕上這依賴 X11 協(xié)議鏈路的三個環(huán)節(jié)。1. 啟動 socat容器內(nèi)或母機終端在終端執(zhí)行socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\$DISPLAY\含義拆解TCP-LISTEN:6000,reuseaddr,fork在 TCP 6000 端口監(jiān)聽reuseaddr允許端口快速復(fù)用fork為每個連接派生子進程處理UNIX-CLIENT:$DISPLAY把收到的 TCP 流量轉(zhuǎn)發(fā)到本機 X11 的 unix socket$DISPLAY是 X 顯示服務(wù)地址環(huán)境變量。這樣就建立起容器內(nèi) X11 程序 → TCP 6000 → 母機 X11 socket的轉(zhuǎn)發(fā)通道。啟動成功截圖如下2. 啟動 XQuartz在母機終端執(zhí)行open -a xquartz打開 XQuartz 應(yīng)用后需要確認 X11 服務(wù)器處于監(jiān)聽狀態(tài)。3. XQuartz 相關(guān)設(shè)置為保證容器內(nèi)界面正常顯示、鼠標鍵盤事件正?;貍餍枰?XQuartz 的偏好設(shè)置中確認以下選項對應(yīng)設(shè)置界面截圖允許網(wǎng)絡(luò)連接允許來自 TCP 的 X 連接啟用粘貼板同步Sync pasteboard與鍵盤輸入同步Sync keyboard便于在容器內(nèi)復(fù)制粘貼文本輸入設(shè)置中勾選遵循 macOS 鍵盤布局Follow system keyboard layout避免中文輸入法或特殊按鍵在容器內(nèi)失效。六、連接 Android 手機USB 轉(zhuǎn) TCP 橋接AISDK 的圖像識別數(shù)據(jù)來自 Android 手機屏幕因此需要讓運行在容器內(nèi)的 AI 服務(wù)能訪問到手機。1. 母機上查看手機序列號adb devices確保手機開啟 USB 調(diào)試并已連接母機輸出中會出現(xiàn)類似xxxxxxxx device的序列號。2. 將 USB 設(shè)備轉(zhuǎn)發(fā)為 TCP 端口adbkit usb-device-to-tcp -p 7788 序列號該命令把指定序列號的 USB 設(shè)備橋接到母機的7788TCP 端口。轉(zhuǎn)發(fā)成功后母機上的 7788 端口即代表這臺手機。該端口號與倉庫內(nèi)置一鍵腳本 tools/docker/start_mac_docker.sh 及 Windows 側(cè)腳本 tools/docker/start_win_docker.bat 中使用的-p 7788完全一致。3. 容器內(nèi)連接手機回到容器終端執(zhí)行adb connect host.docker.internal:7788host.docker.internal是 Docker 提供的特殊域名指向宿主機macOS。此命令讓容器內(nèi)的 adb 通過母機的 7788 端口與手機建立連接返回connected to host.docker.internal:7788即表示鏈路打通。至此完整數(shù)據(jù)鏈路為容器內(nèi) AISDK/adb → host.docker.internal:7788 → 母機 adbkit 橋接 → USB → Android 手機七、啟動 SDKTool 工具容器內(nèi)完成上述所有準備后進入 SDKTool 目錄并啟動python main.pySDKTool 的入口即倉庫中的 tools/SDKTool/main.py。啟動后由于 X11 鏈路已打通界面會直接顯示在 macOS 母機桌面上之后就可以進行游戲識別的相關(guān)配置工作。補充若 SDKTool 集成了 AISDK 功能如 doc/dockerdeployment/UseGuide.md 所述容器內(nèi)還需先完成編譯cd /data1/game_ai_sdk/build ./build_modules.sh {GPU|CPU} ./build.sh {GPU|CPU}參數(shù) GPU 或 CPU 依自身環(huán)境決定。八、一鍵啟動腳本參考倉庫在 tools/docker/start_mac_docker.sh 中提供了 macOS 側(cè)的自動化腳本將上述手工步驟合并為一次執(zhí)行socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\$DISPLAY\ open -a xquartz adb devices |awk NR2 {print $1} |xargs adbkit usb-device-to-tcp -p 7788 path$(dirname $(dirname pwd)) echo project path: $path docker run -v $path:/data1/game_ai_sdk -it base_aisdktoolclt_ubt16:debug-2.0.2 /bin/bash /data1/game_ai_sdk/bin/docker_start_service.sh腳本要點并行后臺啟動 socat 與 XQuartz通過adb devices自動提取第一個設(shè)備序列號交給adbkit usb-device-to-tcp -p 7788完成橋接以當(dāng)前工程目錄的上一級為掛載源運行容器并執(zhí)行容器內(nèi)的服務(wù)啟動腳本對應(yīng) bin/start.sh 中的start_ui_ai.sh/start_ai.sh/start_ui.sh等入口。Windows 側(cè)可參照 tools/docker/start_win_docker.bat流程一致VcXsrv adbkit 7788 容器掛載。九、常見問題與注意事項容器內(nèi)無法顯示界面/報錯多為 X11 鏈路未打通。請依次確認 socat 正在監(jiān)聽 6000 端口、XQuartz 已啟動并允許網(wǎng)絡(luò)連接以及$DISPLAY環(huán)境變量指向正確adb connect 失敗確認母機上adbkit usb-device-to-tcp -p 7788仍在運行且手機 USB 調(diào)試授權(quán)已通過adb devices顯示為device而非unauthorized動態(tài)庫加載失敗回到容器重新執(zhí)行cp *.so* /usr/local/lib與ldconfig掛載目錄注意-v的左側(cè)路徑必須真實存在于母機且為 Docker Desktop 允許共享的目錄macOS 默認無需額外配置Windows 需在 Docker Settings → Resources → FILE SHARING 中添加共享目錄見 doc/dockerdeployment/BaseInstall.md鏡像來源官方亦提供在線鏡像docker pull 836304831/aisdk:tagname與docker pull 836304831/sdktool:tagnametag 以實際發(fā)布為準使用方式見 doc/dockerdeployment/UseGuide.md。十、總結(jié)本文完整還原了 doc/environment/MacDockerInstall.md 的 macOS Docker 部署流程并結(jié)合 doc/dockerdeployment/BaseInstall.md、doc/dockerdeployment/UseGuide.md 與倉庫腳本 tools/docker/start_mac_docker.sh 對其原理做了源碼級說明。核心要點可歸納為四件套依賴Docker 承載運行、socat 轉(zhuǎn)發(fā) X11、XQuartz 顯示界面、adbkit 橋接手機兩條鏈路圖形鏈路容器 → TCP 6000 → XQuartz → 母機桌面與設(shè)備鏈路容器 → host.docker.internal:7788 → adbkit → USB → 手機一條命令啟動掛載工程后python main.py即可在母機桌面上使用 SDKTool 完成游戲 AI 配置。贊分享人工智能強化學(xué)習(xí)計算機視覺游戲開發(fā)測試【免費下載鏈接】GameAISDK基于圖像的游戲AI自動化框架項目地址https://gitcode.com/gh_mirrors/ga/GameAISDK點擊查看免費下載相關(guān)推薦GameAISDK 容器化部署實戰(zhàn)使用 Docker 運行 AISDK 與 SDKTool 完整指南GameAISDK 容器化部署實戰(zhàn)使用 Docker 運行 AISDK 與 SDKTool 完整指南 本指南基于 GameAISDK 官方文檔 doc/doc人工智能強化學(xué)習(xí)計算機視覺游戲開發(fā)測試GameAISDK SDKTool 環(huán)境部署指南Windows 與 Ubuntu 下 Python 環(huán)境搭建與程序啟動GameAISDK SDKTool 環(huán)境部署指南Windows 與 Ubuntu 下 Python 環(huán)境搭建與程序啟動 GameAISDK 是一套基于圖像的游人工智能強化學(xué)習(xí)計算機視覺游戲開發(fā)測試GameAISDK 基于 Docker 的基礎(chǔ)環(huán)境部署指南AISDK 與 SDKTool 依賴安裝全流程GameAISDK 基于 Docker 的基礎(chǔ)環(huán)境部署指南AISDK 與 SDKTool 依賴安裝全流程 本文是 GameAISDK 項目 Docker 部署人工智能強化學(xué)習(xí)計算機視覺游戲開發(fā)測試上一篇Apereo CAS 屬性釋放策略Attribute Release Policy詳解Return Allowed 白名單精準放行下一篇終極指南Awesome ChatGPT核心組件詳解與AI應(yīng)用構(gòu)建創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考