AForge.NET FRAMEWORK : 유전알고리즘을 C#으로
2012. 3. 9. 21:00ㆍIT, Smart Life
AForge.NET Framework
유전 알고리즘(Genetic Algorithm)을 C#으로 구현해보려고 하는데, 3년전이나 지금이나 C#으로 된 유전 알고리즘 코드는 C++ 코드에 비해서 많지 않은 것 같습니다. C#을 지원하는 플랫폼들은 더 많아졌는데 말이죠. 예전에 MATLAB으로 짠 코드를 C#으로 바꿔보려고 했던 기억도 있고 해서, 이번에 다시 검색을 해봤더니, AForge.NET Framework 라는 것이 있네요.
AForge.NET is an open source C# framework designed for developers and researchers in the fields of Computer Vision and Artificial Intelligence - image processing, neural networks, genetic algorithms, fuzzy logic, machine learning, robotics, etc.
홈페이지 메인의 설명에 따르면, 'AForge.NET은 컴퓨터 비전과 인공지능 분야의 개발자들과 연구자들을 위해 구상된 오픈 소스 C# 프레임워크'라는 군요. 이미지 프로세싱, 뉴럴 네트워크, 유전 알고리즘, 퍼지 로직, 머쉰 러닝, 로보틱스... 어디서 많이 들어본, 그리고 제가 좋아하는 단어들만 다 들어있는 것 같습니다.ㅎㅎ
본 Framework가 어떻게 응용이 되었나, 쓸만한가 싶어서 검색해보니, AForge.NET Framework를 이용해서 C# 프로그래밍을 하신 분들이 많이 계셨습니다. 아쉽게도 대부분은 영상과 증강현실 쪽으로 많이 적용하셨고, 유전 알고리즘 쪽으로 이용하신 분들은 많지 않은 것 같습니다만... ㅜ_ㅜ
본 Framework가 어떻게 응용이 되었나, 쓸만한가 싶어서 검색해보니, AForge.NET Framework를 이용해서 C# 프로그래밍을 하신 분들이 많이 계셨습니다. 아쉽게도 대부분은 영상과 증강현실 쪽으로 많이 적용하셨고, 유전 알고리즘 쪽으로 이용하신 분들은 많지 않은 것 같습니다만... ㅜ_ㅜ
[ AForge.NET Framework 적용 사례 ]
[C#] Aforge.NET 이용하여 동영상 재생(1) (블루네군 블로그)
[C#] Aforge.NET 이용하여 동영상 재생(2) (블루네군 블로그)
증강현실 - Marker Detection 구현 (<Whatisthat>, 김대욱님 블로그)
[C#] Aforge.NET 이용하여 동영상 재생(2) (블루네군 블로그)
증강현실 - Marker Detection 구현 (<Whatisthat>, 김대욱님 블로그)
다운로드 및 설치
유용하게 잘 쓰고 있는 것을 알았으니, 어떤 것인지 나도 한번 써보자~
다운로드 및 소스 확인 고고!!
다운로드 및 소스 확인 고고!!
홈페이지에서 DOWNLOAD를 클릭하여 AForge.NET Framework를 다운 받자
포스팅 현재, AForge.NET Framework 버전은 2.2.4이며, 다운로드 및 설치는 4가지 다운로드 링크 중, 상위 두 가지링크를 통해 진행하실 수 있습니다. 설치는 'Next'신공으로 손쉽게 ^_^*
클릭 들어 간다~ 쭉~쭉~쭉쭉~ 쭉~쭉~쭉쭉~ ㅋㅋㅋ
설치 폴더 내용 확인
설치가 무난하게 잘 이뤄졌다면, C드라이브 내부의 'Program Files' 안에 [ AForge.NET ]폴더가 생성되었음을 확인할 수 있을 것입니다. 아래 그림처럼, C:\Program Files\AForge.NET\Framework\Sources 폴더 내부를 살펴보시면, Framework 중에 유전 알고리즘을 다루고 있는 'Genetic'폴더가 있습니다.
Genetic 폴더를 열어보니, 제법 익숙하고 반가운 단어들이 많이 보이네요~
Chromosome, Fitness Function, Properties, Selection Algorithm....
Genetic 솔루션을 실행시켜보겠습니다.
References에 'AForge'와 'AForge.Math'가 있다는 것을 주목합시다.
이 파일들은 C:\Program FilesForge.NET\Framework\Release\ 에 있고, 소스 또한 C:\Program Files\AForge.NET\Framework\Sources\Math\ 에 있으니, 내용을 확인해봅시다.
이로써, AForge.NET Framework의 'Genetic' 부분(유전 알고리즘)을 사용하거나, 소스코드를 들여다 볼 수 있는 준비가 다 되었습니다!!
Genetic 폴더를 열어보니, 제법 익숙하고 반가운 단어들이 많이 보이네요~
Chromosome, Fitness Function, Properties, Selection Algorithm....
Genetic 솔루션을 실행시켜보겠습니다.
References에 'AForge'와 'AForge.Math'가 있다는 것을 주목합시다.
이 파일들은 C:\Program FilesForge.NET\Framework\Release\ 에 있고, 소스 또한 C:\Program Files\AForge.NET\Framework\Sources\Math\ 에 있으니, 내용을 확인해봅시다.
이로써, AForge.NET Framework의 'Genetic' 부분(유전 알고리즘)을 사용하거나, 소스코드를 들여다 볼 수 있는 준비가 다 되었습니다!!
AForge.Genetic.dll : C#코드의 이해와 활용
이 프레임워크를 활용하기 위해서는, Framework 설치 이후에, 새 프로젝트 창을 열고, 참조(References)에 AForge.Genetic.dll 을 추가한 다음, 마음껏 함수를 써주시면 되겠습니다.
다만, 안에 어떤 함수가 있는지를 잘 알고, 또 그 함수가 내부에서 어떻게 처리를 하는지 알아야 자기 입맛에 맞게 쓸 수 있을 것 같습니다. 저도 결국은 제가 짠 코드를 C#으로 변환하는 것이 목적이기 때문에, 본 코드를 그대로 사용하기 보다는, 조금씩 수정해서 사용해야 할 것 같습니다.
참고로, Visual Studio Team Edition/Professional Edition 사용하고 계신분들은 프로젝트 폴더 위에서 우클릭하셔서 [ View Class Diagram ] 기능을 이용하시면, 좀더 빨리 프로그램 구조를 이해하실 수 있습니다. (클래스 다이어그램이 완벽하게 나오진 않습니다 ㅎㅎ)
그래도, 대충 훓어보니, 메소드명만 봐도 많은 공을 기울인 작품이라는 생각이 들어요~ 주석도 충실합니다. 유전 알고리즘을 C#으로 구현하고 싶으신 분들께 유익한 코드가 될 것 같습니다. : )
다만, 안에 어떤 함수가 있는지를 잘 알고, 또 그 함수가 내부에서 어떻게 처리를 하는지 알아야 자기 입맛에 맞게 쓸 수 있을 것 같습니다. 저도 결국은 제가 짠 코드를 C#으로 변환하는 것이 목적이기 때문에, 본 코드를 그대로 사용하기 보다는, 조금씩 수정해서 사용해야 할 것 같습니다.
참고로, Visual Studio Team Edition/Professional Edition 사용하고 계신분들은 프로젝트 폴더 위에서 우클릭하셔서 [ View Class Diagram ] 기능을 이용하시면, 좀더 빨리 프로그램 구조를 이해하실 수 있습니다. (클래스 다이어그램이 완벽하게 나오진 않습니다 ㅎㅎ)
그래도, 대충 훓어보니, 메소드명만 봐도 많은 공을 기울인 작품이라는 생각이 들어요~ 주석도 충실합니다. 유전 알고리즘을 C#으로 구현하고 싶으신 분들께 유익한 코드가 될 것 같습니다. : )
'IT, Smart Life' 카테고리의 다른 글
[Kinect] PC연결을 위한 'Kinect for XBOX360' USB어댑터(AC Adapter/Power Supply/USB) (592) | 2012.05.06 |
---|---|
[XNA] 스프라이트를 이용한 애니메이션 구현 (731) | 2012.04.26 |
[Android] 이클립스 갈릴레오 버전 시, ADT 업데이트 에러 문제 (892) | 2012.01.11 |
[TSYNTAX] 초간편! 티스토리 Syntax Highlighter 적용하기!! (585) | 2011.10.09 |