Mục lục:
- Bước 1: Vật liệu
- Bước 2: Cài đặt Linaro trong Dragonboard 410c
- Bước 3: Bước 2: Cài đặt thư viện và tải xuống mã nguồn từ GitHub
- Bước 4: Thiết lập AWS IoT Core, DynamoDB
- Bước 5: Thiết lập API Twilio và Dweet
- Bước 6: Thử thách
- Bước 7: Kết quả và công việc trong tương lai
- Bước 8: Tham khảo
Video: Cambus - Hệ thống thu thập dữ liệu trên xe buýt đô thị: 8 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Trong số các vấn đề và khó khăn được biết đến trong giao thông công cộng, người dân thiếu thông tin thời gian thực và ít quyết đoán nhất. Sự quá tải của xe buýt giao thông công cộng khiến người dùng bỏ đi, họ thích sử dụng phương tiện của riêng mình, mặc dù họ vẫn tham gia giao thông hàng giờ đồng hồ. Nếu thông tin thời gian thực, chẳng hạn như số lượng xe buýt, dễ dàng có sẵn cho người dùng, thì người dùng có thể chọn đợi chuyến xe buýt tiếp theo hoặc đi lại bằng xe buýt hoặc sử dụng phương tiện của riêng mình. Sức mạnh của sự lựa chọn làm cho phương tiện giao thông công cộng trở thành một lựa chọn hấp dẫn hơn cho người dùng.
Việc đếm hoặc ước tính số người trong nhà có thể được thực hiện theo nhiều cách, trong đó những cách được sử dụng phổ biến nhất là:
- Hình ảnh nhiệt;
- Tầm nhìn máy tính;
- Máy đếm mặt;
Trong số một số khó khăn để ước tính con người trong môi trường sử dụng thị giác máy tính, những khó khăn chính là:
- Sự xuất hiện của con người;
- Đảo ngược ánh sáng;
- Tắc tĩnh, tức là những người đứng sau vật thể;
- Góc máy ảnh với môi trường;
Một thách thức đối với dự án này là biết được góc chính xác của máy ảnh sẽ hỗ trợ tốt nhất trong việc trừ hậu cảnh của hình ảnh, cũng như độ sáng thay đổi trong ngày bên trong xe buýt.
Mục tiêu chính của đề xuất là tạo ra một mô hình mạnh mẽ và có thể định cấu hình để ước tính tình trạng quá tải và cung cấp kết quả cho người dân thông qua điện thoại thông minh.
Bước 1: Vật liệu
Vật liệu cần thiết cho dự án tiếp theo là:
1 x Dragon Board 410c;
1 x máy ảnh USB;
1 x Điện thoại thông minh Android;
Bước 2: Cài đặt Linaro trong Dragonboard 410c
Làm theo hướng dẫn trên liên kết dưới đây để cài đặt Linaro 17.09 trên DragonBoard 410c. Chúng tôi khuyên bạn nên cài đặt Linaro 17.09 để hỗ trợ hạt nhân cho GPS.
www.96boards.org/documentation/consumer/dr…
Bước 3: Bước 2: Cài đặt thư viện và tải xuống mã nguồn từ GitHub
Cambus có kiến trúc mô-đun và thiết kế mã. Có thể viết mã thuật toán máy học của riêng bạn, thay đổi sang dịch vụ đám mây khác và tạo các ứng dụng người dùng của riêng bạn.
Để chạy dự án cambus, trước tiên bạn cần tải xuống mã nguồn từ github (https://github.com/bmonteiro00/cambus). Cài đặt python (Cambus là chế độ chạy trên verison 2.7 và> 3.x) và các thư viện sau bằng cách sử dụng 'pip' (sudo apt-get install python-pip). Nó sẽ cần thiết để cài đặt một loạt các thư viện trong hệ thống Linaro (Ngoài ra, chúng tôi khuyên bạn nên tạo một môi trường ảo - pip install virtualenv - để cách ly hệ thống Cambus khỏi SO). Vui lòng cài đặt các thư viện sau:
- pip cài đặt paho-mqtt
- pip cài đặt numpy
- pip cài đặt opencv-python
- pip cài đặt opencv-Contrib-python
- pip cài đặt twilio
- pip cài đặt matplotlib
Chương trình chính được chia thành các lớp:
- CamBus - lớp chính;
- Cảm biến - một lớp để lấy dữ liệu như vị trí GPS, nhiệt độ, Co2.
- Bộ đếm - lớp với thuật toán xử lý ảnh.
Đảm bảo rằng tất cả các thư viện đã được cài đặt và thực thi python CamBus_v1.py.
Bước 4: Thiết lập AWS IoT Core, DynamoDB
Chúng tôi đã sử dụng lõi AWS IoT làm nhà môi giới MQTT với TLS và X509, NoSQL và DynamoDB để ghi dữ liệu. Bạn sẽ phải tạo tài khoản tại https://aws.amazon.com/free.). Tiếp theo, bạn sẽ thực hiện theo các bước bên dưới để tạo một thứ và tích hợp với Dynamo:
docs.aws.amazon.com/iot/latest/developergu…
Bước 5: Thiết lập API Twilio và Dweet
Dịch vụ Twilio SMS cũng đã được thiết lập. Xem URL bên dưới để biết hướng dẫn hoàn thành bước này:
www.twilio.com/docs/iam/api/account
Việc tích hợp giữa ứng dụng android và hệ thống được thực hiện bằng cách REST sử dụng nền tảng Dweet. Không cần đăng ký.
dweet.io/
Bước 6: Thử thách
Trong quá trình phát triển của mình, chúng tôi phải đối mặt với nhiều thách thức, bắt đầu từ các kỹ thuật OpenCV đến nền tảng AWS. Chúng tôi quyết định viết mã bằng Python để tiết kiệm thời gian phát triển bằng C / C ++. Trong quá trình phát triển của chúng tôi, chỉ các phương thức Opencv cơ bản như:
• cv2. GaussianBlur (..)
• cv2.threshold (..)
• cv2.morphologyEx (..)
• cv2.contourArea (..)
• cv2.findContours (..)
Những phương pháp cơ bản này không đủ để đạt được chất lượng tốt trong việc phát hiện người. Các tình huống có video rung động ML (Máy học) đã được sử dụng. Vì vậy, chúng tôi quyết định sử dụng thư viện học máy OpenCV và chúng tôi gặp phải một vấn đề khác vì để tìm được đầu vào dữ liệu tốt cho thuật toán ML là một vấn đề mà chúng tôi đã mất nhiều ngày. Chúng tôi đã sử dụng thuật toán OpenCV SVM nhưng không hoạt động. Chúng tôi đã sử dụng OpenCV Naive Bayses và cái này hoạt động tốt. Chúng tôi đã cố gắng sử dụng mạng nơ-ron Tensorflow và CNN, tuy nhiên chúng tôi đã không làm được điều đó ngay bây giờ. CNN sử dụng rất nhiều sức mạnh xử lý, điều mà chúng tôi không có. Việc sử dụng OpenCV ML và các phương pháp OpenCV cơ bản đã giúp chúng tôi đạt được tỷ lệ phát hiện người tốt. Tuy nhiên, đối với mỗi loại vídeo, chúng tôi phải điều chỉnh các thông số của OpenCV để đạt được tỷ lệ phát hiện người tốt và tránh dương tính giả. chỉ số lượng hành khách và vị trí GPS. Chúng tôi quyết định không thu thập dữ liệu bằng cách sử dụng các cảm biến khác như nhiệt độ, v.v. Chúng tôi đã tạo một tệp.ini để tham số hóa ứng dụng và làm cho nó có thể định cấu hình. Trên tệp Cambus.ini, bạn có thể cấu hình ứng dụng theo nhiều cách.
Bước 7: Kết quả và công việc trong tương lai
Như bạn có thể thấy trong video, bộ đếm đang hoạt động chính xác. Các đường màu xanh lam đánh dấu giới hạn đầu vào và đường màu đỏ là giới hạn đầu ra. Trong trường hợp này, một video đã được sử dụng để mô phỏng vì chúng tôi không thể triển khai nó lên xe buýt.
Lưu ý rằng một số thay đổi phải được thực hiện đối với điều kiện của bạn về kích thước video, góc máy ảnh, độ sáng, v.v. Mỗi loại video đều phải điều chỉnh các thông số riêng, chẳng hạn như nền tính toán hạt nhân opencv, v.v.
Vui lòng thay đổi các biến tại cambus.ini, cho biết nhà môi giới MQTT, v.v.
Chúng tôi xem xét trong các triển khai trong tương lai để thêm các cảm biến, ví dụ như nhiệt độ, độ ẩm và CO2 trong hệ thống. Ý tưởng là lấy dữ liệu xung quanh các thành phố để cung cấp cho cộng đồng.
Sau đây, chúng tôi liệt kê các bước tiếp theo mà bạn có thể cải thiện dự án:
- Viết lại mã bằng C / C ++;
- Cải thiện thuật toán ML;
- Hệ số lại mã python;
- Triển khai thành xe buýt;
Chúng tôi muốn cảm ơn Embarcados và Qualcomm vì tất cả sự hỗ trợ đã dành.
Cộng tác viên:
Bruno Monteiro - [email protected]
Kleber Drobowok - [email protected]
Vinicius de Oliveira - [email protected]
Bước 8: Tham khảo
[1]
[2]
[3]
[4]
[5]
Đề xuất:
EAL - Công nghiệp 4.0 Thu thập dữ liệu GPS trên Rc Car: 4 bước
EAL - Công nghiệp 4.0 Thu thập dữ liệu GPS trên ô tô Rc: Trong Tài liệu hướng dẫn này, chúng tôi sẽ nói về cách chúng tôi thiết lập mô-đun GPS trên ô tô RC và đăng dữ liệu thu thập được lên trang web để dễ dàng chỉnh sửa. Chúng tôi đã thực hiện trước một hướng dẫn về cách chúng tôi tạo ra chiếc xe RC của mình, có thể tìm thấy ở đây. Điều này đang sử dụng th
Cách giải mã dữ liệu xe buýt CAN của xe: 8 bước
Cách giải mã dữ liệu xe buýt CAN của xe: Trong hướng dẫn này, chúng tôi sẽ ghi lại dữ liệu xe buýt CAN của ô tô hoặc xe tải và chuyển đổi dữ liệu nhật ký xe buýt CAN đã ghi thành các giá trị có thể đọc được. Để giải mã, chúng tôi sẽ sử dụng dịch vụ đám mây can2sky.com miễn phí. Chúng tôi có thể ghi nhật ký bằng bộ điều hợp CAN-USB nhưng phải trả phí
Hệ thống thu thập dữ liệu và trực quan hóa dữ liệu cho xe đạp đua điện MotoStudent: 23 bước
Hệ thống thu thập dữ liệu và trực quan hóa dữ liệu cho xe đạp đua điện MotoStudent: Hệ thống thu thập dữ liệu là một tập hợp phần cứng và phần mềm làm việc cùng nhau để thu thập dữ liệu từ các cảm biến bên ngoài, lưu trữ và xử lý sau đó để nó có thể được trực quan hóa bằng đồ họa và phân tích, cho phép các kỹ sư tạo ra
Làm thế nào để đo chính xác mức tiêu thụ điện năng của các mô-đun truyền thông không dây trong kỷ nguyên tiêu thụ điện năng thấp ?: 6 bước
Làm thế nào để đo chính xác mức tiêu thụ điện năng của các mô-đun truyền thông không dây trong kỷ nguyên tiêu thụ điện năng thấp ?: Tiêu thụ điện năng thấp là một khái niệm cực kỳ quan trọng trong Internet of Things. Hầu hết các nút IoT cần được cung cấp năng lượng bằng pin. Chỉ bằng cách đo chính xác mức tiêu thụ điện năng của mô-đun không dây, chúng tôi mới có thể ước tính chính xác lượng pin mà tôi
Hiển thị nhiệt độ và độ ẩm và thu thập dữ liệu với Arduino và xử lý: 13 bước (có hình ảnh)
Hiển thị nhiệt độ và độ ẩm và thu thập dữ liệu với Arduino và xử lý: Giới thiệu: Đây là một Dự án sử dụng bảng Arduino, Bộ cảm biến (DHT11), máy tính Windows và chương trình Xử lý (có thể tải xuống miễn phí) để hiển thị dữ liệu Nhiệt độ, Độ ẩm dưới dạng kỹ thuật số và dạng biểu đồ thanh, hiển thị thời gian và ngày tháng và chạy đếm ngược thời gian