İçindekiler:
- Adım 1: Malzemeler
- Adım 2: Linaro'yu Dragonboard 410c'ye kurun
- 3. Adım: 2. Adım: Kitaplıkları Kurun ve GitHub'dan Kaynak Kodu İndirin
- 4. Adım: AWS IoT Core, DynamoDB Kurulumu
- Adım 5: Twilio ve Dweet API'lerini Ayarlayın
- 6. Adım: Zorluklar
- 7. Adım: Sonuçlar ve Gelecekteki Çalışmalar
- Adım 8: Referanslar
Video: Cambus - Kentsel Otobüste Veri Toplama Sistemi: 8 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Toplu taşımada bilinen sorunlar ve zorluklar arasında, nüfus gerçek zamanlı bilgiden yoksun ve en az iddialı. Toplu taşıma otobüslerinin aşırı kalabalık olması, saatlerce trafikte olmalarına rağmen kendi araçlarını kullanmayı tercih eden kullanıcıları uzaklaştırıyor. Bir kullanıcı, otobüs sayısı gibi gerçek zamanlı bilgilere kolayca erişebiliyorsa, bir sonraki otobüsü beklemeyi veya otobüsle dolaşmayı veya kendi aracını kullanmayı seçebilir. Seçim gücü, toplu taşımayı kullanıcı için daha çekici bir seçenek haline getiriyor.
İç mekandaki insanları saymak veya tahmin etmek birçok şekilde yapılabilir, bunların arasında en yaygın olarak kullanılanlar şunlardır:
- Termal görüntüler;
- Bilgisayar görüşü;
- Yüz sayacı;
Bilgisayarla görü kullanan bir ortamda insanları tahmin etmenin çeşitli zorlukları arasında başlıcaları şunlardır:
- İnsanların tıkanıklıkları;
- Ters aydınlatma;
- Statik tıkanıklık, yani nesnelerin arkasındaki insanlar;
- Çevreye kamera açısı;
Bu proje için bir zorluk, görüntünün arka planının çıkarılmasına en iyi yardımcı olacak kameranın doğru açısının yanı sıra gün boyunca otobüsün içindeki değişken parlaklığın bilinmesidir.
Teklifin temel amacı, aşırı kalabalığı tahmin etmek için sağlam ve yapılandırılabilir bir model oluşturmak ve sonuçları akıllı telefonlar aracılığıyla nüfusun kullanımına sunmaktır.
Adım 1: Malzemeler
Proje için ihtiyaç duyulan malzeme aşağıdaki gibidir:
1 x Dragon Kurulu 410c;
1 x USB kamera;
1 x Akıllı Telefon Android;
Adım 2: Linaro'yu Dragonboard 410c'ye kurun
DragonBoard 410c'ye Linaro 17.09'u yüklemek için aşağıdaki bağlantıdaki talimatları izleyin. GPS için çekirdek desteği için Linaro 17.09'u yüklemenizi öneririz.
www.96boards.org/documentation/consumer/dr…
3. Adım: 2. Adım: Kitaplıkları Kurun ve GitHub'dan Kaynak Kodu İndirin
Cambus modüler bir mimariye ve kod tasarımına sahiptir. Kendi makine öğrenimi algoritmanızı kodlamanız, diğer bulut servislerine geçmeniz ve kendi kullanıcı uygulamalarınızı oluşturmanız mümkündür.
Cambus projesini çalıştırmak için önce kaynak kodunu github'dan (https://github.com/bmonteiro00/cambus) indirmeniz gerekiyor. Python'u (Cambus, sürüm 2.7 ve > 3.x üzerinde çalışacak moddu) ve aşağıdaki kitaplıkları 'pip' (sudo apt-get install python-pip) kullanarak kurun. Linaro sistemine bir grup kitaplık kurmak gerekecek (Ayrıca, Cambus sistemini SO'dan izole etmek için sanal bir ortam - pip install virtualenv - oluşturulması önerilir). Lütfen aşağıdaki kitaplıkları kurun:
- pip kurulumu paho-mqtt
- pip kurulum numpy
- pip kurulumu opencv-python
- pip kurulumu opencv-katkı-python
- pip kurulum twilio
- pip kurulumu matplotlib
Ana program sınıflara ayrıldı:
- CamBus - ana sınıf;
- Sensör - GPS konumu, sıcaklık, Co2 gibi verileri elde etmek için bir sınıf.
- Counter - görüntü işleme algoritmalı sınıf.
Tüm kitaplıkların kurulu olduğundan emin olun ve python CamBus_v1.py'yi çalıştırın.
4. Adım: AWS IoT Core, DynamoDB Kurulumu
AWS IoT çekirdeğini, verileri günlüğe kaydetmek için TLS ve X509 ve NoSQL ve DynamoDB ile bir MQTT aracısı olarak kullandık. https://aws.amazon.com/free adresinde bir hesap oluşturmanız gerekecek.). Ardından, bir şey oluşturmak ve Dinamo ile entegre olmak için aşağıdaki adımları izleyeceksiniz:
docs.aws.amazon.com/iot/latest/developergu…
Adım 5: Twilio ve Dweet API'lerini Ayarlayın
Twilio SMS hizmeti de kuruldu. Bu adımı tamamlama talimatları için aşağıdaki URL'ye bakın:
www.twilio.com/docs/iam/api/account
Android uygulaması ile sistem arasındaki entegrasyon Dweet platformunda REST kullanılarak yapılmıştır. Üyelik gerektirmez.
dweet.io/
6. Adım: Zorluklar
Geliştirmemiz sırasında OpenCV tekniklerinden AWS platformuna kadar birçok zorlukla karşılaştık. C/C++ ile geliştirme yaparken zamandan tasarruf etmek için Python ile kodlamaya karar verdik. Geliştirmemiz sırasında yalnızca aşağıdakiler gibi temel Opencv yöntemleri:
• cv2. GaussianBlur(..)
• cv2.threshold(..)
• cv2.morphologyEx(..)
• cv2.contourArea(..)
• cv2.findContours(..)
Bu temel yöntemler, insanları tespit etmede iyi bir kaliteye ulaşmak için yeterli değildi. Titrek video ML(Machine Learning) içeren senaryolar kullanıldı. Bu yüzden OpenCV makine öğrenme kütüphanesini kullanmaya karar verdik ve başka bir problemimiz oldu çünkü ML algoritması için iyi bir veri girişi bulmak günlerce uğraştığımız bir problemdi. OpenCV SVM algoritmasını kullandık ama işe yaramadı. OpenCV Naive Bayses kullandık ve bu işe yaradı. Tensorflow ve CNN sinir ağlarını kullanmaya çalıştık ancak şimdilik bunu gerçekleştiremedik. CNN, bizim sahip olmadığımız bir çok işlem gücü kullanır. OpenCV ML ve temel OpenCV yöntemlerini kullanmak, insanları iyi bir oranda tespit etmemize yardımcı oldu. Yine de, iyi bir insan tespit etme oranına ulaşmak ve yanlış pozitiflerden kaçınmak için her video türü için OpenCV parametrelerini uyarlamamız gerekiyor. sadece yolcu sayısı ve GPS konumu. Sıcaklık vb. gibi diğer sensörleri kullanarak veri toplamamaya karar verdik. Uygulamayı parametreleştirmek ve yapılandırılabilir hale getirmek için bir.ini dosyası oluşturduk. Cambus.ini dosyasında uygulamayı birçok şekilde yapılandırabilirsiniz.
7. Adım: Sonuçlar ve Gelecekteki Çalışmalar
Videoda görebileceğiniz gibi, sayaç doğru bir şekilde çalışıyor. Mavi çizgiler giriş sınırını ve kırmızı çizgi çıkış sınırını gösterir. Bu durumda, bir veriyoluna dağıtamadığımız için simülasyon için bir video kullanıldı.
Video boyutu, kamera açısı, parlaklık vb. ile ilgili durumunuzda bazı değişiklikler yapılması gerektiğini unutmayın. Her video türü, opencv çekirdek çıkarma arka planı vb. gibi kendi parametre uyarlaması olmalıdır.
Lütfen ayrıca cambus.ini'de MQTT komisyoncusu vb. belirten değişkenleri değiştirin.
Gelecekteki uygulamalarda sisteme sıcaklık, nem ve CO2 gibi sensörler eklemeyi düşünüyoruz. Buradaki fikir, şehirler etrafında veri toplayarak onları topluluğa sunmaktır.
Aşağıda, projeyi geliştirmek için atabileceğiniz sonraki adımları sıralıyoruz:
- C/C++ kullanarak kodu yeniden yazın;
- ML algoritmasını geliştirin;
- Yeniden faktör python kodu;
- Bir otobüse yerleştirme;
Embarcados ve Qualcomm'a verilen tüm destek için teşekkür ederiz.
Ortak çalışanlar:
Bruno Monteiro - [email protected]
Kleber Drobowok - [email protected]
Vinicius de Oliveira - [email protected]
Adım 8: Referanslar
[1]
[2]
[3]
[4]
[5]
Önerilen:
EAL - Rc Car'da Industry 4.0 GPS Veri Toplama: 4 Adım
EAL - Rc Car'da Endüstri 4.0 GPS Veri Toplama: Bu Instructable'da, bir RC arabaya bir GPS modülünü nasıl kurduğumuz ve kolay izleme için toplanan verileri bir web sayfasına nasıl yayınladığımız hakkında konuşacağız. Daha önce burada bulabileceğiniz RC arabamızı nasıl yaptığımıza dair bir talimat hazırladık. Bu kullanıyor
EKG Kaydedici - Uzun Süreli Veri Toplama ve Analizi için Giyilebilir Kardiyak Monitör: 3 Adım
EKG Kaydedici - Uzun Süreli Veri Toplama ve Analizi için Giyilebilir Kardiyak Monitör: İlk sürüm: Ekim 2017Son sürüm: 1.6.0Durum: KararlıZorluk: YüksekÖnkoşul: Arduino, Programlama, Donanım oluşturmaBenzersiz depo: SF (aşağıdaki bağlantılara bakın)Destek: Yalnızca forum, hiçbir PMECG Logger, Uzun Süreli Giyilebilir Kardiyak Monitör değildir
MotoStudent Elektrikli Yarış Bisikleti için Veri Toplama ve Veri Görselleştirme Sistemi: 23 Adım
MotoStudent Elektrikli Yarış Bisikleti için Veri Toplama ve Veri Görselleştirme Sistemi: Veri toplama sistemi, harici sensörlerden veri toplamak, depolamak ve daha sonra işlemek için birlikte çalışan bir donanım ve yazılım topluluğudur, böylece grafiksel olarak görselleştirilip analiz edilebilir, mühendislerin yapmasına izin vermek
Arduino İle Sıcaklık ve Nem Göstergesi ve Veri Toplama ve İşleme: 13 Adım (Resimli)
Arduino ve İşleme ile Sıcaklık ve Nem Görüntüleme ve Veri Toplama: Giriş: Bu, bir Arduino kartı, bir Sensör (DHT11), bir Windows bilgisayar ve Sıcaklık, Nem verilerini dijital olarak görüntülemek için bir İşleme (ücretsiz indirilebilir) programı kullanan bir projedir. çubuk grafik formu, saati ve tarihi görüntüleyin ve bir sayım süresi çalıştırın
ESP8266 ve PubNub ile IoT Etkin Sensör Veri Toplama Merkezi: 9 Adım (Resimlerle)
ESP8266 ve PubNub ile IoT Etkin Sensör Veri Toplama Merkezi: ESP8266'daki eğitimlerin çoğu ya acemi seviyesinde (uzaktan bir led yanıp sönüyor) ya da led yanıp sönme becerilerini geliştirmek ve yükseltmek için bir şeyler arayan biri için çok karmaşık. Instructable, bu boşluğu oluşturmak için köprülemeyi amaçlıyor