Bayangkan sistem yang boleh menganalisis suapan video langsung dalam masa nyata, mentafsir adegan dan bertindak balas dengan bijak kepada soalan tentang persekitaran—sama seperti pembantu maya yang mempunyai mata. Ini adalah potensi untuk menggabungkan teknologi canggih seperti OpenCV untuk pemprosesan video dan model visi Gemini Google, memanfaatkan model "gemini-1.5-flash-latest" terbaharunya.
Dalam artikel ini, saya akan membimbing anda membina Sistem Pengesanan Objek Masa Nyata yang menggunakan penstriman video langsung dan analisis adegan dikuasakan AI untuk menyampaikan respons yang berwawasan dan menyedari konteks. Kami akan menggunakan aplikasi pada AWS EC2, menetapkan peringkat untuk skalabiliti dan penggunaan dunia sebenar sambil menggunakan Github Actions untuk CI/CD automatik, memastikan saluran kemas kini yang lancar.
Menjelang akhir tutorial ini, anda akan mempunyai sistem berkuasa AI yang berfungsi sepenuhnya sedia untuk digunakan, dengan keyakinan untuk mengembangkan dan menyesuaikannya untuk pelbagai kes penggunaan.
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
Ini memastikan penangkapan dan pemprosesan bingkai selamat benang yang cekap.
self.model = ChatGoogleGenerativeAI(model="gemini-1.5-flash-latest") response = self.chain.invoke({"prompt": prompt, "image_base64": image_base64})
/video_feed: Menstrim video langsung.
/process_query: Mengendalikan analisis dikuasakan AI berdasarkan input pengguna dan bingkai video.
UI Depan
Akaun AWS.
Nama domain berdaftar (cth., example.com).
Akaun Google Cloud atau akaun Open AI
Tindakan GitHub dikonfigurasikan dalam repositori anda.
A. Klon repositori
$ git clone https://github.com/Abunuman/Real-Time-ODS.git $ cd Real-Time-ODS
B. Hasilkan kunci API anda dan tambahkan pada fail .env
i. Cipta fail .env sama ada secara manual daripada pilihan yang tersedia di sebelah kiri editor teks anda (saya menggunakan VScode)
ATAU
Di terminal, jalankan:
$ sentuh .env
Kemudian tambahkan ini dalam .env
GOOGLE_API_KEY=your_google_api_key OPENAI_API_KEY=your_openai_api_key FLASK_DEBUG=True
ii. Log masuk ke Google Cloud dan ikuti langkah ini untuk menjana kunci API anda.
a. Navigasi ke Bahagian API & Perkhidmatan
b. Klik pada Kredensial kemudian ikuti langkah lain di bawah
Buat Bukti Kelayakan > Kunci API , kemudian Kunci API dijana. Ingat untuk ambil perhatian nama kunci API anda. Anda juga boleh memberi nama semasa proses.
Salin Kunci API yang dijana, kembali ke fail .env anda dan gantikan kunci_google_api_anda dengan kunci yang baru anda salin.
c. Dayakan Gemini API
Cari API Gemini dan klik pada DAYAKAN
Sahkan bahawa Kunci API anda berada di bawah bahagian METRICS dan Bukti Kelayakan di bawah API Gemini Didayakan.
iii. Cipta fail .gitignore dan tambahkan .env pada fail supaya ia tidak ditolak ke github.
N.B.: Amalan standard adalah untuk memastikan rahsia dan pembolehubah persekitaran tidak didedahkan kepada umum. Oleh itu, keperluan untuk .gitignore untuk mengabaikan fail yang ditambahkan di dalamnya sambil menolak ke Github.
B. Tekan ke Repositori.
i. Buat repositori Github dengan nama aplikasi dan ikut arahan di bawah untuk menolak ke github
project/ ├── app.py # Flask application code ├── requirements.txt # Python dependencies ├── templates/ │ └── index.html # Frontend UI └── .env # Environment variables (API keys, etc.)
N.B: tukar nama repositori kepada nama repositori anda
Konfigurasikan rahsia pengguna AWS IAM anda dan pembolehubah persekitaran yang diperlukan untuk projek.
Menempatkan projek melalui AWS memerlukan rahsia AWS serta pembolehubah persekitaran yang ditambahkan secara setempat pada .env anda ditambahkan pada persekitaran Github Actions. Ini adalah untuk memastikan akses kepada akaun AWS khusus yang dimaksudkan untuk penggunaan dan juga memastikan pembolehubah persekitaran yang diperlukan tersedia dalam persekitaran penggunaan.
i. Navigasi ke Tetapan dalam repositori anda
ii. Klik pada Rahsia dan Pembolehubah > Tindakan
iii. Tambah Rahsia dan Pembolehubah anda seperti di bawah
![Rahsia](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7t6vyolkj2jyq85oswh7.png
i. Lancarkan Instance EC2
Buat pasangan kunci baharu atau gunakan yang sedia ada.
Jika anda mencipta pasangan kunci baharu, klik pada buat pasangan kunci dan berikan nama pilihan anda.
Pilih jenis Pasangan Kunci sebagai RSA
Format fail sebagai .pem
Pasangan kunci dimuat turun secara automatik ke sistem anda.
Benarkan peraturan masuk berikut:
i. HTTP (port 80): Untuk menyampaikan aplikasi anda.
ii. HTTPS (port 443): Untuk akses selamat.
iii. SSH (port 22): Untuk akses pengurusan.
Kini tika anda sedia untuk digunakan sebaik sahaja status menunjukkan "Berjalan".
ii. Konfigurasikan pasangan kunci (.pem key) untuk akses SSH
Untuk pengguna buku Mac atau pengguna Linux dengan terminal bash, konfigurasikan pasangan kunci anda untuk akses SSH demikian:
a. Buka kunci .pem yang dimuat turun menggunakan VScode atau Xcode
b. Pada terminal anda, navigasi ke direktori .ssh dari direktori akar(~)
project/ ├── app.py # Flask application code ├── requirements.txt # Python dependencies ├── templates/ │ └── index.html # Frontend UI └── .env # Environment variables (API keys, etc.)
c. Cipta fail .pem dalam direktori .ssh menggunakan penyunting teks nano atau vim; Saya akan menggunakan nano dalam tutorial ini.
Pasang nano jika anda belum memasangnya.
Untuk pengguna macbook
self.stream = cv2.VideoCapture(0) # Open the default webcam
Untuk pengguna linux
self.model = ChatGoogleGenerativeAI(model="gemini-1.5-flash-latest") response = self.chain.invoke({"prompt": prompt, "image_base64": image_base64})
Setelah memasangnya, buat fail .pem dalam direktori .ssh menggunakan nano.
Pastikan fail yang akan dibuat mengandungi nama sebenar fail .pem anda.
$ git clone https://github.com/Abunuman/Real-Time-ODS.git $ cd Real-Time-ODS
Kemudian salin fail .pem yang telah dibuka dan tampal dalam .pem untuk dibuat dalam direktori .ssh.
Tekan Ctrl X, kemudian Y , kemudian Enter untuk menyimpan.
d. Tukar kebenaran fail .pem
GOOGLE_API_KEY=your_google_api_key OPENAI_API_KEY=your_openai_api_key FLASK_DEBUG=True
iii. Akses Instance - SSH ke dalam contoh EC2 anda:
Klik pada ID Instance . Setelah contoh berada dalam keadaan berjalan, pilih pada pilihan sambung
Sebaik sahaja anda berada di halaman Connect , Pergi ke SSH Client
Kemudian salin arahan terakhir pada halaman yang kelihatan seperti ini:
$ 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
Tampal ini pada terminal anda dan tekan enter. Anda harus menyambung dengan lancar.
Untuk Pengguna Windows
Buka CMD pada mesin tingkap anda
Cari direktori yang dikehendaki di mana fail .pim disimpan
Sebaik-baiknya daripada direktori ini, kita boleh menjalankan arahan ssh yang disalin dan kita sepatutnya boleh menyambung ke EC2. Walau bagaimanapun, kadangkala kami mendapat ralat kebenaran keselamatan apabila kami menjalankan arahan ssh.
Kami perlu menukar kebenaran kepada fail .pem.
Untuk itu ikuti langkah di bawah.
Cari folder fail .pem , klik kanan pada fail dan pilih sifat
Pergi ke tab Keselamatan
Pergi ke tab Lanjutan
Klik Lumpuhkan warisan
Pilihan Pendahuluan ini juga menunjukkan pengguna lain mempunyai semua kebenaran untuk fail .pem. Alih keluar kebenaran untuk semua pengguna lain
Tambah pengguna yang anda cuba sambungkan ke EC2 jika belum ada dalam senarai pengguna.
Dayakan semua kebenaran untuk pengguna ini.
Sebaik-baiknya dengan langkah ini, anda tidak sepatutnya menghadapi ralat.
Jalankan arahan SSH daripada gesaan CMD
Setelah kebenaran dibetulkan , gesaan akan berjaya disambungkan ke EC2
Sekarang anda berjaya menyelesaikan langkah-langkah tersebut dan anda boleh menjalankan arahan daripada windows CMD pada contoh EC2.
iv.Pasang Ketergantungan - Kemas kini senarai pakej dan pasang pakej yang diperlukan:
Setelah disambungkan ke tika EC2 anda melalui SSH, pasang kebergantungan pada EC2.
Pada terminal anda yang disambungkan, jalankan arahan berikut:
project/ ├── app.py # Flask application code ├── requirements.txt # Python dependencies ├── templates/ │ └── index.html # Frontend UI └── .env # Environment variables (API keys, etc.)
Semak versi python3 yang dipasang, pastikan 3.12
self.stream = cv2.VideoCapture(0) # Open the default webcam
Langkah 2: Meletakkan Aplikasi
Sediakan Aplikasi
Pindahkan app.py, index.html dan requirements.txt ke contoh EC2:
self.model = ChatGoogleGenerativeAI(model="gemini-1.5-flash-latest") response = self.chain.invoke({"prompt": prompt, "image_base64": image_base64})
Langkah 3: Mengkonfigurasi Tindakan GitHub untuk CI/CD
Buat Fail Aliran Kerja dalam repositori anda, tambahkan fail .github/workflows/main.yml:
$ git clone https://github.com/Abunuman/Real-Time-ODS.git $ cd Real-Time-ODS
Dalam tutorial ini, kami memulakan perjalanan yang komprehensif untuk membina dan menggunakan sistem pengesanan objek masa nyata yang menyepadukan dengan lancar OpenCV untuk tangkapan video langsung dan ChatGoogleGenerativeAI Google untuk analisis adegan pintar. Daripada mengkonfigurasi aplikasi secara setempat hingga menggunakan aplikasi tersebut dengan selamat pada AWS EC2 dengan domain tersuai dan SSL, kami merangkumi setiap langkah penting untuk mengubah idea anda menjadi penyelesaian yang berfungsi dan berskala.
Projek ini menyerlahkan kuasa menggabungkan teknologi termaju seperti Flask, OpenCV dan AI untuk menyelesaikan masalah dunia sebenar sambil memastikan amalan terbaik untuk penggunaan awan. Dengan mengikut langkah ini, anda bukan sahaja menggunakan sistem berkuasa AI yang mantap tetapi juga memastikan kebolehskalaan, keselamatan dan saluran paip CI/CD yang cekap.
Atas ialah kandungan terperinci Membina Pengesanan Objek Masa Nyata Dikuasakan AI dengan OpenCV, Flask, Gemini Vision dan GitHub Actions CI/CD pada AWS EC2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!