본문 바로가기

Robotics

(367)
라이프 로깅(Life Logging) 올해 초에 문득 생각이 나서 메모해 놨다가 잠깐 정리해 본것이 있다. 바로 라이프 로깅(life logging)인데, 이 라이프로깅에 대한 개념은 이미 1945년에 등장을 했고, 현재에 와서야 네트워크의 발전과 스마트 디바이스의 범용화 덕택에 과거보다 짧은 시간에 더 많은 정보가 공유되고 있다. 난 사람의 마음과 기억의 작용을 모델링하여 시스템을 만들기 위해 연구하고 있다. 그래서, 항상 책을 읽거나 논문을 보거나 잡지를 볼때도 내가 지금 관심을 가지고 있는것의 원천, 마음의 작용은 어떠했고, 30분전, 1시간전에 봤던것중에 내가 기억하고 있는것이 무엇이고, 얼마만큼 기억하며, 그것이 또 내 감정이나 지식과 어떤 복잡한 연관성을 가지면서 동작을 할 지 생각하고 고민한다. 그러다가, 생각이 나는것이 이런 ..
C/C++/MFC 구글 TTS 연동 음성합성 소프트웨어의 경우 AT&T에서 개발한 엔진과 한국어 목소리를 구입하면 대략 이것저것해서 60$정도다. 국내에서 개발한 한글 TTS의 경우는 저 가격의 100배정도 된다. 수백만원이나 하는 음성합성 프로그램을 사용해야 한다. 이래저래 간단하게 합성 프로그램을 사용하려고 해도.. 싸거나 무료로 공개하는 프로그램의 경우, 음질과 목소리는 불쾌감을 일으키기 충분할 만큼 질이 좋지않다. 하지만, 몇가지 제약조건이 있긴하지만, 목소리나 음질이 상당히 괜찮으면서도 다양한 언어음성을 제공하는 구글 TTS. 안드로이드 플랫폼의 경우 API가 제공된다. 아래사이트를 보면 된다. http://weston.ruter.net/projects/google-tts/ http://android-developers.blogs..
MySQL 5.5.9 와 MFC 연동 지난주부터 MySQL과 C++을 연동해서 프로그램을 하나 만들어 보려고 하는데, MySQL을 처음 접해보는 나로써는 처음에 어떻게 접근해야할지부터 고민해야 했다. 처음에는 그냥 직접 데이터베이스 구조를 만들어 볼까 했는데.. 바보같은 짓이었다. 그냥 메모리 구조를 잡아놓고 메모리에 저장하는것은 관계없었지만, 파일로 저장해놓을려고 하니.. 내가 원하는 데이터를 검색하는 것부터 정렬하는게 만만치 않았다. 처음부터 만들어 보려고 했던이유는, 이런게 있다는 것은 알고 있어도, 이것을 내가 얼마만큼 활용할 수 있고, 어떻게 활용하는지 잘 아는가의 문제였다. 처음부터 배우는것에 대한 두려움이랄까... 그런것도 있었고... 기존에 하던것을 멈추고. MySQL로 구성할 수 있는 방법을 찾아봤고, 어느정도 시도해 볼만하..
JAVA vs C++ 이것이 의미가 있는것인지는 모르겠다. 언어마다 서로 장단점이 있으니 좋다 나쁘다를 판가름 하는것이.. 나는 90년도 후반에 처음 JAVA를 접했는데, 그당시에는 기껏해봐야 펜티엄 2, 펜티엄 3정도 되는 사양의 컴퓨터를 사용하고 있었는데, JAVA가 이식성이 좋아서(O/S 독립적) 앞으로 많이 사용할 것이라는 이야기는 그당시에도 많이 들었다. 하지만, C나 C++에서 생성된 executable file의 실행속도에 비하면 JAVA는 너무나도 느렸기에 나는 JAVA는 선호하지 않았다. 그당시에 JAVA 버젼이 2.0인걸로 기억한다. 최근에 여러 프로그래머들의 블로거의 글들이나 실제 엔지니어들의 이야기를 들어보면, 이제 상황은 조금 달라진것 같다. JAVA가 C++과 대등한 속도를 내거나 오히려 더 빠른 속..
Microsoft KINECT 구입 테스트 요즘 한창 이슈가 되고 있는 Microsoft XBox의 비젼센서 모듈인 KINECT. 이것이 출시되자마자 해킹이되어, 이것을 이용한 다양한 어플리케이션들이 유튜브사이트를 통해 소개되고 있다. 리눅스는 물론이고 윈도우 드라이버까지 이미 해당 WIKI를 통해 공개되어 있다. * openkinect wiki : http://openkinect.org/wiki/Main_Page * Window, Linux, OSX 드라이버 다운로드 : https://github.com/OpenKinect/libfreenect/ - 다운받아서 압축을 풀어보면, platform이라는 폴더안에 Windows 드라이버도 있다. - 드라이버는 Audio, Camera, Motor 세가지가 있다. * Visual Studio 2008 ..
사람은 어떻게 기억하는가.. 명확한 답이 없는 사람의 뇌.. 그 단백질 덩어리가 궁금한 것이 아니고, 그 속에서 일어나는 일들이 참으로 궁금하다... 어쩌면 뇌속에서 일어나는 일들을 과학적으로 밝히는 일은 영혼의 실체를 밝히는 일만큼이나 어려울지 모르겠다.. 가장 궁금한것은, 사람의 기억은 어떻게 구성되어 있느냐이다. 우리가 본 것, 느낀것(감정 또는 촉감), 소리 등등.. 이것은 뇌에서 어떤 구조로 기억되어 있느냐이다. 내가 본 몇가지 심리학이나 뇌과학 책에서는 기억이라는 부분을 몇가지로 의미있는 단위로 분류를 해놓기는 했지만, 그것이 어떻게 저장되어 있는지 명확하게 설명하는 책은 아직 보지 못했다.(못 찾았다가 맞나? 내가 몰랐을 수도 있으니...) 내가 결국 하고자 하는것은, 과거 부분적인 기억들이 서로 연결되어, 어떤 문제 ..
Intel C++ Compiler 11.1로 Histogram stretching 병렬처리 하기 Intel C++ 컴파일러 11.1을 설치하고, 정수형 Vector Class를 이용하여 이미지 처리를 병렬화 하는 프로그램을 구현해 봤습니다. 성능은 대략 Intel Core2Duo E8400 3.0G에서 약 5~6배의 성능 향상 효과를 보였습니다. 테스트를 위해 사용한 이미지는 lena.bmp 512 x 512 grayscale 이미지입니다. 원본 이미지 Histogram stretching 결과 이미지 일반적인 SISD(Single Instruction Single Data)형태로 Histogram stretching을 구현한것과 SIMD 형태로 구현한 코드의 core 부분의 차이를 보십시오. //영상의 histogram에서 최소값과 최대값을 구하는 함수 int imageProcess::getMin..
Redmine 활용 개발그룹의 프로젝트 관리를 위해 사용하는 것 뿐만아니라, 연구그룹에서의 프로젝트 및 연구관리를 효율적으로 할 방법을 찾다가 Redmine을 사용해 보기로 했다. 사실 Redmine이 Bug tracking project management로 시스템이 분류되고 있지만, 기능이 다양한지라 그냥 Dokuwiki나 mediawiki보다 프로젝트 단위로 관리할 수 있는 기능을 포함하고 있는 Redmine을 사용하는 것이 더 유리하다는 판단이 섰다. 구축환경은 Windows Server 2008 이다. 일단 설치를 위해 http://bitnami.org 에서 windows installer 버젼을 다운 받는다. 다운로드는 http://bitnami.org/stack/redmine 에서 받을 수 있다. 이글을 올리는..