Texas Instrument 사의 Davinci 시리즈에 새로운 제품군이 추가되었습니다. 비교적 저가형에 속하는 DM3x 군인데요, 모델 번호는 DM365 입니다. 모델 번호에서 풍기듯이 DM355의 업그레이드 버전입니다만, 많은 기능이 추가되어 단순히 DM355의 업그레이드 버전이라고만 보기에는 어렵습니다.

블록 다이어그램을 한 번 보죠.
전체적인 구조는 DM355와 유사합니다. ARM9 프로세서가 Front에 배치되어 밖에서 보기에는 ARM9 프로세서처럼 보입니다. 하지만 뒤에 DSP가 존재하여 MPEG-4/JPEG을 실시간 인코딩해 줍니다.
새롭게 추가된 기능 Video Processing Subsystem 항목입니다. 이곳에 있는 ISP에서는 크게 두 가지 기능이 눈길을 끕니다. 첫번째는 face detection 입니다. 하드웨어적으로 얼굴 검출 알고리즘을 구현해 두어, 별도의 프로그램을 작성하지 않아도, 320x240 해상도에서 30fps 속도로 얼굴을 검출, 추적합니다. 복수 개의 얼굴도 가능하며, 스펙상으로는 최대 20여명까지 가능하다곤 합니다만, 320x240 해상도에 20여명의 얼굴이라면 얼굴로만 꽉 차겠죠.
동영상 데모도 찾았습니다. 1분 47초 이후를 보시면 얼굴 검색 알고리즘이 동작하는 부분을 확인할 수 있습니다.



두 번째 기능은 Image stabilization 입니다. 소위 손떨림 방지라고도 하는데요, 모션 벡터를 실시간으로 구해 흔들리는 이미지를 흔들리지 않게 보여주는 기능이 하드웨어적으로 추가되었습니다.

이 밖에도 렌즈 왜곡을 보정해주는 기능도 하드웨어적으로 들어가 있어 비전 전공자들에게 많은 부분의 자유도가 생겨났습니다. 위드로봇에서도 조금 한가해지면 DM365로 새로운 모듈 보드를 만들어볼 계획을 가지고 있습니다.


Posted by getcome
블로그에 얼굴을 찾고 이를 추적하고 싶은데 어떻게 해야 하냐고 문의하신 분이 있어 현재 시점에서 비교적 잘 되는 알고리즘을 소개합니다.

사용자 삽입 이미지

CMU(항상 그렇듯 ^^)에서 작업한 내용으로 Active Appearance Model(AAM)을 사용하여 얼굴을 추적하는 알고리즘입니다. 얼굴의 형태는 deformable body로 모델되는데 기존 모델을 계속적으로 변경하는 얼굴에 어떻게 fit 시킬 것인지 방법을 제시해 줍니다. 핵심은 물체는 3D 공간 상에서 움직이지만 영상은 2D로 projection 되어 있기 때문에 이 간극을 어떻게 처리할 것인가 입니다.
긴말 필요없이 해당 논문을 첨부해 둡니다.



아래 동영상은 비교적 예전에 발표된 AAM 방식의 얼굴 추적 데모 동영상입니다. 요즘은 이보다 훨씬 더 잘된답니다. ^^;




Posted by getcome
2008년 작업2008.05.14 11:04
사용자 삽입 이미지

4월 말에 지폐를 인식할 수 있는 알고리즘 및 하드웨어를 개발해 달라는 의뢰가 들어왔습니다.
지폐의 방향, 위치, 오염도에 상관없이 강인하게 지폐를 인식해야 하는데, 일단 PC에서 알고리즘을 테스트하기 위해 구현한 시스템입니다. 추후 Smart-I 플랫폼을 베이스로 임베디드화를 진행하게 될 것 같습니다.

우선은 일반 웹캠을 사용하였고, 웹캠에서 받은 이미지를 토대로 천원, 오천원, 만원권을 인식합니다. 지폐는 앞면, 뒷면 상관없이 또한 방향에도 상관없이 인식합니다. 데모에서는 인식할 때 해당 지폐의 이미지가 출력되도록 해 두었습니다.

동영상으로 데모를 보시기 바랍니다.


Posted by getcome
Python2008.01.24 01:01
공개용 영상 처리 라이브러리 OpenCV는 발표 초기에는 그다지 관심을 끌지 못하더니 2000년대 중반에 들어서는 많은 곳에서 관심을 가지는 듯 하다. Withrobot Lab에서도 몇 번 myVision을 지원하는 방법을 고민했었고, 실제로 내부적으로는 OpenCV와 연동해서 사용하기도 했었다.

오늘은 OpenCV 라이브러리를 Visual C가 아닌 Python에서 사용하는 방법을 정리해 두고자한다. 다행히 OpenCV는 python에서 바로 사용할 수 있도록 준비가 완벽하게 되어있다. Visual C가 아닌 python으로 작업하면 알고리즘 본연에 좀 더 집중해서 빠르게 결과를 확인할 수 있다.

자, 우선 python 2.5는 설치되어있다고 가정한다. 만일 설치가 안되어 있다면 http://www.python.org/download/ 에서 해당 파일을 받아 설치한다.

OpenCV는 이곳에서 내려 받는다. 기본 설치 폴더는 Program Files\OpenCV 가 된다.

그다음 아래의 python OpenCV 모듈을 내려받아 압축을 풀면 OpenCV 폴더가 나온다. 이 폴더를 python의 Lib\site-packages 밑에 복사한다.

이것으로 설치는 완료되었다. 이제 OpenCV\Samples\Python 폴더에 있는 코드를 실행시켜본다. 얼굴 찾는 예제인 facedetect.py 를 실행해 보자. 영상처리 연구자들의 연인 lena에서 얼굴 위치를 찾아 붉은색으로 표시한다.


사용자 삽입 이미지

Posted by getcome
2007년 과제/Smart-I2007.10.20 04:40
사용자 삽입 이미지

TMDXEVM355



TI사 홈페이지에 가면 잘 나와있지만 이상하게 네트웍에서 보면 이드의 노트북에서는 색상이 모두 깨져서 나옵니다. 그래서 다운 받아 블로그에 올려두니 비슷한 증상을 보이는 분들은 이곳에서 보시면 되겠죠.
간단한 소개에 해당하는 짧막한 비디오 클립이지만 메뉴얼을 읽기 전에 간단히 감을 잡는데 도움이 됩니다.


TMS320DM355 Product Overview - Designing for Low-Power High Definition Applications



TMS320DM355 Architecture Technical Overview



TMS320DM355 Codec Engine Overview

TMS320DM355 Digital Video Evaluation Module
Posted by getcome
2007년 과제/Smart-I2007.09.14 11:38
사용자 삽입 이미지

Smart-I Embedded Vision Board


가로 5.5cm 세로 5.5cm에 1.3M급 CMOS 카메라가 내장되고 영상 처리를 자체적으로 수행하는 임베디드 영상 처리 보드 Smart-I의 PCB가 드디어 제작되었습니다. 크기면에서 봤을 때 세계에서 가장 작은 영상 처리용 임베디드 보드가 아닐까 싶습니다. 많은 시간을 허비했었는데 9월 추석 전에 나올 수 있게 되어 올해 안에 여러 과제에 투입이 될 수 있을 것 같습니다.
현재는 Non-OS 방식으로 firmware를 작성하여 동작하고 있으며, 클라이언트의 요청에 따라 WinCE를 올린 버전도 생각 중에 있습니다. 여러 가지 모델을 추가하여 저렴한 가격에 공급할 수 있도록 할 생각입니다. Smart-I V1.0이 만들어짐과 동시에 바로 V2.0 작업에 착수합니다. V2.0은 크기를 더 줄이고, 영상 전송 속도를 높혀 로봇 머리쪽에 바로 넣어서 사용할 수 있도록 할 생각입니다.

어쨌건 올해 하반기는 이 녀석과 놀아야 할 것 같습니다. 조만간 재미있는 어플리케이션 동영상을 공개하도록 하겠습니다.

현재 이 보드를 사용할 용도는 2D 바코드 인식 장치, PCB 외관 검사 장치 등입니다.
Posted by getcome