Isi kandungan:

Cambus - Sistem Pengumpulan Data pada Bas Bandar: 8 Langkah
Cambus - Sistem Pengumpulan Data pada Bas Bandar: 8 Langkah

Video: Cambus - Sistem Pengumpulan Data pada Bas Bandar: 8 Langkah

Video: Cambus - Sistem Pengumpulan Data pada Bas Bandar: 8 Langkah
Video: ✨A Will Eternal EP 01 - 106 Full Version [MULTI SUB] 2024, November
Anonim
Cambus - Sistem Pengumpulan Data pada Bas Bandar
Cambus - Sistem Pengumpulan Data pada Bas Bandar

Di antara masalah dan kesukaran yang diketahui dalam pengangkutan awam, penduduk tidak mempunyai maklumat masa nyata dan paling tegas. Kesesakan bas pengangkutan awam yang ramai mendorong pengguna pergi, yang lebih suka menggunakan kenderaan sendiri, walaupun mereka masih dalam keadaan berjam-jam. Sekiranya maklumat masa nyata, seperti jumlah bas, mudah didapati oleh pengguna, dia boleh memilih sama ada menunggu bas seterusnya atau berkeliling dengan bas atau menggunakan kenderaan sendiri. Kekuatan pilihan menjadikan pengangkutan awam menjadi pilihan yang lebih menarik bagi pengguna.

Menghitung atau mengira orang di dalam rumah boleh dilakukan dengan pelbagai cara, antaranya yang paling biasa digunakan adalah:

  • Imej terma;
  • Visi komputer;
  • Kaunter muka;

Di antara beberapa kesukaran untuk mengira orang di persekitaran menggunakan penglihatan komputer, yang utama adalah:

  • Kesalahan orang;
  • Lampu terbalik;
  • Oklusi statik, iaitu orang di belakang objek;
  • Sudut kamera ke persekitaran;

Cabaran untuk projek ini adalah untuk mengetahui sudut kamera yang betul yang akan membantu mengurangkan latar belakang gambar, dan juga cahaya yang berubah-ubah pada siang hari di dalam bas.

Objektif utama cadangan ini adalah untuk membuat model yang kuat dan dapat dikonfigurasi untuk menganggarkan kepadatan orang ramai dan membuat hasilnya tersedia untuk penduduk melalui telefon pintar.

Langkah 1: Bahan

Bahan yang diperlukan untuk projek ini adalah yang berikut:

1 x Papan Naga 410c;

1 x kamera USB;

1 x Telefon Pintar Android;

Langkah 2: Pasang Linaro di Dragonboard 410c

Pasang Linaro di Dragonboard 410c
Pasang Linaro di Dragonboard 410c
Pasang Linaro di Dragonboard 410c
Pasang Linaro di Dragonboard 410c

Ikuti arahan pada pautan di bawah untuk memasang Linaro 17.09 di DragonBoard 410c. Kami mengesyorkan memasang Linaro 17.09 untuk sokongan kernel untuk GPS.

www.96boards.org/documentation/consumer/dr…

Langkah 3: Langkah 2: Pasang Perpustakaan dan Muat turun Kod Sumber Dari GitHub

Langkah 2: Pasang Perpustakaan dan Muat turun Kod Sumber Dari GitHub
Langkah 2: Pasang Perpustakaan dan Muat turun Kod Sumber Dari GitHub

Cambus mempunyai seni bina modular dan reka bentuk kod. Anda boleh membuat kod algoritma pembelajaran mesin anda sendiri, menukar ke perkhidmatan awan lain dan membuat aplikasi pengguna anda sendiri.

Untuk menjalankan projek cambus, pertama anda perlu memuat turun kod sumber dari github (https://github.com/bmonteiro00/cambus). Pasang python (Cambus adalah mod untuk dijalankan pada verison 2.7 dan> 3.x) dan perpustakaan berikut menggunakan 'pip' (sudo apt-get install python-pip). Diperlukan untuk memasang sekumpulan perpustakaan dalam sistem Linaro (Juga, disarankan untuk membuat persekitaran maya - pip install virtualenv - untuk mengasingkan sistem Cambus dari SO). Sila pasang pustaka berikut:

  • memasang pip paho-mqtt
  • memasang pip numpy
  • memasang pip opencv-python
  • memasang pip opencv-contrib-python
  • pip pasang twilio
  • memasang pip matplotlib

Program utama dibahagikan kepada kelas:

  • CamBus - kelas utama;
  • Sensor - kelas untuk mendapatkan data seperti kedudukan GPS, suhu, Co2.
  • Kaunter kelas dengan algoritma pemprosesan imej.

Pastikan jika semua perpustakaan dipasang dan jalankan python CamBus_v1.py.

Langkah 4: Menyiapkan AWS IoT Core, DynamoDB

Menyiapkan AWS IoT Core, DynamoDB
Menyiapkan AWS IoT Core, DynamoDB
Menyiapkan AWS IoT Core, DynamoDB
Menyiapkan AWS IoT Core, DynamoDB
Menyiapkan AWS IoT Core, DynamoDB
Menyiapkan AWS IoT Core, DynamoDB

Kami menggunakan teras AWS IoT sebagai broker MQTT dengan TLS dan X509 dan NoSQL dan DynamoDB untuk log data. Anda perlu membuat akaun di https://aws.amazon.com/free.). Seterusnya, anda akan mengikuti langkah-langkah di bawah ini untuk membuat sesuatu dan berintegrasi dengan Dynamo:

docs.aws.amazon.com/iot/latest/developergu…

Langkah 5: Sediakan API Twilio dan Dweet

Sediakan API Twilio dan Dweet
Sediakan API Twilio dan Dweet
Sediakan API Twilio dan Dweet
Sediakan API Twilio dan Dweet

Perkhidmatan SMS Twilio juga disediakan. Lihat URL di bawah untuk mendapatkan arahan untuk menyelesaikan langkah ini:

www.twilio.com/docs/iam/api/account

Penyatuan antara aplikasi android dan sistem dilakukan dengan cara REST menggunakan platform Dweet. Tidak perlu mendaftar.

dweet.io/

Langkah 6: Cabaran

Semasa perkembangan kami banyak cabaran yang kami hadapi, bermula dari teknik OpenCV hingga platform AWS. Kami memutuskan untuk membuat kod dengan Python untuk menjimatkan masa berkembang di C / C ++. Semasa pembangunan kami hanya kaedah Opencv asas seperti:

• cv2. GaussianBlur (..)

• cv2.threshold (..)

• cv2.morphologyEx (..)

• cv2.contourArea (..)

• cv2.findContours (..)

Kaedah asas ini tidak mencukupi untuk mencapai kualiti yang baik dalam mengesan orang. Senario dengan ML video goyah (Machine Learning) digunakan. Oleh itu, kami memutuskan untuk menggunakan perpustakaan pembelajaran mesin OpenCV dan kami mendapat masalah lain kerana untuk mencari input data yang baik untuk algoritma ML adalah masalah yang kami habiskan selama bertahun-hari. Kami telah menggunakan algoritma OpenCV SVM tetapi tidak berjaya. Kami menggunakan OpenCV Naive Bayses dan ini berfungsi dengan baik. Kami telah mencuba menggunakan rangkaian saraf Tensorflow dan CNN, namun kami tidak mewujudkannya buat masa ini. CNN menggunakan banyak kuasa pemprosesan, sesuatu yang tidak kami miliki. Menggunakan OpenCV ML dan kaedah asas OpenCV membantu kami mencapai tahap yang baik untuk mengesan orang. Walaupun begitu, untuk setiap jenis video kita harus menyesuaikan parameter OpenCV untuk mencapai tahap yang baik untuk mengesan orang dan mengelakkan positif yang salah. Pada pertengahan dua bulan ini, kami mengembangkan idea pertama kami untuk melakukan pusat pengumpulan data tidak hanya bilangan penumpang dan lokasi GPS. Kami memutuskan untuk mengumpulkan data bukan menggunakan sensor lain seperti suhu dan sebagainya. Kami membuat fail.ini untuk memarematiskan aplikasi dan membuatnya dapat dikonfigurasi. Pada fail Cambus.ini anda dapat mengkonfigurasi aplikasi dengan banyak cara.

Langkah 7: Hasil dan Kerja Masa Depan

Seperti yang anda lihat dalam video, kaunter berfungsi dengan tepat. Garis biru menandakan had input dan garis merah had output. Dalam hal ini, video digunakan untuk mensimulasikan kerana kami tidak dapat menyebarkannya ke bus.

Perlu diingat bahawa ada beberapa perubahan yang perlu dibuat pada keadaan anda mengenai ukuran video, sudut kamera, cahaya dan lain-lain. Setiap jenis video mestilah menjadi penyesuaian parameternya sendiri seperti latar belakang pengecutan kernel opencv dan sebagainya.

Sila ubah juga pemboleh ubah di cambus.ini, menunjukkan broker MQTT dan sebagainya.

Kami mempertimbangkan dalam pelaksanaan masa depan untuk menambahkan sensor, misalnya, suhu, kelembapan dan CO2 dalam sistem. Ideanya adalah untuk mendapatkan data di sekitar bandar sehingga tersedia untuk masyarakat.

Berikut ini kami menghitung langkah seterusnya yang boleh anda lakukan untuk memperbaiki projek ini:

  • Tulis semula kod menggunakan C / C ++;
  • Meningkatkan algoritma ML;
  • Faktor semula kod python;
  • Penyebaran ke dalam bas;

Kami mengucapkan terima kasih kepada Embarcados dan Qualcomm atas semua sokongan yang diberikan.

Kerjasama:

Bruno Monteiro - [email protected]

Kleber Drobowok - [email protected]

Vinicius de Oliveira - [email protected]

Langkah 8: Rujukan

[1]

[2]

[3]

[4]

[5]

Disyorkan: