본문 바로가기

Robot/Robot Program - ROS

ROS melodic에서 영상인식 YOLOv3 패키지 세팅하기

최근 여러글에서 이야기했지만, 제가 지금은 (임시.ㅠㅠ.로) 한양대 에리카에 있습니다. 여러 고마운 분들의 배려로 아주 다양한 재미있는 일들을 경험중이랍니다. 그 중에 또 하나 멋진 일은 아주 멋진 대학원생들과 함께 여러 일들을 할 수 있다는 것이죠. 또 어떤 친구는 강화학습과 실제 로봇의 접목에 엄청난 고민을 하면서 빠르게 성장중입니다. 어떤 친구들은 영상인식 관련 다양한 스킬셋을 갖춰가고 있습니다. 또 어떤 친구들은 ROS와 가제보의 사용능력이 참 좋구요. 또 어떤 친구들는 딥러닝 관련 능력을 엄청 배양중입니다. 이런 친구들과 함께 지내다 보니, 제가 나이와 경험만으로 더 이상 이야기할 수는 없더라구요. 그래서 그 친구들의 성과를 또 옆에서 구경하면서 배워가고 있답니다. 그러다가 문득 이 친구들의 성과를 혹은 이 친구들의 github이나 블로그를 제가 소개하고 그 사용법을 설명하면 좋겠다고 생각한 거죠. 그래서 오늘은 그 1탄으로 ROS Melodic에서 YOLOv1을 동작하게끔 해주는 패키지를 만들어서 자신의 github에 공유하고 있는 한 친구의 작품을 소개하려고 합니다.

일단 사전 준비 작업으로 먼저, cv-camera 패키지를 설치합니다. 노트북에 달려있는 카메라를 사용하기 위해서이지요.

그리고, Melodic이 설치되는 Ubuntu 18.04에 설치되어 있는 opencv의 ROS를 이어주는 CvBridge도 설치(sudo apt-get install ros-melodic-cv-bridge)합니다.

그리고 이제 제가 이야기한 제가 있는 연구실의 정말 많은 멋진 연구생 중 한명의 github에 들어갑니다. 이미 이 친구가 YOLOv3-ROS라는 패키지를 적절히 생성했네요. 그런데 이 패키지가 GPU 사용자들용으로만 만들어져있고 본인의 프로젝트 위주로 되어 있어서, 제가 다시 fork해서 CPU 사용자도 weight를 돌릴 수 있도록 변경했습니다.

그래서 제 github에서 받으면 CPU에서도 구동 가능합니다.

그리고 간단히 build 하시구요~

아~ 그런데 torch로 되어 있어서 torch 설치 안내페이지로 가서 조금 아래로 가시면~

이렇게 자기의 환경에 맞춰 설치 명령을 얻을 수 있습니다.

그리고 GOGO~~~

흠... 또 하나~ scikit-image도 설치합니다. 음... 언제 한 번 이 패키지도 강좌를 하고 싶네요^^

아.. 이제 중용한 일이 남았죠.. 패키지의 models 폴더에서 wget 명령으로 yolov3.weight를 받습니다.~

그리고, detector.launch 파일을 찾앗 바꿔줍니다. 만약 tiny를 쓰고 싶다면 그렇게 변경하시면 됩니다.

그리고 즐길 시간입니다. roscore~~~

그리고 camera_node 실행~

그리고, detector.launch 실행~

rqt_graph의 결과는 심플합니다. 카메라노드가 image_raw 토픽을 던져주고, detector_manager가 YOLOv3를 구동해서 인식을 하는 거죠~

이제 rqt_image_view를 실행하신다음

토픽을 detections_image_topic으로 하면~

짠~~~^^ 앞으로 시간이 나면 제 주변 대학원생들의 성과를 하나씩 소개해드리도록 하겠습니다. 아마 어떤 회사, 어떤 연구원에서든 멋지게 적응하며 소속된 기관의 생산성을 향상시켜 줄 것입니다.^^

반응형