본문 바로가기

Robotics/Software Tech.

(148)
python을 이용한 google 검색 데이터 수집 글쎄.. 잘은 모르겠다. 이렇게 접근하고 있는 것이 과연 적절한 방법인지. 어떤 로봇이든 agent든.. 사람이 아닌 기계가 어떤 객체를 이해한다는 것은 무엇을 의미하는가. 영상이든 음성이든 인식을 한다는 것과 이해를 한다는 것은 다르다. 영상을 인식한다는 것은 영상에 나타난 어떤 객체의 특징을 보고 이 객체의 이름이 무엇인지를 기존에 학습한 데이터에서 분류를 하는 것이다. 학습하지 않은것은 당연히 무엇인지 알 수 없다. 지금 하고자 하는 것은 인식의 문제가 아니라, 인식이 이루어지고 난뒤에 그 객체가 가지는 특성, 개념들을 우리가 임의로 정의하지 않고 얻을 수 있는 방법이 무엇이 있을까를 고민하다가, 매일 접하는 웹에서 데이터를 일단 얻어보기로 했다. 아무래도, 객체의 특성이나 객체들이 개념들이 for..
python으로 구현한 google crawling and lexical semantics를 통한 어휘간 관계 그래프 표현 (위 이미지는 아래글과 관계가 없음) 최근에 간단한(?) 실험을 하나 해보려고 하는게 하나 있다. 간단하게 설명하면 특정사물을 지칭하는 단어와 그 단어와 이웃하는 단어들간의 관계를 Web에서 크롤링한 데이터로부터 확률적인 값으로 위의 그림과 같이 네트워크를 구축한 뒤에, 입력으로 어떤 두 사물의 이름을 넣었을때 그 사물이름간의 관계를 확률적인 값으로 얻을 수 있을까이다. 복잡한 구조는 아니다. 단순히 단어간의 근접도와 빈도만으로 네트워크를 형성하는 것이니. 실험은 Google 검색엔진에 특정 keyword로 query를 던지고, 나오는 결과의 URL을 Parsing하여 모두 모은뒤에, 각 URL을 방문하여 해당 페이지의 Text 데이터를 긁어온다. 그 Text 데이터에서 html및 script, css등..
텍스트 마이닝(Text Mining) 텍스트 마이닝(Text Mining) 이란 비정형 텍스트 데이터에서 정보를 찾아내는 기술이다. 이 기술은 자연어처리에 기반하고 있는데, 자연어라는 것은 인간이 사용하는 언어인데, 자연어처리가 필요한 이유는 인간이 쓴는 자연어를 컴퓨터에서 이해시키기 위해서 필요한 처리를 말한다. 아래는 공개 또는 상업용 text mining program들이다. Commercial Text Mining / Text Analytics Software ActivePoint, offering natural language processing and smart online catalogues, based contextual search and ActivePoint's TX5(TM) Discovery Engine. Aiaioo L..
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로 구성할 수 있는 방법을 찾아봤고, 어느정도 시도해 볼만하..
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..
Intel IPP(Integrated Performance Primitives)의 성능 향상정도 아래 그림처럼, 일반적인 단일 쓰레드에서 처리하는 경우보다 훨씬 좋은 성능을 IPP를 통해 만들수 있다는 것을 보여준다. 라이브러리가 최적화 되어있어서, 실질적으로 우리가 OpenMP로 병렬처리 하도록 만드는것보다 성능이 좋다고 한다. 운영 체제 이제 Mac OS*용 지원이 제공됩니다! Mac OS*용 인텔® 통합 성능 프리미티브(IPP) 5.1을 통해 Windows* 및 Linux*에서 사용하던 동일한 라이브러리 API 및 함수를 사용하여 손쉽게 사용자 애플리케이션을 Mac OS*로 포팅할 수 있습니다. 개발 환경 인텔 IPP는 Microsoft Visual Studio*, Xcode*, Eclipse*, GCC 및 인텔® C++ 컴파일러와 같은 인기 있는 개발 환경 및 도구에서 간편하게 사용하고 통합..
Image Processing용 Sample image 예전에는 별로 관심이 없었던 영상처리를 앞으로 쓰게 될 일이 많을것같아, 처음부터 공부를 하고 있다. 만들 소프트웨어의 구조를 대략 설계해놓고, 어느정도 기반을 잡아놓은 상태에다가 영상처리를 공부하면서 그 기능을 하나씩 추가해 나가려고 한다. 영상처리쪽은 이미 많은 분들이 발을 담고 있는지라, 인터넷에 자료가 엄청 많기때문에, 자세한 내용은 블로그에 담지 않기로 한다. 이미 샘플로 많이 알려진(?) 이미지이다. 다운로드 하실분은 마우스 오른쪽버튼으로 '다른이름으로 저장' 하시면 되겠습니다. bmp파일 원본을 그대로 올렸다.