想像一個系統,它可以即時分析即時視訊來源、解釋場景並智慧地回應有關環境的問題,就像一個有眼睛的虛擬助理一樣。這就是將用於視訊處理的 OpenCV 等尖端技術與 Google 的 Gemini 視覺模型相結合,利用其最新的「gemini-1.5-flash-latest」模型的潛力。
在本文中,我將指導您建立一個即時物件偵測系統,該系統使用即時視訊串流和人工智慧驅動的場景分析來提供富有洞察力、情境感知的回應。我們將在 AWS EC2 上部署該應用程序,為可擴展性和實際使用奠定基礎,同時採用 Github Actions 進行自動化 CI/CD,確保無縫更新管道。
在本教程結束時,您將擁有一個功能齊全的人工智慧驅動系統,可供部署,並有信心針對各種用例對其進行擴展和自訂。
project/ ├── app.py # Flask application code ├── requirements.txt # Python dependencies ├── templates/ │ └── index.html # Frontend UI └── .env # Environment variables (API keys, etc.)
self.stream = cv2.VideoCapture(0) # Open the default webcam
這確保了高效能、線程安全的幀捕獲和處理。
self.model = ChatGoogleGenerativeAI(model="gemini-1.5-flash-latest") response = self.chain.invoke({"prompt": prompt, "image_base64": image_base64})
/video_feed:直播影片。
/process_query:根據使用者輸入和視訊幀處理人工智慧驅動的分析。
前端使用者介面
AWS 帳戶。
註冊網域(例如 example.com)。
Google Cloud 帳號或 Open AI 帳號
在您的儲存庫中配置的 GitHub 操作。
A.克隆儲存庫
$ git clone https://github.com/Abunuman/Real-Time-ODS.git $ cd Real-Time-ODS
B.產生您的 API 金鑰並新增至 .env 檔案
我。從文字編輯器左側的可用選項手動建立 .env 檔案(我使用 VScode)
或
在終端機上運作:
$ touch .env
然後將這些加到 .env
GOOGLE_API_KEY=your_google_api_key OPENAI_API_KEY=your_openai_api_key FLASK_DEBUG=True
ii.登入 Google Cloud 並依照以下步驟產生您的 API 金鑰。
a.導覽至 API 和服務部分
b.按一下“憑證”,然後按照以下其他步驟操作
建立憑證> API Key ,然後產生API Key。請記得記下您的 API 金鑰的名稱。您也可以在此過程中為其命名。
複製產生的 API 金鑰,返回您的 .env 檔案並將 your_google_api_key 替換為您剛剛複製的金鑰。
c.啟用 Gemini API
搜尋 Gemini API 並點選啟用
確認您的 API 金鑰位於「啟用的 Gemini API」下的「指標和憑證」部分。
iii.建立一個 .gitignore 檔案並新增 .env 到該檔案中,這樣就不會推送到 github。
注意:標準做法是確保秘密和環境變數不暴露給公眾。因此,在推送到 Github 時需要 .gitignore 來忽略其中新增的檔案。
B.推送到儲存庫。
我。使用應用程式名稱建立Github儲存庫,然後按照以下命令推送到github
project/ ├── app.py # Flask application code ├── requirements.txt # Python dependencies ├── templates/ │ └── index.html # Frontend UI └── .env # Environment variables (API keys, etc.)
注意:將儲存庫名稱變更為您的儲存庫名稱
配置專案所需的 AWS IAM 使用者金鑰和環境變數。
透過 AWS 部署專案需要將 AWS 金鑰以及本機新增至 .env 的環境變數新增至 Github Actions 環境。這是為了確保能夠存取用於部署的特定 AWS 帳戶,並確保必要的環境變數在部署環境中可用。
我。導航至儲存庫中的「設定」
ii。點選“秘密和變數”>行動
iii。加入您的秘密和變量,如下所示
! [秘密](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7t6vyolkj2jyq85oswh7.png
我。啟動 EC2 執行個體
建立一個新的金鑰對或使用現有的金鑰對。
如果您要建立新的金鑰對,請按一下「建立金鑰對」並為其指定一個您選擇的名稱。
選擇金鑰對類型為 RSA
文件格式為 .pem
金鑰對會自動下載到您的系統。
允許以下入站規則:
我。 HTTP(連接埠 80):用於為您的應用程式提供服務。
二. HTTPS(連接埠 443):用於安全存取。
三. SSH(連接埠 22):用於管理存取。
現在,一旦狀態顯示“正在運行”,您的實例就可以使用了。
ii。設定 SSH 存取的金鑰對(.pem 金鑰)
對於 Mac book 用戶或使用 bash 終端機的 Linux 用戶,請配置用於 SSH 存取的金鑰對:
a.使用 VScode 或 Xcode 開啟下載的 .pem 金鑰
b.在終端機上,從根目錄導航到 .ssh 目錄(~)
project/ ├── app.py # Flask application code ├── requirements.txt # Python dependencies ├── templates/ │ └── index.html # Frontend UI └── .env # Environment variables (API keys, etc.)
c.使用nano或vim文字編輯器在.ssh目錄中建立.pem檔案;我將在本教程中使用 nano。
如果沒有安裝nano,請安裝它。
適用於 MacBook 使用者
self.stream = cv2.VideoCapture(0) # Open the default webcam
對於 Linux 使用者
self.model = ChatGoogleGenerativeAI(model="gemini-1.5-flash-latest") response = self.chain.invoke({"prompt": prompt, "image_base64": image_base64})
安裝完畢後,使用 nano 在 .ssh 目錄中建立 .pem 檔案。
確保要建立的檔案具有您的 .pem 檔案的確切名稱。
$ git clone https://github.com/Abunuman/Real-Time-ODS.git $ cd Real-Time-ODS
然後複製已經開啟的.pem檔案並將要建立的.pem貼上到.ssh目錄中。
按 Ctrl X,然後按 Y,然後按 Enter 儲存。
d.更改 .pem 檔案權限
GOOGLE_API_KEY=your_google_api_key OPENAI_API_KEY=your_openai_api_key FLASK_DEBUG=True
iii。存取執行個體 - SSH 到您的 EC2 執行個體:
點選實例 ID 。實例處於運作狀態後,選擇連線選項
進入連線頁面後,前往 SSH 用戶端
然後複製頁面上的最後一個指令,如下所示:
$ git init $ git add . $ git commit -m "first commit" $ git branch -M main $ git remote add origin https://github.com/Abunuman/repository-name.git git push -u origin main
將其貼到您的終端上並按 Enter 鍵。您應該無縫連接。
Windows 使用者
在 Windows 電腦上開啟 CMD
找到儲存 .pim 檔案的所需目錄
理想情況下,我們可以從這個目錄運行複製的 ssh 命令,並且我們應該能夠連接到 EC2。然而,有時我們在執行 ssh 命令時會遇到安全權限錯誤。
我們必須更改 .pem 檔案的權限。
為此,請按照以下步驟操作。
找到 .pem 資料夾,右鍵點選該檔案並選擇屬性
前往「安全」標籤
前往「進階」標籤
點選停用繼承
此進階選項也顯示其他使用者擁有 .pem 檔案的所有權限。刪除所有其他使用者的權限
新增您嘗試連線到 EC2 的使用者(如果使用者清單中尚未存在)。
啟用該使用者的所有權限。
理想情況下,按照這些步驟,您應該不會遇到錯誤。
從 CMD 提示字元執行 SSH 指令
權限修復後,會提示成功連接EC2
現在您已成功完成這些步驟,您可以在 EC2 執行個體上從 Windows CMD 執行命令。
iv.安裝依賴項 - 更新軟體包清單並安裝必要的軟體包:
透過 SSH 連線到您的 EC2 執行個體後,安裝 EC2 上的相依性。
在連接的終端機上,執行以下命令:
project/ ├── app.py # Flask application code ├── requirements.txt # Python dependencies ├── templates/ │ └── index.html # Frontend UI └── .env # Environment variables (API keys, etc.)
檢查安裝的python3版本,確保是3.12
self.stream = cv2.VideoCapture(0) # Open the default webcam
第 2 步:部署應用程式
設定應用程式
將app.py、index.html和requirements.txt傳送到EC2實例:
self.model = ChatGoogleGenerativeAI(model="gemini-1.5-flash-latest") response = self.chain.invoke({"prompt": prompt, "image_base64": image_base64})
第 3 步:為 CI/CD 設定 GitHub 操作
在儲存庫中建立工作流程文件,新增 .github/workflows/main.yml 檔案:
$ git clone https://github.com/Abunuman/Real-Time-ODS.git $ cd Real-Time-ODS
在本教程中,我們開始了構建和部署實時對象檢測系統的全面旅程,該系統無縫集成用於實時視頻捕獲的 OpenCV 和用於智能場景分析的 Google ChatGoogleGenerativeAI。從在本機設定應用程式到使用自訂網域和 SSL 將其安全地部署在 AWS EC2 上,我們涵蓋了將您的想法轉變為實用且可擴展的解決方案的每個基本步驟。
該專案強調了結合 Flask、OpenCV 和 AI 等尖端技術來解決現實問題的力量,同時確保雲端部署的最佳實踐。透過執行這些步驟,您不僅部署了強大的 AI 驅動的系統,而且還確保了可擴充性、安全性和高效的 CI/CD 管道。
以上是在 AWS EC2 上使用 OpenCV、Flask、Gemini Vision 和 GitHub Actions CI/CD 建置人工智慧驅動的即時物件偵測的詳細內容。更多資訊請關注PHP中文網其他相關文章!