Giter VIP home page Giter VIP logo

yolox-ros's Introduction

YOLOX-ROS

YOLOX + ROS2 Humble demo

yolox_s_result

🔼 Unity + YOLOX-ROS Demo

Supported List

rclcpp is recommended due to its extended support.

Base ROS2 C++
TensorRT (CUDA)
OpenVINO
ONNX Runtime
TFLite

Installation & Demo (C++)

Check this URL.


Topic

Subscribe

  • image_raw (sensor_msgs/Image)

Publish

  • bounding_boxes: Output BoundingBoxes like darknet_ros_msgs (bboxes_ex_msgs/BoundingBoxes)

    ※ If you want to use darknet_ros_msgs , replace bboxes_ex_msgs with darknet_ros_msgs.

yolox_topic


Parameters

  • Check launch files.

Composition

  • Supports C++ only.


Reference

@article{yolox2021,
  title={YOLOX: Exceeding YOLO Series in 2021},
  author={Ge, Zheng and Liu, Songtao and Wang, Feng and Li, Zeming and Sun, Jian},
  journal={arXiv preprint arXiv:2107.08430},
  year={2021}
}

Contributors


About writer

yolox-ros's People

Contributors

ar-ray-code avatar fateshelled avatar kazuhito00 avatar swiftfile avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

yolox-ros's Issues

Green Screen when launching yolox_ros_py

Hello,

When I run yolox_ros_py on my Jetson Nano, I encounter a green screen like in the screenshot. This happens when using yolox_nano_torch for both the cpu and gpu versions - the Docker container I'm using only has PyTorch, so I can't run the other options. I've checked running a GStreamer application, and that works both in the native environment and in the Docker container I'm running yolox_ros in - I think the issue might be with v4l2 or CvBridge, but I'm not entirely sure. Is there an easy way to apply GStreamer instead?
PXL_20221026_012229838
I've tried using the Dockerfile for Jetson Nano found in the yolox_ros_cpp folder, but the build fails at the 19th and 21st build commands (installing the onnxoptimizer from git and installing YOLOX from git) - if you have this image hosted on Dockerhub, I should be able to test and see if that will work by just downloading the built image.

How to use this in Ros Melodic?

Hi!Thanks for your awsome contribution.
if i want to compile and use this code in ubuntu 18.04&Ros Melodic,should i change something?
hoping your reply!
こんにちは!あなたの素晴らしい貢献に感謝します。
このコードをubuntu18.04Ros Melodicでコンパイルして使用したい場合、何かを変更する必要がありますか?
お返事をお待ちしております!

Issue with Installing OpenVINO

Issue Description:
I attempted to install OpenVINO using the command sudo apt install ./openvino-2022-raspbian-bullseye-arm64-0.1.0-20221219.deb as mentioned in the documentation link.

However, during the installation process, I encountered the following error:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package openvino-2022-raspbian-bullseye-arm64:arm64
E: Couldn't find any package by glob 'openvino-2022-raspbian-bullseye-arm64:arm64'
E: Couldn't find any package by regex 'openvino-2022-raspbian-bullseye-arm64:arm64'

Error Details:
It appears that the installation process is unable to find the package openvino-2022-raspbian-bullseye-arm64:arm64. The error message suggests a possible issue with dependency resolution, and it specifically mentions a missing dependency: libusb-1.0-0-dev:arm64.

The following packages have unmet dependencies:
openvino-2022-raspbian-bullseye-arm64:arm64 : Depends: libusb-1.0-0-dev:arm64 but it is not installable
E: Unable to correct problems, you have held broken packages.

Edit YOLOX pth/exp values without changing launch file

Hello,

Is it possible to specify parameters in the launch file (like those in the title) via command line arguments? Or do I have to go into the launch.py and manually edit the launch_ros.actions.Node parameters? Thank you.

Run in melodic

Sorry, I want to ask how this project works on melodic. I reported an error directly to catkin make. Before catkin make, I executed the following two commands to use Python 3
catkin config -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so

catkin config --instal
Screenshot from 2022-03-08 19-35-00
l

No module named 'bboxes_ex_msgs'

Hi, I try to run the demo of python version and want to check the result by typing "ros2 topic echo /yolox/bounding_boxes", but it shows "No module named 'bboxes_ex_msgs". I don't know why, please have a look , thank you very much!
1

TesorRT Wrong version

Hello author, I downloaded TensorRT-8.5.1.7, but he shows the wrong version, this is an error message, how do I change to 8.5.1.7

How to change the topic?

Hello~ I'm a student trying to use this YOLOX-ROS (batch : ros1) in a program. But the robot publish Image from 'drone_0/Scene', so how can i change the code to adapt this fantastic source to the robot?
thx a lot

Issue with YOLOX-ROS TensorRT Conversion: CUDA Compatibility Error

Hello,

I am working on converting the YOLOX Tiny model to TensorRT format using the YOLOX-ROS package. However, I encountered a CUDA compatibility error during the conversion process. The command I used was:

./src/YOLOX-ROS/weights/tensorrt/convert.bash yolox_tiny 16

The script seemed to initiate correctly, but then it terminated with the following error message:

Cuda failure: forward compatibility was attempted on non supported HW
./src/YOLOX-ROS/weights/tensorrt/convert.bash: line 37:  8669 Aborted                 (core dumped) /usr/src/tensorrt/bin/trtexec --onnx=$SCRIPT_DIR/../onnx/$MODEL.onnx --saveEngine=$SCRIPT_DIR/$MODEL.trt --fp16 --verbose --workspace=$((1<<$TRT_WORKSPACE))

This error suggests a compatibility issue with my hardware and CUDA. I am wondering if you could provide some insights or guidance on how to resolve this issue. Here are some details about my setup:

Any help or suggestions to fix this compatibility issue would be greatly appreciated. Thank you for your time and assistance.

resize Assertion failed

I got the following error when ran it on the host with cpp TensorRT.

scorpion@scorpion-Alienware-15-R2:~/ros2_ws$  ros2 launch yolox_ros_cpp yolox_tensorrt.launch.py     model_path:=install/yolox_ros_cpp/share/yolox_ros_cpp/weights/tensorrt/yolox_nano_480x640.trt     model_version:="0.1.0" 
[INFO] [launch]: All log files can be found below /home/scorpion/.ros/log/2022-11-24-16-40-08-932533-scorpion-Alienware-15-R2-339792
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [component_container-1]: process started with pid [339805]
[component_container-1] [INFO] [1669326009.316779835] [yolox_container]: Load Library: /opt/ros/foxy/lib/libv4l2_camera.so
[component_container-1] [INFO] [1669326009.325636382] [yolox_container]: Found class: rclcpp_components::NodeFactoryTemplate<v4l2_camera::V4L2Camera>
[component_container-1] [INFO] [1669326009.325722473] [yolox_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<v4l2_camera::V4L2Camera>
[component_container-1] [INFO] [1669326009.336747397] [v4l2_camera]: Driver: uvcvideo
[component_container-1] [INFO] [1669326009.336786022] [v4l2_camera]: Version: 331580
[component_container-1] [INFO] [1669326009.336796181] [v4l2_camera]: Device: Integrated_Webcam_HD: Integrate
[component_container-1] [INFO] [1669326009.336804645] [v4l2_camera]: Location: usb-0000:00:14.0-7
[component_container-1] [INFO] [1669326009.336812451] [v4l2_camera]: Capabilities:
[component_container-1] [INFO] [1669326009.336820553] [v4l2_camera]:   Read/write: NO
[component_container-1] [INFO] [1669326009.336828098] [v4l2_camera]:   Streaming: YES
[component_container-1] [INFO] [1669326009.336840005] [v4l2_camera]: Current pixel format: YUYV @ 640x480
[component_container-1] [INFO] [1669326009.336998684] [v4l2_camera]: Available pixel formats: 
[component_container-1] [INFO] [1669326009.337010794] [v4l2_camera]:   YUYV - YUYV 4:2:2
[component_container-1] [INFO] [1669326009.337019023] [v4l2_camera]:   MJPG - Motion-JPEG
[component_container-1] [INFO] [1669326009.337026625] [v4l2_camera]: Available controls: 
[component_container-1] [INFO] [1669326009.337038769] [v4l2_camera]:   Brightness (1) = 0
[component_container-1] [INFO] [1669326009.337049786] [v4l2_camera]:   Contrast (1) = 0
[component_container-1] [INFO] [1669326009.337060041] [v4l2_camera]:   Saturation (1) = 64
[component_container-1] [INFO] [1669326009.337846170] [v4l2_camera]:   Hue (1) = 0
[component_container-1] [INFO] [1669326009.337880268] [v4l2_camera]:   White Balance Temperature, Auto (2) = 1
[component_container-1] [INFO] [1669326009.337893778] [v4l2_camera]:   Gamma (1) = 100
[component_container-1] [INFO] [1669326009.337905088] [v4l2_camera]:   Power Line Frequency (3) = 2
[component_container-1] [INFO] [1669326009.338695580] [v4l2_camera]:   White Balance Temperature (1) = 4600
[component_container-1] [INFO] [1669326009.338726639] [v4l2_camera]:   Sharpness (1) = 2
[component_container-1] [INFO] [1669326009.338739338] [v4l2_camera]:   Backlight Compensation (1) = 3
[component_container-1] [INFO] [1669326009.338750403] [v4l2_camera]:   Exposure, Auto (3) = 3
[component_container-1] [INFO] [1669326009.339624995] [v4l2_camera]:   Exposure (Absolute) (1) = 156
[component_container-1] [INFO] [1669326009.339655825] [v4l2_camera]:   Exposure, Auto Priority (2) = 1
[component_container-1] [INFO] [1669326009.339665697] [v4l2_camera]: Time-per-frame support: YES
[component_container-1] [INFO] [1669326009.339673897] [v4l2_camera]:   Current time per frame: 1/30 s
[component_container-1] [INFO] [1669326009.339682343] [v4l2_camera]:   Available intervals:
[component_container-1] [INFO] [1669326009.339699280] [v4l2_camera]:     MJPG 848x480: 1/30
[component_container-1] [INFO] [1669326009.339712384] [v4l2_camera]:     MJPG 960x540: 1/30
[component_container-1] [INFO] [1669326009.339721262] [v4l2_camera]:     MJPG 1280x720: 1/30
[component_container-1] [INFO] [1669326009.339730045] [v4l2_camera]:     MJPG 1920x1080: 1/30
[component_container-1] [INFO] [1669326009.339738841] [v4l2_camera]:     YUYV 160x120: 1/30
[component_container-1] [INFO] [1669326009.339747385] [v4l2_camera]:     YUYV 320x180: 1/30
[component_container-1] [INFO] [1669326009.339755745] [v4l2_camera]:     YUYV 320x240: 1/30
[component_container-1] [INFO] [1669326009.339763888] [v4l2_camera]:     YUYV 424x240: 1/30
[component_container-1] [INFO] [1669326009.339772153] [v4l2_camera]:     YUYV 640x360: 1/30
[component_container-1] [INFO] [1669326009.339780395] [v4l2_camera]:     YUYV 640x480: 1/30 1/30
[component_container-1] [ERROR] [1669326009.364024554] [v4l2_camera]: Failed setting value for control White Balance Temperature to 4600: Input/output error (5)
[component_container-1] [ERROR] [1669326009.370262533] [v4l2_camera]: Failed setting value for control Exposure (Absolute) to 156: Input/output error (5)
[component_container-1] [INFO] [1669326009.371367868] [v4l2_camera]: Starting camera
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/v4l2_camera' in container '/yolox_container'
[component_container-1] [INFO] [1669326009.381502264] [yolox_container]: Load Library: /home/scorpion/ros2_ws/install/yolox_ros_cpp/lib/libyolox_ros_cpp_components.so
[component_container-1] [INFO] [1669326009.509412548] [yolox_container]: Found class: rclcpp_components::NodeFactoryTemplate<yolox_ros_cpp::YoloXNode>
[component_container-1] [INFO] [1669326009.509461932] [yolox_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<yolox_ros_cpp::YoloXNode>
[component_container-1] [INFO] [1669326009.513420278] [yolox_ros_cpp]: initialize
[component_container-1] [INFO] [1669326009.514141089] [yolox_ros_cpp]: Set parameter imshow_isshow: 1
[component_container-1] [INFO] [1669326009.514170270] [yolox_ros_cpp]: Set parameter model_path: 'install/yolox_ros_cpp/share/yolox_ros_cpp/weights/tensorrt/yolox_nano_480x640.trt'
[component_container-1] [INFO] [1669326009.514198985] [yolox_ros_cpp]: Set parameter class_labels_path: ''
[component_container-1] [INFO] [1669326009.514240051] [yolox_ros_cpp]: Set parameter num_classes: 80
[component_container-1] [INFO] [1669326009.514256483] [yolox_ros_cpp]: Set parameter conf: 0.300000
[component_container-1] [INFO] [1669326009.514283430] [yolox_ros_cpp]: Set parameter nms: 0.450000
[component_container-1] [INFO] [1669326009.514321736] [yolox_ros_cpp]: Set parameter tensorrt/device: 0
[component_container-1] [INFO] [1669326009.514336711] [yolox_ros_cpp]: Set parameter openvino/device: CPU
[component_container-1] [INFO] [1669326009.514348913] [yolox_ros_cpp]: Set parameter onnxruntime/use_cuda: 1
[component_container-1] [INFO] [1669326009.514360754] [yolox_ros_cpp]: Set parameter onnxruntime/device_id: 0
[component_container-1] [INFO] [1669326009.514372519] [yolox_ros_cpp]: Set parameter onnxruntime/use_parallel: 0
[component_container-1] [INFO] [1669326009.514384381] [yolox_ros_cpp]: Set parameter model_type: 'tensorrt'
[component_container-1] [INFO] [1669326009.514412877] [yolox_ros_cpp]: Set parameter model_version: '0.1.0'
[component_container-1] [INFO] [1669326009.514426783] [yolox_ros_cpp]: Set parameter src_image_topic_name: '/image_raw'
[component_container-1] [INFO] [1669326009.514450895] [yolox_ros_cpp]: Set parameter publish_image_topic_name: '/yolox/image_raw'
[component_container-1] [INFO] [1669326009.612488226] [yolox_ros_cpp]: Model Type is TensorRT
[component_container-1] [INFO] [1669326009.635604500] [v4l2_camera]: using default calibration URL
[component_container-1] [INFO] [1669326009.635723008] [v4l2_camera]: camera calibration URL: file:///home/scorpion/.ros/camera_info/integrated_webcam_hd:_integrate.yaml
[component_container-1] [ERROR] [1669326009.635866041] [camera_calibration_parsers]: Unable to open camera calibration file [/home/scorpion/.ros/camera_info/integrated_webcam_hd:_integrate.yaml]
[component_container-1] [WARN] [1669326009.635908438] [v4l2_camera]: Camera calibration file /home/scorpion/.ros/camera_info/integrated_webcam_hd:_integrate.yaml not found
[component_container-1] invalid arguments path_to_engine: install/yolox_ros_cpp/share/yolox_ros_cpp/weights/tensorrt/yolox_nano_480x640.trt
[component_container-1] [INFO] [1669326009.651568464] [yolox_ros_cpp]: model loaded
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/yolox_ros_cpp' in container '/yolox_container'
[component_container-1] terminate called after throwing an instance of 'cv::Exception'
[component_container-1]   what():  OpenCV(4.2.0) ../modules/imgproc/src/resize.cpp:4048: error: (-215:Assertion failed) inv_scale_x > 0 in function 'resize'
[component_container-1] 
[ERROR] [component_container-1]: process has died [pid 339805, exit code -6, cmd '/opt/ros/foxy/lib/rclcpp_components/component_container --ros-args -r __node:=yolox_container -r __ns:=/'].

Ubuntu: 20.04
OpenCV: 4.2.0

Cannot create src directory in ros2_ws

After pulling the docker image for OpenVINO installation, the ros2_ws does not contain a src folder and I do not have permission to create it.
Trying with su - asks for user password I dont have.

tensorrt convert.bash error

以下の手順で
YOLOX-ROS/yolox_ros_cpp/docker/tensorrt/ にあるDockerfileを使って
docker コンテナを作成、実行し、'tensorrt/convert.bash' を実行するとエラーが出ました。

cd ~/ros2_ws/src
git clone --recursive https://github.com/Ar-Ray-code/YOLOX-ROS -b humble

cd YOLOX-ROS/yolox_ros_cpp/docker/tensorrt/

docker build \
    --build-arg TENSORRT_VERSION=8.6 \
    --build-arg CUDNN_VERSION=8.8 \
    --build-arg PYTHON_VERSION=3.10 \
    -t yolox_tensorrt_image .

docker run \
    --name yolox_tensorrt \
    --network host \
    --runtime nvidia \
    -e DISPLAY=$DISPLAY \
    -v $HOME/ros2_ws:/root/ros2_ws \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    --device /dev/video0:/dev/video0 \
    -w /root/ros2_ws \
    -it \
    yolox_tensorrt_image bash
~/ros2_ws# ./src/YOLOX-ROS/weights/tensorrt/convert.bash yolox_tiny 16
Model Name: yolox_tiny
Workspace size: 16

./src/YOLOX-ROS/weights/tensorrt/convert.bash: line 35: /usr/src/tensorrt/bin/trtexec: No such file or directory

Some trouble in running

Hi,when i running the program , i got some trouble

Could not import "pyqt" bindings of qt_gui_cpp library - so C++ plugins will not be available:
Traceback (most recent call last):
File "/opt/ros/melodic/lib/python2.7/dist-packages/qt_gui_cpp/cpp_binding_helper.py", line 43, in
from . import libqt_gui_cpp_sip
ImportError: dynamic module does not define module export function (PyInit_libqt_gui_cpp_sip)

libgcc_s.so.1 must be installed for pthread_cancel to work

i had already installed the pyqt , how can i solve it ?
Thanks!

Problems while sourcing

It was not possible for me to follow the guide:
source ~/arams_ws/install/local_setup.bash

This command leads to the error:
not found: "/home/marcel/arams_ws/install/yolox_cpp/share/yolox_cpp/local_setup.bash"
not found: "/home/marcel/arams_ws/install/yolox_ros_cpp/share/yolox_ros_cpp/local_setup.bash"

I'm sorry but with my limited ROS2 knowledge I don't know where to search for a solution for this problem.

Connect to gazebo camera

Good morning, first of all thanks for the amazing and interesting work! I was able to run the code on my webcam but I was wondering if it is possible to connect to the camera topics for SITL simulations like with Gazebo. Can you kindly point me in this direction if it is possible?
Thanks again for publishing this code and I wish you a good day.

bugs in bbox

-- ~~  - bboxes_ex_msgs (plain cmake)
-- ~~  - yolox_ros_py
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CMake Error at /opt/ros/noetic/share/catkin/cmake/catkin_workspace.cmake:100 (message):
  This workspace contains non-catkin packages in it, and catkin cannot build
  a non-homogeneous workspace without isolation.  Try the
  'catkin_make_isolated' command instead.
Call Stack (most recent call first):
  CMakeLists.txt:69 (catkin_workspace)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.