6-11 OpenCV에 의한 Color Ball Tracking 컴퓨터 비전

in #kr6 years ago (edited)

자율주행 RC 카를 만들기 위해서 Computer Vision 분야의 어떠한 오브젝트 트래킹 기법이 필요한지 생각해 본지 벌써 일년 반이 넘었다. Daum 사이트에서 아래의 인터넷 주소를 검색 해보면 PixyMon에 대한 필자의 블로그를 읽어 볼 수 있을 것이다. 혹 아래의 인터넷 주소를 클릭할 경우에 경로가 막혀 있다면 따로 인터넷을 열어 url에서 주소를 입력하여 찾아가면 될 것이다.

PixyMon프로그램에 의한 아두이노 비전센서 Pixy 및 Pan/Tilt 메카니즘 설치 I
http://blog.daum.net/ejleep1/318

그 내용을 말로 구구절절 설명할게 아니라 아예 짧게 짤로 요약해보자. 보시면 120% 이해가 되실 것이다.

컬러 볼의 색상을 학습 시킨 후 PixyMon 이 학습된 색상의 컬러 볼을 2개의 서보모터로 구동되는 팬 틸트 메카니즘에 의해 tracking 하는 장난감이다. 벌써 일년 반 전이라 PixyMon 이 상당히 업그레이드되어 발전했으리라. 당시에는 아두이노 코딩 시작한지 불과 2달도 채우지 못했던 완전 깡 초보시절이라 일단 분해 조립을 통해 재미를 좀 보고 힘들기는 했지만
좌충우돌하면서 컬러 볼의 색상 학습까지는 시켜 보았던 기억이 남아 있다. PixyMon 구매 시 USB 케이블을 통해 데스크톱 PC에서 PixyMon 을 제어할 수 있는 소프트웨어를 제공하고 있다. 가격은 거의 10만원 대로 기억한다. 한번 머릿속에 컴퓨터 비전 기술에 대한 강한 임팩트를 한번 주었고 쳐박아 두었는데 오늘 다시 글을 쓰면서 꺼내보았다. 하지만 지금 PixyMon을 가지고 놀고 싶은 마음은 별로 없다. 그 사이 경험이 쌓이면서 눈이 좀 높아진 것 아닌가 하는 생각도 든다.

이미 최근에 face_detect_01.py 파이선 코드로 사람 얼굴과 눈, 고양이 얼굴, 주행 차량 인식을 해보았다. 성공적으로 실행이 잘되어서 기쁜 생각이 든다. 반면에 얼마 전부터 OpenCV-Python Tutorials 사이트에서 Image Processing in OpenCV에서 Changing Color Spaces 편을 눈독들여 눈팅을 해왔었는데 이게 영 말을 들어먹지 않아 집어 치울까 여러번 고민하기도 했었다. 이미 작년에 Jessie 버전을 사용했을 때도 방문해서 시도한 경험이 있었지만 아직도 고작 그 수준의 코딩 실력인가 하고 거의 포기하는 것으로 어저께 돌아섰든 싶다.

그러다가 오늘 차량인식 코드를 핸들링하다가 PiCamera 라이브러리 모듈을 사용하는 face_detect_01.py 의 looping 알고리듬에 Changing Color Spaces 루틴의 알맹이만 쏙 빼다 집어 넣어 보면 어떨까 하는 아이디어가 생각나서 바로 실행에 옮겼다.

noname01.png

이 알맹이 부분만 쏙 빼다가 face_detect_01.py 파이선 코드에 편집해 넣고 아울러 안면 인식이 되면 얼굴에 사각형 표시하는 for loop 루틴도 필요 없으므로 제거하였다.

noname02.png

그런 다음 파일명 color_detect.py를 부여하여 Opencv 폴더에 저장하였다. 한편 터미널 창을 열어서 command line 방식으로 cd Opencv 후 sudo python3 color_detect.py를 실행시키자 믈론 청색 공을 하나 들고 시작해야 할 것이다. 실시킨 결과 청색 공 일부가 노이즈를 탓는지 약간 사라지길래 lower_blue에서 110을 100 그 다음에는 90으로 조정했다. 청색공이라 해도 다 다르니까 사용자가 그 값을 살짝 바꿔서 조정해 줄 필요가 있을 것이다.
3개의 동영상 이미지가 나타난다. image는 Pi 카메라가 찍은 영상 그대로 이고 ᅟmask는 당연히 흑백 영상이다. 청색 공부분이 백색으로 나타난다. 이 mask를 image에 씌워버리면 결과물 res에 청색 공만 나타난다. 주위 창문이라든지 약간의 노이즈가 있을 수 있으나 신경 쓸게 너무 많으므로 뒤를 한번 쓱 돌아다 본 후 별거 아니라 생각되면 무시해 버리면 된다.

블로그 독자들의 편의를 위해 다음사이트에 있는 필자의 블로그 주소에 color_detect.py 파이선 코드를 올려 두었으니 편의를 위해서 참조하기 바란다. 아울러 스팀잇에서 url을 클릭할 경우 막혀 있는 듯하므로 별도로 인터넷을 열어서 url 주소로 열어 보기 바란다. 그 다음 수순은 당연히 2개 이상의 공을 다루는 Juggling 이 아닐까요?
http://blog.daum.net/ejleep1/31

Sort:  

이제 다음 블로그 URL이 잘 열립니다. 감사합니다.
그리고 PixyMon는 얼굴이 공을 따라다니니 강아지처럼 귀엽네요.ㅋ

튀는 힘이 세서 뒤집어지기까지도 해요.

Coin Marketplace

STEEM 0.26
TRX 0.11
JST 0.033
BTC 64359.90
ETH 3105.50
USDT 1.00
SBD 3.87