Mục lục:

Cambus - Hệ thống thu thập dữ liệu trên xe buýt đô thị: 8 bước
Cambus - Hệ thống thu thập dữ liệu trên xe buýt đô thị: 8 bước

Video: Cambus - Hệ thống thu thập dữ liệu trên xe buýt đô thị: 8 bước

Video: Cambus - Hệ thống thu thập dữ liệu trên xe buýt đô thị: 8 bước
Video: 10 PHÚT Hiểu Nguyên Lý Truyền Thông MODBUS Quá Dễ!!! 2024, Tháng bảy
Anonim
Cambus - Hệ thống thu thập dữ liệu về xe buýt đô thị
Cambus - Hệ thống thu thập dữ liệu về xe buýt đô thị

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

Cài đặt Linaro trong Dragonboard 410c
Cài đặt Linaro trong Dragonboard 410c
Cài đặt Linaro trong Dragonboard 410c
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

Bước 2: Cài đặt thư viện và tải xuống mã nguồn từ GitHub
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

Thiết lập AWS IoT Core, DynamoDB
Thiết lập AWS IoT Core, DynamoDB
Thiết lập AWS IoT Core, DynamoDB
Thiết lập AWS IoT Core, DynamoDB
Thiết lập AWS IoT Core, DynamoDB
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

Thiết lập API Twilio và Dweet
Thiết lập API Twilio và Dweet
Thiết lập API Twilio và Dweet
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: