开源项目|从0到1教你搭建一个适配于智能车的目标检测系统
引言
本教程連載一輛能夠用 ROS 控制的帶攝像頭的小車,用 ROS 發布圖像數據,對獲取到的圖像進行處理,例如目標檢測。這里主要介紹如何把本教程后面的的內容匯聚起來,實現一個能目標檢測的小車。
先歸納一下之后文檔的內容:
獲取本項目完整教程代碼及文檔請關注下方二維碼
并在公眾號后臺回復數字“4"
這篇文檔幾乎涉及了上面所有文檔的內容是一個綜合應用,大家可以根據之后的連載一步一步學起來。如果對上面的內容比較熟悉了,就會發現這篇文檔很簡短,但是卻是建立在之前已有的基礎上。
現在應當已經熟悉的內容:
了解 CNN 的工作原理;
能使用 Darknet 訓練自己的目標檢測模型
能用 rosserial 建立 RT-Thread 和 ROS 的連接
能用 ROS 發布圖像信息
下面就會介紹如何用 ROS 發布的圖像信息和 Darknet 連接做目標檢測。
1.Darknet ROS
1.1 獲取源碼
其實下面要用到的是一個 ROS 軟件包,這個軟件包現在也是開源的:
1#?初始化工作環境 2$?mkdir?catkin_workspace 3$?cd?catkin_workspace/src 4$?catkin_init_workspace 5 6##?下載源碼 7$?git?clone?--recursive?http://github.com/leggedrobotics/darknet_ros.git除了源碼,我們還要下載一些訓練好的神經網絡權值,放在下面這個目錄:
1$?catkin_workspace/src/darknet_ros/darknet_ros/yolo_network_config/weights/如果覺得國外下載速度太慢的話,這里我有個國內的 CDN 加速鏡像:
yolov2-tiny.weights:https://wuhanshare-1252843818.cos.ap-guangzhou.myqcloud.com/yolov2-tiny.weights
yolov2.weights:https://wuhanshare-1252843818.cos.ap-guangzhou.myqcloud.com/yolov2.weights
yolov3.weights:https://wuhanshare-1252843818.cos.ap-guangzhou.myqcloud.com/yolov3.weights
如果源碼和權值都下載好了,我們就可以準備編譯了。
1.2 編譯源碼
為了保證 Darknet 能夠獲取到攝像頭的數據,我們需要先告訴它攝像頭的信息發布在哪里,修改這個文件:
1$?catkin_workspace/src/darknet_ros/darknet_ros/config/ros.yaml把下面的 topic 修改為自己圖像發布的位置,例如我這里發布在 /usb_cam/image_raw
1camera_reading: 2????topic:?/usb_cam/image_raw 3????queue_size:?1然后就可以編譯軟件包了,在 catkin_workspace 目錄下:
1$?catkin_make一切正常的話,編譯就完成了,其實不需要做太多的工作,編譯完記得更新一下環境變量,這樣后面才能正常啟動這個軟件包。
1$?sorce?devel/setup.bash1.3 目標檢測
在進行目標檢測前,我們先啟動 ROS 節點:
1$?roscore然后啟動一個攝像頭節點:
這樣就可以實時看到攝像頭的數據了,攝像頭在哪里其實不重要,既可以在小車上,也可以在電腦上,這也是 ROS 的優美之處,只要節點發布了攝像頭消息,不管攝像頭在哪, ROS 都能拿到處理:
接下來我們啟動 Darknet 的節點:
1$?roslaunch?darknet_ros?darknet_ros.launch下面這張圖就可以看到有兩個視頻流,左邊的是沒有處理的實時圖像,右邊是運行了目標檢測的結果:
2.總結
RT-Thread 作為實時操作系統負責控制,Linux 則負責提供豐富的軟件包運行算法,兩者相結合,互相取長補短還是配合地挺好的。
3.參考文獻
Darknet ROS:https://github.com/leggedrobotics/darknet_ros
獲取本項目完整教程代碼及文檔請關注下方二維碼
并在公眾號后臺回復數字“4"
RT-Thread
讓物聯網終端的開發變得簡單、快速,芯片的價值得到最大化發揮。Apache2.0協議,可免費在商業產品中使用,不需要公布源碼,無潛在商業風險。
長按二維碼,關注我們
點擊“閱讀原文”進入RT-Thread GitHub
總結
以上是生活随笔為你收集整理的开源项目|从0到1教你搭建一个适配于智能车的目标检测系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑外设配件有哪些(2022年游戏手柄推
- 下一篇: java信息管理系统总结_java实现科