Съдържание:
- Стъпка 1: Материали
- Стъпка 2: Инсталирайте Linaro в Dragonboard 410c
- Стъпка 3: Стъпка 2: Инсталирайте библиотеки и изтеглете изходния код от GitHub
- Стъпка 4: Настройка на AWS IoT Core, DynamoDB
- Стъпка 5: Настройка на Twilio и Dweet API
- Стъпка 6: Предизвикателства
- Стъпка 7: Резултати и бъдеща работа
- Стъпка 8: Препратки
Видео: Cambus - Система за събиране на данни за градски автобус: 8 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Сред проблемите и трудностите, известни в обществения транспорт, населението няма информация в реално време и с най -малко увереност. Пренаселеността на автобусите за обществен транспорт прогонва потребителите, които предпочитат да използват собствени превозни средства, въпреки че все още са в движение с часове. Ако информацията в реално време, като например броя на автобусите, е лесно достъпна за потребителя, той може да избере дали да изчака следващия автобус или да се придвижва с автобус или да използва собствено превозно средство. Силата на избор прави обществения транспорт по -привлекателен вариант за потребителя.
Преброяването или оценяването на хората на закрито може да се извърши по много начини, сред които най -често използваните са:
- Термични изображения;
- Компютърно зрение;
- Брояч за лице;
Сред няколкото трудности при оценката на хората в среда, използваща компютърно зрение, основните са:
- Запушвания на хора;
- Инвертиращо осветление;
- Статична оклузия, тоест хора зад обекти;
- Ъгъл на камерата спрямо околната среда;
Предизвикателство за този проект е да се знае правилният ъгъл на камерата, който ще помогне най -добре при изваждането на фона на изображението, както и променливата яркост през деня в автобуса.
Основната цел на предложението е да се създаде стабилен и конфигурируем модел, който да оцени пренаселеността и да направи резултатите достъпни за населението чрез смартфони.
Стъпка 1: Материали
Необходимите материали за проекта са следните:
1 x Dragon Board 410c;
1 x USB камера;
1 x смартфон Android;
Стъпка 2: Инсталирайте Linaro в Dragonboard 410c
Следвайки инструкциите на връзката по -долу, за да инсталирате Linaro 17.09 на DragonBoard 410c. Препоръчваме да инсталирате Linaro 17.09 за поддръжка на ядрото за GPS.
www.96boards.org/documentation/consumer/dr…
Стъпка 3: Стъпка 2: Инсталирайте библиотеки и изтеглете изходния код от GitHub
Cambus има модулна архитектура и кодов дизайн. Възможно е да кодирате свой собствен алгоритъм за машинно обучение, да преминете към друга облачна услуга и да създадете свои собствени потребителски приложения.
За да стартирате проекта cambus, първо трябва да изтеглите изходния код от github (https://github.com/bmonteiro00/cambus). Инсталирайте python (Cambus беше режим за изпълнение на версия 2.7 и> 3.x) и следните библиотеки, използвайки „pip“(sudo apt-get install python-pip). Ще бъде необходимо да се инсталират куп библиотеки в системата Linaro (Също така се препоръчва да се създаде виртуална среда - pip install virtualenv - за да се изолира системата Cambus от SO). Моля, инсталирайте следните библиотеки:
- pip install paho-mqtt
- pip install numpy
- pip инсталирайте opencv-python
- pip install opencv-contrib-python
- pip install twilio
- pip install matplotlib
Основната програма беше разделена на класове:
- CamBus - основният клас;
- Сензор - клас за получаване на данни като GPS позиция, температура, Co2.
- Counter - клас с алгоритъм за обработка на изображения.
Уверете се, че всички библиотеки са инсталирани и изпълнете python CamBus_v1.py.
Стъпка 4: Настройка на AWS IoT Core, DynamoDB
Използвахме ядрото на AWS IoT като брокер на MQTT с TLS и X509 и NoSQL и DynamoDB за регистриране на данни. Ще трябва да създадете акаунт на адрес https://aws.amazon.com/free.). След това ще трябва да следвате стъпките по -долу, за да създадете нещо и да се интегрирате с Dynamo:
docs.aws.amazon.com/iot/latest/developergu…
Стъпка 5: Настройка на Twilio и Dweet API
SMS услугата Twilio също беше настроена. Вижте URL адреса по -долу за инструкции за завършване на тази стъпка:
www.twilio.com/docs/iam/api/account
Интеграцията между приложението Android и системата беше извършена чрез REST, използвайки платформата Dweet. Не се изисква регистрация.
dweet.io/
Стъпка 6: Предизвикателства
По време на нашето развитие се сблъскахме с много предизвикателства, започвайки от OpenCV техники до AWS платформа. Решихме да кодираме с Python, за да спестим време за разработка в C/C ++. По време на нашето разработване само основните методи на Opencv като:
• cv2. GaussianBlur (..)
• cv2.threshold (..)
• cv2.morphologyEx (..)
• cv2.contourArea (..)
• cv2.findContours (..)
Тези основни методи не бяха достатъчни, за да се постигне добро качество при откриването на хора. Използвани са сценарии с треперещо видео ML (машинно обучение). И така, решихме да използваме библиотеката за машинно обучение на OpenCV и получихме друг проблем, защото намирането на добро въвеждане на данни за ML алгоритъма беше проблем, който прекарахме много дни. Използвахме OpenCV SVM алгоритъм, но не работихме. Използвахме OpenCV Naive Bayses и този работи добре. Опитахме се да използваме невронни мрежи Tensorflow и CNN, но засега не го направихме. CNN използва много процесорна мощ, нещо, което нямахме. Използването на OpenCV ML и основите на методите на OpenCV ни помогнаха да достигнем добра степен на откриване на хора. Независимо от това, за всеки вид видео трябва да адаптираме параметрите на OpenCV, за да достигнем добър процент на откриване на хора и да избегнем фалшиви положителни резултати. само броя на пътниците и местоположението на GPS. Решихме да не събираме данни, използвайки други сензори като температура и т.н. Създадохме.ini файл, за да параметризираме приложението и да го конфигурираме. На файла Cambus.ini можете да конфигурирате приложението по много начини.
Стъпка 7: Резултати и бъдеща работа
Както можете да видите във видеото, броячът работи точно. Сините линии маркират входната граница, а червената - изходната граница. В този случай беше използвано видео за симулиране, тъй като не можахме да го разгърнем в шина.
Имайте предвид, че трябва да се направят някои промени във вашето състояние по отношение на размера на видеото, ъгъла на камерата, яркостта и т.н. Всеки тип видео трябва да бъде собствена адаптация на параметри, като например фона на извличане на ядрото на opencv и т.н.
Моля, променете и променливите на cambus.ini, като посочите MQTT брокер и т.н.
Смятаме в бъдещи реализации да добавим сензори, например температура, влажност и CO2 в системата. Идеята е да се получат данни около градовете, като ги направят достъпни за общността.
След това изброяваме следващите стъпки, които можете да подобрите проекта:
- Препишете кода отново, използвайки C/C ++;
- Подобряване на алгоритъма ML;
- Повторно факториране на python код;
- Разгръщане в автобус;
Бихме искали да благодарим на Embarcados и Qualcomm за цялата оказана подкрепа.
Сътрудници:
Бруно Монтейро - [email protected]
Kleber Drobowok - [email protected]
Виниций де Оливейра - [email protected]
Стъпка 8: Препратки
[1]
[2]
[3]
[4]
[5]
Препоръчано:
EAL - Събиране на GPS данни на индустрия 4.0 на Rc Car: 4 стъпки
EAL - Индустрия 4.0 Събиране на GPS данни на Rc Car: В тази инструкция ще говорим за това как настройваме GPS модул на RC автомобил и публикуваме събраните данни на уеб страница за лесно наблюдение. Предварително сме направили инструкции за това как направихме нашата RC кола, която можете да намерите тук. Това използва
ЕКГ регистратор - носим сърдечен монитор за дългосрочно събиране и анализ на данни: 3 стъпки
ЕКГ регистратор - носим сърдечен монитор за дългосрочно събиране и анализ на данни: Първо издание: октомври 2017 г. Последна версия: 1.6.0 Статус: Стабилен Трудност: ВисокаПредварително условие: Arduino, Програмиране, Изграждане на хардуер Уникално хранилище: SF (вижте връзките по -долу) Поддръжка: Само форум, няма PMECG Logger е носим сърдечен монитор за дълго
Показване на температурата и влажността и събиране на данни с Arduino и обработка: 13 стъпки (със снимки)
Показване на температурата и влажността и събиране на данни с Arduino и обработка: Въведение: Това е проект, който използва дъска Arduino, сензор (DHT11), компютър с Windows и програма за обработка (безплатно изтегляне) за показване на данни за температурата, влажността в цифров и форма на лентова диаграма, показване на час и дата и стартиране на време за преброяване
Събиране на данни от EAL-Industri4.0-RFID до база данни: 10 стъпки (със снимки)
EAL-Industri4.0-RFID Актуализиране на данни към база данни: Dette projekt omhandler opsamling af v æ gtdata, регистриращ се за идентифициране във vha. RFID, изоставане на данни в MySQL база данни vha. node-RED, samt fremvisning и поведение на opsamlede данни в et C# програма, създадена от en Windows Form Application
Център за събиране на данни от сензори с активиран IoT с ESP8266 и PubNub: 9 стъпки (със снимки)
Център за събиране на данни от сензори с активиран IoT с ESP8266 и PubNub: Повечето от уроците по ESP8266 са или на ниво за начинаещи (дистанционно мигащ светодиод), или твърде сложни за някой, който търси нещо, което да подобри и надгради върху своите LED мигащи умения. инструктивни цели да преодолее тази пропаст към създаването